欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

php中計(jì)算中文字符串長(zhǎng)度、截取中文字符串

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

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),雄縣企業(yè)網(wǎng)站建設(shè),雄縣品牌網(wǎng)站建設(shè),網(wǎng)站定制,雄縣網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,雄縣網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

以下幾個(gè)函數(shù)用起來(lái)頗為順手的。不過(guò)要知道,得在utf-8環(huán)境下使用。

header(\'Content-type:text/html;charset=utf-8\');
/**
* 可以統(tǒng)計(jì)中文字符串長(zhǎng)度的函數(shù)
* @param $str 要計(jì)算長(zhǎng)度的字符串
* @param $type 計(jì)算長(zhǎng)度類型,0(默認(rèn))表示一個(gè)中文算一個(gè)字符,1表示一個(gè)中文算兩個(gè)字符
*
*/
functionabslength($str)
{
if(empty($str)){
return0;
}
if(function_exists(\'mb_strlen\')){
returnmb_strlen($str,\'utf-8\');
}
else{
preg_match_all("/./u",$str,$ar);
returncount($ar[0]);
}
}
$str=\'我們都是中國(guó)人啊,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)行截取的長(zhǎng)度
*/
functionutf8_substr($str,$start=0) {
if(empty($str)){
returnfalse;
}
if(function_exists(\'mb_substr\')){
if(func_num_args() >= 3) {
$end= func_get_arg(2);
returnmb_substr($str,$start,$end,\'utf-8\');
}
else{
mb_internal_encoding("UTF-8");
returnmb_substr($str,$start);
}
}
else{
$null="";
preg_match_all("/./u",$str,$ar);
if(func_num_args() >= 3) {
$end= func_get_arg(2);
returnjoin($null,array_slice($ar[0],$start,$end));
}
else{
returnjoin($null,array_slice($ar[0],$start));
}
}
}
$str2=\'wo要截取zhongwen\';
echo\'<br />\';
echoutf8_substr($str2,0,-4);//return wo要截取zhon

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/*
* 中文截取,支持gb2312,gbk,utf-8,big5
*
* @param string $str 要截取的字串
* @param int $start 截取起始位置
* @param int $length 截取長(zhǎng)度
* @param string $charset utf-8|gb2312|gbk|big5 編碼
* @param $suffix 是否加尾綴
*/
publicfunctioncsubstr($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;
}

當(dāng)前文章:php中計(jì)算中文字符串長(zhǎng)度、截取中文字符串
瀏覽地址:http://chinadenli.net/article8/cjjcip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)Google、企業(yè)網(wǎng)站制作微信小程序、App設(shè)計(jì)用戶體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)