function Cutstr($string, $length, $dot = ' .. .') {
$strcut = ]) > 127 ? .$文字列[++$i] : $string[$i]; コードは次のとおりです:
function cutTitle($str, $len, $tail = ""){
$length = strlen($str);
$lentail = strlen($tail);
$result = "";
if($length > $len){
$len = $len - $lentail;
for($i = 0;$i < $len;$i ++){
if(ord($str[$i]) < 127){
{ $result .= $str[$i];
else{
$result .= $str[$i];
++ $i;
$result .= $str[$i];
}
$result = strlen($result) > $レン? substr($result, 0, -2) 。 $tail : $result 。 $テール;
}else{
$result = $str;
}
$result を返す;
}
以下はいくつかの内容です:
1. 截取GB2312中文字符列
代码如下:
复制代代码如下:
//截取中文字符列
function mysubstr($str, $start, $len) {
$ tmpstr = "";
$strlen = $start + $len;
for($i = 0; $i < $strlen; $i++) {
if(ord(substr($str, $i, 1)) > 0xa0) {
$tmpstr .= substr($str, $i、2);
$i++;
} else
$tmpstr .= substr($str, $i, 1);
}
$tmpstr を返します。
}
?>
2. 截取utf8文字列の多字节文字列
代码如下:
复制代代码如下:
//截取utf8文字列
function utf8Substr($str, $from, $レン)
{
return preg_replace('#^(?:[x00-x7F]|[xC0-xFF][x80-xBF]+){0,'.$from.'}'.
'((?:[ x00-x7F]|[xC0-xFF][x80-xBF]+){0,'.$len.'}).*#s',
'$1',$str);
}
?>
3. UTF-8、GB2312都サポートの汉字截取関数数
代码如下:
复制代码 代码如下:
/*
Utf-8 および gb2312 でサポートされている漢字インターセプト関数
cut_str(string, インターセプト長, 開始長, エンコーディング)
デフォルトのエンコーディングは utf-8 です
デフォルトの開始長は 0 です
*/function Cut_str($string, $sublen, $start = 0, $code = 'UTF-8')
{
if($code == 'UTF-8')
{
$pa ="/[ x01 -x7f]|[xc2-xdf][x80-xbf]|xe0[xa0-xbf][x80-xbf]|[xe1-xef][x80-xbf][x80-xbf]|xf0[x90-xbf] [ x80-xbf][x80-xbf]|[xf1-xf7][x80-xbf][x80-xbf][x80-xbf]/";
preg_match_all($pa, $string, $t_string); if(count) ( $t_string[0]) - $start > $sublen) return join('', array_slice($t_string[0], $start, $sublen))."..."; array_slice ($t_string[0], $start, $sublen));
}
else
{
$start = $sublen*2;
$tmpstr = ''; for($i=0; $i<$strlen; $i++)
{
if($i>=$start && $i<($start+$sublen))
{
if( ord (substr($string, $i, 1))>129)
{
$tmpstr.= substr($string, $i, 2);
}
else
{
$tmpstr.= substr($string) , $i, 1);
}
}
if(ord(substr($string, $i, 1))>129) $i++;
}
if(strlen($tmpstr)<$strlen ) tmpstr .= "...";
return $tmpstr;
}
}$str = "abcd がインターセプトする必要がある文字列"; ;
4. BugFree の文字インターセプト関数
コードは次のとおりです:
コードをコピーします
コードは次のとおりです:
/*** @package BugFree
* @version $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $ *
*
* 文字列の一部を返す(関数 substr( ))
*
* @author Chunsheng Wang
* @param string $String カットする文字列。
* @param int $Length 返される文字列の長さ。
* @param booble $Append "..." を追加するかどうか: false|true
* @return string 切り取られた文字列。
*/
function sysSubStr($String,$Length, $Append = false)
{
if (strlen($String) {
return $String;
}
else
{
$I = 0; ($I {
$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 + 2;
else
{
$I = $I + 1;
$StringLast[] = $StringTMP;
$StringLast = implode("",$StringLast);追加)
{
$StringLast . = "..."
}
$StringLast
}$String = "www.baidu.com"
$Append = false ;
エコー sysSubStr($String, $Length,$Append)
;
http://www.bkjia.com/PHPjc/317176.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/317176.html
技術記事
ただし、英語と中国語の文字が混在している場合、次の問題が発生します。 $str="This is a string"; という文字列があった場合、文字列の最初の 10 文字をインターセプトするには、if(strle...