Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in den PHP-Befehlszeilenmodus

Einführung in den PHP-Befehlszeilenmodus

尚
nach vorne
2020-03-12 13:16:592282Durchsuche

Einführung in den PHP-Befehlszeilenmodus

Der PHP-Vollsatz-Zeilenmodus, nämlich php-cli, wird in der offiziellen Dokumentation als CLI SAPI (Server Application Programming Interface, Server Application Programming Port) bezeichnet. Es klingt kompliziert. Tatsächlich leitet sich dieser Name von der Tatsache ab, dass PHP ursprünglich eine serverseitige Skriptsprache war.

Unterschiede zum Servermodus

Der Servermodus verfügt hauptsächlich über zwei Arbeitsmodi: als Webservermodus oder als ausführbares CGI-Programm. als Modul in Apache (z. B. php5apache2.dll); letzteres als ausführbares Programm, z. B. php-cig. Der aktuelle Ersatz ist php-fpm (FastCGI Process Manager). fpm-Konfiguration. Legen Sie auf dem Server eine Skriptdatei mit dem Inhalt ab:

<?php
phpinfo();
?>

Ausgabe:

...
Server API	FPM/FastCGI
Virtual Directory Support	disabled
Configuration File (php.ini) Path	/etc/php7
Loaded Configuration File	/etc/php7/php.ini
Scan this dir for additional .ini files	/etc/php7/conf.d
...

Anweisungen: Die Konfigurationsdatei ist /etc/php7/php.ini's /etc/php7/conf.d

Sehen Sie sich die CLI-Modus-Konfigurationsdatei noch einmal an. Führen Sie

php -r "phpinfo();"

-r aus, was bedeutet, dass der vollständige Satz ausgeführt wird:

...
Server API => Command Line Interface
Virtual Directory Support => disabled
Configuration File (php.ini) Path => /etc/php/7.0/cli
Loaded Configuration File => /etc/php/7.0/cli/php.ini
Scan this dir for additional .ini files => /etc/php/7.0/cli/conf.d
Additional .ini files parsed => /etc/php/7.0/cli/conf.d/10-opcache.ini,
...

Der Pfad der Konfigurationsdatei lautet: / etc/php/7.0 /cli/php.ini und php-fpm sind unterschiedlich.

Ich höre oft Leute sagen, dass PHP nur als temporäres Serverskript und nicht für langfristige Arbeiten verwendet werden kann und dass die Sicherheitskonfiguration Auswirkungen auf die Befehlszeile usw. hat. Das ist offensichtlich falsch.

Andere Unterschiede

Der CLI-Modus definiert drei Konstanten STDIN, STDOUT, STDERR, wie zum Beispiel: $stderr = fopen('php://stderr', ' w' );

CLI SAPI ändert das aktuelle Verzeichnis nicht in das Verzeichnis, in dem sich das Ausführungsskript befindet.

php als Shell-Skript

hat Es gibt zwei Methoden, um das PHP-Skript als Shell-Skript zu verwenden, z. B. Skript:

hello.php

<?php
echo "hello world!";
var_dump($argv);
?>

Methode 1, PHP-Skriptparameter

~php hello.php -s &#39;me&#39;
hello world
array(3) {
  [0]=>
  string(9) "hello.php"
  [1]=>
  string(2) "-s"
  [2]=>
  string(2) "me"
}

Methode 2, fügen Sie zum PHP-Datei-Header

#!/usr/bin/php

Dann chmod u+x hello.php

und ./hello.php ausführen

hello world
array(1) {
  [0]=>
  string(11) "./hello.php"
}


Verwandte Empfehlungen:

PHP-Video-Tutorial :

https://www.php.cn/course/list/29/type/2.html

Das obige ist der detaillierte Inhalt vonEinführung in den PHP-Befehlszeilenmodus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen