Заменить один URL другим - PullRequest
1 голос
/ 23 сентября 2008

В PHP замените один 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 ]

3 голосов
/ 23 сентября 2008
function replace_url($text, $newurl) {
    $text = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)@', $newurl, $text);
    return $text;
}

Должно работать. Regex украдено у здесь . Это заменит все URL-адреса в строке на новый.

1 голос
/ 23 сентября 2008

Использование str_replace () :

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

Это заменит первый URL-адрес вторым URL-адресом в $ text.

0 голосов
/ 23 сентября 2008

Попробуйте это:

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

Если вы хотите изменить путь после URL, добавьте другую группу и используйте preg_replace_callabck. Больше информации в документации PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...