日韩精品免费在线_含咬她的花蒂高潮h|HD中文字幕在线播放,国产精品久久久久久久久久妇女,精品国产乱码久久久久久蜜臀,风流少妇被粗大爽

    電話

    0411-39943997

仟億科技
客服中心
  • 電話
  • 電話咨詢:0411-39943997
  • 手機(jī)
  • 手機(jī)咨詢:15840979770
    手機(jī)咨詢:13889672791
網(wǎng)絡(luò)營銷 >更多
您現(xiàn)在的位置:首頁 > 新聞中心 > 常見問題

大連php網(wǎng)站制作_php中字符串長度和截取的函數(shù):

作者:billionnet 發(fā)布于:2011/12/19 15:46:43 點(diǎn)擊量:

大連仟億科技友情提供:www.billionnet.net

 

php中字符串長度和截取的函數(shù):

 

 

大連仟億科技大連php網(wǎng)站建設(shè)大連php網(wǎng)站制作大連php網(wǎng)頁制作大連php網(wǎng)頁設(shè)計(jì)大連php網(wǎng)站設(shè)計(jì)大連網(wǎng)站推廣大連軟件開發(fā)大連網(wǎng)絡(luò)公司

 

在做PHP開發(fā)的時候,由于我國的語言環(huán)境問題,所以我們常常需要對中文進(jìn)行處理。
在PHP中,我們都知道有專門的mb_substr和mb_strlen函數(shù),可以對中文進(jìn)行截取和計(jì)算長度,但是,由于這些函數(shù)并非PHP的核心函數(shù),所以,它們常常有可能沒有開啟。當(dāng)然,如果是用的自己的服務(wù)器,則只要在php.ini中開啟即可。如果是用的虛擬主機(jī),而服務(wù)器又沒有開啟這方面的函數(shù)的話,那就需要我們自己寫出點(diǎn)適合咱國情的函數(shù)來了。 
以下幾個函數(shù)用起來頗為順手的。不過要知道,得在utf-8環(huán)境下使用。 

header('Content-type:text/html;charset=utf-8'); 
/** 
* 可以統(tǒng)計(jì)中文字符串長度的函數(shù) 
* @param $str 要計(jì)算長度的字符串 
* @param $type 計(jì)算長度類型,0(默認(rèn))表示一個中文算一個字符,1表示一個中文算兩個字符 

*/ 
function abslength($str) 

if(empty($str)){ 
return 0; 

if(function_exists('mb_strlen')){ 
return mb_strlen($str,'utf-8'); 

else { 
preg_match_all("/./u", $str, $ar); 
return count($ar[0]); 


$str = '我們都是中國人啊,ye!'; 
$len = abslength($str); 
var_dump($len); //return 12 
$len = abslength($str,'1'); 
echo '
'.$len; //return 22 
/* 
utf-8編碼下截取中文字符串,參數(shù)可以參照substr函數(shù) 
@param $str 要進(jìn)行截取的字符串 
@param $start 要進(jìn)行截取的開始位置,負(fù)數(shù)為反向截取 
@param $end 要進(jìn)行截取的長度 
*/ 
function utf8_substr($str,$start=0) { 
if(empty($str)){ 
return false; 

if (function_exists('mb_substr')){ 
if(func_num_args() >= 3) { 
$end = func_get_arg(2); 
return mb_substr($str,$start,$end,'utf-8'); 

else { 
mb_internal_encoding("UTF-8"); 
return mb_substr($str,$start); 


else { 
$null = ""; 
preg_match_all("/./u", $str, $ar); 
if(func_num_args() >= 3) { 
$end = func_get_arg(2); 
return join($null, array_slice($ar[0],$start,$end)); 

else { 
return join($null, array_slice($ar[0],$start)); 



$str2 = 'wo要截取zhongwen'; 
echo '
'; 
echo utf8_substr($str2,0,-4); //return wo要截取zhon 
 

支持gb2312,gbk,utf-8,big5 中文截取方法 

/* 
* 中文截取,支持gb2312,gbk,utf-8,big5 

* @param string $str 要截取的字串 
* @param int $start 截取起始位置 
* @param int $length 截取長度 
* @param string $charset utf-8|gb2312|gbk|big5 編碼 
* @param $suffix 是否加尾綴 
*/ 
public function csubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) 

if(function_exists("mb_substr")) 

if(mb_strlen($str, $charset) <= $length) return $str; 
$slice = mb_substr($str, $start, $length, $charset); 

else 

$re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/"; 
$re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/"; 
$re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/"; 
$re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/"; 
preg_match_all($re[$charset], $str, $match); 
if(count($match[0]) <= $length) return $str; 
$slice = join("",array_slice($match[0], $start, $length)); 

if($suffix) return $slice."&hellip;"; 
return $slice; 

 

 



分享到:


Copyright@ 2011-2016 版權(quán)所有:大連千億科技有限公司 遼ICP備11013762-3號   google網(wǎng)站地圖   百度網(wǎng)站地圖   網(wǎng)站地圖

公司地址:大連市沙河口區(qū)中山路692號辰熙星海國際2317 客服電話:0411-39943997 QQ:2088827823 37482752

法律聲明:未經(jīng)許可,任何模仿本站模板、轉(zhuǎn)載本站內(nèi)容等行為者,本站保留追究其法律責(zé)任的權(quán)利! 隱私權(quán)政策聲明