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 相关文章推荐
PHP5.0正式发布 不完全兼容PHP4 新增多项功能
Oct 09 PHP
PHP输出控制功能在简繁体转换中的应用
Oct 09 PHP
PHP 函数执行效率的小比较
Oct 17 PHP
理解php原理的opcodes(操作码)
Oct 26 PHP
php中过滤非法字符的具体实现
Oct 29 PHP
两个php日期控制类实例
Dec 09 PHP
php中判断数组相等的方法以及数组运算符介绍
Mar 30 PHP
php中get_defined_constants函数用法实例分析
May 12 PHP
PHP支付系统设计与典型案例分享
Aug 02 PHP
php发送http请求的常用方法分析
Nov 08 PHP
yii2.0整合阿里云oss的示例代码
Sep 19 PHP
laravel 解决Validator使用中出现的问题
Oct 25 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入门基础之php代码写法
2011/12/30 PHP
php动态函数调用方法
2015/05/21 PHP
PHP实现的DES加密解密实例代码
2016/04/06 PHP
php+jQuery递归调用POST循环请求示例
2016/10/14 PHP
php实现微信支付之企业付款
2018/05/30 PHP
yii2.0框架实现上传excel文件后导入到数据库的方法示例
2020/04/13 PHP
javascript奇异的arguments分析
2010/10/20 Javascript
JQuery插件Style定制化方法的分析与比较
2012/05/03 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
2015/01/05 Javascript
15个jquery常用方法、小技巧分享
2015/01/13 Javascript
ajax+jQuery实现级联显示地址的方法
2015/05/06 Javascript
使用jQuery操作HTML的table表格的实例解析
2016/03/13 Javascript
Listloading.js移动端上拉下拉刷新组件
2016/08/04 Javascript
一个炫酷的Bootstrap导航菜单
2016/12/28 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
2017/08/14 jQuery
详解IWinter 一个路由转控制器的 Nodejs 库
2017/11/15 NodeJs
vue在使用ECharts时的异步更新和数据加载详解
2017/11/22 Javascript
Vue使用vue-area-linkage实现地址三级联动效果的示例
2018/06/27 Javascript
jQuery的ztree仿windows文件新建和拖拽功能的实现代码
2018/12/05 jQuery
uniapp,微信小程序中使用 MQTT的问题
2020/07/11 Javascript
使用70行Python代码实现一个递归下降解析器的教程
2015/04/17 Python
python实现发送邮件功能代码
2017/12/14 Python
TensorFlow实现MLP多层感知机模型
2018/03/09 Python
Python 类的特殊成员解析
2018/06/20 Python
浅谈Python traceback的优雅处理
2018/08/31 Python
Python如何读取文件中图片格式
2020/01/13 Python
python判断两个序列的成员是否一样的实例代码
2020/03/01 Python
HTML5之SVG 2D入门1—SVG(可缩放矢量图形)概述
2013/01/30 HTML / CSS
德国婴儿推车和儿童安全座椅商店:BABYSHOP
2016/09/01 全球购物
为什么说Ruby是一种真正的面向对象程序设计语言
2012/10/30 面试题
单位办理社保介绍信
2014/01/10 职场文书
《锄禾》教学反思
2014/04/08 职场文书
违反纪律检讨书范文
2015/05/07 职场文书
python实现MD5进行文件去重的示例代码
2021/07/09 Python
MySQL into_Mysql中replace与replace into用法案例详解
2021/09/14 MySQL
Mysql数据库手动及定时备份步骤
2021/11/07 MySQL