function stripSingleEndedTag($content, $allowed = array()){
(array)$allowed;
$singletags = array('<meta>','<img>','<input>','<hr>','<br>','<link>','<isindex>','<base>','<meta>','<nextid>','<bork>');
$stripthese = arrayfilterout ($singletags, $allowed);
$stripthese = str_replace(array('<','>'),'',$stripthese);
$pattern = '/<('. implode('|', $stripthese) .')[^>]+\>/i';
$content = preg_replace($pattern, "", $content);
return $content;
}
我这里有什么会带出像<bork />
单端标签,但只要有一些字符“博克”之前后“>” 。 <bork >
和<bork/>
被剥离,但不是<bork>
地带单端标签
顺便说一句,无法使用strip_tags()
。
原来什么任务,你在这样一个奇怪的方式解决? – zerkms
它看起来像是罪魁祸首:[^>] +行$ pattern = ...它匹配一个或多个非>字符。如果您将其更改为[^>] *,那么它可能会开始工作。 – doliver
@doliver,这似乎工作,谢谢。我感觉这是'一个或多个'与'零个或多个'的问题。那是不同的,对吗?这是否也解决了您在OregonTrail答案中提到的问题? –