[PHP] Dateilistingfrage
-
Hi ich hab mir folgendes PHP Script geschrieben. Funktioniert auch ganz gut, bis auf das er den Pfad immer verlängert- soll ja im Script auch so sein.
Also wen ich in ein Verzeichnis gehe geht er auch rein ./Software/test/
aber wenn ich dann zurückgehe geht er mit ./Software/test/.. in das neue Verzeichnis usw... so hab ich das in dem Script gemacht.Das ist aber unsauber finde ich.
Wie kann man das Script so bauen, das nur der "richtige" Pfad angezeitgt wird.
$MAINTEXT .= '<table> <tr> <td> Name </td> <td> Aktion </td> '; $newdir = $_REQUEST['newdir']; $dir = opendir('./Software'.$newdir); while ($file = readdir ($dir)) { if (!is_dir ("./Software".$newdir."/".$file)) { $MAINTEXT .= ' <tr> <td>'.$file.'</td> <form action="index.php" method="POST"> <input type="hidden" name="wohin" value="'.$wohin.'"> <input type="hidden" name="action" value="select_kat"> <td> <a href="index.php?wohin='.$wohin.'&action=select_kat&path=./Software'.$newdir.'/'.$file.'">wählen</a> </td> </form> </tr>'; }//ende if else if ($file!= "."){ $newpath = $newdir."/".$file; $MAINTEXT .= '<tr><td><b>'.$file.'</b></td><td><a href="index.php?wohin=194&action=select_file&newdir='.$newpath.'">wechseln</a></td</tr>'; }//ende else }//ende while
-
Entweder anstatt .. dranzuhängen einfach gleich das letzte Verzeichnis aus dem String löschen oder wenn das nicht so einfach geht, den String nach .. parsen und nachträglich das Verzeichnis davor und die .. entfernen.
-
Dank dir.
Ich habs wie folgt nun gemacht: (wen es interessiert)
if ($newdir != "/..") { $newdir = $_REQUEST['newdir']; $dir = opendir('./Software'.$newdir); while ($file = readdir ($dir)) { if (!is_dir ("./Software".$newdir."/".$file)) { $MAINTEXT .= ' <tr> <td>'.$file.'</td> <form action="index.php" method="POST"> <input type="hidden" name="wohin" value="'.$wohin.'"> <input type="hidden" name="action" value="select_kat"> <td> <a href="index.php?wohin='.$wohin.'&action=select_kat&path=./Software'.$newdir.'/'.$file.'">wählen</a> </td> </form> </tr>'; }//ende if else if ($file!= "."){ if ($file == ".."){ if ($newdir{strlen($newdir)-1} == "/") $newdir{strlen($newdir)-1} = ""; $apfad = explode("/",$newdir); if (sizeof($apfad)>0) { $stri = $apfad[sizeof($apfad)-1]; if (!empty($stri)) { $newpath = str_replace($stri," ",$newdir); }//ende if else { $newpath = $newdir; }//ende else }//ende if else { $newpath = $file; } //ende else }//ende if else { if ($newdir{strlen($newdir)-1} != "/") $newpath = $newdir."/".$file; else $newpath = $newdir.$file; }//ende else $MAINTEXT .= '<tr><td><b>'.$file.'</b></td><td><a href="index.php?wohin=194&action=select_file&newdir='.$newpath.'">wechseln</a></td</tr>'; }//ende else }//ende while }//ende if