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做同样的事情。

http://stackoverflow.com/questions/4186392/php-passing-get-in-linux-command-prompt

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:PHP在linux命令提示符中传递$_GET