Maison >développement back-end >tutoriel php >PHP ajoute une barre oblique inverse avant le guillemet (PHP supprime la barre oblique inverse)
La raison pour laquelle PHP ajoute une barre oblique inverse avant le guillemet et comment supprimer la barre oblique inverse en PHP Trois façons de désactiver les guillemets magiques php
La commande PHP par défaut magic_quotes_gpc dans l'espace serveur fourni par l'espace général. Les fournisseurs sont activés. À ce stade, vous pouvez utiliser la fonction stripslashes() pour supprimer les barres obliques inverses automatiquement ajoutées. L'utilisation est la suivante : par exemple, la variable contenant la chaîne est $str, puis utilisez la fonction stripslashes() pour traiter la chaîne : stripslashes($str), et le résultat de sortie sera avec les barres obliques inverses supprimées.
Si vous rencontrez le résultat de sortie contenant des barres obliques inverses, vous pouvez utiliser la fonction stripslashes() pour traiter le contenu de sortie, c'est-à-dire $str=stripslashes($str), et enregistrer la suppression de la barre oblique inverse.
Mais il y a un autre problème, c'est que la commande PHP locale magic_quotes_gpc est désactivée. Si cette fonction est utilisée, la barre oblique inverse normale sera supprimée. Ce n'est pas ce que nous voulons.
La solution est d'utiliser la fonction get_magic_quotes_gpc() pour détecter. S'il est à l'état ouvert, alors la barre oblique inverse est supprimée. S'il est à l'état fermé, la barre oblique inverse n'est pas supprimée.
Le code du programme est le suivant :
Copier le code Le code est le suivant :
$str=$_POST["str"]; //读取str的内容赋值给$str变量 if(get_magic_quotes_gpc()){ //如果get_magic_quotes_gpc()是打开的 $str=stripslashes($str); //将字符串进行处理 }
Cet article a été révisé le 25 avril 2012 à 10:08:03 Comme suit :
Voici trois méthodes pour résoudre ce problème :
1 Modifiez le fichier de configuration PHP php.ini Cette méthode ne convient qu'à ceux qui en ont l'autorité. Dans le cas de gestion de serveurs, si de l'espace virtuel est utilisé, seules les deux dernières méthodes peuvent être utilisées.
Désactivez magic_quotes_gpc, magic_quotes_runtime et magic_quotes_sybase dans le fichier de configuration PHP php.ini. Comme indiqué ci-dessous :
Copiez le code Le code est le suivant :
magic_quotes_gpc = Off magic_quotes_runtime = Off magic_quotes_sybase = Off
2 Utilisez le fichier .htaccess Cette méthode n'est supporté que sur le serveur. Dans le cas de htaccess, les serveurs actuels le supportent généralement
Ajoutez la phrase suivante au fichier .htaccess dans le répertoire du programme :
3 Bouclier dans le code Cette méthode est la plus portable Vous n'avez pas besoin de prendre en compte la configuration du serveur. Elle peut être utilisée tant qu'elle prend en charge PHP.
Ajoutez le code suivant au début de tous les fichiers PHP
Copiez le code Le code est le suivant :
if(get_magic_quotes_gpc()){ function stripslashes_deep($value){ $value=is_array($value)?array_map('stripslashes_deep',$value):stripslashes($value); return $value; } $_POST=array_map('stripslashes_deep',$_POST); $_GET=array_map('stripslashes_deep',$_GET); $_COOKIE=array_map('stripslashes_deep',$_COOKIE); $_REQUEST=array_map('stripslashes_deep',$_REQUEST); }Recommandations associées :
Comment ajouter et supprimer des barres obliques inverses avant les guillemets 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!