19-FSO(連載1)

19-FSO(1)

在前面幾篇博文中,咱們一塊兒來學習了MySQL函數庫和GD函數庫的常規操做。固然這隻需一些基礎操做,咱們會在後面的博文中經過一些具體的實例來讓你們對它們有一個更全面的瞭解!

今天,咱們來看一下FSO。其實FSO是ASP中的一個概念,其全稱爲FileSystemObject,在PHP中有兩個函數庫:Directory和File,因此,我本身套用了FSO的概念!

今天,咱們來實現一個在線的目錄瀏覽功能,因此先必須瞭解目錄操做函數:opendir、readdir、closedir、filesize、filemtime

其實opendir、readdir、closedir三個函數每每是組合在一塊兒使用的!由於,咱們要實現看一下文件夾中具體包含的文件和/或子文件夾,就必須先打開文件夾(opendir),而後來查看一下文件夾中包含的文件和/或子文件夾(readdir),當查看完畢後,將文件夾關閉就能夠了(closedir)

1、基礎操做

咱們先假設來讀取一個固定的文件夾,其目錄結構以下:

WEB文件夾的目錄結構以下:
 
 
咱們要經過程序來讀取WEB文件夾包含的元素(文件和/或子文件夾)
 
程序代碼以下:
<?php
 
$folderPath = "./WEB";
 
$folderHandle = opendir($folderPath);
 
while ( $folderItemName = readdir($folderHandle))
 
echo ( "<p> { $folderItemName } </p>\n" );
 
closedir( $folderHandle );
 
?>
 

運行結果以下:
 

 
當運行完這個案例後,咱們能夠產生兩個疑問: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}&nbsp;&nbsp;&nbsp;{$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}&nbsp;&nbsp;&nbsp;{$objType}</p>\n");
 
}
 
}
 
closedir( $folderHandle );
 
?>
 
 
運行結圖以下:
 
 
 
 
 
這纔是咱們須要的結果呢!哈哈哈!
相關文章
相關標籤/搜索