- 相關(guān)推薦
php截取指定長度中文字符的技巧
在PHP程序開發(fā)中,經(jīng)常會執(zhí)行字符串的截取操作,那么php如何截取指定長度中文字符呢?來看看小編的分享吧!
但字符串只要出現(xiàn)中文字符,就有可能導(dǎo)致PHP substr 中文亂碼,因?yàn)橹形腢TF-8編碼,每個(gè)漢字占3字節(jié),而GB2312占2字節(jié),英文占1字節(jié),截取位數(shù)不準(zhǔn)確,substr()硬生生地將一個(gè)中文字符“鋸”成兩半,造成斷開的字符會把其后的..拉過來一起做一個(gè)字,所以出現(xiàn)了PHP substr中文亂碼。下面說一下解決辦法:
使用mb_stren()函數(shù):
[php] view plain copymixed mb_strlen ( string $str[, string $encoding = mb_internal_encoding() ] )
第一個(gè)參數(shù)為要處理的的字符串 第二個(gè)參數(shù)為編碼方式 忽略則使用默認(rèn)編碼
根據(jù)此函數(shù)來截取中文字符串,自定義函數(shù)為:
[php] view plain copy/**
* @param string $string 要截取的字符串
* @param int $len 要截取的長度
* @param string $tail 截取后結(jié)尾替換的字符換
* @return string $string 返回截取后的字符串
*/
function changeStr($string,$len,$tail){
if(mb_strlen($string)>$len){
$tmp = mb_substr($string,0,$len,'utf8');
return $tmp.$tail;
}else{
return $arg;
}
}
測試:
[php] view plain copy
header('Content-type:text/html;charset=utf8');
$string = "大眾創(chuàng)業(yè)、萬眾創(chuàng)新成為全社會的共識。開展股權(quán)眾籌融資試點(diǎn)”被正式寫入政府工作報(bào)告,
即將修訂的《證券法》也將賦予股權(quán)眾籌一個(gè)法律地位。當(dāng)今的中國是創(chuàng)業(yè)的熱土,也是股權(quán)眾籌最適宜生
長的土壤,支持一大批創(chuàng)新創(chuàng)業(yè)公司因“眾籌”而成功是眾籌行業(yè)的歷史使命。中關(guān)村作為新經(jīng)濟(jì)的風(fēng)向標(biāo)和
策源地,率先誕生了中國最有影響力的一批股權(quán)眾籌平臺,推動股權(quán)眾籌行業(yè)健康發(fā)展,為“大眾創(chuàng)業(yè)、萬眾
創(chuàng)新”營造良好發(fā)展環(huán)境成為中關(guān)村的歷史使命和必然選擇。";
echo changeStr($string,10,'.....');
/**
* @param string $string 要截取的字符串
* @param int $len 要截取的長度
* @param string $tail 截取后結(jié)尾替換的字符換
* @return string $string 返回截取后的字符串
*/
function changeStr($string,$len,$tail){
if(mb_strlen($string)>$len){
$tmp = mb_substr($string,0,$len,'utf8');
return $tmp.$tail;
}else{
return $arg;
}
}
?>
輸出:
大眾創(chuàng)業(yè)、萬眾創(chuàng)新.....
【php截取指定長度中文字符的技巧】相關(guān)文章:
php字符串截取函數(shù)06-10
php字符串截取問題05-02
php指定長度分割字符串str-split函數(shù)如何實(shí)現(xiàn)06-15
PHP數(shù)組長度的技巧09-18
PHP生成自定義長度隨機(jī)字符串實(shí)例07-22
4項(xiàng)PHP中文編碼技巧10-18
PHP字符串操作09-29
php的字符串常用函數(shù)06-15
PHP字符集如何轉(zhuǎn)換07-13
php數(shù)組長度的方法10-05