比方说我们通常通过

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相关问答推荐

如果活动订阅者的购物车中有订阅项目,则在WooCommerce签出中显示通知

启用额外的WooCommerce产品库存位置

如何隐藏x轴图表上的值

Symfony装置加载:try 从命名空间加载类";ClassUtils";Doctrine\Common\Util";

当主页和帖子的缩略图相同时,如何减少主页和帖子的缩略图

从订单项目中获取ACF WooCommerce产品价值

PHP-准备用于TCP套接字的数据包

Codeigniter 4中的未定义变量$HOME

根据WooCommerce的定制订单状态增加产品库存

如何在 apache Laragon - laravel 10 中允许方法 DELETE?

Symfony:指定 data_class 时,提交的表单获取初始化前不得访问

如何在 php 中获取正确的时间

从图像URL中获取文件扩展名?

WooCommerce订单支付页面上的附加支付订单按钮

在 PHP 中验证签名

计算组合指数

为什么 8.0 之前的 PHP 版本拒绝命名空间Random\Namespace作为无效语法?

从 laravel 中的日期类型中删除时间

Laravel 10 单元测试看不到来自 Artisan Command 的数据库更改

Symfony 6 中的入口点 (public/index.php) - 它是如何工作的?