当前位置: 首页 > 面试题库 >

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

窦华晖
2023-03-14
问题内容

假设我们通常通过

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



 类似资料:
  • 我试图用命令提示符用java编译一个程序。我的程序在eclipse中运行良好,但是,当我试图在命令提示符中编译它时,我收到了一条错误消息。任何帮助和指导都将不胜感激。 triton.java:20:错误:不能dind符号循环Loop=new Loop(); 符号:类循环位置:类Triton trion.java:20:错误:找不到符号循环循环=新循环();sybmol:类循环位置:类Triton

  • 问题内容: 我需要稍后再运行一个mail.php文件,而不是让用户在提交register.php时等待发送验证电子邮件。 因此,我选择在1分钟后使用 at 命令在命令行中运行mail.php( 在register.php 中 调用 ): 但是,当我处于at命令的交互模式时,我只能将参数发送到该php文件。 由于我希望这是自动的,因此我需要在运行时使用shell脚本: 但是我找不到传递 {email

  • $ gdb -q `which gdb` Reading symbols from /home/xmj/install/binutils-gdb-git/bin/gdb...done. (gdb) r -q Starting program: /home/xmj/install/binutils-gdb-git/bin/gdb -q [Thread debugging using libthrea

  • 问题内容: 使用以下命令运行命令时出现以下错误 在以下路径中运行命令时,我没有收到任何错误: 为什么会出现此错误? 无法将“ php”识别为内部或外部命令,可操作程序或批处理文件。 问题答案: 添加到您的环境变量。 然后关闭命令提示符,然后再次重新启动。 注意: 关闭命令提示符并再次重新启动非常重要,否则更改将不会反映出来。

  • 好吧,我是新来的Java,并试图从命令提示符运行一个java程序(因为Sublime编译和运行它的小东西,但不允许用户输入和东西)。 我将命令提示符设置为我有我的文件的文件夹,称为Learner.java. 我在环境变量中为JDK bin设置了一个路径,并创建了一个JAVA_HOME变量,其中包含JDK bin的值(其他一些帖子建议)。 在我讨论这个问题之前,这是我的代码: 如你所见,这是一个以“

  • 我刚刚安装了Windows 10创作者更新(版本10.0.15063)。 我安装了多个版本的Visual Studio(2012, 2013, 2015和2017)。我几周前才安装了VS 2017。 CMake(版本3.8.1)在“VS2015 x64本机命令提示符”中运行时不再找到C/C编译器(在VS 2017命令提示符中运行时它确实正常工作)。 的内容: (的内容无关紧要。) CMake调用,