gpt4 book ai didi

php - 检查二进制字符串长度?

转载 作者:可可西里 更新时间:2023-11-01 12:26:49 26 4
gpt4 key购买 nike

在 PHP 中是否有一种 native 或廉价的方法来检查字符串的字节长度?

最佳答案

参见 http://bytes.com/topic/php/answers/653733-binary-string-length

相关部分:

"In PHP, like in C, the string ends with a zero-character, '\0', (char) 0, null-terminator, null-byte or whatever you like to call it."

不,事实并非如此 - PHP 字符串与长度和长度一起存储 数据,不像 C 字符串只有一个指针并使用终止符。他们是 “二进制安全”- NUL 不会终止字符串。

参见zend.h中zvalue_value的定义;字符串部分有一个“字符 *val”和“int len”。

如果您使用的是 mbstring.func_overload,问题就会开始,它会改变 strlen() 和其他函数如何工作,并尝试将字符串视为 特定编码的字符串而不是字节串。 这不是正常的 PHP 行为。

答案是无论字符串的内容如何,​​strlen 都应该返回字节数。对于多字节字符串,您会得到错误的字符数,但得到正确的字节数。但是,您需要确定您没有使用 mbstring 重载,它会改变 strlen 的行为方式。

关于php - 检查二进制字符串长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3242578/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com