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

回到顶部