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 相关文章推荐
set_include_path在win和linux下的区别
Jan 10 PHP
PHP 字符截取 解决中文的截取问题,不用mb系列
Sep 29 PHP
PHP pathinfo()获得文件的路径、名称等信息说明
Sep 13 PHP
php 保留字列表
Oct 04 PHP
PHP获取短链接跳转后的真实地址和响应头信息的方法
Jul 25 PHP
PHP易混淆函数的区别及用法汇总
Nov 22 PHP
Zend Framework教程之MVC框架的Controller用法分析
Mar 07 PHP
php+mysql实现简单登录注册修改密码网页
Nov 30 PHP
PHP手机号中间四位用星号*代替显示的实例
Jun 02 PHP
PHP实践教程之过滤、验证、转义与密码详解
Jul 24 PHP
PHP自定义函数实现数组比较功能示例
Oct 19 PHP
PHP设计模式之注册树模式分析
Jan 26 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中查询SQL Server或Sybase时TEXT字段被截断的解决方法
2009/03/10 PHP
php实现映射操作实例详解
2019/10/02 PHP
BOOM vs RR BO3 第一场2.13
2021/03/10 DOTA
从新浪弄下来的全屏广告代码 与使用说明
2007/03/15 Javascript
判断浏览器的javascript版本的代码
2010/09/03 Javascript
JS判定是否原生方法
2013/07/22 Javascript
使用nodejs开发cli项目实例
2015/06/03 NodeJs
jquery跟随屏幕滚动效果的实现代码
2016/04/13 Javascript
微信小程序 textarea 详解及简单使用方法
2016/12/05 Javascript
原生JS和jQuery操作DOM对比总结
2017/01/19 Javascript
jQuery实现的表格前端排序功能示例
2017/09/18 jQuery
Three.js中网格对象MESH的属性与方法详解
2017/09/27 Javascript
jquery判断滚动条距离顶部的距离方法
2018/09/05 jQuery
基于React Native 0.52实现轮播图效果
2020/08/25 Javascript
微信小程序实现多选框全选与取消全选功能示例
2019/05/14 Javascript
解决vue中的无限循环问题
2020/07/27 Javascript
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
python实现超简单端口转发的方法
2015/03/13 Python
Django rest framework工具包简单用法示例
2018/07/20 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
2020/01/24 Python
在主流系统之上安装Pygame的方法
2020/05/20 Python
北美三大旅游网站之一:Travelocity加拿大
2016/08/20 全球购物
复古斯堪的纳维亚儿童服装:Baby go Retro
2017/09/09 全球购物
Nisbets爱尔兰:英国最大的厨房和餐饮设备供应商
2019/01/26 全球购物
希腊香水和化妆品购物网站:Parfimo.gr
2019/10/03 全球购物
意大利领先的奢侈品在线时装零售商:MCLABELS
2020/10/13 全球购物
一份Java笔试题
2012/02/21 面试题
单位消防安全制度
2014/01/12 职场文书
学校门卫岗位职责范本
2014/06/30 职场文书
公司委托书怎么写
2014/08/02 职场文书
中学生秋季运动会广播稿
2014/09/21 职场文书
学习焦裕禄观后感
2015/06/09 职场文书
工作态度怎么写
2015/06/25 职场文书
2016抗战胜利71周年红领巾广播稿
2015/12/18 职场文书
Python办公自动化之教你用Python批量识别发票并录入到Excel表格中
2021/06/26 Python