Ankündigung

Einklappen
Keine Ankündigung bisher.

bestimmte dateien nicht anzeigen

Einklappen

Neue Werbung 2019

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

  • Gast-Avatar
    Ein Gast erstellte das Thema bestimmte dateien nicht anzeigen.

    bestimmte dateien nicht anzeigen

    Hallo
    Ich lese ein Verzeichniss und gebe die Dateien/Unterverzeichnisse aus.
    Nun haette ich gerne alle Dateien/Verz. die nicht ".", "..", "inc", "img", oder "index.php" heissen:


    if ($file != "." && $file != ".." && $file != "inc" && $file != "img" && $file != "index.php")

    {

    gebe liste aus

    }

    jetzt sollten aber auch alle dateien die mit .pdf enden nicht ausgegeben werden. leider koennen diese dateien irgendwie heissen.

    wie mache ich das?

    kann mich jemand auf den pfad der erleuchtung fuehren? :P

    merci
    tlz

  • Basti
    antwortet
    Re: klapp mit anpassungen und weitere Fragen

    Hi Thomas.

    Zitat von whiteflea
    Wieso muessen die einzelnen leeren case Anweisungen keine Breaks haben?
    Schau dir nochmal die Funktionsweise im Handbuch an:
    http://php.net/manual/en/control-structures.switch.php
    Am dritten Beispiel wird dieser Punkt erläutert.

    Wenn du switch nehmen möchtest, dann solltest du aber auch alle Bedingungen da reinsetzen ... oder eben alles mit if machen.

    PHP-Code:
    <?php
    switch (true) {

        case (
    $sEntry === "."):
        
    // ...
        
    case (!is_file($sEntry)):
        break;

        default:
        echo 
    "file: $sEntry
    "
    ;

    ?>
    Übrigens solltest du die Foren-Tags [ php ] anstatt [ code ] nehmen, wenn du hier PHP-Code abdruckst.

    Du hast z.T. Hochkommas ' Anstatt wie ich DoppelteHochkommas " genommen. Warum?
    Ich mag es, Anweisungen explizit zu geben und so neme ich immer Hochkommata, da der Inhalt zwischen diesen dann nicht angerührt wird. Ist aber einfach nur meine Gewohnheit und nicht wichtig.

    und dein $Dir->read() gab bei mir ein fatal Error. Ist das pear?
    Nein, kein PEAR. Die Funktion dir($sFilename) gibt ein Dir-Objekt zurück, dass eben z.B. die Methode Dir::read() kennt.
    http://php.net/manual/en/class.dir.php

    Du kannst aber natürlich auch mit opendir() arbeiten.

    Basti

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    klapp mit anpassungen und weitere Fragen

    hmm. klappt mit Anpassungen gut:

    Code:
    <?
    $Dir = $_GET['path'];
    	if(!isset($Dir)) { $Dir = ".";}
    	if ($handle = opendir($Dir))
       {
    	  while (false !== ($sEntry = readdir($handle)))
    		{
    		   switch (true) {
    		
    		      case ($sEntry === "."):
    		      case ($sEntry === ".."):
    		      case ($sEntry === "inc"):
    			  case ($sEntry === "img"):
    			  case ($sEntry === "index.php"):
    		      // ...
    		      case (preg_match("|.pdf$|", $sEntry)):
    		      break;
    		      default:
    			  if(is_file($sEntry))
                  {
    		   	  	echo "$sEntry
    ";
    			  }
    		}
       }
    } 
    ?>
    Wieso muessen die einzelnen leeren case Anweisungen keine Breaks haben?

    Du hast z.T. Hochkommas ' Anstatt wie ich DoppelteHochkommas " genommen. Warum?

    und dein $Dir->read() gab bei mir ein fatal Error. Ist das pear?

    merci
    thomas

    Einen Kommentar schreiben:


  • Basti
    antwortet
    Hi.

    Das könnte z.B. so aussehen:

    PHP-Code:
    <?php
    $Dir 
    dir('.');
    while(
    false !== ($sEntry $Dir->read())) {

        switch (
    true) {

            case (
    $sEntry === '.'):
            case (
    $sEntry === '..'):
            case (
    $sEntry === 'inc'):
            
    // ...
            
    case (preg_match('|.pdf$|'$sEntry)):
            break;

            default:
            print 
    "$sEntry
    "
    ;
        }
    }
    ?>
    Du kannst natürlich auch beim if bleiben. Ich finde es so allerdings mitunter übersichtlicher. "file" als Name für eine Variable, die einen Verzeichniseintrag enthält ist übrigens vielleicht ein wenig missverständlich.

    Basti

    Einen Kommentar schreiben:

Lädt...
X