- •Оглавление
- •Что такое интернет
- •Готовимся к созданию Web-страниц
- •Железо, железо и еще раз железо...
- •Домашняя эргономика — безопасность прежде всего!
- •Программное обеспечение для Web-мастера
- •Выбор хостинга
- •Знакомьтесь — РНР
- •История создания РНР
- •Установка РНР
- •Настройка РНР для Apache
- •Виртуальные хосты в Apache
- •Тестирование РНР
- •Установка и настройка дополнительных модулей
- •Переносимость и совместимость
- •Синтаксис РНР
- •Возможности РНР
- •Работа с базами данных
- •HTTP-аутентификация средствами РНР
- •Работа с изображениями
- •Поддержка закачки файлов
- •Поддержка HTTP-cookie
- •Использование регулярных выражений
- •Обработка ошибок
- •Управление электронными письмами
- •Вывод на экран и переменные в РНР
- •Простейшие арифметические операции
- •Простейшие логические операции
- •Циклы
- •Массивы
- •Работа со строками
- •Сессии
- •Программирование на РНР
- •Сравнение чисел
- •Вложение файлов в документ
- •Простейший счетчик посещений
- •Обработка форм
- •Отправление почты
- •Отправление письма в HTML-формате
- •Дата по-русски
- •Счетчик посещений с использованием базы данных
- •Счетчик персональной посещаемости
- •Сохраняем информацию о посещениях
- •Ах, баннеры, баннеры...
- •Счетчик посещений с выводом информации на экран
- •Счетчик сессий
- •Создание динамического меню
- •«Грабим» странички
- •Голосование на сайте
- •Гостевая книга
- •Технология создания
- •Свой чат — это просто
- •Использование специального привата
- •Интернет-магазин
- •Технология создания
- •Сервисы интернет-магазина
- •Архив рассылок
- •Совет первый: а нужно ли вам это?
- •Совет второй: забудьте все советы
- •Пример системы безопасности
- •HTTP-аутентификация в РНР
- •Защита программы
- •РНР в вопросах и ответах
- •Приложения
- •Приложение 3. Некоторые функции РНР
- •Приложение 4. Cookie
- •Приложение 5. Методы передачи данных POST и GET
- •Приложение 6. Время Unix
Часть III
Знакомьтесь — РНР
История создания РНР
Язык РНР появился осенью 1994 года. Его создатель — Расмус Лердорф (Rasmus Lerdorf) (рис. 11) — использовал язык в своих целях, чтобы иметь представление о тех людях, которые посещают его сайт и знакомятся с его резюме.
Рис. 11. Создатель РНР — Расмус Лердорф
По словам разработчика языка, РНР был написан буквально за день в промежутках между деловыми встречами. Сначала это
ИсториясозданияРНР |
37 |
была просто невзрачная CGI-оболочка , написанная на языке Perl, которая служила исключительно для специфических целей. Такое приложение (его называют шлюзом, или CGI-программой) запускается сервером в реальном режиме времени. Сервер передает запросы пользователя CGI-программе, обрабатывающей их, и возвращает результат работы программы на экран пользователя. Таким образом, посетитель получает динамическую информацию, которая может изменяться в результате влияния различных факторов. Сам шлюз может быть написан на различных языках программирования — C/C++, Fortran, Perl, TCL, Unix Schell, Visual Basic, Apple Script и др. Создатель РНР для разработки шлюза сначала выбрал язык Perl, как наиболее простой и доступный.
В результате дальнейшей эксплуатации выяснилось, что CGI-обо- лочка обладает малой производительностью (медленно работает), и Расмус Лердорф вынужден был переписать все заново, но уже на языке С, что позволило увеличить скорость работы РНР. Пользователи сервера, на котором располагался сайт с первой версией РНР, заинтересовались этим языком. Лердорф не предполагал, что кто-то другой будет пользоваться этим языком, но РНР довольно быстро перерос в самостоятельный проект, и в начале 1995 года вышла первая известная версия продукта, называвшаяся Personal Home Page Tools (средства для персональной домашней страницы). На тот момент РНР обладал более чем скромными возможностями. Он имел простейший анализатор кода, который понимал несколько специальных команд, а также разные утилиты для сайта, необходимые для разработки гостевой книги, счетчика посещений, чата, системы статистики и т.п. К середине 1995 года язык был основательно переработан, а также появилась возможность обработки форм и были добавлены функции работы с базами данных. В таком виде вышла вторая версия продукта. Затем была более дополненная третья и, наконец, современная нам четвертая версия РНР.
Сегодня РНР — это мощный кроссплатформенный набор средств, который располагается на сервере и предназначен для обработки
CGI (Common Gateway Interface, общий шлюзовой интерфейс) — стандарт, предназначенный для создания серверных приложений. (Примеч. ред.)
К моменту выхода книги была готова версия РНР 5.0 beta 4. (Примеч. ред.)
38 |
Знакомьтесь — РНР |
специального кода, встраиваемого в HTML-страницу. Благодаря этому появилась возможность легко создавать динамические сайты. Файлы, созданные таким образом, хранятся и обрабатываются на сервере. Когда посетитель запрашивает документ с РНР-кодом, скрипт обрабатывается не браузером посетителя, как, например, при использовании JavaScript, а сервером (точнее, сервер передает управление специальной программе, обрабатывающей РНР-код). Посетителю передаются уже только результаты работы. Точно так же работает CGI-программа, написанная на С или Perl.
Но в отличие от CGI, РНР-код можно встраивать в любое место HTML-страницы, что является основным преимуществом РНР по отношению к CGI. Кроме того, РНР очень прост для изучения и не требует каких-либо специфических знаний. Например, мне вполне хватило опыта, приобретенного лет десять назад на уроках информатики в школе, на которых мы изучали язык Basic на очень модных и дорогих тогда Yamaha.
Несмотря на столь радужную характеристику, есть у РНР и недостатки. Стоит отметить довольно медленную, по сравнению с СGI-программами, работу больших (именно больших, так как маленькие скрипты не вызывают существенной нагрузки) РНРскриптов. РНР — интерпретируемый язык , что непременно ведет к ухудшению производительности в случае очень больших и сложных программ, но для выполнения несложных манипуляций на сайте РНР — лучший выбор. К тому же последние версии РНР практически лишены этих недостатков. Полностью переписанный и оптимизированный код сделал свое дело, и если ваш хостинг-провайдер позволяет использовать РНР версии более 4.1 — будьте спокойны. Этому очень способствовал тот факт, что частично РНР стал компилируемым языком. Но только частично, в нем очень гармонично уживаются и интерпретатор, и ком-
Интерпретатор — транслятор (программа или устройство, которое переводит программу с одного языка программирования на другой), анализирующий команды или операторы исходной программы и немедленно выполняющий их. Таким образом, интерпретатор одновременно и транслирует, и выполняет заданную программу в отличие от компилятора, который только транслирует всю программу без ее выполнения. (Примеч. ред.)
