PHP ile dosya sisteminde gezinti uygulamasi PHP- Kodu:
dir (string $yol) : $yol degiskeni ile belirtilen yoldaki klasor hakkindaki
bilgileri dizi olarak dondurur. bu komutu kullanabilmek icin bir degiskene atayip
donen degerleri bu diziden cekerek kullanmak gerecektir.
read() : diziden donen degerlerin adim adim okunmasini saglar.
getcwd() : İcinde bulunulan klasorun yolunu verir.
ve $_SERVER degiskenleri : print_r($_SERVER) komutuyla neler oldugunu
gorebileceginiz bu degiskenler ornegimizde en buyuk yardimcimiz olacak
degiskenlerdir.
Kullanilan komutlardan bazilarina kisaca bir bakis yaptiktan sonra ornegimize gecelim :
<html>
<head>
<style>
a.link{
font-family: verdana, Geneva, Arial, Helvetica, sans-serif;
text-decoration: none;
font-size: 12px;
font-weight: bold;
}
a.link:hover{
font-family: verdana, Geneva, Arial, Helvetica, sans-serif;
text-decoration: none;
font-size: 12px;
font-weight: bold;
}
.text{
font-family: verdana, Geneva, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
}
.uyari{
font-family: verdana, Geneva, Arial, Helvetica, sans-serif;
font-size: 12px;
color: red;
}
</style>
</head>
<body>
<table cellpadding="0" cellspacing="0" width="400" bgcolor="#f5f5f5">
<tr>
<td class="uyari">
<table cellpadding="0" cellspacing="0" width="400" bgcolor="#f5f5f5">
<tr>
<td colspan="3" class="uyari">
<font color="#c0c0c0" size="-4">direct explorer v1.1.b || developed by breath</font>
<ul>
<li>Sayfalari çalistirmak için üzerine tiklayiniz
<li>Klasorlere girmek için yanlarindaki [+] simgelerine tiklayiniz.
</ul>
</td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" width="200" bgcolor="#f5f5f5" border="0">
<?php
//root ayarlarý
$file_name = "web_directory.php";//dosyanin adi
$root = $_SERVER['SCRIPT_FILENAME'];//director dosyaysinin bulundugu root klasor
$root = ereg_replace($file_name,"",$root);
$web_root = $_SERVER['SCRIPT_URI'];//director dosyaysinin web yolu
$web_root = ereg_replace($file_name,"",$web_root);
$page = $_SERVER['HTTP_REFERER'];
$active = getcwd();
if($_GET['dir']){
$dir_path = $HTTP_GET_VARS['backDir'];
$change_path = $dir_path."/".$_GET['dir'];
chdir($change_path);
}else{
$change_path = getcwd();
chdir($change_path);
}
$dir = getcwd();
if(is_dir($dir)){
$d = dir($dir);
//once klasorlerin listelenmesi saglanir
while( false != ($entry = $d->read())){
if(is_dir($entry)){
if(($entry!='.') && ($entry!='..')){
echo "<tr class="text"><td valign="middle" width="10"><img src='$web_root/icons/folder03.gif' height=25 width=30></td><td align="left">$entry</td><td valign="middle"><a class="link" href="$page?dir=$entry&backDir=$dir"> [+]</a></td><td>[dir]</td></tr>";
}
}
}
//daha sonra dosyalar listelenir
$d = dir($dir);
while( false != ($entry = $d->read())){
if(!is_dir($entry)){
if($entry!='index.php'){
$file = explode(".",$entry);
$file = $file[1];
if($file=='php'){
/*
system rootundan faydalanarak web rootunu parse eder
filela birlestirerek link haline getirir
*/
$f = getcwd();
$f = explode($root,$f);
$f = $f[1];
$f = ereg_replace('[\]',"/",$f);
$link_path = $web_root.$f."/".$entry;
echo "<tr class="text"><td><img src='$web_root/icons/letter.gif' height=25 width=30></td><td><a href="$link_path">$entry</a></td><td></td></tr>";
}
//bu kismi aktif yaparak tum dosyalarin listelenmesi saglanabilir.
/*else{
echo "<tr><td>--- $entry</td><td></td></tr>";
}*/
}
}
}
}
?>
<?php if (@getcwd()!=$root){?>
<tr>
<td>
<br>
<br>
<a href="javascript:history.back()">Üst klasor</a>
</td>
</tr>
<?php }else{?>
<tr>
<td>
<br>
<br>
Üst klasor
</td>
</tr>
<?php }?>
</table>
</td>
</tr>
</table>
</body>
</html> |