Intereting Posts
Пусть браузеры кэшируют мою динамическую таблицу стилей PHP Установка php-модуля с использованием порта на osx lion. Он работает из командной строки, но не из apache Ограничить запись конкурса один раз в день PHP Функция по умолчанию Значения параметров, как «передать значение по умолчанию» для «не последних» параметров? Японские персонажи на Magento PDF Войдите в систему программно и оставайтесь в системе Laravel redirect () -> route () не работает корректно (просмотр в старом состоянии никогда не обновляется) PHP Session не сохраняется в Firefox после перенаправления Почта PHP / PEAR скрипт curl просто заполняет форму, не отправив ее PHP: получить ключ из массива в цикле foreach Как использовать cURL для получения данных jSON и декодирования данных? Ajax не работает в цикле Как сохранить PHP 5.5, но использовать 5.4 (CodeIgniter устарел) Zend session_start дает фатальную ошибку: исключение выбрано без рамки стека Неизвестно в строке 0

Strip All Urls из смешанной строки (php)

Я перепробовал этот вопрос, потому что не нашел хорошего ответа.

У меня есть строка, которая может содержать текст с URL-адресами.

Мне нужна функция, чтобы удалить все URL-адреса из этой строки и просто оставить текст.

например, строка может содержать следующее:

1) Эй, смотрите здесь: http://xxx.xxx/545df5 это хорошо!

2) Эй, смотрите здесь: http://www.xxx.xxx/545df5 это хорошо!

3) Эй, смотрите здесь: xxx.xxx/545df5 это приятно!

4) Эй смотрите здесь: www.xxx.xxx/545df5 это приятно!

благодаря

Solutions Collecting From Web of "Strip All Urls из смешанной строки (php)"

Регулярное выражение для URL и как использовать регулярное выражение с php должно помочь вам.

То, что вам действительно нужно, – это сплошное регулярное выражение, чтобы найти URL-адреса в строке, и вы можете предварительно создать этот шаблон ничем. Я могу сказать вам, что отслеживание такого регулярного выражения непросто. В зависимости от изменений в URL-адресах, которые вы ищете (например, http: // vs https: // vs ftp: //), вы можете столкнуться с реальными проблемами, пытаясь учесть все это.

Вот страница, которую я нашел хорошим началом .

Regex – это путь, который обсуждался ранее. Найти один из них не так уж сложно (goge: url regex pattern). Один пример вернулся здесь.

http://www.geekzilla.co.uk/View2D3B0109-C1B2-4B4E-BFFD-E8088CBC85FD.htm

Я также рекомендовал бы протестировать ваше регулярное выражение, используя один из многих тонких онлайн-тестировщиков регулярных выражений. Мой любимый (для не-java)

http://www.regextester.com/

Эта функция должна это делать (при условии, что ваши строки разделены пробелом "):

function isValidURL($url) { return preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url); } function cleanUpUrls($urls) { $urlArray = explode(' ',$urls); $resultArray = array(); foreach ($urlArray as $url) { if(!isValidURL($url)) { $resultArray[] = $url; } } return implode(' ',$resultArray); }