今天,咱們來看一下FSO。其實FSO是ASP中的一個概念,其全稱爲FileSystemObject,在PHP中有兩個函數庫:Directory和File,因此,我本身套用了FSO的概念!
今天,咱們來實現一個在線的目錄瀏覽功能,因此先必須瞭解目錄操做函數:opendir、readdir、closedir、filesize、filemtime
其實opendir、readdir、closedir三個函數每每是組合在一塊兒使用的!由於,咱們要實現看一下文件夾中具體包含的文件和/或子文件夾,就必須先打開文件夾(opendir),而後來查看一下文件夾中包含的文件和/或子文件夾(readdir),當查看完畢後,將文件夾關閉就能夠了(closedir)
1、基礎操做
咱們先假設來讀取一個固定的文件夾,其目錄結構以下:
WEB文件夾的目錄結構以下:
當運行完這個案例後,咱們能夠產生兩個疑問:A、如何區分文件和文件夾B、.和..是什麼意思
若是學習過DOS基礎知識的話,那麼對於.和..應該是很是清楚的。
.表明當前目錄。
..表明當前目錄的父目錄
那麼如何區分文件和文件夾呢?PHP提供了兩個函數:is_file和is_dir,那麼,咱們將前面的程序來修改一下!
<?php
$folderPath
= "./WEB";
$folderHandle
= opendir($folderPath);
while
(
$folderItemName
= readdir($folderHandle))
{
if($folderItemName != "." && $folderItemName != "..")
{
if(is_file($folderItemName))
{
$objType = "
文件
"
;
}
elseif (is_dir($folderItemName))
{
$objType = "
文件夾
"
;
}
echo("<p>{$folderItemName} {$objType}</p>\n");
}
}
closedir(
$folderHandle
);
?>
運行結果以下:
唉,.和..是忽略了,可是爲何沒有出現對象的類型標誌呢?
請不要忘記文件/文件夾都是存儲在文件夾內的!也就是01.chm是存儲在web目錄下的!因此…
運行結果以下:
<?php
$folderPath
= "./WEB";
$folderHandle
= opendir($folderPath);
while
(
$folderItemName
= readdir($folderHandle))
{
if($folderItemName != "." && $folderItemName != "..")
{
$folderItemPath = $folderPath . "/" . $folderItemName;
if(is_file($folderItemPath))
{
$objType = "
文件
"
;
}
elseif (is_dir($folderItemPath))
{
$objType = "
文件夾
"
;
}
else
{
$bjType = "未知類型";
}
echo("<p>{$folderItemName} {$objType}</p>\n");
}
}
closedir(
$folderHandle
);
?>
運行結圖以下:
這纔是咱們須要的結果呢!哈哈哈!