比方说我们通常通过
http://localhost/index.php?a=1&b=2&c=3
我们如何在Linux命令提示符下执行相同的命令?
php -e index.php
但是传递$GET变量呢?大概php -e index.php --a 1 --b 2 --c 3
块吧?我怀疑这行得通.
比方说我们通常通过
http://localhost/index.php?a=1&b=2&c=3
我们如何在Linux命令提示符下执行相同的命令?
php -e index.php
但是传递$GET变量呢?大概php -e index.php --a 1 --b 2 --c 3
块吧?我怀疑这行得通.
通常,要将参数传递给命令行脚本,您将使用argv
全局变量或getopt:
// Bash command:
// php -e myscript.php hello
echo $argv[1]; // Prints "hello"
// Bash command:
// php -e myscript.php -f=world
$opts = getopt('f:');
echo $opts['f']; // Prints "world"
$_GET
指的是HTTP GET方法参数,这些参数在命令行上不可用,因为它们需要Web服务器来填充.
如果你真的想填充$_GET
个,你可以这样做:
// Bash command:
// export QUERY_STRING="var=value&arg=value" ; php -e myscript.php
parse_str($_SERVER['QUERY_STRING'], $_GET);
print_r($_GET);
/* Outputs:
Array(
[var] => value
[arg] => value
)
*/
您还可以执行给定的脚本,从命令行填充$_GET
,而不必修改所述脚本:
export QUERY_STRING="var=value&arg=value" ; \
php -e -r 'parse_str($_SERVER["QUERY_STRING"], $_GET); include "index.php";'
请注意,$_POST
和$_COOKIE
也可以这样做.