作为一名苦逼的PHPER,每天工作就是制造bug,和解决bug。小编前段时间接手的项目有个需求是抓取远程网页内容,就直接用file_get_contents($url)这方法去抓取,最后发现抓取的内容都是乱码的。分析原因时,刚开始以为是编码的问题,然后就试了各种转码方法,最后分析源文件才知道网页内容是GZIP压缩的。对于这种GZIP压缩的网页,有两种方法:
-
$data = file_get_contents("compress.zlib://".$url)
-
curl_setopt($ch,CURLOPT_ENCODING,"gzip");