Получаем из текста все URL'ы
Вариант 1. Получаем все URL'ы, в виде http://somedomain.com или somedomain.com. При этом мы сразу осуществляем проверку на их правильность.
Код | <?php
if( preg_match_all( "#(((http|ftp|https):\/\/)|\s)((\w|\d){1,}(\-|\.){0,1}(\w|\d){1,})+?\.(\w){2,4}\/*\s#i" , $text , $matches ) ) { print_r ( $matches[0] ); } else { print "No urls found."; }
?> |
Вариант 2. Получаем все URL'ы, с параметрами и без (т.е. с QUERY_STRING), но при этом не проверяем правильность QUERY_STRING. Тут же мы сможем получить URL'ы с каталогами, т.е. /news/12/12/2003/index.html, опять же без проверки оных.
Код | <?php
if( preg_match_all( "#(((http|ftp|https):\/\/)|\s)((\w|\d){1,}(\-|\.){0,1}(\w|\d){1,})+?\.(\w){2,4}.*?\s#i" , $text , $matches ) ) { print_r ( $matches[0] ); } else { print "No urls found."; }
?> |
Вариант 3. Самый простой, без любых проверок
Код | <?php
if( preg_match_all( "#(((http|ftp|https):\/\/)|\s).*?\s#i" , $text , $matches ) ) { print_r ( $matches[0] ); } else { print "No urls found."; }
?> |
Единственно что \w\d в целях безопасносии надо на [A-Z0-9] заменить ну и скобок меньше. |