【发布时间】:2013-03-23 18:36:01
【问题描述】:
我正在尝试从 this website 获取用户名,这就是我所做的:
$div = $html->find('div[class=micro-home-recent-review review-item]');
for ($i=0; $i<count($div); $i++){
$username = $div[$i]->find('div[class=tooltip-fullname]', 0)->find('b', 0)->plaintext;
// I've tried using iconv but apparently it doesn't work
$username = iconv(mb_detect_encoding($username), "UTF-8", $username);
$query = "INSERT INTO users ('name') VALUES ($username)";
$pdo->query($query);
}
那么我数据库中新插入的记录是:
如您所见,大部分名称都是用 HTML 符号记录的,在浏览器上可以正常显示,但显示为 JSON 时就乱了。当我尝试获取评论时也会出现同样的问题,以下是评论的示例 JSON:
我需要 JSON 在我的 Android 应用程序中显示数据,因此需要解决此问题,否则数据将无法正确显示。对此有什么可能的解决方案?我真的需要你的帮助和建议。
【问题讨论】:
-
这是您的站点(即您拥有服务器)还是您正在抓取外部站点?如果您不拥有该网站,您是否已将您的活动告知所有者?
-
虽然不太可能与您的问题有关,但这种
mb_detect_encoding的使用是非常可疑的。您正在检测哪些可能的编码?
标签: php json html-parsing special-characters simple-html-dom