PHP在Linux命令提示符中传递$ _GET
假设我们通常通过
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
。
以上是 PHP在Linux命令提示符中传递$ _GET 的全部内容, 来源链接: utcz.com/qa/415766.html