我有一个PHP脚本,将字符串截断为41个字节。我使用strlen函数检查其大小。然而,如果字符串有"\r\n"组合,则此组合被视为一个字节。因此,在我的情况下,PHP认为它是41个字节而不是42个字节。
另外,substr将其截断为42个字节而不是41个字节。
if (strlen($value) > 41)
{
$value = substr($value, 0, 41);
又是一个奇怪的情况。我有一大批数据要通过这个函数传递。成千上万个字符串。如果我使用一个更简单的测试数据集,那么代码就能正确地处理"\r\n"作为2个字节。
有什么想法吗? 谢谢。
fopen
上的b
标志,否则它会将\r\n
转换为\n
。因此,如果42字节的假设源于文件大小或fread
长度,那么它不会与strlen
匹配。 - mario