2016-04-17 2 views
1

Есть ли способ быстро удалить найденные параметры с помощью getopt из $ argv?Удалить параметры поиска в getopt из argv

В принципе, у меня есть

php trout.php --plugin dozer /opt/webapplications/Word/readme.log 

В моей $ опций = 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

Это то, что я в конечном итоге с помощью

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

Она не принимает во внимание возможность, указанный с «=», как это: --plugin = бульдозер –

Смежные вопросы