Skillnader mellan CLI och CGI
📅 15. 10. 2021
PHP kan köras i olika miljöer. Den vanligaste miljön är CGI
, som körs när PHP behandlar en HTTP-förfrågan. Det är dock också möjligt att köra ett PHP-skript från terminalen, vilket i så fall är en så kallad CLI-uppgift (Command-line interface).
De viktigaste skillnaderna mellan CLI och CGI
- Till skillnad från
CGI SAPI
skriverCLI
som standard inga rubriker till utdata. - Det finns några
php.ini
-direktiv som åsidosätts iCLI SAPI
eftersom de är meningslösa i en skalmiljö:-
html_errors
: CLI har som standardvärdeFALSE
. -
implicit_flush
: standardvärdet för CLI ärTRUE
. -
max_execution_time
: standardvärdet för CLI är0
(obegränsad). -
register_argc_argv
: standardvärdet för CLI ärTRUE
.
-
- Skriptet kan ta emot kommandoradsargument! Variabeln
$argc
anger antalet argument som skickas till programmet. Och fältet$argv
ger dig en matris med faktiska argument. - Det finns tre nya konstanter definierade för skalmiljön:
STDIN
,STDOUT
,STDERR
. Alla är filhanterare för motsvarande skalenhet. Till exempel ärSTDIN
en filhanterare förfopen('php://stdin', 'r')
. Så du kan läsa en rad frånSTDIN
på följande sätt:$strLine = trim(fgets(STDIN));
.STDIN
är redan definierad för dig med hjälp avPHP CLI
. - PHP CLI ändrar inte den aktuella katalogen till katalogen för det skript som körs. Den aktuella katalogen för skriptet är den katalog där du kör PHP CLI-kommandot.
- Det finns ett antal användbara alternativ för PHP CLI. Med dessa kan du få värdefull information om din php-installation, ditt php-skript eller köra det i olika lägen.
- I PHP 5 har det gjorts vissa ändringar i filnamnen för CLI och CGI. I PHP 5 har CGI-versionen bytt namn till
php-cgi.exe
(tidigarephp.exe
) och CLI-versionen finns nu i huvudkatalogen (tidigarecli/php.exe
). - Ett nytt läge har också införts i PHP 5:
php-win.exe
. Detta är likvärdigt med CLI-versionen, förutom att inget skrivs ut iphp-win
och att det därför inte finns någon konsol (ingen "dosbox" visas på skärmen). Detta beteende liknarPHP GTK
.
Jan Barášek Mer om författaren
Författaren arbetar som senior utvecklare och mjukvaruarkitekt i Prag. Han utformar och förvaltar stora webbprogram som du känner till och använder. Sedan 2009 har han skaffat sig en stor erfarenhet som han förmedlar via denna webbplats.
Jag hjälper gärna till:
Kontakt