在PHP中处理包含文件的相对路径
我正在用PHP做一个我不太熟悉的项目。我使用的是MVC框架(CodeIgnitor)。我注意到,每次我返回一个长/短url字符串导致的视图时,我所有的include都会中断。看起来路径是相对于url的 $\u SERVER[“DOCUMENT\u ROOT”]是在PHP中生成包含路径的最佳方法吗在PHP中处理包含文件的相对路径,php,codeigniter,Php,Codeigniter,我正在用PHP做一个我不太熟悉的项目。我使用的是MVC框架(CodeIgnitor)。我注意到,每次我返回一个长/短url字符串导致的视图时,我所有的include都会中断。看起来路径是相对于url的 $\u SERVER[“DOCUMENT\u ROOT”]是在PHP中生成包含路径的最佳方法吗 谢谢 我真的取决于您的应用程序,我不知道CodeIgnitor是如何工作的,但这里有几点: 如果使用php路径(在php.ini中定义),则可以始终将include保留在php路径中,因此包含文件不再是
谢谢 我真的取决于您的应用程序,我不知道CodeIgnitor是如何工作的,但这里有几点: 如果使用php路径(在php.ini中定义),则可以始终将include保留在php路径中,因此包含文件不再是相对于文件路径的 如果您有一个项目目录(如/srv/www/myProject/),并且您正在使用的所有文件都位于该目录中,那么您可以定义一个会话值,如$\u session['project\u path']='/srv/www/myProject',然后在包含文件时,它将如下所示:
include_once($_SESSION['project_path'] . 'included.php');
调用绝对路径将使include不关心当前路径。您应该阅读。它已经具备了您所需要的所有信息,并提供了为您的站点提供路径的功能
如果您需要文件系统上的路径,则有
BASEPATH
、APPPATH
和FCPATH
。查看index.php
以查看它们指向何处(也有这些常量的描述)base\u url()和site\u url()可能是您所需要的。CodeIgnitor有url助手“base\u url()”。这似乎很有效。为什么以及如何使用includes?我突然想到,在CI项目中,我似乎从来都不需要这样做。