Есть вот такой код, он работает, но если есть <br />
, то к url прибавляются частички от <br />
$new_text = preg_replace("~(http|https|ftp|ftps)://(.*?)(\s|\n|[,.?!](\s|\n)|$)~", '<a href="$1://$2">$1://$2</a>$3', $text);
return $new_text;
Например, ссылка https://www.google.com/ Если она написана в тексте вот так
https://www.google.com/
То все работает.
Если она написана в тексте вот так
Найти в Google - https://www.google.com/ Сайт Google
То все работает.
Если она написана в тексте вот так
Найти в Google https://www.google.com/<br/>
Загуглить
То ссылка поглощает частички
и все что идет после нею.
Как это исправить? И возможно ли сделать переадресацию с ссылки на определенную страницу, чтобы проверить допустим ли этот домен для перехода и т. д.
Желательно с объяснением.
Сделайте ограничение на угловые скобки (и пробелы):
$text = 'Найти в Google https://www.google.com/<br/>Загуглить';
$patt = '~(?:https?|ftps?)://[^<>\s]+~';
$repl = '<a href="$0">$0</a>';
$newText = preg_replace($patt, $repl, $text);
echo $newText;
Результат:
Найти в Google <a href="https://www.google.com/">https://www.google.com/</a><br/>Загуглить
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Помогите решить такой вопросНа сайте будет очень простой конкурс, на одной из страниц сайта будет расположена кнопка с классом (
Пытаюсь отловить WM_ENTERSIZEMOVE и WM_EXITSIZEMOVE сообщения для окна, дескриптор которого является членом классаДля этого использую SetWindowsHookExA с параметром...
Пытаюсь подключить свой шрифт для приложенияНо он подключается, только если я поверну экран или уйду на другую активити