substr() return 不正确的字符数
substr() return incorrect number of characters
substr()
返回 28 个字符而不是 25 个。
$nature_goods
是输入框,用户可以在这里输入包含特殊字符的字符串。
代码
$nature_goods = "Nature quantityyy of goods is nice 120pcs 1*X23X24898";
echo strlen($nature_goods);
echo "<br>";
echo substr($nature_goods, 0,25);
echo "<br>";
echo strlen(substr($nature_goods, 0,25));
echo "<br>";
echo substr($nature_goods, 25,50);
echo "<br>";
echo strlen(substr($nature_goods, 25,50));
echo "<br>";
输出
53
Nature quantityyy of good
25
s is nice 120pcs 1*X23X24898
28
我尝试了 mb_substr()
和 mb_strlen()
,但我没有看到任何多字节字符串造成问题。谁能指出错误?
您使用的 substr 不正确。
您正在使用传递给函数的最后一个值作为终点而不是长度,例如抓取 25 到 50 之间的字符,而不是像您应该使用的那样使用 substr写的,是跳过前25个字符后抓取50个字符。
最后的函数调用应该是substr($nature_goods, 25, 25);如果您希望在 return.
中收到 25 个字符
substr 的预期值:
substr ( 字符串 $string , int $start , int $length )
这里有完整的文档:
substr()函数第三个参数是用来设置长度的,不是用来设置位置的。更多详情请访问
substr()
返回 28 个字符而不是 25 个。
$nature_goods
是输入框,用户可以在这里输入包含特殊字符的字符串。
代码
$nature_goods = "Nature quantityyy of goods is nice 120pcs 1*X23X24898";
echo strlen($nature_goods);
echo "<br>";
echo substr($nature_goods, 0,25);
echo "<br>";
echo strlen(substr($nature_goods, 0,25));
echo "<br>";
echo substr($nature_goods, 25,50);
echo "<br>";
echo strlen(substr($nature_goods, 25,50));
echo "<br>";
输出
53
Nature quantityyy of good
25
s is nice 120pcs 1*X23X24898
28
我尝试了 mb_substr()
和 mb_strlen()
,但我没有看到任何多字节字符串造成问题。谁能指出错误?
您使用的 substr 不正确。
您正在使用传递给函数的最后一个值作为终点而不是长度,例如抓取 25 到 50 之间的字符,而不是像您应该使用的那样使用 substr写的,是跳过前25个字符后抓取50个字符。
最后的函数调用应该是substr($nature_goods, 25, 25);如果您希望在 return.
中收到 25 个字符substr 的预期值:
substr ( 字符串 $string , int $start , int $length )
这里有完整的文档:
substr()函数第三个参数是用来设置长度的,不是用来设置位置的。更多详情请访问