谈谈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 24 Javascript
简单实用的js调试logger组件实现代码
Nov 20 Javascript
用js提交表单解决一个页面有多个提交按钮的问题
Sep 01 Javascript
分享33个jQuery与CSS3实现的绚丽鼠标悬停效果
Dec 15 Javascript
JS实时弹出新消息提示框并有提示音响起的实现代码
Apr 20 Javascript
给easyui的datebox控件添加清空按钮的实现方法
Nov 09 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
Feb 27 Javascript
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
Mar 15 Javascript
解决vue v-for 遍历循环时key值报错的问题
Sep 06 Javascript
javascript匿名函数中的'return function()'作用
Oct 15 Javascript
vue使用swiper.js重叠轮播组建样式
Nov 14 Javascript
vue 中使用print.js导出pdf操作
Nov 13 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
discuz7 phpMysql操作类
2009/06/21 PHP
php字符编码转换之gb2312转为utf8
2013/10/28 PHP
php获取网页请求状态程序示例
2014/06/17 PHP
PHP关于htmlspecialchars、strip_tags、addslashes的解释
2014/07/04 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
2017/11/20 PHP
php和vue配合使用技巧和方法
2019/05/09 PHP
js loading加载效果实现代码
2009/11/24 Javascript
jQuery boxy弹出层插件中文演示及使用讲解
2011/02/24 Javascript
javascript获取下拉列表框当中的文本值示例代码
2013/07/31 Javascript
jqueyr判断checkbox组的选中(示例代码)
2013/11/08 Javascript
d3.js实现简单的网络拓扑图实例代码
2016/11/06 Javascript
基于jQuery实现表格的排序
2016/12/02 Javascript
flexslider.js实现移动端轮播
2017/02/05 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
2017/02/17 Javascript
yii form 表单提交之前JS在提交按钮的验证方法
2017/03/15 Javascript
基于ES6 Array.of的用法(实例讲解)
2017/09/05 Javascript
JavaScript实现左侧菜单效果
2017/12/14 Javascript
微信小程序之分享页面如何返回首页的示例
2018/03/28 Javascript
使用xampp将angular项目运行在web服务器的教程
2019/09/16 Javascript
[03:01]完美世界DOTA2联赛PWL S2 集锦第二期
2020/12/03 DOTA
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
python回调函数用法实例分析
2015/05/09 Python
python虚拟环境virtualenv的使用教程
2017/10/20 Python
在Pandas中给多层索引降级的方法
2018/11/16 Python
基于wxPython的GUI实现输入对话框(2)
2019/02/27 Python
伊利莎白雅顿官网:Elizabeth Arden
2016/10/10 全球购物
美国社交购物市场:MassGenie
2019/02/18 全球购物
澳大利亚最受欢迎的女士度假服装:Kabana Shop
2020/10/10 全球购物
旅游管理专业学生求职信
2013/09/28 职场文书
讲文明树新风公益广告宣传方案
2014/02/25 职场文书
写自荐信的注意事项
2014/03/09 职场文书
《开国大典》教学反思
2014/04/19 职场文书
幼儿园师德师风学习材料
2014/05/29 职场文书
自动在Windows中运行Python脚本并定时触发功能实现
2021/09/04 Python
mysql函数之截取字符串的实现
2022/08/14 MySQL