ホームページ >バックエンド開発 >PHPチュートリアル >file_get_contents() がリモート HTML の特殊文字を破損するのはなぜですか?それを修正するにはどうすればよいですか?
File_get_contents() が HTML の XML フォーマットを破壊する
file_get_contents() を使用してリモート HTML ドキュメントからコンテンツを取得する場合、一部の特殊文字が使用される場合があります。故障。これは主に、Ľ、Š、Č、Ť、Ž などの文字を含む UTF-8 でエンコードされたコンテンツで発生します。これらの文字は適切に表示されず、Å、¾、¤、および同様の無意味な記号などの破損したバージョンが表示されます。
解決策:
この問題を解決するには、 mb_convert_encoding() 関数を使用して、取得したコンテンツを HTML エンティティに変換します。変更されたコードは次のとおりです。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sk" lang="sk"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="Content-Language" content="sk" /> <title>Test</title> </head> <body> <?php $html = file_get_contents('http://example.com'); $convertedHtml = mb_convert_encoding($html, 'HTML-ENTITIES', "UTF-8"); echo $convertedHtml; ?> </body> </html>
UTF-8 文字を対応する HTML エンティティに変換することで、ロードされた HTML ドキュメント内の特殊文字が適切にレンダリングされるようになります。
以上がfile_get_contents() がリモート HTML の特殊文字を破損するのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。