谈谈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类的封装及实现代码
Dec 02 Javascript
js 格式化时间日期函数小结
Mar 20 Javascript
javascript 学习笔记(八)javascript对象
Apr 12 Javascript
详解Vue.js——60分钟组件快速入门(上篇)
Dec 05 Javascript
jQuery实现获取h1-h6标题元素值的方法
Mar 06 Javascript
Bootstrap响应式表格详解
May 23 Javascript
详解AngularJS脏检查机制及$timeout的妙用
Jun 19 Javascript
Angular2 http jsonp的实例详解
Aug 31 Javascript
Express使用html模板的详细代码
Sep 18 Javascript
JS实现点星星消除小游戏
Mar 24 Javascript
微信小程序仿通讯录功能
Apr 09 Javascript
vue.js封装switch开关组件的操作
Oct 26 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 file_exists 检查文件或目录是否存在的函数
2010/05/10 PHP
php 删除记录同时删除图片文件的实现代码
2010/05/12 PHP
php preg_filter执行一个正则表达式搜索和替换
2012/02/27 PHP
解析php常用image图像函数集
2013/06/24 PHP
PHP魔术方法使用方法汇总
2016/02/14 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
利用javascript移动div层-javascript 拖动层
2009/03/22 Javascript
javascript写的日历类(基于pj)
2010/12/28 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
2015/06/04 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
Bootstrap表单Form全面解析
2016/06/13 Javascript
js精准的倒计时函数分享
2016/06/29 Javascript
从零学习node.js之详解异步控制工具async(八)
2017/02/27 Javascript
微信小程序中的swiper组件详解
2017/04/14 Javascript
javascript面向对象程序设计实践常用知识点总结
2019/07/29 Javascript
在Python中使用AOP实现Redis缓存示例
2017/07/11 Python
Django 2.0版本的新特性抢先看!
2018/01/05 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
2018/10/22 Python
python获取当前文件路径以及父文件路径的方法
2019/07/10 Python
python第三方库学习笔记
2020/02/07 Python
Python re正则表达式元字符分组()用法分享
2020/02/10 Python
python时间与Unix时间戳相互转换方法详解
2020/02/13 Python
python中字符串的编码与解码详析
2020/12/03 Python
经典c++面试题二
2015/08/14 面试题
学生励志演讲稿
2014/01/06 职场文书
医院实习接收函
2014/01/12 职场文书
战友聚会主持词
2014/04/02 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
学校中秋节活动总结
2015/03/23 职场文书
文明礼仪倡议书
2015/04/28 职场文书
详解CSS故障艺术
2021/05/25 HTML / CSS
教你怎么用PyCharm为同一服务器配置多个python解释器
2021/05/31 Python
python中 Flask Web 表单的使用方法
2022/05/20 Python
Zabbix对Kafka topic积压数据监控的问题(bug优化)
2022/07/07 Servers