Есть ли быстрый способ удалить найденные опции с помощью 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 …
Это то, что я в конечном итоге использовал
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;
}
Других решений пока нет …