0

抱歉标题有点混乱,但我正在尝试使用 preg 替换将<li></li>标签包裹在作为链接(so <a href="#"><img src="#" /></a>)的图像周围,我尝试了以下代码:

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

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

4

2 回答 2

1

这可能会做到:

preg_replace('/<a(.*)>(.*)<\\/a>/','<li><a$1>$2</a></li>',$myVar );
于 2013-01-27T23:21:51.577 回答
1

尽管你永远不应该使用像@slugonamission这样的正则表达式来解析一个html字符串,在评论中写道,这里:

$str = preg_replace('~<a .*?>\s*<img .*?>\s*</a>~i','<li>$0</li>',$str);
于 2013-01-28T01:01:55.843 回答