20 FSO(連載2)
因為篇幅較大,是以分為兩篇!請原諒!
一、中級操作
既然我們将檔案内的資源讀取出來了,最好再修飾一下下,就像Windows的資料總管一樣最好了!(唉,人的欲望總是無限膨脹的!哈哈,這樣也好!人類也就是這樣才進步的!)
代碼如下:
<?php
date_default_timezone_set("PRC");
$filetype_array = array("as"=>"Flash ActionScript File","bmp"=>"BMP圖像","doc"=>"Microsoft Word文檔","rar"=>"WinRAR 壓縮文檔","ppt"=>"Microsoft PowerPoint 示範文稿","txt"=>"文本文檔","xls"=>"Microsoft Excel 工作表","gif"=>"GIF圖像","jpg"=>"JPEG圖像","jpeg"=>"JPEG圖像","png"=>"PNG圖像","html"=>"HTML Document","htm"=>"HTML Document","mp3"=>"MP3 格式聲音","chm"=>"已編譯的HTML幫助檔案","fla"=>"Flash Document","mdb"=>"Microsoft Access 應用程式","pdf"=>"PDF 檔案","swf"=>"Flash Movie","xml"=>"XML 文檔","zip"=>"WinRAR ZIP 壓縮檔案","asf"=>"Windows 音頻/視訊檔案","wmv"=>"Windows Media 音頻/視訊檔案","avi"=>"視訊剪輯","mpeg"=>"電影剪輯","exe"=>"應用程式","gz"=>"WinRAR 壓縮檔案","tar"=>"WinRAR 壓縮檔案","tiff"=>"TIFF 檔案");
function getobjectsize($object)
{
$objectsize = filesize($object);
if($objectsize < 1024)
$objectsize = $objectsize . " B";
elseif($objectsize >= 1024 && $objectsize < 1024*1024)
$objectsize = ceil($objectsize/1024) . " KB";
elseif ($objectsize >= 1024*1024 && $objectsize < 1024*1024*1024)
$objectsize = ceil($objectsize/(1024*1024)) . " MB";
else
$objectsize = ceil($objectsize/(1024*1024*1024)) . " GB";
return $objectsize;
}
function getobjectmtime($object)
$objectmtime = fileatime($object);
return date("Y-m-d H:i",$objectmtime);
function getextensioname($object)
$file_array = split("[.]",$object);
$extensioname = strtolower(end($file_array));
return $extensioname;
function getobjectype($object)
global $filetype_array;
$extensioname = getextensioname($object);
if(is_file($object))
return $filetype_array[$extensioname];
elseif (is_dir($object))
return "檔案夾";
return "未知類型";
function getIcon($object)
global $$filetype_array;
$icon = getextensioname($object) . ".gif";
elseif (is_dir($object))
$icon = "dir.gif";
$icon = "unknown.gif";
return $icon;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>目錄浏覽</title>
<link href="style/common.css" rel="stylesheet" type="text/css" media="all" />
</head>
<body>
<div id="container">
<h1 id="title">目錄浏覽</h1>
<div id="location">
<table border="0" cellspacing="0" cellpadding="0">
<tr style="background:#ccc">
<th id="goBack"><a href="#">傳回上一級</a></th>
<th>目前目錄:</th>
<th id="documentRoot">WEB主目錄:<?=$_SERVER['DOCUMENT_ROOT']?> </th>
</tr>
</table>
</div>
<table border="0" cellspacing="0" cellpadding="0" id="itemList">
<tr>
<td>名稱</td>
<td class="size">大小</td>
<td class="type">類型</td>
<td class="type">修改日期</td>
<?php
$folderPath = "./WEB";
$folderHandle = opendir($folderPath);
while($folderItemName = readdir($folderHandle))
if($folderItemName != "." && $folderItemName != "..")
{
$folderItemPath = $folderPath . "/" . $folderItemName;
echo("<tr>\n");
echo("<td><img src=\"icons/".getIcon($folderItemPath)."\" alt=\"\" align=\"absmiddle\"/> {$folderItemName}</td>\n");
echo("<td>".getobjectsize($folderItemPath)."</td>\n");
echo("<td>".getobjectype($folderItemPath)."</td>\n");
echo("<td>".getobjectmtime($folderItemPath)."</td>\n");
echo("</tr>\n");
closedir($folderHandle);
</table>
</div>
</body>
</html>
運作結果如下:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiInBnauIjNwgTOxATO4AjNyETNxITM5ADMy8CXyETOwAjMvwFduVWboNWY0RXYvwVbvNmLvR3YxUjLzM3Lc9CX6MHc0RHaiojIsJye.jpg)
當然,這個還存在一些問題,例如:沒有辦法浏覽子檔案夾、建立子檔案夾、删除檔案/檔案夾、檔案/檔案夾的重命名等,我會在後續的博文中和大家一起來研究!
好了,晚安,各位!!!