- 相關(guān)推薦
php截取指定長度中文字符的技巧
在PHP程序開發(fā)中,經(jīng)常會執(zhí)行字符串的截取操作,那么php如何截取指定長度中文字符呢?來看看小編的分享吧!
但字符串只要出現(xiàn)中文字符,就有可能導致PHP substr 中文亂碼,因為中文UTF-8編碼,每個漢字占3字節(jié),而GB2312占2字節(jié),英文占1字節(jié),截取位數(shù)不準確,substr()硬生生地將一個中文字符“鋸”成兩半,造成斷開的字符會把其后的..拉過來一起做一個字,所以出現(xiàn)了PHP substr中文亂碼。下面說一下解決辦法:
使用mb_stren()函數(shù):
[php] view plain copymixed mb_strlen ( string $str[, string $encoding = mb_internal_encoding() ] )
第一個參數(shù)為要處理的的字符串 第二個參數(shù)為編碼方式 忽略則使用默認編碼
根據(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)眾籌融資試點”被正式寫入政府工作報告,
即將修訂的《證券法》也將賦予股權(quán)眾籌一個法律地位。當今的中國是創(chuàng)業(yè)的熱土,也是股權(quán)眾籌最適宜生
長的土壤,支持一大批創(chuàng)新創(chuàng)業(yè)公司因“眾籌”而成功是眾籌行業(yè)的歷史使命。中關(guān)村作為新經(jīng)濟的風向標和
策源地,率先誕生了中國最有影響力的一批股權(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如何獲取中文字符串長度07-17
解讀php字符串截取函數(shù)用法04-09
php指定長度分割字符串str-split函數(shù)如何實現(xiàn)06-15
PHP數(shù)組長度的技巧05-20
PHP生成隨機字符串的技巧12-29
PHP生成自定義長度隨機字符串實例07-22