Я пытаюсь вытащить поддомены подстановочных знаков в качестве переменной userName с PHP - PullRequest
0 голосов
/ 06 апреля 2011

Я использую этот базовый кусок кода:

$parts = explode (".", $_SERVER['HTTP_HOST']);

это работает, но вот ограничения, которые я не смог преодолеть:

1) Он тянет только 1-ю частьegName1.Name2.domain.com читается только как name1, а вторая часть субдомена игнорируется.

2) Все буквы должны быть строчными, например, Name1 становится name1

Я хотел бывыбрать две (или более) части поддоменов в качестве переменной userName, и я хотел бы.(точка) между словами для обозначения пробела.

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

1 Ответ

0 голосов
/ 06 апреля 2011

Вы не можете сохранить дело.Доменные имена всегда отправляются браузером в нижнем регистре.Это из RFC1035 (DNS) о доменных именах:

Обратите внимание, что хотя прописные и строчные буквы допускаются в доменных именах, никакого значения не придается регистру.Таким образом, два имени с одинаковым написанием, но разным регистром должны рассматриваться как идентичные.

В RFC2616 (для HTTP) также говорится, что сравнение доменных имен должно выполняться без учета регистра.Вам придется разобраться с этим другим способом, например, сравнив имя с базой данных.

Первая проблема легче решается:

$parts = explode (".", $_SERVER['HTTP_HOST']);
//drop irrelevant parts (change the number if you have more than two parts in your own domain):
$parts = array_slice($parts, 0, -2);
$name = implode(' ', $parts);
...