PHP допускает такую передачу аргументов командной строки в сценарий. Он устанавливает две переменные: $argc, в которой содержится количество аргументов командной строки, переданных сценарию, и $argv[], представляющую собой массив с фактическими аргументами, переданными сценарию.
Элемент всегда содержит имя выполняемого сценария РНР, в на
шем случае mail_stats. php, $argv[ 1 ] содержит первый аргумент командной строки, $argv[2] - второй аргумент, $argv[n] - n-й аргумент. Чтобы наш сценарий принимал аргументы из командной строки, мы должны убедиться, что передано правильное количество аргументов, и присвоить аргументы нужным переменным. Это выполняет следующий код:
if ($агдс ! - 3) {
echo("usage: mail_stats.php logfile administrators„email"); exit; : .
}
Slogfile = $argv[l]; $admin_email = $argv[2];
Сначала проверяем количество аргументов. Если оно неверное, выводим сообщение и завершаем сценарий, в противном случае присваиваем правильные значения переменным, которые будут использоваться в сценарии. Если с этим сценарием будет работать кто-то другой, возможно, стоит проверить допустимость $argv[ 1] и $argv[2]; эта возможность не была включена для упрощения примера. Однако при необходимости можно поместить приведенные выше строки в сценарий mai l_stats. php вместо следующих:
:../*"-- Переменные, используемые в сценарии -- */ Slogfile = "./access.log"; $admin„email = "admin@localhost";
Интерактивные сценарии
Если вы установили библиотеку libedit и включили ее поддержку в РНР, то можете также создавать интерактивные сценарии. Это расширение предоставляет функциональность, позволяющую программисту запрашивать команды у пользователя в командной строке. Приведенный ниже код реализует небольшую игру с угадыванием:
<?php
$play = "у";
while ($play == "у") {
Инициализируем переменную, используемую в каждой игре, значением чтобы прежние сыгранные игры не влияли на текущую:
$correct = false;
В следующих строках у пользователя запрашивается максимальное число, которое он готов отгадывать, и количество попыток. В этом сценарии нет проверки данных, введенных пользователем. В качестве упражнения рекомендуем читателю организовать передачу этих переменных через командную строку при запуске сценария:
$max = readline("Maximum possible value: $no_of_guesses = readline("No of guesses: ");
Затем устанавливаем начальное значение генератора случайных чисел. Это существенно, потому что иначе крайне важные случайные числа окажутся не совсем случайными: