PHP文件遍歷類(lèi)的實(shí)現(xiàn)

代碼實(shí)現(xiàn)

traveldir.class.php

//filename:traveldir.class.php
//author:ResearchWorld
<?php
class TravelDir{
    private $path = '/';
    private $dir_handle = null;
    
    public function travel($path='/',$is_deep=false){
        $this->path = $path;
        
        if ($dir_handle = $this->getDirHandle() ){
            $this->dir_handle = $dir_handle;
            
            echo '<table>';
            echo '<tr>';
            echo '<td>'.'文件名'.'</td>';
            echo '<td>'.'文件類(lèi)型'.'</td>';
            echo '</tr>';
            while( $file_name = readdir($dir_handle)){
                $is_ignore = $file_name === '.' || $file_name === '..' ? true : false;
                
                if(strrchr($path,'/') != strlen($path)-1 ){
                    $path .= '/';
                }
                    
                $file_type = @filetype($path.$file_name);
                echo '<tr>';
                echo '<td>'.$file_name.'</td>';
                echo '<td>'.$file_type.'</td>';
                echo '</tr>';
                if($is_deep && $file_type==='dir' && !$is_ignore){
                    echo '<tr>';
                    echo '<td>';
                    echo "<ul stype='padding:0px 5px'>";
                    echo "<li style='list-style:none;'>";
                    $this->travel($path.$file_name,$is_deep);
                    echo '</li>';
                    echo '</ul>';
                    echo '</td>';
                    echo '</tr>';
                }   
            }
            echo '</table>';
        }
    }
    
    private function getDirHandle(){
        $path = $this->path;
        
        if(is_dir($path)){
            $dir_handle = @opendir($path);
            if(!$dir_handle){
                return false;
            }   
            return $dir_handle;//其實(shí)這里保留這句就可以了,上面多寫(xiě)了.                
        }
        
        return false;
    }
    
    public function __destruct(){
        if(!empty($dir_handle))
            closedir($dir_hanle);
    }
    
}

index.php

<?php
header('Content-type: text/html; charset=utf-8');
function __autoload($class_name){
    $class_name =strtolower($class_name);
    $class_file_name = $class_name.'.class'.'.php';
    
    if(file_exists("./${class_file_name}")){
        include_once $class_file_name;
    }
}

$traveldir = new TravelDir;

$traveldir->travel('../mysql_save_file',true);

效果展示
目錄太復(fù)雜的沒(méi)敢測(cè)試

show.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,441評(píng)論 25 708
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,969評(píng)論 19 139
  • 什么是合格的員工? 1 要有強(qiáng)健的體質(zhì)身體時(shí)健康的。2 要有素質(zhì),專(zhuān)業(yè)技術(shù)再好沒(méi)素質(zhì)都是白搭。3工作期間不能遲到早...
    微笑你我他閱讀 136評(píng)論 0 2
  • 學(xué)完了聲母,今天嘗試帶小朋友用拼音寫(xiě)句子。小朋友說(shuō)了一個(gè)詞語(yǔ):西瓜,我們就用西瓜來(lái)造句。 一個(gè)說(shuō):西瓜大又大;一個(gè)...
    曾子玲閱讀 891評(píng)論 0 0
  • 仍然清晰的記得那是一個(gè)燥熱夏天的午后,我穿著黑色的短袖T恤蹬著自行車(chē),大汗淋漓的騎到校門(mén)口。看著那些衣著光鮮的學(xué)生...
    卸載格式化閱讀 237評(píng)論 0 2