Php 如果尚未包装,如何包装元素?
我有一组内容,其中一些Php 如果尚未包装,如何包装元素?,php,regex,preg-replace,Php,Regex,Preg Replace,我有一组内容,其中一些,但一些图像尚未包装。我想用preg_replace创建一个正则表达式,将这个包装器添加到所有没有它的img标记中。享受吧 preg_replace('/(?!\<span\sclass="the-image"\>)(<img[\sA-Z"\-_=\/.\d]*\/\>)(?!\<\/span\>)/i','<span class="the-image"\>$0</span>',$code); preg\u re
,但一些图像尚未包装。我想用preg_replace创建一个正则表达式,将这个包装器添加到所有没有它的img标记中。享受吧
preg_replace('/(?!\<span\sclass="the-image"\>)(<img[\sA-Z"\-_=\/.\d]*\/\>)(?!\<\/span\>)/i','<span class="the-image"\>$0</span>',$code);
preg\u replace('/(?!\)(
EOT;
$code=preg\u replace('/(?!\)(
*/
编辑2将正则表达式更改为和PHP以反映OP期望的答案你确定吗?你在第二张图像上仍然有打开的跨度。是的,这将使
变成
链接不会进行替换,它只是显示正则表达式如何匹配目标应该是尚未包装的图像。我的意思是是的,所有没有结束包装的img标签都将用我的代码包装。
$code = <<< EOT
<span class="the-image"><img src="123" /></span><br />
<img src="1234" /><br />
<span class="the-image"><img src="blah/blah/blah" /></span>
EOT;
$code = preg_replace('/(?!\<span\sclass="the-image"\>)(<img[\sA-Z"\-_=\/.\d]*\/\>)(?!\<\/span\>)/i','<span class="the-image"\>$0</span>',$code);
/* $code will become this
<span class="the-image"><img src="123" /></span><br />
<span class="the-image"><img src="1234" /></span><br />
<span class="the-image"><img src="blah/blah/blah" /></span>
*/