当我们使用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;
}
效果:

//全过滤的效果
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);
}
效果:

这时<p>被替换为‘ ’
<B>被替换为*
<FONT>被去掉,字号和颜色效果没了