[PHP 4.3x] root auslesen

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

  • [PHP 4.3x] root auslesen

    So kriege ich alle Ordner und Files aus'm Root angezeigt:

    PHP-Code:
        $handle opendir("../../../../");
        
        while(
    false !== ($file readdir($handle)))
        {
          echo 
    $file."<br>";
        } 
    Im root liegen 6 Ordner und 2 Dateien. Schreibe ich nun:
    PHP-Code:
        $handle opendir("../../../../");
        
        while(
    false !== ($file readdir($handle)))
        {
          if(
    is_dir($file))
          {
            echo 
    "dir: ".$file."<br>";
          }
        } 
    dann wird mir nur dir: . & dir: .. ausgegeben.

    woran kann's liegen?

  • #2
    zum ersten daran, dass du mit dieser pfadangabe wahrscheinlich einen falschen (u.a. leeren) ordner-level erreicht hast (denn sonst würden die 6 ordner und N dateien zu den "." und ".." zusätzlich ausgegeben werden).

    zum anderen sind "." und ".." auch "ordner" und sind in jedem anderen ordner vorhanden (wie du sicherlich weißt, führen die einen level hoch bzw in den stammordner). wenn du auf diese art mit dem dateisystem kommunizieren willst, musst du die beiden manuell ausfiltern.

    Kommentar


    • #3
      mir ist schon klar, wofür die punkte ("." & "..") gut sind. aber schau' dir mal bitte nochmal meine codeschnipsel an. sie sind eigentlich identisch... nur dass eben nicht erkannt wird, ob es ein ordner ist oder nicht. und doch, ich bin in der richtigen ebene! komisch...

      Kommentar


      • #4
        Spontan hätt ich gesagt dass die Ordner die nun in diesem Dir existieren nicht zu dem User/der Gruppe passen die dein Webuser hat und dementsprechend dein "non root webuser" auch keine fremden inhalte angezeigt bekommt

        Kommentar


        • #5
          wenn ich wohl mit dem ersten script alles auslesen kann,
          hab ich wohla uch die entsprechenden rechte dazu.

          Kommentar


          • #6
            PHP-Code:
            $dir "../../../../";
            $handle opendir($dir);
                
                while(
            false !== ($file readdir($handle)))
                {
                  if(
            is_dir($dir $file))
                  {
                    echo 
            "dir: ".$file."<br>";
                  }
                } 

            Kommentar


            • #7
              beide ausschnitte sehen richtig aus, daran wird's nicht liegen..
              versuch mal clearstatcache() vorher anzuwenden, falls der ordner vorher falsch gecached wurde.

              EDIT:
              webstar: wenn schon, dann
              PHP-Code:
              $dir ."/"$file 

              Zuletzt geändert von penizillin; 19.12.2004, 14:14.

              Kommentar


              • #8
                Original geschrieben von penizillin
                beide ausschnitte sehen richtig aus, daran wird's nicht liegen..
                versuch mal clearstatcache() vorher anzuwenden, falls der ordner vorher falsch gecached wurde.

                EDIT:
                webstar: wenn schon, dann
                PHP-Code:
                $dir ."/"$file 

                Ist doch garnicht nötig, wenn dir schon auf "/" endet. Bitte nächste Mal genauer hin schauen.

                Kommentar


                • #9
                  verzeihung, du hast natürlich recht.

                  Kommentar


                  • #10
                    naja.. aber find's bissle umständlich?

                    warum nicht lieber so etwas in der Art:

                    PHP-Code:
                    function get_phat($self,$root) {
                     
                    $i=0;
                     
                    $i2=0;
                     
                    $neu='';
                     
                    $extra explode('/',$self);
                     
                    $max COUNT($extra)-1;

                    foreach ( 
                    $extra AS $var ) {

                     if ( 
                    $i2 $max ) {
                      
                    $neu $neu.$var.'/';
                      }
                     
                    $i2++;
                    }

                     return 
                    $root.$neu;

                    }

                    echo 
                    get_phat($_SERVER['PHP_SELF'],$_SERVER['DOCUMENT_ROOT']) 

                    Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                    sondern mit den Augen das Manual zu lesen.

                    Kommentar


                    • #11
                      Original geschrieben von xManUx
                      function get_phat($self,$root) {
                      OffTopic:

                      was soll den phat bedeuten?
                      ist weder englisch path noch deutsch pfad ?




                      Würde mir überlegen ob ich das ganze nicht rekursiv auslesen würde, damit falls mal irgendwann bedarf besteht ein komplettes Dir mit allen erdenklichen Stuff auszulesen kann anstatt wieder handanlegen zu müssen......

                      Weil so ne Kleinigkeit ist mal schnell gemacht
                      [color=blue]MfG Payne_of_Death[/color]

                      [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
                      [color=red]Merke:[/color]
                      [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

                      Murphy`s Importanst LAWS
                      Jede Lösung bringt nur neue Probleme
                      Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
                      In jedem kleinen Problem steckt ein großes, das gern raus moechte.

                      Kommentar


                      • #12
                        OffTopic:

                        Schmeckt phat Ja hast Recht, war (m)ein Fehler.. Aber keine Lust, dass zu korrigieren.. ;D Kann man ja selbst machen, ist ja kein 10 KM Code.. Sonntags bin eigentlich immer sehr faul, wie man sieht


                        Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                        sondern mit den Augen das Manual zu lesen.

                        Kommentar

                        Lädt...
                        X