PHP包括 - 无法打开流:没有这样的文件

时间:2011-12-31 17:41:46

标签: php include

我用HTML写了一个网站,但后来我想把标题和导航栏部分放在一个文件中,所以我只需要改一次。我将所有页面都更改为.php并添加了php包含。但是现在我在我放在文件夹中的页面上出现错误,所以我可以创建无链接链接。

标题文件:/test/assets/header.php

作品:/test/index.php包含<?php include 'assets/header.php'; ?>

引发错误:/test/company/index.php包含<?php include '/test/assets/header.php'; ?>

错误:

Warning: include(/test/assets/header.php) [function.include]: failed to open stream: No such file or directory

Warning: include() [function.include]: Failed opening '/test/assets/header.php' for inclusion (include_path='.:/usr/local/lib/php:/usr/local/php5/lib/pear')

我遇到链接到根文件夹中文件夹中的头文件的问题。我认为这是一个简单的问题,只是不知道如何输入URL。如果我尝试包含header.php的完整路径,我会收到URL file-access is disabled错误

3 个答案:

答案 0 :(得分:12)

如果您使用/开始路径,则它是绝对路径。绝对主管到实际的文件系统根目录,而不是虚拟document root。这就是它失败的原因。

通常这就是:

include "$_SERVER[DOCUMENT_ROOT]/test/assets/header.php";
// Note: array key quotes only absent in double quotes context

答案 1 :(得分:5)

我也面临同样的警告:

Warning: include(/test/assets/header.php) [function.include]: failed to open stream: No such file or directory
Warning: include() [function.include]: Failed opening '/test/assets/header.php' for inclusion (include_path='.:/usr/local/lib/php:/usr/local/php5/lib/pear')

我用以下解决方案解决了这些问题:

您必须定义路径,然后使用include功能,如下所示:

define('DOC_ROOT_PATH', $_SERVER['DOCUMENT_ROOT'].'/');
require DOC_ROOT_PATH . "../includes/pagedresults.php";

之后,您可以使用任何目录结构。

答案 2 :(得分:0)

不是一个网址;它是一个文件路径(尽管可以在服务器配置允许时使用完整的 URL)。