提取并替换段落中的所有图像
Extract and replace all images from paragraph
我有这个 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', ' ', $text);
这非常粗糙,可能会比您想要的匹配更多,但在非常简单的情况下,这可能会起作用:
$result = preg_replace('/(<p[^>]*>)(.*?)(<img[^>]*>)/is', '', $text);
这可能更好:
$result = preg_replace('/(<p[^>]*>)([^<]*)(<img[^>]*>)/is', '', $text);
这对我有用,它会查找包含任何内容和图像的每个段落,因此我可以匹配所有图像及其包含的段落。
$pattern = '/(<p\b[^><]*>)(((?!<\/p>).?)*)(<img.*?\/\>)(((?!<\/p>).?)*)(<\/p>)/s';
我有这个 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', ' ', $text);
这非常粗糙,可能会比您想要的匹配更多,但在非常简单的情况下,这可能会起作用:
$result = preg_replace('/(<p[^>]*>)(.*?)(<img[^>]*>)/is', '', $text);
这可能更好:
$result = preg_replace('/(<p[^>]*>)([^<]*)(<img[^>]*>)/is', '', $text);
这对我有用,它会查找包含任何内容和图像的每个段落,因此我可以匹配所有图像及其包含的段落。
$pattern = '/(<p\b[^><]*>)(((?!<\/p>).?)*)(<img.*?\/\>)(((?!<\/p>).?)*)(<\/p>)/s';