1. <?php
  2. /**
  3. * Parses command-line arguments.
  4. *
  5. * @param array $args Array of command-line arguments.
  6. * @return array Associative array of parsed arguments.
  7. */
  8. function parseArgs(array $args): array
  9. {
  10. $parsedArgs = [];
  11. $i = 1; // Start at the first argument (skip script name)
  12. while ($i < count($args)) {
  13. $arg = $args[$i];
  14. if ($arg === '--') {
  15. // End of options. Treat remaining args as positional.
  16. break;
  17. }
  18. if (strpos($arg, '=') !== false) {
  19. // Option with value (e.g., --name=John)
  20. list($option, $value) = explode('=', $arg, 2);
  21. $parsedArgs[$option] = $value;
  22. } else {
  23. // Simple option (e.g., --name)
  24. $parsedArgs[$arg] = true;
  25. }
  26. $i++;
  27. }
  28. return $parsedArgs;
  29. }
  30. // Example usage (if running as a script)
  31. if (php_sapi_name() === 'cli') {
  32. $args = $argv; // Get command-line arguments
  33. $parsedArgs = parseArgs($args);
  34. // Print parsed arguments (for demonstration)
  35. print_r($parsedArgs);
  36. }
  37. ?>

Add your comment