Detaillierte Erläuterung der PHP-Befehlszeilenparameter (CLI)
PHP im interaktiven Shell-Modus ausführen
Führen Sie den integrierten Webserver aus
Suchen Sie die PHP-Konfigurationsdatei
Klassen anzeigen/ Funktionen/Erweiterte Informationen
Grammatikprüfung
Befehlszeilenskriptentwicklung
PHP Als Webentwicklungssprache führen wir normalerweise PHP auf dem Webserver aus und greifen über einen Browser darauf zu. Daher achten wir selten auf die Befehlszeilenoperationen und die Verwendung zugehöriger Parameter. Insbesondere auf Unix-ähnlichen Betriebssystemen achten wir jedoch selten darauf. PHP kann als Skriptsprache ähnliche Verarbeitungsaufgaben wie eine Shell ausführen.
Um alle Befehlszeilenparameter von PHP anzuzeigen, verwenden Sie den Befehl php -h. Wir werden die meisten häufig verwendeten Befehlszeilenparameter einzeln erklären, um unser Verständnis der PHP-Funktionen zu vertiefen, PHP schneller auf der Server-Befehlszeile zu verwenden oder verschiedene Probleme zu beheben, die aufgrund von Unkenntnis der Umgebung auftreten.
-a 以交互式shell模式运行 -c | 指定php.ini文件所在的目录 -n 指定不使用php.ini文件 -d foo[=bar] 定义一个INI实体,key为foo,value为'bar' -e 为调试和分析生成扩展信息 -f 解释和执行文件. -h 打印帮助 -i 显示PHP的基本信息 -l 进行语法检查 (lint) -m 显示编译到内核的模块 -r 运行PHP代码,不需要使用标签 ..?> -B 在处理输入之前先执行PHP代码 -R 对输入的没一行作为PHP代码运行 -F Parse and execute for every input line -E Run PHP after processing all input lines -H Hide any passed arguments from external tools. -S : 运行内建的web服务器. -t 指定用于内建web服务器的文档根目录 -s 输出HTML语法高亮的源码 -v 输出PHP的版本号 -w 输出去掉注释和空格的源码 -z 载入Zend扩展文件 . args... 传递给要运行的脚本的参数. 当第一个参数以-开始或者是脚本是从标准输入读取的时候,使用--参数 --ini 显示PHP的配置文件名 --rf 显示关于函数 的信息. --rc 显示关于类 的信息. --re 显示关于扩展 的信息. --rz 显示关于Zend扩展 的信息. --ri 显示扩展 的配置信息.
Alle Parameter des PHP-Befehls und ihre Kommentare sind oben aufgeführt. Als nächstes geben wir Beispiele für die am häufigsten verwendeten Parameter.
Freunde, die Python verwendet haben, sind mit der interaktiven Shell von Python vertraut. Wenn wir den Python-Befehl direkt in die Befehlszeile eingeben, gelangen wir zur interaktiven Python-Shell Mit dem Programm können Sie dann einige Rechenaufgaben interaktiv ausführen.
In der PHP-Befehlszeile werden auch ähnliche Funktionen bereitgestellt. Verwenden Sie den Parameter -a, um in den interaktiven Shell-Modus zu gelangen.
In dieser Shell können wir einige einfache Aufgaben ausführen, ohne immer eine neue PHP-Datei erstellen zu müssen.
Ausführlichere Anweisungen finden Sie in der offiziellen Dokumentation.
Ab PHP 5.4.0 bietet der Befehlszeilenmodus von PHP einen integrierten Webserver -eingebauter Webserver. Verwenden Sie -S, um die Ausführung des Webdienstes zu starten.
Angenommen, wir befinden uns derzeit im Verzeichnis /Users/mylxsw/codes/php/aicode/demo. In diesem Verzeichnis befindet sich eine index.php-Datei.
$ ls index.php $ cat index.php <?php echo "Hello, PHPER!";
Führen Sie in diesem Verzeichnis den folgenden Befehl aus, um den integrierten Webserver zu starten. Das aktuelle Verzeichnis ist standardmäßig das Arbeitsverzeichnis
$ php -S localhost:8000 PHP 5.6.3 Development Server started at Wed Jun 10 15:49:41 2015 Listening on http://localhost:8000 Document root is /Users/mylxsw/codes/php/aicode/demo Press Ctrl-C to quit.
Wir werden es separat aktivieren. Ein Shell-Fenster, fordern Sie http://localhost:8000/ an und Sie können die Skriptausgabe sehen
$ curl -is http://localhost:8000/ HTTP/1.1 200 OK Host: localhost:8000 Connection: close X-Powered-By: PHP/5.6.3 Content-type: text/html; Hello, PHPER!
In dem Fenster, in dem der Webdienst ausgeführt wird, Sie Sie können die Ausgabeprotokollinformationen sehen
Als wir den integrierten Server oben starteten, haben wir nur den Parameter -S angegeben, damit PHP als Webserver ausgeführt werden kann. Zu diesem Zeitpunkt verwendet PHP das aktuelle Verzeichnis als Wir kehren also zum aktuellen Verzeichnis zurück, um die angeforderte Datei zu finden. Sie können auch den Parameter -t verwenden, um ein anderes Verzeichnis als Arbeitsverzeichnis (Dokumentstammverzeichnis) anzugeben.
Weitere Einzelheiten finden Sie in der offiziellen Dokumentation.
Aufgrund der Verwirrung bei der Softwareinstallation auf dem Server haben wir möglicherweise mehrere Versionen der PHP-Umgebung installiert. So finden Sie unser PHP Wichtiger ist, welche Konfigurationsdatei verwendet wird. In den PHP-Befehlszeilenparametern steht der Parameter –ini zur Verfügung. Mit diesem Parameter können Sie die aktuellen PHP-Konfigurationsdateiinformationen auflisten.
$ php --ini Configuration File (php.ini) Path: /usr/local/etc/php/5.6 Loaded Configuration File: /usr/local/etc/php/5.6/php.ini Scan for additional .ini files in: /usr/local/etc/php/5.6/conf.d Additional .ini files parsed: (none) $ /usr/local/php/bin/php --ini Configuration File (php.ini) Path: /usr/local/php/etc/ Loaded Configuration File: /usr/local/php/etc/php.ini Scan for additional .ini files in: (none) Additional .ini files parsed: (none)
Wir haben zwei Versionen von PHP auf dem oben genannten Server installiert. Wie Sie oben sehen können, können Sie mit dem Befehl php –ini leicht herausfinden, welche Konfigurationsdatei der aktuelle PHP-Befehl verwendet . .
Normalerweise können wir den Befehl php –info oder die Funktion phpinfo() im PHP-Programm auf dem Webserver verwenden, um PHP-Informationen anzuzeigen Dann ist es wirklich mühsam, Informationen über verwandte Klassen, Erweiterungen oder Funktionen zu finden.
$ php --info | grep redis redis Registered save handlers => files user redis This program is free software; you can redistribute it and/or modify
Wir können die folgenden Parameter verwenden, um diese Informationen bequemer anzuzeigen
--rf 显示关于函数 的信息. --rc 显示关于类 的信息. --re 显示关于扩展 的信息. --rz 显示关于Zend扩展 的信息. --ri 显示扩展 的配置信息.
Zum Beispiel möchten wir die Konfigurationsinformationen von Extended Redis anzeigen
$ php --ri redis redis Redis Support => enabled Redis Version => 2.2.7
Redis-Klasseninformationen anzeigen
$ php --rc redis Class [ class Redis ] { - Constants [19] { Constant [ integer REDIS_NOT_FOUND ] { 0 } ... - Methods [201] { ... Method [ public method echo ] { } ...
Funktions-Printf-Informationen anzeigen
$ php --rf printf Function [ function printf ] { - Parameters [2] { Parameter #0 [ $format ] Parameter #1 [ ...$args ] } }
Ja Manchmal müssen wir nur prüfen, ob im PHP-Skript Syntaxfehler vorliegen, ohne es auszuführen, z. B. in einigen Editoren oder IDEs, ob Syntaxfehler in PHP-Dateien vorliegen.
Verwenden Sie -l (--syntax-check), um nur die Syntax von PHP-Dateien zu überprüfen.
$ php -l index.php No syntax errors detected in index.php
Wenn derzeit ein Syntaxfehler in unserer index.php vorliegt
$ php -l index.php PHP Parse error: syntax error, unexpected 'echo' (T_ECHO) in index.php on line 3 Parse error: syntax error, unexpected 'echo' (T_ECHO) in index.php on line 3 Errors parsing index.php
Entwickeln mit PHP Bei der Entwicklung von Befehlszeilenskripten unterscheidet es sich offensichtlich von der Entwicklung von Webprogrammen. In Webprogrammen können wir unterschiedliche Eingaben für die PHP-Umgebung bereitstellen, indem wir die Parameter der URL ändern. Aber wie erhält man externe Eingaben im Befehlszeilenskriptprogramm?
在使用C语言开发程序时,我们通常会在main函数中提供两个可选的参数int main(int argc, char *argv[]),这两个参数就是从命令行提供的输入参数。在PHP中,提供了两个全局变量$argc和$argv用于获取命令行输入。
$argc 包含了 $argv数组包含元素的数目
$argv 是一个数组,包含了提供的参数,第一个参数总是脚本文件名称
假设我们有一个名为console.php的命令行脚本文件
<?php echo '命令行参数个数: ' . $argc . "n"; echo "命令行参数:n"; foreach ($argv as $index => $arg) { echo " {$index} : {$arg}n"; }
在命令行下执行该脚本
$ php console.php hello world 命令行参数个数: 3 命令行参数: 0 : console.php 1 : hello 2 : world
可以看到,第0个参数是我们执行的脚本名称。需要注意的是,如果提供的第一个参数是以-开头的话,需要在前面增加–,以告诉php这后面的参数是提供给我们的脚本的,而不是php执行文件的(php -r ‘var_dump($argv);’ — -h)。
另外,在脚本中,我们可以通过php_sapi_name()函数判断是否是在命令行下运行的
$ php -r 'echo php_sapi_name(), PHP_EOL;' cli
参考文献
Using PHP from the command line
Das obige ist der detaillierte Inhalt vonPHP-Befehlszeile. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!