【问题标题】:PHP require path - same directoryPHP 需要路径 - 相同的目录
【发布时间】:2018-09-07 03:14:29
【问题描述】:

我在根目录中有 index.html,在 /HTML 中有所有支持文件。我在 HTML 目录的文件中有 Google 分析代码。它在我的 index.html 中工作,此代码位于 head 标签之间...

<?php
require('HTML/GoogleAnalytics.html');
?>

但不在 HTML 目录中的任何支持文件中,与我试图在此代码中要求/包含的文件相同的目录...

<?php
require('GoogleAnalytics.html');
?>

来自 PHP.net "...include 最终会在失败前检查调用脚本自己的目录和当前工作目录"

我做错了什么?

【问题讨论】:

    标签: php include


    【解决方案1】:

    从 PHP 5.3 开始(此时是生命周期结束之后)以及更高版本,您还可以使用 __DIR__ 常量,http://php.net/manual/en/language.constants.predefined.php

    require(__DIR__ . '/GoogleAnalytics.html');
    

    【讨论】:

    • 用那行代码替换它会导致页面根本无法加载。来自 google 网站“PHP Implementation optional”使用上面的代码创建一个名为“analyticstracking.php”的 PHP 文件,并将其包含在每个 PHP 模板页面中。然后,在每个模板页面的开头 标记之后立即添加以下行: " 我做错了什么?
    【解决方案2】:

    要使其相对于 当前 文件,您可以像这样添加 dirname(__FILE__)

    require(dirname(__FILE__) . '/GoogleAnalytics.html');
    

    默认情况下,路径是相对于发起请求的文件的。

    【讨论】:

    • 我用你的代码替换了我的代码行,但它不起作用。而且我不明白,它与调用页面/脚本在同一个地方。所以我试着把它放到一个目录下,所以我想包含的文件在 HTML/google/GoogleAnalytics.html 中。因此,它将与索引具有相同的关系,它在哪里起作用。没运气。当我将 google 添加到路径时,索引仍然有效。
    【解决方案3】:

    试试这个:

    require('/HTML/GoogleAnalytics.html');
    

    【讨论】:

    • 您可能是 PHP 新手? ...无论如何,PHP 说:Because include is a special language construct, parentheses are not needed around its argument. include_oncerequirerequire_once 也是如此。是的,通常会发现它们与括号一起使用,但不是必需的。查看 PHP.net 上的一些示例。如果使用它不是问题,但你可能会被一些面试官“绊倒”,而且你工作的地方的一些编码标准可能不允许它们。也见this
    • @PaulT。此页面中的每个示例都使用括号。
    • @T30 是的,我知道,我只是提到了 PHP 信息。我猜,其中一种个人风格很重要。
    猜你喜欢
    • 2012-12-03
    • 2012-04-21
    • 2015-10-22
    • 2014-09-05
    • 2011-12-11
    • 2012-05-25
    • 2018-03-26
    • 2012-01-05
    • 1970-01-01
    相关资源
    最近更新 更多