利用rmdir()函數(shù)實現(xiàn)PHP遞歸刪除目錄
我們大家都知道PHP 是一個小開放源碼的一門技術(shù),隨著越來越多的人意識到它的實用性從而逐漸發(fā)展起來。Rasmus Lerdorf 在 1994 年發(fā)布了 PHP 的第一個版本。從那時起它就飛速發(fā)展,并在原始發(fā)行版上經(jīng)過無數(shù)的改進和完善現(xiàn)在已經(jīng)發(fā)展到版本 4.0.3 。
#T#PHP 是一種嵌入在 HTML 并由服務(wù)器解釋的腳本語言。它可以用于管理動態(tài)內(nèi)容、支持數(shù)據(jù)庫、處理會話跟蹤,甚至構(gòu)建整個電子商務(wù)站點。它支持許多流行的數(shù)據(jù)庫,包括 MySQL、PostgreSQL、Oracle、Sybase、Informix 和 Microsoft SQL Server。動態(tài)內(nèi)容為什 么這么熱門?假設(shè)您正在管理有 10 個產(chǎn)品的電子商務(wù)站點。只要產(chǎn)品不是經(jīng)常變動或者預(yù)料到它不會有太大的變動,那么手工編寫 10 個帶有必要的信息、表單和諸如此類內(nèi)容的靜態(tài)產(chǎn)品頁面是不困難的。但是,假設(shè)您在本月再要添加 10 個或更多產(chǎn)品,然后在下個月要更多,而且價格有時會變動或者想改變站點的觀感。那么您就會陷入用手工重新編寫數(shù)十個,也許上百個靜態(tài)頁面的困境中。
另一方面,假設(shè)您從創(chuàng)建 product.php 頁面開始。它沒有靜態(tài)信息,而是編碼成可以從產(chǎn)品數(shù)據(jù)庫中提取信息并動態(tài)地構(gòu)建一個頁面。然后您就擁有了一個元數(shù)據(jù)頁面,它可以根據(jù)存儲在數(shù)據(jù)庫中的信息 提供一個、一百個、甚至十萬個單獨頁面。現(xiàn)在網(wǎng)站管理員不再整天都簡單重復(fù)更新靜態(tài)頁面的工作,因為在更新公司數(shù)據(jù)庫中的信息同時就可以更新頁面上的信 息。這樣就消除了令人頭疼的時間延遲(在數(shù)據(jù)庫中更改信息和在網(wǎng)站上顯示信息之間的時間間隔)。下面我們來看一個php遞歸刪除目錄的例子,希望對大家有幫助。
rmdir()函數(shù)就可以搞定,但是要刪除一個非空目錄,將不能進行快速的刪除,必須先將目錄中文件刪除,但是目錄里可能還會有子目錄所以要進行PHP遞歸刪除目錄:
PHP遞歸刪除目錄代碼:
- <?php
- functiondeletedir($dir){
- if(!handle=@opendir($dir)){//檢測要打開目錄是否存在
- die("沒有該目錄");
- }
- while(false!==($file=readdir($handle))){
- if($file!=="."&&$file!==".."){//排除當(dāng)前目錄與父級目錄
- $file=$dir.DIRECTORY_SEPARATOR.$file;
- if(is_dir($file)){
- deletedir($file);
- }else{
- if(@unlink($file)){
- echo"文件<b>$file</b>刪除成功。<br>";
- }else{
- echo"文件<b>$file</b>刪除失敗!<br>";
- }
- }
- }
- if(@rmdir($dir)){
- echo"目錄<b>$dir</b>刪除成功了。<br>\n";
- }else{
- echo"目錄<b>$dir</b>刪除失敗!<br>\n";
- }
- }
- //測試程序
- $dir="/var/www/test";
- deletedir($dir);
- ?>
- 在/var/www/test文件夾下建一寫文件夾和文件測試
- shell>touchaaa
- shell>touchbbb
- shell>touchccc
- shell>toucheee
- shell>touchffff
- shell>mkdir111
- shell>mkdir222
- shell>mkdir333
- 分別再在111,222,333文件夾下建寫文件這里就不多說了,然后給他們權(quán)限
- shell>chown[url]www.www[/url]test-R