谈谈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的分号的使用
May 12 Javascript
利用Jquery队列实现根据输入数量显示的动画
Sep 01 Javascript
js原生跨域_用script标签的简单实现
Sep 24 Javascript
完全深入学习Bootstrap表单
Nov 28 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
Jun 15 Javascript
webpack引入eslint配置详解
Jan 22 Javascript
Vuex中mutations与actions的区别详解
Mar 01 Javascript
vue项目中公用footer组件底部位置的适配问题
May 10 Javascript
微信小程序实现自动定位功能
Oct 31 Javascript
vue-cli3项目展示本地Markdown文件的方法
Jun 07 Javascript
react koa rematch 如何打造一套服务端渲染架子
Jun 26 Javascript
JavaScript实现简单进度条效果
Mar 25 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初学者头疼问题总结
2006/07/08 PHP
一些php技巧与注意事项分析
2011/02/03 PHP
ThinkPHP框架任意代码执行漏洞的利用及其修复方法
2014/07/04 PHP
Laravel下生成验证码的类
2017/11/15 PHP
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
我遇到的参数传递中 双引号单引号嵌套问题
2010/02/11 Javascript
juqery 学习之三 选择器 简单 内容
2010/11/25 Javascript
JQuery.validationEngine表单验证插件(推荐)
2016/12/10 Javascript
jq给页面添加覆盖层遮罩的实例
2017/02/16 Javascript
vue父子组件的数据传递示例
2017/03/07 Javascript
微信小程序 五星评分的实现实例
2017/08/04 Javascript
Angular4开发解决跨域问题详解
2017/08/28 Javascript
JavaScript事件冒泡与事件捕获实例分析
2018/08/01 Javascript
如何使用electron-builder及electron-updater给项目配置自动更新
2018/12/24 Javascript
vue单页面在微信下只能分享落地页的解决方案
2019/04/15 Javascript
layer关闭当前窗口页面以及确认取消按钮的方法
2019/09/09 Javascript
微信小程序全局变量的设置、使用、修改过程解析
2019/09/24 Javascript
layui+jquery支持IE8的表格分页方法
2019/09/28 jQuery
javascript实现的图片预览和上传功能示例【兼容IE 9】
2020/05/01 Javascript
js简单实现自动生成表格功能示例
2020/06/02 Javascript
[01:01]2020完美高校联赛(秋)西安落幕
2021/03/11 DOTA
python实现DNS正向查询、反向查询的例子
2014/04/25 Python
python处理图片之PIL模块简单使用方法
2015/05/11 Python
Python减少循环层次和缩进的技巧分析
2016/03/15 Python
Python进程间通信Queue消息队列用法分析
2019/05/22 Python
python selenium实现发送带附件的邮件代码实例
2019/12/10 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
python如何调用php文件中的函数详解
2020/12/29 Python
CSS3的resize属性使用初探
2015/09/27 HTML / CSS
波兰汽车配件网上商店:iParts.pl
2020/09/08 全球购物
经典而简洁的婚礼主持词
2014/03/13 职场文书
挂牌仪式主持词
2014/03/20 职场文书
事业单位分类改革实施方案
2014/03/21 职场文书
商务宴请邀请函范文
2015/02/02 职场文书
2015年综治维稳工作总结
2015/04/07 职场文书
SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例
2021/07/07 SQL Server