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


Posted in PHP onMay 04, 2015

本文实例讲述了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) . "\n";
// Returns: This is a very[...]foo bar nothing (~ 30 chrs)
print strMiddleReduceWordSensitive ($text, 30, '...') . "\n";
// Returns: This is a very...foo bar nothing (~ 30 chrs)

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

PHP 相关文章推荐
PHP实现图片简单上传
Oct 09 PHP
php中通过curl smtp发送邮件
Jun 05 PHP
PHP爆绝对路径方法收集整理
Sep 17 PHP
浅析php适配器模式(Adapter)
Nov 25 PHP
ThinkPHP中使用ajax接收json数据的方法
Dec 18 PHP
在php和MySql中计算时间差的方法详解
Mar 27 PHP
thinkPHP模板算术运算相关函数用法分析
Jul 12 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
Oct 18 PHP
php基于数组函数实现关联表的编辑操作示例
Jul 04 PHP
laravel 5.4中实现无限级分类的方法示例
Jul 27 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
PHP单例模式模拟Java Bean实现方法示例
Dec 07 PHP
php中JSON的使用方法
Apr 30 #PHP
PHP使用CURL实现多线程抓取网页
Apr 30 #PHP
PHP遍历数组的方法汇总
Apr 30 #PHP
php实现根据IP地址获取其所在省市的方法
Apr 30 #PHP
PHP实现根据银行卡号判断银行
Apr 29 #PHP
php简单实现屏蔽指定ip段用户的访问
Apr 29 #PHP
php实现中文字符截取防乱码方法汇总
Apr 29 #PHP
You might like
PHP 木马攻击防御技巧
2009/06/13 PHP
PHP 用数组降低程序的时间复杂度
2009/12/04 PHP
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
2011/06/09 PHP
php学习笔记之基础知识
2014/11/08 PHP
thinkphp 框架数据库切换实现方法分析
2020/05/18 PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
2020/06/05 PHP
JS打开图片另存为对话框实现代码
2012/12/26 Javascript
让网页跳转到指定位置的jquery代码非书签
2013/09/06 Javascript
深入理解JavaScript程序中内存泄漏
2016/03/17 Javascript
拥Bootstrap入怀——导航栏篇
2016/05/30 Javascript
微信小程序 动态传参实例详解
2017/04/27 Javascript
详解react-webpack2-热模块替换[HMR]
2017/08/03 Javascript
angular4自定义组件详解
2017/09/28 Javascript
用 js 写一个 js 解释器过程详解
2019/08/02 Javascript
Jquery实现获取子元素的方法分析
2019/08/24 jQuery
使用Node.js在深度学习中做图片预处理的方法
2019/09/18 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
2020/02/10 Javascript
[40:19]2018完美盛典CS.GO表演赛
2018/12/17 DOTA
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
[01:06]DOTA2小知识课堂 Ep.01 TP出门不要忘记帮队友灌瓶哦
2019/12/05 DOTA
[01:11:21]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第三场 3月7日
2021/03/11 DOTA
[01:06:54]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第二场 2月28日
2021/03/11 DOTA
Python+tkinter使用80行代码实现一个计算器实例
2018/01/16 Python
Python *args和**kwargs用法实例解析
2020/03/02 Python
Django 实现对已存在的model进行更改
2020/03/28 Python
如何解决cmd运行python提示不是内部命令
2020/07/01 Python
爱我中华教学反思
2014/04/28 职场文书
小学课外阅读总结
2014/07/09 职场文书
祖国在我心中演讲稿450字
2014/09/05 职场文书
2014最新版群众路线四风整改措施
2014/09/24 职场文书
门店店长岗位职责
2015/04/14 职场文书
2015年事业单位工作总结
2015/04/27 职场文书
童年读书笔记
2015/06/26 职场文书
2016新党章学习心得体会
2016/01/15 职场文书
JavaScript parseInt0.0000005打印5原理解析
2022/07/23 Javascript
Python编写车票订购系统 Python实现快递收费系统
2022/08/14 Python