PHP で file_get_contents を使用して中国語の文字化けした Web ページをクロールする問題の解決策、
この記事の例では、PHP で file_get_contents を使用して中国語の文字化けした Web ページをクロールする方法を説明します。参考のためにみんなで共有してください。具体的な方法は以下の通りです
file_get_contents 関数は、もともと PHP に付属している非常に優れたローカルおよびリモート ファイル操作関数であり、これを使用して Web ページを読むと、いくつかのページに遭遇します。コードが文字化けしている場合の具体的な解決策をまとめておきます
インターネット上の友人によると、サーバーが GZIP 圧縮をオンにしていることが原因である可能性があります。以下は、Gzip がオンになっている Web サイトのヘッダー情報と、リクエスト ヘッダー情報の元のヘッダー情報を確認するために使用しています。は次のとおりです:
コードをコピーします コードは次のとおりです:
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip、deflate
Accept-Language zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
接続キープアライブ
クッキー __utma=225240837.787252530.1317310581.1335406161.1335411401.1537; __utmz=225240837.1326850415.887.3.utmcsr=google|utmccn=(organic)|utmcmd=organic| utmctr=%E4%BB%BB%E4%BD%95%E9%A1%B9% E7%9B%AE%E9%83%BD%E4%B8%8D%E4%BC%9A%E9%82%A3%E4%B9%88%E7%AE%80%E5%8D%95%20site% 3Awww.nowmagic.net; PHPSESSID=888mj4425p8s0m7s0frre3ovc7; __utmc=225240837.1.10.1335411401
www.jb51.net をホストします
ユーザーエージェント Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20100101 Firefox/12.0
ヘッダー情報からわかるContent-Encodingの項目はGzipです
解決策は比較的単純で、file_get_contents の代わりにcurlを使用して取得し、curl設定パラメータに追加することです。コードは次のとおりです。
コードをコピーします コードは次のとおりです:
curl_setopt($ch, CURLOPT_ENCODING, "gzip");
今日、file_get_contents を使用して写真をキャプチャしたとき、最初はこの問題に気付かず、それを見つけるのに多大な労力を要しました。
組み込みの zlib ライブラリを使用します。サーバーに zlib ライブラリがインストールされている場合は、次のコードを使用してコードの文字化けの問題を簡単に解決できます。
コードをコピーします コードは次のとおりです:$data = file_get_contents("compress.zlib://".$url);
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。
http://www.bkjia.com/PHPjc/929093.html
www.bkjia.comtruehttp://www.bkjia.com/PHPjc/929093.html技術記事 PHP で file_get_contents を使用して中国語の文字化けした Web ページをクロールする問題を解決する方法 この記事では、PHP で file_get_contents を使用して中国語の文字化けした Web ページをクロールする問題の解決策について説明します。みんなとシェアしましょう...