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 ()?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top