首頁  >  文章  >  後端開發  >  php傳回在預定義字元前加反斜線的函數addslashes()

php傳回在預定義字元前加反斜線的函數addslashes()

黄舟
黄舟原創
2017-11-02 09:45:442154瀏覽

實例

在每個雙引號(")前面加上反斜線:

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

定義和用法

addslashes() 函數傳回在預先定義的字符前面加入反斜線的字串。槓(\)

NULL

提示:此函數可用於為儲存在資料庫中的字串以及資料庫查詢語句準備合適的字串。

註解:預設情況下,PHP 指令 magic_quotes_gpc 為 on,對所有的 GET、POST 和 COOKIE 資料自動執行 addslashes()。不要對已經被 magic_quotes_gpc 轉義過的字串使用 addslashes(),因為這樣會導致雙層轉義。遇到這種情況時可以

使用函數

get_magic_quotes_gpc

() 進行偵測。

語法

addslashes(string)

參數

#描述

string技術細節#傳回值:
必需。規定要轉義的字串。
傳回已轉義的字串。

PHP 版本:#

更多实例

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

<?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数据插入数据库时才会把反斜杠同时插入到数据库,其他情况下不会将反斜杠插入到数据库。

4+

以上是php傳回在預定義字元前加反斜線的函數addslashes()的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn