mb_substr和substr之间的区别

时间:2012-10-29 11:27:53

标签: php string multibyte

如果我使用substr()代替mb_substr()函数,会对我的结果产生任何影响吗?

由于我的服务器不支持mb_函数,我必须将其替换为substr()

3 个答案:

答案 0 :(得分:8)

如果使用子字符串的多字节文本,它将影响您的脚本。如果是这种情况,我强烈建议您在php.ini中启用mb_ *函数或执行此操作ini_set("mbstring.func_overload", 2);

答案 1 :(得分:4)

  

字符串substr ( string $string , int $start [, int $length ] )

返回start和length参数指定的字符串部分。

  

字符串mb_substr ( string $str , int $start [, int $length [, string $encoding ]] )

根据字符数执行多字节安全substr()操作。位置从str的开头计算。第一个字符的位置为0.第二个字符的位置为1,依此类推。

答案 2 :(得分:0)

如果您使用utf-8编码,请使用mb_substr

示例:

echo substr("hi mémé", 0 , 5); // will print hi m�
echo mb_substr("hi mémé", 0 , 5); // will print hi mé