2011-02-14 22 views

答えて

2

(これはあなたの前の問題について、まだであれば)、単純な化合物の正規表現検索は動作します:

$html = 
preg_replace("#</?(font|strike|marquee|blink|del)[^>]*>#i", "", $html); 
+0

てください、説明この部分:[^>] * – texai

+0

@texai: '[^>] *'は、HTMLタグの中のすべてをマッチングさせるための一般的な方法です。これは、**の閉じ括弧ではない任意の数の文字にマッチします。正規表現の部分 '[^ ...]'は、[否定文字クラス](http://www.regular-expressions.info/charclass.html)を意味します。 – mario

1

php.netにLWCによって投稿この機能を試してみてください - 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 
?> 
関連する問題