Maison  >  Article  >  développement back-end  >  Pourquoi la fonction php file_exists() n'a-t-elle aucun effet ?

Pourquoi la fonction php file_exists() n'a-t-elle aucun effet ?

怪我咯
怪我咯original
2017-07-11 10:54:342786parcourir

file_exists — Vérifie si le fichier ou le répertoire existe, renvoie VRAI si le fichier ou le répertoire spécifié existe, sinon renvoie FALSE. Cet article est une analyse détaillée et une introduction à la solution invalide de file_exists en php. Les amis dans le besoin peuvent se référer à

. Méthode 1 : Selon le manuel officiel, si les paramètres liés au mode sans échec du tutoriel php sont trop stricts, il y aura une situation comme celle-ci : même si le fichier existe réellement, il sera signalé par erreur que le fichier n'existe pas.

Comme nous ne pouvons pas contrôler le php.ini côté serveur, nous ne pouvons pas désactiver le mode sans échec lors de l'utilisation de ini_set(). Nous ne pouvons que nous contenter de la meilleure chose suivante et trouver un. méthode de détection plus fiable et plus sûre pour vérifier si le fichier existe. Nous pouvons y parvenir avec l'aide de $_server['document_root']. $_server['document_root'] renvoie le répertoire racine du site Web. Le dernier sous-répertoire du répertoire ne contient pas l'identifiant de répertoire "/", tel que :
d:/www/htdocs
Avec le répertoire racine et le chemin du fichier à détecter, nous obtiendrons un chemin absolu, et PHP pourra utiliser avec succès la fonction file_exists() pour le détecter. Il suffit de changer la première ligne du code ci-dessus (notez que nous avons ajouté le symbole "/" avant config.php) :
$file=$_server['document_root']."/config.php " ;
De cette façon, l'exécution du code est très fiable et il n'y aura pas de résultats inattendus.
La méthode ci-dessus est également applicable à la fonction de détection associée du répertoire (is_dir()) ou du fichier (is_file()), qui peut détecter si le répertoire ou le fichier protégé par la sécurité existe.

Enfin, au fait : vous n'avez pas besoin d'ajouter $_server['document_root' lorsque vous référencez des fichiers protégés par des paramètres PHP spéciaux (include et require) ] chemins car, selon la documentation PHP, ils peuvent être référencés.

Méthode 2 : Dans mon cas, le fichier a été déplacé entre Windows et Linux. En conséquence, les autorisations d'accès aux fichiers et répertoires sous Linux sont modifiées, ce qui fait que personne, à l'exception du propriétaire du fichier, n'a d'autorisations d'accès. L'utilisation de chmod -r 755 xxx/* a résolu le problème.

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!

Déclaration:
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