Ich möchte ein PHP-Skript von der Befehlszeile aus ausführen, aber ich möchte auch eine Variable für dieses Skript setzen.
Browser-Version: script.php?var=3
Befehlszeile: php -f script.php
(aber wie gebe ich ihm die Variable, die 3 enthält?)
Ich möchte ein PHP-Skript von der Befehlszeile aus ausführen, aber ich möchte auch eine Variable für dieses Skript setzen.
Browser-Version: script.php?var=3
Befehlszeile: php -f script.php
(aber wie gebe ich ihm die Variable, die 3 enthält?)
Drehbuch:
<?php
// number of arguments passed to the script
var_dump($argc);
// the arguments as an array. first argument is always the script name
var_dump($argv);
Befehl:
$ php -f test.php foo bar baz
int(4)
array(4) {
[0]=>
string(8) "test.php"
[1]=>
string(3) "foo"
[2]=>
string(3) "bar"
[3]=>
string(3) "baz"
}
Werfen Sie auch einen Blick auf PHP von der Kommandozeile aus verwenden .
Neben der Verwendung von argc y argv wie angegeben durch Ionut G. Stan können Sie auch das PEAR-Modul verwenden Konsole_Getopt das die Befehlszeilenoptionen im Unix-Stil auswerten kann. Siehe dieser Artikel für weitere Informationen.
Alternativ dazu gibt es eine ähnliche Funktionalität im Zend Framework in der Zend_Konsole_Getopt Klasse.
Bei vielen Lösungen werden die Argumente entsprechend ihrer Reihenfolge in Variablen gespeichert. Zum Beispiel,
myfile.php 5 7
setzt die 5 in die erste Variable und die 7 in die nächste Variable.
Ich wollte Argumente nennen:
myfile.php a=1 x=8
damit ich sie als Variablennamen im PHP-Code verwenden kann.
Der Link, den Ionut G. Stan unter http://www.php.net/manual/en/features.commandline.php
gab mir die Antwort.
sep16 at psu dot edu:
Mit der Funktion parse_str() können Sie ganz einfach Befehlszeilenargumente in die Variable $_GET einfügen.
<?php
parse_str(implode('&', array_slice($argv, 1)), $_GET);
?>
Es verhält sich genau so, wie man es von cgi-php erwarten würde.
$ php -f somefile.php a=1 b[]=2 b[]=3
Dadurch wird $_GET['a'] auf '1' und $_GET['b'] auf array('2', '3') gesetzt.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.