php dom亂碼的解決辦法:首先定義一個(gè)“curl_get”方法用于請(qǐng)求url頁(yè)面信息;然后通過(guò)“preg_match('#]*charset="?gb2312"[^>]*>#', $data)”方法解決亂碼即可。
10余年的會(huì)昌網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整會(huì)昌建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“會(huì)昌網(wǎng)站設(shè)計(jì)”,“會(huì)昌網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
推薦:《PHP視頻教程》
DOM是php比較新的xml和html處理類(lèi),可以像javascript那樣方便的操作DOM樹(shù),網(wǎng)上更多的是介紹它處理XML的情況,今天這篇文章就介紹下php解決DOM亂碼的方法,下面話不多說(shuō),直接看下面的解決方法。
解決方法如下
/** * 請(qǐng)求url頁(yè)面信息 * @param str $url * @return str mixed|boolean */ function curl_get($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //302跳轉(zhuǎn) curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0'); curl_setopt($curl, CURLOPT_REFERER, $url); $data = curl_exec($curl); $code = curl_getinfo($curl,CURLINFO_HTTP_CODE); //輸出請(qǐng)求狀態(tài)碼 curl_close($curl); if(200 == $code) { //解決亂碼 if (preg_match('#]*charset="?gb2312"[^>]*>#', $data)) { $data = iconv("gb2312","utf-8//IGNORE",$data); $data = preg_replace('#]*charset="?gb2312"[^>]*>#is', '', $data); } if (!preg_match('#]*>#is', $data)) { $data = str_replace('', '', $data); } if (preg_match('#]*>#is', $data)) { $data = preg_replace('#]*>#is', '', $data); } return $data; } else { return false; } } /** * 獲取 DOMDocument 對(duì)象 * @param str $url * @return boolean|DOM */ function getDom($url) { $html_content = curl_get($url); if(empty($html_content)) { //saveLog($url, '請(qǐng)求失敗'); return false; } $dom = new DOMDocument('1.0', 'utf-8'); libxml_use_internal_errors(true); $dom->loadHTML($html_content); return $dom; } $html_content = mb_convert_encoding($html_content, 'UTF-8', 'gb2312');