我有一个php脚本,可以截断41个字节的字符串。我在字符串上调用strlen来检查它的大小。但是,如果字符串具有“\ r \ n”组合,则此组合将被视为一个字节。所以在我的情况下,而不是42个字节,PHP认为它是41个字节。
此外,substr将其截断为42而不是41个字节。
if (strlen($value) > 41)
{
$value = substr($value, 0, 41);
另一种奇怪的情况。我有一大堆数据通过这个函数。成千上万的字符串。如果我使用更简单的测试数据集,那么代码可以正常工作,将“\ r \ n”视为2个字节。
有什么想法吗? 感谢。
答案 0 :(得分:1)
将组合\ r \ n转换为\ n,执行您需要的操作,然后将所有\ n还原为组合...
str_replace("\r\n","\n",$value);
if (strlen($value) > 41)
{
$value = substr($value, 0, 41);
str_replace("\n","\r\n",$value);
希望这对你有用,不知道你想做什么