检索到的CSS文件的内容:( http://gizmodo.com/assets/stylesheets/app-ecbc6044c59319aab4c2a1e31380ef56.css )
检测到的编码与mb_detect_encoding
......说UTF-8。
在浏览器中查看的页面,看起来很好(读取),并宣布@charset "UTF-8";
试图输出字符串,得到了垃圾。 试图将其保存到一个文件中,有垃圾。
试图把编码转换为ASCII,ISO-8859-1,和HTML实体。 没运气。
这里任何想法如何确定为什么这个字符串就是垃圾,以及如何解决它?
$url = 'http://gizmodo.com/assets/stylesheets/app-ecbc6044c59319aab4c2a1e31380ef56.css';
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch,CURLOPT_ENCODING , "gzip");
$data = curl_exec($ch);
curl_close($ch);
echo $data;
重要线路
curl_setopt($ch,CURLOPT_ENCODING , "gzip");
该Content-Encoding
你想抓取网页的是gzip
。 你需要解压缩使用它之前。
我刚刚试过以下,它工作得很好:
echo gzdecode(file_get_contents($your_url));