XXVII. Функции обработки ошибок и логинга
Введение
Имеются функции для обработки ошибок и логинга. Они позволяют определять ваши собственные правила обработки ошибок, а также модифицировать способ логинга ошибок. Это позволяет настроить работу с ошибками так, как вам это необходимо.
С помощью функций логинга вы можете направлять сообщения на другие машины, по email (или email на шлюз пэйджеров!), в системные logs, etc., так что вы сможете выборочно записывать и отслеживать самые важные части ваших приложений и web-сайтов.
Функции сообщения об ошибках позволяют специализировать уровень и тип ошибок, начиная с простых уведомлений и заканчивая специализированными функциями, возвращаемыми при возникновении ошибок.
Требования
Эти функции всегда доступны как часть стандартного модуля.
Установка
Нет специальных требований по установке этих функций, так как они являются частью ядра РНР.
Предопределённые константы
Эти константы являются частью ядра РНР и всегда доступны.
Таблица 1. Ошибки и логинг
(integer)
См. также
Дополнительно см. раздел Обработка ошибок.
- Содержание
- error_log - отправляет сообщение об ошибке
- error_reporting - устанавливает, о каких РНР-ошибках сообщается
- restore_error_handler - восстанавливает предыдущую функцию-обработчик ошибок
- set_error_handler - устанавливает пользовательскую функцию-обработчик ошибок
- trigger_error - генерирует сообщение об ошибке/предупреждение/уведомление пользовательского уровня
- user_error - генерирует сообщение об ошибке/предупреждение/уведомление пользовательского уровня
LXXXII. Функции выполнения программы
Введение
Эти функции предоставляют средства для выполнения системных команд и средства для того, чтобы сделать выполнение этих команд безопасным.
Требования
Эти функции всегда доступны как часть стандартного модуля.
Установка
Нет специальных требований по установке этих функций, так как они являются частью ядра РНР.
Установка
Это расширение не определяет никаких директив конфигурации.
Типы ресурсов
Это расширение не определяет никакие типы ресурсов.
Предопределённые константы
Это расширение не определяет никаких констант.
См. также
Эти функции также тесно связаны с операцией backtick.
- Содержание
- escapeshellarg - escape-ирует строку для использования в качестве аргумента оболочки
- escapeshellcmd - escape-ирует метасимволы оболочки
- exec - выполняет внешнюю программу
- passthru - выполняет внешнюю программу и выводит необработанный вывод
- proc_close - закрывает процесс открытый proc_open и возвращает exit-код этого процесса
- proc_open - выполняет команду и открывает указатели файла для ввода/вывода
- shell_exec - выполняет команду в оболочке и возвращает полный вывод как строку
- system - выполняет внешнюю программу и отображает вывод
XVIII. Функции FrontBase
Введение
Эти функции дают доступ к серверам БД FrontBase. Дополнительно о FrontBase см. http://www.frontbase.com/.
Документация о FrontBase находится на http://www.frontbase.com/cgi-bin/WebObjects/FrontBase.woa/wa/productsPage?currentPage=Documentation.
Поддержка Frontbase была введена в PHP 4.0.6.
Требования
Чтобы использовать эти функции, вы обязаны установить сервер БД FrontBase или как минимум клиентские библиотеки fbsql. Вы можете получить FrontBase по адресу http://www.frontbase.com/.
Установка
Чтобы иметь доступ к этим функциям, вы обязаны скомпилировать PHP с поддержкой fbsql путём использования опции --with-fbsql. Если вы используете эту опцию без специфицирования пути к fbsql, PHP ищет клиентские библиотеки fbsql в месте установки по умолчанию для данной платформы. Те, кто установил FrontBase в нестандартное место, должны всегда специфицировать путь к fbsql:--with-fbsql=/path/to/fbsql. Это заставит PHP использовать клиентские библиотеки, установленные FrontBase, и исключит конфликты.
Типы ресурсов
Предопределённые константы
Эти константы определены данным расширением и будут доступны только в том случае, если либо вкомпилированы в РНР, либо динамически загружены на этапе прогона.
- FBSQL_ASSOC (integer)
- FBSQL_NUM (integer)
- FBSQL_BOTH (integer)
- FBSQL_LOCK_DEFERRED (integer)
- FBSQL_LOCK_OPTIMISTIC (integer)
- FBSQL_LOCK_PESSIMISTIC (integer)
- FBSQL_ISO_READ_UNCOMMITTED (integer)
- FBSQL_ISO_READ_COMMITTED (integer)
- FBSQL_ISO_REPEATABLE_READ (integer)
- FBSQL_ISO_SERIALIZABLE (integer)
- FBSQL_ISO_VERSIONED (integer)
- FBSQL_UNKNOWN (integer)
- FBSQL_STOPPED (integer)
- FBSQL_STARTING (integer)
- FBSQL_RUNNING (integer)
- FBSQL_STOPPING (integer)
- FBSQL_NOEXEC (integer)
- FBSQL_LOB_DIRECT (integer)
- FBSQL_LOB_HANDLE (integer)
- Содержание
- fbsql_affected_rows - получает количество рядов, задействованных в предыдущей операции FrontBase
- fbsql_autocommit - включает или отключает autocommit (автоподтверждение транзакций)
- fbsql_change_user - изменяет действующего пользователя активного соединения
- fbsql_close - закрывает соединение с FrontBase
- fbsql_commit - подтверждает транзакцию с БД
- fbsql_connect - открывает соединение с FrontBase-сервером
- fbsql_create_blob - создаёт BLOB
- fbsql_create_clob - создаёт CLOB
- fbsql_create_db - создаёт БД FrontBase
- fbsql_data_seek - перемещает внутренний результирующий указатель
- fbsql_database_password - устанавливает или запрашивает пароль для БД FrontBase
- fbsql_database - получает или устанавливает имя БД, используемое в соединении
- fbsql_db_query - отправляет FrontBase query/запрос
- fbsql_db_status - получает статус данной БД
- fbsql_drop_db - удаляет БД FrontBase
- fbsql_errno — возвращает числовое значение сообщения об ошибке предыдущей операции FrontBase
- fbsql_error — возвращает текст сообщения об ошибке предыдущей операции FrontBase
- fbsql_fetch_array - извлекает результирующий ряд как ассоциативный массив, числовой массив, либо и тот, и другой
- fbsql_fetch_assoc - извлекает результирующий ряд как ассоциативный массив
- fbsql_fetch_field - получает информацию столбца из результата и возвращает её как объект
- fbsql_fetch_lengths - получает длину каждого вывода в результате
- fbsql_fetch_object - извлекает результирующий ряд как объект
- fbsql_fetch_row - получает результирующий ряд как перечислимый массив
- fbsql_field_flags - получает флаги, ассоциированные со специфицированным полем в результате
- fbsql_field_len — возвращает длину специфицированного роля
- fbsql_field_name - получает имя специфицированного поля в результате
- fbsql_field_seek - устанавливает результирующий указатель на специфицированное смещение поля
- fbsql_field_table - получает имя таблицы, в которой находится специфицированное поле
- fbsql_field_type - получает тип специфицированного поля в результате
- fbsql_free_result - освобождает результирующую память
- fbsql_get_autostart_info - пока нет описания
- fbsql_hostname - получает или устанавливает имя хоста, используемое в соединении
- fbsql_insert_id - получает id, сгенерированный в предыдущей операции INSERT
- fbsql_list_dbs - выводит список БД, доступных на FrontBase-сервере
- fbsql_list_fields - выводит список результирующих полей FrontBase
- fbsql_list_tables - выводит список таблиц в БД FrontBase
- fbsql_next_result - перемещает внутренний результирующий указатель на следующий результат
- fbsql_num_fields - получает количество полей в результате
- fbsql_num_rows - получает количество рядов в результате
- fbsql_password - получает или устанавливает user password, используемый в соединении
- fbsql_pconnect - открывает постоянное соединение с FrontBase-сервером
- fbsql_query - отправляет FrontBase query
- fbsql_read_blob - читает BLOB из БД
- fbsql_read_clob - читает CLOB из БД
- fbsql_result - получает результирующие данные
- fbsql_rollback - откатывает транзакцию в данной БД
- fbsql_select_db - выбирает БД FrontBase
- fbsql_set_lob_mode - устанавливает режим запрашивания LOB для результирующего набора FrontBase
- fbsql_set_transaction - устанавливает блокировку и изоляцию транзакции
- fbsql_start_db - стартует БД на локальном или удалённом сервере
- fbsql_stop_db - останавливает БД на локальном или удалённом сервере
- fbsql_tablename - получает табличное имя поля
- fbsql_username - получает или устанавливает host user, используемого в соединении
- fbsql_warnings - включает или отключает предупреждения FrontBase
XXXI. Функции Forms Data Format
Введение
Forms Data Format (FDF) это формат для обработки форм в PDF-документах. Вам необходимо прочесть документацию http://partners.adobe.com/asn/developer/acrosdk/forms.html, чтобы узнать больше о том, что такое FDF и как его использовать.
Общая идея FDF напоминает HTML-формы. Разница в основном в формате передачи
данных на сервер при нажатии копки submit (это формат Form Data Format) и в
формате самой формы (которая имеет формат Portable Document Format, PDF).
Процессинг FDF-данных является одной из возможностей, предоставляемой fdf-функциями.
Но есть и ещё кое-что.
Можно также взять существующую PDF-форму и заполнить поля ввода (input)
данными без модификации самой формы. Тогда можно будет создать FDF-документ
(fdf_create()), установить значения каждого поля ввода
(fdf_set_value()) и ассоциировать его с PDF-формой
(fdf_set_file()). Наконец, он отправляется браузеру с MimeType application/vnd.fdf. Компонент Acrobat
reader вашего браузера распозн́ает MimeType, прочитает
ассоциированную PDF-форму и заполнит её данными из FDF-документа.
Если вы просмотрите FDF-документ в текстовом редакторе, вы увидите объект catalogue с именем FDF. Такой объект может содержать количество вхождений Fields, F, Status etc. Чаще всего используются вхождения Fields, которое указывает на список input-полей, и F, которое содержитfilename PDF-документа, которому принадлежат эти данные. Эти вхождения называются в FDF-документации как /F-Key или /Status-Key. Модификация этих вхождений выполняется функциями вроде fdf_set_file() и fdf_set_status(). Поля модифицируются функциями вроде fdf_set_value(), fdf_set_opt() etc.
Требования
Вы обязаны загрузить FDF toolkit с http://partners.adobe.com/asn/developer/acrosdk/forms.html
Установка
Вы обязаны скомпилировать PHP с--with-fdftk[=DIR].
Примечание: если у вас появляются проблемы с конфигурированием PHP с поддержкой fdftk, проверьте, находятся ли header-файл FdfTk.h и библиотека libFdfTk.so в соответствующих местах. Они должны быть в каталогах fdftk-dir/include и в fdftk-dir/lib. Этих директорий не будет, если вы просто распакуете дистрибутив FdfTk.
Конфигурация
Это расширение не определяет никаких директив конфигурации.
Типы ресурсов
Предопределённые константы
Эти константы определены данным расширением и будут доступны только в том случае, если либо вкомпилированы в РНР, либо динамически загружены на этапе прогона.
- FDFValue (integer)
- FDFStatus (integer)
- FDFFile (integer)
- FDFID (integer)
- FDFFf (integer)
- FDFSetFf (integer)
- FDFClearFf (integer)
- FDFFlags (integer)
- FDFSetF (integer)
- FDFClrF (integer)
- FDFAP (integer)
- FDFAS (integer)
- FDFAction (integer)
- FDFAA (integer)
- FDFAPRef (integer)
- FDFIF (integer)
- FDFEnter (integer)
- FDFExit (integer)
- FDFDown (integer)
- FDFUp (integer)
- FDFFormat (integer)
- FDFValidate (integer)
- FDFKeystroke (integer)
- FDFCalculate (integer)
Примеры
В следующем примере показано простое вычисление данных формы.
XXIX. Функции filePro
Введение
Эти функции дают доступ read-only к данным в БД filePro.
filePro это зарегистрированная торговая марка fP Technologies, Inc. Вы можете найти информацию о filePro по адресу http://www.fptech.com/
- Содержание
- filepro_fieldcount - определяет, сколько полей имеется в БД filePro
- filepro_fieldname - получает имя поля
- filepro_fieldtype - получает тип поля
- filepro_fieldwidth - получает ширину поля
- filepro_retrieve - запрашивает данные из filePro-БД
- filepro_rowcount - определяет, сколько рядов имеется в filePro-БД
- filepro - читает и проверяет файла отображения
XXX. Функции файловой системы
Введение
Требования
Эти функции доступны как часть стандартного модуля, который всегда доступен.
Инсталяция
Для использования этих функций не нужно никакой специальной установки, они являются частью ядра PHP.
Конфигурация времени выполнения
Это расширение не определяет никаких директив конфигурации.
Типы ресурсов
Предопределённые константы
Это расширение не определяет никаких констант.
См. также
разделы Директория и Выполнение программы.
- Содержание
- basename — возвращает компонент filename пути
- chgrp - изменяет file group
- chmod - изменяет file mode
- chown - изменяет file owner
- clearstatcache - очищает stat-кэш файла
- copy - копирует файл
- delete - (здесь заглушка статьи учебника)
- dirname — возвращает компонент directory name пути
- disk_free_space — возвращает доступное пространство в директории
- disk_total_space — возвращает общий размер директории
- diskfreespace - псевдоним disk_free_space()
- fclose - закрывает указатель открытого файла
- feof - проверяет, находится ли указатель файла в точке end-of-file
- fflush - очищает вывод в файл
- fgetc - получает символ от указателя файла
- fgetcsv - получает строку от указателя файла и разбирает CSV-поля
- fgets - получает строку от указателя файла
- fgetss - получает строку от указателя файла и вырезает тэги HTML
- file_exists - проверяет, существует ли файл
- file_get_contents - читает весь файл в строку
- file_get_wrapper_data - запрашивает header/meta-данные из указателей "обёрнутых" файлов
- file_register_wrapper - регистрирует URL-оболочку/wrapper, реализованную как PHP-класс
- file - читает весь файл в массив
- fileatime - получает время последнего доступа к файлу
- filectime - получает inode время изменения файла
- filegroup - получает file group
- fileinode - получает file inode
- filemtime - получает время последнего изменения файла
- fileowner - получает file owner
- fileperms - получает file permissions
- filesize - получает размер файла
- filetype - получает тип файла
- flock - переносимая информирующая блокировка файла
- fopen - открывает файл или URL
- fpassthru - выводит все оставшиеся в указателе файла данные
- fputs - записывает в указатель файла
- fread - Binary-safe/безопасное в двоичном режиме чтение файла
- fscanf - разбирает ввод из файла в соответствии с форматом
- fseek - ищет в указателе файла
- fstat - получает информацию о файле с использованием указателя открытого файла
- ftell - сообщает позицию чтения/записи указателя файла
- ftruncate - усекает файл до заданного размера
- fwrite - Binary-safe запись в файл
- glob - находит pathnames, совпадающие с патэрном
- is_dir - сообщает, является ли filename директорией
- is_executable - сообщает, является ли filename исполняемым
- is_file - сообщает, является ли filename регулярным файлом
- is_link - сообщает, является ли filename символической ссылкой
- is_readable - сообщает, является ли filename читаемым
- is_uploaded_file - сообщает, был ли файл загружен через HTTP POST
- is_writable - сообщает, можно ли записывать в filename
- is_writeable - сообщает, можно ли записывать в filename
- link - создаёт жёсткую ссылку
- linkinfo - получает информацию о ссылке
- lstat - выдаёт информацию о файле или символической ссылке
- mkdir - создаёт директорию
- move_uploaded_file - перемещает загруженный файл в новое место
- parse_ini_file - разбирает файл конфигурации
- pathinfo — возвращает информацию о пути файла
- pclose - закрывает process file pointer/указатель процесса файла
- popen - открывает process file pointer
- readfile - выводит файл
- readlink — возвращает цель/target символической ссылки
- realpath — возвращает канонизированный абсолютный pathname
- rename - переименовывает файл
- rewind - возвращает в начало указатель файла
- rmdir - удаляет директорию
- set_file_buffer - устанавливает буферизацию файла на данном указателе файла
- stat - выдаёт информацию о файле
- symlink - создаёт символическую ссылку
- tempnam - создаёт файл с уникальным именем
- tmpfile - создаёт временный файл
- touch - устанавливает время доступа и изменения файла
- umask - изменяет текущую umask
- unlink - удаляет файл
XXXII. Функции FriBiDi
Введение
Требования
Установка
Типы ресурсов
Предопределённые константы
Эти константы определены данным расширением и будут доступны только в том случае, если либо вкомпилированы в РНР, либо динамически загружены на этапе прогона.
- FRIBIDI_CHARSET_UTF8 (integer)
- FRIBIDI_CHARSET_8859_6 (integer)
- FRIBIDI_CHARSET_8859_8 (integer)
- FRIBIDI_CHARSET_CP1255 (integer)
- FRIBIDI_CHARSET_CP1256 (integer)
- FRIBIDI_CHARSET_ISIRI_3342 (integer)
- Содержание
- fribidi_log2vis - конвертирует логическую строку в визуальную
XXXIII. Функции FTP
Введение
Функции этого расширения реализуют клиентский доступ к файловым серверам, называемый File Transfer Protocol FTP, как определено в http://www.faqs.org/rfcs/rfc959.html.
Требования
Эти функции всегда доступны как часть стандартного модуля.
Установка
Чтобы использовать FTP-функции с вашей конфигурацией PHP, вы должны
добавить опцию
--enable-ftp
при установке PHP 4, и
--with-ftp при использовании PHP 3.
Установка
Это расширение не определяет никаких директив конфигурации.
Типы ресурсов
Это расширение использует один тип ресурсов, который является ссылкой-идентификатором ftp-соединения.
Предопределённые константы
Эти константы определены данным расширением и будут доступны только в том случае, если либо вкомпилированы в РНР, либо динамически загружены на этапе прогона.
- FTP_ASCII (integer)
- FTP_TEXT (integer)
- FTP_BINARY (integer)
- FTP_IMAGE (integer)
- FTP_TIMEOUT_SEC (integer)
Примеры
XXXIV. Функции работы с функциями
Введение
Эти функции выполняют различные операции при работе с функциями.
Требования
Эти функции всегда доступны как часть стандартного модуля.
Установка
Нет специальных требований по установке этих функций, так как они являются частью ядра РНР.
Конфигурация
Это расширение не определяет никаких директив конфигурации.
Предопределённые константы
Это расширение не определяет никаких констант.
- Содержание
- call_user_func_array - вызывает пользовательскую функцию, заданную массивом параметров
- call_user_func - вызывает пользовательскую функцию, заданную первым параметром
- create_function - создаёт анонимную (lambda-стиль) функцию
- func_get_arg - возвращает элемент из списка аргументов
- func_get_args - возвращает массив, образующий список аргументов функции
- func_num_args - возвращает количество аргументов, переданных функции
- function_exists - возвращает TRUE, если данная функция определена
- get_defined_functions - возвращает массив всех определённых функций
- register_shutdown_function - регистрирует функцию для выполнения при отключении/shutdown
- register_tick_function - регистрирует функцию для выполнения при каждом тике/tick
- unregister_tick_function - разрегистрирует функцию для выполнения при каждом тике
XXXV. Функции Gettext
Введение
Функции gettext реализуют NLS (Native Language Support) API, который может использоваться для интернационализации ваших PHP-приложений. Просмотрите документацию о gettext для вашей системы по адресу http://www.gnu.org/manual/gettext/index.html.
Требования
Для использования этих функций вы обязаны загрузить и установить пакет GNU gettext с http://www.gnu.org/software/gettext/gettext.html
Установка
Чтобы включить поддержку GNU gettext в ваше построение PHP, вы обязаны
добавить опцию
--with-gettext[=DIR], где DIR это директория установки
gettext, по умолчанию это /usr/local.
Конфигурация
Это расширение не определяет никаких директив конфигурации.
Типы ресурсов
Это расширение не определяет никакие типы ресурсов.
Предопределённые константы
Это расширение не определяет никаких констант.
- Содержание
- bind_textdomain_codeset - специфицирует кодировку символов, в которой будет написано сообщение, возвращённое из каталога сообщений DOMAIN
- bindtextdomain - устанавливает путь к домену
- dcgettext - переопределяет domain для отдельного просмотра
- dcngettext - множественная версия dcgettext
- dgettext - переопределяет текущий домен
- dngettext - множественная версия dgettext
- gettext - просматривает сообщение в текущем домене
- ngettext - множественная версия gettext
- textdomain - устанавливает домен по умолчанию
XXXVI. Функции GMP
Введение
Эти функции позволяют работать целыми числами произвольной точности с использованием библиотеки GNU MP.
Эти функции были введены в PHP 4.0.4.
Примечание: в основном функции GMP принимают GMP-количество аргументов, определённое далее как resource. Однако большая часть этих функций принимает также числовые и строковые аргументы, которые можно конвертировать в числа. Также, если если имеется более быстрая функция, работающая с целочисленными аргументами, она может использоваться вместо более медленной функции, если предоставляемые аргументы являются целыми числами. Это делается прозрачно, так что вы можете использовать целые числа в каждой функции, ожидающей GMP-числа. См. также функцию gmp_init().
Требования
Вы можете загрузить библиотеку GMP с http://www.swox.com/gmp/. Этот сайт содержит также учебник по GMP.
Вам понадобится версия GMP 2 или новее для использования этих функций. Некоторые функции могут потребовать использования самой последней версии библиотеки GMP.
Установка
Чтобы эти функции работали, вы обязаны скомпилировать PHP с поддержкой
GMP, используя опцию
--with-gmp.
Конфигурация
Это расширение не определяет никаких директив конфигурации.
Типы ресурсов
Это расширение не определяет никакие типы ресурсов.
Предопределённые константы
Эти константы определены данным расширением и будут доступны только в том случае, если либо вкомпилированы в РНР, либо динамически загружены на этапе прогона.
Примеры
XXXVII. Функции HTTP
Введение
Эти функции позволяют манипулировать выводом, отправляемым обратно удалённому браузеру по протоколу HTTP.
Требования
Эти функции всегда доступны как часть стандартного модуля.
Установка
Нет специальных требований по установке этих функций, так как они являются частью ядра РНР.
Конфигурация
Это расширение не определяет никаких директив конфигурации.
Типы ресурсов
Это расширение не определяет никакие типы ресурсов.
Предопределённые константы
Это расширение не определяет никаких констант.
- Содержание
- header - высылает сырой HTTP-header
- headers_sent - возвращает TRUE, если header'ы отправлены
- setcookie - отправляет куку
XXXIX. Функции Hyperwave API
Введение
Hyperwave был разработан IICM в Graz. Он начинался как Hyper-G и сменил название на Hyperwave при коммерциализации (насколько помню, это было в 1996).
Hyperwave это не бесплатная программа. Текущая версия, 5.5, доступна на www.hyperwave.com. Можно запросить оценочную версию с ограниченным временем использования (30 дней).
Hyperwave это информационная система, аналогичная database (HIS, Hyperwave Information Server). Она сфокусирована на хранении и обслуживании документов. Документом может быть любой блок данных, которые могут сохраняться в файле. Каждый документ сопровождается записью объекта. Запись объекта/object record содержит метаданные документа. Метаданные это список атрибутов, который может быть расширен пользователем. Некоторые атрибуты всегда устанавливаются Hyperwave-сервером, другие могут модифицироваться пользователем.
Требования
С 2001 г. доступен Hyperwave SDK. Он поддерживает Java, JavaScript и C++. Данное расширение PHP базируется на интерфейсе C++. Чтобы активировать поддержку hwapi в PHP, вы должны сначала установить Hyperwave SDK и сконфигурировать PHP с опцией --with-hwapi=<dir$gt;.
Классы
API, предоставляемый расширением HW_API, является полностью объектно-ориентированным. Он очень похож на интерфейс C++ Hyperwave SDK. Он состоит из следующих классов.
HW_API
HW_API_Object
HW_API_Attribute
HW_API_Error
HW_API_Content
HW_API_Reason
Некоторые базовые классы вроде HW_API_String, HW_API_String_Array, etc., которые имеются в Hyperwave SDK, не реализованы, поскольку PHP имеет для них полноценную замену.Каждый класс имеет метод, имя которого идентично имени его двойника из Hyperwave SDK. Передача аргументов такой функции отличается от всех других расширений PHP и напоминает C++ API пакета HW SDK. Вместо передачи различных параметров, они все помещаются в ассоциативный массив и передаются как один параметр. Имена ключей идентичны именам, задокументированным в HW SDK. Общие параметры перечислены ниже. Если необходимы другие параметры, они будут документированы, если это необходимо.
objectIdentifier - имя или id объекта, например, "rootcollection", "0x873A8768 0x00000002".
parentIdentifier - имя или id объекта, который считается родительским.
object - экземпляр класса HW_API_Object.
parameters - экземпляр класса HW_API_Object.
version - версия объекта.
mode - целочисленное значение - способ выполнения операции.
attributeSelector - массив строк, каждая из которых содержит имя атрибута. Это используется, если вы запрашиваете запись объекта и хотите включить некоторые атрибуты.
objectQuery - запрос на выбор определённого объекта из списка объектов. Используется для уменьшения количества объектов, выдаваемых функциями вродеhw_api->children() или hw_api->find().
Интеграция с Apache
Интеграция с Apache и, возможно, другими серверами уже описана в модуле Hyperwave Modul, который был первым расширением для соединения с Hyperwave Server.
- Содержание
- hw_api_attribute->key — возвращает ключ/key атрибута
- hw_api_attribute->langdepvalue — возвращает значение для данного языка
- hw_api_attribute->value — возвращает значение атрибута
- hw_api_attribute->values — возвращает все значения атрибута
- hw_api_attribute - создаёт экземпляр класса hw_api_attribute
- hw_api->checkin - проверяет in-объект
- hw_api->checkout - проверяет out-объект
- hw_api->children — возвращает потомка объекта
- hw_api_content->mimetype — возвращает mimetype
- hw_api_content->read - читает содержимое
- hw_api->content — возвращает содержимое объекта
- hw_api->copy - копирует физически
- hw_api->dbstat — возвращает статистику о сервере БД
- hw_api->dcstat — возвращает статистику о сервере кэша документов
- hw_api->dstanchors — возвращает список всех якорей назначения
- hw_api->dstofsrcanchors — возвращает назначение якоря-источника
- hw_api_error->count - возвращает количество причин/reasons
- hw_api_error->reason — возвращает reason ошибки
- hw_api->find - ищет объекты
- hw_api->ftstat — возвращает статистику fulltext-сервере
- hwapi_hgcsp — возвращает объект класса hw_api
- hw_api->hwstat — возвращает статистику о Hyperwave-сервере
- hw_api->identify - входит/Log в Hyperwave-сервер
- hw_api->info — возвращает информацию о конфигурации сервера
- hw_api->insert - вставляет новый объект
- hw_api->insertanchor - вставляет новый объект типа anchor
- hw_api->insertcollection - вставляет новый объект типа collection
- hw_api->insertdocument - вставляет новый объект типа document
- hw_api->link - создаёт ссылку на объект
- hw_api->lock - блокирует объект
hw_api->move - перемещает объект между коллекциями - hw_api_content - создаёт новый экземпляр класса hw_api_content
- hw_api_object->assign - клонирует объект
- hw_api_object->attreditable - проверяет, может ли атрибут редактироваться
- hw_api_object->count - возвращает количество атрибутов
- hw_api_object->insert - вставляет новый атрибут
- hw_api_object - создаёт новый экземпляр класса hw_api_object
- hw_api_object->remove - удаляет атрибут
- hw_api_object->title — возвращает название атрибута
- hw_api_object->value — возвращает значение атрибута
- hw_api->object - запрашивает информацию атрибута
- hw_api->objectbyanchor — возвращает объект, к которому принадлежит anchor
- hw_api->parents — возвращает родителя объекта
- hw_api_reason->description — возвращает описание reason
- hw_api_reason->type — возвращает тип reason/причины
- hw_api->remove - удаляет объект
- hw_api->replace - заменяет объект
- hw_api->setcommitedversion - подтверждает версию, отличную от последней версии
- hw_api->srcanchors — возвращает список всех anchor-источников
- hw_api->srcsofdst — возвращает источник объекта назначения
- hw_api->unlock - разблокирует блокированный объект
- hw_api->user — возвращает пользователя объекта
- hw_api->userlist — возвращает список всех вошедших/logged in пользователей
XXXVIII. Функции Hyperwave
Введение
Hyperwave был разработан IICM в Graz. Он начинался как Hyper-G и сменил название на Hyperwave при коммерциализации (насколько помню, это было в 1996).
Hyperwave это не бесплатная программа. Текущая версия, 5.5, доступна на www.hyperwave.com. Можно запросить оценочную версию с ограниченным временем использования (30 дней).
Hyperwave это информационная система, аналогичная database (HIS, Hyperwave Information Server). Она сфокусирована на хранении и обслуживании
документов. Документом может быть любой блок данных, которые могут
сохраняться в файле. Каждый документ сопровождается записью объекта. Запись
объекта/object record содержит метаданные документа. Метаданные это список
атрибутов, который может быть расширен пользователем. Некоторые атрибуты всегда
устанавливаются Hyperwave-сервером, другие могут модифицироваться пользователем.
Атрибут это пара name/value (имя/значение) в форме name=value.
Полная запись объекта содержит столько пар, сколько необходимо пользователю.
Имя атрибута не обязано быть уникальным,
например, заголовок/title может появляться несколько раз в записи объекта.
Это имеет смысл, если вы хотите специфицировать title на различных языках.
На этот случай имеется соглашение о том, что каждому значению title
предшествует аббревиатура языка из двух букв с последующим двоеточием,
например, 'en:Title in English' или 'ge:Titel in deutsch'. Другие атрибуты
вроде описания или ключевых слов являются потенциальными кандидатами. Вы можете
также заменить аббревиатуру языка любой другой строкой, отделив её двоеточием от остальной части атрибута.
Каждая запись объекта имеет строковое представление, где каждая пара name/value отделена символами новой строки. Расширение Hyperwave знает также второе представление, которое является ассоциативным массивом с именем атрибута в качестве ключа. Многоязычные значения атрибутов сами образуют другой ассоциативный массив с ключом - аббревиатурой языка. Фактически любой многоязычный атрибут образует ассоциативный массив со строкой, в качестве значения ключа, слева от двоеточия в значении атрибута. (Это ещё не полностью реализовано. Только Title, Description и Keyword атрибута считаются пока что его свойствами.)
Помимо документов, все гиперссылки, содержащиеся в документе, также хранятся как записи объекта. Гиперссылки в документе будут удалены из него и сохранены в отдельных объектах, когда документ будет вставляться в БД. Запись объекта ссылки содержит информацию о том, где она стартует и где заканчивается. Чтобы получить оригинал документа, вам нужно будет запросить документ без ссылок и список ссылок и вновь вставить их в него (функции hw_pipedocument() и hw_gettext() сделают это для вас. Преимущества отделения ссылок от объектов очевидны. Если объект, на который указывает ссылка, изменяет своё имя, ссылка легко может быть модифицирована. Документ, содержащий ссылку, вообще не будет затронут. Вы можете даже добавить ссылку в документ без его изменения.
Сказать, что hw_pipedocument() и
hw_gettext() автоматически делают вставку ссылки, было бы слишком просто. Вставка ссылок
предполагает определённую иерархию документов. На web-сервере это делается
файловой системой, но Hyperwave имеет свою собственную иерархию, и имена не
отражают позицию объекта в этой иерархии. Следовательно, создание ссылок
требует прежде всего отображения из иерархии и пространства имён Hyperwave в
соответствующее web-пространство имён web-иерархии.
Принципиальное отличие Hyperwave от web в том, что имеется ясное различие
именами и иерархией Hyperwave. Имя не содержит никакой информации о позиции объекта в иерархии.
В web - имя содержит также и информацию о том, где объект размещён в
иерархии. Это даёт два различных способа отображения. Либо иерархия и имя Hyperwave Hyperwave-объекта
отражаются в URL, либо только имя.
Для упрощения используется второй подход.
Hyperwave-объект с именем 'my_object' отображается в
'http://host/my_object', независимо от его положения в иерархии Hyperwave.
объект с именем 'parent/my_object' может быть потомком объекта
'my_object' в иерархии Hyperwave, хотя в пространстве имён web это выглядит
необычно, и пользователь может быть удивлён.
Предотвратить это можно только выбором осмысленных имён объектов.
После принятия данного решения возникает вторая проблема. Как вызвать PHP? URL http://host/my_object не вызовет PHP-скрипт, если вы не сообщите вашему web-серверу, что нужно переписать URL на, к примеру, 'http://host/php3_script/my_object', и скрипт 'php3_script' вычислит переменную $PATH_INFO и запросит объект с именем 'my_object' с Hyperwave-сервер. Здесь есть только один недостаток, который можно легко устранить. Перезапись любого URL не позволит получить доступ к любым другим документам на web-сервере. PHP-скрипт для поиска на Hyperwave-сервере применить невозможно. Следовательно, вам понадобится как минимум второе правило перезаписи для исключения определённых URL вроде, к примеру, начинающихся с http://host/Hyperwave. Это будет разделением пространства имён между web и Hyperwave-сервером.
Основываясь на вышеприведённом механизме, ссылки вставляются в документы.
Это несколько усложняется, если PHP запущен не как серверный модуль или CGI-скрипт, а как отдельное приложение, например, для дампа содержимого Hyperwave-сервера на CD-ROM. В таком случае имеет смысл сохранить иерархию Hyperwave и отобразить её в файловую систему. Это конфликтует с именами объектов, если они отражают свою собственную иерархию (например, избрав имена, включающие '/'). Следовательно, '/' должен быть заменён другим символом, например, '_'.
Сетевой протокол для соединения с Hyperwave-сервером называется HG-CSP (Hyper-G Client/Server Protocol). Он основан на сообщениях для инициации определённых действий, например, получения записи объекта. В ранних версиях Hyperwave Server предоставлялись два клиента (Harmony, Amadeus) для соединения с сервером. Они были убраны при коммерциализации Hyperwave. В качестве замены был предоставлен так называемый wavemaster. Это wavemaster является чем-то вроде конвертера протоколов из HTTP в HG-CSP. Идея состоит в том, чтобы делать всё администрирование БД и визуализацию документов через web-интерфейс. Wavemaster реализует набор заглушек/placeholders для определённых акций, чтобы специализировать интерфейс. Этот набор заглушек называется PLACE Language. В PLACE отсутствуют многие возможности реального языка программирования, и любое расширение его только расширяет список заглушек. Это привело к использованию JavaScript, IMO которого не делает жизнь легче.
Добавление поддержки Hyperwave в PHP должно заполнить отсутствующий интерфейс специализации. Он реализует все сообщения, как определено HG-CSP, но предоставляет также и более мощные команды для, например, запрашивания полных документов.
Hyperwave имеет свою собственную терминологию для именования определённых блоков информации. Она была широко использована и расширена. Почти все функции оперируют с данными одного из следующих типов.
ID объекта: Уникальное целочисленное значение для каждого объекта в Hyperwave-сервере. Это также один из атрибутов записи объекта (ObjectID). ids объектов часто используются как параметр ввода для специфицирования объекта.
Запись объекта/object record: Строка с парами атрибут-значение в форме attribute=value. Пары разделены символами возврата каретки. Запись объекта можно легко конвертировать в массив объекта функцией hw_object2array(). Несколько функций возвращают записи объектов. Имена таких функций заканчиваются на obj.
массив объекта: Ассоциированный массив со всеми атрибутами объекта. Ключом является имя атрибута. Если атрибут появляется более чем однократно в записи объекта, это даст другой ассоциированный или индексированный массив. Атрибуты, зависящие от языка (вроде title, keyword, description), сформируют ассоциативный массив с ключами - аббревиатурами языков. Все иные множественные атрибуты сформируют индексированный массив. Функции PHP никогда не возвращают массивы объектов.
hw_document: Это совершенно новый тип данных, содержащий реальный документ, например, HTML, PDF etc. Он оптимизирован для HTML-документов, но может использоваться для любого формата.
Некоторые функции, возвращающие массив записей объекта, возвращают также ассоциативный массив со статистической информацией о нём. Этот массив является последним элементом массива записей объекта. Статистический массив содержит следующие вхождения:
- Hidden
Количество записей объектов с атрибутом PresentationHints, установленным в Hidden.
- CollectionHead
Количество записей объектов с атрибутом PresentationHints, установленным в CollectionHead.
- FullCollectionHead
Количество записей объектов с атрибутом PresentationHints, установленным в FullCollectionHead.
- CollectionHeadNr
Индекс в массиве записей объекта с атрибутом PresentationHints, установленным в CollectionHead.
- FullCollectionHeadNr
-
Индекс в массиве записей объекта с атрибутом PresentationHints, установленным в FullCollectionHead.
- Total
Всего: Количество записей объекта.
Интеграция с Apache
Расширение Hyperwave лучше всего использовать, когда PHP скомпилирован как Apache-модуль. В этом случае Hyperwave-сервер может быть скрыт от пользователей почти полностью, если Apache использует свою машину перезаписи. Следующие инструкции разъясняют это.
Поскольку PHP с поддержкой Hyperwave, встроенный в Apache, предполагается
заменить Hyperwave-решением на базе Wavemaster, я буду считать, что Apache-сервер будет работать только как Hyperwave
web-интерфейс. Это не обязательно, но упрощает конфигурацию.
Концепция довольно проста. Прежде всего вам необходим PHP-скрипт, вычисляющий переменную
PATH_INFO и рассматривающий её значение как имя Hyperwave-объекта. Назовём этот скрипт 'Hyperwave'.
URL http://your.hostname/Hyperwave/name_of_object возвратит Hyperwave-объект с именем
'name_of_object'. В зависимости от типа объекта, скрипт должен реагировать
соответственно. Если это collection/коллекция, он, вероятно, возвратит
список потомков. Если это документ, он возвратит
mime-тип и content/содержимое. Можно добиться некоторого улучшения, если
использовать машину перезаписи Apache. С точки зрения пользователя, лучше
будет, если URL http://your.hostname/name_of_object возвратит объект.
RewriteRule ^/(.*) /usr/local/apache/htdocs/HyperWave/$1 [L]
Теперь каждый URL имеет отношение к объекту на Hyperwave-сервере. Это облегчает решение проблемы. Нет иного способа выполнить скрипт, например, для поиска, кроме 'Hyperwave'-скрипта. Это можно решить с помощью другого правила перезаписи, наподобие следующего:
RewriteRule ^/hw/(.*) /usr/local/apache/htdocs/hw/$1 [L]
Это зарезервирует директорию /usr/local/apache/htdocs/hw для дополнительных скриптов и других файлов. Просто убедитесь, что это правило вычисляется до вышеприведённого. Здесь есть один маленький недостаток: все Hyperwave-объекты, чьи имена начинаются с 'hw/', будут затемнены. Итак, убедитесь, что вы не используете таких имён. Если вам нужны дополнительные директории, например, для изображений, просто добавьте ещё правила или поместите их все в одну директорию. Наконец, не забудьте включить машину перезаписи:
XLV. Функции InterBase
Введение
InterBase является популярной БД фирмы Borland/Inprise. Больше информации о InterBase можно найти на http://www.interbase.com/. Да, кстати, InterBase уже вступил в движение свободно доступных ресурсов!
Примечание: полная поддержка InterBase 6 была введена в PHP 4.0.
Эта БД использует символ одинарной кавычки (') для escapi-рования (мнемонизации), поведение аналогично БД Sybase. Добавьте в ваш файл php.ini следующую директиву:
XL. Функции ICAP [не рекомендуется применять]
Введение
Примечание: Icap будет удалён в ближайшем будущем. Ни этот модуль, ни версии библиотеки icap больше не будут поддерживаться. Если вы хотите использовать календарные возможности PHP, используйте mcal.
Требования
Библиотека icap должна быть установлена, но больше не поддерживается.
Установка
Чтобы эти функции работали вы должны скомпилировать PHP с опцией --with-icap.
Конфигурация
Это расширение не определяет никаких директив конфигурации.
Типы ресурсов
Это расширение не определяет никакие типы ресурсов.
Предопределённые константы
Это расширение не определяет никаких констант.
- Содержание
- icap_close - закрывает поток ICAP
- icap_create_calendar - создаёт новый календарь
- icap_delete_calendar - удаляет календарь
- icap_delete_event - удаляет событие из ICAP-календаря
- icap_fetch_event - извлекает событие из потока календаря
- icap_list_alarms - возвращает список событий, которые содержат переключатель предупреждения для данной даты/времени
- icap_list_events - возвращает список событий между двумя данными датами
- icap_open - открывает ICAP-соединение
- icap_rename_calendar - переименовывает календарь
- icap_reopen - вновь открывает ICAP-поток для нового календаря
- icap_snooze - "усыпляет" предупреждение
- icap_store_event - сохраняет событие в ICAP-календаре
XLI. Функции iconv
Введение
Этот модуль содержит интерфейс для функций библиотеки iconv. Функция Iconv-библиотеки конвертирует файлы между различными наборами символов/кодировками. Поддерживаемый набор символов зависит от реализации iconv() для вашей системы. Заметьте, что функция iconv() на некоторых системах работает не так хорошо, как можно ожидать. В этом случае вы должны установить библиотеку libiconv.
Требования
Вы обязаны иметь функцию iconv() в стандартной C-библиотеке или библиотеку libiconv, установленную в вашей системе. Библиотека libiconv доступна с узла http://www.gnu.org/software/libiconv/
Установка
Чтобы иметь возможность использовать функции, определённые в этом модуле, вы обязаны скомпилировать PHP-интерпретатор с использованием строки конфигурации --with-iconv.
Конфигурация
Это расширение не определяет никаких директив конфигурации.
Типы ресурсов
Это расширение не определяет никакие типы ресурсов.
Предопределённые константы
Это расширение не определяет никаких констант.
- Содержание
- iconv_get_encoding - получает текущую установку для конвертации кодировки символов
- iconv_set_encoding - устанавливает текущую установку для конвертации кодировки символов
- iconv - конвертирует строку в запрошенную кодировку
- ob_iconv_handler - конвертирует кодировку символов как обработчик буфера вывода
XLIV. Функции Informix
Введение
Драйвер Informix для Informix (IDS) 7.x, SE 7.x, Universal Server (IUS) 9.x и IDS 2000 реализован в "ifx.ec" и "php3_ifx.h" в директории расширения informix. Поддержка IDS 7.x весьма основательна, с полной поддержкой столбцов BYTE и TEXT. Поддержка IUS 9.x частично завершена: введены новые типы данных, но поддержка SLOB и CLOB всё ещё в стадии разработки.
Требования
Замечания по конфигурации: вам необходима версия ESQL/C для компиляции драйвера Informix для РНР. ESQL/C версии с 7.2x должны работать нормально. ESQL/C является теперь частью Informix Client SDK.
Убедитесь, что переменная "INFORMIXDIR" установлена и что $INFORMIXDIR/bin имеется в вашей переменной окружения PATH, прежде чем запускать скрипт "configure".
Установка
Примечание: скрипт configure будет автоматически определять директории библиотек и include, если вы запустите configure --with_informix=yes. Вы можете переопределить это автоопределение, специфицировав "IFX_LIBDIR", "IFX_LIBS" и "IFX_INCDIR" в окружении. Скрипт configure также попытается определить версию вашего сервера Informix. Он установит переменную условной компиляции "HAVE_IFX_IUS", если ваша версия Informix >= 9.00.
Конфигурация
Примечание: убедитесь, что переменные окружения Informix INFORMIXDIR и INFORMIXSERVER доступны для PHP ifx-драйвера и что директория INFORMIX bin находится в PATH. Проверьте это, запустив скрипт, содержащий вызов phpinfo(), прежде чем начать тестирование. На выводе phpinfo() эти переменные должны быть перечислены. Это TRUE как для CGI php, так и для Apache mod_php. Вам может понадобиться установить эти переменные окружения в стартовом скрипте вашего Apache.
Совместно используемые библиотеки Informix также должны быть доступны загрузчику (проверьте LD_LINBRARY_PATH или ld.so.conf/ldconfig).
Некоторые замечания об использовании BLOB'ов (столбцы TEXT и BYTE): BLOB'ы нормально адресуются BLOB-идентификаторами. Запросы выборки возвращают "blob id" для каждого столбца BYTE и TEXT. Вы можете получить содержимое с помощью "string_var = ifx_get_blob($blob_id);", если вы выбрали получение BLOB'ов в памяти (с помощью: "ifx_blobinfile(0);"). Если вы предпочитаете получать содержимое BLOB-столбцов в файле, используйте "ifx_blobinfile(1);", а "ifx_get_blob($blob_id);" даст вам filename. Используйте нормальный I/O файлов для получения содержимого blob.
Для запросов insert/update вы обязаны создать эти "blob id'ы" самостоятельно с помощью " ifx_create_blob();". Затем подключите blob id'ы в массив и заместите blob-столбцы знаком вопроса (?) в строке запроса. Для update/insert вы ответственны за установку blob-содержимого с помощью ifx_update_blob().
Поведение BLOB-столбцов может быть изменено переменными конфигурации, что также можно сделать на этапе прогона программы:
переменная конфигурации : ifx.textasvarchar
переменная конфигурации : ifx.byteasvarchar
runtime-функции :
ifx_textasvarchar(0) : использовать blob id'ы для select-запросов со столбцами TEXT
ifx_byteasvarchar(0) : использовать blob id'ы для select-запросов со столбцами BYTE
ifx_textasvarchar(1) : возвращать столбцы TEXT, как если бы они были столбцами VARCHAR, чтобы вам не нужно было использовать blob id'ы дляselect-запросов
ifx_byteasvarchar(1) : возвращать столбцы BYTE, как если бы они были столбцами VARCHAR, чтобы вам не нужно было использовать blob id'ы для select-запросов
переменная конфигурации : ifx.blobinfile
runtime-функция :
ifx_blobinfile_mode(0) : возвращать столбцы BYTE в памяти, blob id позволяет получать содержимое
ifx_blobinfile_mode(1) : возвращать столбцы BYTE в файле, blob id позволяет получать имя файла
Если вы устанавливаете для ifx_text/byteasvarchar значение 1, вы можете использовать столбцы TEXT и BYTE в select-запросах, как нормальные (но всё же long) поля VARCHAR. Поскольку все строки "подсчитаны" в PHP, он остаётся "binary safe". Вы обязаны обработать это корректно. Возвращаемые данные могут содержать всё что угодно, вы отвечаете за содержимое.
Если вы устанавливаете для ifx_blobinfile значение 1, используйте имя файла, возвращаемое ifx_get_blob(..), для получения blob-содержимого. Заметьте, что в этом случае ВЫ ОТВЕЧАЕТЕ ЗА УДАЛЕНИЕ ВРЕМЕННЫХ ФАЙЛОВ, СОЗДАННЫХ INFORMIX, когда извлекаете ряды. Каждый новый извлечённый ряд создаст новый временный файл для каждого столбца BYTE.
Размещение временных файлов может быть настроено переменной окружения "blobdir", по умолчанию "." (текущая директория). Что-то вроде putenv(blobdir=tmpblob"); облегчит зачистку временных файлов, случайно пропущенных (имена их всех начинаются с "blb").
Автоматическая доводка "char"-данных (SQLCHAR и SQLNCHAR): это можно установить переменной окружения
ifx.charasvarchar : если установлено 1, ведомые пробелы автоматически удаляются, давая вам некоторое подобие "отсечения/chopping".
NULL-значения: переменная конфигурации ifx.nullformat (и функция времени выполнения ifx_nullformat()), если установлена в TRUE, возвратит NULL -столбцы как строку "NULL", если установлена FALSE, они возвратят пустую строку. Это позволяет вам выбирать между NULL -столбцами и пустыми столбцами.
Типы ресурсов
Предопределённые константы
Это расширение не определяет никаких констант.
- Содержание
- ifx_affected_rows - получает количество рядов, задействованных в запросе
- ifx_blobinfile_mode - устанавливает blob-режим по умолчанию для всех select-запросов
- ifx_byteasvarchar - устанавливает byte-режим по умолчанию
- ifx_close - закрывает соединение Informix
- ifx_connect - открывает серверное соединение Informix
- ifx_copy_blob - дублирует данный blob-объект
- ifx_create_blob - создаёт blob-объект
- ifx_create_char - создаёт char-объект
- ifx_do - выполняет ранее подготовленный SQL-оператор
- ifx_error - возвращает код ошибки последнего вызова Informix
- ifx_errormsg - возвращает сообщение об ошибке последнего вызова Informix
- ifx_fetch_row - получает ряд как перечислимый массив
- ifx_fieldproperties - выдаёт список свойств SQL-полей
- ifx_fieldtypes - выдаёт список Informix SQL-полей
- ifx_free_blob - удаляет blob-объект
- ifx_free_char - удаляет char-объект
- ifx_free_result - освобождает ресурсы для запроса
- ifx_get_blob - возвращает содержимое blob-объекта
- ifx_get_char - возвращает содержимое char-объекта
- ifx_getsqlca - получает содержимое sqlca.sqlerrd[0..5] после запроса
- ifx_htmltbl_result - форматирует все ряды запроса в виде HTML-таблицы
- ifx_nullformat - устанавливает return-значение по умолчанию при извлечении ряда
- ifx_num_fields - возвращает количество столбцов в запросе
- ifx_num_rows - подсчитывает ряды, уже извлечённые из запроса
- ifx_pconnect - открывает постоянное соединение Informix
- ifx_prepare - готовит SQL-оператор для выполнения
- ifx_query - отправляет Informix query
- ifx_textasvarchar - устанавливает текстовый режим по умолчанию
- ifx_update_blob - обновляет содержимое blob-объекта
- ifx_update_char - обновляет содержимое char-объекта
- ifxus_close_slob - удаляет slob-объект
- ifxus_create_slob - создаёт slob-объект и открывает его
- ifxus_free_slob - удаляет slob-объект
- ifxus_open_slob - открывает slob-объект
- ifxus_read_slob - читает n байт slob-объекта
- ifxus_seek_slob - устанавливает текущую позицию файла или поиска
- ifxus_tell_slob - возвращает текущую позицию файла или поиска
- ifxus_write_slob - записывает строку в slob-объект
XLII. Функции изображений
Введение
Вы можете использовать функции работы с изображениями в PHP для получения размера изображений форматов JPEG, GIF , PNG , SWF , TIFF и JPEG2000.
Требования
Если у вас есть библиотека GD (доступна с http://www.boutell.com/gd/), вы также сможете создавать изображения и манипулировать ими.
Формат изображений, с которыми вы можете работать, зависит от установленной у вас версии GD и любых других GD-библиотек, которые могут понадобиться для доступа к изображениям этих форматов. Версии GD старше gd-1.6 поддерживают изображения gif и не поддерживают png, а версии новее gd-1.6 поддерживают png, но не gif.
Если вы скомпилировали PHP с опцией --enable-exif, вы можете работать с информацией, хранимой в header'ах изображений JPEG и TIFF . Эти функции не требуют библиотеки GD .
Установка
Чтобы читать и записывать изображения в формате jpeg, вам нужно будет получить и установить jpeg-6b (находится на ftp://ftp.uu.net/graphics/jpeg/), а затем перекомпилировать GD на использование jpeg-6b. Вы должны будете также скомпилировать PHP с опцией --with-jpeg-dir=/path/to/jpeg-6b.
Для добавления поддержки шрифтов Type 1, вы можете установить t1lib (находится на ftp://sunsite.unc.edu/pub/Linux/libs/graphics/), а затем добавить --with-t1lib[=dir].
Конфигурация
Это расширение не определяет никаких директив конфигурации.
Типы ресурсов
Это расширение не определяет никакие типы ресурсов.
Предопределённые константы
Эти константы определены данным расширением и будут доступны только в том случае, если либо вкомпилированы в РНР, либо динамически загружены на этапе прогона.
- IMG_GIF (integer)
- IMG_JPG (integer)
- IMG_JPEG (integer)
- IMG_PNG (integer)
- IMG_WBMP (integer)
- IMG_XPM (integer)
- IMG_COLOR_TILED (integer)
- IMG_COLOR_STYLED (integer)
- IMG_COLOR_BRUSHED (integer)
- IMG_COLOR_STYLEDBRUSHED (integer)
- IMG_COLOR_TRANSPARENT (integer)
- IMG_ARC_ROUNDED (integer)
- IMG_ARC_PIE (integer)
- IMG_ARC_CHORD (integer)
- IMG_ARC_NOFILL (integer)
- IMG_ARC_EDGED (integer)
Содержание
- exif_imagetype - определяет тип изображения
- exif_read_data — читает шапки EXIF в JPEG или TIFF
- exif_thumbnail - запрашивает внедрённую уменьшенную версию/thumbnail изображения TIFF или JPEG
- getimagesize - получает размер изображения
- image2wbmp - выводит изображение в браузер или файл
- imagealphablending - устанавливает режим смешения/blending изображения
- imagearc - прорисовывает дугу
- imagechar - прорисовывает символ горизонтально
- imagecharup - прорисовывает символ вертикально
- imagecolorallocate - выделяет цвет для изображения
- imagecolorat - получает индекс цвета пиксела
- imagecolorclosest - получает индекс цвета, ближайшего к специфицированному цвету
- imagecolorclosestalpha - получает индекс цвета, ближайшего к специфицированному цвету + alpha
- imagecolorclosesthwb - получает индекс цвета, оттенок, белизну и черноту, ближайшие к данному цвету
- imagecolordeallocate - снимает выделение/размещение цвета для изображения
- imagecolorexact - получает индекс специфицированного цвета
- imagecolorexactalpha - получает индекс специфицированного цвета + alpha
- imagecolorresolve - получает индекс специфицированного цвета или ближайшей возможной альтернативы
- imagecolorresolvealpha - получает индекс специфицированного цвета + alpha или ближайшей возможной альтернативы
- imagecolorset - устанавливает цвет для специфицированного индекса палитры
- imagecolorsforindex - получает цвет индекса
- imagecolorstotal - определяет количество цветов в палитре изображения
- imagecolortransparent - определяет цвет как прозрачный/transparent
- imagecopy - копирует часть изображения
- imagecopymerge - копирует и объединяет часть изображения
- imagecopymergegray - копирует и объединяет часть изображения с серой шкалой
- imagecopyresampled - копирует часть изображения и изменяет его размер путём пересэмплирования
- imagecopyresized - копирует часть изображения и изменяет его размер
- imagecreate - создаёт новую палитру на основе изображения
- imagecreatefromgd2 - создаёт новое изображение из GD2-файла или URL
- imagecreatefromgd2part - создаёт новое изображение из данной части GD2-файла или URL
- imagecreatefromgd - создаёт новое изображение из GD-файла или URL
- imagecreatefromgif - создаёт новое изображение из файла или URL
- imagecreatefromjpeg - создаёт новое изображение из файла или URL
- imagecreatefrompng - создаёт новое изображение из файла или URL
- imagecreatefromstring - создаёт новое изображение из потока изображения в строке
- imagecreatefromwbmp - создаёт новое изображение из файла или URL
- imagecreatefromxbm - создаёт новое изображение из файла или URL
- imagecreatefromxpm - создаёт новое изображение из файла или URL
- imagecreatetruecolor - создаёт новое изображение true color
- imagedashedline - прорисовывает пунктирную линию
- imagedestroy - разрушает изображение
- imageellipse - прорисовывает эллипс
- imagefill - заполняет заливкой
- imagefilledarc - прорисовывает часть эллипса и заполняет её
- imagefilledellipse - прорисовывает заполненный эллипс
- imagefilledpolygon - прорисовывает заполненный многоугольник
- imagefilledrectangle - прорисовывает заполненный прямоугольник
- imagefilltoborder - заполняет заливкой специфицированного цвета
- imagefontheight - получает высоту шрифта
- imagefontwidth - получает ширину шрифта
- imageftbbox - задаёт ограничивающий бокс текста, используя шрифты через freetype2
- imagefttext - записывает текст на изображение, используя шрифты с FreeType 2
- imagegammacorrect - применяет коррекцию гаммы к GD-изображению
- imagegd2 - выводит GD2-изображение в браузер или файл
- imagegd - выводит GD-изображение в браузер или файл
- imagegif - выводит изображение в браузер или файл
- imageinterlace - включает или отключает interlace/вывод изображения полосами
- imagejpeg - выводит изображение в браузер или файл
- imageline - прорисовывает линию
- imageloadfont - загружает новый шрифт
- imagepalettecopy - копирует палитру из одного изображения в другое
- imagepng - выводит PNG-изображение в браузер или файл
- imagepolygon - прорисовывает многоугольник
- imagepsbbox - задаёт ограничивающий бокс прямоугольника текста, используя шрифты PostScript Type1
- imagepscopyfont - делает копию уже загруженного шрифта для последующей модификации
- imagepsencodefont - изменяет вектор кодировки символов шрифта
- imagepsextendfont - расширяет или сжимает шрифт
- imagepsfreefont - освобождает память, использованную шрифтом PostScript Type 1
- imagepsloadfont - загружает шрифт PostScript Type 1 из файла
- imagepsslantfont - наклоняет шрифт
- imagepstext - прорисовывает текстовую строку поверх изображения с использованием шрифтов PostScript Type1
- imagerectangle - прорисовывает прямоугольник
- imagesetbrush - устанавливает изображение кисти для прорисовки линии
- imagesetpixel - устанавливает одиночный пиксел
- imagesettyle - устанавливает стиль прорисовки линии
- imagesetthickness - устанавливает толщину прорисовки линии
- imagesettile - устанавливает изображение, размножаемое для заполнения/tile
- imagestring - прорисовывает строку горизонтально
- imagestringup - прорисовывает строку вертикально
- imagesx - получает ширину изображения
- imagesy - получает высоту изображения
- imagetruecolortopalette - конвертирует изображение true color в палитровое/palette изображение
- imagettfbbox - задаёт ограничивающий бокс текста, используя шрифты TrueType
- imagettftext - записывает текст на изображение, используя шрифты TrueType
- imagetypes - возвращает типы изображений, поддерживаемые этим построением PHP
- imagewbmp - выводит изображение в браузер или файл
- iptcembed - внедряет двоичные IPTC-данные в JPEG-изображение
- jpeg2wbmp - конвертирует файл JPEG-изображения в файл WBMP-изображения
- png2wbmp - конвертирует файл PNG-изображения в файл WBMP-изображения
- read_exif_data - читает header-информацию, хранимую в изображениях TIFF и JPEG
XLIII. Функции IMAP, POP3 и NNTP
Введение
Эти функции не ограничиваются протоколом IMAP , как можно было бы понять из их названия. Основная клиентская С-библиотека также поддерживает методы доступа NNTP, POP3 и локального mailbox.
Требования
Это расширение требует наличия библиотеки c-client. Скачайте последнюю версию с ftp://ftp.cac.washington.edu/imap/ и скомпилируйте её.
Установка
Чтобы эти функции работали, вы должны скомпилировать PHP с опцией --with-imap.
Затем скопируйте c-client/c-client.a в /usr/local/lib/libc-client.a или какую-нибудь другую директорию в пути link и скопируйте c-client/c-client.h, c-client/imap4r1.h, c-client/rfc-882.h, c-client/mail.h и c-client/linkage.h в /usr/local/include или какую-нибудь другую директорию в пути include.
Примечание: в зависимости от того как c-client была сконфигурирована, вам также может понадобиться добавить --with-imap-ssl=/path/to/openssl/ и/или --with-kerberos в строки конфигурации PHP.
Конфигурация
Это расширение не определяет никаких директив конфигурации.
Типы ресурсов
Предопределённые константы
Эти константы определены данным расширением и будут доступны только в том случае, если либо вкомпилированы в РНР, либо динамически загружены на этапе прогона.
- NIL (integer)
- OP_DEBUG (integer)
- OP_READONLY (integer)
- OP_ANONYMOUS (integer)
- OP_SHORTCACHE (integer)
- OP_SILENT (integer)
- OP_PROTOTYPE (integer)
- OP_HALFOPEN (integer)
- OP_EXPUNGE (integer)
- OP_SECURE (integer)
- CL_EXPUNGE (integer)
- FT_UID (integer)
- FT_PEEK (integer)
- FT_NOT (integer)
- FT_INTERNAL (integer)
- FT_PREFETCHTEXT (integer)
- ST_UID (integer)
- ST_SILENT (integer)
- ST_SET (integer)
- CP_UID (integer)
- CP_MOVE (integer)
- SE_UID (integer)
- SE_FREE (integer)
- SE_NOPREFETCH (integer)
- SO_FREE (integer)
- SO_NOSERVER (integer)
- SA_MESSAGES (integer)
- SA_RECENT (integer)
- SA_UNSEEN (integer)
- SA_UIDNEXT (integer)
- SA_UIDVALIDITY (integer)
- SA_ALL (integer)
- LATT_NOINFERIORS (integer)
- LATT_NOSELECT (integer)
- LATT_MARKED (integer)
- LATT_UNMARKED (integer)
- SORTDATE (integer)
- SORTARRIVAL (integer)
- SORTFROM (integer)
- SORTSUBJECT (integer)
- SORTTO (integer)
- SORTCC (integer)
- SORTSIZE (integer)
- TYPETEXT (integer)
- TYPEMULTIPART (integer)
- TYPEMESSAGE (integer)
- TYPEAPPLICATION (integer)
- TYPEAUDIO (integer)
- TYPEIMAGE (integer)
- TYPEVIDEO (integer)
- TYPEOTHER (integer)
- ENC7BIT (integer)
- ENC8BIT (integer)
- ENCBINARY (integer)
- ENCBASE64 (integer)
- ENCQUOTEDPRINTABLE (integer)
- ENCOTHER (integer)
См. также
Данный документ не может привести всю информацию об этих функциях. Дополнительно см. информацию в документации к исходнику библиотеки c-client (docs/internal.txt) и следующие RFC-документы:
RFC2821: Simple Mail Transfer Protocol (SMTP).
RFC2822: Стандарт для текстовых сообщений интернет ARPA.
RFC2060: Internet Message Access Protocol (IMAP) Версии 4rev1.
RFC1939: Post Office Protocol Версии 3 (POP3).
RFC977: Network News Transfer Protocol (NNTP).
RFC2076: Общие Шапки/Headers Internet-Сообщений.
RFC2045, RFC2046, RFC2047, RFC2048 & RFC2049: MultipurposeInternet Mail Extensions (MIME).
Детальный обзор также имеется в книге Programming Internet Email, автор David Wood, и ManagingIMAP, авторы Dianna Mullet & Kevin Mullet.
- Содержание
- imap_8bit - конвертирует 8-битную строку в закавыченную печатаемую строку
- imap_alerts - Эта функция возвращает все сообщения-предупреждения IMAP (если имеются), которые возникли в процессе запроса этой страницы или после восстановления стэка предупреждений
- imap_append - присоединяет строковое сообщение в специфицированный mailbox
- imap_base64 - декодирует BASE64-кодированный текст
- imap_binary - конвертирует 8-битную строку в base64-строку
- imap_body - читает тело сообщения
- imap_bodystruct - читает структуру специфицированного раздела тела специфического сообщения
- imap_check - проверяет текущий mailbox
- imap_clearflag_full - очищает флаги в сообщениях
- imap_close - закрывает поток IMAP
- imap_createmailbox - создаёт новый mailbox/почтовый ящик
- imap_delete - помечает сообщение для удаления из текущего mailbox
- imap_deletemailbox - удаляет mailbox
- imap_errors - эта функция возвращает все ошибки IMAP (если имеются), которые возникли в процессе запроса этой страницы или после восстановления стэка ошибок
- imap_expunge - удаляет все сообщения, помеченные для удаления
- imap_fetch_overview - читает обзор информации в шапках/headers данного сообщения
- imap_fetchbody - извлекает определённый раздел тела сообщения
- imap_fetchheader - возвращает header сообщения
- imap_fetchstructure - читает структуру определённого сообщения
- imap_get_quota - запрашивает установки уровня квоты и статистику использования mailbox
- imap_getmailboxes - читает список mailbox'ов, возвращая детальную информацию о каждом
- imap_getsubscribed - выдаёт список всех подписанных mailbox'ов
- imap_header - читает header сообщения
- imap_headerinfo - читает header сообщения
- imap_headers — возвращает header'ы всех сообщений в mailbox
- imap_last_error - эта функция возвращает последнюю ошибку IMAP (если имеется), которая возникла в процессе запроса этой страницы
- imap_listmailbox - читает список mailbox'ов
- imap_listsubscribed - выдаёт список всех подписанных mailbox'ов
- imap_mail_compose - создаёт MIME-сообщение на основе данных разделов envelope и body
- imap_mail_copy - копирует специфицированное сообщение в mailbox
- imap_mail_move - перемещает специфицированное сообщение в mailbox
- imap_mail - отправляет email-сообщение
- imap_mailboxmsginfo - получает информацию о текущем mailbox'е
- imap_mime_header_decode - декодирует элементы MIME-header'а
- imap_msgno - эта функция возвращает количество последовательностей сообщений для данного UID
- imap_num_msg - задаёт количество сообщений в текущем mailbox
- imap_num_recent - задаёт количество оставшихся сообщений в текущем mailbox
- imap_open - открывает поток IMAP в mailbox
- imap_ping - проверяет, активен ли поток IMAP
- imap_popen - открывает постоянный поток IMAP в mailbox
- imap_qprint - конвертирует закавыченную печатаемую строку в 8-битную строку
- imap_renamemailbox - переименовывает старый mailbox в новый mailbox
- imap_reopen - повторно открывает поток IMAP в новый mailbox
- imap_rfc822_parse_adrlist - разбирает строку с адресом
- imap_rfc822_parse_headers - разбирает mail header'ы из строки
- imap_rfc822_write_address - Возвращает соответственно сформатированный email адрес с данными mailbox, host и personal info.
- imap_scanmailbox - читает список mailbox'ов, берёт строку для поиска в тексте mailbox'а
- imap_search - эта функция возвращает массив сообщений, совпадающих с данными критериями поиска
- imap_set_quota - устанавливает квоту для данного mailbox'а
- imap_setacl - устанавливает ACL для данного mailbox'а
- imap_setflag_full - устанавливает флаги на сообщениях
- imap_sort — сортирует массив header'ов сообщений
- imap_status - эта функция возвращает статус-информацию о mailbox'е, отличном от текущего
- imap_subscribe - подписывает на mailbox
- imap_thread - возвращает дерево, распределённое REFERENCES по потокам
- imap_uid - эта функция возвращает UID для данного номера последовательности сообщений
- imap_undelete - снимает маркировку с сообщения, помеченного для удаления
- imap_unsubscribe - отменяет подписку на mailbox
- imap_utf7_decode - декодирует модифицированную UTF-7-кодированную строку
- imap_utf7_encode — конвертирует 8-битные данные в модифицированный UTF-7-текст
- imap_utf8 - конвертирует текст в UTF8
XLVI. Функции Ingres II
Эти функции дают доступ к серверам баз данных Ingres II.
Чтобы иметь возможность работать с этими функциями, вы обязаны скомпилировать РНР с поддержкой Ingres с помощью опции --with-ingres. Вам необходима библиотека Open API и включённые/include header-файлы для работы с Ingres II. Если переменная окружения II_SYSTEM не установлена корректно, вам может понадобиться использовать --with-ingres=DIR для специфицирования вашей директории установки Ingres.
При использовании этого расширения с Apache, если Apache не стартует и выдаёт ошибку "PHP Fatal error: Unable to start ingres_ii module in Unknown on line 0", то убедитесь, что переменная окружения II_SYSTEM установлена корректно. Добавление "export II_SYSTEM="/home/ingres/II" в стартовый скрипт Apache, сразу перед запуском httpd, должно помочь.
Примечание: если вы уже использовали PHP для доступа к другим серверам БД, обратите внимание, что Ingres не допускает конкурирующих запросов и/или транзакций по одному соединению, поэтому вы не найдёте в этом расширении дескрипторов результата или транзакции. Результат запроса/query обязан рассматриваться до отправления другого запроса, а транзакция обязана подтверждаться либо откатываться до открытия другой транзакции (что делается автоматически при отправке первого запроса).
- Содержание
- ingres_autocommit - включает и выключает autocommit
- ingres_close - закрывает соединение с БД Ingres II
- ingres_commit - подтверждает транзакцию
- ingres_connect - открывает соединение с БД Ingres II
- ingres_fetch_array - извлекает ряд результата в массив
- ingres_fetch_object - извлекает ряд результата в объект
- ingres_fetch_row - извлекает ряд результата в перечислимый массив
- ingres_field_length - получает длину поля
- ingres_field_name - получает имя поля в результате выполнения запроса
- ingres_field_nullable - проверяет, является ли поле обнуляемым
- ingres_field_precision - получает точность поля
- ingres_field_scale - получает масштаб поля
- ingres_field_type - получает тип поля в результате выполнения запроса
- ingres_num_fields - получает количество полей, возвращённых последним запросом
- ingres_num_rows - получает количество рядов, задействованных в или возвращённых последним запросом
- ingres_pconnect - открывает постоянное соединение с БД Ingres II
- ingres_query - отправляет SQL query на Ingres II
- ingres_rollback - откатывает транзакцию
XLVII. Функции IRC-шлюза
Что такое ircg?
С помощью ircg вы можете создавать мощные, быстрые и масштабируемые web-чаты в сочетании с выделенными или публичными IRC-серверами.
Платформы
IRCG работает под:
AIX
FreeBSD
HP-UX
Irix
Linux
Solaris
Tru64
Требования
Для установки и использования IRCG вам необходимо следующее программное обеспечение:
IRCG-Library от Sascha Schumann
thttpd web сервер
Установка
Детальные инструкции по установке находятся здесь.
- Содержание
- ircg_channel_mode - устанавливает флаги режима каналов для пользователя
- ircg_disconnect - закрывает соединение с сервером
- ircg_fetch_error_msg - возвращает ошибку от предыдущей операции ircg
- ircg_get_username - получает username для соединения
- ircg_html_encode - кодирует HTML, сохраняя вывод
- ircg_ignore_add - добавляет пользователя в ваш список ignore на сервере
- ircg_ignore_del - удаляет пользователя из вашего списка ignore на сервере
- ircg_is_conn_alive - проверяет статус соединения
- ircg_join - входит в канал на подсоединённом сервере
- ircg_kick - выбрасывает пользователя из канала на сервере
- ircg_lookup_format_messages - выбирает набор строк форматирования для отображения IRC-собщений
- ircg_msg - отправляет сообщение в канал или пользователю на сервере
- ircg_nick - изменяет псевдоним на сервере
- ircg_nickname_escape - кодирует специальные символы в псевдониме для совмещения с IRC
- ircg_nickname_unescape - декодирует кодированный псевдоним
- ircg_notice - отправляет уведомление пользователю на сервере
- ircg_part - оставляет канал на сервере
- ircg_pconnect - соединяется с IRC-сервером
- ircg_register_format_messages - регистрирует набор строк форматирования для отображения IRC-ссобщений
- ircg_set_current - устанавливает текущее соединение для вывода
- ircg_set_file - устанавливает logfile для соединения
- ircg_set_on_die - устанавливает hostaction для выполнения при завале соединения
- ircg_topic - устанавливает предмет/topic для канала на сервере
- ircg_whois - запрашивает пользовательскую информацию для псевдонима на сервере
XLVIII. Java
Есть два способа связать PHP и Java: вы можете либо интегрировать PHP в среду Java Servlet, что является более стабильным и эффективным решением, либо интегрировать поддержку Java в PHP. Первый предоставляется SAPI-модулем, который является интерфейсом с Servlet-сервером, второй - РНР-расширением Java.
PHP 4 ext/java предоставляет простые и эффективные средства для создания и вызова методов Java-объектов из PHP. JVM создаётся с использованием JNI, и всё запускается in-process. Встроенные инструкции для ext/java можно найти в файле php4/ext/java/README.
XLIX. Функции LDAP
Введение в LDAP
LDAP это Lightweight Directory Access Protocol - протокол, используемый для доступа к "Directory Servers". Directory это особый вид базы данных, которая содержит информацию как древовидную структуру.
Концепция аналогична структуре директорий жёсткого диска, но в данном контексте root/корневая директория это "The world/Земной шар", а первый уровень поддиректорий это "countries/страны". Ещё ниже идут уровни структуры директорий, содержащие вхождения для companies/компаний, organisations/организаций или мест, а ещё ниже находятся вхождения директорий для people/людей и, возможно, оборудования или документов.
Чтобы обратиться к файлу в поддиректории на жёстком диске, вы вводите что-нибудь вроде
/usr/local/myapp/docs
Слэш отделяет каждое подразделение ссылки, а последовательность читается слева направо.
Эквивалентом для полной квалифицированной ссылки на файл в LDAP является "distinguished name/различительное имя", называемое просто "dn". Примером dn может быть:
cn=John Smith,ou=Accounts,o=My Company,c=US
Запятая работает как слэш, а последовательность читается справа налево. Вы можете прочитать это dn как ...
country = US
organization = My Company
organizationalUnit = Accounts
commonName = John Smith
Точно так же, поскольку нет твёрдых правил организации структуры директорий на жёстком диске, directory server manager (менеждер сервера директорий) может настроить любую структуру, необходимую для осуществления поставленных задач. Однако есть некоторые соглашения, которые при этом используются: вы не можете записать код для доступа к серверу директорий, если не знаете его структуру, хотя можете использовать БД без знания того, что доступно.
Полный пример кода
Запрашиваем информацию для всех вхождений, где фамилия начинается с "S", с сервера директорий и отображаем их с именем и email-адресом.
L. Функции почты
Функция mail() даёт возможность отправлять почту
Директивы конфигурации Mail
- SMTP string
Только под Windws: DNS name или IP-адрес SMTP-сервера, который PHP должен использовать для отправки почты функцией mail().
- SMTP int
Только под Windws: Номер порта для соединения с сервером, специфицированным установкой SMTP, при отправке почты функцией mail(); по умолчанию 25. Доступен, только начиная сPHP 4.3.0.
- sendmail_from string
Который "From:"-почтовый адрес должен использоваться в почте, отправляемой из PHP под Windows.
- sendmail_path string
Где можно найти программу sendmail; обычно /usr/sbin/sendmail или /usr/lib/sendmail configure выполняет попытку локализовать её для вас и установить по умолчанию, но при неудаче вы можете установить её здесь.
Системы, не использующие sendmail, должны установить эту директиву в sendmail wrapper/replacement, предлагаемые их почтовыми системами, если они имеются. Например, пользователи Qmail могут нормально установить её /var/qmail/bin/sendmail или /var/qmail/bin/qmail-inject.
qmail-inject не требует никаких опций для корректной обработки почты.
- Содержание
- ezmlm_hash - вычисляет хэш-значение, необходимое для EZMLM
- mail - отправляет почту
LI. Функции mailparse
- Содержание
- mailparse_determine_best_xfer_encoding - определяет наилучший способ кодирования содержимого, прочитанного из файлового указателя fp, где обязана иметься возможность для поиска
- mailparse_msg_create — возвращает дескриптор, который может использоваться для разбора сообщения
- mailparse_msg_extract_part_file - извлекает/декодирует раздел сообщения, декодируя кодировку трансфера
- mailparse_msg_extract_part - извлекает/декодирует раздел сообщения. Если callbackfunc не специфицирована, содержимое будет отправлено в "stdout"
- mailparse_msg_free - освобождает дескриптор, выделенный mailparse_msg_crea
- mailparse_msg_get_part_data — возвращает ассоциативный массив информации о сообщении
- mailparse_msg_get_part — возвращает дескриптор данного раздела в mimemessage
- mailparse_msg_get_structure — возвращает массив имён mime-разделов в предоставленном сообщении
- mailparse_msg_parse_file - разбирает файл и возвращает ресурс, представляющий эту структуру
- mailparse_msg_parse - инкрементно разбирает данные в буфере
- mailparse_rfc822_parse_addresses - разбирает адреса и возвращает хэш, содержащий эти данные
- mailparse_stream_encode - направляет в поток данные из исходного указателя файла, применяя кодировку и и записывая в destfp
- mailparse_uudecode_all - сканирует данные из fp и извлекает каждый внедрённый uuencoded файл. Возвращает массив со списком filename-информации
LII. Математические функции
Введение
Эти math-функции обрабатывают только значения в диапазоне типов от integer до float на вашем компьютере (в данный момент это соответствует C-типам от long до double). Если вам нужно работать с б́ольшими числами, ознакомьтесь с math-функциями произвольной точности.
Предопределённые константы
Следующие значения определены как константы в PHP расширением math:
Таблица 1. Math-константы
Только M_PI доступна в версиях до PHP 4.0.0. Все другие константы доступны, начиная с PHP 4.0.0. Константы, помеченные [4.0.2] были введены в PHP 4.0.2.
- Содержание
- abs - абсолютное значение
- acos - арккосинус
- acosh - инверсный гиперболический косинус
- asin - арксинус
- asinh - инверсный гиперболический синус
- atan2 - арктангенс двух переменных
- atan - арктангенс
- atanh - инверсный гиперболический тангенс
- base_convert - конвертирует число между произвольными базами
- bindec - двоичное в 10-ричное
- ceil - округление дробей в сторону увеличения
- cos - косинус
- cosh - гиперболический косинус
- decbin - десятеричное в двоичное
- dechex - 10-ричное в 16-ричное
- decoct - 10-ричное в 8-ричное
- deg2rad - конвертирует число в градусах в эквивалент в радианах
- exp - e в степени ...
- expm1 - возвращает exp(число) - 1, вычисляемое способом, который обеспечивает точность, даже если значение близко к нулю
- floor - округляет дробь в сторону уменьшения
- getrandmax - показывает наибольшее возможное случайное значение
- hexdec - 16-ричное в 10-ричное
- hypot - возвращает sqrt( num1*num1 + num2*num2)
- is_finite -
- is_infinite -
- is_nan -
- lcg_value - комбинированный линеарный конгруэнтный генератор
- log10 - логарифм с базой 10
- log1p - возвращает log(1 + число), вычисляемое способом, который обеспечивает точность, даже если значение близко к нулю
- log - натуральный логарифм
- max - находит наибольшее значение
- min - находит наименьшее значение
- mt_getrandmax - показывает наибольшее возможное случайное значение
- mt_rand - генерирует наилучшее случайное значение
- mt_srand - запускает генератор наилучшего случайного числа
- number_format - форматирует число с группировкой по тысячам
- octdec - 8-ричное в 10-ричное
- pi - значение pi
- pow - экспоненциальное выражение
- rad2deg - конвертирует число в радианах в эквивалент в градусах
- rand - генерирует случайное число
- round - округляет число с плавающей точкой/float
- sin - синус
- sinh - гиперболический синус
- sqrt - квадратный корень
- srand - запускает генератор наилучшего случайного числа
- tan - тангенс
- tanh - гиперболический тангенс
LIII. Функции мультибайтных строк
Введение
Во многих языках символы могут выражаться одним байтом. Многобайтные коды
символов используются для выражения символов многих других языков.
mbstring разработано для работы с японскими символами. Однако многие функции
mbstring могут работать с иными кодировками, не только с японской.
Многобайтная кодировка символов представляет один символ несколькими последовательными байтами. Некоторые кодировки имеют shift(escape)-последовательности для начала/окончания строк многобайтных символов. Следовательно, многобайтная строка может быть разрушена при разделении и/или обсчёте, если не использовать метод надёжного кодирования многобайтных символов. Данный модуль предоставляет функции сохранения много байтных символов и другие вспомогательные функции, такие как функции конвертации.
Поскольку PHP в основе своей разработан для ISO-8859-1, некоторые многобайтные кодировки плохо работают в PHP. Следовательно, важно устанавливать mbstring.internal_encoding для кодировки, работающей с PHP.
Требования Кодировки Символов PHP4
побайтное кодирование
однобайтные символы находятся в диапазоне 00h-7fh, что совместимо с ASCII
многобайтное кодирование - вне диапазона 00h-7fh
Вот примеры внутренней кодировки символов, которые работают и НЕ работают с PHP.
LIV. Функции MCAL
MCAL это Modular Calendar Access Library.
Libmcal это библиотека C для доступа к календарям. Она написана как модульная, с подключаемыми драйверами. MCAL это календарный эквивалент IMAP-модуля для mailboxes/почтовых ящиков.
При поддержке mcal, календарный поток может быть открыт почти так же, как mailbox-поток с поддержкой IMAP. Календари могут быть локальными файлами, удалёнными ICAP-серверами или другими форматами, которые поддерживаются библиотекой mcal.
Календарные события могут быть направлены в пул, запрошены или сохранены. Имеется также поддержка календарных тригеров (предупреждений) и повторяющихся событий.
С помощью libmcal можно получать доступ к календарным серверам без необходимости использования локального программирования или специфической БД.
Для того чтобы эти функции работали, вы должны скомпилировать PHP с опцией --with-mcal. Это требует установленной библиотеки mcal. Скачайте последнюю версию с http://mcal.chek.com/ и скомпилируйте и установите её.
Следующие константы определены при использовании модуля MCAL. Для дней недели:
MCAL_SUNDAY
MCAL_MONDAY
MCAL_TUESDAY
MCAL_WEDNESDAY
MCAL_THURSDAY
MCAL_FRIDAY
MCAL_SATURDAY
Для повторений:
MCAL_RECUR_NONE
MCAL_RECUR_DAILY
MCAL_RECUR_WEEKLY
MCAL_RECUR_MONTHLY_MDAY
MCAL_RECUR_MONTHLY_WDAY
MCAL_RECUR_YEARLY
Для месяцев:
MCAL_JANUARY
MCAL_FEBRUARY
MCAL_MARCH
MCAL_APRIL
MCAL_MAY
MCAL_JUNE
MCAL_JULY
MCAL_AUGUST
MCAL_SEPTEMBER
MCAL_OCTOBER
MCAL_NOVEMBER
MCAL_DECEMBER
Большинство функций используют внутреннюю структуру событий, которая уникальна для каждого потока. Это избавляет от необходимости передавать большие объекты между функциями. Имеются удобные функции для настройки, инициализации и запрашивания значений структуры событий.
- Содержание
- mcal_append_event - сохраняет новое событие в MCAL-календаре
- mcal_close - закрывает поток MCAL
- mcal_create_calendar - создаёт новый MCAL-календарь
- mcal_date_compare - сравнивает две даты
- mcal_date_valid — возвращает TRUE, если данный год, месяц, день является верной датой
- mcal_day_of_week — возвращает день недели для данной даты
- mcal_day_of_year — возвращает день года для данной даты
- mcal_days_in_month — возвращает количество дней в данном месяце
- mcal_delete_calendar - удаляет MCAL-календарь
- mcal_delete_event - удаляет событие из MCAL-календаря
- mcal_event_add_attribute - добавляет атрибут и значение в структуру глобальных событий потока
- mcal_event_init - инициализирует структуру глобальных событий потока
- mcal_event_set_alarm - устанавливает напоминание/alarm структуры глобальных событий потока
- mcal_event_set_category - устанавливает категорию структуры глобальных событий потока
- mcal_event_set_class - устанавливает класс структуры глобальных событий потока
- mcal_event_set_description - устанавливает описание структуры глобальных событий потока
- mcal_event_set_end - устанавливает конечную дату и время структуры глобальных событий потока
- mcal_event_set_recur_daily - устанавливает повторение структуры глобальных событий потока
- mcal_event_set_recur_monthly_mday - устанавливает повторение структуры глобальных событий потока
- mcal_event_set_recur_monthly_wday - устанавливает повторение структуры глобальных событий потока
- mcal_event_set_recur_none - устанавливает повторение структуры глобальных событий потока
- mcal_event_set_recur_weekly - устанавливает повторение структуры глобальных событий потока
- mcal_event_set_recur_yearly - устанавливает повторение структуры глобальных событий потока
- mcal_event_set_start - устанавливает начальную дату и время структуры глобальных событий потока
- mcal_event_set_title - устанавливает заголовок/title структуры глобальных событий потока
- mcal_expunge - удаляет все события, помеченные как вычёркиваемые
- mcal_fetch_current_stream_event — возвращает объект, содержащий структуру событий текущего потока
- mcal_fetch_event - извлекает событие из календарного потока
- mcal_is_leap_year — является данный год високосным, или нет
- mcal_list_alarms - возвращает список событий, имеющих включённое уведомление для данной даты/времени
- mcal_list_events - возвращает список ID'ов для даты или диапазона дат
- mcal_next_recurrence — возвращает следующее повторение события
- mcal_open - открывает MCAL-соединение
- mcal_popen - открывает постоянное MCAL-соединение
- mcal_rename_calendar - переименовывает MCAL-календарь
- mcal_reopen - повторно открывает MCAL-соединение
- mcal_snooze - выключает уведомление о событии
- mcal_store_event - модифицирует существующее событие в MCAL-календаре
- mcal_time_valid — возвращает TRUE, если данный год, месяц, день является верным временем
- mcal_week_of_year — возвращает номер недели для данной даты