Utilisez la fonction PHP glob() pour rechercher des fichiers en fonction des caractères génériques dans les noms de fichiers

PHPz
Libérer: 2023-06-27 13:34:01
original
1653 Les gens l'ont consulté

Lors du traitement des fichiers, nous rencontrons souvent des situations où nous devons rechercher des fichiers spécifiques. Si le nombre de fichiers est faible, une recherche manuelle peut être utilisée. Toutefois, si un grand nombre de fichiers sont impliqués, la recherche manuelle devient fastidieuse. À l’heure actuelle, une fonction utile s’avère utile : la fonction glob().

La fonction glob() est une fonction très pratique en PHP, qui permet de rechercher des fichiers et des répertoires en spécifiant des caractères génériques. La fonction glob() peut également trier et filtrer les fichiers trouvés grâce à divers paramètres, nous permettant de trouver rapidement les fichiers dont nous avons besoin parmi un grand nombre de fichiers.

Ci-dessous, nous commençons par l'utilisation de base de la fonction et présentons progressivement comment utiliser la fonction glob(). L'utilisation de base de la fonction

glob()

glob() est très simple. Elle n'a qu'un seul paramètre : un caractère générique représentant le fichier qui doit être trouvé. Voici un exemple :

$files = glob('/path/to/files/*.jpg');
Copier après la connexion

Le caractère générique dans cet exemple est "*.jpg", ce qui signifie rechercher tous les fichiers avec le suffixe ".jpg" dans le répertoire /path/to/files/. Les résultats trouvés seront renvoyés sous forme de tableau.

Si nous voulons trouver tous les fichiers et sous-répertoires d'un certain répertoire, nous pouvons utiliser le caractère générique "**":

$files = glob('/path/to/files/**');
Copier après la connexion

De cette façon, nous pouvons trouver tous les fichiers et répertoires dans le répertoire /path/to/files/ , y compris les sous-répertoires fichiers et répertoires ci-dessous.

De plus, nous pouvons également utiliser des crochets dans les caractères génériques pour spécifier un ensemble de caractères :

$files = glob('/path/to/files/[abc]*');
Copier après la connexion

De cette façon, vous pouvez trouver tous les fichiers commençant par "a", "b" ou "c".

Utilisation avancée de la fonction glob()

L'utilisation de base de la fonction glob() est présentée ci-dessus. Cependant, nous pouvons également définir des paramètres pour trier et filtrer les résultats trouvés.

Définir la méthode de tri

En définissant le deuxième paramètre (indiquant le mode de tri), nous pouvons trier les résultats trouvés. Voici quelques modes de tri couramment utilisés :

  • GLOB_NOSORT : Le mode de tri par défaut, aucun tri n'est effectué.
  • GLOB_NOCHECK : Aucune vérification d'erreur.
  • GLOB_NOCASE : non sensible à la casse.
  • GLOB_BRACE : activez l'expansion des accolades, vous pouvez utiliser des accolades dans les caractères génériques.
  • GLOB_ONLYDIR : recherche uniquement dans les répertoires.
  • GLOB_ERR : Arrêtez la recherche si une erreur survient.

Par exemple, si nous voulons trier tous les fichiers avec le suffixe ".jpg" dans l'ordre inverse par nom, nous pouvons utiliser le code suivant :

$files = glob('/path/to/files/*.jpg', GLOB_NOSORT|GLOB_NOCHECK);
rsort($files);
Copier après la connexion

Dans cet exemple, nous utilisons deux constantes GLOB_NOSORT et GLOB_NOCHECK pour définir le méthode de tri.

Définir le filtre

En définissant le troisième paramètre (indiquant le filtre), nous pouvons filtrer les résultats trouvés. Voici quelques filtres couramment utilisés :

  • GLOB_MARK : Ajoutez "/" aux résultats pour indiquer un répertoire.
  • GLOB_NOSORT : Pas de tri.
  • GLOB_ONLYDIR : recherche uniquement dans les répertoires.
  • GLOB_ERR : Arrêtez la recherche si une erreur survient.
  • GLOB_BRACE : activez l'expansion des accolades, vous pouvez utiliser des accolades dans les caractères génériques.
  • GLOB_NOESCAPE : Si cette option est activée, "" dans les caractères génériques ne sera pas échappé.
  • GLOB_NOCHECK : Aucune vérification d'erreur.
  • GLOB_NOCASE : les noms de fichiers ne sont pas sensibles à la casse.

Par exemple, si nous n'avons besoin de trouver que des fichiers d'une taille de 100 Mo ou moins, nous pouvons utiliser le code suivant :

$files = glob('/path/to/files/*.*');
array_filter($files, function($file) {
  return filesize($file) <= 100 * 1024 * 1024;
});
Copier après la connexion

Dans cet exemple, nous utilisons la fonction array_filter() pour filtrer les résultats.

Résumé

Grâce aux exemples ci-dessus, nous avons appris à utiliser la fonction glob() pour rechercher des fichiers et des répertoires en PHP. La fonction glob() est très simple et pratique, et possède de nombreux paramètres et utilisations, qui permettent d'obtenir une recherche et un traitement de fichiers plus complexes et plus flexibles. Dans les projets PHP, nous pouvons choisir la fonction glob() pour traiter un grand nombre de fichiers et de répertoires de manière simple et efficace.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

É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