[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
    

Anmelden zum Antworten