Как получить домен php
Прежде чем о чем то говорить, надо вывести, что же такое домен сайта!? Домен вашего сайта можно посмотреть в браузере, в адресной строке -> как видим dwweb.ru -> это и есть домен сайта Почему https или http — потому, что это называется http protocol и если мы соединим протокол и домен сайта, то получим новое понятие — это будет адрес сайта!
Как получить домен сайта через php!? -> SERVER_ADDR
Есть замечательная супер глобальная переменная, которая называется $_SERVER, вы можете получить всё её содержание таким образом:
print_r( $_SERVER ) ;
Поскольку это массив, то ведет он себя тоже как массив, и если вы его вывели, то сокрее всего вы там сможете увидеть такую ячейку -> SERVER_NAME
Берем переменную $_SERVER добавляем ячейку массива в квадратных скобках -> [SERVER_NAME] и выводим с помощью echo:
echo $_SERVER[SERVER_NAME] ;
Выведем домен сайта через php прямо здесь:
Как получить домен сайта через php -> HTTP_HOST
Нам опять понадобится глобальная переменная для очередного способа получить домен сайта через php
Возьмем $_SERVER добавим новую ячейку массива -> [HTTP_HOST] и выводим с помощью echo:
echo $_SERVER[HTTP_HOST] ;
И давайте также выведем домен сайта через php с помощью $_SERVER[HTTP_HOST]:
Как получить домен без поддомена php
Это один из поисковых запросов, по которому заходят на данную страницу: «получить домен без поддомена php»
Прежде чем мы приступим к теме «получения поддомена» — пару слов:
В интернете предлагается(один из способов) вот такая конструкция для получения поддомена —
array_shift((explode(‘.’, $_SERVER[‘HTTP_HOST’])));
Относительно моего поддомена — «http://example.dwweb.ru/» — это сработает.
А если мы встретимся с таким доменами как «название.com.ru» или «название.com.ua» — выдаст «com.ru» — что будет ошибкой.
Я не буду долго вам рассказывать о то, как «получить домен без поддомена php«.
Потому, что у нас уже есть страница на подобную тему
Как получить домен php
Покинул форум
Сообщений всего: 278
Дата рег-ции: Дек. 2011
Помог: 2 раз(а)
Наверное я плохо учил php, что забыл как можно получить имя домена, я у себя на сайте использую сразу два домена, хочу сделать так:
есть переменная $logo в этой переменной:
$logo = ‘/images/logo.png’ ;
хочу сделать так, если зашли на сайте по домену site.com то логотип меняется на logo2.png если по домену site.ru то логотип остается logo.png
Сам сделал вот что:
$l1 = ‘Logo 1’ ;
$l2 = ‘Logo 2’ ;
$logo = $_SERVER [ ‘SERVER_NAME’ ] ;
if ( $logo = «mysite.ru» ) {
И выводит то что в условке (mysite.ru)
а еще www не будет мешать ?
спасибо.
(Отредактировано автором: 07 Мая, 2012 — 12:40:13)

Отправлено: 07 Мая, 2012 — 12:31:18
Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008
Откуда: Украина, Мариуполь
Помог: 0 раз(а)
1: ($logo = == «mysite.ru»)
2: www будет мешать: $dom=str_replace(‘www.’,»,$dom);
Отправлено: 07 Мая, 2012 — 12:36:21
Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
Помог: 42 раз(а)
А можно подругому проверить:
if ( stristr ( $_SERVER [ ‘HTTP_HOST’ ] , ‘mysite.ru’ ) ) {
Отправлено: 07 Мая, 2012 — 12:38:38
Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008
Откуда: Украина, Мариуполь
Помог: 0 раз(а)
Okula, а как насчет имени xmysite.ru?
Отправлено: 07 Мая, 2012 — 12:44:40
Покинул форум
Сообщений всего: 278
Дата рег-ции: Дек. 2011
Помог: 2 раз(а)
Okula, мой вариант не работает, Ваш работает, спасибо.

Отправлено: 07 Мая, 2012 — 12:46:13
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
vitaliy_mad пишет:
Okula, а как насчет имени xmysite.ru?
а на этом имени наш скрипт не запустится
(Отредактировано автором: 07 Мая, 2012 — 12:50:00)
Отправлено: 07 Мая, 2012 — 12:55:03
Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010
Помог: 42 раз(а)
LIME пишет:
vitaliy_mad пишет:
Okula, а как насчет имени xmysite.ru?
а на этом имени наш скрипт не запустится
Условие выполнится если в проверяемой строке имеется вхождение needle.
Отправлено: 07 Мая, 2012 — 13:23:03
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
Okula условие вообще не причем
он о том что для всех хостов в которые входт подстрока скрипт сработает
я же говорю что чужие хосты не могут быть даже подставлены
$_SERVER[‘HTTP_HOST’] это же не что угодно
Получить домен из URL
ru.stackoverflow.com/help/how-to-ask — «Сначала опишите проблему, потом добавьте код. Сначала более подробно опишите проблему, которую вы сформулировали в заголовке. Поясните, как вы столкнулись с проблемой и что препятствует её решению«
30 июн 2019 в 18:06
parse_url() вам в помощь
30 июн 2019 в 18:18
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
$url = 'http://google.com/dhasjkdas/sadsdds/sdda/sdads.html'; $parse = parse_url($url); echo $parse['host']; // prints 'google.com'
Отслеживать
ответ дан 30 июн 2019 в 19:45
Stop-TussiN Stop-TussiN
111 15 15 бронзовых знаков
можно сразу с параметром PHP_URL_HOST вызвать
30 июн 2019 в 19:59
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
$_SERVER
Переменная $_SERVER — это массив ( array ), содержащий такую информацию, как заголовки, пути и местоположения скриптов. Записи в этом массиве создаются веб-сервером, поэтому нет гарантии, что каждый веб-сервер будет предоставлять любую из этих переменных; серверы могут опускать некоторые из них или предоставлять другие, не указанные здесь. Однако большинство из этих переменных учтены в спецификации » CGI/1.1 и, скорее всего, будут определены.
Замечание: При запуске PHP в командной строке большинство из этих записей будут недоступны или не будут иметь никакого значения.
В дополнение к перечисленным ниже элементам, PHP будет создавать дополнительные элементы со значениями из заголовков запросов. У элементов будет имя HTTP_ , за которым следует имя заголовка, написанное с заглавной буквы и с подчёркиванием вместо дефиса. Например, заголовок Accept-Language будет доступен как $_SERVER[‘HTTP_ACCEPT_LANGUAGE’] .
Индексы
‘ PHP_SELF ‘ Имя файла скрипта, который сейчас выполняется, относительно корня документов. Например, $_SERVER[‘PHP_SELF’] в скрипте по адресу http://example.com/foo/bar.php будет /foo/bar.php . Константа __FILE__ содержит полный путь и имя файла текущего (то есть подключённого) файла. Если PHP запущен в командной строке, эта переменная содержит имя скрипта. ‘argv’ Массив аргументов, переданных скрипту. Когда скрипт запущен в командой строке, это даёт C-подобный доступ к параметрам командной строки. Когда вызывается через метод GET, этот массив будет содержать строку запроса. ‘argc’ Содержит количество параметров, переданных скрипту (если запуск произведён в командной строке). ‘ GATEWAY_INTERFACE ‘ Содержит используемую сервером версию спецификации CGI; к примеру ‘CGI/1.1’ .. ‘ SERVER_ADDR ‘ IP-адрес сервера, на котором выполняется текущий скрипт. ‘ SERVER_NAME ‘ Имя хоста, на котором выполняется текущий скрипт. Если скрипт выполняется на виртуальном хосте, здесь будет содержатся имя, определённое для этого виртуального хоста.
Замечание: В Apache 2 необходимо установить UseCanonicalName = On и ServerName . В противном случае это значение отразит имя хоста, предоставленное клиентом, которое может быть подделано. Небезопасно полагаться на это значение в контексте, требующем безопасности.
‘ SERVER_SOFTWARE ‘ Строка идентификации сервера, указанная в заголовках, когда происходит ответ на запрос. ‘ SERVER_PROTOCOL ‘ Имя и версия информационного протокола, через который была запрошена страница; к примеру ‘HTTP/1.0’ ; ‘ REQUEST_METHOD ‘ Какой метод был использован для запроса страницы; к примеру ‘GET’ , ‘HEAD’ , ‘POST’ , ‘PUT’ .
Замечание:
PHP-скрипт завершается после отправки заголовков (то есть после того, как осуществляется любой вывод без буферизации вывода), если метод запроса был HEAD .
‘ REQUEST_TIME ‘ Временная метка начала запроса. ‘ REQUEST_TIME_FLOAT ‘ Временная метка начала запроса с точностью до микросекунд. ‘ QUERY_STRING ‘ Строка запроса, если есть, через которую была открыта страница. ‘ DOCUMENT_ROOT ‘ Директория корня документов, в которой выполняется текущий скрипт, в точности та, которая указана в конфигурационном файле сервера. ‘ HTTPS ‘ Принимает непустое значение, если запрос был произведён через протокол HTTPS. ‘ REMOTE_ADDR ‘ IP-адрес, с которого пользователь просматривает текущую страницу. ‘ REMOTE_HOST ‘ Удалённый хост, с которого пользователь просматривает текущую страницу. Обратный поиск DNS основан на значении переменной REMOTE_ADDR .
Замечание: Сервер должен быть настроен, чтобы создавать эту переменную. Для примера, в Apache необходимо присутствие директивы HostnameLookups On в файле httpd.conf , чтобы эта переменная создавалась. Смотрите также gethostbyaddr() .
‘ REMOTE_PORT ‘ Порт на удалённой машине, который используется для связи с сервером. ‘ REMOTE_USER ‘ Аутентифицированный пользователь. ‘ REDIRECT_REMOTE_USER ‘ Аутентифицированный пользователь, если запрос был перенаправлен изнутри. ‘ SCRIPT_FILENAME ‘
Абсолютный путь к исполняемому скрипту.
Замечание:
Если скрипт запускается в командной строке (CLI), используя относительный путь, такой как file.php или ../file.php , переменная $_SERVER[‘SCRIPT_FILENAME’] будет содержать относительный путь, указанный пользователем.
‘ SERVER_ADMIN ‘ Эта переменная получает своё значение (для Apache) из директивы конфигурационного файла сервера. Если скрипт запущен на виртуальном хосте, это будет значение, определённое для данного виртуального хоста. ‘ SERVER_PORT ‘ Порт на компьютере сервера, используемый сервером для соединения. Для установок по умолчанию, значение будет ’80’ ; используя SSL, например, это значение будет таким, какое сконфигурировано для соединений безопасного HTTP.
Замечание: Чтобы получить физический (реальный) порт в Apache 2, необходимо установить UseCanonicalName = On и UseCanonicalPhysicalPort = On , иначе это значение может быть подменено и не вернуть реальной значение физического порта. Полагаться на это значение небезопасно в контексте приложений, требующих усиленной безопасности.
‘ SERVER_SIGNATURE ‘ Строка, содержащая версию сервера и имя виртуального хоста, которые добавляются к генерируемым сервером страницам, если включено. ‘ PATH_TRANSLATED ‘ Путь файловой системы (не document root) к текущему скрипту, после того как сервер выполнил отображение virtual-to-real.
Замечание: Пользователи Apache 2 могут использовать директиву AcceptPathInfo = On в конфигурационном файле httpd.conf для задания переменной PATH_INFO .
‘ SCRIPT_NAME ‘ Содержит путь к текущему исполняемому скрипту. Это полезно для страниц, которые должны указывать на самих себя. Константа __FILE__ содержит полный путь и имя текущего (то есть включённого) файла. ‘ REQUEST_URI ‘ URI, который был предоставлен для доступа к этой странице. Например, ‘ /index.html ‘. ‘ PHP_AUTH_DIGEST ‘ При выполнении аутентификации HTTP Digest этой переменной присваивается заголовок ‘Authorization’, отправленный клиентом (который затем следует использовать для проведения соответствующей проверки). ‘ PHP_AUTH_USER ‘ При выполнении HTTP-аутентификации этой переменной присваивается имя пользователя, предоставленное пользователем. ‘ PHP_AUTH_PW ‘ При выполнении HTTP-аутентификации этой переменной присваивается пароль, предоставленный пользователем. ‘ AUTH_TYPE ‘ При выполнении HTTP-аутентификации этой переменной присваивается тип аутентификации, который используется. ‘ PATH_INFO ‘ Содержит любой предоставленный пользователем путь, содержащийся после имени скрипта, но до строки запроса, если она есть. Например, если текущий скрипт запрошен по URL http://www.example.com/php/path_info.php/some/stuff?foo=bar , то переменная $_SERVER[‘PATH_INFO’] будет содержать /some/stuff . ‘ ORIG_PATH_INFO ‘ Исходное значение переменной ‘ PATH_INFO ‘ перед обработкой PHP.
Примеры
Пример #1 Пример использования $_SERVER
