<?php
header('http-equiv="Content-Type" content="text/html; charset=UTF-8"');
/**
*
* Return part of a string(Enhance the function substr())
*
* @author Donghui Shang <shdh0929@yahoo.com.cn>
* @param string $String the string to cut.
* @param int $Length the length of returned string.
* @param booble $Append wether append "...": false|true
* @return string the cutted string.
*/
function Cut_Str($String,$Length,$Append = false)
{
if (strlen($String) <= $Length )
{
return $String;
}
else
{
$I = 0;
$k = 0;
while ($k < $Length)
{
$StringTMP = substr($String,$I,1);
if ( ord($StringTMP) >=224 )
{
$StringTMP = substr($String,$I,3);
$I = $I + 3;
$k += 2;
}
elseif( ord($StringTMP) >=192 )
{
$StringTMP = substr($String,$I,2);
$I = $I + 2;
$k += 2;
}
else
{
$I = $I + 1;
$k += 1;
}
if ('' == $StringTMP)
{
break;
}else {
$StringLast[] = $StringTMP;
}
}
if ($k > $Length)
{
$StrLast = join("", array_slice($StringLast, 0, $Length));
if($Append)
{
$StrLast .= "...";
}
}else {
$StrLast = $String;
}
return $StrLast;
}
}
$String = "CodeBit.cn -- 简单、精彩、通用";
$Length = "25";
$Append = true;
echo Cut_Str($String,$Length,$Append);
header('http-equiv="Content-Type" content="text/html; charset=UTF-8"');
/**
*
* Return part of a string(Enhance the function substr())
*
* @author Donghui Shang <shdh0929@yahoo.com.cn>
* @param string $String the string to cut.
* @param int $Length the length of returned string.
* @param booble $Append wether append "...": false|true
* @return string the cutted string.
*/
function Cut_Str($String,$Length,$Append = false)
{
if (strlen($String) <= $Length )
{
return $String;
}
else
{
$I = 0;
$k = 0;
while ($k < $Length)
{
$StringTMP = substr($String,$I,1);
if ( ord($StringTMP) >=224 )
{
$StringTMP = substr($String,$I,3);
$I = $I + 3;
$k += 2;
}
elseif( ord($StringTMP) >=192 )
{
$StringTMP = substr($String,$I,2);
$I = $I + 2;
$k += 2;
}
else
{
$I = $I + 1;
$k += 1;
}
if ('' == $StringTMP)
{
break;
}else {
$StringLast[] = $StringTMP;
}
}
if ($k > $Length)
{
$StrLast = join("", array_slice($StringLast, 0, $Length));
if($Append)
{
$StrLast .= "...";
}
}else {
$StrLast = $String;
}
return $StrLast;
}
}
$String = "CodeBit.cn -- 简单、精彩、通用";
$Length = "25";
$Append = true;
echo Cut_Str($String,$Length,$Append);
本文介绍了一个PHP自定义函数Cut_Str,该函数用于增强substr()函数的功能,能够更智能地处理UTF-8编码的字符串截取,并允许指定是否添加省略号。
985

被折叠的 条评论
为什么被折叠?



