我有一个PHP脚本,截断41字节的字符串.我在字符串上调用strlen来检查它的大小.但是,如果字符串具有"\ r \n"组合,则此组合将被视为一个字节.所以在我的情况下,而不是42字节,PHP认为它是41字节.
substr也将它截断为42而不是41个字节.
if (strlen($value) > 41)
{
$value = substr($value, 0, 41);
Run Code Online (Sandbox Code Playgroud)
另一种奇怪的情况.我有一大堆数据通过这个函数.成千上万的字符串.如果我使用更简单的测试数据集,那么代码可以正常工作,将"\ r \n"视为2个字节.
有任何想法吗?谢谢.
将组合 \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);
Run Code Online (Sandbox Code Playgroud)
希望这对你有用但不知道你想做什么