1.关于编码:不要轻易相信你采集人家网页上面写的编码格式,很有可能是骗你的,找了大量相关资料,甚至去阅读了 unicall ascll utf-8 gbk gb2312这些编码产生的历史,尼玛,我都会背这些编码了,之前还要百度的。切入正题,之前说了不要相信人家网页上面写的,我之前不断地用iconv或者mb_convert_encoding转码,怎么转都不成功,一度的相信网页上面写的gb2312就是gb2312,走了很多歪路后,算了,我还是打印这些截取过来的字符到底是不是网页上面写的gb2312编码,在脚本之jia找到,先用mb_detect_encoding打印了,出现cu-。。。编码,尼玛,从来没见过这种编码啊!不是吧,我先引用这个变量放进去转了码再说,神奇的出现了。果然!ok下面贴代码
$html = $this->getContentByMatch('http://view.news.qq.com/original/intouchtoday/n3131.html');
//标题
$pattern_title="/<title>(.*)<\/title>/iUs";
preg_match($pattern_title, $html, $arr_title);//根据正则找到匹配的代码
<span class="hljs-variable">$encode</span> = mb_detect_encoding(<span class="hljs-variable">$arr_title</span>[<span class="hljs-number">1</span>], <span class="hljs-keyword">array</span>(<span class="hljs-string">'ASCII'</span>,<span class="hljs-string">'UTF-8'</span>,<span class="hljs-string">'GB2312'</span>,<span class="hljs-string">'GBK'</span>,<span class="hljs-string">'BIG5'</span>));
<span class="hljs-variable">$string</span> = iconv(<span class="hljs-variable">$encode</span>,<span class="hljs-string">"utf-8"</span>,<span class="hljs-variable">$arr_title</span>[<span class="hljs-number">1</span>]);
<span class="hljs-keyword">echo</span> <span class="hljs-variable">$string</span>;</code></pre>
