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面向对象全攻略 (八)重载新的方法
Sep 30 PHP
PHP 单引号与双引号的区别
Nov 24 PHP
php设计模式之单例模式使用示例
Jan 20 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
Jan 26 PHP
Windows下安装PHP单元测试环境PHPUnit图文教程
Oct 24 PHP
php调用新浪短链接API的方法
Nov 08 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
Nov 25 PHP
PHP7.0安装笔记整理
Aug 28 PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
May 23 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
Dec 20 PHP
浅谈PHPANALYSIS提取关键字
Mar 08 PHP
PHP生成指定范围内的N个不重复的随机数
Mar 18 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 缓冲的免费实现方法
2006/10/09 PHP
php读取30天之内的根据算法排序的代码
2008/04/06 PHP
按上下级层次关系输出内容的PHP代码
2010/07/17 PHP
php实现的click captcha点击验证码类实例
2014/09/23 PHP
laravel 事件/监听器实例代码
2019/04/12 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
JS 使用for循环遍历子节点查找元素
2014/09/06 Javascript
javascript实现给定半径求出圆的面积
2015/06/26 Javascript
jQuery地图map悬停显示省市代码分享
2015/08/20 Javascript
nodejs实例解析(输出hello world)
2017/01/03 NodeJs
详解angularjs 关于ui-router分层使用
2017/06/12 Javascript
vue页面离开后执行函数的实例
2018/03/13 Javascript
vue 注册组件的使用详解
2018/05/05 Javascript
详解vue3中组件的非兼容变更
2021/03/03 Vue.js
20行python代码的入门级小游戏的详解
2019/05/05 Python
Python ORM编程基础示例
2020/02/02 Python
Tensorflow限制CPU个数实例
2020/02/06 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
2020/06/17 Python
利用HTML5绘制点线面组成的3D图形的示例
2015/05/12 HTML / CSS
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
俄罗斯购买内衣网站:Trusiki
2020/08/22 全球购物
数控专业大学生的自我鉴定
2013/11/13 职场文书
高中体育教学反思
2014/01/29 职场文书
煤矿机修工岗位职责
2014/02/07 职场文书
银行贷款承诺书
2014/03/29 职场文书
五四青年节优秀演讲稿范文
2014/05/28 职场文书
感恩教育月活动总结
2014/07/07 职场文书
高中学生自我评价范文
2014/09/23 职场文书
工作作风建设心得体会
2014/10/22 职场文书
离职报告格式
2014/11/04 职场文书
初中差生评语
2014/12/29 职场文书
初中成绩单评语
2014/12/29 职场文书
中秋节慰问信
2015/02/15 职场文书
建筑安全员岗位职责
2015/02/15 职场文书
出纳2015年度工作总结范文
2015/10/14 职场文书
2016年精神文明建设先进个人事迹材料
2016/02/29 职场文书