二进制安全是什么意思?

WBOY
发布: 2016-06-06 20:43:54
原创
2164 人浏览过

在PHP的有些方法的说明中,有的说是“二进制安全”。这是什么意思?

回复内容:

在PHP的有些方法的说明中,有的说是“二进制安全”。这是什么意思?

就是指函数的参数包括二进制数据的时候,函数依然能正常操作。

例如strlen,在输入数据里有\0的时候,并不会在此停止。所以可以说是二进制安全的。

我也在 redis 数据库介绍上看到这样的说法.我认为的二进制安全应该是说:
只关心二进制化的字符串,不关心具体格式.只会严格的按照二进制的数据存取.不会妄图已某种格式解析数据.
有时候以错误的格式打开一个文件,会导致文件发生不可逆的损坏.而二进制安全就是说会避免这种损坏.

比如函数strcoll,它是非二进制安全。而strcmp则是二进制安全的。

它们的区别是:

<code>$string1 = "Hello";
$string2 = "Hello\x00Hello";
echo strcoll($string1, $string2); // 返回0, 由于是非二进制安全,误判为相等
echo strcmp($string1, $string2); // 返回负数
</code>
登录后复制
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!