Heim > Backend-Entwicklung > PHP-Tutorial > PHP gibt die Funktion addslashes() zurück, die vor einem vordefinierten Zeichen einen Backslash einfügt

PHP gibt die Funktion addslashes() zurück, die vor einem vordefinierten Zeichen einen Backslash einfügt

黄舟
Freigeben: 2023-03-16 21:40:02
Original
2196 Leute haben es durchsucht

Beispiel

Fügen Sie vor jedem doppelten Anführungszeichen (") einen Backslash hinzu:

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

Definition und Verwendung

Die Funktion addslashes() gibt die vordefinierte Zeichenfolge mit a zurück Backslash vor dem Zeichen

ist:

einfaches Anführungszeichen (')

doppeltes Anführungszeichen (")

Backslash()

NULL

Tipp: Mit dieser Funktion können geeignete Zeichenfolgen für in der Datenbank gespeicherte Zeichenfolgen sowie Datenbankabfrageanweisungen vorbereitet werden.

Hinweis: Standardmäßig ist die PHP-Direktive magic_quotes_gpc aktiviert und führt automatisch addslashes() für alle GET-, POST- und COOKIE-Daten aus. Verwenden Sie addslashes() nicht für Zeichenfolgen, die von magic_quotes_gpc maskiert wurden, da dies zu doppeltem Escapezeichen führt. Wenn diese Situation auftritt, können Sie die Funktion get_magic_quotes_gpc() zur Erkennung verwenden.

Syntax

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

Technische Details

返回值:返回已转义的字符串。
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.";
?>
Nach dem Login kopieren

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

单引号(')

双引号(")

反斜杠(\)

NULL

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

$str="my name&#39;s wxp";
Nach dem Login kopieren

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

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

然后在拼接mysql字符串:

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

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

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

Das obige ist der detaillierte Inhalt vonPHP gibt die Funktion addslashes() zurück, die vor einem vordefinierten Zeichen einen Backslash einfügt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage