Heim >Backend-Entwicklung >PHP-Tutorial >Warum beschädigt file_get_contents() Sonderzeichen in Remote-HTML und wie kann ich das beheben?
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!