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');
?>
|