preg_replace更改href值中的链接,但不在src中

时间:2013-10-04 21:20:26

标签: php regex preg-replace preg-match preg-match-all

我需要更换curl页面中的url并添加正确的链接。我的php卷曲代码是:

<?php

$string = '<a href="http://host.org"><img src="./sec.png"></a>';

$string = preg_replace('/href="(http:\/\/([^\/]+)\/)?([^"]+)"/', "href=\"http://google.com/\\3\"", $string);

echo $string;

?>

当链接为“a”时,它会切断所有链接并仅保留href值。

//from
<a href="http://host.org"><img src="./sec.png"></a>

//to BUGgg when href fix make :
<a href="http://google.com/./sec.png"></a>

任何人都可以帮忙修复它。

2 个答案:

答案 0 :(得分:1)

从正则表达式中移除此不必要的部分:([^/]+)/

答案 1 :(得分:1)

以下preg_replace应该有效:

preg_replace('/href="(http:\/\/[^\/"]+\/?)?([^"]*)"/', "href=\"http://google.com/\\2\"", $result);