PHP Manual
/
Serveradministration

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 skriver CLI som standard inga rubriker till utdata.
  • Det finns några php.ini-direktiv som åsidosätts i CLI SAPI eftersom de är meningslösa i en skalmiljö:
    • html_errors: CLI har som standardvärde FALSE.
    • implicit_flush: standardvärdet för CLI är TRUE.
    • max_execution_time: standardvärdet för CLI är 0 (obegränsad).
    • register_argc_argv: standardvärdet för CLI är TRUE.
  • 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 är STDIN en filhanterare för fopen('php://stdin', 'r'). Så du kan läsa en rad från STDIN på följande sätt: $strLine = trim(fgets(STDIN));. STDIN är redan definierad för dig med hjälp av PHP 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 (tidigare php.exe) och CLI-versionen finns nu i huvudkatalogen (tidigare cli/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 i php-win och att det därför inte finns någon konsol (ingen "dosbox" visas på skärmen). Detta beteende liknar PHP GTK.

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
4.
Status:
All systems normal.
2024