在上一篇文章《php文件操作之怎么快速知道文件的大小、類型和權(quán)限》中,我們介紹了文件大小、文件類型和文件/目錄權(quán)限的獲取方法,有需要的朋友可以學習了解一下~
本文的主要內(nèi)容是:返回當前文件所在的位置信息,即獲取并返回當前文件的絕對路徑。
那么文件的絕對路徑要怎么獲取呢?下面給大家介紹幾種常用方法。
1、使用realpath() 函數(shù)
我們知道執(zhí)行PHP腳本的名稱,將它賦值給$filename
,然后可以利用realpath($filename
)來獲取該文件的絕對路徑(包含文件名),了解$filename
所在的位置信息。
<?php $filename = "demo.php"; echo "{$filename} 文件所在位置: ".realpath($filename); ?>
輸出結(jié)果為:
可以看出,當然文件$filename
在c盤wamp目錄的子目錄www中。
realpath() 函數(shù)返回的絕對路徑是包含文件名的,如果不想要可以利用dirname()函數(shù)去掉
<?php $filename = "demo.php"; echo "{$filename} 文件所在位置: ".dirname(realpath($filename)); ?>
這是知道部分文件url,來獲取指定文件的絕對路徑;但在實際有時我們并不知道當前所在文件的部分url,這樣要如何獲取文件絕對路徑呢?我們可以利用魔術(shù)常量(__FILE__
、__DIR__
)或者預(yù)定義變量($_SERVER
)
2、使用魔術(shù)常量 __FILE__
直接使用 __FILE__
常量就可以獲取當前文件的絕對路徑(包含文件名)
<?php echo "當前文件所在位置: ".__FILE__; ?>
輸出結(jié)果為:
和上文一樣,如果不想要文件名可以利用dirname()函數(shù)去掉,即獲取當前文件所在的絕對目錄信息
<?php echo "當前文件所在位置: ".dirname(__FILE__); ?>
調(diào)用兩次dirname()函數(shù)還可以獲取當前文件的上一層目錄名
<?php header("content-type:text/html;charset=utf-8"); echo "當前文件所在位置: ".dirname(dirname(__FILE__)); ?>
輸出結(jié)果為:
當前文件所在位置: C:wamp
3、使用魔術(shù)常量 __DIR__
直接使用 __DIR__
常量就可獲取當前文件的絕對路徑,且是不包含文件名的,等價于 dirname(__FILE__)
。
<?php echo "當前文件所在位置: ".__DIR__; ?>
輸出結(jié)果為:
當前文件所在位置: C:wampwww
4、使用預(yù)定義變量 $_SERVER
$_SERVER
中包含服務(wù)器和執(zhí)行環(huán)境的信息,是一個包含了諸如頭信息(header)、路徑(path)、以及腳本位置(script locations)等等信息的數(shù)組。這個數(shù)組中的所有項目由 Web 服務(wù)器創(chuàng)建。
我們可以直接使用 $_SERVER['SCRIPT_FILENAME']
來獲取當前執(zhí)行腳本的絕對路徑
<?php echo "當前文件所在位置: ".$_SERVER['SCRIPT_FILENAME']; ?>
輸出結(jié)果為:
當前文件所在位置: C:/wamp/www/demo.php
PHP中文網(wǎng)平臺有非常多的視頻教學資源,歡迎大家學習《PHP視頻教程》!