DEDE 字符串操作常见问题

PHP String 函数

1.substr中文乱码,使用mb_substr处理

{dede:arclist row='10' typeid='10'}
<div class='titlelink'><a href="[field:arcurl/]">
[field:fulltitle runphp='yes']
$count = strlen(@me);
if($count>56)
{
@me=mb_substr(@me,0,20,'utf-8').'...';
}
[/field:fulltitle]
</a></div>{/dede:arclist}

方法拓展:

mb_substr()/mb_strcut最后要加入多一个参数,以设定字符串的编码,但是一般的服务器都没打开php_mbstring.dll,需要在php.ini在把php_mbstring.dll打开。

< ?php  echo mb_substr('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8');  ?> 
输出:这样一来我的字  
< ?php  echo mb_strcut('这样一来我的字符串就不会有乱码^_^', 0, 7, 'utf-8');  ?> 
输出:这样一

PHP substr截取中文字符无乱码的方法

function GBsubstr($string, $start, $length) {  
  if(strlen($string)>$length){  
  $str=null;  
  $len=$start+$length;  
  for($i=$start;$i<$len;$i++){  
    if(ord(substr($string,$i,1))>0xa0){  
    $str.=substr($string,$i,2);  
    $i++;  
  }else{  
    $str.=substr($string,$i,1);  
  }  
  }  
  return $str.'...';  
  }else{  
    return $string;  
  }  
}  
原文地址:https://www.cnblogs.com/cncz/p/3591685.html