PHP über die Befehlszeile verwenden: Variablen an Skripte übergeben
Das Ausführen von PHP-Skripten über die Befehlszeile kann eine bequeme Möglichkeit sein, Aufgaben zu automatisieren . Allerdings kann die Übergabe von Variablen an diese Skripte verwirrend sein. In diesem Artikel wird erläutert, wie Sie Variablen effektiv an PHP-Skripte übergeben, die über die Befehlszeile aufgerufen werden.
Das Problem
Beim Versuch, Variablen mithilfe des URL-Abfragezeichenfolgenformats zu übergeben, Möglicherweise tritt ein Fehler wie dieser auf: „Eingabedatei konnte nicht geöffnet werden: myfile.php?type=daily.“ Dies liegt daran, dass das Abfragezeichenfolgenformat nur für Seiten gültig ist, auf die über das Internet zugegriffen wird.
解决方案
Um Variablen über die Befehlszeile an PHP-Skripte zu übergeben, müssen Sie Folgendes tun Sie müssen das Array $argv verwenden. So geht's:
1. Variablen von $argv abrufen
Wenn Sie ein PHP-Skript über die Befehlszeile ausführen, werden die an das PHP-Skript übergebenen Parameter im Array $argv gespeichert. Das erste Element ($argv[0]) ist der Dateiname des Skripts, während nachfolgende Elemente die Parameter enthalten. Um den Wert eines bestimmten Parameters abzurufen, verwenden Sie seinen Index im Array. Um beispielsweise den Wert des Parameters „type“ zu erhalten, würden Sie $argv[1] verwenden.
Code:
<?php // Check if the script was called from the command line if (defined('STDIN')) { // Get the type parameter from $argv $type = $argv[1]; } ?>
2 . Auch den Webzugriff verarbeiten
Wenn das Skript auch als Webseite verwendet wird, können Sie prüfen, ob es über die Befehlszeile aufgerufen wird oder nicht, und die Variablenübergabe entsprechend behandeln:
<?php if (defined('STDIN')) { // Running from command line $type = $argv[1]; } else { // Running as a web page $type = $_GET['type']; } ?>
3. Verwenden von Wget oder einem Shell-Skript
Wenn Sie über eine URL-ähnliche Syntax auf das Skript zugreifen möchten, während Sie es über die Befehlszeile ausführen, können Sie ein Shell-Skript oder Wget verwenden, um die Abfrage remote auszuführen:
Shell-Skript:
#!/bin/sh wget http://location.to/myfile.php?type=daily
Indem Sie diese Methoden befolgen, können Sie Variablen effektiv an PHP übergeben Skripte, die über die Befehlszeile ausgeführt werden, sodass Sie Aufgaben automatisieren und Daten effizient verarbeiten können.
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!