(Avancé) Introduction aux fonctions d'exploitation des dossiers et répertoires de fichiers PHP

黄舟
Libérer: 2023-03-05 14:08:01
original
1565 Les gens l'ont consulté

Le texte suivant :

fonction d'opération de dossier php

string basename ( string path [, string suffix] )
Copier après la connexion

Étant donné une chaîne contenant le chemin complet d'un fichier, cette fonction renvoie le nom de base du fichier. Si le nom du fichier se termine par un suffixe, cette partie sera également supprimée.
Sous Windows, la barre oblique (/) et la barre oblique inverse () peuvent être utilisées comme séparateurs de répertoires. Dans d'autres circonstances, il s'agit d'une barre oblique (/).

string dirname ( string path )
Copier après la connexion

donne une chaîne contenant le chemin complet d'un fichier. Cette fonction renvoie le nom du répertoire après avoir supprimé le nom du fichier.
Sous Windows, la barre oblique (/) et la barre oblique inverse () peuvent être utilisées comme séparateurs de répertoires. Dans d'autres circonstances, il s'agit d'une barre oblique (/).

array pathinfo ( string path [, int options] )
Copier après la connexion

pathinfo() renvoie un tableau associatif contenant des informations sur le chemin. Inclut les éléments de tableau suivants : dirname, basename et extension.
Vous pouvez spécifier les unités à renvoyer via les options de paramètre. Ils incluent : PATHINFO_DIRNAME, PATHINFO_BASENAME et PATHINFO_EXTENSION. La valeur par défaut est de renvoyer toutes les unités.

string realpath ( string path )

realpath() développe tous les liens symboliques et gère '/./', '/../' et les caractères redondants dans le chemin d'entrée ' /' et renvoie le chemin d'accès absolu normalisé. Il n'y a aucun lien symbolique, composant '/./' ou '/../' dans le chemin renvoyé.
realpath() renvoie FALSE en cas d'échec, par exemple si le fichier n'existe pas. Sur les systèmes BSD, si le chemin n'existe tout simplement pas, PHP ne renverra pas FALSE comme les autres systèmes.

bool is_dir ( string filename )
Copier après la connexion

Renvoie VRAI si le nom de fichier existe et est un répertoire. Si le nom de fichier est un chemin relatif, son chemin relatif est comparé au répertoire de travail actuel.
Remarque : le résultat de cette fonction sera mis en cache. Voir clearstatcache() pour plus d'informations.

resource opendir ( string path [, resource context] )
Copier après la connexion

Ouvre un descripteur de répertoire qui peut être utilisé dans les appels ultérieurs de closeir(), readdir() et rewinddir().

string readdir ( resource dir_handle )
Copier après la connexion

Renvoie le nom du fichier suivant dans le répertoire. Les noms de fichiers sont renvoyés dans l'ordre dans le système de fichiers.

void closedir ( resource dir_handle )
Copier après la connexion

Ferme le flux de répertoire spécifié par dir_handle. Le flux doit avoir été préalablement ouvert par opendir().

void rewinddir ( resource dir_handle )
Copier après la connexion

Réinitialisez le flux de répertoire spécifié par dir_handle au début du répertoire.

array glob ( string pattern [, int flags] )
Copier après la connexion

La fonction glob() trouve tous les chemins de fichiers correspondant au modèle selon les règles utilisées par la fonction libc glob(), similaires aux règles utilisées par les shells normaux. Aucune extension d’abréviation ni substitution de paramètres n’est effectuée.
Renvoie un tableau contenant les fichiers/répertoires correspondants. Renvoie FALSE si une erreur se produit.

Les balises valides sont :
GLOB_MARK - ajoute une barre oblique à chaque élément renvoyé
GLOB_NOSORT - renvoie les fichiers dans leur ordre d'apparition d'origine dans le répertoire (non triés)
GLOB_NOCHECK - renvoie le modèle à rechercher si aucun fichier ne correspond
GLOB_NOESCAPE - métacaractères antislash non échappés
GLOB_BRACE - développe {a,b,c} pour correspondre à 'a', 'b' ou 'c'
GLOB_ONLYDIR - Retour uniquement les entrées de répertoire correspondant au modèle

Remarque : avant PHP 4.3.3, GLOB_ONLYDIR n'était pas disponible sur Windows ou sur d'autres systèmes qui n'utilisent pas la bibliothèque GNU C.
GLOB_ERR - Arrêtez et lisez les messages d'erreur (tels que les répertoires illisibles), ignorez toutes les erreurs par défaut
Remarque : GLOB_ERR a été ajouté dans PHP 5.1.

Opération du répertoire de fichiers php

Nouveau fichier
1. Déterminez d'abord le contenu du fichier à écrire

$content = '你好';
Copier après la connexion


2. Ouvrez ce fichier (le système créera automatiquement ce fichier vide)

//假设新建的文件叫file.txt,而且在上级目录下。w表示‘写文件',$fp下面要用到,表示指向某个打开的文件。
$fp = fopen('../file.txt', 'w');
Copier après la connexion

3. Écrivez la chaîne de contenu dans le fichier

//$fp告诉系统要写入的文件,写入的内容是$content
fwrite($fp, $content);
Copier après la connexion

4. file

fclose($fp);
Copier après la connexion


Remarque : PHP5 fournit une fonction plus pratique file_put_contents Les 4 étapes ci-dessus peuvent être effectuées comme suit :

$content = '你好';
file_put_contents('file.txt',$content);
Copier après la connexion

Supprimer le fichier.

