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

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

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

Цели работы

Получить навыки работы с консольной версией 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()