Maison >développement back-end >tutoriel php >Pourquoi file_get_contents() corrompt-il les caractères spéciaux dans le HTML distant et comment puis-je y remédier ?

Pourquoi file_get_contents() corrompt-il les caractères spéciaux dans le HTML distant et comment puis-je y remédier ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-08 07:17:10355parcourir

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

File_get_contents() interrompt le formatage XML en HTML

Lors de l'utilisation de file_get_contents() pour récupérer le contenu d'un document HTML distant, certains caractères spéciaux peuvent mauvais fonctionnement. Cela se produit principalement avec le contenu codé en UTF-8 qui implique des caractères tels que Ľ, Š, Č, Ť, Ž et autres. Au lieu de s'afficher correctement, ces caractères affichent des versions corrompues telles que Å, ¾, ¤ et des symboles absurdes similaires.

Solution :

Pour résoudre ce problème, convertissez le récupéré le contenu des entités HTML à l'aide de la fonction mb_convert_encoding(). Voici le code modifié :

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

En convertissant les caractères UTF-8 en leurs entités HTML correspondantes, nous garantissons le bon rendu des caractères spéciaux dans le document HTML chargé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn