首页 | 新闻 | 交流 | 问吧 | 文档 | 手册 | 下载 | 博客

收藏此问题 发表新评论

切割字符串

1。切割字符串是网站中经常用到的但是也是最麻烦的,php中计算 字符串的时候一个中文是记做两个字符,所以如果直接切割的话容易出现乱码,下面这个函数就可以解决这个问题
/* 函数 get_substr($string, $length)
** 功能 从文本中截取指定长度字符串
** 参数 $string 要截取的文本
** 参数 $length 要截取的字符串长度
*/
//切割字符串
function get_substr($string,$length)
{
if($sublen>=strlen($string))
{
  return $string;
}
$s=\"\";
for($i=0;$i<$sublen;$i++)
{
  if(ord($string{$i})>127)
  {
   $s.=$string{$i}.$string{++$i};
   continue;
  }else{
   $s.=$string{$i};
  continue;
  }
}
return $s.\"...\";
}
使用方法就不用介绍了吧,但是如果你使用的是文本编辑器的话,使用这个函数的时候又会出现一个问题,那就是html代码会被切割开来从而出现网页变形,这个时候你就必须经html代码去掉了,php本身就自带了一个这样的函数\"str_tags\"例如:
<?= get_substr(strip_tags(str_replace(\" \", \"\", $newsInfo[$i][\"content\"])),0,400);?>
上面这一句的意思就是,首先将代码中的空格去掉,然后用str_tags将html代码去掉,然后用get_substr函数截取400个字符。
2。如果大家觉得用php截取字符串比较麻烦的话也可以考虑用js来,如:
<script>
function StrLenthByByte(str,num)
{
var i;
var mystr;
mystr=str;
i=num
if(str.length>i)
{
mystr=str.slice(0, );
document.write(mystr);
}
else
{
document.write(mystr);
}
}
</script>
用法:
<script>StrLenthByByte(str,num)</script>
str,要截取的字符串num要截取多少
昵称: asdld  时间: 2007-12-20 15:29:00
比较复杂。
昵称: luzhou  时间: 2007-12-20 20:01:00
函数有问题 function 参数 是 $length  函数里面根本就没用到这个 变量 用的是$sublen   呵呵
昵称: cld007  时间: 2007-12-21 09:24:00