【问题标题】:How to have included/required scripts use local files如何让包含/必需的脚本使用本地文件
【发布时间】:2009-06-11 20:46:47
【问题描述】:

我的情况:我有一个类要在很多地方使用,所以我把它放在目录树的高处:

/www/libs/classA/classA.php

它使用位于同一目录中的配置文件 config.ini 并在构造函数中本地引用它。但是,当我从不同目录中的脚本中包含它时,它会尝试从调用脚本所在的目录加载配置文件。有什么方法可以查看包含文件所在的目录吗?理想情况下,我可以将脚本移动到不同的目录而不对其进行任何更改。

【问题讨论】:

    标签: php include


    【解决方案1】:

    在包含/加载文件时应该使用绝对路径。您可以使用__FILE__ constantdirname function 检索该绝对路径:

    dirname(__FILE__).'/config.ini'
    

    这将为您提供当前执行的脚本文件所在目录中config.ini 文件的绝对路径。因此,当该代码在您的classA.php 脚​​本文件中执行时,您将获得/www/libs/classA/config.ini

    【讨论】:

      【解决方案2】:

      如果参数中没有路径信息,您应该能够包含/需要当前文件目录中的文件,例如包括('file2.php');。但我认为即使你有'./file2.php'),它也会相对于第一个包含/执行的脚本的目录。

      我喜欢 dirname(____FILE____)... 方法,但我相信在某些文件集总是要部署在同一目录中的情况下,直接包含文件可以提高凝聚力。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-27
        • 1970-01-01
        • 2011-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-29
        相关资源
        最近更新 更多