我已经知道如何在 PHP 中找出当前域名,问题是当我将此代码放入文件中,然后从另一台服务器包含它时,它会显示文件所在位置的域名。有没有办法找出包含 include() 代码的域或站点?
zuk1
问问题
745 次
4 回答
1
你在做类似的事情:
include 'http://example.com/script.php';
?
注意:从安全的角度来看,这种方法通常被认为有点禁忌。
无论如何,包含的脚本实际上正在另一台服务器上执行,然后脚本的输出正在当前服务器上执行。您可以通过回显实际代码来解决此问题,如下所示:
目前:
<?
//do something
echo '$v = '.$_SERVER['HTTP_HOST'].';'
?>
另一种方式:
<?
//do something
?>
$v = $_SERVER['HTTP_HOST'];
但也许我误解了你的问题。
于 2008-10-22T15:36:29.243 回答
0
如果您包含来自另一台服务器的 PHP 页面,该页面将由原始服务器解析并将结果发送给您 - 您收到的页面只是文本,不包含任何 PHP 代码。
于 2008-10-22T15:25:57.080 回答
0
这是一个粗略的 hack,但是在远程服务器上,您可以查找 $_ENV['REMOTE_HOST'] 的域名。
从远程服务器的角度来看,这将是执行“包含”的人的域名。
我假设你有一些理由想要实现这个奇怪的拓扑——虚拟主机环境中的限制,或者其他什么。如果可能的话,我建议研究替代基础设施。
于 2008-10-22T15:34:26.703 回答
0
您可以使用“eval”在本地运行它,然后它应该使用正确的域将您的脚本存储为文本文件,然后下载它然后执行:
eval(file_get_contents("http://someDomain.com/somePhpscript.txt"));
于 2008-10-23T00:23:23.220 回答