php include|require_once 引入文件路径问题

本文通过实例解析了在PHP中使用相对路径引入文件时遇到的问题,详细解释了当前目录与工作目录的区别,以及如何通过调整目录结构或使用绝对路径解决引入文件找不到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以前确实没有怎么在意这个问题,但是在昨天帮助同事调试代码的时候,在a文件里引入b文件b文件里又引入c文件却提示c文件不存在,仔细核对了N遍路径没绝对问题,后来同事在b文件引入的时候改用了绝对路径(以前使用的相对路径),神奇的尽然可以了。带着疑惑百度看了一些文章大致明白了原因。

先把目录结构图放上

先来了解两个概念:

1.当前目录 :当前文件的目录

2.工作目录 :当前脚本运行的目录

php和其他语言处理引入文件的方式不大一样,到底是不是真的不一样也没实际的实验过。php是这样处理的:如果引入文件是./或../等相对路径它会去当前工作目录去查找该引入文件。其实看到这里我想你已经明白原因出在那里了。

模拟一下程序运行的步骤

a.php :

1.程序按照路径引入c.php,成功。

2.执行c.php,准备引入b.php。php发现使用的是相对路径,它会在当前工作目录查找b.php。现在的工作目录是dir0也就是说这个文件应该和dir0同级,显然这个文件不存在。程序报错不再继续执行。

为了验证猜测是否正确现在我把目录结构改成如下:

运行a.php 输出:我是b.php

这种办法在项目开发中肯定是不建议使用的,建议能使用绝对路径就使用绝对路径,还有几个函数可以看一下

include_path , realpath , dirname , __FILE__

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值