php中截取字符串支持utf-8
更新時(shí)間:2007年01月18日 00:00:00 作者:
截取字符串
<?php
$string="2006年4月我又長(zhǎng)大了一歲!";
echo substr($string,1)."...";
//截取字符串
function SubstrGB($in,$num)
{
$pos=0;
$out="";
while($pos<strlen($in))
{
$c=substr($in,$pos,1);
if($c=="\n") break;
if(ord($c)>128)
{
$out.=$c;
$pos++;
$c=substr($in,$pos,1);
$out.=$c;
}
else
{
$out.=$c;
}
$pos++;
if($pos>=$num) break;
}
return $out;
}
echo SubstrGB($string,8) ;
?>
<?php
/***************************************************************************
* cut_string.php
* ------------------------------
* Date : Jul 16, 2005
* Copyright : none
* Mail :
*
* 作用:截取中文字符.
*
*
***************************************************************************/
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))."...";
return join('', array_slice($t_string[0], $start, $sublen));
}
else
{
$start = $start*2;
$sublen = $sublen*2;
$strlen = strlen($string);
$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;
}
}
echo "<br>".cut_str($string,8,$start=0,$code='sdf') ;
?>
<?php
$string="2006年4月我又長(zhǎng)大了一歲!";
echo substr($string,1)."...";
//截取字符串
function SubstrGB($in,$num)
{
$pos=0;
$out="";
while($pos<strlen($in))
{
$c=substr($in,$pos,1);
if($c=="\n") break;
if(ord($c)>128)
{
$out.=$c;
$pos++;
$c=substr($in,$pos,1);
$out.=$c;
}
else
{
$out.=$c;
}
$pos++;
if($pos>=$num) break;
}
return $out;
}
echo SubstrGB($string,8) ;
?>
<?php
/***************************************************************************
* cut_string.php
* ------------------------------
* Date : Jul 16, 2005
* Copyright : none
* Mail :
*
* 作用:截取中文字符.
*
*
***************************************************************************/
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))."...";
return join('', array_slice($t_string[0], $start, $sublen));
}
else
{
$start = $start*2;
$sublen = $sublen*2;
$strlen = strlen($string);
$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;
}
}
echo "<br>".cut_str($string,8,$start=0,$code='sdf') ;
?>
相關(guān)文章
PHP擴(kuò)展Swoole實(shí)現(xiàn)實(shí)時(shí)異步任務(wù)隊(duì)列示例
這篇文章主要介紹了PHP擴(kuò)展Swoole實(shí)現(xiàn)實(shí)時(shí)異步任務(wù)隊(duì)列,結(jié)合實(shí)例形式分析了PHP擴(kuò)展Swoole實(shí)現(xiàn)實(shí)時(shí)異步任務(wù)隊(duì)列相關(guān)客戶端與服務(wù)器端操作技巧,需要的朋友可以參考下2019-04-04
php導(dǎo)出excel格式數(shù)據(jù)問題
本篇文章主要是對(duì)php導(dǎo)出excel格式數(shù)據(jù)的問題進(jìn)行了介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2014-03-03
php策略模式簡(jiǎn)單示例分析【區(qū)別于工廠模式】
這篇文章主要介紹了php策略模式,對(duì)比工廠模式簡(jiǎn)單分析了php策略模式的原理與使用方法,需要的朋友可以參考下2019-09-09
PHP使用DOM和simplexml讀取xml文檔的方法示例
這篇文章主要介紹了PHP使用DOM和simplexml讀取xml文檔的方法,結(jié)合實(shí)例形式分析了php使用DOM及simplxml針對(duì)xml文件的創(chuàng)建、載入、讀取等相關(guān)操作技巧,需要的朋友可以參考下2017-02-02
php設(shè)計(jì)模式之策略模式應(yīng)用案例詳解
這篇文章主要介紹了php設(shè)計(jì)模式之策略模式,結(jié)合具體應(yīng)用案例形式詳細(xì)分析了php策略模式的原理、定義、實(shí)現(xiàn)方法及項(xiàng)目應(yīng)用案例與操作注意事項(xiàng),需要的朋友可以參考下2019-06-06
php中在PDO中使用事務(wù)(Transaction)
事務(wù) (Transaction) 是操作數(shù)據(jù)庫(kù)中很重要的一個(gè)功能, 它可以讓你預(yù)定一條, 或者一系列 SQL 語句, 然后一起執(zhí)行2011-05-05
Mac環(huán)境下php操作mysql數(shù)據(jù)庫(kù)的方法分享
今天在mac上搭建好了php的環(huán)境,我們就把php操作mysql數(shù)據(jù)庫(kù)的方法分享給大家,有需要的小伙伴參考下。2015-05-05

