【问题标题】:PHP: include function is blockedPHP:包含功能被阻止
【发布时间】:2009-06-15 10:24:24
【问题描述】:

我的 PHP 文件不能再调用包含函数了。我想我的主机更改了 php 设置。这个问题有什么解决方法吗?我可以在 php.ini/.htaccess 文件中启用包含功能吗?如何?我的主机使用的是 PHP 4.4.9 版。

编辑 - 我试图包含的所有文件都是本地文件,而不是另一台服务器上的文件。直到几天前,包含功能都可以正常工作。他们突然停止工作了。

【问题讨论】:

  • 您是要包含本地文件,还是其他网站的远程文件?
  • 如果没有更多信息,我们将无法为您提供解决方案。
  • @Gaurav - 这仍然不足以得到一个体面的答案。 “停止工作”是什么意思 - 你收到错误了吗?
  • 我不知道我是否收到错误,因为我的主机已禁用错误显示。我需要知道的是,如果我的主机禁用了包含功能支持,是否有解决方法?我可以使用 cURL 或在 .htaccess 等中输入以使其工作吗?

标签: php include


【解决方案1】:

我认为是权限问题,

您是否在错误日志文件中看到错误,

或者在屏幕上看到错误?

【讨论】:

    【解决方案2】:

    也许您的主机更改了您 www 的路径。

    您在 include() 中使用的是相对路径还是绝对路径?

    【讨论】:

    • 我需要包含的文件与调用它的文件位于同一目录中。
    【解决方案3】:

    这看起来和感觉都错了,但这能行吗?

    function includeFile($path) {
    
        if (!file_exists($path)) {
            return false;
        }
    
        $contents = file_get_contents($path);
    
        eval($contents); // ewww
        return true;
    
    }
    

    【讨论】:

    • 出于测试目的可能值得一试。但这种类型的代码不应该接触生产。
    • PS:如果 $path 是一个 url,它已经被 eval() 了,所以第二个 eval() 可能会产生意想不到的结果。
    • 是的,我知道这很糟糕,但值得一试尝试。虽然我不希望看到这个进行生产(我会再次启用 include/require)
    猜你喜欢
    • 2023-03-29
    • 2018-07-08
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    相关资源
    最近更新 更多