ホームページ >バックエンド開発 >PHPチュートリアル >file_get_contents() がリモート HTML の特殊文字を破損するのはなぜですか?それを修正するにはどうすればよいですか?

file_get_contents() がリモート HTML の特殊文字を破損するのはなぜですか?それを修正するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-08 07:17:10355ブラウズ

Why Does file_get_contents() Corrupt Special Characters in Remote HTML, and How Can I Fix It?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。