用php 的DOM对象的loadhtml 方法处理中文网页,得到的是乱码 string iconv ( string in_charset, string out_charset, string str ) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <?php$myhtml=file("http://www.baidu.com");$myhtml=join('',$myhtml);$doc = new DOMDocument();@$doc->loadHTML($myhtml);$tags = $doc->getElementsByTagName('a');foreach ($tags as $tag) { $html.='<a href='.$tag->getAttribute('href').'>'.$tag->childNodes->item(0)->nodeValue.'</a><br>';}echo $doc->encoding; //输出 gb2312 ,浏览器却显示乱码!(用gb2312编码的) 改成utf-8编码时显示正常。?> 一楼的方法不行,bm_convert_encoding 也不行啊。php/manual 上也没说什么有用的东西好像,倒是有人说是bug。有高手能搞定它啊? 将网页的编码改为 gb2312就OK了!! <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 统一编码嘛如果你的网页的编码是 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />那么采集过来的内容就需要转码:mb_convert_encoding($html,'gb2312','utf-8')如果你的网页的编码是 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />那就不需要转码了,采集过来的内容可以直接显示。<?phpheader("Content-type: text/html; charset=utf-8");$myhtml=file("http://www.baidu.com");$myhtml=join('',$myhtml);$doc = new DOMDocument();@$doc->loadHTML($myhtml);$tags = $doc->getElementsByTagName('a');foreach ($tags as $tag) { $html.='<a href='.$tag->getAttribute('href').'>'.$tag->childNodes->item(0)->nodeValue.'</a><br>';}echo $doc->encoding; //输出 gb2312 ,浏览器却显示乱码!(用gb2312编码的) 改成utf-8编码时显示正常。?> header("Content-type: text/html; charset=utf-8");<?phpheader("Content-type: text/html; charset=utf-8");$myhtml=file("http://www.baidu.com");$myhtml=join('',$myhtml);$doc = new DOMDocument();@$doc->loadHTML($myhtml);$tags = $doc->getElementsByTagName('a');foreach ($tags as $tag) { $html.='<a href='.$tag->getAttribute('href').'>'.$tag->childNodes->item(0)->nodeValue.'</a><br>';}echo $doc->encoding; //输出 gb2312 ,浏览器却显示乱码!(用gb2312编码的) 改成utf-8编码时显示正常。?> [散分]生活便利小代码,拍照后,批量递归缩放目录图片. 用户名不存在是怎么回事儿 请问怎么查到mysql数据库最后一条记录插入的时间呢? 49+NULL等于什么?? 如何设置SESSION的有效时间 调查,大家都怎么写PHP项目的(200分) 这段js什么意思啊? PHP实例!?新手上路 请大家帮忙:任务管理器中有多个php.exe在运行 ???????????????????/ PHP解析XML字符串问题,请高手出手相助! PHP有前途吗
$myhtml=join('',$myhtml);$doc = new DOMDocument();
@$doc->loadHTML($myhtml);$tags = $doc->getElementsByTagName('a');foreach ($tags as $tag)
{
$html.='<a href='.$tag->getAttribute('href').'>'.$tag->childNodes->item(0)->nodeValue.'</a><br>';
}echo $doc->encoding; //输出 gb2312 ,浏览器却显示乱码!(用gb2312编码的) 改成utf-8编码时显示正常。
?>
那么采集过来的内容就需要转码:mb_convert_encoding($html,'gb2312','utf-8')如果你的网页的编码是 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
那就不需要转码了,采集过来的内容可以直接显示。
<?php
header("Content-type: text/html; charset=utf-8");
$myhtml=file("http://www.baidu.com");
$myhtml=join('',$myhtml);$doc = new DOMDocument();
@$doc->loadHTML($myhtml);$tags = $doc->getElementsByTagName('a');foreach ($tags as $tag)
{ $html.='<a href='.$tag->getAttribute('href').'>'.$tag->childNodes->item(0)->nodeValue.'</a><br>';
}echo $doc->encoding; //输出 gb2312 ,浏览器却显示乱码!(用gb2312编码的) 改成utf-8编码时显示正常。
?>
header("Content-type: text/html; charset=utf-8");
$myhtml=file("http://www.baidu.com");
$myhtml=join('',$myhtml);$doc = new DOMDocument();
@$doc->loadHTML($myhtml);$tags = $doc->getElementsByTagName('a');foreach ($tags as $tag)
{ $html.='<a href='.$tag->getAttribute('href').'>'.$tag->childNodes->item(0)->nodeValue.'</a><br>';
}echo $doc->encoding; //输出 gb2312 ,浏览器却显示乱码!(用gb2312编码的) 改成utf-8编码时显示正常。
?>