Voting

: seven minus three?
(Example: nine)

The Note You're Voting On

mpartap at gmx dot net
14 years ago
Here's another way of removing options found by getopt() from the argv[] array. It handles the different kind of parameters without eating chunks that do not belong to an --option. (-nr foo param1 param2 foo)
<?php
$parameters
= array(
'n' => 'noparam',
'r:' => 'required:',
'o::' => 'optional::',
);

$options = getopt(implode('', array_keys($parameters)), $parameters);
$pruneargv = array();
foreach (
$options as $option => $value) {
foreach (
$argv as $key => $chunk) {
$regex = '/^'. (isset($option[1]) ? '--' : '-') . $option . '/';
if (
$chunk == $value && $argv[$key-1][0] == '-' || preg_match($regex, $chunk)) {
array_push($pruneargv, $key);
}
}
}
while (
$key = array_pop($pruneargv)) unset($argv[$key]);
?>

<< Back to user notes page

To Top