加入收藏 | 设为首页 | 会员中心 | 我要投稿 鞍山站长网 (https://www.0412zz.cn/)- 智能营销、数据计算、数据可视化、负载均衡、研发安全!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php截取字符串函数分享

发布时间:2022-07-30 10:14:46 所属栏目:PHP教程 来源:互联网
导读:这里给大家分享的是一个使用php截取字符串的函数,非常实用,推荐给有需要的小伙伴。 经常看到有新手问PHP有没有类似asp的left函数或right函数,实现截取某字符串左边或右边开始N个字符的函数。答案当然是有的。PHP中的substr函数就可以做的到,只不过PHP把
  这里给大家分享的是一个使用php截取字符串的函数,非常实用,推荐给有需要的小伙伴。
 
  经常看到有新手问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;
      }
  以上就是本文的全部内容,希望大家能够喜欢。

(编辑:鞍山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读