Heim  >  Artikel  >  Backend-Entwicklung  >  Wie übergebe ich Variablen über die Befehlszeile an PHP-Skripte?

Wie übergebe ich Variablen über die Befehlszeile an PHP-Skripte?

Linda Hamilton
Linda HamiltonOriginal
2024-11-10 22:57:02888Durchsuche

How to Pass Variables to PHP Scripts from the Command Line?

Variablen über die Befehlszeile an PHP-Skripte übergeben

Beim Ausführen von PHP-Skripten über die Befehlszeile ist es häufig erforderlich, Variablen zu übergeben. Versuche, dies mit der herkömmlichen Methode $_GET zu erreichen (z. B. php myfile.php?type=daily), können jedoch zum Fehler „Eingabedatei konnte nicht geöffnet werden“ führen.

Dies liegt am Array $_GET ist normalerweise nur zugänglich, wenn ein Skript als Webseite ausgeführt wird. Um die Variablenübergabe über die Befehlszeile zu handhaben, müssen alternative Methoden verwendet werden.

Verwendung des $argv-Arrays

Beim Ausführen eines PHP-Skripts über die Befehlszeile können Variablen mithilfe von $argv übergeben werden Array. Dieses Array enthält die Argumente, die nach dem Skriptnamen angegeben werden. Um beispielsweise die Variable „type=daily“ zu übergeben, würden Sie das Skript wie folgt aufrufen:

php myfile.php daily

Im PHP-Skript können Sie die Variable mit $argv[1] abrufen.

Umgang mit Web- und Befehlszeilenausführung

Wenn ein PHP-Skript sowohl für die Web- als auch für die Befehlszeilenausführung gedacht ist, können Sie mithilfe der STDIN überprüfen, ob das Skript von der Befehlszeile aus aufgerufen wird konstant. Der folgende Codeausschnitt veranschaulicht dies:

if (defined('STDIN')) {
  $type = $argv[1];
} else {
  $type = $_GET['type'];
}

Wenn in diesem Beispiel das Skript über die Befehlszeile ausgeführt wird, wird die Typvariable von $argv[1] abgerufen. Andernfalls wird es von $_GET['type'] abgerufen.

Verwenden eines Shell-Skripts und Wget

Eine weitere Möglichkeit zum Übergeben von Variablen über die Befehlszeile ist die Verwendung eines Shell-Skripts und Wget . Dies kann nützlich sein, wenn Sie eine Variable als Teil einer URL übergeben müssen. Das folgende Shell-Skript demonstriert diesen Ansatz:

#!/bin/sh
wget http://location.to/myfile.php?type=daily

In diesem Skript wird die Variable type=daily als Teil der URL übergeben. Das Skript kann dann von cron aus aufgerufen werden, um das PHP-Skript mit der angegebenen Variablen auszuführen.

Das obige ist der detaillierte Inhalt vonWie übergebe ich Variablen über die Befehlszeile an PHP-Skripte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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