<?php
/**
* Log File Parameter Injector - Prototype
* Supports older PHP versions.
*/
/**
* Extracts parameters from command-line arguments related to log files.
*
* @param array $argv Array of command-line arguments.
* @return array Associative array of log file parameters.
*/
function getLogFileParameters(array $argv): array
{
$log_dir = null;
$log_file = null;
$log_level = 'info'; // Default log level
// Iterate through command-line arguments
for ($i = 1; $i < count($argv); $i++) {
$arg = $argv[$i];
if ($arg === '-d' || $arg === '--dir') {
// Directory parameter
if ($i + 1 < count($argv)) {
$log_dir = $argv[$i + 1];
$i++; // Skip the directory path
} else {
trigger_error("Missing directory path after -d/--dir", E_USER_WARNING);
}
} elseif ($arg === '-f' || $arg === '--file') {
// File parameter
if ($i + 1 < count($argv)) {
$log_file = $argv[$i + 1];
$i++; // Skip the file path
} else {
trigger_error("Missing file path after -f/--file", E_USER_WARNING);
}
} elseif ($arg === '-l' || $arg === '--level') {
// Log level parameter
if ($i + 1 < count($argv)) {
$log_level = $argv[$i + 1];
$i++; // Skip the log level
} else {
trigger_error("Missing log level after -l/--level", E_USER_WARNING);
}
}
}
return [
'directory' => $log_dir,
'file' => $log_file,
'level' => $log_level,
];
}
// Example usage (uncomment to test)
//$argv = ['php', 'your_script.php', '-d', '/path/to/logs', '-f', 'app.log', '-l', 'debug'];
//$params = getLogFileParameters($argv);
//print_r($params);
?>
Add your comment