谈谈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 相关文章推荐
javascript中的107个基础知识收集整理 推荐
Mar 29 Javascript
简述JavaScript中正则表达式的使用方法
Jun 15 Javascript
jQuery图片渐变特效的简单实现
Jun 25 Javascript
canvas绘制万花筒效果(代码分享)
Jan 20 Javascript
简单的JS控制button颜色随点击更改的实现方法
Apr 17 Javascript
详解如何使用webpack打包Vue工程
May 27 Javascript
实现图片首尾平滑轮播(JS原生方法—节流)
Oct 17 Javascript
JS实现的判断方法、变量是否存在功能示例
Mar 28 Javascript
JS实现可视化文件上传
Sep 08 Javascript
Vue内部渲染视图的方法
Sep 02 Javascript
JavaScript canvas绘制折线图
Feb 18 Javascript
javascript 内存模型实例详解
Apr 18 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+DBM的同学录程序(5)
2006/10/09 PHP
可以把编码转换成 gb2312编码lib.UTF8toGB2312.js
2007/08/21 Javascript
js 对小数加法精度处理示例说明
2013/12/27 Javascript
用于deeplink的js方法(判断手机是否安装app)
2014/04/02 Javascript
JavaScript检查数字是否为整数或浮点数的方法
2015/06/09 Javascript
jquery采用oop模式class类的使用示例
2016/01/22 Javascript
js 获取元素所有兄弟节点的实现方法
2016/09/06 Javascript
jQuery展示表格点击变色、全选、删除
2017/01/05 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
ajax请求+vue.js渲染+页面加载的示例
2018/02/11 Javascript
vue2.0使用swiper组件实现轮播的示例代码
2018/03/03 Javascript
angular6.x中ngTemplateOutlet指令的使用示例
2018/08/09 Javascript
koa socket即时通讯的示例代码
2018/09/07 Javascript
在vue中更换字体,本地存储字体非引用在线字体库的方法
2018/09/28 Javascript
layUI实现三级导航菜单效果
2019/07/26 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
2020/03/31 Javascript
在Python的Django框架中加载模版的方法
2015/07/16 Python
Python正则表达式常用函数总结
2017/06/24 Python
python读取文件名称生成list的方法
2018/04/27 Python
Python实现简单层次聚类算法以及可视化
2019/03/18 Python
Python实现小黑屋游戏的完整实例
2021/01/06 Python
Django与AJAX实现网页动态数据显示的示例代码
2021/02/24 Python
css3与html5实现响应式导航菜单(导航栏)效果分享
2014/02/12 HTML / CSS
Perfume’s Club德国官网:在线购买香水
2019/04/08 全球购物
俄罗斯购买剧院和演唱会门票网站:Parter.ru
2019/11/09 全球购物
事业单位接收函
2014/01/10 职场文书
庆祝教师节活动方案
2014/01/31 职场文书
采购助理岗位职责
2014/02/16 职场文书
农业项目建议书
2014/08/25 职场文书
2014员工聘用协议书(最新版)
2014/11/24 职场文书
会计人员岗位职责
2015/02/03 职场文书
推销搭讪开场白
2015/05/28 职场文书
2019初中学生入团申请书
2019/06/27 职场文书
预备党员入党思想汇报(范文)
2019/08/14 职场文书
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
2021/05/18 Vue.js
Python如何识别银行卡卡号?
2021/06/10 Python