• 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编码:一个英文等于两个字节,一个中文(含繁体)等于两个字节。中文标点占两个字节,英文标点占两个字节


     



  • 相关阅读:
    506Relative Ranks(LeetCode)
    计算二进制中1的个数
    vector<vector<int>> 简单知识介绍
    167. Two Sum II
    561. Array Partition I(LeetCode)
    sizeof 用法部分总结
    530. Minimum Absolute Difference in BST(LeetCode)
    JS计算两个日期之间的天数
    路演会上会登记结论的委员信息页面
    eclipse安装SVN插件
  • 原文地址:https://www.cnblogs.com/flzs/p/12247906.html
Copyright © 2020-2023  润新知