Как изолировать все URL-адреса в многострочной строкеPhp

Кемеровские программисты php общаются здесь
Anonymous
Как изолировать все URL-адреса в многострочной строке

Сообщение Anonymous »

Код:

Код: Выделить всё

$pattern = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
$urls = array();
preg_match($pattern, $comment, $urls);

return $urls;
По данным онлайн-тестера регулярных выражений, это регулярное выражение правильное и должно работать:
http://regexr.com?35nf9
Я вывожу массив $links, используя:

Код: Выделить всё

$linkItems = $model->getLinksInComment($model->comments);
// die(print_r($linkItems));
echo '[list]';
foreach ($linkItems as $link) {
echo '[*]' . $link . '';
}
echo '[/list]';
Вывод выглядит следующим образом: Комментарии $model-> выглядят следующим образом:

Код: Выделить всё

destined for surplus
RT#83015
RT#83617
http://google.com
https://google.com
non-link
Предполагается, что созданный список состоит только из ссылок, и пустых строк быть не должно. Что-то не так с тем, что я сделал, потому что регулярное выражение кажется правильным.

Вернуться в «Php»