php语言

php截取指定长度中文字符的技巧

时间:2025-03-14 15:29:54 php语言 我要投稿
  • 相关推荐

php截取指定长度中文字符的技巧

  在PHP程序开发中,经常会执行字符串的截取操作,那么php如何截取指定长度中文字符呢?来看看小编的分享吧!

  但字符串只要出现中文字符,就有可能导致PHP substr 中文乱码,因为中文UTF-8编码,每个汉字占3字节,而GB2312占2字节,英文占1字节,截取位数不准确,substr()硬生生地将一个中文字符“锯”成两半,造成断开的字符会把其后的..拉过来一起做一个字,所以出现了PHP substr中文乱码。下面说一下解决办法:

  使用mb_stren()函数:

  [php] view plain copymixed mb_strlen ( string $str[, string $encoding = mb_internal_encoding() ] )

  第一个参数为要处理的的字符串 第二个参数为编码方式 忽略则使用默认编码

  根据此函数来截取中文字符串,自定义函数为:

  [php] view plain copy/**

  * @param string $string 要截取的字符串

  * @param int $len 要截取的长度

  * @param string $tail 截取后结尾替换的字符换

  * @return string $string 返回截取后的字符串

  */

  function changeStr($string,$len,$tail){

  if(mb_strlen($string)>$len){

  $tmp = mb_substr($string,0,$len,'utf8');

  return $tmp.$tail;

  }else{

  return $arg;

  }

  }

  测试:

  [php] view plain copy

  header('Content-type:text/html;charset=utf8');

  $string = "大众创业、万众创新成为全社会的共识。开展股权众筹融资试点”被正式写入政府工作报告,

  即将修订的《证券法》也将赋予股权众筹一个法律地位。当今的中国是创业的热土,也是股权众筹最适宜生

  长的土壤,支持一大批创新创业公司因“众筹”而成功是众筹行业的历史使命。中关村作为新经济的风向标和

  策源地,率先诞生了中国最有影响力的一批股权众筹平台,推动股权众筹行业健康发展,为“大众创业、万众

  创新”营造良好发展环境成为中关村的历史使命和必然选择。";

  echo changeStr($string,10,'.....');

  /**

  * @param string $string 要截取的字符串

  * @param int $len 要截取的长度

  * @param string $tail 截取后结尾替换的字符换

  * @return string $string 返回截取后的字符串

  */

  function changeStr($string,$len,$tail){

  if(mb_strlen($string)>$len){

  $tmp = mb_substr($string,0,$len,'utf8');

  return $tmp.$tail;

  }else{

  return $arg;

  }

  }

  ?>

  输出:

  大众创业、万众创新.....


【php截取指定长度中文字符的技巧】相关文章:

php字符串截取函数06-10

php字符串截取问题05-02

PHP如何获取中文字符串长度07-17

解读php字符串截取函数用法04-09

php指定长度分割字符串str-split函数如何实现06-15

详解PHP用substr函数截取字符串03-01

PHP数组长度的技巧05-20

PHP生成随机字符串的技巧12-29

PHP生成自定义长度随机字符串实例07-22