|
有些空間并不提供文件的批量操作,可以自己些程序支持這些操作,下面是對(duì)文件夾進(jìn)行刪除操作的PHP代碼 <? $filename=$_GET['file']; $dir = $_GET['dir']; function delFile($filename) { if(is_file($filename)) { if(@unlink($filename)) { echo "文件刪除成功"; } else { echo "文件刪除失敗"; } } else { echo 'is not a file'; } } function delDir($dir) { if(is_file($dir)) { @unlink($dir); } else { $dirList = @opendir($dir); // readdir($dirList); // readdir($dirList); while ($file = (readdir($dirList))) { if($file != "." && $file != "..") { $file = $dir .DIRECTORY_SEPARATOR. $file; if(is_file($file)) { @unlink($file); } else { delDir($file); } } } } closedir($dirList); @rmdir($dir); ?> 最后調(diào)用時(shí),只用指定php.php?dir=DIRNAME,就可以完成操作了。以上代碼在已經(jīng)完成 所需的功能,但是并不友好,可以為其寫(xiě)一個(gè)簡(jiǎn)單頁(yè) 面。也可以加入一些統(tǒng)計(jì)信息,如刪除的文件夾總數(shù),刪除的文件總數(shù)和操作所花費(fèi)的時(shí)間等。 在這段程序的編寫(xiě)過(guò)程中出現(xiàn)了一個(gè)問(wèn)題,即出現(xiàn)過(guò)一些錯(cuò)誤: 1.@opendir,前面沒(méi)有加@,出現(xiàn)錯(cuò)誤 2.刪除之后,系統(tǒng)的文件夾都還在,原來(lái)是open之后,沒(méi)有正確地close掉,close的對(duì)象 應(yīng)該是opendir或者的句柄,在這里應(yīng)該是 closedir($dirList);,而不是$file PHP 讀文件內(nèi)容,此文件為txt,路徑$filePath為'list.txt', 即放在和 php文件同一個(gè)目錄, 注意: 本人的txt的內(nèi)容樣式如下: Email,FirstName,LastName... [email protected],neil,zhou... ... 具體實(shí)現(xiàn)根據(jù)自身情況修改。 $fp = fopen($filePath,"r "); $a = read_content_to_array($fp); // 取得文本文件中的內(nèi)容 fclose($fp); /** @desc read file content to array @params $fp: file resource @return array */ function read_content_to_array($fp){ $i=0; $a = array(); while (!feof ($fp)) { //while循環(huán),條件:沒(méi)到文件的末端。 $buffer = fgets($fp, MAX_BYTES_PER_ROW); //fgets() 函數(shù)用于從 文件中逐行讀取文件,,讀取的字節(jié)數(shù)。默認(rèn)是 1024 字節(jié)。MAX_BYTES_PER_ROW為自定義的一個(gè)常量,讀取的字節(jié)數(shù) $block=explode(STR_TD_DIVIDER,$buffer); //用分隔符對(duì)操作的一行($buffer)進(jìn)行分割,返回由字符串組成的數(shù)組。STR_TD_DIVIDER為自定義的一個(gè)常量,每行中各個(gè)字段之間的 分隔符。 $a[$i]=$block; $i=$i+1; //通過(guò)while循環(huán),帶動(dòng)i值遞增,實(shí)現(xiàn)數(shù)組構(gòu)建。 } return $a; } PHP 寫(xiě)內(nèi)容到txt文件中 $handle = fopen($filePath, "w "); fwrite($handle,$str); fclose($handle); 怎么樣,是不是看起來(lái)很簡(jiǎn)單呢?下面是一些簡(jiǎn)單知識(shí)的總結(jié): fopen() 函數(shù)用于在 PHP 中打開(kāi)文件,此函數(shù)的第一個(gè)參數(shù)含有要打開(kāi)的文件 的名稱(chēng),第二個(gè)參數(shù)規(guī)定了使用哪種模式來(lái)打開(kāi)文件. 模式 描述 r 只讀。在文件的開(kāi)頭開(kāi)始。 r+ 讀/寫(xiě)。在文件的開(kāi)頭開(kāi)始。 w 只寫(xiě)。打開(kāi)并清空文件的內(nèi)容;如果文件不存在,則創(chuàng)建新文件。 w+ 讀/寫(xiě)。打開(kāi)并清空文件的內(nèi)容;如果文件不存在,則創(chuàng)建新文件。 a 追加。打開(kāi)并向文件文件的末端進(jìn)行寫(xiě)操作,如果文件不存在,則創(chuàng) 建新文件。 a+ 讀/追加。通過(guò)向文件末端寫(xiě)內(nèi)容,來(lái)保持文件內(nèi)容。 x 只寫(xiě)。創(chuàng)建新文件。如果文件以存在,則返回 FALSE。 x+ 讀/寫(xiě)。創(chuàng)建新文件。如果文件已存在,則返回 FALSE 和一個(gè)錯(cuò)誤。 注釋?zhuān)喝绻?fopen() 無(wú)法打開(kāi)指定文件,則返回 0 (false)。 檢測(cè) End-of-file feof() 函數(shù)檢測(cè)是否已達(dá)到文件的末端 (EOF),在循環(huán)遍歷未知長(zhǎng)度的數(shù)據(jù)時(shí),feof() 函數(shù)很有用。注釋?zhuān)涸?w 、a 以及 x 模式,您無(wú)法讀取打開(kāi)的文件! if (feof($file)) echo "End of file"; fgets() 函數(shù)用于從文件中逐行讀取文件。在調(diào)用該函數(shù)之后,文件指針會(huì)移動(dòng)到下一行。
信息發(fā)布:廣州名易軟件有限公司 http://www.jetlc.com
|