如何将参数从 bash 传递到 php 脚本?

2022-08-30 17:06:49

我做了一个运行php脚本的bash脚本。它没有参数就可以正常工作,但是当我添加参数(id和url)时,会出现一些错误:

PHP Deprecated:  Comments starting with '#' are deprecated in /etc/php5/cli/conf                                                                                        .d/mcrypt.ini on line 1 in Unknown on line 0
Could not open input file: /var/www/dev/dbinsert/script/automatisation.php?                                                                                        id=1

我从bash运行php脚本,如下所示:

php /var/www/dev/dbinsert/script/automatisation.php?id=19&url=http://bkjbezjnkelnkz.com

答案 1

将其称为:

php /path/to/script/script.php -- 'id=19&url=http://bkjbezjnkelnkz.com'

另外,修改 PHP 脚本以使用 parse_str()

parse_str($argv[1]);

如果未设置索引。$_SERVER['REMOTE_ADDR']


更高级的处理可能需要 getopt(),parse_str() 是让它工作起来的一种快速而肮脏的方法。


答案 2

不能将 GET 查询参数传递到 PHP 命令行界面。要么将这些参数作为标准命令行参数传递,并使用$argc$argv全局变量来读取它们,要么(如果必须使用 GET/POST 参数)通过 curl/wget 调用脚本并以这种方式传递参数 – 假设您可以通过本地 Web 服务器访问该脚本。

这就是如何传递要由 和 读取的参数(--表示所有后续参数都应转到脚本而不是 PHP 解释器二进制文件):$argc$argv

php myfile.php -- argument1 argument2


推荐