Получение доменного имени с включением в PHP - PullRequest
0 голосов
/ 22 октября 2008

Я уже знаю, как узнать текущее доменное имя в PHP, проблема в том, что когда я помещаю этот код в файл и затем включаю его с другого сервера, он показывает имя домена, в котором расположен файл. Есть ли способ узнать домен или сайт, содержащий код include ()?

Ответы [ 4 ]

1 голос
/ 22 октября 2008

Вы делаете что-то вроде:

include 'http://example.com/script.php';

NB. С точки зрения безопасности этот подход обычно считается "нет-нет".

В любом случае, включенный сценарий фактически выполняется на другом сервере, а затем вывод сценария выполняется на текущем сервере. Вы можете обойти это, повторяя реальный код, что-то вроде этого:

В настоящее время:

<? 
//do something
echo '$v = '.$_SERVER['HTTP_HOST'].';'
?>

Другой способ:

<?
//do something
?>
$v = $_SERVER['HTTP_HOST'];

Но тогда, может быть, я неправильно понимаю ваш вопрос.

0 голосов
/ 23 октября 2008

Вы можете запустить его локально, используя "eval", тогда он должен использовать соответствующий домен сохраните ваш скрипт как текстовый файл, затем загрузите его и выполните:

eval(file_get_contents("http://someDomain.com/somePhpscript.txt"));
0 голосов
/ 22 октября 2008

Это грубый взлом, но на удаленном сервере вы можете найти доменное имя $ _ENV ['REMOTE_HOST'].

Это будет доменное имя парня, выполняющего «включение» с точки зрения удаленного сервера.

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

0 голосов
/ 22 октября 2008

Если вы включите страницу PHP с другого сервера, страница будет проанализирована исходным сервером, и результат будет отправлен вам - страница, которую вы получите, является не чем иным, как текстом, без кода PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...