Всем привет. Проблема. Есть переменная.
$text = 'В нашей строке присутсвуют следующие ссылки: http://snipcode.ru, ftp://php.net и https://google.com';
Как с этой переменной получить все ссылки в массив?
Пробовал так
preg_match_all('/<a[^>(href=)]+href="http:\/\/(www\.)?hashcode.ru"[^>]+>([A-Za-zА-Яа-я0-9 ]+)<\/a>/isu', $text, $array);
print_r($array);
В итоге получил массив - Array ( [0] => Array ( ) [1] => Array ( ) [2] => Array ( ) )
Но что-то я с этого массива никак не могу глянуть, какие там ссылки.
Пробую посмотреть ссылку print_r($array[0]); получаю Array ( )
Помогите разобраться, в php не силен. Что смог накопать, тем делюсь.
С предположением, что отделять ссылки могут только запятые и пробельные символы:
$text = 'В нашей строке присутсвуют следующие ссылки: http://snipcode.ru, ftp://php.net и https://google.com';
preg_match_all('#(?:https?|ftp)://[^\s\,]+#i', $text, $matches);
var_dump($matches);
Результат:
array(1) {
[0]=>
array(3) {
[0]=>
string(18) "http://snipcode.ru"
[1]=>
string(13) "ftp://php.net"
[2]=>
string(18) "https://google.com"
}
}
$text = 'В нашей строке присутсвуют следующие ссылки: http://snipcode.ru, ftp://php.net и https://google.com';
preg_match_all("_(?:(?:https?|ftp)://)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\x{00a1}-\x{ffff}0-9]+-?)*[a-z\x{00a1}-\x{ffff}0-9]+)(?:\.(?:[a-z\x{00a1}-\x{ffff}0-9]+-?)*[a-z\x{00a1}-\x{ffff}0-9]+)*(?:\.(?:[a-z\x{00a1}-\x{ffff}]{2,})))(?::\d{2,5})?(?:/[^\s]*)?_iuS", $text, $urls);
var_dump($urls);
https://repl.it/GfwT/0
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости