如何在XAMPP环境中正确引入PHP包含文件?
解决XAMPP中PHP包含文件路径问题
问题根源
你的代码里$_SERVER["DOCUMENT_ROOT"]指向的是XAMPP默认站点根目录C:/xampp/htdocs/,但实际includes/nav-blue.php应该是在php8子目录下(因为test.php存放在php8文件夹中),路径拼接后变成了根目录下的includes文件夹,自然找不到目标文件。
无需配置域名的解决方案
方案1:使用相对路径
直接基于当前test.php的位置编写相对路径,简单直接:
<?php include "./includes/nav-blue.php"; ?>
若includes文件夹与test.php同级,也可简化为:
<?php include "includes/nav-blue.php"; ?>
方案2:定义项目根常量
如果项目文件层级复杂,建议在入口文件(如test.php或公共配置文件)中定义项目根常量,避免路径混乱:
// 在test.php开头添加 define('PROJECT_ROOT', __DIR__); // __DIR__代表当前文件所在目录,即C:/xampp/htdocs/php8 // 调用包含文件 include PROJECT_ROOT . "/includes/nav-blue.php";
方案3:修改站点根目录(不推荐)
如果一定要沿用$_SERVER["DOCUMENT_ROOT"],可以修改Apache配置将php8设为站点根:
- 打开XAMPP控制面板,点击Apache的
Config->httpd.conf - 找到
DocumentRoot "C:/xampp/htdocs"和<Directory "C:/xampp/htdocs">,将路径改为C:/xampp/htdocs/php8 - 重启Apache服务
修改后$_SERVER["DOCUMENT_ROOT"]会指向php8目录,原代码即可正常运行。但这种方法仅适合单项目测试,多项目场景下会引发冲突。
是否需要配置域名?
不需要。配置域名只是让访问地址更友好(比如用local.test替代localhost/php8),本质是修改Apache虚拟主机配置,和文件路径问题无直接关联。解决包含文件路径问题,用相对路径或常量方案更高效。
内容的提问来源于stack exchange,提问作者Seb
相关产品推荐
相关产品推荐

