1. <?php
  2. /**
  3. * Log File Parameter Injector - Prototype
  4. * Supports older PHP versions.
  5. */
  6. /**
  7. * Extracts parameters from command-line arguments related to log files.
  8. *
  9. * @param array $argv Array of command-line arguments.
  10. * @return array Associative array of log file parameters.
  11. */
  12. function getLogFileParameters(array $argv): array
  13. {
  14. $log_dir = null;
  15. $log_file = null;
  16. $log_level = 'info'; // Default log level
  17. // Iterate through command-line arguments
  18. for ($i = 1; $i < count($argv); $i++) {
  19. $arg = $argv[$i];
  20. if ($arg === '-d' || $arg === '--dir') {
  21. // Directory parameter
  22. if ($i + 1 < count($argv)) {
  23. $log_dir = $argv[$i + 1];
  24. $i++; // Skip the directory path
  25. } else {
  26. trigger_error("Missing directory path after -d/--dir", E_USER_WARNING);
  27. }
  28. } elseif ($arg === '-f' || $arg === '--file') {
  29. // File parameter
  30. if ($i + 1 < count($argv)) {
  31. $log_file = $argv[$i + 1];
  32. $i++; // Skip the file path
  33. } else {
  34. trigger_error("Missing file path after -f/--file", E_USER_WARNING);
  35. }
  36. } elseif ($arg === '-l' || $arg === '--level') {
  37. // Log level parameter
  38. if ($i + 1 < count($argv)) {
  39. $log_level = $argv[$i + 1];
  40. $i++; // Skip the log level
  41. } else {
  42. trigger_error("Missing log level after -l/--level", E_USER_WARNING);
  43. }
  44. }
  45. }
  46. return [
  47. 'directory' => $log_dir,
  48. 'file' => $log_file,
  49. 'level' => $log_level,
  50. ];
  51. }
  52. // Example usage (uncomment to test)
  53. //$argv = ['php', 'your_script.php', '-d', '/path/to/logs', '-f', 'app.log', '-l', 'debug'];
  54. //$params = getLogFileParameters($argv);
  55. //print_r($params);
  56. ?>

Add your comment