马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 大麦田 于 2014-9-12 18:38 编辑
以 C 语言风格使用反斜线转义字符串中的字符。
函数原型:string addcslashes ( string $str , string $charlist )
函数功能:字符串$str中,所有属于参数 $charlist 列表中的字符,前面都加上了反斜线。
函数参数:
参数 | 含义 | $str | 要转义的字符 | $charlist | 如"A..Z",将转义所有大写字母。那 "Z..A" 呢? |
函数实例:
<?php
//将转义所有ASCII码在97-122之间字符 A-z
$not_escaped = "[ The quick brown fox jumps over a lazy dog. ]";
//第一种做法 A..z 相当于 A-z的意思,ascii码小的写前面,大的写后面
$escaped = addcslashes($not_escaped, 'A..z');
echo $escaped;
echo "<br />"; //html显示的换行
?>
进阶:<?php
//上面的结果,和下面哪个的结果一致呢?
$not_escaped = "[ The quick brown fox jumps over a lazy dog. ]";
$escaped_ascii = addcslashes($not_escaped, "\65..\122");
$escaped_dec = addcslashes($not_escaped, "\101..\172");
echo $escaped_ascii;
echo "<br />";
echo $escaped_dec;
echo "<br />";
//原因是 \xxx表示8进制数字;
//而\101 和 \172 是八进制的 65|A 和 97|z
?>
<?php
//提供一个简易计算函数
function ascii_to_dec($char)
{
$ascii = ord($char); //求得$char的ascii码
return decoct($ascii); //将ascii码转化为八进制形式,返回
}
echo ascii_to_dec('A');
echo " ";
echo ascii_to_dec('z');
echo "<br />";
?>
注意事项:
当$charlist中 包含字符 0, a, b, f, n, r, t 和 v 转义时,
将被转换成 \0,\a,\b,\f,\n,\r,\t 和 \v。
在 PHP 中,只有 \0(NULL),\r(回车符),\n(换行符)和 \t(制表符)是预定义的转义序列。
在 C 语言中,上述的所有转换后的字符都是预定义的转义序列。
|