如何使用php更新字符串中的所有锚点href

时间:2015-01-27 10:32:46

标签: php regex anchor

我必须使用php更新字符串中的所有href标签。 例如:

<a href="test.com">test</a> lorum <a href="ola.com">ipsum</a>
so i want to change href as <a href="http://ourdomain.com?url=test.com">test</a>
lorum <a href="http://ourdomain.com?url=ola.com">ipsum</a>

请告诉我如何更新所有anchore href

我这样做但没有正确更新

$replaceStr  = "http://affilate.domain.com?cam=1&url=";
$html="<a href="test.com">test</a> lorum <a href="ola.com">ipsum</a>";
$match = array();
$url   = preg_match_all('/<a [^>]*href="(.+)"/', $html, $match);
if(count($match))
{
for($j=0; $j<count($match); $j++)
{
$html = str_replace($match[1][$j], $replaceStr.urlencode($match[1][$j]), $html);
}
}

1 个答案:

答案 0 :(得分:0)

(?<=href=")([^"]*)

试试这个。http://ourdomain.com?url=$1。见。演示。

https://www.regex101.com/r/bC8aZ4/11

$re = "/(?<=href=\")([^\"]*)/im";
$str = "<a href=\"test.com\">test</a> lorum <a href=\"ola.com\">ipsum</a>";
$subst = "http://ourdomain.com?url=$1";

$result = preg_replace($re, $subst, $str);