Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Филиппов Основы современного веб-программирования 2011.pdf
Скачиваний:
5
Добавлен:
12.11.2022
Размер:
1.95 Mб
Скачать

рит о том, что файлы adv.html и index.html располагаются на сервере в одной директории.

5.2. Язык программирования PHP

PHP (англ. PHP: Hypertext Preprocessor – «PHP: препроцессор гипертекста», англ. Personal Home Page Tools (устар.) – «Инстру-

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

Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений. Назовем основные из них:

автоматическое извлечение POST- и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;

файловые функции, успешно обрабатывающие как локальные, так и удалённые файлы;

автоматическая отправка HTTP-заголовков, информирующих обозреватель о начале передачи HTMLдокумента;

работа с cookies (текстовые данные, хранящиеся у клиента; позволяют серверу точно идентифицировать пользователя и его настройки при формировании HTMLдокументов) и сессиями;

обработка файлов, загружаемых на сервер. РекомендуетсявсемHTML-документам, содержащимPHP-скрипты,

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

Синтаксис

Синтаксис PHP подобен синтаксису языка JavaScript. Простейшая программа на PHP выглядит следующим образом:

107

<?php echo 'Hello, world!'; ?>

PHP исполняет код, находящийся внутри таких ограничителей, как <?php и ?>. Всё, что находится вне ограничителей, выводится без изменений. В основном это используется для вставки PHP-кода в HTML-документ, например, так:

<html><head><title>Тестируем PHP</title></head><body>

<?php echo '<strong>Hello, world!</strong>'; ?> </body></html>

Помимо ограничителей <?php ?>, допускается использование сокращенных ограничителей <? и ?>.

Имена переменных начинаются с символа $, тип переменной объявлять не нужно. В отличие от имён функций и классов, имена переменных чувствительны к регистру. Именованные константы могут быть объявлены как регистрозависимыми, так и регистронезависимыми. Переменные обрабатываются в строках, заключённых в апострофы или двойные кавычки.

PHP интерпретирует переход на новую строку в качестве пробела (так же, как HTML и другие языки со свободным форматом). Инструкции разделяются с помощью точки с запятой (;), за исключением некоторых случаев.

PHP поддерживает три типа комментариев: в стиле языка JavaScript: ограниченные /* */, начинающиеся с // и идущие до конца строки и оболочки UNIX, начинающиеся с # до конца строки.

Все операции и операторы полностью аналогичны Javascript за одним отличием: для сложения строковых переменных используется операция «.» (точка):

<?

$gre = "He"; $num = 3 + 2;

while ($num < 8) {

108

if ($num<=6) {$gre .= "l";} elseif ($num == 7) {$gre .= "o";} $num++;

}

echo '$num=' . $num . "! $gre people!\n";

?>

В результате работы скрипта в HTML-документе будет сформирована следующая текстовая строка:

$num=8! Hello people!

Массивы создаются также аналогично JavaScript, но без директивы New:

$fruit[] = 'banana';

$fruit = array('banana','papaya');

Встроенная функция count() выдает число элементов в массиве:

echo count($fruit);

Обращение к элементам массива аналогично JavaScript:

echo $fruit[0];

Шаблоны

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

include("имя_файла") – текст внешнего файла помещается в место вызова функции, после чего сразу исполняется. В случае помещения в условный оператор выполняется только при требуемом условии.

require("имя_файла") – текст внешнего файла подключается заранее и определенные в нем функции доступны в любом месте основного сценария. Не используется для вставки текстовых данных.

109

Рассмотрим пример, где и шапка, и подвал страницы расположены во внешних файлах:

<? include("template/bm-head.php"); ?>

Текст страницы

<? include("template/em.php");?>

Запись и чтение из файлов

Работу с файлами можно обозначить как одну из ключевых возможностей PHP, которая позволяет хранить данные между вызовами скриптов. Рассмотрим простейший пример создания файла и записи в него произвольной строки:

<?

$somecontent = "Поместить эту строку к файлу\n";

// Создадим новый файл для записи или обнулим ранее созданный $handle = fopen('test.txt', 'w');

fwrite($handle, $somecontent); // Запишем данные в файл fclose($handle); // Закроем файл

?>

Функция fopen() открывает файл (расположенный локально или же в Интернет) для целей, которые определяются режимами, обозначенными в табл. 5.1.

 

Таблица 5.1

 

Список режимов функции fopen()

 

 

mode

Описание

'r'

Открывает файл только для чтения; помещает указатель в

 

начало файла

'r+'

Окрывает файл для чтения и записи; помещает указатель в

 

начало файла

110

 

Продолжение табл. 5.1

 

 

mode

Описание

'w'

Открывает файл только для записи; помещает указатель в

 

начало файла и обрезает файл до нулевой длинны. Если

 

файл не существует – пробует его создать

'w+'

Открывает файл для чтения и записи; помещает указатель

 

в начало файла и обрезает файл до нулевой длинны. Если

 

файл не существует – пробует его создать

'a'

Открывает файл только для записи; помещает указатель в

 

конец файла. Если файл не существует – пытается его соз-

 

дать

'a+'

Открывает файл для чтения и записи; помещает указатель

 

в конец файла. Если файл не существует – пытается его

 

создать

Функция fwrite() записывает строку в файл. Функция fclose() закрывает связь с файлом. Рассмотрим пример чтения данных из сети Интернет:

<?

$fd = fopen ("http://eai.mephi.ru/", "r");

if (!fd) {exit;} // проверяем, удалось ли открыть ресурс

while (!feof ($fd)) {

$buffer = fgets($fd, 4096); echo $buffer;

}

fclose ($fd); ?>

Функция feof() осуществляет проверку – достигнут ли конец читаемого файла/ресурса.

Функция fgets() осуществляет чтение из файла/ресурса определенные порции данных, размер которых задан (рекомендуется для

111

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]