Удалить теги HTML и внутренний текст из строки

Я использую strip_tags удалить теги HTML из строки. Тем не менее, этот метод все еще сохраняет этот внутренний текст.

Как я могу удалить теги и внутренний текст из строки?

Например:

Hello World <a href="/world">Remove me please!</a>, hello my friends.

//expected result

Hello world, hello my friends.

1 ответ

Взято из комментария к документации PHP для strip_tags()

<?php 
function strip_tags_content($text, $tags = '', $invert = FALSE) { 

  preg_match_all('/<(.+?)[\s]*\/?[\s]*>/si', trim($tags), $tags); 
  $tags = array_unique($tags[1]); 

  if(is_array($tags) AND count($tags) > 0) { 
    if($invert == FALSE) { 
      return preg_replace('@<(?!(?:'. implode('|', $tags) .')\b)(\w+)\b.*?>.*?</\1>@si', '', $text);
    } 
    else { 
      return preg_replace('@<('. implode('|', $tags) .')\b.*?>.*?</\1>@si', '', $text); 
    } 
  } 
  elseif($invert == FALSE) { 
    return preg_replace('@<(\w+)\b.*?>.*?</\1>@si', '', $text); 
  } 
  return $text; 
} 
?>

Все права на http://www.php.net/strip_tags

Другие вопросы по тегам