<?php
/**
* Parses command-line arguments.
*
* @param array $args Array of command-line arguments.
* @return array Associative array of parsed arguments.
*/
function parseArgs(array $args): array
{
$parsedArgs = [];
$i = 1; // Start at the first argument (skip script name)
while ($i < count($args)) {
$arg = $args[$i];
if ($arg === '--') {
// End of options. Treat remaining args as positional.
break;
}
if (strpos($arg, '=') !== false) {
// Option with value (e.g., --name=John)
list($option, $value) = explode('=', $arg, 2);
$parsedArgs[$option] = $value;
} else {
// Simple option (e.g., --name)
$parsedArgs[$arg] = true;
}
$i++;
}
return $parsedArgs;
}
// Example usage (if running as a script)
if (php_sapi_name() === 'cli') {
$args = $argv; // Get command-line arguments
$parsedArgs = parseArgs($args);
// Print parsed arguments (for demonstration)
print_r($parsedArgs);
}
?>
Add your comment