Киберсантинг - язык PHP
Интерпретируемый язык — код, написанный на PHP, не компилируется (преобразуется в машинный), а выполняется строка за строкой с помощью программы-интерпретатора.
Поддержка работы с базами данных — PHP совместим с большинством современных баз данных, например, с реляционными (MySQL, PostgreSQL) и нереляционными (MongoDB, Redis).
Поддержка работы с файлами — есть функции для чтения, записи и обработки файлов на серверной стороне.
Возможность создания сессий — PHP может использоваться для отслеживания состояний пользователей между выполняемыми запросами.
-
Самоучитель PHP 4
В последнее время в связи с бурным развитием сети Интернет в программировании начинает все более резко выделяться отдельная отрасль. Поначалу она не могла даже и сравниться по своей сложности с другими областями программистского ремесла, не "дотягиваясь" не только до системного, но даже и до прикладного программирования. Речь идет, конечно, о программировании сценариев для Web, или, как часто говорят, Web-программировании. В наши дни, однако, роль этой отрасли в структуре Интернета все более возрастает, соответственно растет и средняя оценка сложности сценариев. Многие системы (например, поисковые) по объему кода приближаются к размеру исходных кодов серьезных пакетов прикладных программ.
Представляю, как эти слова тут же вызовут бурю протеста со стороны прикладных и системных программистов, лишь мельком глянувших на программирование в Web. "Как, — заявят они, — неужели написание простейших программ на "бейсикоподобных" интерпретаторах вообще можно назвать серьезным программированием? Да с этим же справится любой начинающий изучать программирование студент, потому что эта область не вносит и не может внести каких-либо новшеств, не "изобретает" алгоритмов, и, кстати, в ней нет ничего творческого. Да и вообще, скука-то, наверное, какая..." Обычно с такими людьми можно спорить часами. Действительно, какую бы задачу им ни привели, они начинают утверждать, что решить ее очень просто, хотя на самом деле это в контексте Web, мягко говоря, оказывается не совсем так.
Чего хочет программист от своей профессии
Временные затраты
О чем эта книга
Общая структура книги
Протоколы передачи данных
Семейство TCP/IP
Адресация с Сети
IP-адрес
Доменное имя
Порт
Терминология
Сервер
Узел
Сетевой демон
Провайдер
Хост
Виртуальный хост
Хостинг-провайдер (хостер)
Хостинг
Сайт
Страница (или HTML-страница)
Web-программирование
World Wide Web и URL
Протокол
Имя хоста
Путь к странице
Конструкции языка
Интерфейс CGI
Что такое CGI?
Секреты URL
Заголовки и метод GET
GET
POST
Content-type
User-Agent
Referer
Content-length
Cookie
Accept
Эмуляция браузера через telnet
Метод POST
Кодировки и форматы данных
Что такое формы и для чего они нужны
Передача параметров "вручную"
Использование формы
Абсолютный и относительный путь к сценарию
Метод POST и формы
CGI изнутри
Заголовки ответа
Заголовок кода ответа
Pragma
Location
Set-cookie
Date
Пример CGI-сценария
Переменные окружения
HTTP_ACCEPT
HTTP_REFERER
HTTP_USER_AGENT
HTTP_HOST
SERVER_PORT
REMOTE_ADDR
REMOTE_PORT
SCRIPT_NAME
REQUEST_METHOD
QUERY_STRING
Передача параметров методом GET
Передача параметров методом POST
Расшифровка URL-кодированных данных
Текстовое поле (text)
Поле ввода пароля (password)
Скрытое текстовое поле (hidden)
Независимый переключатель (checkbox)
Зависимый переключатель (radio)
Кнопка отправки формы (submit)
Кнопка сброса формы (reset)
для отправки формы (image)
Тэг textarea— многострочное поле ввода текста
Тэг select— список
Списки множественного выбора (multiple)
Формат данных
Тэг загрузки файла (file)
Установка Cookie
Name
Value
Expires
Domain
Path
Secure
Получение Cookies из браузера
Пример программы для работы с Cookies
Этап первый: установка
Этап второй: настройка файла конфигурации Apache
Этап третий: тестирование Apache
Проверка html
Проверка SSI
Проверка CGI
Установка PHP и MySQL
Характеристика языка PHP
Переменные, константы, выражения
Типы переменных
Integer
Double
String
Array
Object
Логические переменные
Действия с переменными
Присвоение значения
Проверка существования
Уничтожение
Определение типа переменной
САМОУЧИТЕЛЬ PHP 4
Установка типа переменной
Жесткие ссылки
Символические ссылки
Int, long
Double, float
Bool
List
Void
Mixed
Предопределенные константы
Определение констант
Проверка существования константы
Логические выражения
Строковые выражения
Строка в апострофах
Строка в кавычках
Here-документ
Вызов внешней программы
Арифметические операции
Строковые операции
Операции присваивания
Операции инкремента и декремента
Битовые операции
Операции сравнения
Операции эквивалентности
Логические операции
Работа с данными формы
Разные советы
Разделенные вычисления
Использование самопереадресации
Запрет кэширования страниц
Несколько слов о флажках checkbox
Ассоциативные массивы
Создание массива "на лету". Автомассивы
Инструкция list()
Списки и ассоциативные массивы: путаница?..
Инструкция array() и многомерные массивы
Операции над массивами
Доступ по ключу
Функция count()
Слияние массивов
Косвенный перебор элементов массива
Недостатки косвенного перебора
Одинаковые ключи
Нулевой ключ
Прямой перебор массива
Классический перебор
Перебор в стиле PHP 4
Списки и строки
Сериализация
Функции и области видимости
Пример функции
Общий синтаксис определения функции
Инструкция return
Параметры по умолчанию
Передача параметров по ссылке
Переменное число параметров
Локальные переменные
Глобальные переменные
Массив $GLOBALS
Вложенные функции
Словно определяемые функции
Передача функций "по ссылке"
Возврат функцией ссылки
Пример функции: Dump()
Строковые функции
Конкатенация строк
О сравнении строк и инструкции if-else
Функции для работы с одиночными символами
Базовые функции
Работа с блоками текста
Функции для преобразований символов
Функции изменения регистра
Преобразование кодировок
Хэш-функции
Сброс буфера вывода[E58]
Работа с массивами
Сортировка массива по значениям (asort()/arsort())
Сортировка по ключам (ksort()/krsort())
Сортировка по ключам при помощи функции uksort()
Сортировка по значениям при помощи функции uasort()
Переворачивание массива array_reverce()
Сортировка списка sort()/rsort()
Сортировка списка при помощи функции usort()
Перемешивание списка shuffle()
Ключи и значения
Комплексная замена в строке
Получение части массива
Вставка/удаление элементов
Переменные и массивы
Создание списка – диапазона чисел
Математические функции
Встроенные константы
Функции округления
Степенные функции
Тригонометрия
Работа с файлами
О текстовых и бинарных файлах
Открытие файла
Конструкция or die()
Безымянные временные файлы
Закрытие файла
Чтение и запись
Блочные чтение/запись
Построчные чтение/запись
Чтение CSV-файла
Положение указателя текущей позиции
Определение типа файла
Определение возможности доступа
Специализированные функции
Функции манипулирования целыми файлами
Другие функции
Блокирование файла
Типы блокировок
Исключительная блокировка
Разделяемая блокировка
Блокировки с запретом "подвисания"
Пример счетчика
Работа с каталогами
Манипулирование каталогами
Работа с записями
Пример: печать дерева каталогов
Каналы и символические ссылки
САМОУЧИТЕЛЬ PHP 4
Запуск внешних программ
Работа с датами и временем
Представление времени в формате timestamp
Работа с датами
Григорианский[E79] календарь
Посылка писем через PHP
Функция отправки письма
Проблема с кодировками
Посылка в указанной кодировке
Динамическая смена кодировки
Проблема с заголовками
Перспективы: создание "умной" функции для отправки писем
Работа с WWW
Вывод заголовка
Запрет кэширования
Немного теории
Получение Cookie
SSI и функция virtual()
Эмуляция функции virtual()
Основы регулярных выражений в формате RegEx
Начнем с примеров
Пример первый
Пример второй
Выводы
Использование регулярных выражений в PHP
Сопоставление
Сопоставление с заменой
Простые символы
Отмена действия спецсимволов
Группы символов
Отрицательные группы
Квантификаторы повторений
Ноль или более совпадений
Одно или более совпадений
Ноль или одно совпадение
Заданное число совпадений
Мнимые символы
Оператор альтернативы
Группирующие скобки
"Карманы"
Использование карманов в функции замены
Использование карманов в функции сопоставления
Дополнительные функции
Примеры использования регулярных выражений
Имя и расширение файла
Имя каталога и файла
Проверка на идентификатор
Модификация тэгов
Преобразование гиперссылок
Преобразование адресов E-mail
Выделение всех уникальных слов из текста
Работа с изображениями
Работа с изображениями и библиотека GD
Пример
Определение параметров изображения
Сохранение изображения
Работа с цветом в формате RGB
Создание нового цвета
Получение ближайшего цвета
Эффект прозрачности
Получение RGB-составляющих
Графические примитивы
Копирование изображений
Прямоугольники
Линии
Дуга сектора
Закраска произвольной области
Многоугольники
Работа с пикселами
Перейти на страницу
Загрузка шрифта
Параметры шрифта
Вывод строки
Определение границ строки
Пример
Управление интерпретатором
Информационные функции
Настройка параметров PHP
Error_reporting
Magic_quotes_gpc on|off
Max_execution_time
Track_vars on|off
Контроль ошибок
Оператор отключения ошибок
Пример использования оператора @
Принудительное завершение программы
Финализаторы
Генерация кода во время выполнения
Выполнение кода
Генерация функций
Проверка синтаксической корректности кода
Управление сессиями
Механизм работы сессий
Регистрация переменных
Идентификатор сессии и имя группы
Имя группы сессий
Идентификатор сессии
Установка обработчиков сессии
Обзор обработчиков
Регистрация обработчиков
Пример: переопределение обработчиков
Сессии и Cookies
Явное использование константы SID
Неявное изменение гиперссылок
Неявное изменение формы
Так использовать Cookies или нет?
Работа с базой данных MySQL
Соединение с базой данных
Обработка ошибок
Выполнение запросов к базе данных
Создание таблицы
Типы полей
Целые числа
Дробные числа
Строки
Бинарные данные
Дата и время
Перечисления и множества
Модификаторы и флаги типов
Удаление таблицы
Вставка записи
Удаление записей
Поиск записей
Обновление записей
Получение числа записей, удовлетворяющих выражению
Получение уникальных значений столбцов
Параметры результата
Получение поля результата
Получение целой строки результата
Получение информации о результате
Пример использования функций поддержки MySQL
Сетевые функции
Функции для работы с DNS
Разрешение[DK148] IP-адреса в доменное имя и наоборот
Корректный перевод IP-адреса в доменное имя
САМОУЧИТЕЛЬ PHP 4
Загрузка файлов на сервер
Multipart-формы
Тэг выбора файла
Закачка файлов и безопасность
Поддержка закачки в PHP
Простые имена полей закачки
Пример: фотоальбом
Сложные имена полей
Проблемы со сложными именами
Модульность программы. Написание "библиотекаря"
Наши требования
Библиотекарь
Работа с библиотекарем
Автоматическое подключение библиотекаря
Способ первый: использование auto_prepend_file
Способ второй: установка обработчика Apache
Обработчики Apache
Перехват обращений к несуществующим страницам
Связывание PHP с другим расширением
Решение проблемы зацикливания обработчика
Код и шаблон страницы
Идеология
Двухуровневая схема
Шаблон страницы
Генератор данных
Взаимодействие генератора данных и шаблона
Недостатки
Трехуровневая схема
Диаграммы двухуровневой и трехуровневой моделей
Интерфейс
Ядро
Проверка корректности входных данных
Шаблонизатор
Традиционное построение страниц
Сложность перестановки блоков
"Расщепление" шаблона
Сложность смены шаблона у части страниц
Что такое шаблонизатор?
Описание шаблонизатора
Вставка страниц в единый шаблон
Множественность блоков
Наследование блоков
Автоматическая генерация названий
Поддержка механизма поиска включаемых файлов
Фильтры блоков
Поддержка трехуровневой схемы разработки сценариев
Обработчик Apache для шаблонизатора
Главный модуль шаблонизатора
Стек буферов
Проблемы с отладкой
Объектно-ориентированное программирование на PHP
Классы и объекты
Свойства объекта
Методы
Класс таблицы MySQL
Доступ объекта к своим свойствам
Инициализация объекта. Конструкторы
Деструктор
Наследование
Полиморфизм
Полноценный класс таблицы MySQL
Копирование объектов
Ссылки и интерфейсы
Возврат ссылки на объект
Возврат интерфейса
Почтовые шаблоны
Мини-шаблонизатор
Отправка и перекодирование писем
Файл конфигурации PHP php.ini
Файл конфигурации Apache httpd.conf
-
Справочник и примеры языка PHP
PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста»; первоначально Personal Home Page Tools — «Инструменты для создания персональных веб-страниц»; — скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов.
Язык и его интерпретатор разрабатываются группой энтузиастов в рамках проекта с открытым кодом. Проект распространяется под собственной лицензией, несовместимой с GNU GPL.
В области веб программирование, частности серверная часть, PHP — один из популярных сценарных языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.
Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений. Основные из них:
автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;
взаимодействие с большим количеством различных систем управления базами данных (MySQL, MySQLi, SQLite, PostgreSQL, Oracle (OCI8), Oracle, Microsoft SQL Server, Sybase, ODBC, mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL, Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM, Firebird / InterBase, Paradox File Access, MaxDB, Интерфейс PDO);
автоматизированная отправка HTTP-заголовков;
работа с HTTP-авторизацией;
работа с cookies и сессиями;
работа с локальными и удалёнными файлами, сокетами;
обработка файлов, загружаемых на сервер;
работа с XForms.
В настоящее время PHP используется сотнями тысяч разработчиков. Согласно рейтингу корпорации TIOBE, базирующемся на данных поисковых систем, в июне 2013 года PHP находился на 5 месте среди языков программирования.К крупнейшим сайтам, использующим PHP, относятся Facebook, Wikipedia и др.
Входит в LAMP — распространённый набор программного обеспечения для создания и хостинга веб-сайтов (Linux, Apache, MySQL, PHP).
Хотя PHP и не слишком распространён в данном качестве, его можно использовать и для создания GUI-приложений.
Для создания кроссплатформенных приложений служат пакеты PHP-GTK и PHP-Qt, представляющие собой обёртки для соответствующих популярных библиотек виджетов.
Для создания графических приложений для Windows существуют свободный пакет WinBinder (написан на Си, фактически — обёртка для WinAPI).
Также существует реализация PHP для .NET/Mono — Phalanger, результатом компиляции PHP-кода в Phalanger может быть любое .NET-приложение, будь то серверное или настольное.
Addslashes
Asort
Bindec
Ceil
Chdir
Chgrp
Chimed
Chown
Chop
Chr
Clearstack
Clearstatcache
Closedir
Closelog
Count
Crypt
Date
Dblist
Decbin
Dexhex
Decoct
Doubleval
Echo
End
Ereg
Eregi
Ereg_replace
Eregi_replace
Escapeshellcmd
Eval
Exec
Exit
Ехр
Fclose
Feof
Fgets
Fgetss
File
Fileatime
Filectime
Filegroup
Fileinode
Filemtime
Fileowner
Fileperms
Filesize
Filetype
Floor
Flush
Fopen
Fputs
Fpassthru
Fseek
Fsockopen
Ftell
Getaccdir
Getenv
Gethostbyname
Gethostbyaddr
Getimagesize
Getlastaccess
Getlastbrowser
Getlastemail
Getlasthost
Getiastmod
Getlastref
Getlogdir
Get my in ode
Getmypid
Getmyuid
Getrandmax
Getstartlogging
Gettoday
Gettotal
Gettype
Gmdate
Header
Hexdec
Htmlspecialchars
Imagearc
Imagechar
Imagecharup
Imagecolorallocate
Imagecolortransparent
Imagecopyresized
Imagecreate
Imagecreatefromgif
Imagedestroy
Imagefill
Imagefilledpolygon
Imagefilledrectangle
Imagefilltoborder
Imagegif
Imageinterlace
Imageline
Imagepolygon
Imagerectangle
Imagesetpixel
Imagestring
Imagestring up
Imagesx
Imagesy
Include
Initsyslog
Intval
Isset
Key
Link
Linkinfo
Log
Log10
Logas
Mail
Max
Md5
Microtime
Min
Mkdir
Mktime
Msql mysql
My sql_af f ected_ro ws
Msql_close mysql_close
Msql_connect mysql_connect
Msql_createdb mysql_createdb
Msql_dbname mysql_dbname
Msql_dropdb mysql_dropdb
MsqHieldflags mysql_fieldflags
Msql_fieldlen mysql_fieldlen
Msql_fieldlen($result $i);
Msql_fieldname mysql_fieldname
Msql_fieldtype mysql_fieldtype
Msql_freeresult mysql_freeresult
Mysql_insertjd
Msql_listdbs mysql_listdbs
Msql_listfields mysql_listfields
Msql_isttables mysql_listtables
Msql_numfields mysql_numfields
Msql_nurn rows msql_numrows
Msql_regcase
Msql_result mysql_result
Msqljtablename mysql_tablename
Next
Octdec
Opendir
Openlog
Ord
Parse_str
Passthru
Справочник и примеры языка PHP
Pclose
Phpinfo
Phpversion
Popen
Pos
Pow
Prev
Putenv
Quote met a
Rand
Readdir
Readfile
Readlink
Reg_match
Reg_replace
Reg_search
Rename
Reset
Return
Rewind
Rewinddir
Rmdir
Rsort
Setcookie
Seterrorreporting
Setlogging
Setshowinfo
Settype
Shl
Shr
Sin
Sleep
Sort
Soundex
Sprintf
Sqrt
Srand
Strchr strstr
Strtr
Stripslashes
Strlen
Strrchr
Strtok
Strtolower
Strtoupper
Strval
Substr
Symlink
Syslog
System
Tan
Tempnam
Time
Umask
Uniqid
Unlink
Unset
Urldecode
Urlencode
Usleep
Virtual
Lite
Chmod
Close
Ctime
Fprintf
Getpid
Getpwnam
Getpwuid
IncludeFile
Kill
MsqIConnect
MsqICIose
MsqIDataSeek
MsqlEncode
MsqlFetchRow
MsqIFieldSeek
MsqIFreeResult
MsqllnitFieldList
MsqIListDBs
MsqIListField
MsqIListTables
MsqINumRows
MsqIQuery
MsqISelectDB
MsqIStoreResult
Open
Pid
Printf
Read
Readln
Readtok
SetContentType
Split
Stat
Strftime
Strseg
Sub
Tr
Truncate
UrIEncode
Справочник и примеры языка PHP
MySQL С API
Типы данных
My sql_affected_ro ws
Пример
Mysql_close
Mysql_connect
Mysql_create_db
Mysql_data_seek
Mysql_debug
Mysql_drop_db
Mysql_dump_debug_info
Mysql_eof
Mysql_error
Mysq l_esca pe_strin g
Mysql_fetch_field
Mysql_fetch_field_direct
Mysql_fetch_fields
Mysql_fetch_lengths
Mysql_fetch_row
Mysql_field_seek
Mysql_field_tell
Mysql_free_result
Mysql_get_client_info
Mysql_get_host_jnfo
Mysq l_get_proto_i nf о
Mysql_get_server_info
Mysqljnfo
Mysql_init
Mysqljnsertjd
Mysql_kill
Mysql_list_dbs
Mysql_list_fields
Mysql_list_processes
Mysql_list_tables
Mysql_num_fields
Mysql_num_rows
Mysql_ping
Mysql_query
Mysql_real_connect
Mysql_reload
Mysql_row_tell
Mysql_select_db
Mysql_shutdown
Mysql_stat
Mysql_store_result
Mysql_thread_id
Mysql_use_result
MSQLCAPI
Типы данных
MsqIConnect
MsqISelectDB
MsqIQuery
MsqIStoreResult
MsqIFreeResult
MsqIFetchRow
MsqlDataSeek
MsqINumRows
MsqIFetchField
MsqlFieldSeek
MsqlNumFields
MsqICIose
MsqIListDBs
MsqIListTables
MsqIListFields
MsqIListlndex
Справочник и примеры языка PHP
Установка
DBI pmAPI
Use
DBI available_drivers
DBI bind_col
DBI bmd_columns
DBI bind_param
Таблица 211 Соответствие типов SQL
DBI
MSQL
MySQL
DBI connect
DBI data_sources
DBI do
DBIdisconnect
DBI dump_results
$DBI err
$DBI errstr
DBI execute
DBI fetchrow_array
DBI fetchrow_hashref
DBI finish
DBI func
DBI neat
DBI neat_list
DBI prepare
DBI quote
DBI rows
DBI state
DBI commit DBI rollback DBI ping
Атрибуты
Msql pm API
Use Msql
Msql connect
Msql createdb
Msql database
Msql dropdb
Msql errmsg
Msql getsequenceinfo
Msql host
Msql listdbs
Msql listfields
Msql listindex
Msql listtables
Msql query
$Msql QUIET
Msql quote
Msql selectdb
Msql shutdown
Msql Statement as_string
Msql Statement dataseek
Msql Statement fetchcol
Msql Statement fetchrow
Msql Statement isnotnull
Msql Statement isnum
Msql Statement isprikey
Msql Statement length
Msql Statement listindices
Msql Statement maxlength
Msql Statement name
Msql Statement numfields
Msql Statement numrows
Msql Statement table
Msql Statement type
Msql sock
Msql *_TYPE
$Msql VERSION
Mysql pm API
Mysql connect
Mysql errno
Mysql FIELD_TYPE_*
Mysql Statement affectedrows
Mysql Statement info
Mysql Statement insertid
Mysql Statement isblob
Mysql query
-
PHP 4 на практике
Серьезно, а существовала ли разумная жизнь до возникновения Web? Тот, кто вырос в наше время, может в этом усомниться. Пришествие Интернета заложило основу для развития коммуникационных технологий, не имеющих аналогов в истории человечества. И молодежь, и пожилые люди идут в Интернет за покупками, знаниями и общением. Всего за несколько лет произошла масса событий: талантливые предприниматели зарабатывали целые состояния, возникали и рушились корпоративные империи, процветала экономика целых стран — и все благодаря провидческой идее Тима Бернерса-Ли и его коллег о том, что в один прекрасный день мир объединится при помощи гиперссылок.
Конечно, за последние десять лет Всемирная паутина прошла долгий путь — из вспомогательного инструмента научных исследований она превратилась в конгломерат, в котором задействованы прямо-таки головокружительные объемы информации. Возможно, самым важным фактором в развитии Web стала именно простота публикации информации в Web. Даже обладая минимальными познаниями, человек может установить на своем компьютере текстовый редактор, FTP-клиент и web-браузер и открыть свое «представительство» в мире электронной информации.
Характеристики РНР
Традиционность
Простота
Эффективность
Безопасность
Гибкость
Бесплатное распространение
Рекомендации пользователей
Вводный пример
Загрузка РНР/Apache
Установка и настройка
Системы, не входящие в семейство Windows
Установка в Windows 95/98/NT
Конфигурация РНР
Общие параметры конфигурации
Основные конструкции РНР
Переход в РНР
Внедрение HTML в код РНР
Включение нескольких сценариев РНР
Комментарии в коде РНР
Итоги
PHP 4 на практике
Целые числа
Восьмеричная и шестнадцатеричная запись
Вещественные числа
Стандартная запись
Научная запись
Строковые значения
Строковое присваивание
Синтаксис встроенной документации
Обращение к отдельным символам строк
Массивы
Одномерные индексируемые массивы
Одномерные ассоциативные массивы
Многомерные индексируемые массивы
Многомерные ассоциативные массивы
Смешанное индексирование
Объекты
Логические величины (истина/ложь)
Идентификаторы
Переменные
Объявление переменных
Область видимости переменных
Статические переменные
Переключение типов
Преобразование типов
Присваивание
Присваивание по значению
Присваивание по ссылке
Переменные в переменных
Стандартные переменные
Константы
Итоги
PHP 4 на практике
Выражения
Операнды
Операторы
Управляющие конструкции
Проверка условий
Альтернативное ограничение блоков
While
Do. .while
For
Foreach
Switch
Break
Continue
Проект: календарь событий
Итоги
PHP 4 на практике
Что такое функция?
Определение и вызов функций
Вложенные функции
Возврат значений из функции
Рекурсивные функции
Функции-переменные
Построение библиотек функций
Итоги
PHP 4 на практике
Создание массивов
Многомерные массивы
Ссылки на многомерные массивы
Поиск элементов массива
Добавление и удаление элементов
Перебор элементов
Размер массива
Сортировка массивов
Другие полезные функции
Итоги
PHP 4 на практике
РНР и ООП
Классы, объекты и объявления методов
Создание объектов и работа с ними
Нарушение инкапсуляции
Конструкторы
Деструкторы
Простое и иерархическое наследование
Абстрактные классы
Перегрузка методов
Функции для работы с классами и объектами
Итоги
PHP 4 на практике
Проверка существования и размера файла
Открытие и закрытие файлов
Запись в файл
Чтение из файла
Чтение файла в массив
Перенаправление файла в стандартный выходной поток
Открытие файлового манипулятора процесса
Открытие соединения через сокет
Запуск внешних программ
Обратные апострофы
Работа с файловой системой
Отображение и изменение характеристик файлов
Копирование и переименование файлов
Удаление файлов
Работа с каталогами
Проект 1: простой счетчик обращений
Проект 2: построение карты сайта
Итоги
PHP 4 на практике
Регулярные выражения
Синтаксис регулярных выражений (POSIX)
Функции РНР для работы с регулярными выражениями (POSIX-совместимые)
Синтаксис регулярных выражений в стиле Perl
Метасимволы
Модификаторы
Другие строковые функции
Дополнение и сжатие строк
Определение длины строки
Сравнение двух строк
Обработка строковых данных без применения регулярных выражений
Преобразование строк и файлов к формату HTML и наоборот
Преобразование HTML в простой текст
Преобразование строки к верхнему и нижнему регистру
Проект: идентификация браузера
Итоги
PHP 4 на практике
Простые ссылки
Файловые компоненты (шаблоны)
Include( ) и require( )
Функции
Построение компонентов
Заголовок
Колонтитул
Основная часть
Все вместе: заголовок, колонтитул и основная часть
Оптимизация шаблонов
Проект: генератор страниц
Итоги
PHP 4 на практике
Общие сведения о формах
Элементы форм, ориентированные на ввод с клавиатуры
Элементы форм, ориентированные на ввод с мыши
Все вместе: пример формы
Формы и РНР
Вводные примеры
Проверка ошибок
Динамическое конструирование форм
Проект: гостевая книга
Итоги
PHP 4 на практике
ГЛАВА 11
Что такое SQL?
Поддержка баз данных в РНР
MySQL
Установка
Настройка MySQL
Стандартные функции РНР для работы с MySQL
Простейшая поисковая система
Сортировка таблиц
ODBC
Поддержка ODBC в РНР
Microsoft Access и РНР
Проект: каталог ссылок
Итоги
PHP 4 на практике
О чем говорилось выше
Нетривиальная система шаблонов
Регистрация файлов
Регистрация переменных
Обработка файла
Вывод файла
Расширения класса template
Недостатки системы шаблонов
Необоснованные надежды на «идеальное решение»
Снижение быстродействия
Ориентация дизайна на РНР
Проект: адресная книга
Итоги
PHP 4 на практике
ГЛАВА 13
Что такое cookie?
Компоненты cookie
Cookie и РНР
Уникальные идентификаторы
Отслеживание сеанса
Назначение пользовательских функций для хранения сеансовых данных
Проект: журнал посещений сайта
Итоги
PHP 4 на практике
ГЛАВА 14
Разметка текста
Язык SGML
Пришествие HTML
XML как неопровержимое свидетельство эволюции
Знакомство с синтаксисом XML
Определение типа документа (DTD)
РНР и ХМL
Подключение пользовательских функций к обработке XML
Функции обработки кода XML
Другие полезные функции
Параметры анализатора XML
Преобразование XML в HTML
Несколько слов о РНР и XML
Итоги
PHP 4 на практике
ГЛАВА 15
JavaScript
Проверка поддержки JavaScript
Динамическое создание временных окон
СОМ
Поддержка СОМ в РНР
Запись информации в документ Microsoft Word
Дополнительная информация
Итоги
PHP 4 на практике
ГЛАВА 16
Проблемы конфигурации
Safe_mode
Safe_mode_exec_dir
Disable_functions
Doc_root
Max_execution_time
Memory_limit
Sql.safe_mode
User_dir
Безопасный режим и работа РНР в режиме модуля Apache
Маскировка файлов данных и конфигурационных файлов
Безопасность данных
Обработка пользовательского ввода
Шифрование данных
Общие функции шифрования
Дополнительная информация
Электронная коммерция
Verisign
Cybercash
CCVS
Аутентификация пользователя
Аутентификация с несколькими пользователями
Итоги
-
Введение в программирование на PHP5
Сегодня создание страницы Web является не слишком трудной задачей. Многие стандартные программные пакеты персональных компьютеров обладают встроенными средствами для преобразования документов текстовых процессоров, электронных таблиц, баз данных и т.д. в специально кодированные документы, которые могут быть доступны в Web. Специальные пакеты для создания страниц Web, такие, как Microsoft FrontPage и Macromedia Dreamweaver, позволяют легко создавать страницы Web с помощью технологии буксировки. В большинстве таких случаев даже не нужно знать о существовании специального языка кодирования HTML (язык разметки гипертекста), который неявно все это обеспечивает.
Создание страницы Web
Разработка Web
Системы обработки информации
Системы интранет
Системы интернет
Системы экстранет
На основе Web
Трехслойная, клиент/серверная архитектура
Навыки разработки Web
Модели систем Web
Модель доставки информации
Модель обработки информации
Присваивание функций компонентам
Разработка приложений Web
Системный ввод и вывод
Системная обработка
Управление базой данных
Программное обеспечение учебника
Язык PHP
Введение в программирование на PHP5
Соединение XHTML и PHP
Вывод контента
Терминатор инструкции
Комментарии в коде
Введение в программирование на PHP5
Скалярные переменные
Вывод переменных
Соединение переменных
Интерполяция
Форматирование вывода валюты
Переменные массивы
Массивы с числовыми индексами
Ассоциативные массивы
Функции для работы с массивами
Константы PHP
Вывод констант
Операторы PHP
Порядок выполнения операций
Строки PHP
Строки в одиночных кавычках
Строки в двойных кавычках
Функции для работы со строками
Функции даты и времени
Example.3.1
Оператор If
Оператор switch
Введение в программирование на PHP5
Циклы while
Циклы do while
Цикл for
Цикл foreach
Включаемые файлы
Использование функций
Введение в программирование на PHP5
Проектирование форм
Пример приложения
Поля формы
Работа с формами
Пары имя/значение
Массив $_Request
Итерации по массиву $_Request
Проверка формы
Контрольный вывод введенных значений формы
Example.7.1
Сеансы
Файлы Cookies
Example.8.1
Введение в программирование на PHP5
Доступ ODBC
Соединения ODBC с помощью DSN
Соединения ODBC без DSN
Добавление записей
Выбор записей
Удаление записей
Изменение записей
Example.9.1
Введение в программирование на PHP5
Доступ к MySQL
Добавление записей
Выбор записей
Удаление записей
Example.10.1
Введение в программирование на PHP5
Открытие файлов
Чтение файлов
Запись в файлы
Копирование файлов
Удаление файлов
Переименование файлов
Получение данных формы
Пересылка файлов
Example.11.1
Введение в программирование на PHP5
Сайт e-Commerce
Страница home.php
Страница search.php
Страница detail.php
Страница shopcart.php
Страница creditcheck.php
Страница ordercapture.php
Страница salesorder.php
Общая структура страниц
Использование файлов INCLUDE
Кодирование документов INCLUDE
Использование таблиц стилей
Именование полей количества
Суммарные строки заказа и кнопки
Итерации по отправленной форме
Обновление корзины покупателя
Итерации по массиву $_REQUEST[]
Покупка онлайн
Отправка информации о заказе
Обработка кредитных карт
Запись информации о продажах
Записи заголовка заказа и деталей заказа
Получение информации заказа
Создание записи OrderHeader
Создание записей OrderDetail
Очистка корзины покупателя
Создание заказа на продажу
Сброс номера заказа
Отправка подтверждения по E-mail
Функция mail()
Размещение сценария
Программирование сообщения E-mail
Выбор категорий продуктов
Файл menu.inc
Создание ссылок на категории
Выделение строки таблицы и соединение
Теги XHTML со сценарием
Передача строк запроса
Определение критериев продукта
Передача формы в виде строки запроса
Кнопки форматирования
Кодирование файлов INCLUDE
Форматы страниц
Файл header.inc
Файл jscript.inc
Поиск продуктов
Получение строк запросов
Структура страницы
Программирование поиска категории
Соединение из строк таблицы
Программирование поиска по ключевым словам
Вывод описания продукта
Отслеживание заказчиков
Генерация случайных чисел
Отслеживание заказчиков с помощью строки запроса
Использование сеансов
Идентификатор (ID) сеанса
Отслеживание заказчиков с помощью массива $_SESSION[]
ID посетителя и номер заказа
Подсчет посетителей
Создание счетчика посетителей
Увеличение значения счетчика посетителей
Использование оператора SQL UPDATE
Вывод счетчика посетителей
Создание корзины покупателя
Создание таблицы корзины покупателя
Добавление объектов в корзину покупателя
Обслуживание корзины покупателя
Вывод корзины покупателя
Извлечение объектов корзины покупателя
Example.I.1
Введение в программирование на PHP5
Оператор SELECT
Ключевое слово DISTINCT
Предложение WHERE
Предложение ORDER BY
Предикат TOP n
Создание строк SQL
Апострофы в текстовых полях
Интегрирование данных переменной
Оператор INSERT
Вставка переменных в операторы INSERT
Оператор DELETE
Оператор UPDATE
Математические функции
Строковые функции
Функции ошибок
Функция Email
Функции HTTP/сеанса
Функции работы с файлами
Функции ODBC
Функции MySQL
-
Статьи, обзоры,справочники по PHP
PHP это скриптовый server-side язык программирования, предназначенный в основном для включения в html страницу и выполняемый сервером перед выдачей страницы браузеру. Это не CGI, но вполне заменяет его! PHP очень похож на ASP (существует даже конвертор asp2php), но приспособлен к unix-like системам и чаще всего употребляется с web-сервером apache, хотя может работать и с MS IIS и в принципе с любым другим веб-сервером. Кроме того, PHP3 является объектно-ориентированным.
На мой взгляд, основное преимущество PHP - простота, гибкость и скорость выполнения. Мне, например, понадобилось минут 15 для просмотра мануалов и примеров, для того, чтобы перевести весь контент моего сайта на SQL (подробнее с елудющих ШАГ-ах) и написать php-скрипт для выдачи его в html коде с шаблонным дизайном. Зачем так сложно? А вовсе и не сложно. Теперь, чтобы выложить на сайт новую статью или просто новость, я всеголишь добавляю новую запись на sql сервере с помощью MS Access или web-интерфейса sql, написанного кстати тоже на php, а при запросе страницы пользователем соответствующий php-скрипт выуживает из sql то, что ему надо и выдает уже красиво оформленную, готовую страницу.
SQL. Вот это является еще одним преимуществом PHP, такое впечатление, что он (PHP) просто рожден существовать в связке apache+php+sql. Для свой работы я выбрал MySQL, который также существует и под linux и под win9x/NT.
ШАГ Что такое PHP?
ШАГ Установка
ШАГ С чего начинается Родина?
ТИПЫ
ОБЛАСТЬ ВИДИМОСТИ ПЕРЕМЕННЫХ
ПЕРЕМЕННЫЕ ПЕРЕМЕННЫЕ
HTML Формы (GET и POST)
HTTP Cookies
Переменные окружения
КОНСТАНТЫ
АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ
СТРОКОВЫЕ ОПЕРАЦИИ
ОПЕРАЦИЯ ПРИСВАИВАНИЯ
ДВОИЧНЫЕ ОПЕРАЦИИ
ЛОГИЧЕСКИЕ ОПЕРАЦИИ
ОПЕРАЦИИ СРАВНЕНИЯ
ШАГ ПОУПРАВЛЯЕМ?
Часть первая"детских" ошибок
Целевая аудитория
Введение
Неоправданное использование функции printf()
Когда следует использовать print()
Использование функции printf() для вывода значения, возвращаемого функцией
Неверное применение семантики языка
Как избежать неправильного приложения семантики?
Недостаточно либо излишне комментированный текст
И все-таки: где золотая середина?
Слишком много переменных - слишком большое время выполнения
Плюсы использования временных переменных
Золотое правило
Переписываем стандартные функции
Используйте стандартные функций языка!
Клиентская часть программы не отделяется от серверной части
API функций
Минусы использования API функций
Система шаблонов
Плюсы использования шаблонов:
Минусы использования шаблонов:
Использование устаревшего синтаксиса и функций
Резюме
Об авторе
О переводчике
Простая форма
Скажи спаму «no spam.php !»
HotMail своими руками, или Что может PH
Компоненты
Коротко о PHP
Другие файлы
Чего мы не сделали
Ссылки
Обзор механизма сессий PHP4
Имя сессии
Использование сессий без Cookies
Обработчики сессии
Часто задаваемые вопросы (FAQ) по PHP
Что такое PHP?
Где взять PHP?
Как расшифровывается 'PHP'?
Почему с'апложенные jpeg-файлы не отобpажаются? (бьются?) Веб-сервер - русский Апач
Как опpеделить валидность e-mail?
Как опpеделить валидность URL?
Имеем MySQL. Добавляем запись
Скрещивание PHP/Win и Apache/Win
Обзор сетевых функций PHP
Переменные окружения интерфейса CGI
Получение документа по протоколу HTTP
Работа с сокетами
Функции для работы с DNS
Функции протоколирования
Отправка сообщения
Программирование на php на примере галереи, в х вариантах
Программирование на php на примере галереи, в х вариантах - 2
КЛАССЫ в php3
PHP - система разработки скриптов
About
PHP: секреты интерактивности
Основы языка
Упрощение навигации
Интернет-магазин без проблем
Brouser
Вопрос:
Ответ:
Date
Программа для скачивания бинарных файлов по HTTP
Как узнать размер файла на каком-то веб-сервере?
Параллельное выполнение скриптов может нарушить целостность информации в файлах
Ошибка программы простого текстового счетчика
Проверка рабоспособности flock на практике.
Проверка рабоспособности flock на практике. - 2
Вопрос о формах ( FORM .... )
== N- пеpвый запуск ==
== N- $PHP_SELF ==
Это программа отсылает сообщение на Асю.
Размещение бинарных файлов (картинок) в базе данных
Если у вас глюки
Установка для Windows: PHP от Antonio (tm) и русский Apache
Разбор возможных глюк.
Установка для Windows: Apache PHP (модуль) за минуты
Разбор возможных глюк.
Почтовый робот и CRON
Способы обработки почты:
-- I -- Почтовый робот за минут ("COMMAND")
-- II --Теория
Подготовим ПХП для запуска робота
ERROR in function check()
-- III --Подведем итог
Пример работы с сессиями.
Параметры и функции для сессий
-
PHP в деталях
Адрес вашего сайта появляется на пользовательском экране одновременно с дизайном и контентом. Поэтому адрес является полноправной частью сайта. Адрес типа www.фирма.ру (www.фирма.город.ру), естественно, гораздо лучше, чем www.geocities.com/Gonduras/San-Pedrillio/~наша_фирма, кто спорит. А вот по вопросу понятных человеку адресов внутри сайта общественность четкого консенсуса пока не нашла.
Однако пользователю приятнее было бы видеть адрес типа /services/special/ чем /content.phtml?q=e23908a234cc239b3445127.
Лирическое отступление. Помню, на Интернити-99 мне показали флэш-ролик [] Laser Jet 3100. Через пару недель я вспомнил про него и решил скачать его из дома. Я бы долго бродил в бесполезных поисках по сайту [] (чего вы смеетесь, это так и было!), если бы не их адреса. На HP адреса были понятные? что-то вроде "/products/printers/laserjet/3100", а на сайте Лексмарка было вот именно это непонятное "q=492898748273". Я был в сомнениях, но через день вспомнил-таки, что это был HP :).
Комментарии к статье ""
Сервер ищет файл с тем же именем
Сервер разбирает запрос
Сервер переписывает запросы
PHP в деталях
Регулярные выражения (regexp). Часть первая
Статья относится к рубрикам:
Регулярные выражения. Часть 2. POSIX.
Набор символов
Квантификатор
Якоря
Структура
Регулярные выражения. Часть 3. PCRE.
PHP в деталях
Дверца в защите: почтовый веб-интерфейс
Комментарии к статье ""
Объектно-ориентированное программирование. Часть 3. Абстрактные классы БД
Комментарии к статье ""
Пароль на страницу. Часть 1. Скорее теоретическая.
Автоматизация авторизации
Комментарии к статье ""
Генерация HTTP запросов
Протокол HTTP. Введение.
Клиент и сервер
Пишем наш первый HTTP запрос.
Структура запроса.
Запрос GET.
Комментарии к статье ""
PHP в деталях
Метод POST.
Content-Type: application/x-www-form-urlencoded.
Content-Type: multipart/form-data.
Постскриптум.
Комментарии к статье ""
Редакторы PHP и HTML
EditPlus 2.10c
HTML-Kit (build 290)
PHPEd 1.75 alpha
UltraEdit 8.0
Комментарии к статье ""
Установка PHP + Apache: CGI vs. module
Вступление
Теоретическая часть.
Практическая часть.
Урок 1. Установка PHP а-ля CGI
Урок 2. Установка PHP как модуля Апачи
Траблшутинг
Об авторе
Комментарии к статье ""
Работа с MySQL. Часть 4. Постраничный вывод
Комментарии к статье ""
PHP в деталях
Пароль на страницу. Часть 2. Блокировка подбора (отредактированная)
Комментарии к статье ""
Работа с БД. Анализ логов.
Комментарии к статье ""
Пишем свой форум?
Комментарии к статье ""
Script Running Magic или хранение объектов на Слове
Резюме:
Файл srm.ini
Комментарии к статье ""
Relax this is PHP
Php в деталях // полная версия статьи:
Как поладить дизайнеру с программистом
Комментарии к статье ""
Ручная сортировка в веб-интерфейсе
PHP в деталях
Новый проект: экономическая игра "Монополист"
Комментарии к статье ""
Валим свой сервер и флудим поисковики
Комментарии к статье ""
XML: свет в конце туннеля
Комментарии к статье ""
Пароль на страницу. Часть 3. Пароль от базы
Пароль на страницу. Часть 4. Печенюшки
Комментарии к статье ""
Работа с MySQL. Часть 7. Деревья
Комментарии к статье ""
Не прощаемся
PHP в деталях
Пароль на страницу. Часть 5. Сессии
Комментарии к статье ""
Фильтруй базар?
Эхо боя, оптимизация логов
Комментарии к статье ""
Работа с MySQL. Часть 5. Функции обработки данных
Функции условий
Математические функции
Строковые функции
Дата и время
Остальные функции
Комментарии к статье ""
XML + XSLT: ещё раз о специализации программных средств
Комментарии к статье ""
PHP в деталях
Прячем исходный код. Zend Optimizer Zend Encoder
Установка ПО.
Комментарии к статье ""
По следам поиска в "деталях" - релевантность
Комментарии к статье ""
По следам поиска ещё раз
Комментарии к статье ""
PHP в деталях
Работа с базами данных. Начало.
Администрирование базы данных
Соединение с сервером БД
Запрос-выборка и обработка результатов
Запросы-действия
Обработка ошибок запросов
Комментарии к статье ""
PHP в деталях
Создание таблицы
Запись новостей
Вывод новостной ленты
Механизм администрирования - теория
Комментарии к статье ""
Запросы на выборку данных (SELECT)
Запросы на вставку строки (INSERT)
Комментарии к статье ""
Народная самодеятельность . связи таблиц в MySQL
Связь без большой натяжки
Как делать неправильно
Как надо
Синтаксис объединений таблиц
Комментарии к статье ""
Объектно-ориентированное программирование, классы
Комментарии к статье ""
PhpMyAdmin . бережет нервы и время
"Не делай этого!"
Комментарии к статье ""
Безопасный и удобный поиск
Обработка строки
Логика
Релевантность
Статистика поиска
Постраничный вывод результатов
Подсветка
Итог
Комментарии к статье ""
Пустой запрос. Повторите попытку.
Объектно-ориентированное программирование и классы, часть 2. Рассыльщик почты
ООП на службе почты
Комментарии к статье ""
Миллениум: магия чисел. Счетчик для страницы
Комментарии к статье ""
Поиск в MySQL. Релевантность своими руками
Комментарии к статье ""
По следам виртуальных директорий, или как можно настроить VirtualHost
Комментарии к статье ""
PHP в деталях
Регулярные выражения (regexp). Часть первая
Статья относится к рубрикам:
Регулярные выражения. Часть 2. POSIX.
Набор символов
Квантификатор
Якоря
Структура
Регулярные выражения. Часть 3. PCRE.
PHP в деталях
Дверца в защите: почтовый веб-интерфейс
Комментарии к статье ""
Объектно-ориентированное программирование. Часть 3. Абстрактные классы БД
Комментарии к статье ""
Пароль на страницу. Часть 1. Скорее теоретическая.
Автоматизация авторизации
Комментарии к статье ""
Генерация HTTP запросов
Протокол HTTP. Введение.
Клиент и сервер
Пишем наш первый HTTP запрос.
Структура запроса.
Запрос GET.
Комментарии к статье ""
PHP в деталях
Метод POST.
Content-Type: application/x-www-form-urlencoded.
Content-Type: multipart/form-data.
Постскриптум.
Комментарии к статье ""
Редакторы PHP и HTML
EditPlus 2.10c
HTML-Kit (build 290)
PHPEd 1.75 alpha
UltraEdit 8.0
Комментарии к статье ""
Установка PHP + Apache: CGI vs. module
Вступление
Теоретическая часть.
Практическая часть.
Урок 1. Установка PHP а-ля CGI
Урок 2. Установка PHP как модуля Апачи
Траблшутинг
Об авторе
Комментарии к статье ""
Работа с MySQL. Часть 4. Постраничный вывод
Комментарии к статье ""
PHP в деталях
Пароль на страницу. Часть 2. Блокировка подбора (отредактированная)
Комментарии к статье ""
Работа с БД. Анализ логов.
Комментарии к статье ""
Пишем свой форум?
Комментарии к статье ""
Script Running Magic или хранение объектов на Слове
Резюме:
Файл srm.ini
Комментарии к статье ""
Relax this is PHP
Php в деталях // полная версия статьи:
Как поладить дизайнеру с программистом
Комментарии к статье ""
Ручная сортировка в веб-интерфейсе
PHP в деталях
Новый проект: экономическая игра "Монополист"
Комментарии к статье ""
Валим свой сервер и флудим поисковики
Комментарии к статье ""
XML: свет в конце туннеля
Комментарии к статье ""
Пароль на страницу. Часть 3. Пароль от базы
Пароль на страницу. Часть 4. Печенюшки
Комментарии к статье ""
Работа с MySQL. Часть 7. Деревья
Комментарии к статье ""
Не прощаемся
PHP в деталях
Пароль на страницу. Часть 5. Сессии
Комментарии к статье ""
Фильтруй базар?
Эхо боя, оптимизация логов
Комментарии к статье ""
Работа с MySQL. Часть 5. Функции обработки данных
Функции условий
Математические функции
Строковые функции
Дата и время
Остальные функции
Комментарии к статье ""
XML + XSLT: ещё раз о специализации программных средств
Комментарии к статье ""
PHP в деталях
Прячем исходный код. Zend Optimizer Zend Encoder
Установка ПО.
Комментарии к статье ""
По следам поиска в "деталях" - релевантность
Комментарии к статье ""
По следам поиска ещё раз
Комментарии к статье ""
PHP в деталях
Работа с базами данных. Начало.
Администрирование базы данных
Соединение с сервером БД
Запрос-выборка и обработка результатов
Запросы-действия
Обработка ошибок запросов
Комментарии к статье ""
PHP в деталях
Создание таблицы
Запись новостей
Вывод новостной ленты
Механизм администрирования - теория
Комментарии к статье ""
Запросы на выборку данных (SELECT)
Запросы на вставку строки (INSERT)
Комментарии к статье ""
Народная самодеятельность . связи таблиц в MySQL
Связь без большой натяжки
Как делать неправильно
Как надо
Синтаксис объединений таблиц
Комментарии к статье ""
Объектно-ориентированное программирование, классы
Комментарии к статье ""
PhpMyAdmin . бережет нервы и время
"Не делай этого!"
Комментарии к статье ""
Безопасный и удобный поиск
Обработка строки
Логика
Релевантность
Статистика поиска
Постраничный вывод результатов
Подсветка
Итог
Комментарии к статье ""
Пустой запрос. Повторите попытку.
Объектно-ориентированное программирование и классы, часть 2. Рассыльщик почты
ООП на службе почты
Комментарии к статье ""
Миллениум: магия чисел. Счетчик для страницы
Комментарии к статье ""
Поиск в MySQL. Релевантность своими руками
Комментарии к статье ""
По следам виртуальных директорий, или как можно настроить VirtualHost
Комментарии к статье ""
-
Учебник по основам PHP. PHP Beginner
Изначально аббревиатура РПР означала Preprocessor of Home Pages — препроцессор домашних страниц. Это язык внедряемых в HTML-страницы сценариев, исполняемых на сервере. По большей части его синтаксис заимствован из таких языков, как С, Perl, Java, и при этом добавлена масса возможностей, которых этим языкам недостает. Проще говоря, синтаксис РНР — это разумная альтернатива и строгости С, и «беспредельности» Perl.
РНР наделен практически полным набором функциональности, о которой (до появления РНР) мог только мечтать web-программист. Его цель — позволить максимально быстро создавать динамически генерируемые web-страницы. С полным основанием можно заявить, что изучение и использование РНР будет выгодно как начинающим, так и профессиональным программистам.
Основными конкурентами РНР являются технологии JSP (Java Server Pages и Java Scriptlets), ASP (Active Server Pages), Perl, SSI (Server Side Includes), Cold Fusion Server Pages. Рассмотрим те недостатки, которые присущи указанным технологиям. JSP — достаточно сложный для изучения и использования язык. ASP, основанный на синтаксисе VBScript (Visual Basic), имеет всего несколько десятков собственных функций и поэтому вынужден использовать СОМ-объекты; кроме того, он ориентирован исключительно на работу под Windows. Perl — язык головоломный, и его вольности затрудняют его понимание. SSI позволяет всего лишь компоновать HTML-страницу из нескольких файлов. CF — коммерческий продукт, что является его основным недостатком.
Структура книги
Установка и компиляция РНР
Установка РНР в Windows
Компиляция для Windows
Учебник по основам PHP. PHPBeginner
Переменные
Массивы
Функции
Объекты и классы
Математические функции
Математические функции повышенной точности BCMath
Математические функции GMP
Дата и время
Строковые функции
Синтаксис регулярных выражений
Функции регулярных выражений (PCRE)
Расширение регулярных выражений
Учебник по основам PHP. PHPBeginner
Файл конфигурации php.ini
Загружаемые модули PHP (extensions)
Параметры и информация РНР
Управление исполнением сценария PHP
Отслеживание и обработка ошибок
Управление выводом
Использование интерфейса HTTP
Сессии
Загрузка файлов на сервер методом HTTP POST
Запуск внешних приложений
Поддержка СОМ для Windows
Функции POSIX
Функции сервера Apache
Клиентский модуль Satellite CORBA
Разделяемая память
Учебник по основам PHP. PHPBeginner
Графика, Flash, pdf
Shockwave Flash
Ming для Flash
Forms Data Format
Учебник по основам PHP. PHPBeginner
WDDX
DOM XML
XML-интерпретация
XSLT
-
Справочник и примеры языка PHP
PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста»; первоначально Personal Home Page Tools — «Инструменты для создания персональных веб-страниц»; — скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов.
Язык и его интерпретатор разрабатываются группой энтузиастов в рамках проекта с открытым кодом. Проект распространяется под собственной лицензией, несовместимой с GNU GPL.
В области веб программирование, частности серверная часть, PHP — один из популярных сценарных языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.
Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений. Основные из них:
автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;
взаимодействие с большим количеством различных систем управления базами данных (MySQL, MySQLi, SQLite, PostgreSQL, Oracle (OCI8), Oracle, Microsoft SQL Server, Sybase, ODBC, mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL, Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM, Firebird / InterBase, Paradox File Access, MaxDB, Интерфейс PDO);
Filetype
Imagegif
Msql_fieldname mysql_fieldname
Reset
MySQL С API
Справочник по Perl
-
Первый сайт на PHP
Когда-то давно, еще в прошлом веке, для того чтобы сделать сайт "на мировом уровне", достаточно было просто уметь делать web-страницы на HTML и обладать художественным вкусом. Спустя некоторое время требования усложнились: использование JavaScript и Dynamic HTML стало рутинным и дизайн сайта, не имеющего подобных "украшений", считался устаревшим. Ещё по прошествии небольшого времени правилом "хорошего тона" для корпоративного сайта стало применение сложных программ на Perl или C++, а создавать такие сайты стало по силам, пожалуй, лишь коллективам дизайнерских студий.
Однако простые web-дизайнеры не желали мириться с такой ситуацией, и ответом на их пожелания стало появление РНР - языка программирования, обладающего возможностями сложных скриптовых языков, но в то же время удивительно простого и легкого в изучении и применении. РНР расшифровывается как "PHP: Hypertext Preprocessor" (в названии используется такой прием, как рекурсия: наличествующая в расшифровке аббревиатура "РНР" вновь может быть расшифрована как "РНР: Hypertext Preprocessor" - и так до бесконечности). Этот язык благодаря своей простоте и мощности быстро завоевал огромную популярность среди web-мастеров, и количество сайтов, использующих РНР, увеличивается с каждым днем. Немаловажно и то, что он бесплатен для использования всеми желающими.
НЕМНОГО О WEB-ПРОГРАММИРОВАНИИ
Вся информация о сервере и интерпретаторе - одной командой phpinfo()
Первый сайт на PHP
PHP: ИСТОРИЯМЕСТАИСТОЧНИКИ
С ЧЕГО НАЧАТЬ?
Официальный сайт РНР
А это - русский сайт по РНРЯсно, коротко, доступно
Проект "Денвер"
МЕСТА
РНР В РОССИИ
Клуб РНРСпрашивайте и отвечайте
PHP в деталяхДля тех, кому мало ответов в форумах
Первый сайт на PHP
PHP: ОСНОВЫ
З.1Программа на РНР (выделена жирным) в тексте web-страницы
Пример PHP-кодаПосмотрите внимательно
РАБОТА С ФОРМАМИ
Первый сайт на PHP
ГЛАВА 4РНР: ВЫБОРОЧНАЯ ЗАГРУЗКА
Чтобы просмотреть лишь избранные альбомы, достаточно их отметить...
...И вот, как на ладони -только они
Если вас заинтересовали лишь отдельные вопросы, нет надобности загружать всю страницу
Первый сайт на PHP
PHP: ПРОСТЕЙШИЙ ИНТЕРНЕТ-МАГАЗИН
Реально действующий Интернет-магазин, построенный по описанной в этой главе схеме
ЗАДАЧИ
ПРОЕКТ
Выпадающее меню
Виды полей ввода текста
ВИТРИНА
Интернет-магазинПоле заказа количества товара
ОТПРАВКА ЗАКАЗА
Письмо с заказомУдобно читать - удобно выполнять
Заказ сделан - можно уходить и ждать...
КАЛЬКУЛЯТОР
Калькулятор стоимости
ДОБАВЛЕНИЕ ТОВАРА
ПЕРСПЕКТИВЫ
ГЛАВА 6РНР:ПАПКОПОТРОШИЛКА
Публикация статей - одной закачкойБез всяких иных изменений
Один скрипт - на все папки
Первый сайт на PHP
PHP: ЗАКАЧКА ФАЙЛОВ
ПОДГОТОВКА
He забудьте назначить папке для файлов нужные права доступа...
Например, вот так
ОБЩИЕ СВЕДЕНИЯ
ФОРМА ДЛЯ ПОЛЬЗОВАТЕЛЯ
Форма ввода имени файла для загрузки и пароля
СЦЕНАРИЙ ОБРАБОТКИ
Сообщение пользователю в случае неуказания имени файла
Сообщение пользователю в случае неправильного ввода пароля
Сообщение пользователю в случае успешной загрузки
Сообщение пользователю в случае ошибки копирования
Первый сайт на PHP
АВТОРИЗАЦИЯ СРЕДСТВАМИ WEB-CEPBEPA
Пароль на папку средствами web-сервера? Достаточно двух файлов - .htaccess и .htpasswd...
Запрос на вход в папку
АВТОРИЗАЦИЯ С ПОМОЩЬЮ ЗАГОЛОВКА
Чтобы файл не "достали" из Интернета, установите его параметры вот так...
АВТОРИЗАЦИЯ С ПОМОЩЬЮ COOKIES
Cookie изнутри
Авторизация на основе cookiesПросто форма...
АВТОРИЗАЦИЯ С ПОМОЩЬЮ СЕССИЙ
СЕССИИ
Файлы с данными сессий в папке
Содержимое одного из таких файловВ сессии сохранены переменные: legus, wql, wq2, wq3
Содержимое cookie с идентификатором сессии
Ссылка с идентификатором сессии
Файл php.ini, раздел настроек параметров сессий
СЦЕНАРИЙ АВТОРИЗАЦИИ
ГЛАВА 9РНР: ГОСТЕВАЯ КНИГА
Гостевая книга - все ее файлы
Всего три файла - и гостевая книгаА можно даже два
Внешний вид гостевой книги и файлов с ее сообщениями
Первый сайт на PHP
PHP: СИСТЕМА ОЦЕНКИ МАТЕРИАЛОВ
ФАЙЛ NIZ.PHP
Файлы системы оцениванияСлева
Содержимое cookie - пометки о состоявшемся голосовании
Файл php.iniВышеупомянутые настройки
Система оценивания в действии...
...Но голосование уже состоялось
ФАЙЛ OTZIV.PHP
После попытки повторного голосования
ТЕКСТ СЦЕНАРИЯ
Первый сайт на PHP
PHP: ФАЙЛОВЫЙ МЕНЕДЖЕР
ПРОЕКТИРОВАНИЕ
Способы выбора действияЛучше тот, что справа.
Схема сценария файлового менеджера
ФАЙЛ INDEX.PHP
Файловый менеджер в работе
Файловый менеджерГлавная страницаКурсор - на ссылке, ведущей на папку
Файловый менеджерГлавная страница
ФАЙЛ ZAPROS.PHP
УДАЛЕНИЕ, ЗАПРОС ИНФОРМАЦИИ
Удаление файлов и папокЗапрос подтверждения
КОПИРОВАНИЕ, ЗАПРОС ИНФОРМАЦИИ
РЕКУРСИВНАЯ ФУНКЦИЯ ВЫВОДА СПИСКА ДОСТУПНЫХ ДЛЯ КОПИРОВАНИЯ ПАПОК НА АККАУНТЕ
КопированиеЗапрос папки назначения
ПЕРЕИМЕНОВАНИЕ, ЗАПРОС ИНФОРМАЦИИ
СОЗДАНИЕ НОВОЙ ПАПКИ, ЗАПРОС ИНФОРМАЦИИ
Создание новой папкиПоле ввода ее имени
КНОПКА ОТМЕНЫ
ФАЙЛ DO.PHP
УДАЛЕНИЕ, ВЫПОЛНЕНИЕ ДЕЙСТВИЯ
КОПИРОВАНИЕ, ВЫПОЛНЕНИЕ ДЕЙСТВИЯ
"Калькулятор параметров доступа" из CuteFTP
ПЕРЕИМЕНОВАНИЕ, ВЫПОЛНЕНИЕ ДЕЙСТВИЯ
Ошибка при переименовании - сообщение РНР
СОЗДАНИЕ НОВОЙ ПАПКИ, ВЫПОЛНЕНИЕ ДЕЙСТВИЯ
ЗАВЕРШЕНИЕ ДЕЙСТВИЯ
ТЕКСТ СЦЕНАРИЯ
PHP: ПОЛЕЗНЫЕ МЕЛОЧИ
СЧЕТЧИК ПОСЕЩЕНИЙ
Счетчик посещений - всего с десяток строчек
ПАРТНЕРСКАЯ ПРОГРАММА
Первый сайт на PHP
ГЛАВА 13РНР: СПОСОБЫ ПЕРЕДАЧИ ДАННЫХ МЕЖДУ ОТДЕЛЬНЫМИ СТРАНИЦАМИ
КРАТКАЯ СПРАВКА
ПЕРЕМЕННЫЕ В АДРЕСНОЙ СТРОКЕ.
COOKIES
СЕССИИ (ВОЗМОЖНО ТОЛЬКО В РНР ВЕРСИЙ 4.0 И ВЫШЕ)
ПОЛЬЗОВАТЕЛЬСКАЯ ФОРМА
УСТАНОВЛЕННЫЕ ПЕРЕМЕННЫЕ (ТОЛЬКО ДЛЯ ПЕРЕМЕННЫХ АВТОРИЗАЦИИ - $PHP_AUTH_USER И $PHP_AUTH_PW)
ЗАКЛЮЧЕНИЕ
Первый сайт на PHP
ПРЕВРАТИ СВОЙ САЙТ В ПОРТАЛ...
МИР ИНФОРМЕРОВ
П1.1Мир информеров - каждому web-мастеру
П1.2Погода - к вашим услугамВернее, к услугам ваших посетителей
П1.3Информеры курсов валютВыбирай на вкус
П1.4Можно выбрать, например, такой..
П1.5Все, что от вас требуется - ваш адрес электронной почты
П.1.7Новостной портал - за пять минут..Не рекламный лозунг - реальность
С МИРУ ПО НИТКЕ
П1.8Ваша страница - на языках мира
П1.9Онлайновый переводчик - для вашего сайта
П1.10Финансовая информация - как из первых рук
П1.11Рецепт дня - подарок хорошим женам
П1.12Лунный календарьИ не надо покупать газету...
П1.13Сайт карикатурХотите такую же себе?
П1.14Тогда просто скопируйте и вставьте нужный код
РАБОЧИЙ СТОЛ СОВРЕМЕННОГО ЧЕЛОВЕКА
П1.15Рабочий стол современного человекаПочувствуйте себя в центре событий
П1.16Установите здесь
Первый сайт на PHP
Краткое содержание
П.2.1Слева - код документа
П.2.2Диалог о кодировке web-страницы в Word97 отключается здесь
КОНВЕРТАЦИЯ ТЕКСТОВ
"ВЫТАСКИВАНИЕ РИСУНКОВ"
П.2.3Вытащить из Word
WEB-ГРАФИКА - БЫСТРО И УДОБНО
П.2.4Превратить такие схемы в картинки.Gif или Jpeg - задача по плечу лишь для Word
П 2.5Надо сделать красивый заголовок? Достаточно Word97
НЕПОДВЛАСТНЫЙ ВЛИЯНИЯМ...
П.2.6Web-архив: НадежностьСовместимостьКомпактность
Первый сайт на PHP
ПРИЛОЖЕНИЕ 3НА САЙТЕ - КАК В "ВИНДЕ"
П.3.1Сразу ясно, что надо скачивать...
П.3.2Затенение иконки под курсором
П.3.2Затенение иконки под курсором - 2
П.3.3Затемнение иконки под курсоромНо уже на сайте, а не на Рабочем столе
-
Язык программирования PHP
Язык PHP был разработан как инструмент для решения чисто практических задач. Его создатель, Расмус Лердорф, хотел знать, сколько человек читают его online-резюме, и написал для этого простенькую CGI-оболочку на языке Perl, т.е. это был набор Perl-скриптов, предназначенных исключительно для определенной цели – сбора статистики посещений.
Для справки. CGI (Common Gateway Interface – общий интерфейс шлюзов) является стандартом, который предназначен для создания серверных приложений, работающих по протоколу HTTP. Такие приложения (их называют шлюзами или CGI-программами) запускаются сервером в режиме реального времени. Сервер передает запросы пользователя CGI-программе, которая их обрабатывает и возвращает результат своей работы на экран пользователя. Таким образом, посетитель получает динамическую информацию, которая может изменяться в результате влияния различных факторов. Сам шлюз (скрипт CGI) может быть написан на различных языках программирования – Cи/C++, Fortran, Perl, TCL, UNIX Shell, Visual Basic, Python и др.
Вскоре выяснилось, что оболочка обладает небольшой производительностью, и пришлось переписать ее заново, но уже на языке Си. После этого исходники были выложены на всеобщее обозрение для исправления ошибок и дополнения. Пользователи сервера, где располагался сайт с первой версией PHP, заинтересовались инструментом, появились желающие его использовать. Так что скоро PHP превратился в самостоятельный проект, и в начале 1995 года вышла первая известная версия продукта, называвшаяся Personal Home Page Tools (средства для персональной домашней страницы). Средства эти были более чем скромными: анализатор кода, понимающий всего лишь несколько специальных команд, и набор утилит, полезных для создания гостевой книги, счетчика посещений, чата и т.п.
Возможности PHP
Установка и настройка ПО
Установка Apache 1.3.29 под Windows XP
Установка PHP 4.3.4 под Windows
Установка PHP под Linux
Дистрибутив Денвер
Первая PHP-программа
Заключение
Пример 1.0
Язык программирования PHP
Основной синтаксис
Разделение инструкций
Комментарии
Переменные, константы и операторы
Переменные
Константы
Операторы
Типы данных
Тип boolean (булев или логический тип)
Тип integer (целые)
Тип float (числа с плавающей точкой)
Тип string (строки)
Одинарные кавычки
Двойные кавычки
Heredoc
Тип array (массив)
Определение при помощи array()
Определение с помощью синтаксиса квадратных скобок
Тип object (объекты)
Тип resource (ресурсы)
Тип Null
Решение задачи
Заключение
Пример 2.1
Язык программирования PHP
Оператор if
Оператор else
Оператор elseif
Альтернативный синтаксис
Оператор switch
Циклы
While
Do... while
For
Foreach
Операторы передачи управления
Break
Continue
Include
Require
Решение задачи
Заключение
Пример 3.1
Язык программирования PHP
Основы клиент-серверных технологий
Протокол HTTP и способы передачи данных на сервер
Форма запроса клиента
Методы
Использование HTML-форм для передачи данных на сервер
Для метода GET
Для метода POST
Обработка запросов с помощью PHP
Пример обработки запроса с помощью PHP
Заключение
Пример 4.0
Язык программирования PHP
Функции, определяемые пользователем
Аргументы функций
Списки аргументов переменной длины
Глобальные переменные
Статические переменные
Возвращаемые значения
Возвращение ссылки
Переменные функции
Внутренние (встроенные) функции
Решение задачи
Заключение
Пример 5.1
Язык программирования PHP
Классы и объекты
Инициализация переменных
Объекты
Extends
Конструкторы
Оператор ::
Оператор parent
Объектная модель PHP5
Решение задачи
Заключение
Пример 6.1
Язык программирования PHP
Массивы
Операции с массивами
Функция count
Функция in_array
Функция array_search
Функция array_keys
Функция array_unique
Сортировка массивов
Функция sort
Функции asort, rsort, arsort
Сортировка массива по ключам
Сортировка с помощью функции, заданной пользователем
Применение функции ко всем элементам массива
Функция array_slice
Функция array_chunk
Сумма элементов массива
Заключение
Пример 7.1
Язык программирования PHP
Строки
Поиск элемента в строке
Функция strstr
Функция substr
Функция str_replace
Функция substr_replace
Разделение и соединение строки
Строки, содержащие html-код
Заключение
Пример 8.1
Язык программирования PHP
Функция fopen
Закрытие соединения с файлом
Функция fwrite
Чтение данных из файла
Функция fread
Функция fgets
Функция fgetss
Функция fgetc
Функция readfile
Функция file
Функция file_get_contents
Проверка существования файла
Функция file_exists
Функция is_writable
Функция is_readable
Удаление файла
Загрузка файла на сервер
Заключение
Пример 9.1
Язык программирования PHP
Базы данных: основные понятия
Ключи
Индексирование
СУБД MySQL
Язык SQL
Немного истории
Основные операторы языка SQL
Оператор CREATE TABLE
Оператор DROP TABLE
Оператор ALTER TABLE
Оператор SELECT
Оператор INSERT
Оператор UPDATE
Оператор DELETE
Заключение
Пример 10.1
Язык программирования PHP
Построение интерфейса для добавления информации
Установка соединения
Выбор базы данных
Получение списка полей таблицы
Отображение списка полей в html-форму
Запись данных в базу данных
Отображение данных, хранящихся в MySQL
Заключение
Пример 11.0.1
Язык программирования PHP
Авторизация доступа
Механизм сессий
Настройка сессий
Создание сессии
Регистрация переменных сессии
Удаление переменных сессии
Безопасность
Заключение
Пример 12.1
Язык программирования PHP
Понятие регулярного выражения
Регулярные выражения в PHP
Синтаксис регулярных выражений
Иллюстрация
Подвыражения (подшаблоны)
Повторения (квантификаторы)
Модификаторы PCRE
Регулярные выражения для «продвинутых»
Обратная ссылка
Утверждения
Условные подвыражения
Заключение
Пример 13.1
Язык программирования PHP
Введение
Основные понятия
Объектная модель XML-документа
Расширения SAX и DOM XML
Установка расширения DOM XML
Взаимодействие PHP и XML посредством DOM XML
Перевод данных XML-файла в объекты и классы PHP
Обход дерева объектов
Добавление новых элементов в XML-документ
Заключение
Пример 14.1
Язык программирования PHP
Что такое шаблоны и зачем они нужны
Шаблоны подстановки
Шаблоны подстановки - 2
Шаблоны FastTemplate
Методы FastTemplate
Метод define
Метод assign
Метод parse
Метод FastPrint
Решение задачи с помощью шаблонов FastTemplate
Шаблоны Smarty
Установка
Основной синтаксис
Конфигурационные файлы
Метод append
Метод config_load
Метод display
Метод fetch
Встроенные функции
Функция config_load
Функция capture
Функция section
Функция foreach
Оператор if, elseif, else
Решение задачи с помощью шаблонов Smarty
Заключение
-
PHP - статьи
Если Вы планируете создавать свой динамический сайт на платформе Windows, то у Вас скорее всего возникнет задача выбора СУБД для хранения информации (с языком, на котором Вы будете его программировать, судя по всему, вопросов не возникает). Одним из вариантов её решения, может оказаться использование MS Access в качестве SQL-сервера. Далее будет описано, как в скрипте, написанном на PHP, обратиться к базе данных MS Access.
К сожалению, в PHP нет встроенных средств для работы с этой СУБД, что, однако не исключает совместной их работы - для подключения к базе мы будем использовать ODBC.
Аспектно-ориентированная веб-разработка и PHP
Что такое AOSD?
Основы аспектно-ориентированного подхода
Аспектно-Ориентированная Разработка ПО на PHP
Заключение
If-Modified-Since, если PHP не установлен как модуль Apache
Битва со списками или применение классов для вывода списков в PHP
Register_globals=On? Вы в опасности!
Сбор статистики на PHP
-
PHP - авторизация доступа
Если вы хотя бы иногда посещаете сайты, на которых есть "защищенная зона", то есть часть, доступ на которую возможен лишь по определенным логину и паролю (например, почтовые службы с web-интерфейсом или сервисы хостинга), то вас наверняка интересовало, как эта авторизация происходит. И наверняка вам хотелось устроить то же самое и на вашем сайте, ведь необходимость в этом иногда возникает. Ниже будет рассказано о технологиях авторизации доступа, основанных на средствах web-сервера и технологии PHP. Думается, значение слова "авторизация" вам понятно - это не что иное, как обеспечение возможности доступа к чему-либо тем и только тем пользователям, которые знают определенные кодовые слова - логин и пароль.
Авторизация средствами web-сервера
Авторизация с помощью заголовка
Авторизация с помощью cookies
Авторизация с помощью сессий
Сессии
Сценарий авторизации
Пример сценария