Heim >Backend-Entwicklung >PHP-Tutorial >Warum beschädigt file_get_contents() Sonderzeichen in Remote-HTML und wie kann ich das beheben?

Warum beschädigt file_get_contents() Sonderzeichen in Remote-HTML und wie kann ich das beheben?

Susan Sarandon
Susan SarandonOriginal
2024-12-08 07:17:10355Durchsuche

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

File_get_contents() unterbricht die XML-Formatierung in HTML

Bei der Verwendung von file_get_contents() zum Abrufen von Inhalten aus einem Remote-HTML-Dokument können einige Sonderzeichen auftreten Fehlfunktion. Dies tritt vor allem bei Inhalten auf, die in UTF-8 codiert sind und Zeichen wie Ľ, Š, Č, Ť, Ž und andere enthalten. Anstatt richtig wiedergegeben zu werden, zeigen diese Zeichen beschädigte Versionen wie Å, ¾, ¤ und ähnliche unsinnige Symbole an.

Lösung:

Um dieses Problem zu beheben, konvertieren Sie die abgerufener Inhalt in HTML-Entitäten mithilfe der Funktion mb_convert_encoding(). Hier ist der geänderte Code:

<!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>

Durch die Konvertierung der UTF-8-Zeichen in ihre entsprechenden HTML-Entitäten stellen wir die ordnungsgemäße Darstellung von Sonderzeichen im geladenen HTML-Dokument sicher.

Das obige ist der detaillierte Inhalt vonWarum beschädigt file_get_contents() Sonderzeichen in Remote-HTML und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn