[PHP API档案] addcslashes
本帖最后由 大麦田 于 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 语言中,上述的所有转换后的字符都是预定义的转义序列。
鱼C侦探团 谢谢分享资源 网络学习 发表于 2014-10-1 01:39
谢谢分享资源
多谢关注,如果对你学习php有帮助,我会抽空继续更新的
页:
[1]