Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中处理包含文件的相对路径_Php_Codeigniter - Fatal编程技术网

在PHP中处理包含文件的相对路径

在PHP中处理包含文件的相对路径,php,codeigniter,Php,Codeigniter,我正在用PHP做一个我不太熟悉的项目。我使用的是MVC框架(CodeIgnitor)。我注意到,每次我返回一个长/短url字符串导致的视图时,我所有的include都会中断。看起来路径是相对于url的 $\u SERVER[“DOCUMENT\u ROOT”]是在PHP中生成包含路径的最佳方法吗 谢谢 我真的取决于您的应用程序,我不知道CodeIgnitor是如何工作的,但这里有几点: 如果使用php路径(在php.ini中定义),则可以始终将include保留在php路径中,因此包含文件不再是

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

$\u SERVER[“DOCUMENT\u ROOT”]是在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项目中,我似乎从来都不需要这样做。