- •Оглавление
- •Что такое интернет
- •Готовимся к созданию Web-страниц
- •Железо, железо и еще раз железо...
- •Домашняя эргономика — безопасность прежде всего!
- •Программное обеспечение для Web-мастера
- •Выбор хостинга
- •Знакомьтесь — РНР
- •История создания РНР
- •Установка РНР
- •Настройка РНР для Apache
- •Виртуальные хосты в Apache
- •Тестирование РНР
- •Установка и настройка дополнительных модулей
- •Переносимость и совместимость
- •Синтаксис РНР
- •Возможности РНР
- •Работа с базами данных
- •HTTP-аутентификация средствами РНР
- •Работа с изображениями
- •Поддержка закачки файлов
- •Поддержка HTTP-cookie
- •Использование регулярных выражений
- •Обработка ошибок
- •Управление электронными письмами
- •Вывод на экран и переменные в РНР
- •Простейшие арифметические операции
- •Простейшие логические операции
- •Циклы
- •Массивы
- •Работа со строками
- •Сессии
- •Программирование на РНР
- •Сравнение чисел
- •Вложение файлов в документ
- •Простейший счетчик посещений
- •Обработка форм
- •Отправление почты
- •Отправление письма в HTML-формате
- •Дата по-русски
- •Счетчик посещений с использованием базы данных
- •Счетчик персональной посещаемости
- •Сохраняем информацию о посещениях
- •Ах, баннеры, баннеры...
- •Счетчик посещений с выводом информации на экран
- •Счетчик сессий
- •Создание динамического меню
- •«Грабим» странички
- •Голосование на сайте
- •Гостевая книга
- •Технология создания
- •Свой чат — это просто
- •Использование специального привата
- •Интернет-магазин
- •Технология создания
- •Сервисы интернет-магазина
- •Архив рассылок
- •Совет первый: а нужно ли вам это?
- •Совет второй: забудьте все советы
- •Пример системы безопасности
- •HTTP-аутентификация в РНР
- •Защита программы
- •РНР в вопросах и ответах
- •Приложения
- •Приложение 3. Некоторые функции РНР
- •Приложение 4. Cookie
- •Приложение 5. Методы передачи данных POST и GET
- •Приложение 6. Время Unix
56 |
Знакомьтесь — РНР |
Управление электронными письмами
Оно сведено к одной функции. Есть адрес и текст, который нужно отправить на этот адрес. При помощи РНР письмо будет отправлено без проблем. В дальнейшем мы рассмотрим не один пример с поддержкой отправки писем.
На своем личном опыте я могу сказать, что сайт, построенный полностью на РНР, не испытывает каких-либо задержек в открытии и работе, даже несмотря на то, что интерпретатор РНР испытывает значительные нагрузки при размещении на сайте новостей, счетчика статистики, генерации баннеров нескольких типов и «склеивания» страницы из нескольких фрагментов. Это и многое другое будет нормально функционировать при условии элементарной внимательности и качественной настройки сервера.
Конечно, перечисленные возможности языка РНР далеко не полные, но по мере знакомства с ним вы научитесь создавать очень сложные вещи буквально одним движением руки (это я образно, конечно) и узнаете значительно больше.
Вывод на экран и переменные в РНР
РНР очень легко позволяет организовать вывод текста на экран. Рассмотрим пример скрипта:
<?php
echo "Привет, мир!";
СОВЕТ
Не обязательно открывающий тег РНР писать именно так: <?php. Вполнедопустим вариант <?,хотя это и не постандарту. Но если уже давно поддерживаются оба варианта, почему бы второмутоже не стать стандартом? Выбирайте то, что вам больше нравится.
Вывод на экран и переменные в РНР |
57 |
Этот скрипт может быть расположен в любом месте HTML-до- кумента, и сам по себе он не несет ничего полезного, так как просто выводит на экран фразу «Привет, мир!». Но таким образом мы знакомимся с одной из наиболее распространенных функций РНР — echo, которая выводит информацию на экран пользователя.
Чтобы разобраться в работе скрипта, давайте познакомимся с переменными.
Переменная характеризуется именем, типом и значением. Имя может быть любым и включать в себя цифры, буквы английского алфавита и разрешенные символы (например, символ подчеркивания или тире). Все переменные в РНР обязательно должны начинаться со знака $, что позволяет интерпретатору безошибочно отличать переменные от функций. Давайте ясные и по возможности «говорящие» имена своим переменным, однако не слишком длинные, максимум из двух слов. Разделить два слова можно, поставив «_» (символ подчеркивания) или написав второе слово с заглавной буквы.
ВНИМАНИЕ
Названия функций в РНР не зависят от регистра (т.е. ECHO то же самое, что echo), а имена переменных — регистрозависимы (т.е. $os и $OS — разные переменные).
По типу переменные делятся на целочисленные, с плавающей запятой, строковые, объектные, булевы и массивы.
Заранее описывать тип переменной, как в языках Pascal или Visual Basic, не требуется. Разделение на типы в принципе условное, и все же каждая переменная автоматически стремится использовать правильный тип, соответствующий своему значению.
ВНИМАНИЕ
Если мы попытаемся использовать неинициализированную переменную в работе, это посчитается интерпретатором за ошибку. Но это не является ошибкой, так как переменная тутже будет
58 |
Знакомьтесь — РНР |
|
|
|
|
инициализирована и ее значение будет приравнено к нулю или пустой строке в зависимости оттипа.
Однако это справедливо, только если уровень обработки ошибок не выставлен на максимальный контроль. Если же уровень ошибок максимален, обращение к несуществующей переменной вызовет сообщение об ошибке (программа при этом будет работать дальше). Чтобы подавить такое сообщение об ошибке, можно заранее описать все использующиеся в программе переменные, присвоить им значение «ноль» или «пустая строка». Второй вариант подавления ошибки: перед именем переменной поставить символ @, который подавляет сообщения об ошибках.Воттак:@$name; if(@$name)и т.д. Для постоянного подавления сообщений о таких ошибках нужно соответствующим образом настроить конфигурационный файл php.ini
(см. выше).
Значение в соответствии с типом может быть практически любым. Например, $а = 5. Это говорит о том, что имя переменной — $а, тип — целочисленный, значение — 5. Еще примеры:
1<?php
2$name = 6;
3$hl2 = 4.89;
4$file_type = "path/index.phtml";
5$os = "PHP для всех!";
6?>
Во второй строке нашего скрипта переменной $name присваивается значение 6, и эта переменная автоматически становится целочисленной.
В третьей строке кода переменной $hl2 присваивается значение 4.89, которое имеет тип числа с плавающей запятой. В четвертой и пятой строках кода переменным присваиваются значения со строковым типом. Все, что заключено в кавычки (включая цифры), будет интерпретировано как символьная строка.
Простейшие арифметические операции |
59 |
Простейшие арифметические операции
Как и в других языках программирования, над переменными можно совершать любые арифметические действия в соответствии с обычной логикой. Достаточно указать переменную для результата, знак равенства и перечислить в порядке выполнения действий переменные или значения с необходимыми арифметическими знаками. Пример:
<?php $а = 5;
$b = |
3; |
$с = |
4; |
$d = |
$а + $b - $с; |
echo |
$d; |
?> |
|
Результат работы скрипта — вывод на экран цифры 4,
РНР поддерживает все математические функции, многоуровневые скобки, логические операции, операции увеличения или уменьшения на единицу и многое другое.
В РНР есть функции для увеличения или уменьшения переменной на единицу. Для этого нужно указать имя переменной и за ним без знака равенства подряд два плюса или минуса соответственно. Например, $а++; — переменная $а будет увеличена на единицу.
Нескольким переменным можно одновременно присвоить одно значение: $а = $b = 4; — обе переменные и $а и $b будут равны четырем. Вот еще несколько примеров нестандартных арифметических операций в РНР:
<?php
$b = $а = 5; /* присваиваем одинаковое значение переменным $а и $b */
60 |
Знакомьтес |
$с = $а++; /* последующее увеличение, присваиваем $с начальное значение $а {5) , а затем увеличиваем $а на единицу */
$е = $d = ++$b; /* предварительное увеличение, присваиваем переменным $d и $е значение $b, увеличенное на единицу, т.е. $d и $е равны 6 */
$f = 2 * ($d++); /* присваиваем переменной $f удвоенное значение переменной $d до его увеличения, т.е. 2 * б = 12, и затем увеличиваем $d на единицу */
$g - 2 * (++$е); /* присваиваем переменной $g удвоенное значение переменной $е после его увеличения, т.е. 2 * 7 = 14 */
$h = $g += 10; /* сначала увеличиваем значение $g на 10, что дает в результате 24, а затем присваиваем это значение переменной $h */
?>
Рассмотрим следующий работоспособный скрипт, который вы можетевставитьксебенастраницу. Задача:вывестинаэкранчерез пробел определенное количество последовательных чисел. Внашемслучаеэто1,2,3,4,5,т.е.пятьпоследовательныхчисел, начиная с единицы. Код решения:
<?php
$i = 1; // присваиваем переменной $i значение 1
echo $i; // выводим переменную $i
$i++; // увеличиваем переменную на единицу
echo " ".$i; // выводим увеличенную на единицу переменную, не забыв о пробеле
// повторяем эти две операции необходимое количество раз
$i++;
echo " ".$i;
Простейшие логические операции |
61 |
$i++;
echo " ".$i;
$i++;
echo " ". $i; ?>
Пример, конечно, не самый лучший , но основные понятия языка уяснить можно.
Увеличение переменной на единицу реализуется указанием двух плюсов после переменной — $i++, хотя ничего не мешает писать так — $i = $± + 1;. Выполнив эту инструкцию пять раз, соответственно увеличим переменную на пять, выводя между делом результат и не забывая о пробелах. На экран в результате работы скрипта будут выведены подряд (в строку) цифры «1 2 3 4 5».
Если бы стояла задача вывести указанные цифры не в строчку, а в столбец, то вместо пробелов в кавычках надо было бы поставить HTML-тег перевода строки <br>. Вот так — echo "<br>" . $ i; . В результате на экране появится столбик из пяти цифр.
Теперь рассмотрим алгоритм этого скрипта:
•начать скрипт;
•присвоить переменной $i значение 1;
•вывести переменную $i на экран;
•увеличить переменную $i на единицу;
•вывести пробел и переменную $i на экран;
•выполнять столько, сколько надо;
•закончить скрипт.
Как видите, ничего сложного нет. Просто делаем то, что нам надо.
А теперь посмотрите, что получится в HTML-коде: ни следа РНР! Это ли не мечта многих — иметь возможность скрыть свой HTML-код.
1 Для решения данной задачи лучше было бы воспользоваться циклом (см. ниже), но на первых порах для знакомства я буду стараться все максимально упрощать.
