A. 請問php中的轉義字元是什麼 能詳細說一下嗎
在php中:
* 以單引號為定界符的php字元串,支持兩個轉義\'和\\
* 以雙引號為定界符的php字元串,支持下列轉義:
\n 換行(LF 或 ASCII 字元 0x0A(10))
\r 回車(CR 或 ASCII 字元 0x0D(13))
\t 水平製表符(HT 或 ASCII 字元 0x09(9))
\\ 反斜線
\$ 美元符號
\" 雙引號
\[0-7]{1,3} 此正則表達式序列匹配一個用八進制符號表示的字元
\x[0-9A-Fa-f]{1,2} 此正則表達式序列匹配一個用十六進制符號表示的字元
舉幾個例子:
一個包含\0特殊字元的例子:
$str = "ffff\0ffff";
echo(strlen($str));
echo("\n");
for($i=0;$i<strlen($str);$i++)echo("\t".ord($str{$i}));
echo("\n");
輸出結果:
----------------------
9
102 102 102 102 0 102 102 102 102
替換特殊字元的例子
$str = "ffff\0ffff";
$str = str_replace("\x0", "", $str);
//或者用$str = str_replace("\0", "", $str);
//或者用$str = str_replace(chr(0), "", $str);
echo(strlen($str));
echo("\n");
for($i=0;$i<strlen($str);$i++)echo("\t".ord($str{$i}));
echo("\n");
輸出結果:
----------------------
8
102 102 102 102 102 102 102 102
八進制ascii碼例子:
//注意,符合正則\[0-7]{1,3}的字元串,表示一個八進制的ascii碼。
$str = "\0\01\02\3\7\10\011\08\8"; //這里的\8不符合要求,被修正為"\\8" (ascii為92和56)
echo(strlen($str));
echo("\n");
for($i=0;$i<strlen($str);$i++)echo("\t".ord($str{$i}));
echo("\n");
輸出結果:
----------------------
11
0 1 2 3 7 8 9 0 56 92 56
十六進制ascii碼例子:
$str = "\x0\x1\x2\x3\x7\x8\x9\x10\x11\xff";
echo(strlen($str));
echo("\n");
for($i=0;$i<strlen($str);$i++)echo("\t".ord($str{$i}));
echo("\n");
輸出結果:
----------------------
10
0 1 2 3 7 8 9 16 17 255
B. php mysql轉義特殊字元的函數有哪些
addslashes對SQL語句中的特殊字元進行轉義操作,包括(『), (「), (), (NUL)四個字元,此函數在DBMS沒有自己的轉義函數時候使用,但是如果DBMS有自己的轉義函數,那麼推薦使用原裝函數,比如MySQL有mysql_real_escape_string函數用來轉義SQL。 注意在PHP5.3之前,magic_quotes_gpc是默認開啟的,其主要是在$GET, $POST, $COOKIE上執行addslashes操作,所以不需要在這些變數上重復調用addslashes,否則會double escaping的。不過magic_quotes_gpc在PHP5.3就已經被廢棄,從PHP5.4開始就已經被移除了,如果使用PHP最新版本可以不用擔心這個問題。stripslashes為addslashes的unescape函數。
C. PHP7如何在php.ini文件中開啟自動轉義功能 php.ini中不包含magic-quote
首先說明下magic-quote在PHP5.4版本中就已經廢除了。詳情請參考:https://www.php.net/manual/zh/info.configuration.php
應用示例
D. php轉義字元,這是什麼意思
\的意思是轉義
如果你雙引號里要出現雙引號是不行的,所以要轉義
比如:\"就是相當於'
(轉義雙引號等於單引號)
\'等於'
(轉義單引號等於單引號)
你這段的意思是:執行循環,次數為3次。循環輸出表格的列(align=\ "center \設定為居中)。img是 圖片,scr是圖片位置,位置是數組 $pictures的第$i個(根據循環次數來定)
echo " \ " /></td>"; \ " />是img的結束標記 </td>是列的結束標記
不過我感覺程序有點問題。。
E. PHP的轉義問題
當要將一個有特殊用途的符號作為一個普通字元使用,或者要使用一個普通字元的特殊用法時,就要用轉義。
比如 " 是用來限定字元串的,當一個字元串中有一個"時,就要用 \ 轉義,就像 "abc"d" 這樣,c 後面的 " ,我們想要讓它作為一個普通字元雙引號,這種表示是錯誤的,只有 abc 才被當作字元串處理,而後面的 d" 這部分無法處理,出現語法錯誤,正確的表示方法是 "abc\"d" 。同理,\r 不再是字母 r ,而是回車,\n 也不再是字母 n ,而是換行。
你的代碼中,因為 sql 語句應該是
select id from gb_users where username='name'
這里應該有引號,而引號和雙引號都是限定字元串的特殊符號,只有用 \ 轉義,才能將其作為一個和=一樣的普通符號包含在 sql 語句中。
F. 誰能教我php轉義.我只要一段插入資料庫的文本框內容裡面,把特殊字元前面加空格.誰能教我,或者給我段現成的
默認狀態下,php的魔術引用是打開的,此時客戶端提交過來的變數,其中的單雙引號等,都會被php做轉義處理,即加反斜杠,程序可以先獲取當前配置,如果魔術引用打開,就調用stripslashes函數去除反斜杠:
if (get_magic_quotes_gpc())
$input = stripslashes($_POST['input']);
G. php怎麼把數組里的數字值轉義成純數字
1、你可以用current來輸出:
echocurrent($_clean['ids']);
2、implode函數生成的本領就是個字元串,本來就可以用echo輸出……