Agarrando Domain Name Com incluir em PHP
Pergunta
Eu sei como descobrir o nome de domínio atual em PHP já, o problema é quando eu colocar esse código em um arquivo e, em seguida, incluí-lo de outro servidor que mostra o nome do domínio onde o arquivo está localizado. Existe alguma maneira para ele para descobrir o domínio ou o site que contém o código de include ()?
Solução
Você pode executá-lo localmente usando "eval", então ele deve usar o domínio próprio guardar o seu script como um arquivo de texto, em seguida, baixá-lo e, em seguida, execute:
eval(file_get_contents("http://someDomain.com/somePhpscript.txt"));
Outras dicas
Você está fazendo algo como:
include 'http://example.com/script.php';
?
NB:. Esta abordagem geralmente considerada como um pouco de não-não do ponto de vista da segurança
De qualquer forma, o roteiro incluiu realmente está sendo executado em outro servidor, então a saída do script está sendo executado no servidor atual. Você pode contornar isso ecoando código real, algo como isto:
Atualmente:
<?
//do something
echo '$v = '.$_SERVER['HTTP_HOST'].';'
?>
A outra maneira:
<?
//do something
?>
$v = $_SERVER['HTTP_HOST'];
Mas então talvez eu estou mal-entendido a sua pergunta.
Se você incluir uma página PHP de outro servidor, a página vai ter analisado pelo servidor original e o resultado será enviado para você - a página que você recebe é nada além de texto, nenhum código PHP incluído
.Este é um hack bruto, mas no servidor remoto, você pode olhar-se o nome de domínio $ _ENV [ 'REMOTE_HOST'].
Este seria o nome de domínio do cara fazendo a "incluir" a partir da perspectiva do servidor remoto.
Eu suponho que você tem algum motivo para querer implementar esta topologia estranho - restrições em um ambiente de máquina virtual, ou algo assim. Gostaria de sugerir olhando em infra-estruturas alternativas, se possível.