Удалить параметры, найденные в getopt из argv

Есть ли быстрый способ удалить найденные опции с помощью getopt из $ 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 …

1

Решение

Это то, что я в конечном итоге использовал

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;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]