GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu spustit kód PHP z příkazového řádku?

Pokud se chystáte dělat PHP v příkazovém řádku, doporučuji nainstalovat phpsh, slušný PHP shell. Je to mnohem zábavnější.

Každopádně php příkaz nabízí dva přepínače pro spuštění kódu z příkazového řádku :

-r <code>        Run PHP <code> without using script tags <?..?>
-R <code>        Run PHP <code> for every input line

Můžete použít php přepínač -r jako takový:

php -r 'echo function_exists("foo") ? "yes" : "no";'

Výše uvedený příkaz PHP by měl vystupovat no a vrátí 0 jak můžete vidět:

>>> php -r 'echo function_exists("foo") ? "yes" : "no";'
no
>>> echo $? # print the return value of the previous command
0

Dalším vtipným přepínačem je php -a :

-a               Run as interactive shell

Je to jaksi lame ve srovnání s phpsh , ale pokud nechcete instalovat úžasný interaktivní shell pro PHP vytvořený Facebookem, abyste získali dokončení karet, historii atd., pak použijte -a jako takové :

>>> php -a
Interactive shell

php > echo function_exists("foo") ? "yes" : "no";
no
php >

Pokud to nefunguje na vaší krabici jako na mé krabicies (testováno na Ubuntu a Arch Linux), pak pravděpodobně je vaše nastavení PHP nejasné nebo poškozené . Pokud spustíte tento příkaz:

php -i | grep 'API'

Měli byste viz:

Server API => Command Line Interface

Pokud ne , to znamená, že možná jiný příkaz poskytne rozhraní CLI SAPI . Zkuste php-cli; možná je to balíček nebo příkaz dostupný ve vašem OS.

Pokud ano podívejte se, že vaše php příkaz používá rozhraní CLI (rozhraní příkazového řádku) SAPI (Server API), poté spusťte php -h | grep code abyste zjistili, který šílený přepínač – protože se to už rok nezměnilo – umožňuje spouštět kód ve vaší verzi/nastavení.

Dalších pár příkladů, jen abych se ujistil, že to funguje na mých krabicích:

>>> php -r 'echo function_exists("sg_load") ? "yes" : "no";'
no
>>> php -r 'echo function_exists("print_r") ? "yes" : "no";'
yes

Všimněte si také, že je možné, že rozšíření je načteno v CLI a ne v CGI nebo Apache SAPI. Je pravděpodobné, že několik PHP SAPI používá různé soubory php.ini , např. /etc/php/cli/php.ini vs. /etc/php/cgi/php.ini vs. /etc/php/apache/php.ini na Gentoo Linuxovém boxu. Zjistěte, který soubor ini se používá s php -i | grep ini .


Použití PHP z příkazového řádku

Použijte " místo ' v systému Windows při použití verze CLI s -r :

Správně

php -r "echo 1;"

Nesprávné

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

Nezapomeňte středník pro uzavření řádku (jinak je výsledkem "chyba PHP Parse:chyba syntaxe, neočekávaný konec souboru, očekává se ';' nebo ',' v kódu příkazového řádku na řádku 1" ).


Linux
  1. Jak nainstalovat software z příkazového řádku Linuxu

  2. Jak ztlumit z příkazového řádku?

  3. Spouštějte skripty Perl/PHP z příkazového řádku

  1. Jak mohu odeslat e-mail z příkazového řádku?

  2. Jak mohu zadat heslo SSH do SVN na příkazovém řádku?

  3. Jak přenést text z příkazového řádku do schránky

  1. Jak zobrazit seznam modulů načtených nebo povolených v PHP z příkazového řádku

  2. Jak získat adresu URL souboru Dropbox z příkazového řádku?

  3. Jak mohu zapisovat do dmesg z příkazového řádku?