(c) Larry Ewing, Simon Budig, Garrett LeSage
с 1994 г.

Кафедра Информатики и Математического Обеспечения

ПетрГУ | ИМиИТ | О кафедре | Проекты | Лаборатория ИТС | Семинары НФИ/AMICT
Сотрудники | Учебный процесс | Табель-календарь | Курсовые и выпускные работы
Вычислительные ресурсы | Публикации | Архив новостей | Контактная информация (English)

Б1. Базовый синтаксис PHP. Консольные php-приложения

Цели работы

Получить навыки работы с консольной версией PHP (CLI PHP) и использования клиентских php-приложений, освоить варианты запуска php-приложения из командной строки. А также изучить базовый синтаксис языка PHP, активно используя знание базового синтаксиса языка Си.

Описание работы

Б1. Часть 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);).
Напишите php-сценарий, формирующий сводную html-таблицу для решений заданий, приведенных в таблице ниже. У сводной таблицы должно быть три столбца: 1 - номер задания; 2 - решение ; 3 - результат. Решение задания - это соответствующие команды php. Результат - результат выполнения соответствующих команд из второго столбца. Число строк совgадает с количеством заданий + строка-заголовок. Дизайн таблицы может быть произвольным. Выводимый текст не должен выходить за границы видимой области окна браузера. Необходимые данные для выполнения заданий содержатся в файле simple_start.php. (Для запуска сценария через браузер необходимо его поместить в каталог public_html.) Выполните следующие задания и объясните полученный результат.

 #   Задание 
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))

Б1. Часть 2.

В файле genlognames.php (utf8) (без расширения - genlognames) приведен шаблон консольного php-приложения, которое выполняет латинизацию имени пользователя и генерирует пароль. Необходимо изучить и модифицировать программу таким образом, чтобы имя пользователя передавалось как параметр командной строки. Сделать вывод на экран полученного имени и пароля.

Критерии оценки работы

Базовая оценка за задание, состоящее из двух частей, составляет 4 балла. Дополнительные 4 балла (итого 8 за задание) можно получить, автоматизировав создание таблицы в части 1, при условии соблюдения срока, определенного для данной лабораторной работы. Таким образом, решение каждой задачи находится в отдельном php-файле, загрузка таблицы выполняется отдельным php-скриптом. Задание должно быть выполнено полностью, результат должен соответствовать требованиям задания, автор обязан понимать собственное решение. При несоблюдении сроков сдачи задания, базовый балл уменьшается вдвое каждую пару после срока.

Защищая работу, Вы должны продемонстрировать сделанные выводы в части 1, умение запускать php-сценарий из командной строки, понимание php-кода, встречающегося в php-скриптах данной лабораторной работы. Задание считается зачтенным, если все пункты выполнены верно и Вы ответите правильно на вопросы преподавателя.

Список полезных функций

var_dump(), gettype(), settype(), unset(), echo, print, printf(), strval(), phpinfo(), define(), constant(), get_defined_constants()