谈谈PHP中相对路径的问题与绝对路径的使用


Posted in Javascript onAugust 16, 2016

问题描述

首先我们先来看一下我们这个例子的目录结构以及这三个文件的内容

a.php

<?php
include './c/d.php'

b.php

<?php
define('__B', 'this is a test');

c/d.php

<?php
include '../b.php';
var_dump(__B);

在c目录下面的d.php文件引用了它的上级目录下的 b.php 文件 单独运行 c/d.php 的时候不会出问题

谈谈PHP中相对路径的问题与绝对路径的使用

但是,如果在和b同级目录下的a.php引用c/d.php的话就会出问题了

谈谈PHP中相对路径的问题与绝对路径的使用

它报错说的是文件不存在

思考

大概意思就是 a.php 把 c/d.php 引入到 a.php 中后, include '../b.php' 这个路径就是相对于 a.php 来说的了,然后对于 a.php 来说的这个相对路径它是不存在的,所以就出现了这个问题

如果一个文件可能在多个地方被引用的时候使用相对路径就相当容易出问题,然后我们使用绝对路径能够轻松解决这个问题。

使用绝对路径解决问题

如果我们把文件改成如下内容

a.php

<?php
include __DIR__.'/../b.php';
var_dump(__B);

b.php

<?php
define('__B', 'this is a test');

c/d.php

<?php
include __DIR__.'/../b.php';
var_dump(__B);

这样就改成了对文件的绝对路径进行引用了, __DIR__ 是php5.3开始中就有的预定义的魔术常量,表示这个文件所在的目录,然后我们利用这个来可以写出绝对路径,在运行a.php和c/d.php的时候都能够正常执行了,如果在php5.3之前都是使用 dirname(__FILE__) 来替代 __DIR___

总结

以上就是关于php中相对路径的问题以及绝对路径的使用的全部内容,希望对大家使用PHP能有所帮助,避免再进入php中相对路径的坑。

Javascript 相关文章推荐
js编码、解码函数介绍及其使用示例
Sep 05 Javascript
JavaScript中的条件判断语句使用详解
Jun 03 Javascript
jQuery动画效果相关方法实例分析
Dec 31 Javascript
JavaScript表单验证实例之验证表单项是否为空
Jan 10 Javascript
vue2.0实战之使用vue-cli搭建项目(2)
Mar 27 Javascript
详解webpack babel的配置
Jan 09 Javascript
vue-cli 打包后提交到线上出现 &quot;Uncaught SyntaxError:Unexpected token&quot; 报错
Nov 06 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
Jan 23 Javascript
javascript实现动态时钟的启动和停止
Jul 29 Javascript
ES6学习笔记之let与const用法实例分析
Jan 22 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
May 15 Javascript
原生JavaScript实现简单五子棋游戏
Jun 28 Javascript
jQuery多文件异步上传带进度条实例代码
Aug 16 #Javascript
AngularJS指令详解及示例代码
Aug 16 #Javascript
AngularJS教程之简单应用程序示例
Aug 16 #Javascript
AngularJS教程之MVC体系结构详解
Aug 16 #Javascript
超实用的javascript时间处理总结
Aug 16 #Javascript
AngularJS教程之环境设置
Aug 16 #Javascript
JavaScript中获取时间的函数集
Aug 16 #Javascript
You might like
php生成EXCEL的东东
2006/10/09 PHP
php+mysqli实现批量执行插入、更新及删除数据的方法
2015/01/29 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
jQuery写的日历(包括日历的样式及功能)
2013/04/23 Javascript
jquery 跳到顶部和底部动画2句代码简单实现
2013/07/18 Javascript
jQuery实现返回顶部功能适合不支持js的浏览器
2014/08/19 Javascript
一个不错的仿携程自定义数据下拉选择select
2014/09/01 Javascript
JavaScript弹出新窗口并控制窗口移动到指定位置的方法
2015/04/06 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
jQuery无缝轮播图代码
2016/12/22 Javascript
JavaScript创建对象的七种方式(推荐)
2017/06/26 Javascript
vue-awesome-swiper滑块插件使用方法详解
2017/11/27 Javascript
Angular中点击li标签实现更改颜色的核心代码
2017/12/08 Javascript
Javasript设计模式之链式调用详解
2018/04/26 Javascript
Vue 引入AMap高德地图的实现代码
2019/04/29 Javascript
javascript实现摄像头拍照预览
2019/09/30 Javascript
layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例
2019/10/26 Javascript
JS实现简易留言板(节点操作)
2020/03/16 Javascript
Vue与React的区别和优势对比
2020/12/18 Vue.js
[10:39]DOTA2上海特级锦标赛音乐会纪录片
2016/03/21 DOTA
[01:07:17]EG vs Optic Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
python遍历目录的方法小结
2016/04/28 Python
pandas数据处理进阶详解
2019/10/11 Python
pyecharts动态轨迹图的实现示例
2020/04/17 Python
详解Python中的编码问题(encoding与decode、str与bytes)
2020/09/30 Python
纯CSS3实现的阴影效果
2014/12/24 HTML / CSS
HTML5中判断用户是否正在浏览页面的方法
2014/05/03 HTML / CSS
查找廉价航班和发现新目的地:Kiwi.com
2019/02/25 全球购物
《诚实与信任》教学反思
2014/04/10 职场文书
解除劳动关系协议书范文
2014/09/11 职场文书
2014年四风问题个人对照自查剖析材料
2014/09/15 职场文书
家长高考寄语
2015/02/27 职场文书
工程资料员岗位职责
2015/04/13 职场文书
教您:房贷工资收入证明应该怎么写?
2019/08/19 职场文书
导游词之云南丽江古城
2019/09/17 职场文书
Go语言的协程上下文的几个方法和用法
2022/04/11 Golang