【发布时间】:2016-02-03 21:58:00
【问题描述】:
我有这个 html 内容:
<p><img src="##" />
</p>
<p>
<img src="##" />
</p>
<p>
</p>
<p class="ss"><a href="ss">
<img src="####" />
</a></p>
我想提取所有段落及其所有图像并重新格式化 html,以便我可以先有图像,然后是以下段落,这是一个示例:
<img src="##" /><p>
</p>
<img src="##" />
<p>
</p>
<p>
</p>
<img src="####" />
<p class="ss"><a href="ss">
</a></p>
我尝试了一些方法,但它不起作用:
$result = preg_replace('/(<p\b[^><]*)>(.+?)(<img([^>]*)\/>)(.+?)(<\/p>)/is', '$2 $4', $text);
【问题讨论】:
-
使用 html 解析器很难做到这一点,更不用说使用正则表达式了。
-
这就是我想要的,只有正则表达式
-
为什么要坚持正则表达式?使用SimpleXML 会更容易。
标签: php regex html-parsing