PHP: Найти и заменить кликабельные (.php) ссылки с пользовательской информацией - PullRequest
0 голосов
/ 06 марта 2011

Я хочу иметь возможность находить и заменять все кликабельные ссылки в тексте некоторой пользовательской информацией. Пожалуйста, рассмотрите следующий пример:

This is a sample text. Visit: http://www.microsoft.com/help.asp Sample text. Please visit http://www.mydomain.com/sometime.jpg. This is some random text. And this is some random sample text. Visit http://www.mydomain.com/help.php for more help. Visit http://www.mydomain.com/contact.php if you wish to contact us.

В приведенном выше тексте я хочу иметь возможность заменить все кликабельные ссылки " .php " на что-то вроде ниже:

This is a sample text. Visit: http://www.microsoft.com/help.asp Sample text. Please visit http://www.mydomain.com/sometime.jpg. This is some random text. And this is some random sample text. Visit http://www.mydomain.com/mypage.php?url=help.php for more help. Visit http://www.mydomain.com/mypage.php?url=contact.php if you wish to contact us.

Я пытался использовать preg_replace и ereg_replace, но у меня это не сработало.

Вся помощь приветствуется. Спасибо.

Ответы [ 2 ]

1 голос
/ 06 марта 2011

Это только на вашем домене?

$str = "This is a sample text. Visit: http://www.microsoft.com/help.asp Sample text. Please visit http://www.mydomain.com/sometime.jpg. This is some random text. And this is some random sample text. Visit http://www.mydomain.com/help.php for more help. Visit http://www.mydomain.com/contact.php if you wish to contact us.";

$str2 = preg_replace('~(http://www.mydomain.com/)([^ ]+?)\.php~i', '\1mypage.php?url=\2.php', $str);

// $str:
// This is a sample text. Visit: http://www.microsoft.com/help.asp Sample text. Please visit http://www.mydomain.com/sometime.jpg. This is some random text. And this is some random sample text. Visit http://www.mydomain.com/mypage.php?url=help.php for more help. Visit http://www.mydomain.com/mypage.php?url=contact.php if you wish to contact us.

(редактировать: исправил вывод)

0 голосов
/ 06 марта 2011
(?:http:\/\/)?(?<domain>(?:www\.)?mydomain\.com)(?<path>(?:[^:s:]*?)\/)(?<filename>[^:s:]*?)\.php(?:\??)

домен - www.mydomain.com

путь - /

имя файла - справка

для любого домена

(?:http:\/\/)?(?<domain>[^:s:\/]*)(?<path>(?:[^:s:]*?)\/)(?<filename>[^:s:]*?)\.php(?:\??)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...