命令行给php脚本传参,命令行执行php脚本获取传入参数的方法—$argv和$argc

在命令行里执行php脚本时,我们可以给它参数$argv,它是一个数组,形如

4e6b26253763258c207a47cee51a19d2.png 第一个元素保存的是脚本的文件名,其他是我们输入的参数,(参数是以空格分开). $argc 保存着$argv的长度.习惯用法php php脚本  参数1   参数2   参数3  ...参数n,此方法在命令行中使用,定时任务用,linux中用crontab来跑

命令行执行php脚本参数获取工具类,实现代码如下:/**

* 命令行执行php脚本获取输入参数.

*

* 如命令行运行:php test.php --number=10

* 获取传入参数 `number`,使用方法:

* $options = ConsoleOptions::ParseFromArgv();

* $number = $options->getOption('number');

*/

class ConsoleOptions

{

private $options = array();

private $values = array();

public function addOptionValue($k, $v)

{

if (! isset($this->options[$k]))

$this->options[$k] = $v;

else {

if (! is_array($this->options[$k]))

$this->options[$k] = array($this->options[$k]);

$this->options[$k][] = $v;

}

}

public function addValue($v)

{

$this->values[] = $v;

}

public function getOption($k, $def = null)

{

return isset($this->options[$k]) ? $this->options[$k] : $def;

}

public function getValues()

{

return $this->values;

}

/**

* @static

* @return ConsoleOptions

*/

static public function parseFromArgv()

{

global $argv, $argc;

$options = new ConsoleOptions();

for ($i = 1; $i 

$s = $argv[$i];

if (substr($s, 0, 2) == '--') {

$s = substr($s, 2);

$a = explode('=', $s, 2);

if (count($a) == 2)

$options->addOptionValue($a[0], $a[1]);

else

$options->addOptionValue($a[0], true);

} else {

$options->addValue($s);

}

}

return $options;

}

}

版权及转载说明

本站原创、转载文章欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区

本站转载文章版权归原作者所有,如发现本站文章涉嫌侵权请点击「联系我们」反馈,本站将立即给予删除

转载请注明:文章转载自:全分享社区 「http://www.aweb.cc」

本文标题:命令行执行php脚本获取传入参数的方法—$argv和$argc

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值