谈谈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 相关文章推荐
幻宇的层模拟窗口效果-提供演示和下载
Jan 20 Javascript
被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
Jan 22 Javascript
JavaScript setTimeout和setInterval的使用方法 说明
Mar 25 Javascript
Jquery AJAX 用于计算点击率(统计)
Jun 30 Javascript
JS实现QQ图片一闪一闪的效果小例子
Jul 31 Javascript
JS实现图片翻书效果示例代码
Sep 09 Javascript
使用AngularJS和PHP的Laravel实现单页评论的方法
Jun 19 Javascript
百度地图api如何使用
Aug 03 Javascript
基于Vue2的移动端开发环境搭建详解
Nov 03 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
Dec 06 Javascript
axios全局注册,设置token,以及全局设置url请求网段的方法
Sep 25 Javascript
JavaScript代码简化技巧实例解析
Sep 09 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自定义函数实现代码
2011/12/30 PHP
ajax在joomla中的原生态应用代码
2012/07/19 PHP
基于Zend的Captcha机制的应用
2013/05/02 PHP
php防止CC攻击代码 php防止网页频繁刷新
2015/12/21 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
2016/03/05 PHP
PHP简单获取多个checkbox值的方法
2016/06/13 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
PHP连接MySQL数据库并以json格式输出
2018/05/21 PHP
js实现的切换面板实例代码
2013/06/17 Javascript
node.js中的http.response.removeHeader方法使用说明
2014/12/14 Javascript
js贪吃蛇游戏实现思路和源码
2016/04/14 Javascript
jQuery+CSS3+Html5实现弹出层效果实例代码(附源码下载)
2016/05/16 Javascript
浅谈javascript运算符——条件,逗号,赋值,()和void运算符
2016/07/15 Javascript
jQuery如何封装输入框插件
2016/08/19 Javascript
JavaScript数组去重由慢到快由繁到简(优化篇)
2016/08/26 Javascript
JS简单实现禁止访问某个页面的方法
2016/09/13 Javascript
javascript self对象使用详解
2016/10/18 Javascript
Ionic2开发环境搭建教程
2020/08/20 Javascript
JavaScript面试出现频繁的一些易错点整理
2018/03/29 Javascript
elementUI select组件使用及注意事项详解
2019/05/29 Javascript
[02:43]DOTA2亚洲邀请赛场馆攻略——带你走进东方体育中心
2018/03/19 DOTA
python paramiko实现ssh远程访问的方法
2013/12/03 Python
Python将一个Excel拆分为多个Excel
2018/11/07 Python
python 将大文件切分为多个小文件的实例
2019/01/14 Python
详解python解压压缩包的五种方法
2019/07/05 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
2019/08/14 Python
python调用接口的4种方式代码实例
2019/11/19 Python
关于Python 常用获取元素 Driver 总结
2019/11/24 Python
基于python模拟TCP3次握手连接及发送数据
2020/11/06 Python
css3实现背景动态渐变效果
2019/12/10 HTML / CSS
"火柴棍式"程序员面试题
2014/03/16 面试题
项目开发计划书
2014/01/09 职场文书
“四风”查摆问题自我剖析材料
2014/09/27 职场文书
小学中队活动总结
2015/05/11 职场文书
离开雷锋的日子观后感
2015/06/09 职场文书
招商银行收入证明
2015/06/17 职场文书