最準確的php截取字符串長度函數(shù)
更新時間:2015年10月29日 15:58:33 投稿:lijiao
這篇文章為大家分享了最準確的php截取字符串長度函數(shù),最精確的截取長度,大家可以在此基礎上進行改進,感興趣的小伙伴們可以參考一下
說是最精確截取長度,其實我也不敢確定是否是最精確的,具體有多精確看下面的效果就知道了:
先上測試用的字符串:
<?php
header("Content-Type:text/html;charset=utf-8");
echo cn_substr_utf8('我是一個,和哈,哦也,,國家!',12);
echo '<br />',cn_substr_utf8('ai\'2145m a ch3我[是一,個,和哈,哦也,,國家!',12);
echo '<br />',cn_substr_utf8('【我,是一,個,和哈,哦也,,國家!',12);
echo '<br />',cn_substr_utf8('我是一,個,和哈,哦也,,國家!',12);
echo '<br />',cn_substr_utf8('我是,一,個,和哈,哦也,,國家!',12);
echo '<br />',cn_substr_utf8('我,是,一,個,和哈,哦也,,國家!',12);
echo '<br />',cn_substr_utf8('我是asd一,個,和哈,哦也,,國家!',12);
echo '<br />',cn_substr_utf8('【我i\'m[是一,個,和哈,哦也,,國家!',12);
echo '<br />',cn_substr_utf8('【i\'m a ch我[是一,個,和哈,哦也,,國家!',12);
echo '<br />',cn_substr_utf8('【i\'2145m a ch3我[是一,個,和哈,哦也,,國家!',12);
下面是精確截取字符串的效果圖:

具體函數(shù)代碼如下:
//utf-8中文截取,單字節(jié)截取模式
function cn_substr_utf8($str,$length,$append='...',$start=0){
if(strlen($str)<$start+1){
return '';
}
preg_match_all("/./su",$str,$ar);
$str2='';
$tstr='';
//www.phpernote.com
for($i=0;isset($ar[0][$i]);$i++){
if(strlen($tstr)<$start){
$tstr.=$ar[0][$i];
}else{
if(strlen($str2)<$length + strlen($ar[0][$i])){
$str2.=$ar[0][$i];
}else{
break;
}
}
}
return $str==$str2?$str2:$str2.$append;
}
如果大家認為還不夠準確大家可以在此基礎上進行改進,或者是創(chuàng)新,希望這篇關(guān)于php截取字符串長度函數(shù)的文章對大家的學習有所幫助。
您可能感興趣的文章:
- PHP字符串長度計算 - strlen()函數(shù)使用介紹
- php中計算中文字符串長度、截取中文字符串的函數(shù)代碼
- php自定義函數(shù)實現(xiàn)統(tǒng)計中文字符串長度的方法小結(jié)
- 利用PHP函數(shù)計算中英文字符串長度的方法
- PHP中preg_match函數(shù)正則匹配的字符串長度問題
- php strlen mb_strlen計算中英文混排字符串長度
- 詳解PHP中strlen和mb_strlen函數(shù)的區(qū)別
- 淺析PHP中strlen和mb_strlen的區(qū)別
- 自己寫的php中文截取函數(shù)mb_strlen和mb_substr
- PHP中strlen()和mb_strlen()的區(qū)別淺析
- php中strlen和mb_strlen用法實例分析
- php常用字符串長度函數(shù)strlen()與mb_strlen()用法實例分析
相關(guān)文章
巧用php中的array_filter()函數(shù)去掉多維空值的代碼分享
在我們開發(fā)過程中,判斷數(shù)組為空時你會想到什么方法呢?首先想到的應該是empty函數(shù),不過直接用empty函數(shù)判斷為空是不對的,因為當這個值是多維數(shù)的時候,empty結(jié)果是有值的2012-09-09
php實現(xiàn)數(shù)字轉(zhuǎn)億萬單位的示例代碼
這篇文章主要為大家詳細介紹了php如何實現(xiàn)數(shù)字轉(zhuǎn)億萬單位,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學習一下2023-11-11

