- •Тема 1 Основы cgi-программирования
- •1.1 Методы передачи данных
- •1.2 Передача документа пользователю
- •1.3 Передача информации cgi-сценарию
- •Тема 2 Характеристика языка php
- •2.1 Принцип работы php
- •2.2 Переменные, константы, выражения
- •Тема 3 Работа с данными формы
- •3.1 Передача данных
- •3.2 Трансляция полей формы в переменные
- •Тема 4 Конструкции языка
- •4.1 Условные инструкции
- •4.2 Инструкции циклов
- •4.3 Инструкции включения
- •Тема 5 Ассоциативные массивы
- •5.1 Списки и ассоциативные массивы
- •5.2 Операции над массивами
- •5.3 Списки и строки
- •5.4 Сериализация
- •Тема 6 Работа с массивами
- •6.1 Сортировка массивов
- •6.2 Функции для работы с массивами
- •Тема 7 Функции и области видимости
- •7.1 Формат определения функции, передача параметров
- •7.2 Глобальные, локальные, статические переменные
- •7.3 Рекурсия, вложенные и условно-определяемые функции
- •7.4 Передача функций по ссылке и возврат функцией ссылки
- •Тема 8 Строковые функции
- •8.1 Функции работы со строками
- •8.2 Работа с блоками текста
- •Тема 9 Математические функции
- •9.1 Встроенные константы
- •9.2 Встроенные функции
- •Тема 10 Работа с файлами и каталогами,
- •10.1 Функции работы с файлами
- •10.2 Блокирование файла
- •10.3 Функции работы с каталогами
- •10.4 Запуск внешних программ
- •Тема 11 Работа с датами и временем,
- •11.1 Представление времени в формате timestamp
- •11.2 Работа с датами, григорианский календарь
- •11.3 Посылка писем через php
- •Тема 12 Работа с www
- •12.1 Установка заголовков ответа
- •12.2 Работа с Cookies
- •Тема 13 Управление интерпретатором
- •13.1 Управление интерпретатором
- •13.2 Управление сессиями
- •Тема 14 Работа с базой данных mysql
- •14.1 Соединение с базой данных
- •14.2 Выполнение запросов к базе данных
- •Тема 15 Загрузка файлов на сервер
- •15.1 Multipart-формы, тег выбора файла
- •15.2 Поддержка закачки в php
- •Учебное издание
- •Разработка программного обеспечения на платформе net: php.Net
- •246019 Г. Гомель, ул. Советская, 104
Тема 2 Характеристика языка php
2.1 Принцип работы PHP
2.2 Переменные, константы, выражения
2.1 Принцип работы php
PHP составлен из двух почти независимых блоков – транслятора и интерпретатора.
Транслятор – программа, которая переводит код с одного «языка» на другой. Например, утилита, преобразующая исходный Паскаль-код на Си – транслятор.
Компилятор – это транслятор, конвертирующий код программы на языке высокого уровня в машинный код.
Интерпретатор – это утилита, которая просматривает код некоторой программы и выполняет одну её инструкцию за другой, т.е. полностью контролирует процесс исполнения.
РНР, получая на свой вход исходный код программы, в первую очередь анализирует его (в частности, проверяет синтаксис) и транслирует во внутреннее представление, которое представляет собой специальный байт-код, с которым проще будет в дальнейшем оперировать РНР. Эту фазу чаще всего и называют ошибочно компиляцией. РНР исполняет (интерпретирует) полученный байт-код. В этот момент он представляет собой классический интерпретатор.
Таким образом, РНР является интерпретатором с встроенным блоком трансляции, оптимизирующим ход интерпретации.
Преимущества интерпретатора перед классическим компилятором, состоят в следующем:
1. Упрощается обнаружение ошибок во время выполнения программы. В случае сбоя интерпретатор сразу же выведет сообщение, если что-то не так.
2. Можно не заботиться об освобождении и выделении памяти. Интерпретатор сам определит, когда та или иная переменная в программе уже не используется, и освободит память, выделенную для нее.
3. Существует возможность написать программу, которая, грубо говоря, будет формировать и тут же исполнять другую программу. В частности, можно формировать идентификаторы во время исполнения программы, создавать массивы анонимных функций и т.д.
4. Не нужно думать о типах переменных.
Недостаток (единственный!): это медлительность интерпретаторов, даже с блоками трансляции. Проигрыш заметен в случае больших и сложных циклов, при обработке большого количества строк и т.д.
Примеры PНР-программ:
Первый вариант <? print ”Привет!” ?> |
Второй вариант <body> Привет! </body> |
Третий вариант
<html>
<body>
<h1> Привет!</h1>
<?
//Вычисляем текущую дату в формате «день.месяц.год»
$dat=date(”d.m.y”);
$tm=date(”h:i:s”); //Вычисляем текущее время
#Выводим их
echo ”Текущая дата: $dat года <br>\n”;
echo ”Текущее время: $tm <br>\n”;
#Выводим цифры
echo ”Квадраты и кубы первых 5 натуральных чисел: <br>\n”;
for ($i=1; $i<=5; $i++)
{ echo ”<li>$i в квадрате = ”.($i*$i);
echo ”, $i в кубе =”.($i*$i*$i).”\n”;
}
?>
</body>
</html>
РНР-скрипт может не отличаться от обычного html-документа. Все, что расположено до начала РНР-кода, отображается непосредственно. Сам код сценария начинается после открывающегося тэг <? и заканчивается закрывающим ?>. Между этими двумя тэгами сам текст интерпретируется как программа, и в HTML-документ не попадает. Для вывода в программе используется оператор echo (это не функция, а конструкция языка) или print. РНР устроен так, что любой текст, который расположен вне программных блоков, ограниченных <? и ?>, выводится в браузер непосредственно, т.е. воспринимается, как вызов оператора echo.
