Home >Backend Development >PHP Tutorial >How to pass parameters to php under shell command
Usually PHP makes HTTP requests, and you can use GET or POST to receive parameters. Sometimes you need to execute PHP as a script under a shell command, such as a scheduled task. This involves the issue of how to pass parameters to php under the shell command. There are usually three ways to pass parameters.
1. Use $argv or $argc parameter to receive
<?php /** * 使用 $argc $argv 接受参数 */ echo "接收到{$argc}个参数"; print_r($argv);
Execute
[root@DELL113 lee]# /usr/local/php/bin/php test.php 接收到1个参数 Array ( [0] => test.php ) [root@DELL113 lee]# /usr/local/php/bin/php test.php a b c d 接收到5个参数Array ( [0] => test.php [1] => a [2] => b [3] => c [4] => d ) [root@DELL113 lee]#
<?php /** * 使用 getopt函数 */ $param_arr = getopt('a:b:'); print_r($param_arr);
Execution
[root@DELL113 lee]# /usr/local/php/bin/php test.php -a 345 Array ( [a] => 345 ) [root@DELL113 lee]# /usr/local/php/bin/php test.php -a 345 -b 12q3 Array ( [a] => 345 [b] => 12q3 ) [root@DELL113 lee]# /usr/local/php/bin/php test.php -a 345 -b 12q3 -e 3322ff Array ( [a] => 345 [b] => 12q3 )
3. Prompt the user to input
<?php /** * 提示用户输入,类似Python */ fwrite(STDOUT,'请输入您的博客名:'); echo '您输入的信息是:'.fgets(STDIN);
Execution
[root@DELL113 lee]# /usr/local/php/bin/php test.php
Please enter your blog name:
The information you entered is:
You can also do this, preventing users from entering empty information
<?php /** * 提示用户输入,类似Python */ $fs = true; do{ oif($fs){ fwrite(STDOUT,'请输入您的博客名:'); $fs = false; }else{ fwrite(STDOUT,'抱歉,博客名不能为空,请重新输入您的博客名:'); } $name = trim(fgets(STDIN)); }while(!$name); echo '您输入的信息是:'.$name."\r\n";
Execute
[root@DELL113 lee]# /usr/local/php/bin/php test.php 请输入您的博客名: 抱歉,博客名不能为空,请重新输入您的博客名: 您输入的信息是:
The above is the detailed content of How to pass parameters to php under shell command. For more information, please follow other related articles on the PHP Chinese website!