原生态php通过dom获取divtable里面的内容,不用正则!

    xiaoxiao2021-03-25  84

    原生态php获取网页标签里面的内容,不用插件!不用正则,直接一把抠出来!

    error_reporting(E_ALL); $out=_getUrl('http://www.gdczepb.gov.cn/detail/23328'); $out=preg_replace(array('/<head>([\s\S]+?)<\/head>/i','/<p>/i'),array('<head><meta http-equiv="Content-Type" content="text/html;charset=utf-8"></head>','<br><p>'),$out); // echo $out; $dom = new DOMDocument(); @$dom->loadHTML($out); $xpath = new DOMXPath($dom); $url=$xpath->query("//div[@class='contents']"); $str=$url->item(0)->nodeValue; echo '<pre>'; print_r($str); // print_r(htmlspecialchars($str)); echo '</pre>'; //以下是通过curl传输数组参数获取html内容! function _getUrl($url){ $curl=curl_init(); $options=array( CURLOPT_URL=>$url, CURLOPT_RETURNTRANSFER =>1, CURLOPT_USERAGENT=>'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36', CURLOPT_CONNECTTIMEOUT=>60 ); curl_setopt_array($curl,$options); $out=curl_exec($curl); curl_close($curl); return $out; }

    这里面遇到个大问题,字符集编码错乱,因为原页面没有设置字符编码集,但是loadHtml的时候默认是utf-8编码,但是读取的内容里面一定要在title前面申明字符集,如果不是utf-8需要转换。这里不细说,已经有人讲得很好了,我直接把链接放上来http://www.fwolf.com/blog/post/314

    转载请注明原文地址: https://ju.6miu.com/read-24282.html

    最新回复(0)