php截取字符串以及去掉html标记

来源:百度知道 编辑:UC知道 时间:2024/07/02 10:03:50
现在有一段从数据库读出来的$blog,因为是用FCKeditor编辑,所以代码乱七八糟
两个要求
1.将读出的内容,去掉全部html,好像是用strip_tags函数吧,具体怎么用的

2.然后将去掉html标签的内容截取,比如截取100个字符(无论中英文还是标点都按100个算),然后后面的用"..."代替,好像记得也是有个函数的.

第一个很简单,就用你提供这个函数就可以。
不过第二个没有函数能执行。因为如果是英文字符应该占用1位,但中文不一样,utf8的一个汉字占用3个字符,这样如果出现中英文一起的情况就会出现乱码。必须自定义函数解决,下面给你一个简单的
<?php
function chinesesubstr($str,$start,$len) {//$str是指字符串,$start指字符串的起始位置,$len指字符串长度
$strlen=$start+$len; //用$strlen存储字符串的总长度
for($i=0;$i<$strlen;$i++) {
if(ord(substr($str,$i,1))>0xa0) { //如果字符串中出现汉字,也就是ASC码大于0xa0的。作出判断与英文字符不一样。
$tmpstr.=substr($str,$i,2);
$i++;
}
else
$tmpstr.=substr($str,$i,1);
}
return $tmpstr;
}
?>

$str="带html的字符串";
$str2=strip_tags($str);
echo $str2; //已经去掉html 标

$str = preg_replace("/<[a-zA-Z][^>^\/]*\/>/", "", $str);
$str = preg_replace("/<[a-zA-Z][^>]*>/", "", $str);
$str = preg_replace("/<\/[^>]+>/", "", $str);
$str = trim($