Php ile web klasör içindeki dokümanları listemele

Php ile web sitenizde dışarıya açmak istediğinz dokümanları aşağıdaki kod ile index of kapalı olacak şekilde paylaşabilirsiniz.

Php 7.4 üstünde 500 hatası verir.

$return = klasorListe2( “.” ); Buradan listelemek istediğiniz dizini yazabilirsiniz. nokta kalırsa herşeyi getirir.

<?php
set_time_limit(0);
function klasorListe( $path = '.', $lastFile = false ){
    $ignore = array('.', '..', 'Thumbs.db' ); // Windows işletim sistemindeki bakılmaması gereken yollar
     
    $dh = @opendir( $path ); // Yolu alıyoruz
     
    $tmpArray = array(); // Klasör ve dosyaları atayacak dizi
    $tmpFile = 0; // Son değiştirilen dosyayı kontrol etmek amaçlı
     
    while( false !== ( $file = readdir( $dh ) ) ){ // İçeriğine bakıyoruz
        if( in_array( $file, $ignore ) ){ // Bakmasını istemediğimiz kısımlar ise es geç diyoruz.
            continue;
        }
        //$spaces = str_repeat( '&nbsp;', ( $level * 4 ) ); 
        if( is_dir( "$path/$file" ) ){ // Klasör ise                        
            $tmpArray2 = klasorListe( "$path/$file", $lastFile ); // Tekrar içeriğine bakmak için fonksiyonumuza tekrar yolluyoruz
             
            $tmpArray[] = array( // Aşağıda atanan dosyalar ALT olarak diziye ekleniyor
                'AD' => $file,
                'ALT' => $tmpArray2
            );
             
        } else { // Dosyalar diziye atanıyor            
             
            if ( $lastFile ){
                $tmpStr = filemtime( "$path/$file");
                 
                if ( $tmpStr > $tmpFile ){
                    $tmpFile = $tmpStr;
                     
                    $tmpArray = array('AD' => $file);            
                }               
            } else {
                $tmpArray[] = array(
                    'AD' => $file
                );          
            }                       
        }       
    } 
     
    closedir( $dh );    
    return $tmpArray;
}
 
function klasorListe2( $path, $lastFile = false ){
     
     
    $ignore = array('.', '..', 'Thumbs.db' ); // Windows işletim sistemindeki bakılmaması gereken yollar
     
    $dh = @scandir( $path ); // Yolu ve içeriği alıyoruz    
     
    $tmpArray = array(); // Klasör ve dosyaları atayacak dizi
    $tmpFile = 0; // Son değiştirilen dosyayı kontrol etmek amaçlı  
    foreach( $dh as $key => $file ){ // İçeriğine bakıyoruz
        if( in_array( $file, $ignore ) ){ // Bakmasını istemediğimiz kısımlar ise es geç diyoruz.
            continue;
        }
         
        if( is_dir( "$path\\$file" ) ){ // Klasör ise                                   
            $tmpArray2 = klasorListe2( "$path\\$file", $lastFile, $lastDirect ); // Tekrar içeriğine bakmak için fonksiyonumuza tekrar yolluyoruz
             
            $tmpArray[] = array( // Aşağıda atanan dosyalar ALT olarak diziye ekleniyor
                'AD' => $file,
                'TIP' => 'Klasor',
                'YOL' => "$path\\$file",
                'ALT' => $tmpArray2
            );
             
        } else { // Dosyalar diziye atanıyor                                
            if ( $lastFile ){               
                return $tmpArray[] = array(
                    'AD' => $dh[ count($dh) -1 ],
                    'TIP' => 'Dosya',
                    'YOL' => "$path\\$file"
                );
            } else {
                $tmpArray[] = array(
                    'AD' => $file,
                    'TIP' => 'Dosya',
                    'YOL' => "$path\\$file"
                );          
            }
        }       
     
    }   
    return $tmpArray;
}
 
#$return = klasorListe( ".",true ); 
$return = klasorListe2( "." ); 
 
function klasorListeGoster( $array, $seviye=0 ){    
    if ( is_array($array) ){
        foreach( $array as $key => $value ){     
            echo '<tr class="' . ( $value['TIP'] == 'Klasor' ? 'dir' : 'file' ) . '">
                <td> ' . str_repeat('&nbsp;&nbsp;',$seviye) . ' <a target="_blank" href="'.$value['YOL'].'">'. $value['AD'] .'</a> </td>                
            </tr>';
            if ( isset( $value['ALT'] ) ){
                klasorListeGoster( $value['ALT'], ($seviye+1) );    
            }           
        }
    } else {
        return false;
    }
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PHP ile Klasör Listeleme</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div id="container">
    <h1>PHP ile Klasör Listeleme</h1>   
    <table class="sortable">
        <thead>
        <tr>          
            <th>Dosya Adı</th>          
        </tr>
        </thead>
        <tbody>
            <?php klasorListeGoster( $return ); ?>        
        </tbody>
    </table>
</div>
</body>
</html>

Bu makale size yardımcı olduysa lütfen başkalarınında faydalanması için paylaşmayı unutmayınız.
Bu makaleyi okuduğunuz için teşekkür ederim.

Bir yanıt yazın