原生写法
<?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,以此类推。
网友评论