在根(www)中,我有两个文件夹。如何从另一个目录中包含文件
在第一个文件夹“folder1”中,我放了一个名为register.php的文件。
在下一个文件夹“folder2”中,我放入了名为header.php和footer.php的文件。
我需要在register.php文件中包含folder2中的页眉和页脚文件。
我该怎么做?我试图用这个包括../folder2/header.php
..但它不工作
在根(www)中,我有两个文件夹。如何从另一个目录中包含文件
在第一个文件夹“folder1”中,我放了一个名为register.php的文件。
在下一个文件夹“folder2”中,我放入了名为header.php和footer.php的文件。
我需要在register.php文件中包含folder2中的页眉和页脚文件。
我该怎么做?我试图用这个包括../folder2/header.php
..但它不工作
在某些配置中,加入./
(当前目录)的伎俩像这样:
include './../folder2/header.php';
另外,您也可以在文档根目录来指定:
include $_SERVER['DOCUMENT_ROOT'] . 'folder2/header.php';
include $_SERVER['DOCUMENT_ROOT'] . '/folder2/header.php';
都会从网站的任何目录工作3210 它被称为absolute path
,它是解决文件
但是唯一可靠的方法,在实际它应该像使用变量,以前在cfg.php
然而定义
include $_SERVER['DOCUMENT_ROOT'] . '/cfg.php';
// some code
include $TPL_HEADER;
,它可能也会失败。因为你可以只是错了这些路径
这里去您的主要问题:
,但它不工作
有没有这样的事情“它不工作”
有始终是一个全面的错误消息,告诉你什么完全不起作用,而不是它。您没有自己阅读,并且您没有在这里发布它,让我们向您展示正确路径以外的这些错误消息。
包含文件通常应该保存在服务器根目录之外。
可以说你的设置是;
www/website1
和
www/includes
然后你php.ini文件,或。htaccess文件应规定
的include_path = WWW /包括
从任何文件然后,在任意目录下,不管多远下来的树木,他们去,你只是做:
include 'myfile.php';
其中myfile.php是在万维网/包括/ myfile.php
然后你就可以不用担心这些问题
由于PHP手册状态here $ _SERVER ['DOCUMENT_ROOT']是“当前脚本执行时的文档根目录,如服务器配置文件中所定义的。”对于这个例子,$ _SERVER ['DOCUMENT_ROOT']可以正常工作,但是。 。 。通过使用> = PHP 5.3中提供的新的"magic constants",我们可以使此代码更安全一些。
把你的包含在一个子文件夹中,并使用魔术常量DIR来引用包含的文件。 DIR返回当前正在执行的php文件的目录。通过使用这个,你可以在你的目录结构中的任意位置移动你的包含所有包含的文件夹,而不需要担心你的包含是否仍然可以工作。
你完全误解了这些信息。在'__DIR__'常量中没有什么“更安全”,它不能帮助您在任何地方使用 。它与'dirname(__ FILE __)'和相同的* relative *路径相同,而不是*绝对*。我常常在这里看到一个奇怪的错觉。 – 2010-09-18 07:46:09
非常感谢你的礼貌回应。 – bmarti44 2010-09-18 15:22:10
我使用__DIR__而不是$ _SERVER ['DOCUMENT_ROOT']的原因是因为如果您的包含文件的位置发生变化,__DIR__仍然会为您的includes文件夹提供正确的路径,从而使您可以轻松地在多个项目在任何地点。如果我使用$ _SERVER ['DOCUMENT_ROOT']。 '/includeme.php'我必须始终在文档根目录中包含includeme.php。如果我在文件/www/folder1/includer.php中使用了__DIR__来引用/ www/folder1/includes中的包含,我可以在站点中的任意位置剪切并复制folder1,或者将其复制到任何位置的其他站点。 – bmarti44 2010-09-18 15:29:56
include dirname(__FILE__).'/../folder2/header.php';
<?php include($_SERVER['DOCUMENT_ROOT'] . 'folder2/header.php'); ?>
尝试这是工作在我的情况
<?php require_once __DIR__."/../filename.php";?>
我没有收到错误消息。这只是打印没有PHP的页面。 – EllaJo 2011-05-17 18:47:34