Comment vérifier l'existence d'un dossier en PHP : is_dir, file_exists ou les deux ?
Bonjour à tous ! Je suis débutant en PHP et j'écris un script pour télécharger des fichiers sur le serveur. Je dois vérifier si le dossier où je vais enregistrer les fichiers existe. S'il n'existe pas, le créer.
Je suis tombé sur deux fonctions : is_dir() et file_exists(). Et maintenant, je ne comprends pas laquelle utiliser. Voici mon code :
$path = '/uploads/images/';
// Option 1
if (is_dir($path)) {
echo "Le dossier existe";
} else {
mkdir($path, 0777, true);
}
// Option 2
if (file_exists($path)) {
echo "Le dossier existe";
} else {
mkdir($path, 0777, true);
}
Les deux options semblent fonctionner, mais j'ai remarqué un comportement étrange. Si on spécifie le chemin vers un fichier et non un dossier, file_exists() retourne true, tandis que is_dir() retourne false. Cela prête à confusion.
J'ai aussi lu que file_exists() met en cache les résultats, ce qui peut entraîner des erreurs. Alors que is_dir() ne le fait pas. Mais je ne suis pas