Цели работы
Получить навыки работы с консольной версией PHP (CLI PHP) и использования клиентских php-приложений, освоить варианты запуска php-приложения из командной строки. А также изучить базовый синтаксис языка PHP, активно используя знание базового синтаксиса языка Си.
Описание работы
Часть 1.
Скопируйте php-скрипт simple_start.phps (utf8) (без расширения - simple_start) в свою рабочую директорию на
kappa.cs.karelia.ru. Поменяйте расширение на php. Отработайте два варианты запуска php-приложения из
командной строки. Первый вариант - вызов команды php
:~> php simple_start.php
Найдите описание ключей -v, -w, -l, -m, -h (например, в man php).
Второй вариант - как исполняемый файл. Для этого нужно в начале скрипта указать
путь к консольной версии php (#!/usr/bin/php) и добавить файлу права на выполнение (chmod u+x).
:~> ./simple_start.php
Получите код возврата (echo $?), который передается в операционную систему в случае
успешной работы скрипта, при наличии ошибки. Измените код возврата
на любое число 0-255 (например, exit(45);).
Объясните полученный результат для следующих пунктов задания:
# | Задание |
---|---|
1 | Вывести значение переменных $a, $fl, $boo, $str |
2 | Вывести результат сложения переменных $a и $str |
3 | Вывести результат сравнения переменных $a и $str |
4 | Вывести результат сравнения переменных $nol и $pusto с использованием операторов == и === |
5 | Сравнить результат вывода переменных $s1 и $s2 |
6 | Вывести $mas["one"], $mas[2], $mas[3] |
7 | С помощью var_dump() вывести массив $mas |
8 | Вывести преобразование в строку (string)$fl (или strval($fl)) значения переменной $fl |
9 | Вывести преобразование в строку массива $mas |
10 | Вывести значение переменной $a, используя синтаксис "переменные переменных". Для этого нужно создать новую переменную $name = "a". Вывести ${$name} |
11 |
Создать семейство переменных $var1, $var2, $var3 и инициализировать значением 0. <?php for ($i = 1; $i <= 3; $i++) { ${"var".$i} = 0; } echo $var1, $var2, $var3,"\n"; ?> |
12 | Изменить значение переменной $a, используя "присвоение по ссылке". Вывести $a. Для этого нужно создать новую переменную $ref=&$a, которая является ссылкой на переменную $a. Теперь, чтобы изменить значение в $a, достаточно присвоить $ref новое значение и вывести $a |
13 | Вывести значение константы HOST |
14 | Выполнить $str=$HOST, $str=@$HOST |
15 | Вывести список файлов в текущей директории. Можно воспользоваться оператором подстановки команды shell $file_list=`ls -a`. Вывести значение $file_list |
16 | Для переменных $srt и $nol вывести результат вычисления выражения $str.$nol +1. Изменить выражение таким образом, чтобы в результате получилось "string01" |
17 | Самостоятельно определить массив $mas_add. Склеить массивы $mas и $mas_add с помощью оператора +. Вывести полученный результат с помощью var_dump(). Обратите внимание на переменные $argc, $argv. Сделайте вывод значений $argc, $argv (var_dump($argv)) |
Часть 2.
В файле genlognames.php (utf8) (без расширения - genlognames) приведен шаблон консольного php-приложения, которое выполняет латинизацию имени пользователя и генерирует пароль. Необходимо изучить и модифицировать программу таким образом, чтобы имя пользователя передавалось как параметр командной строки. Сделать вывод на экран полученного имени и пароля.
Критерии оценки работы
За это задание баллы не начисляются. Тем не менее оно должно быть представлено преподавателю до попыток сдать следующие работы.
Защищая работу, Вы должны продемонстрировать сделанные выводы в части 1, умение запускать php-сценарий из командной строки, понимание php-кода, встречающегося в php-скриптах данной лабораторной работы. Задание считается зачтенным, если все пункты выполнены верно и Вы ответите правильно на вопросы преподавателя.
Список полезных функций
var_dump(), gettype(), settype(), unset(), echo, print, printf(), strval(), phpinfo(), define(), constant(), get_defined_constants()