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 相关文章推荐
AJAX for PHP简单表数据查询实例
Jan 02 PHP
ASP和PHP都是可以删除自身的
Apr 09 PHP
DedeCMS 核心类TypeLink.class.php摘要笔记
Apr 07 PHP
ThinkPHP写第一个模块应用
Feb 20 PHP
php检测文件编码的方法示例
Apr 25 PHP
yii框架builder、update、delete使用方法
Apr 30 PHP
PHP集成百度Ueditor 1.4.3
Nov 23 PHP
php错误日志简单配置方法
Jul 11 PHP
PHP实现页面静态化的超简单方法
Sep 06 PHP
使用phpQuery获取数组的实例
Mar 13 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
Jun 17 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
Dec 29 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
利用static实现表格的颜色隔行显示的代码
2007/09/02 PHP
用来解析.htpasswd文件的PHP类
2012/09/05 PHP
浅析THINKPHP的addAll支持的最大数据量
2015/02/03 PHP
Yii2创建表单(ActiveForm)方法详解
2016/07/23 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
2019/03/07 PHP
js变量作用域及可访问性的探讨
2006/11/23 Javascript
javascript中的toFixed固定小数位数 简单实例分享
2013/07/12 Javascript
JavaScript中的typeof操作符用法实例
2014/04/05 Javascript
JavaScript实现简单图片滚动附源码下载
2014/06/17 Javascript
JavaScript组合模式学习要点
2016/08/26 Javascript
javascript prototype原型详解(比较基础)
2016/12/26 Javascript
AngularJS constant和value区别详解
2017/02/28 Javascript
Easyui使用Dialog行内按钮布局的实例
2017/07/27 Javascript
Node.js实现连接mysql数据库功能示例
2017/09/15 Javascript
JavaScript运行原理分析
2018/02/09 Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
2018/03/02 Javascript
如何用webpack4带你实现一个vue的打包的项目
2018/06/20 Javascript
详解vue-router数据加载与缓存使用总结
2018/10/29 Javascript
laydate如何根据开始时间或者结束时间限制范围
2018/11/15 Javascript
JavaScript一元正号运算符示例代码
2019/06/30 Javascript
Vue向后台传数组数据,springboot接收vue传的数组数据实例
2020/11/12 Javascript
Python3基础之函数用法
2014/08/13 Python
Python读取MRI并显示为灰度图像实例代码
2018/01/03 Python
python射线法判断检测点是否位于区域外接矩形内
2019/06/28 Python
HTML5实现表单自动验证功能实例代码
2017/01/11 HTML / CSS
Canvas绘制浮动球效果的示例
2017/12/29 HTML / CSS
来自全球大都市的高级街头服饰:Pegador
2018/01/03 全球购物
馥蕾诗美国官网:Fresh美国
2019/10/09 全球购物
高中学生评语大全
2014/04/25 职场文书
汉语言文学专业自荐信
2014/06/11 职场文书
学雷锋献爱心倡议书
2015/04/27 职场文书
夫妻吵架保证书
2015/05/08 职场文书
公司档案管理制度
2015/08/05 职场文书
Win11远程连接不上怎么办?Win11远程桌面用不了的解决方法
2022/08/05 数码科技
详解CSS3浏览器兼容
2022/12/24 HTML / CSS
HTML页面点击按钮关闭页面的多种方式
2022/12/24 HTML / CSS