mkdir函數用於建立資料夾,其格式為mkdir(資料夾路徑,權限)
權限以0開頭,後面接的數字是讀取、寫入、執行的權限。
(注意:Windows環境無法套用存取權限設定,只能依照預設值0777;
Linux環境可依照需求建立各種不同權限的資料夾)
範例程式碼:
<?php
if(mkdir("./dirname", 0700))
echo "成功建立資料夾"."<br>";
else
echo "建立資料夾失敗"."<br>";
?>
輸出結果:
此程式碼執行成功後,會在檔案的同一層建立一名為dirname的空資料夾
可分別針對檔案擁有人、檔案擁有群組、其他人分別規劃讀、寫、執行三種權限,分別用數字4、2、1表示:
檔案擁有人 { 讀[4] + 寫[2] + 執行[1] }
檔案擁有群組 { 讀[4] + 寫[2] + 執行[1] }
其他人 { 讀[4] + 寫[2] + 執行[1] }
例如要讓目錄開放給檔案擁有人與檔案擁有群組可以讀寫執行,而其他人只可以讀,計算方式為:
檔案擁有人=>可以讀寫執行:4+2+1=7
檔案擁有群組=>可以讀寫執行:4+2+1=7
其他人只可以讀=>4+0+0=4
權限設定=>774
**rmdir()**函數是刪除資料夾的指令,使用時必須注意要被刪除的資料夾是否含有資料:
當資料夾內沒有資料時 => 可順利刪除資料夾
當資料夾內有資料時 => 無法刪除資料夾
範例程式碼:
<?php
if(rmdir("./dirname"))
echo "成功刪除資料夾"."<br>";
else
echo "刪除資料夾失敗"."<br>";
if(is_dir("./dirname"))
rmdir();
else
echo "資料夾不存在"."<br>";
?>
unlink()函數可刪除指定的檔案
範例程式碼:
<?php
if(unlink("./dirname/file2.png"))
echo "成功刪除檔案"."<br>";
else
echo "刪除檔案失敗"."<br>";
?>
若要刪除的資料有多個,可以用glob()函數以陣列方式傳回指定文件或目錄資訊在進行刪除
先來看glob()函數是如何運用的:
/dirname目錄底下有不同類型的檔案
運用glob()函數指定查看目錄內.txt的檔案清單
範例程式:
<?php
foreach (glob("./dirname/*.jpg") as $filename)
echo basename($filename)." size ".filesize($filename)."<br>";
?>
輸出結果:
glob()函數內可放兩個參數,第一個參數為必要參數,是「指定搜尋的樣式」,第二個參數為非必要參數,參數目的是「指定詳細的屬性樣式」
第二個參數可用屬性樣式
GLOB_MARK 返回每一個搜尋的資料夾前面加上斜線「/」
GLOB_NOSORT 返回資料夾內檔案不做排序
GLOB_BRACE 使{a,b,c} 與'a','b'或'c'能互相搭配
GLOB_ERR 出現錯誤時停止執行
若要同時顯示多個檔案或多種檔案類型,glob()函數可快速地幫我們完成:
範例程式:
<?php
$multipath = "./dirname/";
foreach (glob($multipath. "{*.png,*.txt}",GLOB_BRACE) as $filename)
//利用glob()函數的GLOB_BRACE參數查詢.png,*.txt檔案,並使用foreach將回應的檔案依序儲存於變數$filename
{
echo basename($filename)."<br>"."size:".filesize($filename)."<br><br>";
}
echo "<hr>";
foreach (glob($multipath. "{img1,img2}.jpg",GLOB_BRACE) as $filename)
//利用glob()函數的GLOB_BRACE參數查詢副檔名為「jpg」而主檔名為img1,img2的檔案,並使用foreach將回應的檔案依序儲存於變數$filename
{
echo basename($filename)."<br>"."size:".filesize($filename)."<br><br>";
}
?>
輸出結果:
也可以運用glob()函數刪除目錄中所有不同類型的檔案,並印出結果:
範例程式碼:
<?php
$dir="./dirname/";
$files = glob($dir.'*');
foreach ($files as $file)
if(@unlink($file))
{
echo "刪除檔案" .$file."成功<br>";
}else{
echo "刪除檔案" .$file."失敗<br>";
}
if(@rmdir($dir)) echo "刪除資料夾",$dir,"成功";
else
echo "刪除資料夾",$dir,"失敗";
?>