preg_replace用li包装一个链接的图像

时间:2013-01-27 18:59:32

标签: php preg-replace

对于略微混乱的标题感到抱歉,但我正在尝试使用preg替换将<li></li>标记包裹在图像上,这是一个链接(所以<a href="#"><img src="#" /></a>),我尝试了以下代码:

preg_replace('/(<a [^>]+>)/','<li>\1</li>',$myVar );

但这有一个奇怪的结果 - 任何人都能指出我正确的方向吗?我知道它可以用jQuery完成,但我更喜欢PHP解决方案。

2 个答案:

答案 0 :(得分:1)

这可能会这样做:

preg_replace('/<a(.*)>(.*)<\\/a>/','<li><a$1>$2</a></li>',$myVar );

答案 1 :(得分:1)

尽管您应该从不使用评论中写的@slugonamission之类的正则表达式解析html字符串,这里:

$str = preg_replace('~<a .*?>\s*<img .*?>\s*</a>~i','<li>$0</li>',$str);