码迷,mamicode.com
首页 > Web开发 > 详细

PHP二进制安全的含义

时间:2014-12-23 19:43:02      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:

PHP里,有string的概念。

string里,每个字符的大小为byte(与PHP相比, J啊v阿德每个字符为Character,是UTF8字符,C语言的每个字符可以在编译时选择)。

byte里,有ASCII代码的字符, 例如ABC, 123, abc ,也有一些特殊字符,例如回车,退格之类的

特殊字符很多是不能显示的。或者说, 他们呢的显示方式没有标准,例如编码65到哪儿都是字母A,编码97到哪儿否时字符a, 退格在有的地方显示成一个符号, 在有的地方救活真的把前一个字符退掉。

PHP以C为基础,所以很多描述都是以C为对比。C的字符串里, 一种经典的定义就是, 以编码0作为字符串的结尾。那么,假设这样一个string里面3个字符的编码分别是97,0,97。那么,c里面如果有str_replace等效的函数,利用它把97换成98,那么这个函数读到0的时候,就认为已经结束了,就会得到98,0,97。跟它对应的,PHP里面的str_replace是二进制安全的,那么这个0是不会被视为特殊的结束符号,于是结果就是98,0,98。

『二进制安全』在PHP文档里面,基本上就是这么一个意思:C语言里面的功能类似的函数会对有的字符特别处理,而PHP这个函数对于所有字符一视同仁, 不用担心会有特殊字符影响处理,特别不用担心编码0字符

PHP二进制安全的含义

标签:

原文地址:http://my.oschina.net/syc2013/blog/359665

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!