//проверяем кол-во элементов в массиве //если 2 и меньше отдаем FALSE ( нет поддомена ) если больше отдаем первое if ( sizeof($url_exploded) <=2 ) { return FALSE; } else { return $url_exploded[0]; }
а на счет "sub1" так в этом как раз и суть задачи. Выловить только самый нижний поддомен в списке. если бы нужно было отловить все поддомены , то это тоже решаемо, но методика будет немного другая
Смотрите. Вы сейчас более-менее пересказали идеологию PWA ( progressive web app ) Очень интересная тема. Я ее начал прорабатывать для сайтов компании в конце 19 года, а потом случился ковид со всеми вытекающими последствиями.
Но если мы берем чисто-технологический вопрос, то как мне кажется тема очень интересная и перспективная. Разумеется с поправкой на то, что все интересные и прогрессивные технологии пробиваются на рынок года через 3-4 после появления.
еще пришла мысля для удаления www использовать ltrim
// приводим URL к типовому представлению // выкидываем www, если есть $url = 'https://wWW.SomeUrl.domain.myhost.com'; $url = ltrim( parse_url( strtolower($url), PHP_URL_HOST ), 'www.' );
//разделяем на составляющие и выбираем первое значение //подобная конструкция будет работать в php 7.0+ $last_url = explode( '.', $url )[0]; echo $last_url;
Евгений Крупченко, у вашего способа, есть один крупный недостаток. Домен должен быть известен. Если он неизвестен, придется сначала выловить собсно домен, а потом уже начинать шаманить. представьте простой случай, когда пользователь вводит url в форму.
меня, кстати, смущает вопрос, как подобные варианты будут работать на сайтах url-ами в паникоде. Вроде xn--b1afnsoec8e.xn--d1acufc.xn--p1ai хотя тут тоже используется точка - разделитель. то-есть должно быть нормально
тем, что это способ разбить путь на составляющие, а не получить его
какую переменную вы туда вкорячите зависит от вашего воображения. только в той переменной должен быть валидный http адрес, иначе вернет пустую строку
апд. разумеется, если в качестве источника мы берем $_SERVER, то проще использовать 'HTTP_HOST' но это может быть не всегда. например, если url вводится руками пользователя в форме
зы2.
прошу прощения за кучу правок. Самочувствие не очень, сижу на колёсах.
апд. если решать задачу "в лоб" а не красиво, то будет что-то подобное. приведение к нижнему регистру сделано для того, что parse_url работает как есть. То-есть вываливает имя в том виде, в каком его получает на входе, независимо от регистра.
Наверняка можно сделать красивее, но код получился вполне рабочий
если бы нужно было отловить все поддомены , то это тоже решаемо, но методика будет немного другая
Хорошее замечание.
но это не проблема. просто замените
на
и всё заколоситсяСмотрите. Вы сейчас более-менее пересказали идеологию PWA ( progressive web app )
Очень интересная тема. Я ее начал прорабатывать для сайтов компании в конце 19 года, а потом случился ковид со всеми вытекающими последствиями.
Но если мы берем чисто-технологический вопрос, то как мне кажется тема очень интересная и перспективная. Разумеется с поправкой на то, что все интересные и прогрессивные технологии пробиваются на рынок года через 3-4 после появления.
Евгений Крупченко, у вашего способа, есть один крупный недостаток. Домен должен быть известен.
Если он неизвестен, придется сначала выловить собсно домен, а потом уже начинать шаманить.
представьте простой случай, когда пользователь вводит url в форму.
меня, кстати, смущает вопрос, как подобные варианты будут работать на сайтах url-ами в паникоде. Вроде xn--b1afnsoec8e.xn--d1acufc.xn--p1ai
хотя тут тоже используется точка - разделитель. то-есть должно быть нормально
какую переменную вы туда вкорячите зависит от вашего воображения.
только в той переменной должен быть валидный http адрес, иначе вернет пустую строку
апд.
разумеется, если в качестве источника мы берем $_SERVER, то проще использовать 'HTTP_HOST'
но это может быть не всегда. например, если url вводится руками пользователя в форме
зы2.прошу прощения за кучу правок.
Самочувствие не очень, сижу на колёсах.
если решать задачу "в лоб" а не красиво, то будет что-то подобное.
приведение к нижнему регистру сделано для того, что parse_url работает как есть. То-есть вываливает имя в том виде, в каком его получает на входе, независимо от регистра.
$first_sub = explode('.', parse_url ( 'https://WwW.mySubDomain.mYsITe.COM', PHP_URL_HOST ));if (strtolower ($first_sub[0]) == 'www'){
$subdomain = strtolower ( $first_sub[1] );
} else {
$subdomain = strtolower ( $first_sub[0] );
}
echo $subdomain;
как дети малые. чесслово
echo explode('.', parse_url ( 'https://my.site.com', PHP_URL_HOST ))[0]
это без www
с www добавляете проверку на www
Надо было сделать быстро - сделали быстро.
какая разница на чем сайт, главное полезен он или нет.
это школьникам важно, какие технологии используются, чтоб похвастаться перед друзьями, а в крупном бизнесе другие критерии качества сайта.