站長資訊網
最全最豐富的資訊網站

一文帶你了解PHP中的文件與目錄操作

PHP怎么進行文件與目錄操作?下面本篇文章帶大家深入了解HP文件與目錄操作,希望對大家有所幫助!

一文帶你了解PHP中的文件與目錄操作

路徑與磁盤操作


相對路徑和絕對路徑

絕對路徑:以當前文件所在盤符為起點的路徑

舉個例子:
例如圖片1.png
一文帶你了解PHP中的文件與目錄操作
這個圖片的絕對路徑就是

D:谷歌1231.png

我們來分開講解一下這一串路徑代表的內容

  • D:(指的是盤符
  • (帶表的是目錄分隔符
  • 提示:(windows操作系統支持正斜線和反斜線,其它系統支持正斜線/,所以正斜線可以減少兼容性問題)

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

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

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

一文帶你了解PHP中的文件與目錄操作

一文帶你了解PHP中的文件與目錄操作

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

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

    解釋一下吧

  • 1.txt作為同級目錄下的文件,所以前面只需要1個點,這一個點就代表當前目錄
  • 2.txt作為下層目錄,1.png就是2.txt的上層目錄,這里兩個點就代表上層目錄
  • 相信大家已經了解了相對路徑和絕對路徑

文件路徑信息獲取


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

路徑:
/love/xianyu.txt

  • 目錄名(dirname)為/love
  • 帶有文件拓展名(basename)為 xianyu.txt
  • 拓展名(extension)為.txt
  • 文件名(filename)為 xianyu

下面進入正文

pathinfo()

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

<?php $xianyu = "/love/xianyu.php"; $result = pathinfo($xianyu); foreach($result as $key=>$value){     echo "$key=>$valuen"; } ?> /* 輸出: dirname=>/love basename=>xianyu.php extension=>php filename=>xianyu */
登錄后復制

文件名快速獲取:basename()

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

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

路徑中目錄部分快速獲取:dirname()

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

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

目錄操作


打開和關閉目錄

句柄:

  • opendir() , closedir()

句柄可以被認為是一個返回值,有了句柄就可以對打開的目錄進行操作

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

打開images目錄

一文帶你了解PHP中的文件與目錄操作
一文帶你了解PHP中的文件與目錄操作

  • 釋放句柄

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

創建目錄

<?php mkdir("123") ?>
登錄后復制

刪除目錄

<?php rmdir("123") ?>
登錄后復制

獲取當前工作目錄

<?php echo getcwd() ?>
登錄后復制

改變當前工作目錄

<?php echo getcwd() . '<br>'; // 顯示當前目錄 chdir('hhh'); //改變當前目錄 echo getcwd() . '<br>'; // 顯示當前目錄 ?>
登錄后復制

獲取目錄句柄條目

  • readdir()

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

注意:調用一次返回一個!!

<?php if ($handle = opendir('.')) { while (false !== ($file = readdir($handle))) { echo "$filen"; } closedir($handle); } ?>
登錄后復制

一文帶你了解PHP中的文件與目錄操作

讀取目錄條目

  • scandir()

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

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

一文帶你了解PHP中的文件與目錄操作

一文帶你了解PHP中的文件與目錄操作

文件操作


操作文件的一般步驟即:打開,讀取或寫入,關閉

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

一般操作

判斷文件是否存在

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

創建,打開,關閉文件

  • fopen(), fclose()

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

讀取文件

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

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

寫入文件

  • fwrite(), file_put_contents()

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

文件和目錄基本操作

刪除文件

  • unlink()

<?php $file = "temp.txt"; unlink($file); ?>
登錄后復制

復制文件

  • copy()

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

移動,重命名文件或目錄

  • rename()

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

推薦學習:《PHP視頻教程》

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
99视频精品全部免费观看| 亚洲精品无码不卡在线播HE | 岛国精品在线观看| 国内精品综合久久久40p| 国产精品福利午夜在线观看| 久久精品国产福利电影网| 亚洲国产日韩女人aaaaaa毛片在线| 99精品在线观看视频| 中文成人无字幕乱码精品区 | 久久99久久精品视频| 亚洲欧美国产日韩av野草社区| 国产精品理论电影| 国精品午夜福利视频不卡757 | 在线精品免费视频无码的 | 青青精品视频国产| 精品无码国产污污污免费网站国产| 午夜精品久久久久久久99蜜桃| 精品国产自在在线在线观看| 亚洲日韩精品无码AV海量| 国产伦精品一区二区三区四区 | 久久99久久99精品免视看动漫| 亚洲国产精品成人久久蜜臀| 在线视频这里只有精品| 欧美人妻少妇精品久久黑人| 久久精品免视看国产成人| 国产亚洲精品国产| 亚洲欧洲日韩国产一区二区三区| 日韩福利视频导航| 精品成人乱色一区二区| 久久精品国产精品青草| 亚洲精品蜜桃久久久久久| 国产综合色在线精品| 国产原创精品视频| 亚洲国产精品无码久久SM | 国内精品一级毛片免费看| 田中瞳中文字幕久久精品| 免费精品久久天干天干| 久久99热国产这有精品| 久久精品国产9久久综合| 亚洲AV无码成人网站久久精品大| 久热精品人妻视频|