在PHP中,二进制安全的函数是什么意思?
2022-08-30 06:56:48
在二进制安全的
函数是什么意思?PHP
是什么让它们特别,它们通常在哪里使用?
这意味着当您传递任意二进制数据(即包含非ASCII字节和/或空字节的字符串)时,该函数将正常工作。
例如,非二进制安全函数可能基于 C 函数,该函数需要以 null 结尾的字符串,因此,如果字符串包含 null 字符,则该函数将忽略它后面的任何内容。
这是相关的,因为PHP不会完全分离字符串和二进制数据。
其他用户已经提到了一般含义。binary safe
在PHP中,含义更具体,仅引用Michael给出的示例。
PHP 中的所有字符串都有一个关联的长度,即组成它的字节数。当函数操作字符串时,它可以:
0
引擎操作的所有字符串 PHP 变量也是空终止的,这也是事实。依赖于 2. 的函数的问题在于,如果字符串本身包含一个带值的字节,则操作它的函数会认为字符串在该点已结束,并将忽略之后的所有内容。0
例如,如果PHP的函数像C标准库一样工作,这里的结果将是错误的:strlen
strlen
$str = "abc\x00abc";
echo strlen($str); //gives 7, not 3!