//删除当前目录下的arch目录下的文件abc.txt
unlink('arch/abc.txt');
Copier après la connexion

Remarque : Le système renverra le résultat de l'opération VRAI en cas de succès, FAUX en cas d'échec. Vous pouvez utiliser une variable pour le recevoir afin de savoir si la suppression est réussie :
<. 🎜>

$deleteResult = unlink(&#39;arch/abc.txt&#39;);
Copier après la connexion
Obtenir le contenu du fichier


//假设获取的目标文件名是file.txt,而且在上级目录下。获取的内容放入$content。
$content = file_get_contents(&#39;../file.txt&#39;);
Copier après la connexion
Modifier le contenu du fichier

La méthode de fonctionnement est fondamentalement la même que la création d'un nouveau contenu

Renommer un fichier ou un répertoire


//将当前目录下的子目录a下面的文件1.gif重命名为2.gif。
rename(&#39;/a/1.gif&#39;, &#39;/a/2.gif&#39;);
Copier après la connexion
Remarque : Il en va de même pour les répertoires. Le système renverra le résultat de l'opération, VRAI en cas de succès et FAUX en cas d'échec. Vous pouvez utiliser une variable pour le recevoir afin de savoir si le changement de nom a réussi.


$renameResult = rename(&#39;/a/1.gif&#39;, &#39;/a/2.gif&#39;);
Copier après la connexion

Si vous souhaitez déplacer un fichier ou un répertoire, définissez simplement le chemin renommé sur le nouveau chemin :

//将当前目录下的子目录a下面的文件1.gif,移动到当前目录下的子目录b,并且重命名为2.gif。
rename(&#39;/a/1.gif&#39;, &#39;/b/2.gif&#39;);
Copier après la connexion
Cependant, veuillez notez que si le répertoire b n'existe pas, le déplacement échouera.


Copier les fichiers


//将当前目录下的子目录a下面的文件1.gif,复制到当前目录下的子目录b,并命名为2.gif。
copy(&#39;/a/1.gif&#39;, &#39;/b/1.gif&#39;);
Copier après la connexion
Remarque : Cette opération ne peut pas être effectuée sur le répertoire.

Si le fichier cible (/b/1.gif ci-dessus) existe déjà, le fichier original sera écrasé.
Le système renverra le résultat de l'opération, VRAI en cas de succès et FAUX en cas d'échec. Vous pouvez utiliser une variable pour le recevoir afin de savoir si la copie a réussi.

$copyResult = copy(&#39;/a/1.gif&#39;, &#39;/b/1.gif&#39;);
Copier après la connexion
Déplacement d'un fichier ou d'un répertoire

La méthode de fonctionnement est la même que pour renommer

Que le fichier ou le répertoire existe


//检查上级目录下的文件logo.jpg是否存在。
$existResult = file_exists(&#39;../logo.jpg&#39;);
Copier après la connexion
Instructions : Le système renvoie vrai si le fichier existe, faux sinon. La même opération peut être effectuée avec les répertoires.


Obtenir la taille du fichier


//获取上级目录下的文件logo.png的大小。
$size = filesize(&#39;../logo.png&#39;);
Copier après la connexion
Description : Le système renverra un nombre indiquant la taille du fichier en octets.


Créer un nouveau répertoire


//在当前目录下的目录a下面新建目录b。
mkdir(&#39;/a/b&#39;);
Copier après la connexion

说明:系统会返回操作结果,成功则返回 TRUE,失败则返回 FALSE,可以用变量接收,就知道是否新建成功:

$mkResult = mkdir(&#39;/a/b&#39;);
Copier après la connexion

删除目录

//删除当前目录下的目录a下面的子目录b。
rmdir(&#39;/a/b&#39;);
Copier après la connexion

说明:只能删除非空的目录,否则必须先删除目录下的子目录和文件,再删除总目录
系统会返回操作结果,成功则返回 TRUE,失败则返回 FALSE,可以用变量接收,就知道是否删除成功:

$deleteResult = rmdir(&#39;/a/b&#39;);
Copier après la connexion

获取目录中的所有文件名
1、先打开要操作的目录,并用一个变量指向它

//打开当前目录下的目录pic下的子目录common。
$handler = opendir(&#39;pic/common&#39;);
Copier après la connexion

2、循环的读取目录下的所有文件

/*其中$filename = readdir($handler)是每次循环的时候将读取的文件名赋值给$filename,
为了不陷于死循环,所以还要让$filename !== false。一定要用!==,因为如果某个文件名如果叫&#39;0&#39;,或者某些被系统认为是代表false,用!=就会停止循环*/
while( ($filename = readdir($handler)) !== false )  {
      3、目录下都会有两个文件,名字为&#39;.&#39;和‘..&#39;,不要对他们进行操作
      if($filename != "." && $filename != "..") {
      4、进行处理
      //这里简单的用echo来输出文件名
      echo $filename;
      }
}
Copier après la connexion

5、关闭目录

closedir($handler);
Copier après la connexion

对象是否是目录

//检查上级目录下的目标对象logo.jpg是否是目录。
$checkResult = is_dir(&#39;../logo.jpg&#39;);
Copier après la connexion

说明:如果目标对象是目录系统返回true,否则返回false。上面例子的$checkResult当然是false。

对象是否是文件

//检查上级目录下的目标对象logo.jpg是否是文件。
$checkResult = is_file(&#39;../logo.jpg&#39;);
Copier après la connexion

说明:如果目标对象是文件,系统返回true,否则返回false。上面例子的$checkResult当然是true。

以上就是(进阶篇)php文件夹与文件目录操作函数介绍的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal