hk_yuhe 发表于 2011-7-30 10:45:54

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

PHP手册中许多函数,如strtolower手册中这样一句话:

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

Hex 发表于 2011-7-30 22:20:57

这个从字面就很好理解吧,就是可以安全操作二进制数据。
不会因为你的操作而丢失任何字节,比如 ASCII 0 都不会丢失。

hk_yuhe 发表于 2011-7-31 07:30:46

Hex 发表于 2011-7-30 22:20 static/image/common/back.gif
这个从字面就很好理解吧,就是可以安全操作二进制数据。
不会因为你的操作而丢失任何字节,比如 ASCII 0 都 ...

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

能否举个例子呢?还是不甚明白
就拿strtolower这个函数来说,他接受一个字符串作为参数
Returns string with all alphabetic characters converted to lowercase.
Note that 'alphabetic' is determined by the current locale.
它又怎么会接触二进制数据呢?是指该函数在c语言实现的时候对参数的操作么?

Hex 发表于 2011-7-31 14:49:06

hk_yuhe 发表于 2011-7-31 07:30 static/image/common/back.gif
也就是下面这个解释是正确的?
“二进制安全功能(binary-safe function)是指在一个二进制文件上所执行 ...

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

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

hk_yuhe 发表于 2011-8-4 11:01:04

Hex 发表于 2011-7-31 14:49 static/image/common/back.gif
PHP的字符串是可以接受二进制数据的,比如你可以把一个二进制文件读入一个字符串变量中,比如一个GIF图片 ...

多谢多谢,这下终于明白了!
页: [1]
查看完整版本: PHP手册中的 binary-safe什么意思