• 技术文章 >php教程 >php手册

    PHP UTF8中文字符截断函数代码

    2016-06-13 11:57:36原创936
    复制代码 代码如下:


    /* UTF-8中文字符截断程序 */
    $str = "123这是测试字符串";
    $str1 = "()()";
    echo subUTF8str($str,0,3)."
    ";
    echo subUTF8str($str,0,4)."
    ";
    echo subUTF8str($str1,0,4)."
    ";
    echo subUTF8str($str1,0,10)."
    ";
    function subUTF8str($str,$start=0,$length=80){
    $cur_len = 0; //人理解的字符串长度
    $all_len = strlen($str); //机器理解字符串长度
    if($length > $all_len)
    {
    return $str;
    }
    for($i = 0;$i < $all_len;)
    {
    if($cur_len == $start)
    {
    break;
    }
    if (ord($str[$i]) > 127)
    {
    $i += 3;
    }else{
    $i += 1;
    }
    $cur_len ++;
    }
    $start_pos = $i;
    $temp_pos = $cur_len;
    for(;$cur_len - $temp_pos < $length;)
    {
    if($i >= $all_len)
    break;
    if (ord($str[$i]) > 127)
    {
    $i += 3;
    }else{
    $i += 1;
    }
    $cur_len ++;
    }
    $end_pos = $i;
    return substr($str,$start_pos,$end_pos);
    }
    ?>


    其实,PHP原生就有多charset下字符截取方案,额,所以就是这个样子...囧..
    Multibyte String Functions函数族中,

    string mb_substr ( string $str , int $start [, int $length [, string $encoding ]] ) 用来字符串截取
    int mb_strlen ( string $str [, string $encoding ] ) 返回字符串长度
    ....
    详细请查看PHP手册
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:PHP实现提取一个图像文件并在浏览器上显示的代码 下一篇:记录PHP错误日志 display_errors与log_errors的区别
    Web大前端开发直播班

    相关文章推荐

    • PHP中字符安全过滤函数使用总结• php格式化金额函数分享,php金额函数• php判断当前用户已在别处登录的方法,当前用户在别处• php针对cookie操作的队列操作类实例,cookie队列• PHP中file_exists()判断中文文件名无效的解决方法,

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网