php截取指定長度中文字符的技巧
在PHP程序開發中,經常會執行字符串的截取操作,那么php如何截取指定長度中文字符呢?來看看小編的分享吧!
但字符串只要出現中文字符,就有可能導致PHP substr 中文亂碼,因為中文UTF-8編碼,每個漢字占3字節,而GB2312占2字節,英文占1字節,截取位數不準確,substr()硬生生地將一個中文字符“鋸”成兩半,造成斷開的字符會把其后的..拉過來一起做一個字,所以出現了PHP substr中文亂碼。下面說一下解決辦法:
使用mb_stren()函數:
[php] view plain copymixed mb_strlen ( string $str[, string $encoding = mb_internal_encoding() ] )
第一個參數為要處理的的字符串 第二個參數為編碼方式 忽略則使用默認編碼
根據此函數來截取中文字符串,自定義函數為:
[php] view plain copy/**
* @param string $string 要截取的字符串
* @param int $len 要截取的長度
* @param string $tail 截取后結尾替換的字符換
* @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 = "大眾創業、萬眾創新成為全社會的共識。開展股權眾籌融資試點”被正式寫入政府工作報告,
即將修訂的《證券法》也將賦予股權眾籌一個法律地位。當今的`中國是創業的熱土,也是股權眾籌最適宜生
長的土壤,支持一大批創新創業公司因“眾籌”而成功是眾籌行業的歷史使命。中關村作為新經濟的風向標和
策源地,率先誕生了中國最有影響力的一批股權眾籌平臺,推動股權眾籌行業健康發展,為“大眾創業、萬眾
創新”營造良好發展環境成為中關村的歷史使命和必然選擇。";
echo changeStr($string,10,'.....');
/**
* @param string $string 要截取的字符串
* @param int $len 要截取的長度
* @param string $tail 截取后結尾替換的字符換
* @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截取指定長度中文字符的技巧】相關文章:
PHP如何獲取中文字符串長度10-29
PHP的字符串函數08-25
PHP的中文文字處理技巧09-05
php的字符串常用函數09-21
php字符轉URL地址的函數08-31
php字符串分割的詳解06-08
PHP中文文字處理技巧10-12
獲取php數組長度函數的方法08-17
解決PHP中文亂碼問題09-23
这里有更多你想看的
|
- 上一篇:php 生成excel php表格生成器
- 下一篇:返回列表