require文件的PHP相对路径
我已经讨论了这两个主题:require文件的PHP相对路径,php,Php,我已经讨论了这两个主题: 无法使我的脚本正常工作,所有呈现的方法都不起作用,或者可能我做错了什么 无论如何,这就是我的问题所在: Root/ //this is root location for server APP/ //this is root location for script Root/APP/core/init.php
Root/ //this is root location for server
APP/ //this is root location for script
Root/APP/core/init.php //this is where I include classes and functions from
Root/APP/classes/some_class.php //this is where all classes are
Root/APP/functions/some_function.php //this is where all functions are
显然,我需要在每个地方都包含init.php
,所以我在每个文件中都这样做:
require_once 'core/init.php';
Root/APP/Admin/some_admin_file.php
它一直在工作,直到我决定为管理员文件创建一个位置,如下所示:
require_once 'core/init.php';
Root/APP/Admin/some_admin_file.php
当我以这种方式包含init时:
require_once '../core/init.php';
脚本无法打开函数,APP/Core/
文件夹中没有此类文件
所以我使用了上面主题中介绍的DIR方法,甚至比发生的更奇怪的事情,错误:
APP/Core/classes/Admin中没有此类文件/
那是什么D我对这件事感到迷茫,有人能帮我一点忙吗;) 包含路径相对于当前工作目录,可以使用
getcwd()
检查当前工作目录;当您的项目变得更大时,这可能是许多问题的根源
要使包含路径更稳定,应使用\uuuuu DIR\uuuu
和\uuu FILE\uuuu
魔法常量;例如,在您的特定情况下:
require_once dirname(__DIR__) . '/core/init.php';
dirname(\uuu DIR\uuu)
表达式实际上是当前正在运行的脚本的父目录
顺便说一句,
\uuuuuu DIR\uuuuuu
也可以写成dirname(\uuuu FILE\uuuuuu)
检查字母大小写,它们是大写的吗:APP/Core/还是APP/Core/,如果我这样做需要一次dirname(\uu DIR\uuuuu),其中任何一个都是错误的/core/init.php'
在admin文件夹中的admin文件中,我收到以下错误:警告:require_once(functions/my_function.php)[function.require once]:无法打开流:在/APP/core/init.php中没有这样的文件或目录
所以这就像试图从core打开函数一样folder@PatrickMevia是的,嗯,这只意味着问题也必须在那里解决:)