通常,为了将参数传递给命令行脚本,您将使用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
。