Welcome 微信登录

首页 / 网页编程 / PHP / php替换字符串中间字符为省略号的方法

本文实例讲述了php替换字符串中间字符为省略号的方法。分享给大家供大家参考。具体分析如下:
对于一个长字符串,如果你只希望用户看到头尾的部分内容,隐藏掉中间内容,你可以使用这个php函数,他可以指定要隐藏掉的中间字符串的数量
/** * Reduce a string by the middle, keeps whole words together * * @param string $string * @param int $max (default 50) * @param string $replacement (default [...]) * @return string * @author david at ethinkn dot com * @author loic at xhtml dot ne * @author arne dot hartherz at gmx dot net */function strMiddleReduceWordSensitive($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;return substr($string, 0, $start).$rep.substr($string, - $end);}
演示范例:
// example:$text = "This is a very long test sentence, bla foo bar nothing";print strMiddleReduceWordSensitive ($text, 30) . "
";// Returns: This is a very[...]foo bar nothing (~ 30 chrs)print strMiddleReduceWordSensitive ($text, 30, "...") . "
";// Returns: This is a very...foo bar nothing (~ 30 chrs)
希望本文所述对大家的php程序设计有所帮助。