Мне интересно удалить весь текст в следующих тегах:
<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);
если это всегда один и тот же тег, вы можете просто выполнить поиск строки. используйте полученную позицию для подстроки от нее до закрывающего тега. Или вы можете использовать регулярное выражение, здесь есть хорошие выражения, которые могут вам помочь.
<whatever>
- person Gordon   schedule 14.01.2011