在命令行里执行php脚本时,我们可以给它参数$argv,它是一个数组,形如
第一个元素保存的是脚本的文件名,其他是我们输入的参数,(参数是以空格分开). $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