file_get_contents()関数を使用してWebページをクロールすると、文字化けが発生することがあります。文字化けの原因は 2 つあります。1 つはエンコーディングの問題で、もう 1 つは対象ページで Gzip が有効になっていることが考えられます。
エンコーディングの問題は、キャプチャしたコンテンツをエンコーディングに変換するだけで簡単に対処できます ($content=iconv("GBK", "UTF-8//IGNORE", $content);)。キャプチャ Gzip ページを開きます。どのように判断するか?取得したヘッダーには、コンテンツが GZIP 圧縮されていることを示す Content-Encoding: gzip が含まれています。 FireBug を使用して、ページで gzip が有効になっているかどうかを確認します。以下はGzipをONにして閲覧したブログのヘッダー情報です。
リーリーここにいくつかの解決策があります:
1. 組み込みの zlib ライブラリを使用する
サーバーに zlib ライブラリがインストールされている場合は、次のコードを使用してコード文字化けの問題を簡単に解決できます。
リーリー2. file_get_contents の代わりに CURL を使用します
リーリー3. gzip解凍機能を利用する
リーリー使用:
リーリーこれら 3 つの方法を紹介しましょう。gzip によって引き起こされる文字化けクロールの問題のほとんどを解決できるはずです。