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 编写的 25个游戏脚本
May 11 PHP
PHP遍历数组的几种方法
Mar 22 PHP
PHP autoload与spl_autoload自动加载机制的深入理解
Jun 05 PHP
PHP遍历数组的方法汇总
Apr 30 PHP
PHP会话处理的10个函数
Aug 11 PHP
thinkphp3.x中cookie方法的用法分析
May 19 PHP
Laravel5中防止XSS跨站攻击的方法
Oct 10 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
Nov 16 PHP
使用 laravel sms 构建短信验证码发送校验功能
Nov 06 PHP
laravel withCount 统计关联数量的方法
Oct 10 PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 PHP
详解PHP Swoole与TCP三次握手
May 27 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
电脑硬件及电脑配置知识大全
2020/03/17 数码科技
php中的登陆login
2007/01/18 PHP
PHP几个实用自定义函数小结
2016/01/25 PHP
使用php实现从身份证中提取生日
2016/05/09 PHP
PHP目录操作实例总结
2016/09/27 PHP
关于jquery动态增减控件的一些想法和小插件
2010/08/01 Javascript
url地址自动加#号问题说明
2010/08/21 Javascript
jquery each()源代码
2011/02/14 Javascript
JavaScript中的cacheStorage使用详解
2015/07/29 Javascript
js使用cookie记录用户名的方法
2015/11/26 Javascript
javascript运算符语法全面概述
2016/07/14 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
2016/08/05 Javascript
JS获取当前页面名称的简单实例
2016/08/19 Javascript
原生js实现手风琴功能(支持横纵向调用)
2017/01/13 Javascript
js指定步长实现单方向匀速运动
2017/07/17 Javascript
angular4中关于表单的校验示例
2017/10/16 Javascript
jQuery 实现左右两侧菜单添加、移除功能
2018/01/02 jQuery
解决vue props 拿不到值的问题
2018/09/11 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
2018/09/27 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
2019/04/28 Javascript
Vue分页插件的前后端配置与使用
2019/10/09 Javascript
python使用SMTP发送qq或sina邮件
2017/10/21 Python
Python numpy生成矩阵、串联矩阵代码分享
2017/12/04 Python
给大家整理了19个pythonic的编程习惯(小结)
2019/09/25 Python
Python面向对象编程基础实例分析
2020/01/17 Python
获取CSDN文章内容并转换为markdown文本的python
2020/09/06 Python
pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit code的问题
2020/12/04 Python
C#如何进行LDAP用户校验
2012/11/21 面试题
大学生大二自我鉴定
2013/10/28 职场文书
自我介绍演讲稿范文
2014/08/21 职场文书
2015公务员年度考核评语
2015/03/25 职场文书
客户付款通知书
2015/04/23 职场文书
四群教育工作总结
2015/08/10 职场文书
如何制定销售人员薪酬制度?
2019/07/09 职场文书
如何利用Python实现一个论文降重工具
2021/07/09 Python
Pytorch中使用ImageFolder读取数据集时忽略特定文件
2022/03/23 Python