【发布时间】:2017-08-07 02:52:56
【问题描述】:
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(),但我没有看到任何多字节字符串造成问题。有人能指出错误吗?
【问题讨论】:
-
没有错 - 你的输出是正确的。从
s is.....开始只有 28 个字符,所以substr($nature_goods, 25,50);将只返回 28 -
但是 substr(25,50) 必须返回 25 个字符对吗?
-
不,它会从第 25 位检查 manual 返回最多 50 个字符,如果你只想要 25 个字符,你应该使用
substr($nature_goods, 25,25); -
哦,是的,谢谢 :) 我怎样才能结束这个问题?
-
我想只是删除问题。对未来的读者没有多大用处