Si vous allez faire du PHP en ligne de commande, je vous recommande d'installer phpsh, un shell PHP décent. C'est beaucoup plus amusant.
Quoi qu'il en soit, le php
La commande offre deux commutateurs pour exécuter du code à partir de la ligne de commande :
-r <code> Run PHP <code> without using script tags <?..?>
-R <code> Run PHP <code> for every input line
Vous pouvez utiliser php
le commutateur -r de en tant que tel :
php -r 'echo function_exists("foo") ? "yes" : "no";'
La commande PHP ci-dessus doit sortir no
et retours 0
comme vous pouvez le voir :
>>> php -r 'echo function_exists("foo") ? "yes" : "no";'
no
>>> echo $? # print the return value of the previous command
0
Un autre commutateur amusant est php -a :
-a Run as interactive shell
C'est un peu boiteux comparé à phpsh , mais si vous ne voulez pas installer l'incroyable shell interactif pour PHP créé par Facebook pour obtenir l'achèvement des onglets, l'historique, etc., alors utilisez -a en tant que tel :
>>> php -a
Interactive shell
php > echo function_exists("foo") ? "yes" : "no";
no
php >
Si cela ne fonctionne pas sur ta box comme sur ma boxes (testé sur Ubuntu et Arch Linux), alors votre configuration PHP est probablement floue ou cassée . Si vous exécutez cette commande :
php -i | grep 'API'
Vous devriez voir :
Server API => Command Line Interface
Si vous ne le faites pas , cela signifie que peut-être qu'une autre commande fournira le CLI SAPI . Essayez php-cli ; il s'agit peut-être d'un package ou d'une commande disponible dans votre système d'exploitation.
Si vous le faites voyez que votre php
La commande utilise la CLI (interface de ligne de commande) SAPI (Server API), puis exécutez php -h | grep code
pour découvrir quel commutateur fou - comme cela n'a pas changé depuis un an- permet d'exécuter du code dans votre version/configuration.
Un autre couple d'exemples, juste pour s'assurer que cela fonctionne sur mes boîtes :
>>> php -r 'echo function_exists("sg_load") ? "yes" : "no";'
no
>>> php -r 'echo function_exists("print_r") ? "yes" : "no";'
yes
Notez également qu'il est possible qu'une extension soit chargée dans la CLI et non dans le CGI ou Apache SAPI. Il est probable que plusieurs SAPI PHP utilisent différents fichiers php.ini , par exemple, /etc/php/cli/php.ini
vs /etc/php/cgi/php.ini
vs /etc/php/apache/php.ini
sur une boîte Gentoo Linux. Découvrez quel fichier ini est utilisé avec php -i | grep ini
.
Utiliser PHP depuis la ligne de commande
Utilisez "
au lieu de '
sous Windows lors de l'utilisation de la version CLI avec -r
:
Correct
php -r "echo 1;"
Incorrect
php -r 'echo 1;'
PHP Parse error: syntax error, unexpected ''echo' (T_ENCAPSED_AND_WHITESPACE), expecting end of file in Command line code on line 1
N'oubliez pas le point-virgule pour fermer la ligne (sinon, le résultat est "Erreur d'analyse PHP :erreur de syntaxe, fin de fichier inattendue, attend ';' ou ',' dans le code de ligne de commande sur la ligne 1" ).