:::
所有書籍
「[991]PHP網站開發 進階應用技巧2」目錄
MarkDown
10. 目錄管理及相片特效
1. 網頁多媒體
2. Superfish下拉選單
2-1 index.php(遞迴範例)
3. 連動選單
3-1 menu1.php
3-2 menu2.php
3-3 menu1.php(索引與值都相同的精簡寫法)
3-4 demo/index.php
4. 表格內容排序
4-1 index.php
5. 拉動表格進行排序
5-1 index.php
5-2 checkbox.html
6. 即時聊天系統
6-1 index.php
7. PHP檔案操作(上)
7-1 index.php
7-2 iconize_l.css
8. PHP檔案操作(下)
8-1 index.php
8-2 index.php 中文目錄修正
9. 相片EXIF資訊及上傳
9-1 index.php
10. 目錄管理及相片特效
10-1 index.php
10-2 exif.php
11. 多媒體RSS
11-1 index.php
11-2 mrss.php
12. 樹狀目錄+HTML5
12-1 index.php
12-2 dtree.js
13. DHX入門(上)
13-1 index.php
13-2 index2.php
13-3 index3.php
13-4 index4.php
14. DHX編輯器及選單
14-1 index.php
14-2 input.php
14-3 setup.php
14-4 list.php
14-5 view.php
14-6 menu.xml
15. 點擊編輯
15-1 index.php
15-2 save.php
16. curl網頁採集
16-1 index.php
16-2 test1.php
17. 讀取RSS
17-1 index.php
18. 無刷新登入
18-1 index.php
18-2 login.php
18-3 index.php(AJAX版)
18-4 login.php(AJAX版)
10-2 exif.php
\[991\]PHP網站開發 進階應用技巧2 ====================== <?php //基本路徑 $base\_dir="D:/xampplite/htdocs/10/test/uploads"; //基本網址 $base\_url="http://localhost/10/test/uploads"; //檢查是否要切換路徑 $dir=(empty($\_REQUEST\['to'\]))?$base\_dir:str\_replace("\\\\","/",realpath($\_REQUEST\['to'\])); //檢查目前路徑是否在基本路徑之下 $dir=(ereg("^".$base\_dir,$dir))?$dir:$base\_dir; //製作切換網址 $url=str\_replace($base\_dir,$base\_url,$dir); //把切換路徑定義到常數 define("\_UPLOAD\_DIR",$dir); //把切換網址定義到常數 define("\_UPLOAD\_URL",$url); /\*\*\*\*\*\*\*\*\*\*\*\*\*\* 判斷目前要進行的動作 \*\*\*\*\*\*\*\*\*\*\*\*\*\*/ //刪除單一檔案 if($\_GET\['op'\]=="del"){ $file=$\_GET\['file'\]; @unlink(\_UPLOAD\_DIR."/".$file); header("location:".\_UPLOAD\_DIR); //刪除多檔案 }elseif($\_POST\['op'\]=="del"){ if(is\_array($\_POST\['files'\])){ foreach($\_POST\['files'\] as $file){ @unlink(\_UPLOAD\_DIR."/".$file); } header("location:".\_UPLOAD\_DIR); } //搬移多檔案 }elseif($\_POST\['op'\]=="move"){ if(is\_array($\_POST\['files'\])){ foreach($\_POST\['files'\] as $file){ @rename(\_UPLOAD\_DIR."/".$file,$\_POST\['new\_dir'\]."/".$file); } header("location:".\_UPLOAD\_DIR); }
//搬移目錄 }elseif($\_POST\['op'\]=="move\_dir"){ $dirname=basename(\_UPLOAD\_DIR); rename(\_UPLOAD\_DIR,$\_POST\['new\_dir2'\]."/{$dirname}"); header("location:index.php?to=".$\_POST\['new\_dir2'\]);
//刪除目錄 }elseif($\_GET\['op'\]=="del\_dir"){ $dirname=dirname(\_UPLOAD\_DIR); deltree(\_UPLOAD\_DIR); header("location:index.php?to=".$dirname);
//複製目錄 }elseif($\_POST\['op'\]=="copy\_dir"){ $dirname=basename(\_UPLOAD\_DIR); full\_copy(\_UPLOAD\_DIR,$\_POST\['new\_dir2'\]."/{$dirname}\_copy"); header("location:index.php?to=".$\_POST\['new\_dir2'\]);
//目錄改名 }elseif(!empty($\_POST\['new\_dir\_name'\])){ $dirname=dirname(\_UPLOAD\_DIR); rename(\_UPLOAD\_DIR,$dirname."/".$\_POST\['new\_dir\_name'\]); header("location:index.php?to=".$dirname);
}elseif(!empty($\_POST\['mk\_dir'\])){ mk\_dir(\_UPLOAD\_DIR."/".$\_POST\['mk\_dir'\]); header("location:".\_UPLOAD\_DIR); }elseif(!empty($\_FILES\['pic'\]\['tmp\_name'\])){ foreach($\_FILES\['pic'\]\['tmp\_name'\] as $i => $tmpname){ move\_uploaded\_file($tmpname , \_UPLOAD\_DIR."/{$\_FILES\['pic'\]\['name'\]\[$i\]}"); } } //開啟目錄 $dh=opendir(\_UPLOAD\_DIR); $main=" <script src='js/jquery-1.3.2.min.js' type='text/javascript'></script> <script src='js/jquery.MultiFile.js' type='text/javascript'></script> <form action='{$\_SERVER\['PHP\_SELF'\]}' method='post' enctype='multipart/form-data'> <table style='width:1000px;' class='tinytable'> <tr><td style='width:400px;'> <div style='height:400px;overflow:auto;'> <table class='tinytable' style='width:100%;'> <tr><td colspan=4>$dir</td></tr> <tr><th>檔名</th><th>大小</th><th>類型</th><th>功能</th></tr>"; //讀取目錄 while($file=readdir($dh)){ if($file==".")continue; //檢查得到的檔案其類型 $type=filetype(\_UPLOAD\_DIR."/".$file); //依據類型放到不同目錄中 if($type=="dir"){ $dir\_arr\[\]=$file; }else{ $file\_arr\[\]=$file; } } //秀出目錄 if(is\_array($dir\_arr)){ foreach($dir\_arr as $sub\_dir){ $size=($sub\_dir=="..")?"":dirSize(\_UPLOAD\_DIR."/".$sub\_dir); $size=($sub\_dir=="..")?"":formatBytes($size,1);
$del=($sub\_dir=="..")?"":"<a href='index.php?op=del\_dir&to=".\_UPLOAD\_DIR."/".$sub\_dir."'>刪除</a>";
$main.= "<tr><td><a href='index.php?to=".\_UPLOAD\_DIR."/".$sub\_dir."'>$sub\_dir</a></td><td>$size</td><td>目錄</td><td>
$del
</td></tr>"; } } //秀出檔案 if(is\_array($file\_arr)){ foreach($file\_arr as $file){ $size=filesize(\_UPLOAD\_DIR."/".$file); $size=formatBytes($size,1);
$exif=(strtolower(substr($file,-3))=="jpg")?" (<a href='exif.php?file=".\_UPLOAD\_DIR."/{$file}#' target='show'>exif</a>)":"";
$main.= "<tr><td><a href='".\_UPLOAD\_URL."/{$file}' target='show'>$file</a>
$exif
</td><td>$size</td><td>檔案</td><td> <input type='checkbox' name='files\[\]' value='$file'> <a href='{$\_SERVER\['PHP\_SELF'\]}?file=$file&op=del& to=".\_UPLOAD\_DIR."'>刪除</a></td></tr>"; } } $main.=" </table> </div> </td><td><iframe name='show' style='width:100%;height:400px;border:1px solid gray;'></iframe></td></tr> <tr><th colspan=2> <input type='hidden' name='to' value='".\_UPLOAD\_DIR."'>
將「".\_UPLOAD\_DIR."」<input type='radio' name='op' value='move\_dir'>搬移
<input type='radio' name='op' value='copy\_dir'>複製
到:".folder\_select($base\_dir,"new\_dir2")."
或改名為<input type='text' name='new\_dir\_name' size=10>
<br>
將勾選的檔案 <input type='radio' name='op' value='del'>刪除 <input type='radio' name='op' value='move'>搬移到:".folder\_select($base\_dir,"new\_dir")." 建立新目錄:<input type='text' name='mk\_dir'><br> ,上傳檔案:<input type='file' name='pic\[\]' class='multi' /> <input type='submit' value='送出'> </th></tr> </table> </form>"; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=Big5"> <title></title> <link rel="stylesheet" href="tinytable.css" /> <link rel="stylesheet" href="iconize\_l.css" /> </head> <body> <?php echo $main;?> </body> </html> <?php //計算目錄大小 function dirSize($directory) { $size = 0; foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory)) as $file){ $size+=$file->getSize(); } return $size; } //把 bytes 轉換成其他單位 function formatBytes($bytes, $precision = 2) { $units = array('B', 'KB', 'MB', 'GB', 'TB'); $bytes = max($bytes, 0); $pow = floor(($bytes ? log($bytes) : 0) / log(1024)); $pow = min($pow, count($units) - 1); $bytes /= pow(1024, $pow); return round($bytes, $precision) . ' ' . $units\[$pow\]; } //目錄選單 function folder\_select($base\_dir="",$name="",$i=0){ $prefix=str\_repeat("--",$i); $i++; $disabled=(\_UPLOAD\_DIR==$base\_dir)?"disabled":""; $option=($i==1)?"<option value='{$base\_dir}/' $disabled>/</option>\\n":""; $dh=opendir($base\_dir); while($file=readdir($dh)){ if($file=="." or $file=="..")continue; $type=filetype($base\_dir."/".$file); if($type=="dir"){ $disabled=(\_UPLOAD\_DIR=="{$base\_dir}/{$file}")?"disabled":""; $option.="<option value='{$base\_dir}/{$file}' $disabled>{$prefix}{$file}</option>\\n"; $option.=folder\_select("{$base\_dir}/{$file}",$name,$i); } } if($i==1){ $main="<select name='$name'> $option </select>"; }else{ $main=$option; } return $main; } //建立目錄 function mk\_dir($dir=""){ //若無目錄名稱秀出警告訊息 if(empty($dir))die("沒有目錄名稱"); //若目錄不存在的話建立目錄 if (!is\_dir($dir)) { umask(000); //若建立失敗秀出警告訊息 if(!mkdir($dir, 0777)){ die("$dir 建立失敗!"); } } } //目錄複製 function full\_copy( $source, $target ){ if ( is\_dir( $source ) ){ @mkdir( $target ); $d = dir( $source ); while ( FALSE !== ( $entry = $d->read() ) ){ if ( $entry == '.' || $entry == '..' ){ continue; } $Entry = $source . '/' . $entry; if ( is\_dir( $Entry ) ){ full\_copy( $Entry, $target . '/' . $entry ); continue; } copy( $Entry, $target . '/' . $entry ); } $d->close(); }else{ copy( $source, $target ); } } //刪除整個目錄 function delTree($dir) { $files = glob( $dir . '\*', GLOB\_MARK ); foreach( $files as $file ){ if( is\_dir( $file ) ) delTree( $file ); else unlink( $file ); } if (is\_dir($dir)) rmdir( $dir ); } ?>
:::
搜尋
search
進階搜尋
QR Code 區塊
快速登入
所有討論區
「PHP全端開發」線上課程討論區
XOOPS使用討論區
一般研習學員
社大學員專用
路過哈啦區
XOOPS佈景設計
XOOPS模組開發
Tad書籍區
即時留言簿
書籍目錄
展開
|
闔起
線上使用者
26
人線上 (
5
人在瀏覽
線上書籍
)
會員: 0
訪客: 26
更多…
:::
主選單
NTPC OpenID
活動報名
模組控制台
進階區塊管理
站長工具箱(急救版)
網站地圖
Tad Tools 工具包
站長工具箱
行事曆
討論留言
嵌入區塊模組
快速登入
網站計數器
好站連結
最新消息
檔案下載
線上書籍
電子相簿
影音播放
常見問題
萬用表單
友站消息
社大學員
新聞
下載
教材
影音
討論
其他選單
好站連結
行事曆
電子相簿
常見問題
萬用表單
即時留言簿
友站消息
社大學員
登入
登入
帳號
密碼
登入