次のタグ内のすべてのテキストを削除することに興味があります。
<p class="wp-caption-text">Remove this text</p>
phpでこれを行う方法を誰か教えてもらえますか?
どうもありがとうございました
次のタグ内のすべてのテキストを削除することに興味があります。
<p class="wp-caption-text">Remove this text</p>
phpでこれを行う方法を誰か教えてもらえますか?
どうもありがとうございました
その中のタグとコンテンツを取り除きます:
$content = preg_replace('/<p\sclass=\"wp\-caption\-text\">[^<]+<\/p>/i', '', $content);
または、タグを保持したい場合:
$content = preg_replace('/(<p\sclass=\"wp\-caption\-text\">)[^<]+(<\/p>)/i', '$1$2', $content);
正規表現の少し高レベルの代替手段として。
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();
これを試して:
$string = '<p class="wp-caption-text">Remove this text</p>';
$pattern = '/(.*<p .*>).*(<\/p>.*)/';
$replacement = '$1$2';
echo preg_replace($pattern, $replacement, $string);
常に同じタグである場合は、単に文字列を検索できます。それから終了タグまでの部分文字列の結果の位置を使用します。または、正規表現を使用することもできます。ここに投稿された、役立つ良い表現があります。