$row=mb_substr(html_entity_decode($latestnews['content']),0,26,'UTF-8'); 用这个截取的内容为包含<div><span><br>之类的; 其中$latestnews['content']是数据库中的内容:举个例子为<div><span> </span>我很庆幸公司有这样一批优秀的员工,相信在所有员工的共同努力下,我们会克服一切困难,做好每一项工作,让禹王走的更远。</div><span>我想在页面显示时只过滤出汉字部分,其它不要
有个地方写错了:不是$row=mb_substr(html_entity_decode($latestnews['content']),0,26,'UTF-8'); 而是$row=mb_substr($latestnews['content'],0,26,'UTF-8');
可能两位没有能理解我的意思,我的意思是数据库中
。</div><span>一个数</span></div>
<div>二个数</div>
<span>第三个数</span>
<br>第四个数<p>
..... 有很多类似的符号;要把他们去掉
strip_tags是PHP自带的过滤HTML标签的函数。
$row=mb_substr(htmlspecialchars(strip_tags($latestnews['content'])),0,26,'UTF-8')
如果想把<script></script>之间的也去掉,只能正则了:
$str = preg_replace("|<script.*>.*</script>|Usi", '', $str);
$row=mb_substr(htmlspecialchars(strip_tags($latestnews['content'])),0,26,'UTF-8')
如果想把<script></script>之间的也去掉,只能正则了:
$str = preg_replace("|<script.*>.*</script>|Usi", '', $str);
温馨提示:答案为网友推荐,仅供参考
第1个回答 2009-04-29
用下面的代码删除所有的其它代码:
$latestnews['content']=preg_replace('|<.*?>|','',$latestnews['content']);
$latestnews['content']=preg_replace('|<.*?>|','',$latestnews['content']);
第2个回答 2009-04-29
$char="<div><span>我很庆幸公司有这样一批优秀的员工……</span></div>";
你的意思是只要<span>与</span>之间的内容,那么就以“<span>”和“</span>”作为标记进行截取,这里要用到一个函数explode()函数,它可以截取指定标记的字符。
$rs=explode("<span>",$char);
//将$char以<span>为标记将其分割成前后两部分
//得到的$rs[1]值解释<span>后面的那一部分
$result=explode("</span>",$rs[1]);
echo $result[0];
//$result[0]就是经过两次截取得到的纯汉字部分。
你的意思是只要<span>与</span>之间的内容,那么就以“<span>”和“</span>”作为标记进行截取,这里要用到一个函数explode()函数,它可以截取指定标记的字符。
$rs=explode("<span>",$char);
//将$char以<span>为标记将其分割成前后两部分
//得到的$rs[1]值解释<span>后面的那一部分
$result=explode("</span>",$rs[1]);
echo $result[0];
//$result[0]就是经过两次截取得到的纯汉字部分。
参考资料: