[991]PHP網站開發 進階應用技巧2
$base_dir="D:/httpd/08/uploads"; $base_url="http://localhost/08/uploads"; $dir=(empty($_GET['to']))?$base_dir:$_GET['to']; $dir=str_replace("\\","/",realpath($dir)); if(!ereg("^".$base_dir,$dir))$dir=$base_dir; $url=str_replace($base_dir,$base_url,$dir); define("_UPLOAD_DIR",$dir); define("_UPLOAD_URL",$url); |
//定義基本目錄路徑 //定義目錄的網址 //若有傳入 to 變數則以新位置為主 //取得真實路徑,並把win的路徑改為 / //若新位置開頭和$base_dir不同,則改回原位置 //製作新的目錄網址 //把新路徑定義到為基本目錄路徑 //把新網址定義到目錄網址 |
1.realpath("路徑")→轉換為真實路徑
2.ereg("規則","字串")→正規表達式比對
3.str_replace("找出","換為","字串")→字串替換
<a href='index.php?file={$file}&to="._UPLOAD_DIR."&op=del'>刪除</a> 底下請放在$dh=opendir(_UPLOAD_DIR);之前 if($_GET['op']=="del"){ $file=mb_convert_encoding($_GET['file'], "Big5", "Big5,UTF-8"); @unlink(_UPLOAD_DIR."/{$file}"); header("location:"._UPLOAD_DIR); } |
//加入刪除功能 //若有指定刪除動作 |
1.mb_convert_encoding("字串","新的編碼","原始編碼")→轉換字串編碼
2.unlink("路徑")→刪除檔案
請先在表格前後加上 <form action='index.php' method='post'> 表格 </form>
|
|
底下請放在原本刪除功能之後,記得將送出之參數將$_GET改為 $_REQUEST |
|
在刪除後面加上搬移的選項,其中 folder_select() 為自訂函數,用來列出目錄選單:
<input type='radio' name='op' value='move'> 搬到:".folder_select($base_dir,"new_folder")." |
//加入搬移選項 //列出目錄選單 |
將之加在 if($_GET['op']=="del") 之後
}elseif($_REQUEST['op']=="move"){ foreach($_POST['files'] as $file){ $file=mb_convert_encoding($file, "Big5", "Big5,UTF-8"); @rename(_UPLOAD_DIR."/{$file}",$_POST['new_folder']."/{$file}"); } header("location:"._UPLOAD_DIR); } |
//若有指定搬移動作 //把要搬移檔案讀出 //先把檔名轉為系統編碼 //搬移檔案(隱藏錯誤) //執行後轉向到原位置 |
在刪除前面面加上建立新目錄欄位
在此建立新目錄:<input type='text' name='mk_folder'><br> | //加入建新目錄欄位 |
請自訂一組 }elseif(!empty($_POST['mk_folder'])){
$mk_folder=mb_convert_encoding($_POST['mk_folder'], "Big5", "Big5,UTF-8"); mk_dir(_UPLOAD_DIR."/{$mk_folder}"); |
//加入建新目錄欄位 //建立目錄 |