【问题标题】:A way to include paths dynamically in php?一种在php中动态包含路径的方法?
【发布时间】:2015-09-03 06:12:07
【问题描述】:

我已经用这个文件和文件夹构建了一个服务器:

index.php
|lib -> lib.php
|framework -> fw.php
|folderA -> index2.php

在 lib.php 中有一个带有 require_once 的 functionA(),它可以从 index2.php 正确调用“fw.php”:

functionA(){
    require_once "../framework/fw.php";
    //other stuff... 
}

如果从 index.php 调用,则必须更改路径。 我真的需要一种方法来动态包含路径,而无需在每个页面中设置特定代码。

是否存在修复路径的方法?

我尝试使用 __FILE__、dirname()...但没有满意的解决方案。

【问题讨论】:

  • 为什么不使用绝对路径?

标签: php path


【解决方案1】:

您可能需要根据路径的设置方式对其进行调整以使其正常工作......但对于大多数标准设置,这将起作用。

$basepath = substr($_SERVER['DOCUMENT_ROOT'], 0, strrpos($_SERVER['DOCUMENT_ROOT'], '/')). 
'/framework/';

require_once($basepath.'fw.php');

【讨论】:

    【解决方案2】:

    如果使用 php 5.3+,你可以使用魔法常量__DIR__

    functionA(){
        require_once __DIR__."/../framework/fw.php";
        //other stuff... 
    }
    

    这将采用lib/lib.php的函数A的路径并从那里开始,即使lib.php包含在index.php或任何地方。

    对于以前的 PHP 版本: dirname(__FILE__)

    【讨论】:

      猜你喜欢
      • 2014-05-08
      • 2013-10-18
      • 2012-10-16
      • 2011-02-15
      • 1970-01-01
      • 1970-01-01
      • 2014-10-27
      • 1970-01-01
      相关资源
      最近更新 更多