我在尝试使用require_once时遇到问题。
我指定了错误的路径,但找不到解决方案。
我有一个名为header.php的文件,该文件通过使用require_once包括两个文件:functions.php和navigation.php。
这部分工作正常。
当我尝试将header.php包含在另一个目录中的名为view.php的文件中时,出现问题。
这是树状:
C:\wamp\www\1.1\plugins\docreader\php\view.php
C:\wamp\www\1.1\theme\dark-blue\templates\files\header.inc.php
C:\wamp\www\1.1\theme\dark-blue\templates\files\functions.inc.php
C:\wamp\www\1.1\theme\dark-blue\templates\files
avigation.inc.php
我尝试了许多不同的途径,但没有成功。
请问有人有线索吗?
您只需要一点MAGIC
很高兴我的php天结束了xD
阅读(并使用)魔术常数__DIR__和函数dirname(),以从包含者的路径开始生成包含文件的路径。
例如,如果要在plugins\docreader\php\view.php中包含theme\dark-blue\templates\files\functions.inc.php,请使用以下内容:
// Use this in 'plugins\docreader\php\view.php'
include dirname(dirname(dirname(__DIR__))).
'/theme/dark-blue/templates/files/functions.inc.php';
__DIR__是一个魔术常数,其值等于包含使用该文件的文件的目录。 在C:\wamp\www\1.1\plugins\docreader\php\view.php中,__DIR__的值是'C:\wamp\www\1.1\plugins\docreader\php'。
函数dirname()返回所提供路径的父目录。 ..的种类,更好。 三次使用它会将作为参数传递的值(上面解释的__DIR__的值)减小为'C:\wamp\www\1.1'。 一切都从那里直接进行:将相对路径添加到所需文件('/theme/dark-blue/templates/files/functions.inc.php'),而忽略包含问题。
谢谢您如此迅速的回答。
谢谢您如此迅速的回答。我尝试了您的建议,但是没有用。我认为问题来自于header.php本身包含另外两个文件的事实。我试图将header.php包含在view.php中。我试图在view.php中包括其他两个,但是问题仍然存在。
注意:使用未定义的常量SITE_TEMPLATES_PATH-在第3行的C: wamp www 1.1 theme dark-blue templates files header.inc.php中假定为SITE_TEMPLATES_PATH警告:require_once(SITE_TEMPLATES_PATH / files / functions.inc。 php):无法打开流:C: wamp www 1.1 theme dark-blue templates files header.inc.php在第3行上没有这样的文件或目录,致命错误:require_once():打开失败第3行的C: wamp www 1.1 theme dark-blue templates files header.inc.php中所需的SITE_TEMPLATES_PATH / files / functions.inc.php(include_path = .; C: php pear)
第3行是:require_once(SITE_TEMPLATES_PATH。/files/functions.inc.php);
我只给你一个例子。我不知道您需要包括哪个文件以及在哪里。只需在您的所有include / require中使用该想法(也包括在随附的文件中),它将起作用。
是的,我做了一些努力,这就是我所做的。非常感谢
您需要使文件路径为绝对路径,而不是相对路径。 $_SERVER['DOCUMENT_ROOT']一个用于实现此目的的有用的全局全局变量,它将评估您的Web服务器文件根目录。
谢谢,我会尽力的。