1

css ファイルの内容を取得しました: ( http://gizmodo.com/assets/stylesheets/app-ecbc6044c59319aab4c2a1e31380ef56.css )

...でエンコーディングを検出しましたが、mb_detect_encodingUTF-8と言います。

ブラウザーでページを表示し、問題なく (読みやすく) 表示され、宣言されている@charset "UTF-8";

文字列を出力しようとしたところ、ガベージが発生しました。ファイルに保存しようとしたところ、ガベージが発生しました。

エンコーディングを ASCII、ISO-8859-1、および HTML-ENTITIES に変換しようとしました。運がない。

この文字列がゴミである理由を判断する方法と、それを修正する方法はありますか?

4

2 に答える 2

5

Content-Encoding取得しようとしているページの はですgzip。使用する前に解凍する必要があります。

Content-Encoding に注意してください

私はちょうど次のことを試してみましたが、うまくいきました:

echo gzdecode(file_get_contents($your_url));
于 2013-07-17T20:56:44.790 に答える
5
$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");
于 2013-07-17T20:57:11.510 に答える