我不知道是否有任何方式從PHP字符串中刪除特定標籤?從PHP字符串中刪除特定標籤
我有幾個特點,使其知識,例如strip_tags
,但我真正想要的是刪除包含類屬性或任何標籤,我在下面給出一個例子:
$string = '<p>Test paragraph.<p class="inner">Here is some inner text</p></p>';
如何我只能刪除包含class屬性'inner'的標籤?
如果有人能告訴我一個辦法做到這一點,我會很感激。
我不知道是否有任何方式從PHP字符串中刪除特定標籤?從PHP字符串中刪除特定標籤
我有幾個特點,使其知識,例如strip_tags
,但我真正想要的是刪除包含類屬性或任何標籤,我在下面給出一個例子:
$string = '<p>Test paragraph.<p class="inner">Here is some inner text</p></p>';
如何我只能刪除包含class屬性'inner'的標籤?
如果有人能告訴我一個辦法做到這一點,我會很感激。
沒有這樣做的功能,爲避免使用可怕的正則表達式,最好的方法是將其加載到類中,並遍歷字符串中的標記。然後,您可以根據類屬性有選擇地刪除標籤,然後將其寫回到字符串中。
感謝您的回答。 – oletob
@evolquez:無需迭代。檢查我的答案。 –
很簡單的使用XPath:
<?php
$string = '<p>Test paragraph.<p class="inner">Here is some inner text</p></p>';
$dom = new DOMDocument;
@$dom->loadXML($string);
$xpath = new DOMXPath($dom);
$inners = $xpath->query('//p[@class="inner"]'); //Select all p.inner in the document
foreach ($inners as $element) {
$element->parentNode->removeChild($element); //Remove 'em
}
var_dump($dom->saveHTML($dom));
你需要自己解析HTML。 – NullUserException
使用DOM解析器解析您的HTML,然後修改DOM並從DOM重新創建HTML。看看[PHP DOM](http://php.net/manual/en/book.dom.php)頁面。這不是你想用正則表達式解決的問題。 –
我問過類似的疑問。[此鏈接](http://stackoverflow.com/questions/13154595/extract-div-tags-with-specific-class-using-php)有答案。 – harry