Ordnernamen in einer Verzeichnisstruktur übergeben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ordnernamen in einer Verzeichnisstruktur übergeben

    Hi,

    ich habe ein Skript, dass mir alle Dateien und Unterordner eines Verzeichnisses ausgibt. Klickt man jetzt auf ein Unterverzeichnis, wechselt man in diese und dessen Inhalt wird ausgegeben. Die Übergabe des Verzeichnisses Erfolgt per GET. Wenn ich jetzt allerdings auf den mit ausgegebenen Link auf die höhere Verzeichnisebene wechsle, wird der GET-String ganz lang, z.B.:
    "user/NeuerOrdner//..//NeuerOrdner//..//NeuerOrdner//../"
    Was muss ich in meinem Script verändern, dass das nicht so komisch aneinandergehängt wird? Kann ich irgendwie mit regular expressions den GET-String durchsuchen und die zwei Punkte (..) löschen?

    Den Teil des Scripts, in dem das mit dem GET-String passiert, ist ab dem Strich!

    PHP-Code:
    // Datei-/ Ordnerliste ausgeben$filename = scandir ($dir); // Files auslesen
         
    $size count($filename);
         echo 
    '<table border="1">';
         for(
    $i =0$i<$size;$i++) {
              echo 
    '<tr>';
              if(
    $filename[$i] != "."  &&  $filename[$i] != "index.php"){
                   
    $filename3 rawurlencode($filename[$i]);
                   
    $dateigesamt $dir '/' $filename[$i];
                   if (
    is_file($dateigesamt)){
                        echo 
    '<td><a href="' $dateigesamt '" target="_blank">' 
    $filename[$i] . ' </a></td>';
                        echo 
    '<td><a href="webspace.php?action=rename&datei='.$dateigesamt.
    '&step=1">Umbenennen </a></td>';
                        echo 
    '<td><a href="webspace.php?action=delete&datei='.$dateigesamt.
    '&step=1">Löschen </a></td>';
                        echo 
    '<td><a href="webspace.php?action=edit&datei='.$dateigesamt.
    '&step=1">Bearbeiten</a></td>';
                   }
                   elseif(
    is_dir($dateigesamt)){
                        echo 
    '<td><a href="webspace.php?ordner=' $dateigesamt '/">'
     
    $filename[$i] . '</a></td>';
                   }
              }
              echo 
    "</tr>\n";
         }
         echo 
    '</table>';

    Vielen Dank im Voraus!

    Phil
    Zuletzt geändert von Phil60; 25.08.2007, 20:39.

  • #2
    Na, 1. ist dein Code viel zu lang und breit!

    als nächstes solltest du einfach aus dem link, der ne ebene höher geht, das /.../ entfernen und statt dessen aus dem bestehenden Link ein verzeichnis entfernen.

    alternativ kannst du auch mit realpath() den pfad "cleanen" lassen.

    Kommentar


    • #3
      Original geschrieben von TobiaZ
      als nächstes solltest du einfach aus dem link, der ne ebene höher geht, das /.../ entfernen und statt dessen aus dem bestehenden Link ein verzeichnis entfernen.
      Danke für deine Antwort!
      Aber wie mache ich das? Es soll ja nur ein Verzeichnis entfernt werden, wenn auch ein /../ entfernt wurde. Ich habs schon mit str_replace() probiert, aber irgendwie haut das bei mir nicht hin!
      Es kommt keine Fehlermeldung, die Punkte bleiben einfach!
      realpath() hab ich aucch schon ausprobiert, aber dann ist der Pfad so:
      user\NeuerOrdner\
      anstatt
      user/NeuerOrdner/
      Ich hab dann auch probiert, die Backslashes durch normale Slashes zu ersetzen, aber da kam eine Fehlermeldung, dass ein Whitespace unerwartet kommt. Ich habs dann auh noch mit der Funkrion chr() versucht, da wurde dann aber gar nichts ersetzt und es kam auch keine Fehlermeldung.
      Kann mir bitte jemand helfen?!

      Phil
      Zuletzt geändert von Phil60; 25.08.2007, 20:46.

      Kommentar


      • #4
        zeig mal die entsprechende stelle.

        und http://www.php-resource.de/forum/sho...threadid=50454

        Kommentar


        • #5
          PHP-Code:
          $filename scandir ($dir);
               
          $size count($filename);
               echo 
          '<table border="1">';
               for(
          $i =0$i<$size;$i++) {
                    echo 
          '<tr>';
                    if(
          $filename[$i] != "."  &&  $filename[$i] != "index.php"){
                         
          $filename3 rawurlencode($filename[$i]);
                         
          $dateigesamt $dir '/' $filename[$i];
                         if (
          is_file($dateigesamt)){
                              echo 
          '<td><a href="' $dateigesamt '" target="_blank">' 
          $filename[$i] . ' </a></td>';
                              echo 
          '<td><a href="webspace.php?action=rename&datei='.$dateigesamt.
          '&step=1">Umbenennen </a></td>';
                              echo 
          '<td><a href="webspace.php?action=delete&datei='.$dateigesamt.
          '&step=1">Löschen </a></td>';
                              echo 
          '<td><a href="webspace.php?action=edit&datei='.$dateigesamt.
          '&step=1">Bearbeiten</a></td>';
                         }
                         elseif(
          is_dir($dateigesamt)){
                              echo 
          '<td><a href="webspace.php?ordner=' $dateigesamt .
           
          '/">' $filename[$i] . '</a></td>';
                         }
                    }
                    echo 
          "</tr>\n";
               }
               echo 
          '</table>'
          Die URL ist in $dateigesamt gespeichert. Dieser String müsste vor der if-Abfrage, ob es ein Ordner oder eine Datei ist, in die URL ohne /../ und dann auch ohne die nächsthöhere Verzeichnisebene umgewandelt werden.

          Phil
          Zuletzt geändert von Phil60; 25.08.2007, 20:39.

          Kommentar


          • #6
            Nö!

            Jetzt liest du gefälligst die Regeln und baust beide Postings entsprechend um!

            Kommentar


            • #7
              Also ich hab beide Beiträge so formatiert und ergänzt, wie es in den Regeln steht.
              Könnte mir bitte jemand einen Denkanstoß geben, wie ich dieses Problem lösen kann?

              Phil

              Kommentar


              • #8
                Wie ist es denn mit String-Funktionen??
                Es gibt nicht für jedes Problem eine fertige PHP-Funktion, manchmal müsst auch ihr Skript-Kiddies euch ein wenig kreativ betätigen und eine eigene Lösung entwickeln!

                Kommentar

                Lädt...
                X