Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将参数从bash传递到php脚本?_Php_Bash_Shell_Parameters_Parameter Passing - Fatal编程技术网

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

如何将参数从bash传递到php脚本?,php,bash,shell,parameters,parameter-passing,Php,Bash,Shell,Parameters,Parameter Passing,我已经做了一个运行php脚本的bash脚本。没有参数也可以正常工作,但当我添加参数(id和url)时,会出现一些错误: PHP Deprecated: Comments starting with '#' are deprecated in /etc/php5/cli/conf .d/mcrypt.ini on line

我已经做了一个运行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
$id = $_GET["id"];
$myvar = $_GET["myvar"];
称之为:

php /path/to/script/script.php -- 'id=19&url=http://bkjbezjnkelnkz.com'
另外,修改PHP脚本以使用:

如果未设置索引
$\u服务器['REMOTE\u ADDR']



可能需要更高级的处理,但这是使其工作的一种快速的方法。

您不能将get查询参数传递给PHP命令行界面。将参数作为标准命令行参数传递并使用读取它们,或者(如果必须使用GET/POST参数)通过curl/wget调用脚本并以这种方式传递参数—假设您可以通过本地web服务器访问脚本

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

php myfile.php--argument1 argument2

--选项1:php cgi--

使用“php cgi”代替“php”来运行脚本。这是最简单的方法,因为您不需要专门修改php代码来使用它:

php-cgi -f /my/script/file.php id=19 myvar=xyz
--选项2:如果您有web服务器--

如果php文件位于web服务器上,则可以在命令行上使用“wget”:

wget 'http://localhost/my/script/file.php?id=19&myvar=xyz'
或:

--访问php中的变量--

在选项1和2中,您可以通过以下方式访问这些参数:

php /var/www/dev/dbinsert/script/automatisation.php?id=19&url=http://bkjbezjnkelnkz.com
$id = $_GET["id"];
$myvar = $_GET["myvar"];

如何将目录传递到php脚本中?@Michael,同样的方法,只需从
$argv
数组中读取即可。另外,线程死灵术也很糟糕。我不确定我是否做错了什么,或者php是否已经更改,但是没有必要使用
--
。当我使用
$argv[1]
时,它只读取
--
。如果使用php cgi:,则可以传递GET查询参数)请参见此处的示例: