目錄與檔案的基本操作一 (44)
解析目錄路徑
使用PHP腳本可以方便對目錄進行操作,例如建立目錄、遍歷目錄、複值目錄與刪除目錄等操作。
??常用的檔案目錄路徑格式:
??$unixPath="/var/www/html/index.php";
//在UNIX系統中的絕對路徑,必須使用"/"分隔
??$ winPath="C:\Appserv\www\index.php";
//在Windows系統的絕對路徑,預設使用""分隔
??$winPath2="C:/Appserv/www/index.php";
//在Windows系統中也可使用「/」分隔。
??注意使用絕對路徑與相對路徑。
PHP檔案路徑相關函數
??basename--返迴路徑中的檔案名稱部分
??語法:string basename( string path [, string suffix] )
??給出一個包含有指向一個檔案的全路徑的字串,本函數傳回基本的檔名。如果檔名是以suffix結束的,那麼這部分也會被去掉。
??dirname--返迴路徑中的目錄部分
??語法:string dirname( string path )
??給出一個包含有指向一個檔案的全路徑的字串,本函數傳回去掉檔名後的目錄名。
$path= "/home/httpd/html/index.php";
$file= basename($path);// $file值:"index.php"
$file= basename($path , ".php"); // $file值:"index "
$file= dirname($path); // $file值:"/home/httpd/html"
?>
pathinfo--回傳文件路徑的資訊
??語法:array pathinfo( string path [, intoptions] )
??pathinfo() 傳回一個聯合陣列包含有path的資訊。包括以下的陣列單元:dirname,basename和extension。
$path_parts= pathinfo("/www/htdocs/index.html");
echo $path_parts["dirname"] . "n"; // /www/htdocs
echo ] . "n"; // index.html
echo $path_parts["extension"] . "n"; // html
?>
??realpath--傳回規範化的絕對路徑名稱
??語法:string realpathpath ( string path )
??realpath() 擴展所有的符號連接並且處理輸入的path中的'/./', '/../' 以及多餘的'/' 並傳回規範化後的絕對路徑名。在返回的路徑中沒有符號連接,'/./' 或'/../' 成分。
遍歷目錄
opendir--開啟目錄句柄
??語法:resource opendir( string path [, resource context] )
??開啟目錄句柄,可用於之後的closedir(),readdir(??開啟目錄句柄,可用於之後的closedir(),readdir(??開啟一個目錄句柄,可用於之後的closedir(),readdir(??開啟目錄句柄,可用於之後的closedir(),readdir(??開啟目錄句柄,可用於之後的closedir(),readdir(??開啟目錄句柄,可用於之後的closedir(),readdir(??開啟目錄句柄,可用於之後的closedir(),readdir(??開啟目錄句柄,可用於之後的closedir(),readdir()和rewinddir() )調用中。
??readdir--從目錄句柄中讀取條目
??語法:string readdir( resource dir_handle)
??傳回目前目錄指標位置的檔案名,沒有回傳false,並將指標向下移動一位。檔案名稱以在檔案系統中的排序傳回。
??closedir--關閉目錄句柄
??語法:void closedir( resource dir_handle)
??關閉dir_handle指定的目錄流。流必須之前被opendir()所打開。
??rewinddir--倒回目錄句柄
??語法:void rewinddir( resource dir_handle)
??將dir_handle指定的目錄流重置到目錄的開頭。
統計目錄大小
??disk_free_space--返回目錄中的可用空間
??語法:float disk_free_space( string directory )
??給出一個包含有一個目錄的字串,本函數將根據對應的文件系統或磁碟分割區傳回可用的位元組數。
??disk_total_space--傳回一個目錄的磁碟總大小
??語法:float disk_total_space( string directory )
??給出一個包含有一個目錄的字串,本函數將根據對應的檔案系統或磁碟分割區傳回所有的位元組數。
範例
<?php<span>//</span><span>自定义一个函数dirSize(),统计传入参数的目录大小</span><span>function dirSize($directory) { $dir_size</span>=<span>0</span>;<span>//</span><span>初值为0,用来累加各文件大小从而计算目录大小</span><span>if</span>($dir_handle=@opendir($directory)){ <span>//</span><span>打开目录并判断成功打开</span><span>while</span>($filename=readdir($dir_handle)) { <span>//</span><span>循环遍历目录</span><span>if</span>($filename!=<span>"</span><span>.</span><span>"</span> && $filename!=<span>"</span><span>..</span><span>"</span>) { <span>//</span><span>排除特殊的目录</span>$subFile=$directory.<span>"</span><span>/</span><span>"</span>.$filename; <span>//</span><span>将文件和目录相连</span><span>if</span>(is_dir($subFile)) <span>//</span><span>如果为目录</span>$dir_size+=dirSize($subFile); <span>//</span><span>求子目录的大小</span><span>if</span>(is_file($subFile)) <span>//</span><span>如果是文件</span>$dir_size+=filesize($subFile); <span>//</span><span>求出文件的大小并累加</span><span>} } closedir($dir_handle); </span><span>//</span><span>关闭文件资源</span><span>return</span> $dir_size; <span>//</span><span>返回计算后的目录大小</span><span>} } $dir_size</span>=dirSize(<span>"</span><span>phpMyAdmin</span><span>"</span>); <span>//</span><span>调函数计算目录大小,返回目录大小</span>echo round($dir_size/pow(<span>1024</span>,<span>1</span>),<span>2</span>).<span>"</span><span>KB</span><span>"</span>;<span>//</span><span>将目录字节换为“KB”单位</span>?>
建立與刪除目錄
mkdir--新目錄
??語法:boolmkdir(string pathname [,intmode])
??嘗試新建一個由pathname指定的目錄。
??rmdir--刪除目錄
??語法:boolrmdir( string dirname)
??嘗試刪除dirname所指定的目錄。該目錄必須是空的,而且要有對應的權限。如果成功則回傳TRUE,失敗則回傳FALSE。
??unlink--刪除檔案
??語法:boolunlink ( string filename )
??刪除filename。和Unix C 的unlink() 函數相似。如果成功則回傳TRUE,失敗則回傳FALSE
<?php<span>//</span><span>自定义函数递归的删除整个目录</span><span>function delDir($directory) { </span><span>if</span>(file_exists($directory)) { <span>//</span><span>判断目录是否存在,如果存在则执行</span><span>if</span>($dir_handle=@opendir($directory)){ <span>//</span><span>打开返回目录资源,并判断</span><span>while</span>($filename=readdir($dir_handle)){ <span>//</span><span>遍历目录读出目录中信息</span><span>if</span>($filename!=<span>"</span><span>.</span><span>"</span> && $filename!=<span>"</span><span>..</span><span>"</span>) { <span>//</span><span>一定要排除两个特殊目录</span>$subFile=$directory.<span>"</span><span>/</span><span>"</span>.$filename;<span>//</span><span>将目录下文件和当前目录相连</span><span>if</span>(is_dir($subFile)) <span>//</span><span>如果是目录条件则成立</span>delDir($subFile); <span>//</span><span>递归调用自己删除子目录</span><span>if</span>(is_file($subFile)) <span>//</span><span>如果是文件条件则成立</span>unlink($subFile); <span>//</span><span>直接删除这个文件</span><span>} } closedir($dir_handle); </span><span>//</span><span>关闭目录资源</span>rmdir($directory); <span>//</span><span>删除空目录</span><span>} } } delDir(</span><span>"</span><span>phpMyAdmin</span><span>"</span>); <span>//</span><span>调用函数,将程序所在目录中phpMyAdmin文件夹删除</span>?>
複製與移動目錄
copy--拷貝檔案
??語法:boolcopy ( string source, string dest)
??將檔案從source拷貝到將檔案從source。如果成功則回傳TRUE,失敗則回傳FALSE。
??PHP中沒有提供複製與行動目錄的相關函數。如需要,只要自訂函數了。
檔案的基本操作
檔案的開啟與關閉
fopen--打开文件或者URL
??语法:resource fopen( string filename, string mode [, booluse_include_path[, resource zcontext]] )
??fopen() 将filename指定的名字资源绑定到一个流上。如果filename是"scheme://..." 的格式,则被当成一个URL,PHP 将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP 将发出一条消息来帮助检查脚本中潜在的问题并将filename当成一个普通的文件名继续执行下去。
??mode参数指定了所要求到该流的访问类型。
??如果也需要在include_path中搜寻文件的话,可以将可选的第三个参数use_include_path设为'1' 或TRUE。
??如果打开失败,本函数返回FALSE。
fclose--关闭一个已打开的文件指针
写入文件
fwrite--写入文件(可安全用于二进制文件)
??语法:intfwrite( resource handle, string string[, intlength] )
??fwrite() 把string的内容写入文件指针handle处。如果指定了length,当写入了length个字节或者写完了string以后,写入就会停止,视乎先碰到哪种情况。返回写入的字符数,出现错误时则返回FALSE
读取文件内容
??fread--读取文件(可安全用于二进制文件)
??string fread( inthandle, intlength )
??fread() 从文件指针handle读取最多length个字节。该函数在读取完length个字节数,或到达EOF 的时候,或(对于网络流)当一个包可用时就会停止读取文件,视乎先碰到哪种情况。
<?<span>php $handle </span>= fopen(<span>"</span><span>http://www.example.com/</span><span>"</span>, <span>"</span><span>rb</span><span>"</span><span>); $contents </span>= <span>""</span><span>; </span><span>while</span> (!<span>feof($handle)) { $contents .</span>= fread($handle, <span>8192</span><span>); } fclose($handle); </span>?>
fgets--从文件指针中读取一行
??语法:string fgets( inthandle [,intlength])
??从handle指向的文件中读取一行并返回长度最多为length-1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了length -1 字节后停止(看先碰到那一种情况)。如果没有指定length,则默认为1K,或者说1024 字节。
??fgetc--从文件指针中读取字符
??语法:string fgetc( resource handle )
??返回一个包含有一个字符的字符串,该字符从handle指向的文件中得到。碰到EOF 则返回FALSE。
file--把整个文件读入一个数组中
??语法:array file ( string filename [, intuse_include_path[, resource context]] )
??和readfile()一样,只除了file() 将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行,包括换行符在内。如果失败file() 返回FALSE。
??readfile--输出一个文件
??语法:intreadfile( string filename [, booluse_include_path[, resource context]] )
??读入一个文件并写入到输出缓冲。
??返回从文件中读入的字节数。如果出错返回FALSE 并且除非是以@readfile() 形式调用,否则会显示错误信息。
以上就介绍了目录与文件的基本操作一 (44),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

使用Java的String.valueOf()函數將基本資料型別轉換為字串在Java開發中,當我們需要將基本資料型別轉換為字串時,常見的方法是使用String類別的valueOf()函數。這個函數可以接受基本資料類型的參數,並傳回對應的字串表示。在本文中,我們將探討如何使用String.valueOf()函數進行基本資料型別轉換,並提供一些程式碼範例來

char陣列轉string的方法:可以透過賦值來實現,使用{char a[]=" abc d\0efg ";string s=a;}語法,讓char陣列對string直接賦值,執行程式碼即可完成轉換。

Linux系統如何設定PATH環境變數在Linux系統中,PATH環境變數用來指定係統在命令列中搜尋執行檔的路徑。正確設定PATH環境變數可以方便我們在任何位置執行系統指令和自訂指令。本文將介紹如何在Linux系統中設定PATH環境變量,並提供詳細的程式碼範例。查看目前的PATH環境變數在終端機中執行以下指令,可以查看目前的PATH環境變數:echo$P

使用Java的String.replace()函數替換字串中的字元(字串)在Java中,字串是不可變的對象,這意味著一旦創建了一個字串對象,就無法修改它的值。但是,你可能會遇到需要替換字串中的某些字元或字串的情況。這時候,我們可以使用Java的String類別中的replace()方法來實作字串的替換。 String類別的replace()方法有兩種重

大家好,今天跟大家分享java基礎之String。 String類別的重要性就不必說了,可以說是我們後端開發用的最多的類,所以,很有必要好好聊聊它。

使用Java的String.length()函數取得字串的長度在Java程式設計中,字串是一種非常常見的資料類型,我們經常需要取得字串的長度,即字串中字元的個數。在Java中,我們可以使用String類別的length()函數來取得字串的長度。下面是一個簡單的範例程式碼:publicclassStringLengthExample{publ

在Golang程式設計中,byte、rune和string類型是非常基礎、常見的資料型別。它們在處理字串、檔案流等資料操作時發揮著重要作用。而在進行這些資料操作時,我們通常需要對它們進行相互的轉換,這就需要掌握一些轉換技巧。本文將介紹Golang函數的byte、rune和string類型轉換技巧,旨在幫助讀者更好地理解這些資料類型,並能夠熟練地在程式設計實踐中應用

設定path環境變數的方法:1、Windows系統,開啟“系統屬性”,點選“屬性”選項,點選“進階系統設定”,在“系統屬性”視窗中,選擇“進階”標籤,然後點選“環境變量」按鈕,找到並點擊「Path」編輯儲存後即可;2、Linux系統,打開終端,打開你的bash配置文件,在文件末尾添加「export PATH=$PATH:文件路徑」保存即可;3、 MacOS系統,操作同上。
