原生寫法
<?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)
{
//如果字符串的長(zhǎng)度小于指定長(zhǎng)度,就返回這個(gè)字符串
if (strlen($String) <= $Length )
{
return $String;
}
else
{
//否則當(dāng)長(zhǎng)度
$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中國(guó)自動(dòng)化測(cè)試的前沿";
$Length = "13";
$Append = false;
echo sysSubStr($String,$Length,$Append);
php內(nèi)置函數(shù)
string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] )
根據(jù)字符數(shù)執(zhí)行一個(gè)多字節(jié)安全的 substr() 操作。 位置是從 str 的開始位置進(jìn)行計(jì)數(shù)。 第一個(gè)字符的位置是 0。第二個(gè)字符的位置是 1,以此類推。