Heim > Artikel > Backend-Entwicklung > Befehlszeilenausführung unter PHP
Dieser Artikel stellt hauptsächlich die Befehlszeilenausführung unter PHP vor, die einen gewissen Referenzwert hat. Jetzt kann ich ihn mit allen teilen, die ihn benötigen.
Usage: php [options] [-f] <file> [args...] php [options] -r <code> [args...] php [options] [-- args...] -s Display colour syntax highlighted source. -w Display source with stripped comments and whitespace. -f <file> Parse <file>. -v Version number -c <path>|<file> Look for php.ini file in this directory -a Run interactively -d foo[=bar] Define INI entry foo with value 'bar' -e Generate extended information for debugger/profiler -z <file> Load Zend extension <file>. -l Syntax check only (lint) -m Show compiled in modules -i PHP information -r <code> Run PHP <code> without using script tags <?..?> -h This help args... Arguments passed to script. Use -- args when first argument starts with - or script is read from stdin
CLI SAPI Das Modul verfügt über die folgenden drei verschiedenen Möglichkeiten, um das gewünschte PHP Code:
Versuchen Sie in der Windows-Umgebung, doppelte Anführungszeichen zu verwenden, und in der Linux-Umgebung, versuchen Sie, einfache Anführungszeichen zu verwenden.
PHP die angegebene Datei ausführen.
php my_script.php php -f "my_script.php" |
-f) können die angegebene Datei my_script.php ausführen. Sie können eine beliebige Datei zum Ausführen auswählen. Das von Ihnen angegebene PHP-Skript muss nicht die Erweiterung .php haben.
PHP-Code direkt in der Befehlszeile aus.
php -r "print_r(get_defined_constants());" |
Hinweis: Bitte lesen Sie das obige Beispiel sorgfältig durch, es gibt kein Startdatum Ausführen des Codes und der Endmarkierung! Mit den Parametern -r werden diese Tags nicht benötigt und das Hinzufügen führt zu einem Syntaxfehler.
PHP-Code bereit, der über die Standardeingabe (stdin) ausgeführt werden muss.
Die obige Verwendung stellt uns sehr leistungsstarke Funktionen zur Verfügung, die es uns ermöglichen, dynamischPHP-Code zu generieren und diese Codes über die Befehlszeile auszuführen, wie im folgenden Beispiel gezeigt:
以上三种运行代码的方法不能同时使用。
和所有的外壳应用程序一样,PHP 的二进制文件(php.exe 文件)及其运行的 PHP 脚本能够接受一系列的参数。PHP 没有限制传送给脚本程序的参数的个数(外壳程序对命令行的字符数有限制,但您通常都不会超过该限制)。传递给您脚本的参数可在全局变量 $argv 中获取。该数组中下标为零的成员为脚本的名称(当 PHP 代码来自标准输入获直接用 -r 参数以命令行方式运行时,该名称为“-”)。另外,全局变量 $argc 存有 $argv 数组中成员变量的个数(而非传送给脚本程序的参数的个数)。
只要您传送给您脚本的参数不是以 - 符号开头,您就无需过多的注意什么。向您的脚本传送以 - 开头的参数会导致错误,因为 PHP 会认为应该由它自身来处理这些参数。您可以用参数列表分隔符 -- 来解决这个问题。在 PHP 解析完参数后,该符号后所有的参数将会被原样传送给您的脚本程序。
# 以下命令将不会运行 PHP 代码,而只显示 PHP 命令行模式的使用说明: $ php -r 'var_dump($argv);' -h Usage: php [options] [-f] <file> [args...] [...] # 以下命令将会把“-h”参数传送给脚本程序,PHP 不会显示命令行模式的使用说明: $ php -r "var_dump($argv);" -- -h array(2) { [0]=> string(1) "-" [1]=> string(2) "-h" } |
除此之外,我们还有另一个方法将 PHP 用于外壳脚本。您可以在写一个脚本,并在第一行以 #!/usr/bin/php 开头,在其后加上以 PHP 开始和结尾标记符包含的正常的 PHP 代码,然后为该文件设置正确的运行属性。该方法可以使得该文件能够像外壳脚本或 PERL 脚本一样被直接执行。
#!/usr/bin/php <?php var_dump ($argv); ?> <span style="color:rgb(0,0,0);"><span style="color:rgb(0,0,187);"></span></span>
|
假设改文件名为 test 并被放置在当前目录下,我们可以做如下操作:
$ chmod 755 test $ ./test -h -- foo array(4) { [0]=> string(6) "./test" [1]=> string(2) "-h" [2]=> string(2) "--" [3]=> string(3) "foo" } |
Wie Sie sehen können, wird das Skript weiterhin normal ausgeführt, wenn Sie Parameter, die mit - beginnen, an das Skript übergeben.
-------------------------------------------------------- --------------------------------Befehlsoptionen---------- ------ ------------------------------------
Tabelle 23-3. Befehlszeilenoptionen
Optionsname | Beschreibung |
---|---|
-s |
Quelldateien mit Syntaxhervorhebung anzeigen. Dieser Parameter verwendet den integrierten Mechanismus, um die Datei zu analysieren, eine HTML-hervorgehobene Version davon zu generieren und das Ergebnis in die Standardausgabe zu schreiben. Bitte beachten Sie, dass dieser Vorgang lediglich einen ffbe95d20f3893062224282accb13e8f-Block von HTML-Tags generiert und kein HTML enthält Kopfzeile.
|
zeigt den Quellcode ohne Kommentare und Leerzeichen an.
|
|
Parse den angegebenen Dateinamen und führe ihn aus. Dieser Parameter ist optional und kann weggelassen werden. Es muss lediglich der Name der Datei angegeben werden, die ausgeführt werden soll. | |
Schreiben Sie die Versionsinformationen von PHP, PHP SAPI und Zend in die Standardausgabe. Zum Beispiel: $ php -v PHP 4.3.0-dev (cli), Copyright (c) 1997-2002 The PHP Group Zend Engine v1.3.0, Copyright (c) 1998-2002 Zend Technologies |
|
Mit diesem Parameter können Sie eine Platzierung angeben Das Verzeichnis der php.ini-Datei, oder geben Sie direkt eine benutzerdefinierte INI-Datei an, deren Dateiname möglicherweise nicht php.ini ist. Zum Beispiel: $ php -c /custom/directory/ my_script.php $ php -c /custom/directory/custom-file.ini my_script.php |
|
PHP interaktiv ausführen. | |
Verwenden Sie diesen Parameter, um den Wert der Variablen selbst in der Datei php.ini festzulegen , seine Syntax Für: -d Konfigurationsdirektive[=Wert] Beispiel:# Durch Weglassen des Wertteils wird die angegebene Konfigurationsanweisung auf „1“ gesetzt. $ php -d max_execution_time -r '$foo = ini_get("max_execution_time"); var_dump($foo);' string(1) „1“ # Durch die Übergabe eines leeren Wertteils wird die Konfigurationsanweisung auf „“ gesetzt. php -d max_execution_time= -r '$foo = ini_get("max_execution_time"); var_dump($foo);' string(0) „“ # Die Konfigurationsanweisung wird auf alles gesetzt, was nach dem Zeichen „=“ übergeben wird $ php -d max_execution_time=20 -r '$foo = ini_get("max_execution_time"); var_dump($foo);' string(2) „20“ $ php -d max_execution_time=macht keinen Sinn -r '$foo = ini_get("max_execution_time"); var_dump($foo);' string(15) „doesntmakesense“ |
|
-e | Erweiterte Informationen für Debugger usw. generieren. |
-z | Zend-Erweiterungsbibliothek laden. Wenn nur ein Dateiname angegeben wird, versucht PHP, die Erweiterungsbibliothek aus dem Standardpfad der Erweiterungsbibliothek Ihres Systems zu laden (auf Linux-Systemen wird dieser Pfad normalerweise durch /etc/ld.so.conf angegeben). . Wenn Sie einen Dateinamen mit einem absoluten Pfad angeben, wird der Standardpfad des Systems zur Erweiterungsbibliothek nicht verwendet. Wenn ein Dateiname mit einem relativen Pfad angegeben wird, versucht PHP nur, die Erweiterung relativ zum aktuellen Verzeichnis zu laden. |
-l |
Dieser Parameter bietet eine praktische Möglichkeit, die Syntax des angegebenen PHP-Codes zu überprüfen. Bei Erfolg wird die Zeichenfolge Keine Syntaxfehler in 9a2c7908bec70c68979a32cfbab3ed40 erkannt in die Standardausgabe geschrieben und der Shell-Rückgabewert ist 0. Wenn dies fehlschlägt, werden Errors parsing 2334ac29606bf8a170583e4f7533b1f4 zusammen mit der internen Parser-Fehlermeldung in die Standardausgabe geschrieben und der Shell-Rückgabewert wird auf 255 gesetzt. Dieser Parameter kann nicht auf schwerwiegende Fehler prüfen (z. B. undefinierte Funktionen). Wenn Sie schwerwiegende Fehler erkennen möchten, verwenden Sie bitte den Parameter -f.
|
-m |
Mit diesem Parameter druckt PHP das integrierte aus und geladene PHP- und Zend-Module: $ php -m [PHP-Module] xml Tokenizer Standard Sitzung Posix pcre Überlast MySQL mbstring ctype [Zend Modules] |
-i | Dieser Befehlszeilenparameter ruft die Funktion phpinfo() auf und gibt das Ergebnis aus. Wenn PHP nicht ordnungsgemäß funktioniert, empfehlen wir Ihnen, den Befehl php -i auszuführen, um zu prüfen, ob vor der Informationstabelle oder an der entsprechenden Stelle Fehlermeldungen ausgegeben werden. Bitte beachten Sie, dass der Ausgabeinhalt im HTML-Format vorliegt und daher die Ausgabeinformationen größer sind. |
-r |
Verwenden Sie diesen Parameter, um den PHP-Code in der Befehlszeile auszuführen. Sie müssen nicht die Start- und Endkennungen von PHP hinzufügen (f0f61052719267798d68cd772496ea9e >), andernfalls kommt es zu Fehlern bei der Syntaxanalyse.
|
-h | Mit diesem Parameter können Sie die vollständige Liste der Befehlszeilenparameter und abrufen Eine kurze Beschreibung der Funktion dieser Parameter. |
Der Befehlszeilenmodus von PHP ermöglicht die Ausführung von PHP-Skripten völlig unabhängig vom WEB-Server. Wenn Sie ein Unix-System verwenden, müssen Sie am Anfang Ihres PHP-Skripts eine spezielle Codezeile hinzufügen, damit es ausgeführt werden kann, damit das System weiß, welches Programm es zum Ausführen des Skripts verwenden muss. Unter der Windows-Plattform können Sie die Doppelklick-Attribute der Dateien php.exe und .php zuordnen oder eine Batchdatei schreiben, um das Skript mit PHP auszuführen. Die für Unix-Systeme hinzugefügte erste Codezeile hat keinen Einfluss auf die Ausführung des Skripts unter Windows, sodass Sie diese Methode auch zum Schreiben plattformübergreifender Skripte verwenden können. Das Folgende ist ein Beispiel für ein einfaches PHP-Befehlszeilenprogramm.
Im obigen Skript verwenden wir die erste spezielle Codezeile, um anzugeben, dass die Datei von PHP ausgeführt werden soll. Wir verwenden hier die CLI-Version, daher werden keine HTTP-Header ausgegeben. Wenn Sie Befehlszeilenanwendungen in PHP schreiben, können Sie zwei Parameter verwenden: $argc und $argv. Der Wert des vorherigen ist eine ganze Zahl, die um eins größer ist als die Anzahl der Parameter (der Name des ausgeführten Skripts wird ebenfalls als Parameter betrachtet). Das zweite enthält ein Array von Parametern, dessen erstes Element der Name des Skripts ist und dessen Index die Zahl 0 ist ($argv[0]). Im obigen Programm haben wir überprüft, ob die Anzahl der Parameter größer als 1 oder kleiner als 1 ist. Die unmittelbaren Parameter sind --help, -help, -h oder -?, wir drucken die Hilfeinformationen trotzdem dynamisch aus Der Name des Ausgabeskripts. Wenn weitere Parameter empfangen werden, zeigen wir diese ebenfalls an. Wenn Sie das obige Skript unter Unix ausführen möchten, müssen Sie es zu einem ausführbaren Skript machen und dann einfach script.php echothis oder script.php -h. Unter Windows kann man hierfür eine Batch-Datei schreiben:
|
Das obige ist der detaillierte Inhalt vonBefehlszeilenausführung unter PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!