用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4124|回复: 4
收起左侧

PHP手册中的 binary-safe什么意思

[复制链接]
发表于 2011-7-30 10:45:54 | 显示全部楼层 |阅读模式
PHP手册中许多函数,如strtolower手册中这样一句话:

Notes
Note: This function is binary-safe.
函数是二进制安全,这个什么意思啊?
我在phpChina上
http://bbs.phpchina.com/viewthread.php?tid=26296&extra=&page=1
有讨论,但是没有什么结果
“二进制安全功能(binary-safe function)是指在一个二进制文件上所执行的不更改文件内容的功能或者操作”
也就是说对二进制文件是只读的??
求解释,感激不尽!!


发表于 2011-7-30 22:20:57 | 显示全部楼层
这个从字面就很好理解吧,就是可以安全操作二进制数据。
不会因为你的操作而丢失任何字节,比如 ASCII 0 都不会丢失。
 楼主| 发表于 2011-7-31 07:30:46 | 显示全部楼层
Hex 发表于 2011-7-30 22:20
这个从字面就很好理解吧,就是可以安全操作二进制数据。
不会因为你的操作而丢失任何字节,比如 ASCII 0 都 ...

也就是下面这个解释是正确的?
“二进制安全功能(binary-safe function)是指在一个二进制文件上所执行的不更改文件内容的功能或者操作”

能否举个例子呢?还是不甚明白
就拿strtolower这个函数来说,他接受一个字符串作为参数
[Manual]Returns string with all alphabetic characters converted to lowercase.
Note that 'alphabetic' is determined by the current locale.
它又怎么会接触二进制数据呢?是指该函数在c语言实现的时候对参数的操作么?
发表于 2011-7-31 14:49:06 | 显示全部楼层
hk_yuhe 发表于 2011-7-31 07:30
也就是下面这个解释是正确的?
“二进制安全功能(binary-safe function)是指在一个二进制文件上所执行 ...

PHP的字符串是可以接受二进制数据的,比如你可以把一个二进制文件读入一个字符串变量中,比如一个GIF图片的数据,可以存到一个变量中,而可以操作这个变量的函数,就是二进制安全的,不安全的话会把他当作文本来操作,那样就会有不可预料的错误。
因为文本只包括可见字符,这个你可以查阅 ASCII 表来了解什么是可见字符,二进制就包含不可见字符了。

这样你应该就明白了吧,二进制安全的你就可以理解成可以操作 GIF 文件数据,而不安全的只能操作纯文本。

评分

参与人数 1威望 +2 收起 理由
saturn + 2 正解!

查看全部评分

 楼主| 发表于 2011-8-4 11:01:04 | 显示全部楼层
Hex 发表于 2011-7-31 14:49
PHP的字符串是可以接受二进制数据的,比如你可以把一个二进制文件读入一个字符串变量中,比如一个GIF图片 ...

多谢多谢,这下终于明白了!

本版积分规则