【发布时间】:2015-02-20 11:48:14
【问题描述】:
我有一个将<img> 标签包装在<div> 中的函数。通常这些可以出现在<p> 标签中(由于所见即所得的编辑器)。
$doc->loadHtml($str);
$tags = $doc->getElementsByTagName('img');
foreach ($tags as $tag) {
$div = $doc->createElement('div');
$tag->parentNode->insertBefore($div, $tag);
$div->appendChild($tag);
}
我想改变我的功能,如果有一个打开的<p>标签,它会在打开<div>之前附加一个关闭</p>标签,然后在关闭</div>之后添加一个打开<p> .
当前输入时
'<p>blah blah <img src="incorrect.gif"> blah blah</p>
我的输出是
'<p>blah blah <div><img src="incorrect.gif"></div> blah blah</p>
我希望输出是
'<p>blah blah </p><div><img src="correct.gif"></div><p> blah blah</p>
【问题讨论】:
-
$html ='
blah blah
blah blah'; echo preg_replace("/(.*?)
(.*?)(.*?)/", "$1
$2$3
", $html);echo preg_replace("/(.*?)
(.*?)(.*?)/", "$1
$2$3
", $html);
标签: php domdocument