Maison >développement back-end >tutoriel php >PHP renvoie la fonction addlashes() qui ajoute une barre oblique inverse avant un caractère prédéfini

PHP renvoie la fonction addlashes() qui ajoute une barre oblique inverse avant un caractère prédéfini

黄舟
黄舟original
2017-11-02 09:45:442200parcourir

Exemple

Ajouter une barre oblique inverse avant chaque guillemet double (") :

<?php 
$str = addslashes(&#39;What does "yolo" mean?&#39;);
echo($str); 
?>

Définition et utilisation

la fonction addslashes() renvoie la chaîne prédéfinie avec un La barre oblique inverse avant le caractère

est :

guillemet simple (')

guillemet double (")

Barre oblique inverse()

NULL

Astuce : Cette fonction peut être utilisée pour préparer des chaînes appropriées pour les chaînes stockées dans la base de données ainsi que pour les instructions de requête de base de données.

Remarque : par défaut, la directive PHP magic_quotes_gpc est activée, exécutant automatiquement addlashes() sur toutes les données GET, POST et COOKIE. N'utilisez pas addlashes() sur les chaînes qui ont été échappées par magic_quotes_gpc, car cela entraînerait un double échappement. Lorsque vous rencontrez cette situation, vous pouvez utiliser la fonction get_magic_quotes_gpc() pour la détection.

Syntaxe

addslashes(string)
参数 描述
string 必需。规定要转义的字符串。

Détails techniques

返回值: 返回已转义的字符串。
PHP 版本: 4+

更多实例

向字符串中的预定义字符添加反斜杠:

<?php
$str = "Who&#39;s Peter Griffin?";
echo $str . " This is not safe in a database query.<br>";
echo addslashes($str) . " This is safe in a database query.";
?>

php addslashes函数的作用是在预定义的字符前面加上反斜杠,这些预定义字符包括:

单引号(')

双引号(")

反斜杠(\)

NULL

addslashes函数经常使用在向数据库插入数据时,比如有一个字符串

$str="my name&#39;s wxp";

现在要将这个字符串插入到数据库表中,由于该字符串有单引号',这样很可能与mysql拼接字符串的单引号'冲突,导致SQL语句不正确,也就无法正常执行插入操作,此时我们需要使用addslashes函数处理这个字符串。如:

$str="my name&#39;s wxp";echo addslashes($str);//输出my name\'s wxp

然后在拼接mysql字符串:

$sql="insert into student(student_name)values(&#39;".addslashes($str)."&#39;)";
mysql_query($sql);

此时字符串被插入到数据库,那么大家是否知道插入的字符串是带反斜杠还是不带反斜杠呢?恐怕很多人都会认为肯定是带反斜杠的字符串。其实这个答案是错误的,插入的字符串是没有带反斜杠。至于为什么插入的字符串在数据库中是没有加反斜杠,请大家继续看下面讲解。

如果字符串$str="my name's wxp"是使用POST和GET提交的数据,这个时候插入数据库中的数据是带反斜杠的,由此可知addslashes只是在POST和GET数据插入数据库时才会把反斜杠同时插入到数据库,其他情况下不会将反斜杠插入到数据库。

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