Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Programmierung mit PHP  Teil von  Dateisystem via PHP
Professional CronJob-Service

Suche

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP?
In über 130.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 
 
Nützliche Verzeichnisoperationen: Seite 2

SELFPHP ist Shopware Solution Partner
Shopware ist ein vielfach ausgezeichnetes Onlineshop-System der shopware AG, das auf PHP. Zend Framework und SQL basiert.
SELFPHP unterstützt Sie als Shopware Solution Partner bei der Konzeption, Programmierung und Realisierung Ihres Onlineshops und passt Shopware bei Bedarf an Ihre Unternehmensbedürfnisse an. Weitere Informationen



  • GLOB_MARK – Fügt jedem gefundenen Eintrag einen Slash hinzu. Gerade bei Verzeichnissen ist dies wünschenswert, da Dateinamen direkt angehängt werden können.
  • GLOB_NOSORT – Deaktiviert die Sortierung. Die Standardeinstellung ist auf alphabetische Sortierung eingestellt.
  • GLOB_NOCHECK – Falls kein Eintrag gefunden wird, kann man sich hiermit das Suchmuster zurückgeben lassen.
  • GLOB_NOESCAPE – Metazeichen im Suchtreffer werden nicht mit einem Backslash versehen. Unter Windows sollten Sie diese Option setzen.
  • GLOB_BRACE – Setzt einen Platzhalter für mehrere Suchaufzählungen. Der Platzhalter {a,b,c} findet 'a', 'b', oder 'c'.
  • GLOB_ONLYDIR – Bei der Suche werden nur Verzeichnisse berücksichtigt.
  • GLOB_ERR – Stoppt bei einem Lesefehler. Diese Konstante steht erst ab PHP 5.1 zur Verfügung.

Die Konstanten können auch miteinander verbunden werden. Hier ein Syntaxbeispiel:

glob("{[ad]*_?.jpg, [ad]*_?.gif}", GLOB_BRACE|GLOB_ERR)

Folgende Platzhalter stehen zur Verfügung:
  • {Platzhalter,Platzhalter} – Wurde die Konstante GLOB_BRACE gesetzt, so können Sie in geschweiften Klammern mehrere Suchmuster durch ein Komma getrennt angeben. Hierbei handelt es sich dann um eine ODER-Verknüpfung. {*.jpg,*.gif,*.pdf} findet Dateien mit der Endung .jpg, .gif oder .pdf. glob("{*.jpg,*.gif,*pdf}", GLOB_BRACE).
  • ? – Das Fragezeichen steht für genau ein beliebiges Zeichen. glob("bild?1.jpg") findet z. B. die Datei bild_1.jpg.
  • * – Das Sternchen steht für kein oder eine beliebige Anzahl Zeichen. glob("bi*.gif") findet z. B. die Dateien bild.gif, bitmap.gif etc.
  • [] – Die eckigen Klammern finden genau ein Zeichen aus einer in den Klammern definierten Zeichengruppe. Wie auch bei den geschweiften Klammern muss die Konstante GLOB_BRACE gesetzt werden.
  • [acp] – Genau der Buchstabe "a" oder "c" oder "p".
  • [ad] – Genau die Buchstaben "a", "b", "c" und "d".
  • [0-9] – Die Zahlen 0-9.
  • [!Aacp] – Das Ausrufezeichen negiert den Ausdruck. Es darf also nicht "A", "a", "c" oder "p" vorkommen.

Beispiel – Nur Dateinamen, die .jpg oder .png enthalten, aus dem Verzeichnis »daten«

<?php

echo "Dateien:<br>";

foreach (glob("daten/{*.png,*.gif}", GLOB_BRACE) as $filename) {
  echo "$filename Dateigrösse " . filesize($filename) . "<br> \n";
  echo "<img src=$filename><br> \n";
}

?>


Bearbeiten sämtlicher Dateien eines Verzeichnisses

Wollen Sie sämtliche Dateien eines Verzeichnisses und dessen Unterverzeichnisse samt Dateien auflisten und bearbeiten, ist dies mit einer Rekursion möglich. Hierfür habe ich eine nützliche Funktion, die Sie jederzeit einsetzen und auf Ihre Bedürfnisse anpassen können:
<?php

// Sämtliche Dateien in und unterhalb des Verzeichnisses erfassen
function lese_verzeichnisse($v_name,$funk_name,$max_tiefe = 10,$tiefe = 0) {
  if ($tiefe >= $max_tiefe) {
    error_log("Maximale Tiefe $max_tiefe von $v_name.");
    return false;
  }
  $sub_vers = array();
  $files = array();
  if (is_dir($v_name) && is_readable($v_name)) {
    $verzeichnis = dir($v_name);
    while (false !== ($datei = $verzeichnis->read())) {
      // . und .. nicht ausgeben
      if (('.' == $datei) || ('..' == $datei)) {
        continue;
      }
      // Verzeichnisse und symbolische Links
      if (is_dir("$v_name/$datei")) {
        array_push($sub_vers,"$v_name/$datei");
      } else {
        $funk_name("$v_name/$datei");
      }
    }
    $verzeichnis->close();
    // Rekursiver Durchlauf, um die jeweiligen
    // Unterverzeichnisse zu erreichen
    foreach ($sub_vers as $sub_ver) {
      lese_verzeichnisse($sub_ver,$funk_name,$max_tiefe,$tiefe+1);
    }
  }
}

// Funktion zur Formatierung der Ausgabe
function printatime($p_datei) {
  print "<a href=$p_datei>".basename($p_datei)."</a><br>";
}

lese_verzeichnisse('.','printatime');

?>




Nützliche Verzeichnisoperationen Seite 1
 




:: Premium-Partner ::

Webhosting/Serverlösungen

PSW GROUP GmbH & Co. KG weitere Premium-Partner
 

:: SELFPHP Sponsor ::

Microsoft Deutschland GmbH weitere Sponsoren
 


:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Webhosting/Serverlösungen

Suchen Sie den für Sie passenden IT-Dienstleister für Ihr Webhosting-Paket oder Ihre Serverlösung?

Sie sind nur ein paar Klicks davon entfernt!


 

Ausgewählter Tipp im Bereich PHP-Skripte


Captcha – Der Unterschied zwischen Mensch und Maschine

Weitere interessante Beispiele aus dem SELFPHP Kochbuch finden Sie im Bereich PHP-Skripte
 

SELFPHP Code Snippet


Das aktuelle Jahr in Kalenderform darstellen

Weitere interessante Code Snippets finden Sie auf SELFPHP im Bereich PHP Code Snippets
 
© 2001-2024 E-Mail SELFPHP Inh. Damir Enseleit, info@selfphp.deImpressumKontakt
© 2005-2024 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de