Maison >développement back-end >Problème PHP >Que faire si les entités html php sont tronquées

Que faire si les entités html php sont tronquées

藏色散人
藏色散人original
2021-12-21 10:21:541601parcourir

Solution aux entités html php tronquées : 1. Utilisez "htmlentities($str,ENT_COMPAT,"GB2312")" ; 2. Affichez "htmlspecialchars($str)".

Que faire si les entités html php sont tronquées

L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur Dell G3.

php htmlentities Que faire si le code est tronqué ?

Les entités html en php posent le problème que le chinois ne peut pas être interrogé

En php, htmlspecialchars convertit les caractères spéciaux au format HTML, tandis que htmlentities convertit tous les caractères en chaînes HTML.

utilisation des entités html

 $str = "John & 'Adams'"; 
 echo htmlentities($str, ENT_COMPAT); 
 echo " 
 "; 
 echo htmlentities($str, ENT_QUOTES); 
 echo " 
 "; 
 echo htmlentities($str, ENT_NOQUOTES); 
 ?> 
 
John & 'Adams'
 John & 'Adams'
 John & 'Adams'

Sortie du navigateur :

utilisation des caractères spéciaux html

& (et) est converti en &
" (guillemets doubles) est converti en "
d3c38aadb51471a5d962442529747632 (Supérieur à) Convertir en >

Exemple

$str = "John & 'Adams'"; 
 echo htmlspecialchars($str, ENT_COMPAT); 
 echo " 
 "; 
 echo htmlspecialchars($str, ENT_QUOTES); 
 echo " 
 "; 
 echo htmlspecialchars($str, ENT_NOQUOTES); 
 ?>

Leur différence

Les fonctions de ces deux fonctions sont de convertir des caractères en codage de caractères HTML, en particulier les URL et les chaînes de code. Empêcher l'exécution des balises de caractères par le navigateur. Il n'y a aucune différence lors de l'utilisation du chinois, mais htmlentities formatera les caractères chinois de manière à ce que l'entrée chinoise soit tronquée.

htmlentities convertit toutes les balises html, htmlspecialchars formate uniquement les symboles spéciaux & ' " 16c874977c0ec376136df4dbc6fc1c03

Effet :

$str = &#39;<a href="demo.php?m=index&a=index&name=中文" rel="external nofollow" rel="external nofollow" >测试页面</a>&#39;;

echo 'htmlentities spécifie l'encodage GB2312 : '.htmlentities($str,ENT_COMPAT,"GB2312").'';

echo 'htmlentities ne spécifie pas l'encodage : '.htmlentities($str).'';

$str = &#39;<a href="demo.php?m=index&a=index&name=中文" rel="external nofollow" rel="external nofollow" >测试页面</a>&#39;;

echo htmlspecialchars ( $str).'';

Apprentissage recommandé : "Tutoriel vidéo PHP"

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