
- •Переменные
- •Внешние переменные
- •Константы
- •Типы данных в рнр. Преобразование типов
- •Операторы
- •2. Операторы языка php Операторы выбора/ if...Else
- •Операторы выбора/ Переключатель switch
- •Операторы цикла
- •Операторы цикла/ While
- •Операторы цикла/ Do…while
- •Операторы цикла/ For
- •3. Строковые функции php
- •Функция htmlspecialchars
- •Функции поиска в тексте
- •Функции strlen(), chr() и ord()
- •Trim-функции (функции удаления пробельных символов)
- •Функции форматного вывода. Спецификаторы преобразования
- •Функция sscanf()
- •Функции преобразования кодировки
- •Функции работы с бинарными данными
- •Функции работы с блоками текста
- •Функции объединения/разделения строк
- •Функции сравнения строк
- •Функции работы с url
- •Функции преобразования регистра
- •Заключение к главе 3
- •4. Массивы Инициализация массивов
- •Цикл foreach для обхода массивов
- •Многомерные массивы
- •Функция count()
- •Функция in_array()
- •Функция reset()
- •Функции сортировки массивов
- •Работа с курсором (указатель) массива
- •Функция array_walk()
- •Функции Определения и вызовы функций
- •Время жизни переменной
- •Что такое рекурсия
- •Работа с файлами Открытие файлов
- •Отображение файлов
- •Закрытие файлов
- •Чтение из файлов и запись в файлы Чтение из файлов
- •Запись в файлы
- •Копирование, переименование и удаление файлов
- •Атрибуты файлов
- •Перемещение по файлам
- •Работа с каталогами
- •Методы put и post
- •7. Регулярные выражения
- •Базовый синтаксис и создание регулярных выражений
- •Групповой символ
- •Исключающее выражение
- •Квалификаторы
- •Границы
- •Подвыражения
- •Соответствие началу и концу строки
- •Сопоставление со специальными символами
- •Классы символов
- •Функции для работы с регулярными выражениями
- •Perl-совместимые регулярные выражения
- •8. Сессии и cookie в php Сессии (сеансы) в php
- •Открытие сессии
- •Регистрация переменных сессии
- •Закрытие сессии
- •Пример простой сессии
- •Установка cookies
- •Пример простого приложения с cookies
- •Установка срока годности cookies
- •Удаление cookie
- •Проблемы безопасности, связанные с cookies
- •Установка области видимости cookie
- •Шифрование
- •Ограничение доступа для доменов
- •Отправка cookies по защищенному запросу
- •9. Работа с ftp средствами php Основные возможности php при работе с ftp
- •Соединение с ftp-сервером
- •Регистрация на ftp-сервере
- •Закрытие соединения
- •Загрузка файлов с сервера
- •Другие возможности при работе с ftp
- •Переход в родительский каталог
- •Работа через брандмауэр
- •10. Проверка корректности данных Проверка корректности данных
- •Проверка на пустоту поля
- •Проверка допустимости вводимых данных
- •Удаление html - тегов и обратных слешей
- •11. Пишем гостевую книгу на php
- •Добавление записи
- •Реляционные базы данных
- •Индексы
- •Первичные ключи
- •Способы задания первичного ключа
- •Нормализация базы данных
- •Работа с сервером MySql
- •Язык sql
- •Команды sql
- •Типы полей базы данных
Методы put и post
Методы HTTP PUT и HTTP POST предназначены для загрузки файлов на сервер.
Протокол HTTP предоставляет три метода для работы с информацией, находящейся на Web-сервере: GET, PUT и POST. Метод GET применяется для получения Web-страниц, при этом все переменные формы передаются в URL. Поскольку на многих Web-серверах установлено ограничение на максимальную длину URL (как правило, не более 1024), не стоит применять метод GET, если требуется передача данных большего объема.
Метод PUT применяется для обновления информации на сервере, и требует, чтобы содержимое запроса HTTP PUT сохранялось на сервере. Запрос выглядит таким образом:
PUT /path/filename.html HTTP/1.1
В этом случае Web-сервер должен сохранить содержимое этого запроса в виде /path/filename.html в пространстве имен URL Web-сервера. По умолчанию сам Web-сервер не выполняет такие запросы, а задает CGI-сценарий для их обработки. В Apache назначить сценарий для обработки PUT-запросов, можно изменив директиву Script, находящуюся в файле httpd.conf, к примеру, так:
Script PUT /cgi-bin/put.cgi
Это означает, что обрабатывать PUT-запросы будет CGI-скрипт put.cgi.
Как правило, для загрузки файлов на сервер используют метод HTTP POST. Этот метод позволяет передавать большие объемы данных из формы и сохраняет все переменные формы в теле запроса.
7. Регулярные выражения
Ранее для поиска в строке подстроки мы использовали строковые функции, ограничиваясь при этом случаями точного соответствия строк и подстрок. Для работы со строками можно использовать также регулярные выражения, представляющие собой, по сути, мини-язык описаний для поиска в строках информации по заданному шаблону.
С помощью регулярных выражений можно найти в строке подстроку, удовлетворяющую заданному шаблону и извлечь ее, проверить существует ли заданная строка и т.д.
Алгоритм поиска с использованием регулярных выражений был впервые разработан одним из создателей UNIX Кеном Томпсоном. Интересно, что изначально регулярные выражения появились не в теории вычислительных систем, а в нейрофизиологии. Основу теории регулярных выражений заложили нейрофизиологи У. Мак-Каллох и У. Питтс, работавшие над способами математического описания нервных процессов. Позднее математик С. Клини, основываясь на этих исследованиях, опубликовал работу "Представление событий в нейронных сетях", в которой и было введено понятие регулярных выражений. Кен Томпсон, основываясь на этих работах, адаптировал теорию регулярных выражений для алгоритмов поиска информации. Именно начиная с его работ, регулярные выражения стали использоваться в текстовых редакторах и вошли во многие языки программирования.
Базовый синтаксис и создание регулярных выражений
Простейшее регулярное выражение можно записать так:
"abc"
Это выражение соответствует любой строке, которая содержит подстроку "abc".
Существует такое понятие, как выражение в квадратных скобках. Квадратные скобки ограничивают поиск теми символами, которые в них заключены:
"[abc]"
Этому регулярному выражению соответствует любая строка, содержащая abc либо вместе, либо каждый из них в отдельности. Выражение в квадратных скобках иногда еще называют бра-кет выражением.
Допустим, нам нужно создать регулярное выражение, соответствующее всем буквам русского алфавита. В этом случае мы можем, конечно, перечислить все эти буквы в регулярном выражении. Это допустимо, но утомительно и неэлегантно. Более коротко такое регулярное выражение можно записать следующим образом:
"[а-Я]"
Это выражение соответствует всем буквам русского алфавита, поскольку любые два символа, разделяемые дефисом, задают соответствие диапазону символов, находящихся между ними. Заметьте, что регулярное выражение "[а-Я]" описывает символы как нижнего, так и верхнего регистров, поэтому более подробно это выражение можно записать так:
"[а-яА-Я]"
Точно таким же образом задаются регулярные выражения, соответствующие числам:
"[0-9]"
или
"[0123456789]"
Оба этих выражения эквивалентны и соответствует любой цифре.