我需要刪除具有特定類別和屬性的<span class="" data-nid="">
標籤。我在StackOverflow上查找了所有類似的答案,但無濟於事。刪除具有特定類別和屬性的span標籤
我試圖刪除任何跨度標籤是這樣的:
<span class="article-id post-id" data-nid="12563">some text</span>
這裏是我的嘗試,但它不工作:
function remove_post_image($content){
// replace any span with specific class
$content = preg_replace('#<span class="article-id post-id".*?>(.*?)</span>#i', '', $content);
return $content;
}
add_action('content_save_pre', 'remove_post_image');
這是否必須在PHP?試圖將HTML作爲一個字符串來操作有很多複雜性,用JavaScript或其他能夠將HTML完全解析爲DOM的東西(並且記住,HTML不是XML)要容易得多。例如在jQuery中:'$('。article-id.post-id')。remove()'。 –
是的請,PHP的正則表達式或MySQL查詢。 –
很確定MySQL做什麼特別的事情是不可能的(一個擴展也許可以做到),而正則表達式可能只有當你能100%保證如何生成HTML時(如果'class'不是第一個屬性呢?這些類是以另一種順序存在,還是有額外的類?如果存在嵌套跨度,如何確保匹配正確的結束標記?如果在引用屬性中存在未轉義的'>',該怎麼辦?等等。 –