php 字符转义 注意事项

2015-01-24信息快讯网

今天碰到一个处理文件特殊字符的事情,再次注意到这个问题

在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中转义mysql语句的实现代码
PHP中输出转义JavaScript代码的实现代码
PHP中=赋值操作符对不同数据类型的不同行为
完美实现GIF动画缩略图的php代码
php实现无限级分类实现代码(递归方法)
php下尝试使用GraphicsMagick的缩略图功能
PHP读取XML值的代码(推荐)
php数据入库前清理 注意php intval与mysql的int取值范围不同
php下使用iconv需要注意的问题
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
学习php笔记 字符串处理
windows下升级PHP到5.3.3的过程及注意事项
PHP开发的一些注意点总结
php下清空字符串中的HTML标签的代码
PHP开发需要注意的安全问题
PHP下对字符串的递增运算代码
PHP 截取字符串专题集合
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
php 字符过滤类,用于过滤各类用户输入的数据
PHP的单引号和双引号 字符串效率
php session 错误
php print EOF实现方法
php 方便水印和缩略图的图形类
PHP 字符串编码截取函数(兼容utf-8和gb2312)
PHP mb_convert_encoding 获取字符串编码类型实现代码
php 随机生成10位字符代码
Php Cookie的一个使用注意点
PHP Header用于页面跳转要注意的几个问题总结
php下防止单引号,双引号在接受页面转义的设置方法
php5 pdo新改动加载注意事项
新安装的MySQL数据库需要注意的安全知识
php 防止单引号,双引号在接受页面转义
Mysql中limit的用法方法详解与注意事项
PHP字符转义相关函数小结(php下的转义字符串)
©2014-2024 dbsqp.com