将一个URL替换为另一个URL

时间:2008-09-22 22:51:38

标签: php

在PHP中,将一个URL替换为字符串中的另一个URL,例如

New post on the site <a href="http://stackoverflow.com/xyz1">http://stackoverflow.com/xyz1</a></p>

变为:

New post on the site <a href="http://yahoo.com/abc1">http://yahoo.com/abc1</a></p>

必须适用于重复上述字符串。欣赏这很简单但很挣扎!

3 个答案:

答案 0 :(得分:3)

function replace_url($text, $newurl) {
    $text = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@', $newurl, $text);
    return $text;
}

应该有效。 正则表达式从here被盗。这将用新的URL替换字符串中的所有URL。

答案 1 :(得分:1)

使用str_replace()

$text = str_replace('http://stackoverflow.com/xyz1', 'http://yahoo.com/abc1', $text);

这将用$ text中的第二个URL替换第一个URL。

答案 2 :(得分:0)

试试这个:

preg_replace('#(https?://)(www\.)?stackoverflow.com\b#', '\1\2yahoo.com', $text);

如果要更改网址后的路径,请添加其他组并使用preg_replace_callabck。 PHP文档中的更多信息。