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()
,但我没有看到任何多字节字符串产生问题。有人可以指出错误吗?
答案 0 :(得分:0)
您正在错误地使用substr。
你使用传递给函数的最后一个值作为终点而不是长度,就像抓取25到50之间的字符一样,而不是使用它应该使用的substr,正如你所写的那样,在跳过前25个字符后抓取50个字符。
最后的函数调用应该是substr($ nature_goods,25,25);如果您希望收到25个字符作为回报。
substr:
的预期值substr(string $ string,int $ start,int $ length)
此处提供完整文档:
答案 1 :(得分:0)
在substr()函数中,第三个参数用于设置长度而不是设置位置。有关详细信息,请访问