国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

(實(shí)用篇)php中計(jì)算中文字符串長度、截取中文字符串的函數(shù)代碼

黃舟
發(fā)布: 2017-02-06 15:14:56
原創(chuàng)
1619人瀏覽過

在php中,我們都知道有專門的mb_substr和mb_strlen函數(shù),可以對中文進(jìn)行截取和計(jì)算長度,但是,由于這些函數(shù)并非php的核心函數(shù),所以,它們常常有可能沒有開啟。當(dāng)然,如果是用的自己的服務(wù)器,則只要在php.ini中開啟即可。如果是用的虛擬主機(jī),而服務(wù)器又沒有開啟這方面的函數(shù)的話,那就需要我們自己寫出點(diǎn)適合咱自己的函數(shù)來了。?

以下幾個(gè)函數(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))表示一個(gè)中文算一個(gè)字符,1表示一個(gè)中文算兩個(gè)字符 
* 
*/ 
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 '<br />'.$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 '<br />'; 
echo utf8_substr($str2,0,-4); //return wo要截取zhon
登錄后復(fù)制

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

<?php
/* 
* 中文截取,支持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."…"; 
return $slice; 
}
登錄后復(fù)制

以上就是(實(shí)用篇)php中計(jì)算中文字符串長度、截取中文字符串的函數(shù)代碼的內(nèi)容,更多相關(guān)內(nèi)容請關(guān)注PHP中文網(wǎng)(www.miracleart.cn)!

PHP速學(xué)教程(入門到精通)
PHP速學(xué)教程(入門到精通)

PHP怎么學(xué)習(xí)?PHP怎么入門?PHP在哪學(xué)?PHP怎么學(xué)才快?不用擔(dān)心,這里為大家提供了PHP速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!

下載
來源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn
最新問題
開源免費(fèi)商場系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://www.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)