Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Komme nicht weiter, dateianzeige

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Komme nicht weiter, dateianzeige

    Guten Morgen liebe Phpler,

    ich hab mir nen kleines Script geschrieben das dateien aus einem bestimmten ordner ausliest. Soweit auch kein Problem
    PHP-Code:
    $dir_handle opendir($path);
    while (
    $filename readdir($dir_handle))
    {
        if (
    $filename != '..' && $filename != '.' &&  !is_dir("$path/$filename") )
        {......... 
    so dateien aus dem vorher festgelegten verzeichniss werden angezeigt, eventuelle ordner werden nicht angezeigt. Jetzt möchte ich das ganze aber erweitern und zwar sollen nur dateien angezeigt werden die chmod 777 haben. mit
    PHP-Code:
     if(fileperms($file) & 777 ){ 
    geht das nicht. Ich hoffe ihr könnt mir da helfen

    Mr Wrong

  • #2
    PHP-Code:
     if(fileperms($file) & 777 ){ 
    Was ist das bitte für eine Syntax? Grundlagen lernen!

    Und bitte ändere deinen Threadtitel.

    Lösung:

    PHP-Code:
     if($filename != '..' && $filename != '.' &&  !is_dir("$path/$filename") && fileperms("$path/$filename") == 777 ){ 
    aber nur weil ich so nett bin...

    Kommentar


    • #3
      Die 777 bezieht sich auf oktale Darstellung.
      Mit fileperms($file) & 777 verknüpfst Du den Wert allerdings mit der Dezimalzahl 777.
      Um PHP ein Oktalzahl-Literal anzuzeigen, musst Du eine 0 davor schreiben.

      Außerdem willst Du nicht nur wissen ob "einige" Bits von 0777 gesetzt sind, sondern alle. Nach der UND-Verknüpfung muss das Resultat also genau Deiner Maske entsprechen.
      PHP-Code:
       if( 0777==(fileperms($file)&0777) ){ 

      Kommentar


      • #4
        @:cycap hmhm an deiner nettigkeit habe ich zweifel. sie syntax kommt aus dem php manual.
        Und dein code stimmt auch nicht, btw funktioniert nicht. es wird jetzt gar keine datei mehr angezeigt, so hatte ich das zuvor auch schon probiert.

        @ David: danke für die Antwort, leider funktioniert dein Codeteil auch nicht. Selbes Problem wie bei Cycap. Mir werden jetzt keine Dateien mehr angezeigt.

        Kommentar


        • #5
          $file ist in Deinem Fall natürlich "$path/$filename". Daran hast Du gedacht?

          Kommentar


          • #6
            @ david *nick* ja habe ich. je nachdem wie ichs ändere, wird entweder nichts oder alles angezeigt. bei file nichts, bei path/filename alles auch dateien die anderen chmod haben. wie gesagt soweit war ich beim experimentieren auch schon^^.

            Kommentar


            • #7
              Dann lass Dir die Dateirechte doch einfach mal anzeigen.
              PHP-Code:
              printf("%s %o\n""$path/$filename"fileperms("$path/$filename")); 
              Was wird ausgegeben?

              edit: Bei mir unter winxp zum Beispiel
              PHP-Code:
              <?php
              $path 
              'd:';
              $dir_handle opendir($path);
              while (
              $filename readdir($dir_handle))
              {
                if (
              $filename != '..' && $filename != '.' &&  !is_dir("$path/$filename") )
                {
                  
              printf("%s %o\n""$path/$filename"fileperms("$path/$filename"));
                  if( 
              0777==(fileperms("$path/$filename")&0777) ) {
                    echo 
              "j\n";
                  }
                  else {
                    echo 
              "n\n";
                  }
                }
              }
              d:/basis1.tib 100666
              n
              d:/basis20081113.tib 100666
              n
              d:/dotnetfx35.exe 100777
              j

              d:/htdocs.rar 100666
              n
              d:/OODBS.lor 100666
              n
              d:/pagefile.sys 100666
              n
              edit2:
              if ($filename != '..' && $filename != '.' && !is_dir("$path/$filename") )
              . und .. sind Verzeichnisse, also kannst Du das zusammenfassen als
              PHP-Code:
              if ( !is_dir("$path/$filename") ) 

              Kommentar


              • #8
                @ david:

                danke werde ich später versuchen, habe erst mal die dateien die nicht eigesehen werden dürfen in einen anderen Ordner gelegt ^^


                . und .. sind Verzeichnisse, also kannst Du das zusammenfassen als
                PHP-Code:
                if ( !is_dir("$path/$filename")
                oh super danke, aber wie kommts dann, das wenn ich !is_dir(etc) nicht drin habe die Verzeichnisse angezeigt werden, wenn . und .. auch verzeichnisse sind?

                lg
                Mr

                Kommentar


                • #9
                  Zitat von Mr Wrong
                  aber wie kommts dann, das wenn ich !is_dir(etc) nicht drin habe die Verzeichnisse angezeigt werden, wenn . und .. auch verzeichnisse sind?
                  Die Frage verstehe ich nicht. Liest sich für mich wie "Wenn Äpfel Kernobstgewächse sind, warum sind dann nicht alle Kernobstgewächse Äpfel?"

                  Kommentar


                  • #10
                    g danke habs hinbekommen

                    Kommentar

                    Lädt...
                    X