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'));