【问题标题】:Handling relative paths for include files in PHP在 PHP 中处理包含文件的相对路径
【发布时间】:2010-07-14 02:24:24
【问题描述】:

我正在做一个我不太熟悉的 PHP 项目。我正在使用 MVC 框架(CodeIgnitor)。我注意到,每次我返回一个由更长/更短的 url 字符串产生的视图时,我的所有包含中断。看来路径是相对于 url 的。

$_SERVER["DOCUMENT_ROOT"] 是在 PHP 中生成包含路径的最佳方式吗?

谢谢!

【问题讨论】:

  • 为什么以及如何使用包含?我突然想到,在 CI 项目中我似乎从来不需要这个。

标签: php codeigniter


【解决方案1】:

您应该阅读User Guide on URL Helpers。它已经拥有您需要的所有信息,并提供了为您的网站提供路径的功能。

如果您需要文件系统上的路径,则有 BASEPATHAPPPATHFCPATH。查看index.php 以查看它们指向的位置(也有这些常量的描述)

【讨论】:

    【解决方案2】:

    base_url() 和 site_url() 可能是你需要的。

    【讨论】:

      【解决方案3】:

      我真的很依赖你的应用,我不知道 CodeIgnitor 是如何工作的,但这里有几点:

      如果您使用 php 路径(在 php.ini 中定义),您可以始终将您包含在 php 路径中,因此包含文件不再与文件路径相关。

      如果您有一个项目目录(如 /srv/www/myProject/)并且您使用的所有文件都驻留在此目录中,那么您可以定义一个像这样的会话值 $_SESSION['project_path'] = '/srv /www/myProject' 然后在包含文件时,它看起来像这样:

      include_once($_SESSION['project_path'] . 'included.php');
      

      调用绝对路径会使包含不关心当前路径。

      【讨论】:

      • CodeIgnitor 有 url 助手'base_url()'。这似乎工作得很好。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-24
      • 2014-11-15
      • 1970-01-01
      • 1970-01-01
      • 2019-04-21
      • 2013-04-09
      • 1970-01-01
      相关资源
      最近更新 更多