【问题标题】:Difference between mb_substr and substrmb_substr 和 substr 的区别
【发布时间】:2012-10-18 17:09:01
【问题描述】:

如果我使用 substr() 而不是 mb_substr() 函数,它会对我的结果产生任何影响或影响吗?

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

【问题讨论】:

    标签: php string multibyte


    【解决方案1】:

    如果您有 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é
    

    【讨论】:

    • 这个确实回答了这个问题,而接受的答案却没有。
    【解决方案2】:

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

    【讨论】:

    【解决方案3】:

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

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

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

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

    【讨论】:

    • 注意php.ini设置mbstring.func_overload会影响这个差异,所以substr实际使用mb_substr代码
    • @Lawrence Cherone:substr() 也是如此。位置从 str 的开头开始计算。第一个字符的位置是 0。第二个字符的位置是 1
    猜你喜欢
    • 1970-01-01
    • 2018-08-13
    • 1970-01-01
    • 2011-05-31
    • 2012-04-24
    • 2011-09-28
    • 2017-10-01
    • 2023-02-24
    相关资源
    最近更新 更多