Получить текущий домен

У меня есть сайт на сервере

http://www.myserver.uk.com 

Для этого у меня есть два домена:

 http://one.com 

а также

 http://two.com 

я бы хотел получить с текущим доменом PHP, но если я использую $_SERVER['HTTP_HOST'] тогда это покажет мне

 myserver.uk.com 

вместо:

 one.com or two.com 

Как я могу получить домен, а не имя сервера? У меня PHP версии 5.2

попробуйте использовать это: $_SERVER['SERVER_NAME']

или разбор

 $_SERVER['REQUEST_URI'] 

РЕДАКТИРОВАТЬ:

apache_request_headers ()

Использование $_SERVER['HTTP_HOST'] получает меня (субдомен.) Maindomain.extension. Похоже, это самое простое решение для меня.

Изменить: если вы действительно перенаправляете через iFrame, вы можете добавить параметр get, который указывает домен.

 <iframe src="myserver.uk.com?domain=one.com"/> 

И тогда вы можете установить переменную сеанса, которая сохраняет эти данные во всех приложениях.

Наилучшее использование

 echo $_SERVER['HTTP_HOST']; 

И можно использовать как это

 if(strpos( $_SERVER['HTTP_HOST'], 'banana.com') !== false){ echo "Yes this is indeed the banana.com domain"; } 

Этот код ниже – это хороший способ увидеть все переменные в $ _SERVER в структурированном HTML-выпуске с выделенными вами ключевыми словами, который останавливается сразу после выполнения. Поскольку я иногда забываю, какой из них использовать сам – я думаю, что это может быть отличным.

 <?php // change banana.com to the domain you were looking for.. $wordToHighlight= "banana.com"; $serverVarHighlighted = str_replace( $wordToHighlight, '<span style=\'background-color:#883399; color: #FFFFFF;\'>'. $wordToHighlight .'</span>', $_SERVER ); echo "<pre>"; print_r( $serverVarHighlighted ); echo "</pre>"; exit(); ?> 

Попробуйте $_SERVER['SERVER_NAME'] . Советы. Создайте файл PHP, который вызывает функцию phpinfo() и просмотрите раздел «Переменные PHP». Есть куча полезных переменных, о которых мы никогда не думали.

Поздний ответ, но вот он идет:

 $currentDomain = preg_replace('/www\./i', '', $_SERVER['SERVER_NAME']); 

Это даст вам чистое доменное имя без www

Я знаю, что это может быть не совсем по этому вопросу, но, по моему опыту, я нахожу сохранение WWW-существующего URL-адреса в переменной полезной.

Изменить: Кроме того, пожалуйста, см. Мой комментарий ниже, чтобы посмотреть, что это такое.

Это важно при определении того, следует ли отправлять вызовы Ajax с помощью «www» или без:

 $.ajax("url" : "www.site.com/script.php", ... $.ajax("url" : "site.com/script.php", ... 

При отправке вызова Ajax имя домена должно совпадать с именем в адресной строке браузера, иначе в консоли должно быть установлено значение « Очистить» .

Поэтому я придумал это решение для решения проблемы:

 <?php substr($_SERVER['SERVER_NAME'], 0, 3) == "www" ? $WWW = true : $WWW = false; if ($WWW) { /* We have www.example.com */ } else { /* We have example.com */ } ?> 

Затем, в зависимости от того, является ли WWW истинным, или false, выполните правильный вызов Ajax.

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