php – Scraping上的字体或Unicode问题[复制]
发布时间:2020-12-13 15:55:30 所属栏目:PHP教程 来源:网络整理
导读:参见英文答案 PHP DomDocument failing to handle utf-8 characters (☆)????????????????????????????????????3个 我试图从网站上抓取信息. 该网站有这样的 127 East Zhongshan No 2 Rd; 中山东二路127号 但是,当我试图废弃它回声它然后会显示出来 127 East
参见英文答案 >
PHP DomDocument failing to handle utf-8 characters (☆)????????????????????????????????????3个
我试图从网站上抓取信息. 该网站有这样的 127 East Zhongshan No 2 Rd; 中山东二路127号 但是,当我试图废弃它&回声它然后会显示出来 127 East Zhongshan No 2 Rd; ??-?±±???oè·ˉ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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |