首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Linux命令提示符中传递$_GET

在Linux命令提示符中传递$_GET
EN

Stack Overflow用户
提问于 2010-11-16 00:18:30
回答 10查看 107.8K关注 0票数 129

比方说我们通常通过

代码语言:javascript
复制
http://localhost/index.php?a=1&b=2&c=3

我们如何在Linux命令提示符上执行相同的命令?

代码语言:javascript
复制
php -e index.php

但是如何传递$_GET变量呢?也许是像php -e index.php --a 1 --b 2 --c 3这样的?我怀疑这会不会奏效。

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2010-11-16 00:28:09

通常,为了将参数传递给命令行脚本,您将使用argv全局变量或getopt

代码语言:javascript
复制
// 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,你可以这样做:

代码语言:javascript
复制
// 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,而不必修改所述脚本:

代码语言:javascript
复制
export QUERY_STRING="var=value&arg=value" ; \
php -e -r 'parse_str($_SERVER["QUERY_STRING"], $_GET); include "index.php";'

请注意,您也可以对$_POST$_COOKIE执行相同的操作。

票数 130
EN

Stack Overflow用户

发布于 2012-08-15 15:23:46

从这个answer on Server Fault

使用php-cgi二进制文件,而不仅仅是php,并在命令行上传递参数,如下所示:

代码语言:javascript
复制
php-cgi -f index.php left=1058 right=1067 class=A language=English

这将把这个放在$_GET

代码语言:javascript
复制
Array
(
    [left] => 1058
    [right] => 1067
    [class] => A
    [language] => English
)

您还可以设置将由web服务器设置的环境变量,如下所示:

代码语言:javascript
复制
REQUEST_URI='/index.php' SCRIPT_NAME='/index.php' php-cgi -f index.php left=1058 right=1067 class=A language=English
票数 251
EN

Stack Overflow用户

发布于 2011-04-12 06:13:58

使用:

代码语言:javascript
复制
php file_name.php var1 var2 varN

然后在PHP语言的第一行设置$_GET变量,尽管这不是设置$_GET变量的理想方式,而且您可能会遇到问题,具体取决于您稍后对该变量所做的操作。

代码语言:javascript
复制
if (isset($argv[1])) {
   $_GET['variable_name'] = $argv[1];
}

可以从应用程序中的$argv数组访问启动脚本所用的变量。第一个条目将显示它们所来自的脚本的名称,因此如果您想要处理一组变量,则可能需要执行一个array_shift($argv)来删除第一个条目。或者只是加载到局部变量中。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4186392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档