美文网首页
PHP截取中文字符串

PHP截取中文字符串

作者: 码课sir | 来源:发表于2018-08-07 20:09 被阅读0次

原生写法

<?php
/**
 * @package   BugFree
 * @version   $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $
 *
 *
 * Return part of a string(Enhance the function substr())
 *
 * @author         Chunsheng Wang <wwccss@263.net>
 * @param string $String the string to cut.
 * @param int   $Length the length of returned string.
 * @param booble $Append whether append "...": false|true
 * @return string      the cutted string.
 */
mb_substr
function sysSubStr($String,$Length,$Append = false)
{
    //如果字符串的长度小于指定长度,就返回这个字符串
  if (strlen($String) <= $Length )
  {
    return $String;
  }
  else
  {
    //否则当长度
    $I = 0;
    while ($I < $Length)
    {
      $StringTMP = substr($String,$I,1);
      if ( ord($StringTMP) >=224 )
      {
        $StringTMP = substr($String,$I,3);
        $I = $I + 3;
      }
      elseif( ord($StringTMP) >=192 )
      {
        $StringTMP = substr($String,$I,2);
        $I = $I + 2;
      }
      else
      {
        $I = $I + 1;
      }
      $StringLast[] = $StringTMP;
    }
    $StringLast = implode("",$StringLast);
    if($Append)
    {
      $StringLast .= "...";
    }
    return $StringLast;
  }
}
  
$String = "走在gugu7866中国自动化测试的前沿";
$Length = "13";
$Append = false;
echo sysSubStr($String,$Length,$Append);

php内置函数

string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] )

根据字符数执行一个多字节安全的 substr() 操作。 位置是从 str 的开始位置进行计数。 第一个字符的位置是 0。第二个字符的位置是 1,以此类推。

相关文章

网友评论

      本文标题:PHP截取中文字符串

      本文链接:https://www.haomeiwen.com/subject/ipxzvftx.html