php替换字符串中间字符为省略号的方法
本文实例讲述了php替换字符串中间字符为省略号的方法。分享给大家供大家参考。具体分析如下:
对于一个长字符串,如果你只希望用户看到头尾的部分内容,隐藏掉中间内容,你可以使用这个php函数,他可以指定要隐藏掉的中间字符串的数量
/** *Reduceastringbythemiddle,keepswholewordstogether * *@paramstring$string *@paramint$max(default50) *@paramstring$replacement(default[...]) *@returnstring *@authordavidatethinkndotcom *@authorloicatxhtmldotne *@authorarnedothartherzatgmxdotnet */ functionstrMiddleReduceWordSensitive($string,$max=50,$rep='[...]'){ $strlen=strlen($string); if($strlen<=$max) return$string; $lengthtokeep=$max-strlen($rep); $start=0; $end=0; if(($lengthtokeep%2)==0){ $start=$lengthtokeep/2; $end=$start; }else{ $start=intval($lengthtokeep/2); $end=$start+1; } $i=$start; $tmp_string=$string; while($i<$strlen){ if(isset($tmp_string[$i])and$tmp_string[$i]==''){ $tmp_string=substr($tmp_string,0,$i).$rep; $return=$tmp_string; } $i++; } $i=$end; $tmp_string=strrev($string); while($i<$strlen){ if(isset($tmp_string[$i])and$tmp_string[$i]==''){ $tmp_string=substr($tmp_string,0,$i); $return.=strrev($tmp_string); } $i++; } return$return; returnsubstr($string,0,$start).$rep.substr($string,-$end); }
演示范例:
//example: $text='Thisisaverylongtestsentence,blafoobarnothing'; printstrMiddleReduceWordSensitive($text,30)."\n"; //Returns:Thisisavery[...]foobarnothing(~30chrs) printstrMiddleReduceWordSensitive($text,30,'...')."\n"; //Returns:Thisisavery...foobarnothing(~30chrs)
希望本文所述对大家的php程序设计有所帮助。