curl_init によって返されるエンコーディングを判断するにはどうすればよいですか?文字化けを解決してください!

WBOY
リリース: 2016-06-23 13:23:14
オリジナル
934 人が閲覧しました

コードは次のとおりです:

<?php$url = "http://zhidao.baidu.com/link?url=pTwcJotQ02pjg-mjCnc-fkw8ONOY9x8q0ESrCFhdVJy47agZnDnCb-BCAtngRGDt9yi0TvleSS_w0aPj8Vsk0atVkVhNYdZADN0kv0BzNau";echo fopen_url($url);function fopen_url($url) {     if (function_exists('curl_init'))	{         $curl_handle = curl_init();         curl_setopt($curl_handle, CURLOPT_URL, $url);         curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT,2);         curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER,1);         curl_setopt($curl_handle, CURLOPT_FAILONERROR,1); 		curl_setopt($curl_handle, CURLOPT_TIMEOUT,2);        $file_content = curl_exec($curl_handle);		$encode = mb_detect_encoding($file_content, array("ASCII","UTF-8","GB2312","GBK","BIG5"));				if($encode != "UTF-8")		{		   $file_content = mb_convert_encoding($file_content, "UTF-8", $encode);		   //$file_content = iconv($encode,'utf-8//IGNORE',$file_content);		}        curl_close($curl_handle);     }	else	{         $file_content = '';     }     return $file_content; }?>
ログイン後にコピー


一部文字化けしています!奇妙なことに、写真をご覧ください



これの理由は何ですか?

元のページは明らかに GB2312 であるようですが、私は言葉を失います

上記のコードを改善する必要があるかどうかを確認してください。多くの!

ディスカッションへの返信(解決策)

また、curl_init が空のデータを返すページがいくつかあり、表示される前に数回更新する必要があります。何か問題がありますか。パラメータ値の設定でしょうか?

返されるデータには以下が含まれます:

それに基づいてページのエンコーディングを知ることができます

プログラミングのみが必要です利用できない場合 判定
mb_detect_encoding はよく間違えるので、mb_check_encoding 関数を追加しました

データ断片

不正な文字が存在する理由はありません

CP936 は GBK の国際名です

最初の問題はコード化けではなく、画像です。curl キャプチャ Baidu ページは、クロールを防ぐために特定のテキストを意図的に画像に変換します。 Web ページの要素を見てみると、これらの文字化けは、実は Baidu の画像アドレスであることがわかります。

2 番目の質問は、タイムアウトをより大きな値に設定するだけで問題ありません。ネットワークの問題である可能性があります。

最初の問題は文字化けではなく、画像です。curl が Baidu ページをクロールするとき、クロールを防ぐために特定のテキストを意図的に画像に変換します。 Web ページの要素を見てみると、これらの文字化けは、実は Baidu の画像アドレスであることがわかります。

2 番目の質問は、タイムアウトをより大きな値に設定するだけで問題ありません。ネットワークの問題である可能性があります。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!