
- •В.С. Романчик
- •Глава 2. Использование php.
- •Глава 3.
- •Введение
- •Возможности php.
- •Инструменты для разработки
- •Как php работает
- •Глава 1. Язык php Типы данных
- •Массивы и инициализация массивов
- •Объектно-ориентированное программирование в php Основные понятия ооп
- •Классы и Объекты
- •Конструкторы и деструкторы
- •Наследование классов и интерфейсов
- •Магические методы
- •Обработка ошибок
- •Ошибки php и директива error_reporting
- •Чтение и запись бинарных файлов
- •Работа с каталогами в рнр
- •MySql – сервер: бд1; бд2; бд3; бд4;
- •Язык запросов sql
- •Операция соединения.
- •Команды sql для создания баз данных и таблиц
- •Выборка данных из таблиц бд
- •Работа с MySql (сохранение данных в базе данных).
- •Работа с MySql занесение и получение данных из базы данных
- •Некоторые улучшения в организации работы с данными
- •Передача данных от клиента к серверу и от сервера клиенту
- •Клиентские методы http get, post, head
- •Обработка html-форм и передача переменных в скрипт.
- •Передача значений переменных по методу get
- •Ниже рассмотрен еще один пример передачи данных из клиентской формы на сервер по методу get
- •Передача данных на сервер по методу post
- •Php и обработка различных форм
- •Примеры обработки форм
- •Работа с e-mail
- •Отправка почты на php (Функция mail)
- •Cookies-наборы: сохраненное состояние
- •Сессии (Сеансы) Переменные сеанса
- •Отмена регистрации сеансовых переменных
- •Работа с сеансовыми переменными
- •Постоянные данные, использующие сеансы и cookie-наборы
- •Вывод графических данных с помощью рнр Основной способ создания изображений
- •Получение информации об изображении
- •Функции рисования прямых и кривых линий
- •Заливка изображений
- •Работа с палитрой изображения
- •Удаление и изменение цветов палитры
- •Создание прозрачности в изображениях
- •Рисование с помощью кистей
- •Использование специальных стилей для заливки
- •Использование шрифтов и вывод строк
- •Манипулирование и копирование изображений
- •Создаём графический информер на php
- •Слияние изображений с помощью gd
- •Включения удаленных файлов
- •Различные приложения и полезные скрипты на php
- •Пример. Определение типа и версии браузера
- •Генератор паролей на php
- •Время выполнения скрипта
- •Календарь
- •Загрузка файла от клиента на сервер
- •Работа с ftp на уровне php
- •Сбор статистики на php
- •Проверка ввода емайл
- •Чтение почты через Web-интерфейс
- •Разработка собственных листов рассылки
- •Рассылаем письма
- •Добавляем адреса в список рассылки
- •Редактирование адресов
- •Автоответчик
- •Почтовые функции в рнр
- •Задания для выполнения
- •Приложение 1. Протокол передачи гипертекстов http
- •Клиентские методы и заголовкиHttp
- •Указатель ссылки ("Referer")
- •Медиа-типы
- •Кодирование
- •Безопасность и авторизация
- •Кэширование содержимого http на стороне клиента
- •Http идентификация с php
- •Сжатие данных в протоколе http
- •Модель ajax: между загруженной в браузер страницей и сервером появляется прослойка - уровень ajax, который обеспечивает следующую последовательность выполнения приложения.
- •Класс xmlHttpRequest
- •Методы класса xmlHttpRequest
- •Свойства класса xmlHttpRequest
- •Создание экземпляра объекта xmlHttpRequest
- •Использование dom
- •Проблема с кешированием
- •Информируйте пользователя
- •Нет принципов написания кода
- •Аутентификация средствами php
- •Отделение клиентская части программы от серверной части и шаблоны
- •Использование шаблонов в php
- •Шаблоны подстановки
- •Создаем свои шаблоны в php
- •Теги, атрибуты, значения
- •Структура документа
- •Разрыв строки
- •Предварительное форматирование
- •Комментарии
- •Физическая и логическая разметка документа
- •«Физические» теги:
- •«Логические» теги:
- •Специальные символы
- •Графика
- •Формы html
- •Метатеги
- •Способы включения каскадных таблиц стилей
- •Синтаксис
- •Группирование
- •Наследование
- •Множественные классы.
- •Селекторы идентификаторов (id-селекторы).
- •Комментарии
- •Свойства шрифтов.
- •Свойства текста.
- •Представление документа в виде специальных областей – блоков
- •Отступы, поля, позиционирование.
- •Границы элементов.
- •Визуальные эффекты
- •Свойства списков
- •Свойства таблиц
- •Псевдоклассы
- •Псевдостили текста
- •Псевдоэлементы
- •Различные свойства
- •Css. Примеры
- •Типы данных
- •Ассоциированные массивы
- •Операторы
- •Подпрограммы
- •Приложение 11. Популярные веб-приложения и фреймворки
- •Фреймворки
Глава 1. Язык php Типы данных
PHP поддерживает 4 скалярных типа данных: boolean (значения true и false), integer (значения целые числа, которые могут быть десятичными, восьмеричными и шестнадцатиричными), float (вещественные числа с плавающей точкой типа double), string(в одинарных и двойных апостофах) и два составных типа: array и object. Кроме этого имеется два специальных типа: resource и NULL. Перед целыми восьмеричными значениями записывается нуль, перед шестнадцатеричными – 0x. Рассмотрим пример
<?php //pr01.php
$a = 10;
$b = 020;//восьмеричное значение
$c = 0x41;//шестнадцатеричное значение
$d=3.62e+2;
printf("%d %o %c %f",$a,$b,$c,$d);
?>
Вывод:
10 20 A 362.000000
Здесь %d – формат для десятичного целого, %o – для восьмеричного, %c – для вывода символа с указанным кодом, %f - для вывода вещественных значений.
Если необходимо проверить тип и значение определенного выражения, можно использовать var_dump(). Если же для отладки необходимо просто удобочитаемое представление типа, используйте gettype(). Чтобы проверить выражение на определенный тип, применяйте для этого функцию is_type().
Имена всех переменных начинаются знаком $. PHP не требует явного определения типа при объявлении переменной, тип переменной определяется по присвоенному ей значению. То есть, если присвоить переменной $p строковое значение, $p становится строкой. Если затем присвоить переменной $p значение целого числа, то $p станет целым.
Для инициализации переменной в PHP ей просто присваивается значение. Кроме переменных могут быть использованы поименованные константы, объявленные в операторе define() без знака $. Рассмотрим пример:
<?php //pr2.php
define("d",5,true);
$a = "Добро пожаловать ";
$b = "в PHP";
$c = 4;
$c++;
echo "$a$b$c"; //получим - Добро пожаловать в PHP5
print d;//Вывод константы 5
$p=NULL;
print var_dump($p);
print gettype($a);
?>
Вывод:
Добро пожаловать в PHP55NULL string
Комментарии в PHP используются, как и в C++:
/*многострочный комментарий */ или
// однострочный комментарий или
#еще один однострочный комментарий.
Строки
Строки являются последовательностями символов, каждый символ соответствует байту. Это означает, что PHP не имеет встроенной поддержки Unicode. Некоторую поддержку Unicode обеспечивают функции utf8_encode() и utf8_decode(). Переход на кодировку Unicode запланирован в версии PHP6.
В PHP не существует ограничения на размер строк. Строковые значения могут присваиваться переменным. В PHP строковый литерал можно представлять следующими способами: строки в одиночных кавычках и строки в двойных кавычках. Строка, заключенная в двойные ковычки может содержать подстроку в одинарных ковычках и наоборот. Строка, заключенная в двойные кавычки, означает, что встречающиеся в этой строке переменные будут заменены их значениями. Если строка заключена в одинарные кавычки, такая замена не производится, так как такая строка не разбирается в PHP.
<?php //pr3.php
$name = 'Domine?';
$name_1 = "Quo vadis, $name";
$name_2 = ' Quo vadis, $name';
echo "$name_1"; // выведет - Quo vadis, Domine?
echo "$name_2"; // выведет - Quo vadis, $name
?>
Для строк в двойных кавычках PHP поддерживает также больше так называемых экранированных символов, которые могут встречаться среди символов строки: \n - перенос строки, \r- возврат каретки , \t- горизонтальная табуляция, \\- обратная косая черта, \$- знак доллара, \\"- двойная кавычка, \код – код символа.
Например:
$s=”\x41- это символ ‘a’ ”;
$st=” можно использовать \” управляющий \” символ”;
Самым важным свойством строк в двойных кавычках является обработка переменных, находящихся в строках.
Третий способ определения строк - это использование heredoc-синтаксиса ("<<<"). После <<< указывается идентификатор, затем идет строка, а потом этот же идентификатор, закрывающий строку. Закрывающий идентификатор должен начинаться в первом столбце строки. Строка с закрывающим идентификатором не содержит других символов, за исключением, точки с запятой (;). Это означает, что идентификатор не должен вводиться с отступом и не может быть никаких пробелов или знаков табуляции до или после точки с запятой. Первым символом перед закрывающим идентификатором должен быть символ новой строки. Например, \r. Heredoc-текст ведет себя так же, как и строка в двойных кавычках, при этом их не имея. Это означает, что нет необходимости экранировать кавычки в heredoc, но по-прежнему можно использовать управляющие последовательности. Пример определения heredoc-строки:
<?php
$name = "Max";
$str = <<<DEMO
Hello $name! <br/>
This is a demo message
with heredoc.
DEMO;
echo $str;
?>
Вывод:
Hello Max! This is a demo message with heredoc.
Если строка определяется в двойных кавычках, либо при помощи heredoc, переменные внутри нее обрабатываются. Существует два типа синтаксиса: простой и сложный. В простом синтаксисе если интерпретатор встречает знак ($), он захватывает столько символов, сколько можно, чтобы сформировать правильное имя переменной. Чтобы точно определить конец имени, заключайте имя переменной в фигурные скобки.
<?php
$beer = 'Речицкое';
echo "$beer's taste is great"; /* работает, 's - неверный символ для имени переменной */
echo "He drank some $beers"; /* не работает, 's' это верный символ для имени переменной*/
echo "He drank some ${beer}s"; // работает
echo "He drank some {$beer}s"; // работает
?>
Сложный (фигурный) синтаксис позволяет использовать сложные выражения.
Фактически, вы можете включить любое значение, находящееся в пространстве имени в строке с этим синтаксисом. Вы просто записываете выражение таким же образом, как и вне строки, а затем заключаете его в { и }. Поскольку вы не можете экранировать '{', этот синтаксис будет распознаваться только когда $ следует непосредственно за {. Поясняющий пример:
<?php
// Давайте покажем все ошибки
error_reporting(E_ALL);
$great = 'fantastic';
// Не работает, выведет: This is { fantastic}
echo "This is { $great}";
// Работает, выведет: This is fantastic
echo "This is {$great}";
echo "This is ${great}";
// Работает
echo "Этот квадрат шириной {$square->width}00 сантиметров.";
// Работает
echo "Это работает: {$arr[4][3]}";
// Это неверно по той же причине, что и $foo[bar] неверно вне
// строки. Другими словами, это по-прежнему будет работать,
// но поскольку PHP сначала ищет константу foo, это вызовет
// ошибку уровня E_NOTICE (неопределенная константа).
echo "Это неправильно: {$arr[foo][3]}";
// Работает. При использовании многомерных массивов, внутри
// строк всегда используйте фигурные скобки
echo "Это работает: {$arr['foo'][3]}";
// Работает.
echo "Это работает: " . $arr['foo'][3];
echo "Вы даже можете записать {$obj->values[3]->name}";
echo "Это значение переменной по имени $name: {${$name}}";
?>
В PHP существуют так называемые обратные ковычки (‘), унаследованные из языка Perl. Заключенные в них строки воспринимаются и выполняются как команды операционной системы. Например
<?php
echo ‘dir’; ?>