首页 > 开发 > PHP > 正文

php替换字符串中间字符为省略号的方法

2024-05-04 23:34:52
字体:
来源:转载
供稿:网友

这篇文章主要介绍了php替换字符串中间字符为省略号的方法,可实现将字符串中间部分替换成省略号的功能,适用于账号、手机号等敏感信息的部分隐藏,需要的朋友可以参考下

本文实例讲述了php替换字符串中间字符为省略号的方法。分享给大家供大家参考。具体分析如下:

对于一个长字符串,如果你只希望用户看到头尾的部分内容,隐藏掉中间内容,你可以使用这个php函数,他可以指定要隐藏掉的中间字符串的数量

 

 
  1. /** 
  2. * Reduce a string by the middle, keeps whole words together 
  3. * 
  4. * @param string $string 
  5. * @param int $max (default 50) 
  6. * @param string $replacement (default [...]) 
  7. * @return string 
  8. * @author david at ethinkn dot com 
  9. * @author loic at xhtml dot ne 
  10. * @author arne dot hartherz at gmx dot net 
  11. */ 
  12. function strMiddleReduceWordSensitive($string,$max=50,$rep='[...]'){ 
  13. $strlen = strlen($string); 
  14. if ($strlen <= $max
  15. return $string
  16. $lengthtokeep = $max - strlen($rep); 
  17. $start = 0; 
  18. $end = 0; 
  19. if (($lengthtokeep % 2) == 0) { 
  20. $start = $lengthtokeep / 2; 
  21. $end = $start
  22. else { 
  23. $start = intval($lengthtokeep / 2); 
  24. $end = $start + 1; 
  25. $i = $start
  26. $tmp_string = $string
  27. while ($i < $strlen) { 
  28. if (isset($tmp_string[$i]) and $tmp_string[$i] == ' ') { 
  29. $tmp_string = substr($tmp_string, 0, $i) . $rep
  30. $return = $tmp_string
  31. $i++; 
  32. $i = $end
  33. $tmp_string = strrev ($string); 
  34. while ($i < $strlen) { 
  35. if (isset($tmp_string[$i]) and $tmp_string[$i] == ' ') { 
  36. $tmp_string = substr($tmp_string, 0, $i); 
  37. $return .= strrev ($tmp_string); 
  38. $i++; 
  39. return $return
  40. return substr($string, 0, $start).$rep.substr($string, - $end); 

演示范例:

 

 
  1. // example: 
  2. $text = 'This is a very long test sentence, bla foo bar nothing'
  3. print strMiddleReduceWordSensitive ($text, 30) . "/n"
  4. // Returns: This is a very[...]foo bar nothing (~ 30 chrs) 
  5. print strMiddleReduceWordSensitive ($text, 30, '...') . "/n"
  6. // Returns: This is a very...foo bar nothing (~ 30 chrs) 

希望本文所述对大家的php程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表