Grundlegende Verwendung
Instanziieren Sie ein Ordner-Objekt:
$folder = new \brandbox\component\filesystem\folder('/path/to/folder');
...und suchen Sie nach allen .jpg-Dateien in diesem Ordner mit regex:
$files = $folder->find('.*\.jpg');
Jetzt können wir die Dateien durchlaufen und lesen oder schreiben, an den Inhalt Text anhängen oder einfach die Datei löschen:
foreach($files as $file): $file = new \brandbox\component\filesystem\file($folder->pwd().'/'.$file); $contents = $file->read(); // $file->write('I am overwriting the contents of this file'); // $file->append('I am adding to the bottom of this file.'); // $file->delete(); // I am deleting this file $file->close(); // Be sure to close the file when you're done endforeach;
Ordner-API
class \brandbox\component\filesystem\folder(
string $path = false,
boolean $create = false,
string|boolean $mode = false
)
// Create a new folder with 0755 permissions $dir = new \brandbox\component\filesystem\folder('/path/to/folder', true, 0755);
property folder::$path
Pfad des aktuellen Ordners. ::pwd()
gibt dieselbe Information zurück.
property folder::$sort
Ob die Listenergebnisse nach Namen sortiert werden sollen oder nicht.
property folder::$mode
Modus, der beim Erstellen von Ordnern verwendet werden soll. Der Standardwert ist 0755. Nichts auf Windows-Computern.
static folder::addPathElement(string $path, string $element)
Gibt $path mit $element hinzu, mit korrektem Schrägstrich dazwischen:
$path = \brandbox\component\filesystem\folder::addPathElement('/a/path/for', 'testing'); // $path equals /a/path/for/testing
$element kann auch ein Array sein:
$path = \brandbox\component\filesystem\folder::addPathElement( '/a/path/for', ['testing', 'another'] ); // $path equals /a/path/for/testing/another
folder::cd($path)
Wechseln Sie das Verzeichnis zu $path. Gibt bei einem Fehler den Wert false zurück:
$folder = new \brandbox\component\filesystem\folder('/foo'); echo $folder->path; // Prints /foo $folder->cd('/bar'); echo $folder->path; // Prints /bar $false = $folder->cd('/non-existent-folder');
folder::chmod(string $path, integer $mode = false, boolean $recursive = true, array $exceptions = [])
Ändern Sie den Modus für eine Verzeichnisstruktur rekursiv. Dies beinhaltet auch das Ändern des Modus für Dateien:
$dir = new \brandbox\component\filesystem\folder(); $dir->chmod('/path/to/folder', 0755, true, ['skip_me.php']);
folder::copy(array|string $options = [])
Kopieren Sie ein Verzeichnis rekursiv. Der einzige Parameter $options kann entweder ein Pfad zum Kopieren in oder ein Array von Optionen sein:
$folder1 = new \brandbox\component\filesystem\folder('/path/to/folder1'); $folder1->copy('/path/to/folder2'); // Will put folder1 and all its contents into folder2 $folder = new \brandbox\component\filesystem\folder('/path/to/folder'); $folder->copy([ 'to' => '/path/to/new/folder', 'from' => '/path/to/copy/from', // Will cause a cd() to occur 'mode' => 0755, 'skip' => ['skip-me.php', '.git'], 'scheme' => Folder::SKIP // Skip directories/files that already exist. ]);
Es gibt 3 unterstützte Schemata:
Folder::SKIP
Kopieren / Verschieben von Dateien und Verzeichnissen, die im Zielverzeichnis vorhanden sind, überspringen.Folder::MERGE
Führen Sie die Quell- / Zielverzeichnisse zusammen. Dateien im Quellverzeichnis ersetzen Dateien im Zielverzeichnis. Verzeichnisinhalte werden zusammengeführt.Folder::OVERWRITE
Überschreibt vorhandene Dateien und Verzeichnisse im Zielverzeichnis mit denen im Quellverzeichnis. Wenn sowohl das Ziel als auch das Ziel dasselbe Unterverzeichnis enthalten, wird der Inhalt des Zielverzeichnisses entfernt und durch das der Quelle ersetzt.
static folder::correctSlashFor(string $path)
Gibt einen korrektes Set von Slashes für gegebenen $path
zurück.
folder::create(string $pathname, integer $mode = false)
Erstellen Sie eine Verzeichnisstruktur rekursiv. Kann verwendet werden, um tiefe Pfadstrukturen wie /foo/bar/baz/shoe/horn zu erstellen:
$folder = new \brandbox\component\filesystem\folder(); if($folder->create('foo/bar/baz/shoe/horn')): // Successfully created the nested folders endif;
folder::delete(string $path = null)Verzeichnisse rekursiv entfernen, wenn das System Folgendes zulässt:
$folder = new \brandbox\component\filesystem\folder('foo'); if ($folder->delete()): // Successfully deleted foo and its nested folders endif;
folder::dirsize()
Gibt die Größe dieses Ordners und seines Inhalts in Bytes zurück.
folder::errors()
Erhalten Sie den Fehler von der letzten Methode.
folder::find(string $regexpPattern = '.*', boolean $sort = false)
Gibt ein Array aller übereinstimmenden Dateien im aktuellen Verzeichnis zurück:
// Find all .log in your appRoot/temp/log folder and sort the results $dir = new \brandbox\component\filesystem\folder(APP_ROOT.'temp/log'); $files = $dir->find('.*\.log', true); /* Array ( [0] => log-2018-05-02.log [1] => log-2018-05-03.log [2] => log-2018-05-04.log [3] => log-2018-05-05.log ) */
folder::findRecursive(string $pattern = '.*', boolean $sort = false)
Gibt ein Array aller übereinstimmenden Dateien in und unter dem aktuellen Verzeichnis zurück:
// Recursively find files beginning with test or index $dir = new \brandbox\component\filesystem\folder(APP_ROOT.'temp/log'); $files = $dir->findRecursive('(log|mam).*'); /* Array ( [0] => /var/www/temp/log/log-2018-05-02.log [1] => /var/www/temp/log/log-2018-05-03.log [2] => /var/www/temp/log/log-2018-05-04.log [3] => /var/www/temp/log/mam-2018-05-05.log ) */
folder:
inBrandboxPath
(string $path = '')
Gibt true
zurück, wenn sich die Datei in einem bestimmten brandbox-Pfad befindet.
folder::inPath(string $path = '', boolean $reverse = false)
Gibt true
zurück, wenn sich die Datei im angegebenen Pfad befindet:
$dir = new \brandbox\component\filesystem\folder('/var/www/example/src/'); $result = $dir->inPath('/var/www/example/webroot/'); // $result = false, /var/www/example/src/ is not in /var/www/example/webroot/ $result = $dir->inPath('/var/www/example/root/img/', true); // $result = true, /var/www/example/root/img/ is in /var/www/example/root/
static folder::isAbsolute(string $path)
Gibt true
zurück, wenn der angegebene $path
ein absoluter Pfad ist.
static folder::isSlashTerm(string $path)
Gibt true
zurück, wenn $path
in einem Schrägstrich endet (d. h. mit einem Schrägstrich endet):
$result = \brandbox\component\filesystem\folder::isSlashTerm('/my/test/path'); // $result = false $result = \brandbox\component\filesystem\folder::isSlashTerm('/my/test/path/'); // $result = true
static folder::isWindowsPath(string $path)
Gibt true
zurück, wenn der angegebene $path
ein Windows-Pfad ist.
folder::messages()
Nachrichten der letzten Methode holen.
folder::move(array $options)
Rekursives Verzeichnis verschieben.
static folder::normalizePath(string $path)
Gibt ein korrektes Set von Slashes für $path zurück.
folder::pwd()
Liefert den aktuellen Pfad zurück.
folder::read(boolean $sort = true, array|boolean $exceptions = false, boolean $fullPath = false)
Gibt ein Array des Inhalts des aktuellen Verzeichnisses zurück. Das zurückgegebene Array enthält zwei Unter-Arrays: Eines der Verzeichnisse und eines der Dateien:
$dir = new \brandbox\component\filesystem\folder(APP_ROOT.'plugin/local/...'); $files = $dir->read(true, ['files', 'index.php']); /* Array ( [0] => Array // Folders ( [0] => css [1] => img [2] => js ) [1] => Array // Files ( [0] => .htaccess [1] => favicon.ico [2] => test.php ) ) */
folder::realpath(string $path)
Holen Sie sich den richtigen Pfad (unter Berücksichtigung von "..").
static folder::slashTerm(string $path)
Gibt $path mit einem abschließenden Slash zurück.
folder::tree(null|string $path = null, array|boolean $exceptions = true, null|string $type = null)
Gibt ein Array verschachtelter Verzeichnisse und Dateien in jedem Verzeichnis zurück.
File API
class file(string $path, boolean $create = false, integer $mode = 755)
// Create a new file with 0644 permissions $file = new \brandbox\component\filesystem\file('/path/to/file.php', true, 0644);
property file::$Folder
Das Ordnerobjekt der Datei.
property file::$name
Der Name der Datei mit der Erweiterung. Unterscheidet sich von file::name()
, die den Namen ohne die Erweiterung zurückgibt.
Ein Array von Dateiinformationen. Verwenden Sie stattdessen file::info()
.
property file::$handle
Enthält die Dateihandler-Ressource, wenn die Datei geöffnet wird.
property file::$lock
Sperren Sie die Datei für das Lesen und Schreiben.
property file::$path
Der absolute Pfad der aktuellen Datei.
file::append(string $data, boolean $force = false)
Hängen Sie die angegebene Datenzeichenfolge an die aktuelle Datei an.
file::close()
Schließt die aktuelle Datei, wenn sie geöffnet ist.
file::copy(string $dest, boolean $overwrite = true)
Kopieren Sie die Datei nach $dest
.
file::create()
Erstellt die Datei.
file::delete()
Löscht die Datei.
file::executable()
Gibt true
zurück, wenn die Datei ausführbar ist.
file::exists()
Gibt true
zurück, wenn die Datei existiert.
file::ext()
Gibt die Dateierweiterung zurück.
file::Folder()
Gibt den aktuellen Ordner zurück.
file::group()
Gibt die Dateigruppe zurück oder im Fehlerfall false
.
file::info()
Gibt die Dateiinformationen zurück.
file::lastAccess()
Gibt die letzte Zugriffszeit zurück.
file::lastChange()
Gibt die Zeit der letzten Änderung zurück oder false
im Fehlerfall .
file::md5(integer|boolean $maxsize = 5)
Holen Sie die MD5-Prüfsumme der Datei mit vorheriger Überprüfung der Dateigröße. Gibt im Fehlerfall false
zurück.
file::name()
Gibt den Dateinamen ohne Erweiterung zurück.
file::offset(integer|boolean $offset = false, integer $seek = 0)
Legt den Offset für die aktuell geöffnete Datei fest oder ruft ihn ab.
file::open(string $mode = 'r', boolean $force = false)
Öffnet die aktuelle Datei mit dem angegebenen $mode
.
file::owner()
Gibt den Besitzer der Datei zurück.
file::perms()
Gibt die "chmod" (Berechtigungen) der Datei zurück.
static file::prepare(string $data, boolean $forceWindows = false)
Bereitet eine ASCII-Zeichenfolge zum Schreiben vor. Konvertiert Zeilenenden in den richtigen Terminator für die aktuelle Plattform. Für Windows wird "\r\n" verwendet, "\n" für alle anderen Plattformen.
file::pwd()
Gibt den vollständigen Pfad der Datei zurück.
file::read(string $bytes = false, string $mode = 'rb', boolean $force = false)
Gibt den Inhalt der aktuellen Datei als Zeichenfolge zurück oder gibt bei einem Fehler den Wert false
zurück.
file::readable()
Gibt true
zurück, wenn die Datei lesbar ist.
file::safe(string $name = null, string $ext = null)
Macht Dateinamen zum Speichern sicher.
file::size()
Gibt die Dateigröße in Bytes zurück.
file::writable()
Gibt true
zurück, wenn die Datei beschreibbar ist.
file::write(string $data, string $mode = 'w', boolean$force = false)
Schreibe gegebene Daten in die aktuelle Datei.
file::mime()
Ruft den MIME-Typ der Datei ab, gibt bei einem Fehler den Wert false
zurück.
file::replaceText($search, $replace)
Ersetzt Text in einer Datei. Gibt bei einem Fehler den Wert false
und bei Erfolg den Wert true
zurück.