php – Scraping上的字体或Unicode问题[复制]

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – Scraping上的字体或Unicode问题[复制]脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > PHP DomDocument failing to handle utf-8 characters (☆)                                    3个
我试图从网站上抓取信息.

该网站有这样的

127 East Zhongshan No 2 Rd; 中山东二路127号

但是,当我试图废弃它&回声它然后会@L_360_1@出来

127 East Zhongshan No 2 Rd; 中山ä¸äºè·¯127å·

我也尝试UTF-8

有我的PHP代码

现在请帮我解决这个问题.

function GrabPage($sITe){
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_RETURNtransfer,TRUE);
    curl_setopt($ch,CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);
    curl_setopt($ch,CURLOPT_TIMEOUT,40);
    curl_setopt($ch,CURLOPT_COOKIEFILE,"cookie.txt");
    curl_setopt($ch,CURLOPT_URL,$site);
    ob_start();
    return curl_exec ($ch);
    ob_end_clean();
    curl_close ($ch);
}
$GrabData   = GrabPage($site);

$dom    = new DOMDocument();
@$dom->loadhtml($GrabData);

$xpath  = new DOMXpath($dom);


$mainElements = array();
$mainElements = $xpath->query("//div[@class='col--one-whole mv--col--one-half wv--col--one-whole'][1]/dl/dt");

foreach ($mainElements as $names2) {
    $Name2  = $Names2->nodeValue;
    echo "$Name2";
}

解决方法

首先,您需要在PHP文件之前的其他任何内容之前设置charset:

header('Content-tyPE: text/htML; charset=utf-8');

你需要转换你用mb_convert_encoding获得的html标记

@$dom->loadHTML(mb_convert_encoding($GrabData,'HTML-ENTITIES','UTF-8'));

Sample Output

脚本宝典总结

以上是脚本宝典为你收集整理的php – Scraping上的字体或Unicode问题[复制]全部内容,希望文章能够帮你解决php – Scraping上的字体或Unicode问题[复制]所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。