PHP strip_tags
использовать белый список для пропуска некоторых тегов, которые вы не хотите, избавились. Кто-нибудь знает какую-то реализацию, но использует черный список вместо белого списка?Как убрать теги HTML с помощью черного списка в PHP?
0
A
ответ
2
Простой поиск соединение регулярное выражение будет работать (если это еще о вашем предыдущем номере):
$html =
preg_replace("#</?(font|strike|marquee|blink|del)[^>]*>#i", "", $html);
1
Попробуйте эту функцию, отправленный LWC на php.net - http://www.php.net/manual/en/function.strip-tags.php#96483
<?php
function strip_only($str, $tags, $stripContent = false) {
$content = '';
if(!is_array($tags)) {
$tags = (strpos($str, '>') !== false ? explode('>', str_replace('<', '', $tags)) : array($tags));
if(end($tags) == '') array_pop($tags);
}
foreach($tags as $tag) {
if ($stripContent)
$content = '(.+</'.$tag.'[^>]*>|)';
$str = preg_replace('#</?'.$tag.'[^>]*>'.$content.'#is', '', $str);
}
return $str;
}
$str = '<font color="red">red</font> text';
$tags = 'font';
$a = strip_only($str, $tags); // red text
$b = strip_only($str, $tags, true); // text
?>
пожалуйста, объясните эта часть: [^>] * – texai
@texai: '[^>] *' - распространенный метод для сопоставления всего внутри тегов HTML. Он соответствует любому числу символов, которые ** не ** закрывают '>' угловую скобку. Регулярная часть '[^ ...]' означает [отрицательный класс символов] (http://www.regular-expressions.info/charclass.html). – mario