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

mic*_*ahl 5 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')
Run Code Online (Sandbox Code Playgroud)

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

mar*_*rio 13

如果你开始一个路径,/那么它是一个绝对路径.绝对主电源到实际的文件系统根目录,而不是虚拟的document root.这就是它失败的原因.

通常这就是:

include "$_SERVER[DOCUMENT_ROOT]/test/assets/header.php";
// Note: array key quotes only absent in double quotes context
Run Code Online (Sandbox Code Playgroud)


小智 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')
Run Code Online (Sandbox Code Playgroud)

我用以下解决方案解决了它们:

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

define('DOC_ROOT_PATH', $_SERVER['DOCUMENT_ROOT'].'/');
require DOC_ROOT_PATH . "../includes/pagedresults.php";
Run Code Online (Sandbox Code Playgroud)

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