程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> thinkphp截取中文字符串的方法

thinkphp截取中文字符串的方法

編輯:關於PHP編程

ThinkPHP 3.1.3貌似沒有內置的截取中文字符串的方法,找了半天沒找到,下面作者自己加了一個截取中文字符串的函數,具體代碼如下,有需要的朋友可以參考下。

以下代碼加在項目所在目錄的Common目錄下的common.php文件裡面的,比如作者的就是www/Common/common.php文件,當然你也可以直接加到thinkphp的Common/common.php文件裡面,這樣就所有的項目都可以使用了。

function truncate_cn($string,$length=0,$ellipsis='…',$start=0){
	$string=strip_tags($string);
	$string=preg_replace('/\n/is','',$string);
	//$string=preg_replace('/ | /is','',$string);//清除字符串中的空格
	$string=preg_replace('/ /is','',$string);
	preg_match_all("/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/",$string,$string);
	if(is_array($string)&&!empty($string[0])){
		$string=implode('',$string[0]);
		if(strlen($string)<$start+1){
			return '';
		}
		preg_match_all("/./su",$string,$ar);
		$string2='';
		$tstr='';
		//www.phpernote.com
		for($i=0;isset($ar[0][$i]);$i++){
			if(strlen($tstr)<$start){
				$tstr.=$ar[0][$i];
			}else{
				if(strlen($string2)<$length+strlen($ar[0][$i])){
					$string2.=$ar[0][$i];
				}else{
					break;
				}
			}
		}
		return $string==$string2?$string2:$string2.$ellipsis;
	}else{
		$string='';
	}
	return $string;
}

在thinkphp的模板中用法如下:

{$info.subject|truncate_cn=40,'',0}

意思是截取$info['subject']字符串,從第0個字符串開始截取長度為40的字符串,截取字符串長度小於原字符串長度的將什麼都不顯示,默認是...的,其實後面兩個參數是可選的。

您可能感興趣的文章

  • javascript實現截取字符串功能總結(包括使用Js截取中文字符的介紹)
  • thinkphp模板中判斷volist循環的最後一條記錄
  • php性能優化:使用 isset()判斷字符串長度速度比strlen()更快
  • js限制只能輸入英文字母和數字,不能輸入中文和其他特殊字符的辦法
  • thinkphp自動驗證與自動填充無效的解決辦法
  • php提取字符串中的數字
  • 如何去除codeIgniter開發的網站url裡面的index.php字符串
  • php判斷字符串是否全英文,純中文,中英文組合的方法

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved