zoukankan      html  css  js  c++  java
  • PHP截取字符串函数,根据dede修改而来

    dede中,有一个函数function cn_substr_utf8($str, $length, $start=0)

    但测试时,并不如我所想的一样,可能是因为个人使用习惯吧。
    比如,字符串为数字或字母这个单字节的字符,截取长度是lenght+1

    而当为汉字时,对于dede的写法不明所以,虽然上面有这样一段注释:

     //为了兼容mysql4.1以下版本,与数据库varchar一致,这里使用按字节截取

    但还不是特别明白具体用意,按照个人习惯来说,或对于普通用户来讲,截取的长度就是字符个数

    于是,将其改了下,如下:

    function sub_str($str, $start, $length){
            preg_match_all("/./su", $str, $ar);//正则部分:小写u代表将作utf-8处理
            $ar = $ar[0];
            if(count($ar) < $start+1){
                return '';
            }
            $ar = array_slice($ar ,$start ,$length);
            
            return implode('',$ar);
        }

  • 相关阅读:
    程序修炼之道——从小工到专家(3)
    组合
    子类重用父类的功能
    对象之间的交互
    属性查找与绑定方法
    类与对象的定义与使用
    hashlib模块subprocess模块
    configerparser模块
    shelve模块 xml模块
    sys模块 json pickle模块
  • 原文地址:https://www.cnblogs.com/lazyno/p/3447331.html
Copyright © 2011-2022 走看看