php 字符转义 注意事项


Posted in PHP onMay 27, 2009

在php中:

* 以单引号为定界符的php字符串,支持两个转义\'和\\
* 以双引号为定界符的php字符串,支持下列转义:
\n 换行(LF 或 ASCII 字符 0x0A(10))
\r 回车(CR 或 ASCII 字符 0x0D(13))
\t 水平制表符(HT 或 ASCII 字符 0x09(9))
\\ 反斜线
\$ 美元符号
\" 双引号
\[0-7]{1,3} 此正则表达式序列匹配一个用八进制符号表示的字符
\x[0-9A-Fa-f]{1,2} 此正则表达式序列匹配一个用十六进制符号表示的字符

举几个例子:

一个包含\0特殊字符的例子:

$str = "ffff\0ffff";
echo(strlen($str));
echo("\n");
for($i=0;$i<strlen($str);$i++)echo("\t".ord($str{$i}));
echo("\n");

输出结果:
----------------------

9
102 102 102 102 0 102 102 102 102

替换特殊字符的例子

$str = "ffff\0ffff";
$str = str_replace("\x0", "", $str);
//或者用$str = str_replace("\0", "", $str);
//或者用$str = str_replace(chr(0), "", $str);
echo(strlen($str));
echo("\n");
for($i=0;$i<strlen($str);$i++)echo("\t".ord($str{$i}));
echo("\n");
输出结果:
----------------------
8
102 102 102 102 102 102 102 102

八进制ascii码例子:

//注意,符合正则\[0-7]{1,3}的字符串,表示一个八进制的ascii码。
$str = "\0\01\02\3\7\10\011\08\8"; //这里的\8不符合要求,被修正为"\\8" (ascii为92和56)
echo(strlen($str));
echo("\n");
for($i=0;$i<strlen($str);$i++)echo("\t".ord($str{$i}));
echo("\n");
输出结果:
----------------------
11
0 1 2 3 7 8 9 0 56 92 56

十六进制ascii码例子:

$str = "\x0\x1\x2\x3\x7\x8\x9\x10\x11\xff";
echo(strlen($str));
echo("\n");
for($i=0;$i<strlen($str);$i++)echo("\t".ord($str{$i}));
echo("\n");
输出结果:
----------------------
10
0 1 2 3 7 8 9 16 17 255

PHP 相关文章推荐
php判断字符以及字符串的包含方法属性
Aug 30 PHP
为IP查询添加GOOGLE地图功能的代码
Aug 08 PHP
PHP操作数组的一些函数整理介绍
Jul 17 PHP
利用php下载xls文件(自己动手写的)
Apr 18 PHP
如何解决PHP无法实现多线程的问题
Sep 25 PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
Apr 03 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
Dec 26 PHP
Laravel使用消息队列需要注意的一些问题
Dec 13 PHP
PHP笛卡尔积实现算法示例
Jul 30 PHP
PHP使用SMTP邮件服务器发送邮件示例
Aug 28 PHP
PHP中上传文件打印错误错误类型分析
Apr 14 PHP
PHP 时间处理类Carbon
May 20 PHP
php 字符过滤类,用于过滤各类用户输入的数据
May 27 #PHP
PHP的单引号和双引号 字符串效率
May 27 #PHP
php session 错误
May 21 #PHP
php print EOF实现方法
May 21 #PHP
php 方便水印和缩略图的图形类
May 21 #PHP
简单的php 验证图片生成函数
May 21 #PHP
PHP 数组入门教程小结
May 20 #PHP
You might like
PHP IPV6正则表达式验证代码
2010/02/16 PHP
php判断类是否存在函数class_exists用法分析
2014/11/14 PHP
Yii2中多表关联查询hasOne hasMany的方法
2017/02/15 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
jquery中的 $(&quot;#jb51&quot;)与document.getElementById(&quot;jb51&quot;) 的区别
2011/07/26 Javascript
js Math 对象的方法
2013/09/01 Javascript
9行javascript代码获取QQ群成员具体实现
2013/10/16 Javascript
JavaScript类属性的访问方式详解
2014/02/11 Javascript
jquery单行文字向上滚动效果的实现代码
2014/09/05 Javascript
JavaScript中的函数(二)
2015/12/23 Javascript
JavaScript通过使用onerror设置默认图像显示代替alt
2016/03/01 Javascript
jQuery中事件与动画的总结分享
2016/05/24 Javascript
Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统
2016/05/27 Javascript
AngularJS 单元测试(二)详解
2016/09/21 Javascript
ES6学习笔记之Set和Map数据结构详解
2017/04/07 Javascript
微信小程序自定义toast实现方法详解【附demo源码下载】
2017/11/28 Javascript
详解ES6中的三种异步解决方案
2018/06/28 Javascript
VUE引入第三方js包及调用方法讲解
2019/03/01 Javascript
vue实现权限控制路由(vue-router 动态添加路由)
2019/11/04 Javascript
深入理解NumPy简明教程---数组3(组合)
2016/12/17 Python
python如何使用unittest测试接口
2018/04/04 Python
python3获取两个日期之间所有日期,以及比较大小的实例
2018/04/08 Python
python和shell获取文本内容的方法
2018/06/05 Python
浅谈python写入大量文件的问题
2018/11/09 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
Python timer定时器两种常用方法解析
2020/01/20 Python
python 读取二进制 显示图片案例
2020/04/24 Python
pytorch实现查看当前学习率
2020/06/24 Python
基于tensorflow for循环 while循环案例
2020/06/30 Python
用ldap作为django后端用户登录验证的实现
2020/12/07 Python
CSS3制作缩略图的详细过程
2016/07/08 HTML / CSS
基于zepto的插件之移动端无缝向上滚动并上下触摸滑动实例代码
2016/12/20 HTML / CSS
考试作弊被抓检讨书
2014/01/10 职场文书
活动总结模板
2014/05/09 职场文书
庆祝国庆节演讲稿2014
2014/09/19 职场文书
投诉书格式范本
2015/07/02 职场文书