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

青灯夜游
發布: 2023-04-11 09:22:01
轉載
5885 人瀏覽過

PHP怎麼進行檔案與目錄作業?以下這篇文章帶大家深入了解HP文件與目錄操作,希望對大家有幫助!

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

路徑與磁碟操作



相對路徑與絕對路徑



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

以目前檔案所在盤符為起點的路徑舉例:

例如圖片1.png

這個圖片的絕對路徑就是
  • D:\Google\123\1.png
  • 我們來分開解一下這一串路徑所代表的內容
  • D:
  • (指的是盤符

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

提示:(windows作業系統支援正斜線和反斜線,其它系統支援正斜線/,所以正斜線可以減少相容性問題)

相對路徑:
以操作的檔案所在的目錄為起點的路徑
這是一個相對的概念,不同的參考物寫的所對應的路徑也不相同

一文帶你了解PHP中的檔案與目錄操作為什麼這麼說的

舉個例子吧:

一文帶你了解PHP中的檔案與目錄操作假設我們以

1.png
    為參考物
  • 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=>$value\n";
}
?>
/*
输出:
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中的檔案與目錄操作

<?php
$dir = "images";
if($dir_handle = opendir($dir))
{
echo "获取目录句柄成功!";
closedir($dir_handle); //记得释放句柄
}
else
{
echo "打开目录错误";
}
?>
登入後複製
一文帶你了解PHP中的檔案與目錄操作

開啟images目錄

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

创建目录

<?php
mkdir("123")
?>
登入後複製

删除目录

<?php
rmdir("123")
?>
登入後複製

获取当前工作目录

<?php
echo getcwd()
?>
登入後複製

改变当前工作目录

<?php
echo getcwd() . &#39;<br>&#39;; // 显示当前目录
chdir(&#39;hhh&#39;); //改变当前目录
echo getcwd() . &#39;<br>&#39;; // 显示当前目录
?>
登入後複製

获取目录句柄条目

  • readdir()

将一个参数名作为参数传递给函数readdir(),这个函数能返回目录下所有子目录和文件

注意:调用一次返回一个!!

<?php
if ($handle = opendir(&#39;.&#39;)) {
while (false !== ($file = readdir($handle))) {
echo "$file\n";
}
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(&#39;test.txt&#39;, &#39;rename.txt&#39;) //将test.txt文件重命名为rename.txt
rename(&#39;test&#39;,&#39;rename&#39;) //将test目录重命名为rename
//使用rename()函数移动文件,并改名
rename("test.txt","test/a.txt");//将test.txt移动到test文件夹下,并改名为a.txt
//使用rename()函数移动目录到目标目录
rename("test","html/test");
?>
登入後複製

推荐学习:《PHP视频教程

以上是一文帶你了解PHP中的檔案與目錄操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!