【问题标题】:File path in php requirephp中的文件路径需要
【发布时间】:2011-03-15 21:18:38
【问题描述】:

我继承了一些代码:

include('../cfg/db_setup.php');
require('./fpdf/fpdf.php');

我知道 ../cfg 表示从当前目录开始,然后上一层并下到 cfg 目录。 ./fpdf 是什么意思?我从未见过在文件路径中使用单点斜线,而且似乎在我们服务器上的任何地方都找不到 fpdf 目录,但代码正在运行,所以显然它就在某个地方。

【问题讨论】:

  • 当前目录。顺便说一句,这不是 PHP 包含的好习惯。您应该使用 include (dirname(FILE)."../cfg/db_setup.php") 提供绝对路径,而不是与当前目录相关的路径(可能会通过多种方式更改)跨度>
  • 我知道了,谢谢。就像我说的,这是我继承的代码。在开始处理绝对路径之前,我需要找到所有引用的文件。

标签: php relative-path


【解决方案1】:

只是一个注释。

相对路径与当前的 include_path 无关。

相对路径,例如 .或 ../ 相对于当前 working 目录。如果您在 CGI 或命令行上运行脚本,或者如果脚本包含在另一个目录中的另一个脚本中,则工作目录会有所不同。

因此理论上不可能在不知道上下文的情况下确定这些路径指向的位置:P

可以肯定的是,如果 PHP

include(dirname(__FILE__) . '/../cfg/db_setup.php');
require(dirname(__FILE__) . '/fpdf/fpdf.php');

如果 PHP >= 5.3:

include(__DIR__ . '/../cfg/db_setup.php');
require(__DIR__ . '/fpdf/fpdf.php');

【讨论】:

    【解决方案2】:

    . 被定义为当前文件夹。

    因此,如果 PHP 脚本位于 /path/to/script/,那么第二条语句将查找 /path/to/script/fpdf/fpdf.php

    【讨论】:

    • 谢谢。我不习惯处理相对路径。
    【解决方案3】:

    ./ 是当前目录。 ./fpdf/ 应该与包含文件在同一路径上,或者在 php include_path 之外的某个地方。

    【讨论】:

      【解决方案4】:

      ./ - 这意味着在当前路径中

      【讨论】:

        猜你喜欢
        • 2014-09-05
        • 1970-01-01
        • 2014-03-06
        • 2012-05-25
        • 2013-10-10
        • 1970-01-01
        • 2012-12-03
        • 2012-04-21
        • 2015-03-10
        相关资源
        最近更新 更多