使用 php preg_replace 更改 html 链接的 href 属性
我正在尝试用不同的 URL 替换大字符串中的所有链接 href。使用以下代码似乎只替换了第二个链接,而第一个链接完好无损,有人可以帮助我吗?
$string_of_text = '<a href="http://www.php.net/">PHP</a> <a href="http://www.apache.org/">Apache</a>';
echo preg_replace('/<a(.*)href="(.*)"(.*)>/','<a$1href="javascript:alert(\'Test\');"$3>',$string_of_text);
I'm trying to replace all link href's in a large string with a different URL. With the following code It seems to replace only the 2nd link leaving the first one intact, can someone help me out?
$string_of_text = '<a href="http://www.php.net/">PHP</a> <a href="http://www.apache.org/">Apache</a>';
echo preg_replace('/<a(.*)href="(.*)"(.*)>/','<a$1href="javascript:alert(\'Test\');"$3>',$string_of_text);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用任何非 (^) 引号
[^"]
代替任何字符.
Instead of any char
.
use any not (^) quote[^"]
只需在正则表达式中使用贪婪运算符,如下所示:
Just use the greedy operator in your regex like this:
对 Aurelio De Rosa 的答案稍作修改:
Slight modifications to Aurelio De Rosa's answer: