有HTML:
<div id="attachment_21727" class="someclass">
<img alt="text" src="url" />
<p class="wp-caption-text">Text</p>
</div>
我需要将div
替换为另一个标记。所以我需要找到这个div
,找到其中的内容,然后替换。
attachment_21727 - relative as attachment_{number}
所以我有一个函数PHP:
$pattern = "/<div id=\"attachment_(.*?)\" (.*?)>(.*?)<\/div>/i";
$replacement = '<figure>$3</figure>';
$content = preg_replace($pattern, $replacement, $content);
但是没有工作......有什么想法吗?
答案 0 :(得分:1)
您需要更改正则表达式,如下所示: -
#<div id=\"attachment_(.*?)\">(.+?)</div>#s
工作片段: -
<?php
$content = '<div id="attachment_21727" class="someclass">
<img alt="text" src="url" />
<p class="wp-caption-text">Text</p>
</div>';
$pattern = "#<div id=\"attachment_(.*?)\">(.+?)</div>#s";
$replacement = '<figure>$2</figure>';
echo $content = preg_replace($pattern, $replacement, $content);
输出: - https://eval.in/990377