Как изолировать все 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
Предполагается, что созданный список состоит только из ссылок, и пустых строк быть не должно. Что-то не так с тем, что я сделал, потому что регулярное выражение кажется правильным.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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