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程序设计有所帮助。
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短