Анализ аргументов программы

Задача
Необходимо обработать аргументы, переданные в командной строке.

Решение
Количество переданных программе аргументов можно посмотреть в переменной $_SERVER['argc'], а их значения – в переменной $_SERVER['argv']. Первый аргумент, $_SERVER['argv'][0], – это имя выполняемого сценария:

if ($_SERVER['argc'] != 2) {
die("Wrong number of arguments: I expect only 1.");
}
$size = filesize($_SERVER['argv'][1]);
print "I am $_SERVER[argv][0] and report that the size of ";
print "$_SERVER[argv][1] is $size bytes.";

Обсуждение
Для того чтобы установить параметры на основе флагов, переданных в командной строке, выполните цикл по массиву $_SERVER['argv'] от 1 до $_SERVER['argc']:

for ($i = 1; $i < $_SERVER['argc']; $i++) {
switch ($_SERVER['argv'][$i]) {
case '-v':
// устанавливаем флаг
$verbose = 1;
break;
case '-c':
// переходим к следующему аргументу
$i++;
// если он установлен, записываем значение
if (isset($_SERVER['argv'][$i])) {
$config_file = $_SERVER['argv'][$i];
} else {
// выходим, если не указано имя файла
die("Must specify a filename after -c");
}
break;
case '-q':
$quiet = 1;
break;
default:
die('Unknown argument: '.$_SERVER['argv'][$i]);
break;
}
}

В этом примере аргументы -v и -q представляют собой флаги, устанавливающие $verbose и $quiet, но за аргументом -c ожидается строка. Эта строка присваивается переменной $config_file.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела PHP на эту тему:
Анализ аргументов программы с помощью getopt
Показ в окне графических элементов управления
Показ в окне нескольких графических элементов управления
Показ меню
Программа: Командная оболочка

Вернуться в раздел: PHP / 20. PHP на стороне клиента