鱼C论坛

 找回密码
 立即注册
查看: 3340|回复: 2

[PHP API档案] addcslashes

[复制链接]
发表于 2014-9-12 18:36:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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 语言中,上述的所有转换后的字符都是预定义的转义序列。





本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-10-1 01:39:34 | 显示全部楼层
谢谢分享资源
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-6 14:21:13 | 显示全部楼层

多谢关注,如果对你学习php有帮助,我会抽空继续更新的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 23:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表