$regExt2 = "/<h3 class=\"ens fontnormal\"><a href=\"[^\"]*\"[^>]*>(.+)<\/a><\/h3>/iUsu";<======================================= preg_match_all($regExt2, $str, $jf2, PREG_SET_ORDER); php version >=4.1.0 in linux or >=4.2.3 in windows
我的版本是 PHP版本 4.3.4
to ice_berg16 : 你的办法不行,仍然是乱码,希望能测试一下 tp zeroleonhart : 我的版本是>=4.2.3 in windows,满足你的要求
to yunfeifan : 我的版本是4.3.4,但是不能使用这个函数,很奇怪 $str = mb_convert_encoding( $str, "gb2312", "utf-8"); 于是我用iconv代替然后类似于下面这样的字符,函数 iconv 无法处理◤◥◣◢会提示错误:Notice: iconv(): Detected illegal character in input string in d:\usr\www\html\test_taobao.php on line 531用上 $str = str_replace(base64_decode("wqA=")," ",$str);也不管用 ,这是为何?
那是因为php 4 默认没有开放mb ,你要修改php.ini
to yunfeifan: OK,mb搞定了 但是还有一个问题,出来的还是有一个乱码 您可以测试一下%涮防鲜Ρ颈?骞馇盗瞬挥贸?wbr>!笔记本电脑专用光驱芯,CDROM DVD,刻录机,康宝都有,买回去自己装好就OK
http://www.51la.org/webjx/htmldata/2006-03-07/1141682519.html
试试这个,比较全面。
preg_match_all($regExt2, $str, $jf2, PREG_SET_ORDER);
php version >=4.1.0 in linux or >=4.2.3 in windows
PHP版本 4.3.4
tp zeroleonhart : 我的版本是>=4.2.3 in windows,满足你的要求
$yourString = iconv($yourString, "GBK", "UTF-8");
或
$yourString = mb_convert_encoding( "UTF-8","GBK", $yourString);
echo $yourString;
$str = 'http://search.ebay.com.cn/search/search.dll?MfcISAPICommand=GetResult&ht=1&SortProperty=MetaEndSort&cgiurl=http://cgi.ebay.com.cn/ws/&currdisp=1&maxRecordsReturned=300&maxRecordsPerPage=50&SortProperty=MetaEndSort&from=R40&fkr=1&query='.urlencode(iconv("gb2312", "utf-8",$title));$str = file_get_contents($str);
$str = str_replace(base64_decode("wqA=")," ",$str);
$str = mb_convert_encoding( $str, "gb2312", "utf-8");//Item_name
$regExt2 = "/<h3 class=\"ens fontnormal\"><a href=\"[^\"]*\"[^>]*>(.+)<\/a><\/h3>/iUs";
preg_match_all($regExt2, $str, $jf2, PREG_SET_ORDER);
print_r($jf2);?>我的apache 2.0.58+php 4.4.1 测试通过,不过utf8字符集比gb2312大很多,很多特殊字符需要处理,否则会导致乱麻。我处理了一个$str = str_replace(base64_decode("wqA=")," ",$str);另:mb_convert_encoding
(PHP 4 >= 4.0.6, PHP 5)mb_convert_encoding -- Convert character encoding多看看www.php.net
我的版本是4.3.4,但是不能使用这个函数,很奇怪
$str = mb_convert_encoding( $str, "gb2312", "utf-8");
于是我用iconv代替然后类似于下面这样的字符,函数 iconv 无法处理◤◥◣◢会提示错误:Notice: iconv(): Detected illegal character in input string in d:\usr\www\html\test_taobao.php on line 531用上 $str = str_replace(base64_decode("wqA=")," ",$str);也不管用 ,这是为何?
OK,mb搞定了
但是还有一个问题,出来的还是有一个乱码
您可以测试一下%涮防鲜Ρ颈?骞馇盗瞬挥贸?wbr>!笔记本电脑专用光驱芯,CDROM DVD,刻录机,康宝都有,买回去自己装好就OK
$str = str_replace(base64_decode("wqA=")," ",$str);
$str = str_replace(base64_decode("4pej")," ",$str);
$str = str_replace(base64_decode("4pei")," ",$str);
$str = str_replace(base64_decode("4pek")," ",$str);
$str = str_replace(base64_decode("4pel")," ",$str);$str = mb_convert_encoding( $str, "gb2312", "utf-8");这是◤◥等,这应该有很多,不知道有没有好的方法都处理了
中的4pej
这个是如何计算出来的
我得到的是 qI8=
不对啊
<?
echo base64_encode("◤");
?>
然后保存一个文件,选择编码为:utf-8,然后执行看看