PHP获取绝对路径dirname(__FILE__)和__DIR__比较
我们都知道,要获取当前PHP脚本所在目录的绝对路径,dirname(__FILE__) 和 __DIR__都可以实现。那么什么情况下用 dirname(__FILE__),什么情况下用 __DIR__ 呢?它们之间有什么区别?
功能和效率
dirname(__FILE__)由两部分组成, __FILE__ 魔术变量和 dirname() 函数。__FILE__是当前脚本的绝对路径,通过 dirname() 函数后,就可以获得脚本所在目录的绝对路径。
举个栗子,有个 hello.php 文件,其部署在服务器的目录是:/home/www/website/hello.php
那么,
- __FILE__ 的值就是:/home/www/website/hello.php
- dirname(__FILE__) 返回就是:/home/www/website/
如果我们在 hello.php 用 __DIR__全局变量,就可以直接获得所在目录的绝对路径:/home/www/website/,和 dirname(__FILE__) 效果完全一样。
在实现同样功能的情况下,dirname(__FILE__)多了一层函数调用。所以, __DIR__ 比 dirname(__FILE__) 在效率上有优势。
PHP版本支持
__FILE__ 和 dirname() 函数从 PHP 4.0.2 就开始启用。
__DIR__ 变量则是 PHP5.3.0 新增的。
所以,如果你的PHP版本大于等于PHP5.3.0,建议使用 __DIR__。否则,最好还是用 dirname(__FILE__),以确保程序不会出错。
PHP获取绝对路径dirname(__FILE__)和__DIR__比较的更多相关文章
- dirname(__FILE__)与__DIR__全等
小例子如下: <?php$the_full_name = __FILE__;$the_file = dirname(__FILE__);echo $the_full_name.'<br/& ...
- 路径 dirname(__FILE__)
require(dirname(__FILE__).'/include/init.php');
- php include 绝对路径 dirname(__FILE__)
include(dirname(__FILE__)."/PHPMailer/function.php");
- PHP常用获取文件路径的函数集合整理
转自: http://blog.sina.com.cn/s/blog_71ed1b870102vslg.html 我们在开发PHP项目过程中,经常会用到包含文件,所以有时候需要获取文件的相对路径或者绝 ...
- dirname(__FILE__)
dirname() 函数返回路径中的目录部分. __FILE__ :被称为PHP魔术常量,返回当前执行PHP脚本的完整路径和文件名,包含一个绝对路径 dirname(__FILE__) 函数返回的是脚 ...
- php dirname(__FILE__) 获取当前文件的绝对路径 (转)
比如当前文件是放在(d:\www\)下,文件名是test.php. 测试的代码如下: 复制代码 代码如下: <?php echo __FILE__ ; // 取得当前文件的绝对地址,结果:D:\ ...
- php dirname(__FILE__) 获取当前文件的绝对路径
dirname(__FILE__) 取到的是当前文件的绝对路径,也就是说,比起相对路径,查找速度是最快的. 比如当前文件是放在(d:\www\)下,文件名是test.php. 测试的代码如下: &l ...
- PHP获取文件目录dirname(__FILE__),getcwd()
以discuz x2.5为例 D:/www/upload2.5/test.php D:/www/upload2.5/source/class/class_test.php test.php文件如下 & ...
- linux中PHP dirname(__FILE__)路径问题解决
近期在给wordpress开发模板功能时发现,直接使用include(“文件名”)的形式调用其他php代码片段时会出现路径错误.之前服务器环境一直都是iis,未曾出现过类似的BUG,但换成linux服 ...
随机推荐
- Covenant cc 用法
新出现的cc框架,之前看hack the box有人用过,不过还是用cs比较多, 这里把之前的笔记搬运过来 --- 设置covenant git clone --recurse-submodule ...
- CSPS模拟 100
我又挂分了T_T 这么吉利的数字..本来想考的好一点的 T1 没加当前弧优化(其实也不会),若志了 各种低错连篇而且没想到点不联通..没有奇度点就直接从1开始搜了 于是喜提70(犯了这两个若志错误应该 ...
- Apache+Tomcat负载均衡
参考:http://www.cnblogs.com/fly_binbin/p/3881207.html 反向代理负载均衡 (Apache2+Tomcat7/8) 使用代理服务器可以将请求转发给内部的 ...
- T1
老师的作业提示里说有难题,也有水题,果真很水... 单纯的模拟加暴力 #include<iostream> using namespace std; int n; ; int cow[ma ...
- SSM学习成果总结,图书管理系统进行三层整合
一:先看一下效果图 二:目录结构 三:pojo package com.zh.pojo; import lombok.AllArgsConstructor; import lombok.Data; ...
- 百度艾尼(ERNIE)常见问题汇总及解答
一.ERNIE安装配置类问题 Q1:最适合ERNIE2.0的PaddlePaddle版本是?A1:PaddlePaddle版本建议升级到1.5.0及以上版本. Q2:ERNIE可以在哪些系统上使用?A ...
- centos6的redis安装
1.到redis的官网下载redis压缩包 https://redis.io/ 2.利用命令 mkdir /usr/local/redis 新建redis文件夹 并将redis压缩包移动到新建的文件夹 ...
- FileStream相关知识分享
一.如何理解FIleStream 通过前3章的学些,相信大家对于Stream已经有一定的了解,但是又如何去理解FileStream呢?请看下图: 我们磁盘中的任何文件都是通过二进制数组组成,最为直观的 ...
- 201871010114-李岩松《面向对象程序设计(java)》第六、七周学习总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...
- Unity - Cinemachine实现相机抖动
普通相机抖动脚本较易实现,但在使用cinemachine相机下,其Transform组件不可被代码改变,那么Cinemachine的相机抖动如何实现呢?本文结合实际项目,对实现相机抖动的三大步骤进行系 ...