substr()
被返回,而不是25.SUBSTR()返回的字符数不正确
$nature_goods
28个字符被输入栏,其中用户可以输入包含特殊字符的字符串。
代码
$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开始只有28个字符是.....'so'substr($ nature_goods,25,50);'只返回28 – bansi
但是substr(25,50)必须返回25个字符吗? –
没有,它将从25位检查返回最多50个字符[手册](http://php.net/manual/en/function.substr.php)如果你想只有25个字符,你应该使用'SUBSTR($ nature_goods, 25,25);' – bansi