• 技术文章 >后端开发 >php教程

    php截取字符串函数分享_PHP

    2016-05-31 13:17:33原创266
    经常看到有新手问PHP有没有类似asp的left函数或right函数,实现截取某字符串左边或右边开始N个字符的函数。答案当然是有的。PHP中的substr函数就可以做的到,只不过PHP把二个函数合二为一了,这里再给大家分享一个更加优秀的截取字符串的函数。

    代码如下:


    /**
    * 方法库-截取字符串-【该函数作者未知】
    * @param string $string 字符串
    * @param int $length 字符长度
    * @param string $dot 截取后是否添加...
    * @param string $charset编码
    * @return string
    */
    public function cutstr($string, $length, $dot = ' ...', $charset = 'utf-8') {
    if (strlen($string) <= $length) {
    return $string;
    }
    $string = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string);
    $strcut = '';
    if (strtolower($charset) == 'utf-8') {
    $n = $tn = $noc = 0;
    while ($n < strlen($string)) {
    $t = ord($string[$n]); //ASCIIֵ
    if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
    $tn = 1; $n++; $noc++;
    } elseif (194 <= $t && $t <= 223) {
    $tn = 2; $n += 2; $noc += 2;
    } elseif (224 <= $t && $t < 239) {
    $tn = 3; $n += 3; $noc += 2;
    } elseif (240 <= $t && $t <= 247) {
    $tn = 4; $n += 4; $noc += 2;
    } elseif (248 <= $t && $t <= 251) {
    $tn = 5; $n += 5; $noc += 2;
    } elseif ($t == 252 || $t == 253) {
    $tn = 6; $n += 6; $noc += 2;
    } else {
    $n++;
    }
    if($noc >= $length) {
    break;
    }
    }
    if ($noc > $length) {
    $n -= $tn;
    }
    $strcut = substr($string, 0, $n);
    } else {
    for ($i = 0; $i < $length; $i++) {
    $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
    }
    }
    $strcut = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $strcut);
    return $strcut.$dot;
    }

    以上就是本文的全部内容,希望大家能够喜欢。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 截取字符串函数
    上一篇:php上传文件名乱码怎么办 下一篇:四种php中webservice实现的简单架构方法及实例_PHP
    Web大前端开发直播班

    相关文章推荐

    • 详细介绍php反序列化pop链构造知识点• 揭秘PHP深受Web开发者喜爱的原因_PHP教程• PHP利用MySQL保存session的实现思路及示例代码,mysqlsession_PHP教程• php中过滤非法字符的具体实现_PHP教程• php检测文件编码的方法示例_PHP教程

    全部评论我要评论

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

    PHP中文网