Не работает часть скрипта возврата домена из ссылки

Здравствуйте люди добрый! Помогите пожалуйста.

Имеется скрипт который с указанного сайта парсит и и разбивает ссылки на элементы, он рабочий.

<?php
$homepage = file_get_contents('https://yandex.ru');
  preg_match_all("/<[Aa][\s]{1}[^>]*[Hh][Rr][Ee][Ff][^=]*=[ '\"\s]*([^ \"'>\s#]+)[^>]*>/", $homepage, $matches);
  $urls = $matches[1];
  for ($i = 0; $i < count($urls); $i++)
  {
$parse = parse_url($urls[$i]);
print_r($parse);
echo $parse;
  }
    
?>

Хочу вытащить из урла только домен, нагуглил, что можно сделать это через reverse_parse_url

<?php
$homepage = file_get_contents('https://yandex.ru');
  preg_match_all("/<[Aa][\s]{1}[^>]*[Hh][Rr][Ee][Ff][^=]*=[ '\"\s]*([^ \"'>\s#]+)[^>]*>/", $homepage, $matches);
  $urls = $matches[1];
  for ($i = 0; $i < count($urls); $i++)
  {
$parse = parse_url($urls[$i]);
function reverse_parse_url(array $parse)
{   
    if (!empty($parse['host'])) {
        $url .= $parse['host'];
    }
    return $url;
}
print_r($url);
echo $url;
  } 
?>

В итоге скрипт не работает, что не так?


Ответы (2 шт):

Автор решения: Антон
<?php
$homepage = file_get_contents('https://yandex.ru');
  preg_match_all("/<[Aa][\s]{1}[^>]*[Hh][Rr][Ee][Ff][^=]*=[ '\"\s]*([^ \"'>\s#]+)[^>]*>/", $homepage, $matches);
  $urls = $matches[1];
  for ($i = 0; $i < count($urls); $i++)
  {
$parse = parse_url($urls[$i]);
$res = $parse['host'].'<br>';
echo $res;
}
?>

Если кому-то интересно

→ Ссылка
Автор решения: Berkins

Вот код с проверкой на наличии домена

$homepage = file_get_contents('https://yandex.ru');
preg_match_all("/<[Aa][\s]{1}[^>]*[Hh][Rr][Ee][Ff][^=]*=[ '\"\s]*([^ \"'>\s#]+)[^>]*>/", $homepage, $matches);
$urls = $matches[1];
for ($i = 0; $i < count($urls); $i++)
{
  $parse = parse_url($urls[$i]);
  if(isset($parse['host'])) {
    $res = $parse['host'].'<br>';
    echo $res;
  }
}
→ Ссылка