谈谈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 相关文章推荐
slice函数的用法 之不错的应用
Dec 29 Javascript
js内存泄露的几种情况详细探讨
May 31 Javascript
优化javascript的执行效率一些方法总结
Dec 25 Javascript
javascript如何实现暂停功能
Nov 06 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
Jan 18 Javascript
详解Javascript继承的实现
Mar 25 Javascript
使用jquery判断一个元素是否含有一个指定的类(class)实例
Feb 12 Javascript
Vue与Node.js通过socket.io通信的示例代码
Jul 25 Javascript
详解nuxt路由鉴权(express模板)
Nov 21 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
Dec 03 Javascript
Vue侦测相关api的实现方法
May 22 Javascript
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
Oct 16 jQuery
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 microtime获取浮点的时间戳
2010/02/21 PHP
PHP简洁函数(PHP简单明了函数语法)
2012/06/10 PHP
开启PHP的伪静态模式
2015/12/31 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
2017/08/10 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
2018/08/15 PHP
laravel实现前后台路由分离的方法
2019/10/13 PHP
javascript cookie解码函数(兼容ff)
2008/03/17 Javascript
基于jQuery的图片大小自动适应实现代码
2010/11/17 Javascript
一个JQuery写的点击上下滚动的小例子
2011/08/27 Javascript
Array.prototype.concat不是通用方法反驳[译]
2012/09/20 Javascript
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法
2015/04/25 Javascript
AngularJS 使用$sce控制代码安全检查
2016/01/05 Javascript
JS组件系列之Bootstrap Icon图标选择组件
2016/01/28 Javascript
js实现纯前端的图片预览
2016/04/27 Javascript
js 判断一组日期是否是连续的简单实例
2016/07/11 Javascript
纯jQuery实现前端分页功能
2017/03/23 jQuery
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
2017/09/13 Javascript
微信小程序开发实现的IP地址查询功能示例
2019/03/28 Javascript
Vue如何基于es6导入外部js文件
2020/05/15 Javascript
Python中删除文件的程序代码
2011/03/13 Python
django 自定义用户user模型的三种方法
2014/11/18 Python
Python基本语法经典教程
2016/03/11 Python
Python简单实现TCP包发送十六进制数据的方法
2016/04/16 Python
PyQt5每天必学之创建窗口居中效果
2018/04/19 Python
python:print格式化输出到文件的实例
2018/05/14 Python
python爬虫之线程池和进程池功能与用法详解
2018/08/02 Python
django项目搭建与Session使用详解
2018/10/10 Python
Python对象中__del__方法起作用的条件详解
2018/11/01 Python
python3.6根据m3u8下载mp4视频
2019/06/17 Python
Python实现发票自动校核微信机器人的方法
2020/05/22 Python
手工制作的豪华英式沙发和沙发床:Willow & Hall
2019/05/03 全球购物
为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限
2012/12/13 面试题
索引覆盖(Index Covering)查询含义
2012/02/18 面试题
六查六看剖析材料
2014/02/15 职场文书
2015出纳试用期工作总结
2014/12/12 职场文书
2014年个人年终总结
2015/03/09 职场文书