对于略微混乱的标题感到抱歉,但我正在尝试使用preg替换将<li></li>
标记包裹在图像上,这是一个链接(所以<a href="#"><img src="#" /></a>
),我尝试了以下代码:
preg_replace('/(<a [^>]+>)/','<li>\1</li>',$myVar );
但这有一个奇怪的结果 - 任何人都能指出我正确的方向吗?我知道它可以用jQuery完成,但我更喜欢PHP解决方案。
答案 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);