PHP-Befehlszeile

炎欲天舞
Freigeben: 2023-03-15 12:44:02
Original
11341 Leute haben es durchsucht


  • 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.

Detaillierte Erläuterung der PHP-Befehlszeilenparameter (CLI)

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       显示扩展  的配置信息.
Nach dem Login kopieren

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.

Führen Sie PHP im interaktiven Shell-Modus aus

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.

Führen Sie den integrierten Webserver aus.

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!";
Nach dem Login kopieren

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.
Nach dem Login kopieren

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!
Nach dem Login kopieren

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.

Suchen Sie die PHP-Konfigurationsdatei

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)
Nach dem Login kopieren

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 . .

Klassen-/Funktions-/Erweiterungsinformationen anzeigen

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
Nach dem Login kopieren

Wir können die folgenden Parameter verwenden, um diese Informationen bequemer anzuzeigen

--rf       显示关于函数  的信息.
--rc       显示关于类  的信息.
--re       显示关于扩展  的信息.
--rz       显示关于Zend扩展  的信息.
--ri       显示扩展  的配置信息.
Nach dem Login kopieren

Zum Beispiel möchten wir die Konfigurationsinformationen von Extended Redis anzeigen

$ php --ri redis
 
redis
 
Redis Support => enabled
Redis Version => 2.2.7
Nach dem Login kopieren

Redis-Klasseninformationen anzeigen

$ php --rc redis
Class [  class Redis ] {
 
  - Constants [19] {
    Constant [ integer REDIS_NOT_FOUND ] { 0 }
    ...
  - Methods [201] {
    ...
    Method [  public method echo ] {
    }
    ...
Nach dem Login kopieren

Funktions-Printf-Informationen anzeigen

$ php --rf printf
Function [  function printf ] {
 
  - Parameters [2] {
    Parameter #0 [  $format ]
    Parameter #1 [  ...$args ]
  }
}
Nach dem Login kopieren

Syntaxprüfung

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
Nach dem Login kopieren

Wenn derzeit ein Syntaxfehler in unserer index.php vorliegt

$ php -l index.php
PHP Parse error:  syntax error, unexpected &#39;echo&#39; (T_ECHO) in index.php on line 3
 
Parse error: syntax error, unexpected &#39;echo&#39; (T_ECHO) in index.php on line 3
Errors parsing index.php
Nach dem Login kopieren

Befehlszeilenskriptentwicklung

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 &#39;命令行参数个数: &#39; . $argc . "n";
echo "命令行参数:n";
foreach ($argv as $index => $arg) {
    echo "    {$index} : {$arg}n";
}
Nach dem Login kopieren

在命令行下执行该脚本

$ php console.php hello world
命令行参数个数: 3
命令行参数:
    0 : console.php
    1 : hello
    2 : world
Nach dem Login kopieren

可以看到,第0个参数是我们执行的脚本名称。需要注意的是,如果提供的第一个参数是以-开头的话,需要在前面增加–,以告诉php这后面的参数是提供给我们的脚本的,而不是php执行文件的(php -r ‘var_dump($argv);’ — -h)。

另外,在脚本中,我们可以通过php_sapi_name()函数判断是否是在命令行下运行的

$ php -r &#39;echo php_sapi_name(), PHP_EOL;&#39;
cli
Nach dem Login kopieren

参考文献

  • 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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage