PHP strip_tags保留多个HTML标签的方法
本文介绍了PHPstrip_tags函数保留多个HTML标签的方法,可以使用第二个参数来设置不需要删除的标签,主要涉及到strip_tags的第二个参数
strip_tags函数
语法
stringstrip_tags(stringstr[,stringallowable_tags])
返回一个去除了HTML标签的字符串;可以使用第二个参数来设置不需要删除的标签。
使用方法:
前提:假如现在有这样一个字符串,
$str="<p>我来自<b><ahref='https://www.nhooo.com'>毛票票</a></b></p>";
1,不保留任何HTML标签,代码会是这样:
echostrip_tags($str); //输出:我来自毛票票
2,只保留<a>一个标签的话,只需要将<a>字符串写到strip_tags的第二个参数中:
echostrip_tags($str,"<a>"); //输出:我来自<ahref='https://www.nhooo.com'>毛票票</a>
3,要保留<p>与<b>…多个标签,只需要将多个标签用空格分隔后写到strip_tags的第二个参数中:
echostrip_tags($str,"<p><b>"); //输出:<p>我来自<b>毛票票</b></p>
如果要使用php删除html标记中的特定标签呢?
这个就需要代码来实现了,如下:
functionstrip_selected_tags($text,$tags=array()){
$args=func_get_args();
$text=array_shift($args);
$tags=func_num_args()>2?array_diff($args,array($text)):(array)$tags;
foreach($tagsas$tag){
if(preg_match_all('/<'.$tag.
'[^>]*>([^<]*)</'.$tag.
'>/iu',$text,$found)){
$text=str_replace($found[0],$found[1],$text);
}
}
returnpreg_replace('/(<('.join('|',$tags).
')(||.)*/>)/iu','',$text);
}
$str="[url="]123[/url]";
echostrip_selected_tags($str,array('b'));