远程gzip压缩网页的php读取方法
今天检索商城页面信息时使用file_get_contents或curl:
复制代码如下: $ URL=' http://www . XXX.com/21/?type=23;$ temp=file _ get _ contents($ URL);echo $ temp
每个人都得到一段乱码,看了很多内容,包括页面的页眉信息,发现原来的页面被使用了。
类似的信息,即Content-Encoding是gzip,即站点上启用了gzip压缩。这里有很多解决方案,当然如果使用file_get_contents,可以这样修改:
复制代码如下: file _ get _ contents(' compress . zlib :/')。$ URL);
或者用curl来做:
复制代码如下:函数curl _ get ($ URL,$ gzip=false){ $ curl=curl _ init($ URL);curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,10);if($gzip) curl_setopt($curl,CURLOPT_ENCODING,' gzip ');//这里的关键是$ content=curl _ exec($ curl);curl _ close($ curl);返回$ content}
同时,参考手册中的上述解决方案,还可以如下处理存储gzip类型的字符串:
复制代码如下:函数gzdecode($ data){ $ g=tempnam('/tmp ',' ff ');@file_put_contents($g,$ data);ob _ start();readgzfile(g美元);$ d=ob _ get _ clean();返回$ d;}
版权声明:远程gzip压缩网页的php读取方法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。