0

次のタグ内のすべてのテキストを削除することに興味があります。

<p class="wp-caption-text">Remove this text</p>

phpでこれを行う方法を誰か教えてもらえますか?

どうもありがとうございました

4

4 に答える 4

3

その中のタグとコンテンツを取り除きます:

 $content = preg_replace('/<p\sclass=\"wp\-caption\-text\">[^<]+<\/p>/i', '', $content);

または、タグを保持したい場合:

 $content = preg_replace('/(<p\sclass=\"wp\-caption\-text\">)[^<]+(<\/p>)/i', '$1$2', $content);
于 2011-01-14T15:28:56.863 に答える
2

正規表現の少し高レベルの代替手段として。

DOMで処理できます。探しているすべてのノードを XPath と照合できます//p[@class="wp-caption-text"]

例えば:

$doc = new DOMDocument();
$doc->loadHTML($yourHTMLasString);
$xpath = new DOMXPath($doc);
$query = '//p[@class="wp-caption-text"]';
$entries = $xpath->query($query);
foreach ($entries as $entry) {
    $entry->textContent = '';
}
echo $doc->saveHTML();
于 2011-01-14T15:49:23.507 に答える
1

これを試して:

$string = '<p class="wp-caption-text">Remove this text</p>'; 
$pattern = '/(.*<p .*>).*(<\/p>.*)/'; 
$replacement = '$1$2'; 
echo preg_replace($pattern, $replacement, $string); 
于 2011-01-14T15:29:06.500 に答える
0

常に同じタグである場合は、単に文字列を検索できます。それから終了タグまでの部分文字列の結果の位置を使用します。または、正規表現を使用することもできます。ここに投稿された、役立つ良い表現があります。

于 2011-01-14T15:27:20.653 に答える