文件位置相关函数解析

这里我以TP5框架做举例测试输出,网站所在服务器绝对路径为:/var/www/TP5

然后网站的入口文件改在网站项目根目录下,也就是   TP5/index.php

然后输出语句在 TP5/application/index/controller/Index.php 控制器中的index方法中输出

(1)__DIR__       当前内容写在哪个文件就显示这个文件的绝对路径目录

如dump(__DIR__)     输出:/var/www/TP5/application/index/controller

(2)__FILE__    当前内容写在哪个文件就显示这个文件的绝对路径目录+文件名

如dump(__FILE__)     输出:/var/www/TP5/application/index/controller/Index.php

(3)getcwd() :显示是 在哪个文件里调用此文件 的绝对路径目录,返回当前工作目录。

如dump(getcwd())     输出: /var/www/TP5

(4)dirname() 函数返回路径中的目录部分,括号内需要写路径参数。

echo dirname("c:/testweb/home.php");     输出:c:/testweb

echo dirname("/testweb/home/ceshi/");    输出:/testweb/home

echo dirname("/testweb/home/ceshi");     输出:/testweb/home

 dirname(__DIR__)      因为上面看到__DIR__是/var/www/TP5/application/index/controller,所以输出:/var/www/TP5/application/index

dirname(__FILE__)和__DIR__比较:都是获取文件所在的绝对路径目录

__FILE__ 和 dirname() 函数从 PHP 4.0.2 就开始启用。

__DIR__ 变量则是 PHP5.3.0 新增的。

(5)$_SERVER['SCRIPT_FILENAME']  , 指向当前执行脚本的绝对路径;

有点类似 __FILE__ ,区别是 __FILE__是这句代码写在哪个文件就显示这个文件的绝对路径。

而$_SERVER['SCRIPT_FILENAME']是执行脚本的绝对路径。

举例:

a.php文件和common文件夹同级,假设都在根目录下。common文件夹下面有个b.php文件。

//a.php中代码

require 'common/b.php';
//b.php中代码
echo  $_SERVER['SCRIPT_FILENAME']; 
echo '<br />'; 
echo  __FILE__; 

执行a.php文件,输出结果是

/a.php

/common/b.php

(6)DIRECTORY_SEPARATOR,显示系统分隔符的命令。

在windows下路径分隔符是\,在linux上路径的分隔符是/,所以上面php常量可以解决系统不同的错误。

可以在文件路径后面拼接这个php常量就可以。

如定义某个路径:

define(‘ROOT’, __DIR__.'upload/');

为了不报错,可以这样写:

define(‘ROOT’, __DIR__.DIRECTORY_SEPARATOR.'upload/');

猜你喜欢

转载自blog.csdn.net/sz80443374/article/details/83315664