• PHP中substr() mb_substr() mb_struct()的区别和用法


    PHP substr() 函数可以分割文字,但要分割的文字如果包括中文字符往往会遇到问题,这时可以用mb_substr()/mb_strcut这个函 数,mb_substr() /mb_strcut的用法与substr()相似,只是在mb_substr()/mb_strcut最后要加入多一个参数,以设定字符串的编码,但是 一般的服务器都没打开php_mbstring.dll,需要在php.ini在把php_mbstring.dll 打开。

    举个例子:
    <?php
    echo mb_substr('这样一来我的字符串就不会有乱码_', 0, 7, 'utf-8');
    ?>
    输出:这样一来我的字
    <?php
    echo mb_strcut('这样一来我的字符串就不会有乱码_', 0, 7, 'utf-8');
    ?>

    输出:这样一
    从上面的例子可以看出,mb_substr是按字来切分字符,而mb_strcut是按字节来切分字符,但是都不会产生半个字符的现象再举个例子,有一段文字, 分别用mb_substr和mb_strcut来做切分:

    <?php
    $str = '我是一串比较长的中文-www.webjx.com';

    echo "mb_substr:" . mb_substr($str, 0, 6, 'utf-8');

    echo "
    ";

    echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8');
    ?>

    输出结果如下:

    mb_substr:我是一串比较//按字符来截取,一个英文字母、一个汉字都是一个字符
    mb_strcut:我是//按字节数截取,一个汉字是3个字节数

    1.ASCII码:一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。
    2.UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。中文标点占三个字节,英文标点占一个字节
    3.Unicode编码:一个英文等于两个字节,一个中文(含繁体)等于两个字节。中文标点占两个字节,英文标点占两个字节


     



  • 相关阅读:
    将Excel文件转换为Html
    怎样录制屏幕并将结果保存为Gif
    Spire.Pdf 的各种操作总结
    在C#中使用Spire.doc对word的操作总结
    使用Spire.Barcode程序库生成二维码
    【BZOJ1304】[CQOI2009]叶子的染色(动态规划)
    【BZOJ1303】[CQOI2009]中位数图(模拟)
    【BZOJ1297】[SCOI2009]迷路(矩阵快速幂)
    【BZOJ1296】[SCOI2009]粉刷匠(动态规划)
    【BZOJ1295】[SCOI2009]最长距离(最短路)
  • 原文地址:https://www.cnblogs.com/flzs/p/12247906.html
Copyright © 2020-2023  润新知