インターネットの世界では、クローラーとデータ取得は非常に一般的なニーズです。ただし、多くの場合、得られる結果は期待どおりではありません。その理由の 1 つはエンコードの問題です。 Webページのソースコードを正しく取得し、エンコード変換を行うにはどうすればよいでしょうか?
PHP で Web ページのソース コードを取得するには、file_get_contents()、curl など、さまざまな方法があります。ここでは例として file_get_contents() を選択します。
まず、Web サイトのエンコード形式を決定する必要があります。エンコーディングを特に指定しない場合、PHP はデフォルトで文字エンコーディングを ISO-8859-1 に設定するため、デフォルトでは、取得した Web ページのソースコードを ISO-8859-1 から必要なエンコーディング形式に変換する必要があります。 . .以下は簡単な例です。
$url = "https://www.example.com"; $html = file_get_contents($url); $html = mb_convert_encoding($html, "UTF-8", "ISO-8859-1"); echo $html;
このうち、$url は取得する必要がある Web サイトの URL、$html は取得した Web ページのソース コードです。 $html をエンコード形式に変換するために使用される関数は mb_convert_encoding() です。そのパラメータのうち、最初のパラメータは変換する必要がある文字列、2 番目は変換する必要のあるターゲットのエンコード形式、3 番目は元のエンコード形式です。エンコーディング、フォーマット。ここでは、UTF-8 エンコーディングに変換します。
実際の開発では、GBK、BIG5 などのより複雑なエンコード形式に遭遇する場合があります。この場合、実際の状況に応じて処理する必要があります。エンコード形式は、HTML で文字セットを検索することで決定できます。例:
<meta charset="gbk">
エンコード形式は不明です。この場合、PHP ライブラリの mb_detect_encoding() 関数を使用して自動識別できます。例:
$url = "https://www.example.com"; $html = file_get_contents($url); $charset = mb_detect_encoding($html, "UTF-8, GBK, BIG5, ISO-8859-1"); $html = mb_convert_encoding($html, "UTF-8", $charset); echo $html;
このうち、$charset は自動認識されたエンコード形式を表し、UTF-8 形式に変換して出力します。
もちろん、実際の開発では、ネットワーク接続のタイムアウトやHTTPステータスコードの判定、テキスト内の特殊文字など、多くの詳細を考慮する必要があります。ただし、この記事では基本的な考え方と方法を説明し、いくつかの中国語エンコード変換方法を簡単に説明し、ここで分析して補足します。読者は実際のニーズに応じて操作できると思います。
以上がWebページのソースコードを取得し、PHPでエンコードを変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。