В настоящее время я получил несколько записей БД, которые выглядят следующим образом:Поиск URL в строке, заменить его и изменить HREF
1. This is some text http://www.sitehere.com more text
2. Text https://www.anothersite.com text text text
3. http://sitehere.com http://sitehereagain.com
4. Just text here blabla
Я пытаюсь фильтровать эти записи во время печати их и добавить на линии всасывания из всех urls http://anothersite.com/?
. Также поставить новый URL-адрес назначения в качестве ссылки, но не сохранить исходный URL как текст:
text text <a href="http://anothersite.com/?http://sitehere.com">http://sitehere.com</a> text
До сих пор мне удалось добавить http://anothersite.com/?
часть со следующим кодом:
$result = preg_replace('/\bhttp:\/\/\b/i', 'http://anothersite.com/?http://', $input);
$result = preg_replace('/\bhttps:\/\/\b/i', 'http://anothersite.com/?https://', $input);
Но ahref является не так, как я этого хочу. Вместо этого это:
text text <a href="http://anothersite.com/?http://sitehere.com">http://anothersite.com/?http://sitehere.com</a> text
PS: Я не ищу javascript-решение :) Спасибо!
Это выглядит потрясающе @ Давид. У меня только небольшая ошибка с окончательным URL: 'http: //anothersite.com/? Url = http% 3A% 2F% 2Fsitehereagain.com' – user3096206
Вот как это должно быть. Вы должны закодировать параметр URL. Если URL-адрес в строке содержит '?' Или '&', он все испортит, но с помощью моего метода это безопасно. Когда вы запрашиваете значение $ _GET, это будет то, что вы ожидаете. – David
Никогда не сомневайся, что Дэвид ошибся. Этот дополнительный 'url =' сделал цикл ссылок навсегда. Большое спасибо за потрясающее решение! – user3096206