Лабы
Физика

Черчение

Лекции
Задачи
Проект: календарь событий

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

Информация о событиях хранится в обычном текстовом файле и выглядит примерно так:

July 21, 2000|8 p. m.|Cooking With Rasmus|PHP creator Rasmus Lerdorf discusses the wonders of cheese.

July 23, 2000|11 a. m.|Boxed Lunch|Valerie researches the latest ham sandwich making techniques (documentary)

July 31, 2000|2:30p.m.|Progressive Gourmet|Forget the Chardonnay: iced tea is the sophisticated gourmet's beverage of choice.

August 1, 2000|7 p.m.|Coder's Critique|Famed Food Critic Brian rates NYC's hottest new Internet cafes.

August 3, 2000|6 p.m.|Australian Algorithms|Matt studies the alligator's diet.

На рис. 3.1 изображен результат работы сценария РНР, приведенного в листинге 3.1.

Рис. З.1. Примерный вид календаря

Прежде чем переходить к подробному анализу кода, потратьте немного времени на изучение алгоритма:

Открыть файл, содержащий информацию о событиях.
Разделить каждую строку на 4 элемента: дату, время, название и краткое описание мероприятия.
Отформатировать и вывести данные.
Закрыть файл.
Листинг 3.1. Сценарий для вывода содержимого events.txt в браузере

<?

// Приложение: календарь

// Назначение: чтение и анализ содержимого файла

// с последующим форматированием для вывода в браузере

// Открыть файловый манипулятор Sevents для файла events.txt

$events - fopen ("events.txt". "r");

print "<table border = 0 width = 250>"

print""<tr><td valign=top";

print "<h3>Events Calendar:</h3>";

// Читать, пока не будет найден конец файла

while (! feof(Sevents)) :

// Прочитать следующую строку файла

events.txt $event = fgets($events. 4096);

// Разделить компоненты текущей строки на элементы массива

$event_info = explode("|". Jevent);

// Отформатировать и вывести информацию о событии

print "$event_info[0] ( $event_info[1] ) <br>";

print "<b>$event_info[2]</b> <br>";

print "$event_info[3] <br> <br>";

endwhile;

// Завершить таблицу

print "</td></tr></table>";

fclose ($events);

?>

Этот короткий пример убедительно доказывает, что РНР позволяет даже неопытным программистам создавать реальные приложения с минимальными усилиями и затратами времени. Если какие-нибудь из представленных концепций покажутся непонятными, не огорчайтесь - на самом деле они очень просты и будут подробно описаны в следующих главах. А если вам не терпится узнать побольше об этих вопросах, обратитесь к главе 7 <Файловый ввод/вывод и файловая система> и главе 8 <Строки и регулярные выражения> поскольку большая часть незнакомого синтаксиса описана именно там.

Итоги

В этой главе были представлены выражения и управляющие конструкции - средства языка РНР, которые, вероятно, в той или иной форме присутствуют практически в любом сценарии. Мы рассмотрели некоторые вопросы использования этих средств, а именно:

операторы;
операнды;
приоритет операторов;
ассоциативность операторов;
управляющие структуры (If, while, do. .while, for, foreach, switch, break, continue).
В первых трех главах книги вы познакомились с базовыми компонентами языка РНР. Остальные пять глав первой части расширяют этот материал; в них вы найдете дополнительную информацию о работе с массивами, объектно-ориентированных возможностях, файловом вводе/выводе и строковых операциях РНР. Весь этот материал готовит читателя ко второй части книги, причем особое внимание уделяется средствам РНР, часто используемым при построении приложений. Итак, держитесь покрепче и не сходите с дистанции!

Электротехника