用于结束标记的preg_replace仅适用于一个实例

时间:2015-02-08 03:00:48

标签: php regex preg-replace

我将以下内容存储在数据库表中......

<section id="introduction">
  <h2 id="a1">Introduction</h2>
  <div class="Article collapse in article" id="b1">
    (Some text)
  </div>
</section>

<section id="history">
  <h2 id="a2">History</h2>
  <div class="Article collapse in article" id="b2">
    (Some text)
  </div>
</section>

我想在每个div的结束标记之前插入一个元素('XXX')...

<section id="introduction">
  <h2 id="a1">Introduction</h2>
  <div class="Article collapse in article" id="b1">
    (Some text)
    XXX
  </div>
</section>

当然,我必须确保我的脚本忽略嵌套的div。以下脚本几乎可以工作:

 $Content = preg_replace('/<div class="Article collapse in article" id="(.*?)">([^`]*?)<\/div>/', '<div class="Article collapse in article" id="$1">$2XXX</div>', $Content);

事实上,它确实有效 - 但只有一次;它仅在第一部分的末尾插入XXX。另外,我发现它不会忽略嵌套的div。

有谁知道如何解决这些问题?

1 个答案:

答案 0 :(得分:0)

试试simplehtmldom。它会让你更轻松。