SAlut tous le monde
J'ai besoin d'exécuter un fichier .php en ligne de commande , mais le problème que ce fichier fait appel à d'autres avec 'require_once et require'
Quelqu'un a une proposition?
Merci
SAlut tous le monde
J'ai besoin d'exécuter un fichier .php en ligne de commande , mais le problème que ce fichier fait appel à d'autres avec 'require_once et require'
Quelqu'un a une proposition?
Merci
Si les scripts à inclure sont à retrouver relativement au script initialement exécuté il suffit de se baser sur dirname(__FILE__) pour leurs chemins au niveau de l'inclusion (équivalent de la constante __DIR__ depuis 5.3.0).
Exemple, si on a :
On exécute main.php via :
Code X : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 /X/Y/main.php /X/lib/graph.php /X/lib/functions.php
Et dans main.php, pour inclure ../lib/*.php, il faut utiliser :
Code X : Sélectionner tout - Visualiser dans une fenêtre à part php /X/Y/main.php
Puisque, en CLI, PHP ne modifie pas le répertoire courant pour celui du script initialement exécuté comme c'est le cas en contexte web. Donc, pour retrouver le chemin du script exécuté il faut utiliser dirname(__FILE__).
Code X : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 require_once(realpath(dirname(__FILE__) . '/../lib/graph.php')); require_once(realpath(dirname(__FILE__) . '/../lib/functions.php'));
(en sachant que depuis la version 5.3.0, on peut remplacer dirname(__FILE__) par la constante __DIR__).
Partager