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( ' ', ( $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(' ',$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.