addcslashes

(PHP 4, PHP 5)

addcslashes -- 像 C 那樣使用反斜線轉義字串中的字元

描述

string addcslashes ( string str, string charlist )

返回字串,該字串在屬於參數 charlist 清單中的字元前都加上了反斜線。此函數對 \n\r 等進行轉義。像 C 那樣,ASCII 碼低於 32 以及高於 126 的字元均轉換成使用八進位表示。

當你選取對字元 0、a、b、f、n、r、t 和 v 進行轉義時需要小心,它們將被轉換成 \0、\a、\b、\f、\n、\r、\t 和 \v。在 PHP 中,只有 \0(NULL)、\r(換行符)、\n(換行符)和 \t(分隔設定)是預定義的轉義序列, 而在 C 中,上述的所有轉換後的字元都是預定義的轉義序列。

charlist 參數,如「\0..\37」,將轉義所有 ASCII 碼介於 0 和 37 之間的字元。

例子 1. addcslashes() 示例

<?php
$escaped 
addcslashes($not_escaped"\0..\37!@\177..\377");
?>

當定義 charlist 參數中的字元序列時,你需要確實知道介於你自己設定的開始及結束範圍之內的都是些什麼字元。

<?php
echo addcslashes('foo[ ]''A..z');
// 輸出:\f\o\o\[ \]
// 所有大小寫字母均被轉義
// ... 但 [\]^_` 以及分隔設定、換行符、換行符等也一併被轉義了。
?>

另外,若果設定範圍中的結束字元 ASCII 碼高於開始字元,則不會建立範圍,只是將開始字元、結束字元以及其間的字元逐個轉義。可使用 ord() 函數取得字元的 ASCII 碼值。

<?php
echo addcslashes("zoo['.']"'z..A');
// 輸出:\zoo['\.']
?>

參見 stripcslashes()stripslashes()htmlspecialchars()quotemeta()