Heim >Backend-Entwicklung >PHP-Tutorial >(Fortgeschritten) Einführung in die PHP-Ordner- und Dateiverzeichnis-Betriebsfunktionen
Der folgende Text:
PHP-Ordneroperationsfunktion
string basename ( string path [, string suffix] )
Bei einer Zeichenfolge mit dem vollständigen Pfad zu einer Datei gibt diese Funktion den grundlegenden Dateinamen zurück. Wenn der Dateiname mit einem Suffix endet, wird dieser Teil ebenfalls entfernt.
In Windows können sowohl Schrägstrich (/) als auch Backslash () als Verzeichnistrennzeichen verwendet werden. Unter anderen Umständen ist es ein Schrägstrich (/).
string dirname ( string path )
gibt eine Zeichenfolge mit dem vollständigen Pfad zu einer Datei zurück. Diese Funktion gibt den Verzeichnisnamen zurück, nachdem der Dateiname entfernt wurde.
In Windows können sowohl Schrägstrich (/) als auch Backslash () als Verzeichnistrennzeichen verwendet werden. Unter anderen Umständen ist es ein Schrägstrich (/).
array pathinfo ( string path [, int options] )
pathinfo() gibt ein assoziatives Array mit Pfadinformationen zurück. Enthält die folgenden Array-Elemente: Verzeichnisname, Basisname und Erweiterung.
Sie können über die Parameteroptionen angeben, welche Einheiten zurückgegeben werden sollen. Dazu gehören: PATHINFO_DIRNAME, PATHINFO_BASENAME und PATHINFO_EXTENSION. Standardmäßig werden alle Einheiten zurückgegeben.
string realpath ( string path )
realpath() erweitert alle symbolischen Links und verarbeitet '/./', '/../' und redundante Zeichen im Eingabepfad ' /' und gibt den normalisierten absoluten Pfadnamen zurück. Der zurückgegebene Pfad enthält keine symbolischen Links, keine „/./“- oder „/../“-Komponenten.
realpath() gibt FALSE zurück, wenn es fehlschlägt, beispielsweise wenn die Datei nicht existiert. Wenn auf BSD-Systemen der Pfad einfach nicht existiert, gibt PHP nicht wie andere Systeme FALSE zurück.
bool is_dir ( string filename )
Gibt TRUE zurück, wenn der Dateiname existiert und ein Verzeichnis ist. Wenn der Dateiname ein relativer Pfad ist, wird sein relativer Pfad mit dem aktuellen Arbeitsverzeichnis verglichen.
Hinweis: Das Ergebnis dieser Funktion wird zwischengespeichert. Weitere Informationen finden Sie unter „clearstatcache()“.
resource opendir ( string path [, resource context] )
Öffnet ein Verzeichnis-Handle, das in nachfolgenden Aufrufen von closeir(), readdir() und rewinddir() verwendet werden kann.
string readdir ( resource dir_handle )
Gibt den Dateinamen der nächsten Datei im Verzeichnis zurück. Dateinamen werden der Reihe nach im Dateisystem zurückgegeben.
void closedir ( resource dir_handle )
Schließt den durch dir_handle angegebenen Verzeichnisstream. Der Stream muss zuvor mit opendir() geöffnet worden sein.
void rewinddir ( resource dir_handle )
Setzen Sie den durch dir_handle angegebenen Verzeichnisstream auf den Anfang des Verzeichnisses zurück.
array glob ( string pattern [, int flags] )
Die Funktion glob() findet alle Dateipfade, die mit dem Muster übereinstimmen, gemäß den von der libc-Funktion glob() verwendeten Regeln, ähnlich den Regeln, die von normalen Shells verwendet werden. Es wird keine Abkürzungserweiterung oder Parameterersetzung durchgeführt.
Gibt ein Array mit passenden Dateien/Verzeichnissen zurück. Gibt FALSE zurück, wenn ein Fehler auftritt.
Gültige Tags sind:
GLOB_MARK – jedem zurückgegebenen Element einen Schrägstrich hinzufügen
GLOB_NOSORT – Dateien in ihrer ursprünglichen Reihenfolge im Verzeichnis zurückgeben (nicht sortiert)
GLOB_NOCHECK – Gibt das Muster zurück, nach dem gesucht werden soll, wenn keine Datei übereinstimmt
GLOB_NOESCAPE – Backslash-Metazeichen ohne Escapezeichen
GLOB_BRACE – erweitert {a,b,c}, sodass es mit „a“, „b“ oder „c“ übereinstimmt
GLOB_ONLYDIR – Zurückgeben nur Verzeichniseinträge, die dem Muster entsprechen
Hinweis: Vor PHP 4.3.3 war GLOB_ONLYDIR auf Windows oder anderen Systemen, die nicht die GNU-C-Bibliothek verwenden, nicht verfügbar.
GLOB_ERR – Fehlermeldungen stoppen und lesen (z. B. nicht lesbare Verzeichnisse), alle Fehler standardmäßig ignorieren
Hinweis: GLOB_ERR wurde in PHP 5.1 hinzugefügt.
PHP-Dateiverzeichnisvorgang
Neue Datei
1 Bestimmen Sie zunächst den Inhalt der zu schreibenden Datei
$content = '你好';
2. Öffnen Sie diese Datei (das System erstellt automatisch diese leere Datei)
//假设新建的文件叫file.txt,而且在上级目录下。w表示‘写文件',$fp下面要用到,表示指向某个打开的文件。 $fp = fopen('../file.txt', 'w');
3. Schreiben Sie die Inhaltszeichenfolge in die Datei
//$fp告诉系统要写入的文件,写入的内容是$content fwrite($fp, $content);
Datei
fclose($fp);
Hinweis: PHP5 bietet eine praktischere Funktion file_put_contents. Die oben genannten 4 Schritte können wie folgt ausgeführt werden:
$content = '你好'; file_put_contents('file.txt',$content);
Datei löschen
//删除当前目录下的arch目录下的文件abc.txt unlink('arch/abc.txt');
Hinweis: Das System gibt das Ergebnis des Vorgangs TRUE zurück, wenn es fehlschlägt. Sie können eine Variable verwenden, um zu erfahren, ob der Löschvorgang erfolgreich war:
$deleteResult = unlink('arch/abc.txt');
Dateiinhalt abrufen
//假设获取的目标文件名是file.txt,而且在上级目录下。获取的内容放入$content。 $content = file_get_contents('../file.txt');
Dateiinhalt ändern
Die Vorgehensweise ist grundsätzlich dieselbe wie beim Erstellen neuer Inhalte
Datei oder Verzeichnis umbenennen
//将当前目录下的子目录a下面的文件1.gif重命名为2.gif。 rename('/a/1.gif', '/a/2.gif');
Hinweis: Das Gleiche gilt für Verzeichnisse. Das System gibt das Operationsergebnis zurück, TRUE, wenn es erfolgreich ist, und FALSE, wenn es fehlschlägt. Sie können es über eine Variable empfangen, um zu erfahren, ob die Umbenennung erfolgreich war.
$renameResult = rename('/a/1.gif', '/a/2.gif');
Wenn Sie eine Datei oder ein Verzeichnis verschieben möchten, stellen Sie einfach den umbenannten Pfad auf den neuen Pfad ein:
//将当前目录下的子目录a下面的文件1.gif,移动到当前目录下的子目录b,并且重命名为2.gif。 rename('/a/1.gif', '/b/2.gif');
Allerdings bitte Beachten Sie, dass die Verschiebung fehlschlägt, wenn Verzeichnis b nicht existiert.
Dateien kopieren
//将当前目录下的子目录a下面的文件1.gif,复制到当前目录下的子目录b,并命名为2.gif。 copy('/a/1.gif', '/b/1.gif');
Hinweis: Dieser Vorgang kann nicht für das Verzeichnis ausgeführt werden.
Wenn die Zieldatei (oben /b/1.gif) bereits vorhanden ist, wird die Originaldatei überschrieben.
Das System gibt das Ergebnis des Vorgangs zurück, TRUE, wenn es erfolgreich war, und FALSE, wenn es fehlgeschlagen ist. Sie können eine Variable verwenden, um es zu empfangen, um zu erfahren, ob der Kopiervorgang erfolgreich war.
$copyResult = copy('/a/1.gif', '/b/1.gif');
Verschieben einer Datei oder eines Verzeichnisses
Die Vorgangsmethode ist die gleiche wie beim Umbenennen
Ob die Datei oder das Verzeichnis vorhanden ist
//检查上级目录下的文件logo.jpg是否存在。 $existResult = file_exists('../logo.jpg');
Anweisungen: Das System gibt true zurück, wenn die Datei vorhanden ist, andernfalls false. Der gleiche Vorgang kann mit Verzeichnissen durchgeführt werden.
Ermitteln Sie die Dateigröße
//获取上级目录下的文件logo.png的大小。 $size = filesize('../logo.png');
Beschreibung: Das System gibt eine Zahl zurück, die die Größe der Datei in Bytes angibt.
Neues Verzeichnis erstellen
//在当前目录下的目录a下面新建目录b。 mkdir('/a/b');
说明:系统会返回操作结果,成功则返回 TRUE,失败则返回 FALSE,可以用变量接收,就知道是否新建成功:
$mkResult = mkdir('/a/b');
删除目录
//删除当前目录下的目录a下面的子目录b。 rmdir('/a/b');
说明:只能删除非空的目录,否则必须先删除目录下的子目录和文件,再删除总目录
系统会返回操作结果,成功则返回 TRUE,失败则返回 FALSE,可以用变量接收,就知道是否删除成功:
$deleteResult = rmdir('/a/b');
获取目录中的所有文件名
1、先打开要操作的目录,并用一个变量指向它
//打开当前目录下的目录pic下的子目录common。 $handler = opendir('pic/common');
2、循环的读取目录下的所有文件
/*其中$filename = readdir($handler)是每次循环的时候将读取的文件名赋值给$filename, 为了不陷于死循环,所以还要让$filename !== false。一定要用!==,因为如果某个文件名如果叫'0',或者某些被系统认为是代表false,用!=就会停止循环*/ while( ($filename = readdir($handler)) !== false ) { 3、目录下都会有两个文件,名字为'.'和‘..',不要对他们进行操作 if($filename != "." && $filename != "..") { 4、进行处理 //这里简单的用echo来输出文件名 echo $filename; } }
5、关闭目录
closedir($handler);
对象是否是目录
//检查上级目录下的目标对象logo.jpg是否是目录。 $checkResult = is_dir('../logo.jpg');
说明:如果目标对象是目录系统返回true,否则返回false。上面例子的$checkResult当然是false。
对象是否是文件
//检查上级目录下的目标对象logo.jpg是否是文件。 $checkResult = is_file('../logo.jpg');
说明:如果目标对象是文件,系统返回true,否则返回false。上面例子的$checkResult当然是true。
以上就是(进阶篇)php文件夹与文件目录操作函数介绍的内容,更多相关内容请关注PHP中文网(www.php.cn)!