【问题标题】:Grabbing Domain Name With Include In PHP使用包含在 PHP 中的抓取域名
【发布时间】:2010-09-18 13:59:50
【问题描述】:

我已经知道如何在 PHP 中找到当前域名,问题是当我将此代码放入文件中,然后从另一台服务器包含它时,它会显示文件所在位置的域名。有什么方法可以找出包含 include() 代码的域或站点吗?

【问题讨论】:

  • 请出示您的代码好吗?

标签: php include


【解决方案1】:

你是否在做类似的事情:

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

?

注意:从安全的角度来看,这种方法通常被认为有点禁忌。

无论如何,包含的脚本实际上是在另一台服务器上执行的,那么脚本的输出是在当前服务器上执行的。您可以通过回显实际代码来解决此问题,如下所示:

目前:

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

其他方式:

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

但是也许我误解了你的问题。

【讨论】:

    【解决方案2】:

    您可以使用“eval”在本地运行它,然后它应该使用正确的域 将脚本存储为文本文件,然后下载并执行:

    eval(file_get_contents("http://someDomain.com/somePhpscript.txt"));
    

    【讨论】:

      【解决方案3】:

      如果您包含来自另一台服务器的 PHP 页面,该页面将由原始服务器解析并将结果发送给您 - 您收到的页面只是文本,不包含 PHP 代码。

      【讨论】:

      • 我有点想通这一点,因此我的问题。有没有办法做到这一点?
      • 为什么要包含托管在另一台服务器上的文件?你想解决什么问题?
      • 我拥有大型网站网络,我正在编写一个脚本来帮助管理它们。
      • 您可能想研究 Nagios 之类的东西,而不是拼凑一个管理平台。
      【解决方案4】:

      这是一个粗略的 hack,但是在远程服务器上,您可以查找 $_ENV['REMOTE_HOST'] 的域名。

      从远程服务器的角度来看,这将是执行“包含”的人的域名。

      我假设你有一些理由想要实现这个奇怪的拓扑——虚拟主机环境中的限制,或者其他什么。如果可能,我建议研究替代基础架构。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-24
        • 2018-07-17
        • 2015-01-12
        • 1970-01-01
        相关资源
        最近更新 更多