Skillnader jämfört med andra SAPIs
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
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.