是否有快速方法从$ argv中删除找到的选项?
基本上,我有
php trout.php --plugin dozer /opt/webapplications/Word/readme.log
在我的$ options = getopt();我有
Array
(
[plugin] => dozer
)
$ argv有以下内容......
Array
(
[0] => --plugin
[1] => dozer
[2] => /opt/webapplications/Word/readme.log
)
我希望$ argv只有
Array
(
[0] => /opt/webapplications/Word/readme.log
)
我知道有关于弹出第一个数组元素的array_shift,我已经看到过去循环只是循环通过$ argv弹出所有元素,但是,我想知道是否有一种快速简便的方法用本机php做到这一点......
答案 0 :(得分:0)
这就是我最终使用的
function __construct($args) {
$this->options = getopt($this->shortopts, $this->longopts);
array_shift($args);
while(count($args) > 1) {
if (strpos($args[0], '-') !== false && strpos($args[0], '-') == 0) {
array_shift($args);
if(in_array($args[0], $this->options)) {
array_shift($args);
}
}
else {
break;
}
}
$this->args = $args;
}