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项目打包方法
Feb 18 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(二)
Jun 23 PHP
php通过文件流方式复制文件的方法
Mar 13 PHP
PHP实现二叉树的深度优先与广度优先遍历方法
Sep 28 PHP
PHP判断手机是IOS还是Android
Dec 09 PHP
PHP快速生成各种信息提示框的方法
Feb 03 PHP
PHP实现bitmap位图排序与求交集的方法
Jul 28 PHP
php正则表达式基本知识与应用详解【经典教程】
Apr 17 PHP
PHP中一个有趣的preg_replace函数详解
Aug 15 PHP
php中青蛙跳台阶的问题解决方法
Oct 14 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 PHP
php模拟实现斗地主发牌
Apr 22 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通过session id 实现session共享和登录验证的代码
2012/06/03 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
2014/05/08 PHP
PHP 正则表达式常用函数
2014/08/17 PHP
javascript 数组的方法集合
2008/06/05 Javascript
html5 canvas js(数字时钟)实例代码
2013/12/23 Javascript
jQuery学习笔记之jQuery.fn.init()的参数分析
2014/06/09 Javascript
jquery使用each方法遍历json格式数据实例
2015/05/18 Javascript
JS简单模拟触发按钮点击功能的方法
2015/11/30 Javascript
js微信扫描二维码登录网站技术原理
2016/12/01 Javascript
JavaScript自定义文本框光标
2017/03/05 Javascript
代码详解JS操作剪贴板
2018/02/11 Javascript
vue devtools的安装与使用教程
2018/08/08 Javascript
vue构建动态表单的方法示例
2018/09/22 Javascript
微信小程序云开发修改云数据库中的数据方法
2019/05/18 Javascript
vue中keep-alive组件的入门使用教程
2019/06/06 Javascript
Elasticsearch实现复合查询高亮结果功能
2019/09/10 Javascript
基于JS实现操作成功之后自动跳转页面
2020/09/25 Javascript
[02:45]2016年中国刀塔全程回顾,完美“圣”典即将上演
2016/12/15 DOTA
python实现冒泡排序算法的两种方法
2018/03/10 Python
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
pyqt5 实现工具栏文字图片同时显示
2019/06/13 Python
python-numpy-指数分布实例详解
2019/12/07 Python
python 多进程队列数据处理详解
2019/12/23 Python
Python使用configparser库读取配置文件
2020/02/22 Python
python实现从ftp服务器下载文件
2020/03/03 Python
tensorflow模型转ncnn的操作方式
2020/05/25 Python
python opencv实现简易画图板
2020/08/27 Python
使用Python实现NBA球员数据查询小程序功能
2020/11/09 Python
微观物理专业自荐信
2014/01/26 职场文书
高中毕业自我评价
2014/02/08 职场文书
幼儿园教师教育感言
2014/02/28 职场文书
拓展训练激励口号
2014/06/17 职场文书
写给领导的感谢信
2015/01/22 职场文书
2016暑期校本培训心得体会
2016/01/08 职场文书
导游词之贵州织金洞
2019/10/12 职场文书
利用Python多线程实现图片下载器
2022/03/25 Python