【问题标题】:Confused with PHP Include对 PHP 包含感到困惑
【发布时间】:2011-11-13 08:42:38
【问题描述】:

./ vs ../ vs / 有什么不同

我很困惑,我试图访问不同级别文件夹中的 PHP 类。

我在webdir/asia/v1 中有以下文件夹结构:

+db
  class.database.php
  config.database.php
  +model
    Application.php
text.php

class.database.php 中,我想包含位于同一文件夹中的config.database.php

Application.php 中,我想包含上一级的class.database.php

text.php 中,我想包含Application.php

如何正确包含?

我现在知道的是要将文件包含在同一个文件夹中,我可以使用这个:

include('config.database.php');

另外两种变体呢?我尝试在Application.php 中包含class.database.php,如下所示:

include_once('../class.database.php');

但它不起作用。

【问题讨论】:

标签: php


【解决方案1】:

.是当前目录

./file.txt指向同目录下的一个文件

..是父目录

../file.txt指向父目录中的一个文件

/ 是根目录(如 Windows 上的 C:\

【讨论】:

  • 我尝试使用 ./somefile.php 但它不起作用,但如果我使用 '/c.php' 它会起作用。我还是很困惑
【解决方案2】:

没有前面的路径表示当前路径,./ 也是如此。

../ 表示上一级。

【讨论】:

    【解决方案3】:

    使用 包括(目录名(目录名(__FILE__))。“/class.database.php”); 看看它是否有效。

    编辑: 在这里,dirname(__FILE__) 为您提供当前目录,其中“dirname(__FILE__)”的 dirname 将您在目录树的层次结构中提升了一步。

    【讨论】:

    • 如果 dirname(dirname(FILE)) 与 ../../ 相同,为什么要使用 dirname 而不是 ../?
    • Hi hadi,../../ 在某些情况下可能会起作用,但这不是标准的做法。
    【解决方案4】:

    您可以尝试像这样包含文件:

    include(dirname(__FILE__) . '/../class.database.php');

    甚至使用服务器的文档根目录:

    include($_SERVER['DOCUMENT_ROOT'] . 'db/model/Application.php');

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-28
      • 2012-01-04
      • 1970-01-01
      • 1970-01-01
      • 2023-02-05
      • 2017-09-20
      相关资源
      最近更新 更多