我需要使用php删除特定字符串,字符串需要以<div class='event'>
开头,后跟任何可能的字符串,但其中包含$myVariable
,然后是</div>
。如何使用preg_replace()
删除所有这些内容?我已经解决了它可能是这样的
preg_replace("<div class='event'>(.*)" . $myVariable . "(.*)</div>", "", $content);
但我无法让它发挥作用。
更新
我需要删除div
及其中的所有内容,div包含事件名称和日期,但我只能根据事件名称删除div,因此日期需要定义为几乎任何字符串
答案 0 :(得分:1)
我们假设您有一个$myVariable
,其中有一些文字节点,其中包含您使用<div>
定义的特定字词。
任务是:
.nodeValue
文字$myVariable
收集$html = "<<YOUR_HTML_STRING>>"
$dom = new DOMDocument; // Declaring the DOM
$dom->loadHTML($html); // Initializing the DOM with an HTML string
$myVariable = "2015-09-12"; // Your dynamic variable
$xpath = new DOMXPath($dom); // Initializing the DOMXpath
$divs = $xpath->query("//div[contains(.,'$myVariable')]"); // Collecting DIVs
// having $myVariable
foreach($divs as $div) {
$div->parentNode->removeChild($div); // Removing the DIVs
}
echo $dom->saveHTML(); // Getting the updated DOM
代码
该算法的代码如下(在演示中使用HTML字符串初始化DOM):
!DOCTYPE
请参阅IDEONE demo
请注意,您可以强制DOMDocument使用以下内容省略添加$dom = new DOMDocument('1.0', 'UTF-8');
$dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
以声明和初始化DOM:
{"code":107,"error":"Invalid JSON: m01011205"}