Heim > Artikel > Backend-Entwicklung > Wie übergebe ich Variablen über die Befehlszeile an PHP-Skripte?
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.
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.
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.
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!