溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP中的文件與目錄操作有哪些

發(fā)布時間:2022-12-27 10:40:57 來源:億速云 閱讀:160 作者:iii 欄目:編程語言

本文小編為大家詳細(xì)介紹“PHP中的文件與目錄操作有哪些”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“PHP中的文件與目錄操作有哪些”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

路徑與磁盤操作

相對路徑和絕對路徑

絕對路徑:以當(dāng)前文件所在盤符為起點的路徑

舉個例子:
例如圖片1.png
PHP中的文件與目錄操作有哪些
這個圖片的絕對路徑就是

D:\谷歌\123\1.png

我們來分開講解一下這一串路徑代表的內(nèi)容

  • D:(指的是盤符

  • \ (帶表的是目錄分隔符

  • 提示:(windows操作系統(tǒng)支持正斜線和反斜線,其它系統(tǒng)支持正斜線/,所以正斜線可以減少兼容性問題)

相對路徑:以操作的文件所在的目錄為起點的路徑

這是一個相對的概念,不同的參照物寫的所對應(yīng)的路徑也不相同

為什么這么說的
舉個例子吧:
假設(shè)我們以 1.png作為參照物

PHP中的文件與目錄操作有哪些

PHP中的文件與目錄操作有哪些

  • 1.txt

  • ./1.txt(1前面有個 點.)

  • 2.txt

  • ../2.txt(2前面兩個點)

    解釋一下吧

  • 1.txt作為同級目錄下的文件,所以前面只需要1個點,這一個點就代表當(dāng)前目錄

  • 2.txt作為下層目錄,1.png就是2.txt的上層目錄,這里兩個點就代表上層目錄

  • 相信大家已經(jīng)了解了相對路徑和絕對路徑

文件路徑信息獲取

在這之前我們需要先理解一些概念

路徑:
/love/xianyu.txt

  • 目錄名(dirname)為/love

  • 帶有文件拓展名(basename)為 xianyu.txt

  • 拓展名(extension)為.txt

  • 文件名(filename)為 xianyu

下面進(jìn)入正文

pathinfo()

為了獲取指定的路徑和文件名,可以使用pathinfo()函數(shù),這個函數(shù)會·返回一個關(guān)聯(lián)數(shù)組

<?php
$xianyu = "/love/xianyu.php";
$result = pathinfo($xianyu);
foreach($result as $key=>$value){
    echo "$key=>$value\n";
}
?>
/*
輸出:
dirname=>/love
basename=>xianyu.php
extension=>php
filename=>xianyu
*/

文件名快速獲?。?strong>basename()

basename()函數(shù),快速獲取指定文件文件名部分,不用從數(shù)組中讀取

<?php
$xianyu = "/love/xianyu.php";
echo $filepath."中的文件名是:".basename($xianyu);
?>
/*
中的文件名是:xianyu.php
*/

路徑中目錄部分快速獲?。篸irname()

使用 dirname() 函數(shù),可以快速獲取指定文件目錄部分

<?php
$filepath = "/love/xianyu.php";
echo $filepath."中的路徑部分是:". dirname($filepath);
?>
/*
/love/xianyu.php中的路徑部分是:/love
*/

目錄操作

打開和關(guān)閉目錄

句柄:

  • opendir() , closedir()

句柄可以被認(rèn)為是一個返回值,有了句柄就可以對打開的目錄進(jìn)行操作

<?php
$dir = "images";
if($dir_handle = opendir($dir))
{
echo "獲取目錄句柄成功!";
closedir($dir_handle); //記得釋放句柄
}
else
{
echo "打開目錄錯誤";
}
?>

打開images目錄

PHP中的文件與目錄操作有哪些
PHP中的文件與目錄操作有哪些

  • 釋放句柄

為什么要釋放句柄呢,如果不釋放句柄就好比你和一堆人用一個筆記本寫字,你拿走了不放回去別人就無法寫字 所以釋放句柄可以節(jié)省服務(wù)器資源

創(chuàng)建目錄

<?php
mkdir("123")
?>

刪除目錄

<?php
rmdir("123")
?>

獲取當(dāng)前工作目錄

<?php
echo getcwd()
?>

改變當(dāng)前工作目錄

<?php
echo getcwd() . '<br>'; // 顯示當(dāng)前目錄
chdir('hhh'); //改變當(dāng)前目錄
echo getcwd() . '<br>'; // 顯示當(dāng)前目錄
?>

獲取目錄句柄條目

  • readdir()

將一個參數(shù)名作為參數(shù)傳遞給函數(shù)readdir(),這個函數(shù)能返回目錄下所有子目錄和文件

注意:調(diào)用一次返回一個!!

<?php
if ($handle = opendir('.')) {
while (false !== ($file = readdir($handle))) {
echo "$file\n";
}
closedir($handle);
}
?>

PHP中的文件與目錄操作有哪些

讀取目錄條目

  • scandir()

直接返回指定目錄下文件和子目錄,并且按照要求排序(默認(rèn)字母升序)

<?php
$dir1 = scandir("D:\新建文件夾 (2)");
$dir2 = scandir("D:\新建文件夾 (2)",1);//降序排列
print_r($dir1);
print_r($dir2)
?>

PHP中的文件與目錄操作有哪些

PHP中的文件與目錄操作有哪些

文件操作

操作文件的一般步驟即:打開,讀取或?qū)懭耄P(guān)閉

由于目錄和文件本質(zhì)上都屬于文件,除了使用函數(shù)不同,很多操作都是相通的

一般操作

判斷文件是否存在

<?php
if(file_exists("test.txt"))
{
//如果文件存在就執(zhí)行操作
}
?>
//如果文件存在返回true,不存在返回false

創(chuàng)建,打開,關(guān)閉文件

  • fopen(), fclose()

<?php
//以只讀方式打開文件,將文件指針指向文件頭
$handle = fopen("test.txt", "r");
//以讀寫方式打開,將文件指針指向文件頭
$handle = fopen("test.txt", "r+");
//以寫入方式打開,將文件指針指向文件頭,并將文件大小截為0。如果文件不存在則嘗試創(chuàng)建。
$handle = fopen("test.txt", "w");
//以讀寫方式打開,將文件指針指向文件頭,并將文件大小截為0。如果文件不存在則嘗試創(chuàng)建。
$handle = fopen("test.txt", "w+");
//以寫入方式打開文件,將文件指針指向文件末尾。如果文件不存在則嘗試創(chuàng)建。
$handle = fopen("test.txt", "a");
//以讀寫方式打開文件,將文件指針指向文件末尾。如果文件不存在則嘗試創(chuàng)建。
$handle = fopen("test.txt", "a+");
fclose()
?>

讀取文件

  • fread(), file_get_contents(), file()

<?php
//需要使用fopen,fread,fclose來進(jìn)行文件的讀取操作
$filename = "test.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename)); //fread需要傳入兩個參數(shù),第一個參數(shù)為
文件句柄,第二個參數(shù)為最大讀取的字節(jié)數(shù)
fclose($handle);
//更加簡潔的方式
file_get_contents($filename)
?>

寫入文件

  • fwrite(), file_put_contents()

<?php
//需要fopen,fwrite,fclose來進(jìn)行文件的寫入操作
$handle = fopen("test.txt","w");
fwrite($handle,"添加文字到文件中");//fwrite接受兩個參數(shù)作為輸入,$handle為文件句柄,"添加文
字到文件中"為需要寫入的內(nèi)容
fclose($handle);
//更加簡潔的方式
file_put_contents("test.txt", "使用file_put_contents()函數(shù)寫入的內(nèi)容")
?>

文件和目錄基本操作

刪除文件

  • unlink()

<?php
$file = "temp.txt";
unlink($file);
?>

復(fù)制文件

  • copy()

<?php
$sourceFile = "html/cache.txt"; //被復(fù)制的文件必須確保存在
$targetFile = "html/copyCache.txt";
copy($sourceFile, $targetFile)
?>

移動,重命名文件或目錄

  • rename()

<?php
//使用rename()函數(shù)重命名一個文件或目錄
rename('test.txt', 'rename.txt') //將test.txt文件重命名為rename.txt
rename('test','rename') //將test目錄重命名為rename
//使用rename()函數(shù)移動文件,并改名
rename("test.txt","test/a.txt");//將test.txt移動到test文件夾下,并改名為a.txt
//使用rename()函數(shù)移動目錄到目標(biāo)目錄
rename("test","html/test");
?>

讀到這里,這篇“PHP中的文件與目錄操作有哪些”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI