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 项目的方法
Jan 02 PHP
set_include_path在win和linux下的区别
Jan 10 PHP
PHP中删除变量时unset()和null的区别分析
Jan 27 PHP
php生成二维码的几种方式整理及使用实例
Jun 03 PHP
php全角字符转换为半角函数
Feb 07 PHP
C#使用PHP服务端的Web Service通信实例
Apr 08 PHP
PHP中include和require的区别实例分析
May 07 PHP
PHP关于foreach复制知识点总结
Jan 28 PHP
浅谈PHP进程管理
Mar 08 PHP
PHP判断是否微信访问的方法示例
Mar 27 PHP
Centos7 Yum安装PHP7.2流程教程详解
Jul 02 PHP
laravel框架使用极光推送消息操作示例
Feb 15 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
使用 PHPStorm 开发 Laravel
2015/03/24 PHP
详解PHP+AJAX无刷新分页实现方法
2015/11/03 PHP
PHP封装的mysqli数据库操作类示例
2019/02/16 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
Javascript Tab 导航插件 (23个)
2009/06/11 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
2011/04/07 Javascript
利用NodeJS的子进程(child_process)调用系统命令的方法分享
2013/06/05 NodeJs
Flexigrid在IE下不显示数据的处理的解决方法
2013/10/24 Javascript
浅析js设置控件的readonly与enabled属性问题
2013/12/25 Javascript
使用JQuery实现智能表单验证功能
2016/03/08 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
2017/01/19 Javascript
微信小程序websocket实现聊天功能
2020/03/30 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
2019/07/03 Javascript
使用VueCli3+TypeScript+Vuex一步步构建todoList的方法
2019/07/25 Javascript
CentOS 8.2服务器上安装最新版Node.js的方法
2020/12/16 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
浅谈Python 集合(set)类型的操作——并交差
2016/06/30 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
2018/06/06 Python
itchat-python搭建微信机器人(附示例)
2019/06/11 Python
Python内置方法实现字符串的秘钥加解密(推荐)
2019/12/09 Python
Python综合应用名片管理系统案例详解
2020/01/03 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
2020/02/25 Python
python爬虫开发之Request模块从安装到详细使用方法与实例全解
2020/03/09 Python
CSS伪类与CSS伪元素的区别及由来具体说明
2012/12/07 HTML / CSS
Tiqets英国:智能手机上的文化和娱乐门票
2019/07/10 全球购物
美国踏板车和轻便摩托车销售网站:Mega Motor Madness
2020/02/26 全球购物
给实习单位的感谢信
2014/02/01 职场文书
服务型党组织建设典型材料
2014/05/07 职场文书
教师党员学习十八届四中全会思想汇报
2014/11/03 职场文书
2016年小学生寒假总结
2015/10/10 职场文书
小学思想品德教学反思
2016/02/24 职场文书
2016年小学端午节活动总结
2016/04/01 职场文书
如何书写先进事迹材料?
2019/07/02 职场文书
扩展多台相同的Web服务器
2021/04/01 Servers
Python 实现定积分与二重定积分的操作
2021/05/26 Python
Unity连接MySQL并读取表格数据的实现代码
2021/06/20 MySQL