谈谈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 文件大小判断的实现代码
Apr 07 Javascript
jQuery技巧总结
Jan 01 Javascript
JQuery触发radio或checkbox的change事件
Dec 18 Javascript
关于IE中getElementsByClassName不能用的问题解决方法
Aug 26 Javascript
JS实现自定义简单网页软键盘效果代码
Nov 05 Javascript
深入分析jQuery的ready函数是如何工作的(工作原理)
Dec 17 Javascript
JS使用eval()动态创建变量的方法
Jun 03 Javascript
微信小程序 网络API Websocket详解
Nov 09 Javascript
获取JavaScript异步函数的返回值
Dec 21 Javascript
微信小程序 122100版本更新问题解决方案
Dec 22 Javascript
微信小程序动态的加载数据实例代码
Apr 14 Javascript
Javascript中绑定click事件的四种方式介绍
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 中的一些经验积累
2006/10/09 PHP
PHP学习之PHP运算符
2006/10/09 PHP
一个简单的PHP投票程序源码
2007/03/11 PHP
fleaphp下不确定的多条件查询的巧妙解决方法
2008/09/11 PHP
elgg 获取文件图标地址的方法
2010/03/20 PHP
php限制ip地址范围的方法
2015/03/31 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
2016/06/21 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
PHP连接MySQL数据库操作代码实例解析
2020/07/11 PHP
javascript拓展DOM操作 prependChild insertAfert
2010/11/17 Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
2013/07/25 Javascript
jquery中checkbox全选失效的解决方法
2014/12/26 Javascript
JS实现定时自动关闭DIV层提示框的方法
2015/05/11 Javascript
JavaScript中的数据类型转换方法小结
2015/10/26 Javascript
jquery实现九宫格大转盘抽奖
2015/11/13 Javascript
Bootstrap轮播加上css3动画,炫酷到底!
2015/12/22 Javascript
js图片上传前预览功能(兼容所有浏览器)
2016/08/24 Javascript
详解js中call与apply关键字的作用
2016/11/21 Javascript
浅谈Vue Element中Select下拉框选取值的问题
2018/03/01 Javascript
Node.js 使用jade模板引擎的示例
2018/05/11 Javascript
详解vuex状态管理模式
2018/11/01 Javascript
element ui table(表格)实现点击一行展开功能
2018/12/04 Javascript
vue+element_ui上传文件,并传递额外参数操作
2020/12/05 Vue.js
python xml解析实例详解
2016/11/14 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
Python3.5实现的罗马数字转换成整数功能示例
2019/02/25 Python
pytorch 归一化与反归一化实例
2019/12/31 Python
使用Tensorboard工具查看Loss损失率
2020/02/15 Python
欧洲最大的球衣网上商店:Kitbag
2017/11/11 全球购物
LODI女鞋在线商店:阿利坎特的鞋类品牌
2019/02/15 全球购物
什么是表空间(tablespace)和系统表空间(System tablespace)
2013/02/25 面试题
大班幼儿评语大全
2014/04/30 职场文书
小学生学习雷锋倡议书
2014/05/15 职场文书
保研推荐信格式
2015/03/25 职场文书
生日宴会祝酒词
2015/08/10 职场文书
如何书写读后感?(附范文)
2019/07/26 职场文书