Jump to content
×
×
  • Create New...

Vérifier l’Existence des Fichiers


Ioio

Recommended Posts

Niveau requis Débutant

Temps estimé : 15 minutes

Hello !

 

Pour un peu spammer cette partie quasi morte du forum Funky-Emu, j'ai aujourd'hui décidé de vous partager une simple fonction que j'ai été amené à coder en travaillant sur un projet privé personnel. Cette fonction permet, comme dit dans le titre de vérifier l'existence de plusieurs fichiers à la foi en une seule fonction à la manière de file_exists. Je ne sais pas s'ils ont l'intention de standardiser cela dans de futures versions de PHP mais en tout cas, dans certains cas, ça peut réduire nettement le nombre de caractères dans un fichier php ! Toujours dans un soucis de compression, n'hésitez pas à supprimer tous les commentaires aussi si vous utilisez cela ;)

 

Si vous ne comprenez pas l'anglais :

 

  • Fonction pour vérifier l'existence de plusieurs fichiers à la foi
  • Le ... signifie que la fonction peut recevoir plusieurs répertoires à vérifier
  • Pour chaque répertoire...
  • Vérification de l'existence
  • Si un répertoire est sans issue, stopper tout et signaler...
  • Si tout c'est bien passé, cela veut dire que tout c'est bien passé.

 

Révélation

 

<?php
/* Function to check for multiple file existences . */
/*
EXPLICATION:
	La fonction va chercher l'existance des fichiers $st et va enregistrer les $st non-existants dans &$ar.
	i: &$ar peut être ou pas initialisé avant d'être passé en argument.
	i: &$ar sera directement vidé s'il n'est pas vide

FONCTIONNEMENT:
	1. &$ signifie "référence à la variable". Si elle n'existe pas, elle est automatiquement initialisée.
	2. "..." avant le dernier argument signifie que l'on peut avoir plusieurs valeurs différentes pour cet argument tant variables ($var) que constants ("const").
	3. En résumé, pour chaque (foreach) répertoire, si un fichier n'existe pas, on l'ajoute dans le tableau. On retourne à la fin true si le tableau est vide, false si certains fichiers n'existent pas.
*/

function files_exist(&$ar, ...$st) {
$ar = array();
foreach($st as $s) {
	if(!file_exists($s))
		$ar[] = $s;
}
return ($ar == array());
}

/*
EXEMPLE 1:
	1.1 Imaginons que j'essaye cette fonction avec le code suivant dans un répertoire où te.php n'existe pas.
		RETOURNÉ:  Array ( [0] => te.php )
	1.2 Maintenant si te.php exite...
		RETOURNÉ: On continue !
*/
if(!files_exist($a, "index.php", "te.php"))
print_r($a);
else
exit("On continue !");
?>

 

 

 

Cordialement,

Hey hey

  • J'adore 1
Link to comment
  • Replies 5
  • Created
  • Last Reply

Top Posters In This Topic

Le problème de ta fonction, c'est que tu ne saura pas quel fichier est inexistant, hors il est selon moi important de la savoir.

 

Au lieu du retour booléen, tu pourrais faire un array qui stock la liste des fichiers inexistants et qui est retourné par la suite.

De ce fait, si tous les fichiers sont bien présent, le retour sera NULL. Sinon le retour de ta fonction serais un array (ou un objet peu importe) contenant la liste des fichiers qui n'ont pas pus être trouvés :)

 

En espérant t'avoir donné de bons indices pour améliorer ton script.

XIII

Link to comment

Saaalut !

 

Suite à vos suggestions, j'ai mis à jour mon script.

J'en ai profité pour mieux commenter et j'ai rajouté un exemple.

L'avantage de ce système c'est que la valeur de retour restera la même que pour un simple file_exists mais que de plus, grâce au tableau (1er argument), nous pourrons voir quels fichiers n'existent pas.

En tout cas, merci pour vos suggestions qui m'ont fait réfléchir,

 

Cdt,

Link to comment

Si la fonction retourne un array, elle ne retourne plus false.

 

Je le sais, juste a faire un empty($array)

 

Le problème de ta fonction, c'est que tu ne saura pas quel fichier est inexistant, hors il est selon moi important de la savoir.

 

Au lieu du retour booléen, tu pourrais faire un array qui stock la liste des fichiers inexistants et qui est retourné par la suite.

De ce fait, si tous les fichiers sont bien présent, le retour sera NULL. Sinon le retour de ta fonction serais un array (ou un objet peu importe) contenant la liste des fichiers qui n'ont pas pus être trouvés :)

 

En espérant t'avoir donné de bons indices pour améliorer ton script.

C'est ce que je disais plus haut :)

 

Saaalut !

 

Suite à vos suggestions, j'ai mis à jour mon script.

J'en ai profité pour mieux commenter et j'ai rajouté un exemple.

L'avantage de ce système c'est que la valeur de retour restera la même que pour un simple file_exists mais que de plus, grâce au tableau (1er argument), nous pourrons voir quels fichiers n'existent pas.

En tout cas, merci pour vos suggestions qui m'ont fait réfléchir,

 

Cdt,

Content d'avoir aidé :)

Partages :

Projets :

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Flux d'Activité

    1. 2

      Site internet (CMS) compatible avec tous les emulateurs 1.29 (Azuriom)

    2. 2

      Site internet (CMS) compatible avec tous les emulateurs 1.29 (Azuriom)

    3. 84

      Granny

    4. 32

      Rodnia.net | PVM | International | The Great Conqueror |

    5. 16

      Map The OpenWorld Metin2

    6. 0
    7. 6

      [V2]Gurgarath Resurgence

  • Recently Browsing

    • No registered users viewing this page.

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.