您当前的位置: 首页 > 网站编程 > PHP教程 > php截取字符串函数的方法

php截取字符串函数的方法

作者:不详 来源:网络 发布时间: 2014-07-31 12:27 点击:
在项目中,遇到一个需求,如我要截取一串字符串,而又不想截取半截的单词,看了下php手册的这个mb_strimwidth() 函数,据说是不会打断单词的,可是测试没有成功,于是乎自己写个先,虽然有些小问题,但是勉强能用了,有时间再封装的好点. 该函数的实现原理是利用wordwrap()打断单

php截取字符串函数的方法

  在项目中,遇到一个需求,如我要截取一串字符串,而又不想截取半截的单词,看了下php手册的这个mb_strimwidth() 函数,据说是不会打断单词的,可是测试没有成功,于是乎自己写个先,虽然有些小问题,但是勉强能用了,有时间再封装的好点. 该函数的实现原理是利用wordwrap()打断单词,然后用mb_strlen()计算单词的长度,截取到需要被截取的长度即可. 如下测试:

  //原字符串

  $str = ‘readonly this boolean attribute indicates that the user cannot modify the value of the control. Unlike the disabled attribute, the readonly attribute does not prevent the user from clicking or selecting in the control. long ge blog’s The value of a read-only control is still submitted with the form.’;

  echo wordcut($str,100);

  //结果:

  readonly this boolean attribute indicates that the user cannot modify value of control. Unlike disabled attribute, …

  /**

  * 该函数截取英文字符串,不会打断英文单词,就是说不会把一个单词截取一半

  * note: 不适用于中文,当然改改也可以

  * note: 目前该函数有点小bug,$cutlength 不是指长度,而是计算所有单词的长度到了这个数时停止,其实也就是空格的长度被忽略了

  */

  function wordcut($string, $cutlength = 250, $replace = ‘…’){

  //长度不足直接返回

  if(mb_strlen($string) <= $cutlength){

  return $string;

  }else{

  //计算当前单词总长度

  $totalLength = 0;

  $datas = $newwords = array();

  //打乱文本

  $wrap = wordwrap($string,1,"t");

  //组成数组

  $wraps = explode("t",$wrap);

  foreach ($wraps as $tmp){

  //计算每个单词的长度

  $datas[$tmp] = mb_strlen($tmp);

  }

  foreach ($datas as $word => $length){

  //保存单词的总长度

  $totalLength += $length;

  //如果小于截取的长度则保存

  if($totalLength < $cutlength){

  array_push($newwords,$word);

  }else{

  break;

  }

  }

  //生成新字符串

  $str = trim(implode(” “,$newwords));

  return empty($str) ? $str : $str.’ ‘.$replace;

  }

  }
分享到:
本文"php截取字符串函数的方法"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4