我用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
错误
答案 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)。