J'ai besoin d'une fonction/instruction include
qui n'inclura un fichier que s'il existe. Est-ce qu'il y en a un en PHP?
Vous pouvez suggérer d'utiliser @include
, mais cette approche pose un problème: si le fichier à inclure existe, PHP ne générera pas d'avertissement si l'analyseur trouve un problème dans le fichier inclus.
if(file_exists('file.php'))
include 'file.php';
Ça devrait faire ce que tu veux
Essayez d’utiliser file_exists()
if(file_exists($file)){
include $file;
}
Basé sur la réponse de @ Select0r, j'ai fini par utiliser
if (file_exists(stream_resolve_include_path($file)))
include($file);
Cette solution fonctionne même si vous écrivez ce code dans un fichier qui a été inclus à partir d'un fichier situé dans un autre répertoire.
Que diriez-vous d'utiliser file_exists
avant la include
?
Découvrez la fonction stream_resolve_include_path
.
Je pense que vous devez utiliser file_exists
, car s'il y avait eu une telle inclusion, elle aurait été répertoriée ici: http://php.net/manual/en/function.include.php
le @
supprime les messages d'erreur.
vous utilisez le cloud:
$file = 'script.php';
if(file_exists($file))
include($file);
@include($file);
L'utilisation de at, ignore toutes les erreurs que cette fonction pourrait générer ... Ne pas en abuser car IT IS est beaucoup plus lent que de vérifier avec si, mais c'est l'alternative de code la plus courte.