
- •В.С. Романчик
- •Глава 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. Популярные веб-приложения и фреймворки
- •Фреймворки
Генератор паролей на php
Пароль можно сгенеровать случайным образом при помощи функции uniqid(). Эта функция возвращает уникальный идентификатор, основываясь на значениях аргументов и текущего времени в микросекундах.
string uniqid([string $prefix=""[,bool $more_entropy=false]])
Если пустой prefix , возвращается 13 символов. Если more_entropy = TRUE, возвращается 23 символа. Пример:
<?php //app4.php Gen_id_password
/* A uniqid(), like: 4b3403665fea6 */
$code=uniqid();
$name='Valera';
printf("uniqid(): %s\r\n", $code);
echo "<br>";
printf("uniqid('name'): %s\r\n", uniqid($name,true));
?>
Результат:
uniqid(): 4ccc8b67e4e1d
uniqid('name'): Valera4ccc8b67e4e3f8.01561952
Рассмотрим еще один способ генерация "равномерного" пароля на основе выборки случайного значения из массива символов
<form method=post>
<input type=text name=number value="6">
<input type=submit value="Генерировать">
</form><br><br>
<?php //app5.php
// $number - число символов в пароле
$number=$_POST['number'];
echo "Password:",generate_password($number);
function generate_password($number)
{
$arr = array('a','b','c','d','e','f',
'g','h','i','j','k','l',
'm','n','o','p','r','s',
't','u','v','x','y','z',
'A','B','C','D','E','F',
'G','H','I','J','K','L',
'M','N','O','P','R','S',
'T','U','V','X','Y','Z',
'1','2','3','4','5','6',
'7','8','9','0','.',',', );
// Генерируем пароль
$password = "";
for($i = 0; $i < $number; $i++)
{
// Вычисляем случайный индекс массива
$index = rand(0, count($arr) - 1);
$password .= $arr[$index];
}
return $password;
}
?>
Вывод:
Password:sjDaPM
Время выполнения скрипта
Время выполнения кода на PHP можно получить помощью функции:
string microtime([get_as_float ])
Еслиget_as_float=TRUE возвращается значение типа float в секундах. Пример:
<?php
$time_start = microtime(true);
// Sleep for a while
usleep(100);
$time_end = microtime(true);
$time = $time_end - $time_start;
echo "$time seconds\n";
?>
Вывод:
4.88758087158E-5 seconds
Календарь
<?php
class Calendar{
private $daysarray=array("","Пн","Вт","Ср","Чт","Пт","Сб","Вс");
private $month=array("1"=>"Январь", "2"=> "Февраль", "3"=>"Март", "4"=>"Апрель", "5"=>"Май", "6"=>"Июнь", "7"=>"Июль" ,"8"=>"Август", "9"=>"Сентябрь", "10"=>"Октябрь", "11"=>"Ноябрь", "12"=>"Декабрь");
private $daysinmonth, $weeks, $dayofweek, $dayofmonth, $dayofmonthlz;
private $monthlz; var $monthdays; var $year;
public function Calendar(){
$this->daysinmonth=date("t");
$this->weeks=$this->daysinmonth/7;
$this->weeks=round($this->weeks,0);
$this->dayofweek=date("w");
$this->dayofmonth=date("j");
$this->dayofmonthlz=date("d");
$this->monthlz=date("n");
$this->monthdays=date("t");
$this->year=date("Y");
$this->numberfirstday = date("w",mktime(0,0,0,date("m"),1,date("Y")));
}
public function show(){
echo "<font color=red><b>".$this->month[$this->monthlz]." (".$this->year.")</b></font>";
echo "<table width=\"200\" border=\"0\" cellspacing=\"0\" cellpadding=\"5\">\n\t<tr>\n";
for ($i = 1; $i <= 7; $i++) {
if($i>5){
echo "\t\t<td><font color=\"#E4723A\">".$this->daysarray[$i]."</font></td>\n";
}else{
echo "\t\t<td>".$this->daysarray[$i]."</td>\n";
}
}
echo "\t</tr>\n\t<tr>\n";
$j = 1;
while ($j <$this->numberfirstday) {
echo "\t\t<td> </td>\n";
$j++;
}
for ($i = 1; $i <=$this->monthdays; $i++) {
if($i==$this->dayofmonth){
echo "\t\t<td bgcolor=\"#FF8040\" align=\"center\"><b>".$i."</b></td>\n";
}else{
echo "\t\t<td align=\"center\">".$i."</td>\n";
}
if (round($j/7)-$j/7==0){
echo "\t</tr>\n\t<tr>\n";
}
$j++;
}
echo "\t</tr>\n</table>\n";
}
}
$obj = new Calendar();
$obj->show();
?>
Апрель (2009)
Пн |
Вт |
Ср |
Чт |
Пт |
Сб |
Вс |
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
|
|
|