Это нечетно, но по какой-то причине $_SERVER["SCRIPT_URI"]
не вернет имя домена, когда я нахожусь в дочерних/подстраницах, но будет работать только на главной странице. Не уверен, что из-за script (WordPress) или хоста, но, пожалуйста, можете ли вы предложить любое надежное решение для получения имени домена с PHP?
$ _SERVER [ "SCRIPT_URI" ] не работает? альтернатива?
Ответ 1
Если вам нужно имя домена, используйте:
$_SERVER['HTTP_HOST']
Ответ 2
В случае сомнений
var_dump($_SERVER);
Ответ 3
В зависимости от того, что вы хотите, я бы воспользовался одним из следующих вариантов:
- $_ SERVER ['PHP_SELF'] для расположения файла script
- $_ SERVER ['SERVER_NAME'] для имени хоста
EDIT: Возможно, PHP_SELF не самый лучший. См. Комментарии.
Ответ 4
Это может быть связано с перезаписи URL, вы можете попробовать $_SERVER ['REQUEST_URI'] вместо этого, если вам нужен путь, который был вызван в URL-адресе.
Ответ 5
var_dump($_SERVER)
и посмотрите, какие у вас варианты.
P.S. Использование unsanitized $_SERVER["PHP_SELF"]
может быть угрозой безопасности.
Ответ 6
Кроме того, SCRIPT_URI не существует, правильный синтаксис REQUEST_URI:
echo $_SERVER["REQUEST_URI"];
Он возвращает весь путь без хоста и домена.
Ответ 7
Если ваш браузер форматирует JSON
документы красиво и никакого вывода не происходит, вставка следующего приведет к чему-то более читаемому, чем var_dump
:
header('Content-Type: application/json');die(json_encode($_SERVER));
phpinfo()
также предоставит список всех значений $_SERVER
и многое другое!