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


     



  • 相关阅读:
    4组Alpha冲刺2/6
    4组Alpha冲刺1/6
    4组Alpha冲刺3/6
    4组Alpha冲刺3/6
    4组Alpha冲刺4/6
    原创视频作品汇总(更新至2012.8.04)
    PPT全转通2.0发布
    PPT全转通1.3
    [原创]WIN8系统的远程桌面漏洞 利用QQ拼音纯净版实现提权
    原创钢琴曲 《夏季来临之前的歌》
  • 原文地址:https://www.cnblogs.com/flzs/p/12247906.html
Copyright © 2011-2022 走看看