|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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 语言中,上述的所有转换后的字符都是预定义的转义序列。
|
|