注意php的轉義字串

2022-03-24 10:43:40 字數 1797 閱讀 6160

今天碰到乙個處理檔案特殊字元的事情,再次注意到這個問題,在php中:

* 以單引號為定界符的php字串,支援兩個轉義\'和\\

* 以雙引號為定界符的php字串,支援下列轉義:

\n 換行(lf 或 ascii 字元 0x0a(10))

\r 回車(cr 或 ascii 字元 0x0d(13))

\t 水平製表符(ht 或 ascii 字元 0x09(9))

\\ 反斜線

\$ 美元符號

\" 雙引號

\[0-7]               此正規表示式序列匹配乙個用八進位制符號表示的字元 

\x[0-9a-fa-f]  此正規表示式序列匹配乙個用十六進製制符號表示的字元

舉幾個例子:

乙個包含\0特殊字元的例子:

$str ="ffff\0ffff";

echo(strlen($str));

echo("\n");

for($i=0;$i輸出結果:

----------------------

9102     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\t".ord($str));

echo("\n");

輸出結果:

----------------------

8102     102     102     102     102     102     102     102

八進位制ascii碼例子:

//注意,符合正則\[0-7]的字串,表示乙個八進位制的ascii碼。

$str ="\0\01\02\3\7\10\011\08\

8";//這裡的\8不符合要求,被修正為"\\8" (ascii為92和56)

echo(strlen($str));

echo("\n");

for($i=0;$i0 

56 92  

56

十六進製制ascii碼例子:

$str = "\x0\x1\x2\x3\x7\x8\x9\x10\x11\xff";

echo(strlen($str));

echo("\n");

for($i=0;$iecho("\n");

輸出結果:

----------------------

100       1       2       3       7       8       9       16      17      255

注意php的轉義字串

今天碰到乙個處理檔案特殊字元的事情,再次注意到這個問題,在php中 以單引號為定界符的php字串,支援兩個轉義 和 以雙引號為定界符的php字串,支援下列轉義 n 換行 lf 或 ascii 字元 0x0a 10 r 回車 cr 或 ascii 字元 0x0d 13 t 水平製表符 ht 或 asc...

PHP字串轉義

1.magic quotes runtime 2.magic quotes gpc 3.addslashes 和stripslashes 4.mysql escape string 5.addcslashes 和stripcslashes 6.htmlentities 和html entity de...

php 字串轉義

單引號 想表達單引號自身,需要用反斜線 轉義 想表達反斜線 自身,需要用雙反斜線 其他任何轉義序列 r n等,都會當作字串處理 輸出 a bcd echo a bcd 輸出 a bcd echo a bcd 輸出 a bcd echo a bcd 輸出 a nbcd echo a nbcd 雙引號 ...