Skillnader jämfört med andra SAPIs

Från Wiki.linux.se
Version från den 3 september 2024 kl. 14.34 av Admin (diskussion | bidrag) (Skapade sidan med '== Skillnader jämfört med andra SAPIs == CLI SAPI skiljer sig på flera noterbara sätt jämfört med andra SAPIs: * Till skillnad från CGI SAPI, skriver CLI inte ut några headers. * Även om CGI SAPI tillhandahåller ett sätt att undertrycka HTTP-headers finns det ingen motsvarande möjlighet i CLI SAPI. * CLI startas upp i tyst läge som standard, men -q och --no-header switcharna behålls för kompatibilitets skull så att äldre CGI-skript kan användas. * Den...')
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

Skillnader jämfört med andra SAPIs

CLI SAPI skiljer sig på flera noterbara sätt jämfört med andra SAPIs:

  • Till skillnad från CGI SAPI, skriver CLI inte ut några headers.
  • Även om CGI SAPI tillhandahåller ett sätt att undertrycka HTTP-headers finns det ingen motsvarande möjlighet i CLI SAPI.
  • CLI startas upp i tyst läge som standard, men -q och --no-header switcharna behålls för kompatibilitets skull så att äldre CGI-skript kan användas.
  • Den ändrar inte arbetsmappen till skriptets mapp (-C och --no-chdir switchar behålls för kompatibilitet).
  • Felmeddelanden är i klartext (ingen HTML-formatering).

Det finns vissa php.ini-direktiv som överskrivs av CLI SAPI eftersom de inte är meningsfulla i skal-miljöer:

Direktiv Standardvärde i CLI SAPI Kommentar
html_errors false Standardinställt till falskt för att det kan vara svårt att läsa felmeddelanden i skal-miljön.
implicit_flush true I en skal-miljö är det önskvärt att utdata från print, echo, etc., visas omedelbart.
max_execution_time 0 (obegränsat) PHP i en skal-miljö används ofta för uppgifter som kan vara långvariga.
register_argc_argv true Säkerställer att skript som körs via CLI SAPI alltid har tillgång till argc och argv.
output_buffering false Output buffering-funktionerna är tillgängliga även om inställningen är hårdkodad till falsk.
max_input_time false PHP CLI stöder inte GET, POST eller filuppladdningar.

Observera:

  • Dessa direktiv kan inte initialiseras med ett annat värde från konfigurationsfilen php.ini. De kan dock ändras under körning.
  • Det rekommenderas att ställa in ignore_user_abort för kommandoradsskript.

CLI SAPI ändrar inte den aktuella katalogen till den katalog där skriptet körs.

Exempel #1 Visar skillnaden till CGI SAPI: <?php // Vårt enkla testprogram som heter test.php echo getcwd(), "\n"; ?> Med CGI-versionen, blir utmatningen:

$ pwd
/tmp

$ php -q another_directory/test.php
/tmp/another_directory

Det visar tydligt att PHP ändrar sin nuvarande katalog till skriptets katalog.

Med CLI SAPI blir det:

$ pwd
/tmp

$ php -f another_directory/test.php
/tmp

Detta tillåter större flexibilitet när man skriver skalverktyg i PHP.

Observera:

  • CGI SAPI stöder detta beteende i CLI SAPI genom att använda -C-switchen när det körs från kommandoraden.


Sidslut

Orginalhemsidan på Engelska :https://www.php.net/manual/en/features.commandline.differences.php

PHP Funktioner


Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp.se som har sponsrat Linux.se med webserver.