[PHP 4.3x] root auslesen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [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.

    Comment


    • #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...

      Comment


      • #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

        Comment


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

          Comment


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

            Comment


            • #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 

              Last edited by penizillin; 19-12-2004, 14:14.

              Comment


              • #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.

                Comment


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

                  Comment


                  • #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.

                    Comment


                    • #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.

                      Comment


                      • #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.

                        Comment

                        Working...
                        X