当我们使用drupal的后台或者其他地方使用了FCKeditor等所见即所得插件后,得出的文本经常会带有附加的html超文本代码,有时候我们使用这个文本信息时不想让某些html代码的效果出现,但是又不能破坏原FCKeditor编辑后的代码,drupal为我们提供了一个很好的过滤替换html的方法:
drupal_html_to_text($string, $allowed_tags = NULL)
原文见:http://api.drupal.org/api/function/drupal_html_to_text/6
官方解释:
转换成纯文本的HTML字符串,维护结构的标记。对于想要将节点来当做邮件发送是很有用的,方法提供了以下标签的合适替换:
<a> <em> <i> <strong> <b> <br> <p> <blockquote> <ul> <ol> <li> <dl> <dt> <dd> <h1> <h2> <h3> <h4> <h5> <h6> <hr>
(就是说以上的这些指定标签都会被这个方法以其他的字符来替换,这些之外的字符会被去掉,替换的字符不会产生html效果,详细可见看官方api的源代码)
参数:
$string 需要处理的字符串.
$allowed_tags (可选) 如果提供了这个参数, 所提供的标签将被过滤. 如果省略, 所有标签将被过滤.
例:
//未过滤的效果
function test_index(){
$str = '<p><B><FONT SIZE="5" COLOR="#FF9999">我爱北京天安门</FONT></B></p>';
return $str;
}
效果:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/yyyfff43/EntryImages/20091112/6.jpg)
//全过滤的效果
function test_index(){
$str = '<p><B><FONT SIZE="5" COLOR="#FF9999">我爱北京天安门</FONT></B></p>';
$str = '<p><B><FONT SIZE="5" COLOR="#FF9999">我爱北京天安门</FONT></B></p>';
return drupal_html_to_text($str);
}
效果:
![](https://p-blog.csdn.net/images/p_blog_csdn_net/yyyfff43/EntryImages/20091112/7.jpg)
这时<p>被替换为‘ ’
<B>被替换为*
<FONT>被去掉,字号和颜色效果没了