PHP Manual

PHP Manual

Mehdi Achour
Friedhelm Betz
Antony Dovgal
Nuno Lopes
Philip Olson
Georg Richter
Damien Seguy
Jakub Vrana

Edited by

Gabor Hojtsy

This file was generated: Thu Nov 17 04:04:31 2005
Go to http://www.php.net/docs.php to get the actual version.

Copyright © 1997 - 2005 the PHP Documentation Group


Руководство по PHP

Mehdi Achour
Friedhelm Betz
Antony Dovgal
Nuno Lopes
Philip Olson
Georg Richter
Damien Seguy
Jakub Vrana
И некоторые другие

Под редакцией

Gabor Hojtsy
Ivan Kovalenko
Jigkayev Kazbek
Kirill Barashkin
Alexey Asemov
Boris Bezrukov
Alexander Voytsekhovskyy

2005-11-17

Copyright © 1997-2005 Группа документирования PHP

Предисловие
Авторы и Участники
I. Приступая к работе
1. Введение
2. Краткое руководство
II. Установка и настройка
3. General Installation Considerations
4. Installation on Unix systems
5. Installation on Mac OS X
6. Installation on Windows systems
7. Installation of PECL extensions
8. Problems?
9. Runtime Configuration
III. Справочник языка
10. Основы синтаксиса
11. Типы
12. Переменные
13. Константы
14. Выражения
15. Операторы
16. Control Structures
17. Функции
18. Classes and Objects (PHP 4)
19. Классы и объекты (PHP 5)
20. Exceptions
21. Ссылки. Разъяснения
IV. Безопасность
22. Вступление
23. Общие рассуждения
24. Если PHP установлен как CGI
25. Если PHP установлен как модуль Apache
26. Безопасность файловой системы
27. Безопасность баз данных
28. Сообщения об ошибках
29. Использование глобальных переменных (Register_Globals)
30. Данные, введенные пользователем
31. Magic Quotes
32. Сокрытие PHP
33. Необходимость обновлений
V. Отличительные особенности
34. HTTP-Аутентификация в PHP
35. Cookies
36. Sessions
37. Работа с XForms
38. Загрузка файлов на сервер
39. Работа с удаленными файлами
40. Работа с соединениями
41. Постоянные соединения с базами данных
42. Защищенный режим
43. Использование PHP в командной строке
VI. Справочник функций
I. .NET Functions
II. Функции для работы с сервером Apache
III. Alternative PHP Cache
IV. Advanced PHP debugger
V. Функции для работы с массивами
VI. Aspell functions [deprecated]
VII. BCMath Arbitrary Precision Mathematics Functions
VIII. PHP bytecode Compiler
IX. Функции сжатия Bzip2
X. Calendar Functions
XI. CCVS API Functions [deprecated]
XII. Функции работы с Классами/Объектами
XIII. Classkit Functions
XIV. ClibPDF Functions
XV. COM and .Net (Windows)
XVI. Crack Functions
XVII. Функции определения типа символов
XVIII. Функции CURL, Client URL Library
XIX. Cybercash Payment Functions
XX. Credit Mutuel CyberMUT functions
XXI. Cyrus IMAP administration Functions
XXII. Функции для работы с датой и временем
XXIII. DB++ Functions
XXIV. Database (dbm-style) Abstraction Layer Functions
XXV. dBase Functions
XXVI. DBM Functions [deprecated]
XXVII. dbx Functions
XXVIII. Direct IO Functions
XXIX. Функции для работы с каталогами
XXX. DOM Functions
XXXI. DOM XML Functions
XXXII. Error Handling and Logging Functions
XXXIII. Exif Functions
XXXIV. Expect Functions
XXXV. File Alteration Monitor Functions
XXXVI. Forms Data Format Functions
XXXVII. filePro Functions
XXXVIII. Функции для работы с файловой системой
XXXIX. Firebird/InterBase Functions
XL. Firebird/Interbase Functions (PDO_FIREBIRD)
XLI. FriBiDi Functions
XLII. FrontBase Functions
XLIII. Функции для работы с FTP
XLIV. Управление функциями
XLV. Gettext
XLVI. GMP Functions
XLVII. gnupg Функции
XLVIII. Net_Gopher
XLIX. Функции протокола HTTP
L. Hyperwave Functions
LI. Hyperwave API Functions
LII. IBM DB2, Cloudscape and Apache Derby Functions
LIII. ICAP Functions [deprecated]
LIV. Функции iconv
LV. ID3 Functions
LVI. IIS Administration Functions
LVII. Image Functions
LVIII. IMAP, POP3 and NNTP Functions
LIX. Informix Functions
LX. Ingres II Functions
LXI. IRC Gateway Functions
LXII. PHP / Java Integration
LXIII. KADM5
LXIV. LDAP Functions
LXV. libxml Functions
LXVI. Lotus Notes Functions
LXVII. LZF Functions
LXVIII. Mail Functions
LXIX. mailparse Functions
LXX. Математические функции
LXXI. MaxDB PHP Extension
LXXII. MCAL Functions
LXXIII. Mcrypt Encryption Functions
LXXIV. MCVE (Monetra) Payment Functions
LXXV. Memcache Functions
LXXVI. Mhash Functions
LXXVII. Mimetype Functions
LXXVIII. Ming functions for Flash
LXXIX. Miscellaneous Functions
LXXX. mnoGoSearch Functions
LXXXI. Microsoft SQL Server Functions
LXXXII. Microsoft SQL Server and Sybase Functions (PDO_DBLIB)
LXXXIII. Mohawk Software Session Handler Functions
LXXXIV. mSQL Functions
LXXXV. Multibyte String Functions
LXXXVI. muscat Functions
LXXXVII. Функции СУБД MySQL
LXXXVIII. MySQL Functions (PDO_MYSQL)
LXXXIX. MySQL Improved Extension
XC. Ncurses Terminal Screen Control Functions
XCI. Network Functions
XCII. Newt Functions
XCIII. NSAPI-specific Functions
XCIV. Object Aggregation/Composition Functions
XCV. Object property and method call overloading
XCVI. Функции для работы с Oracle
XCVII. ODBC Functions (Unified)
XCVIII. ODBC and DB2 functions (PDO_ODBC)
XCIX. oggvorbis
C. OpenAL Audio Bindings
CI. OpenSSL Functions
CII. Oracle Functions [deprecated]
CIII. Oracle Functions (PDO_OCI)
CIV. Output Control Functions
CV. Ovrimos SQL Functions
CVI. Paradox File Access
CVII. Parsekit Functions
CVIII. Process Control Functions
CIX. Функции для работы с регулярными выражениями (Perl-совместимые)
CX. PDF functions
CXI. PDO Functions
CXII. PHP Options&Information
CXIII. POSIX Functions
CXIV. Regular Expression Functions (POSIX Extended)
CXV. PostgreSQL Functions
CXVI. PostgreSQL Functions (PDO_PGSQL)
CXVII. Printer Functions
CXVIII. Program Execution Functions
CXIX. PostScript document creation
CXX. Pspell Functions
CXXI. qtdom Functions
CXXII. Radius
CXXIII. Rar функции
CXXIV. GNU Readline
CXXV. GNU Recode Functions
CXXVI. RPM Header Reading Функции
CXXVII. runkit Functions
CXXVIII. Satellite CORBA client extension [deprecated]
CXXIX. SDO Functions
CXXX. SDO XML Data Access Service Functions
CXXXI. SDO Relational Data Access Service Functions
CXXXII. Semaphore, Shared Memory and IPC Functions
CXXXIII. SESAM Database Functions
CXXXIV. PostgreSQL Session Save Handler
CXXXV. Session Handling Functions
CXXXVI. Shared Memory Functions
CXXXVII. SimpleXML functions
CXXXVIII. SNMP Functions
CXXXIX. SOAP Functions
CXL. Socket Functions
CXLI. Standard PHP Library (SPL) Functions
CXLII. SQLite
CXLIII. SQLite Functions (PDO_SQLITE)
CXLIV. Secure Shell2 Functions
CXLV. Stream Functions
CXLVI. Функции обработки строк
CXLVII. Shockwave Flash Functions
CXLVIII. Sybase Functions
CXLIX. TCP Wrappers Functions
CL. Tidy Functions
CLI. Tokenizer Functions
CLII. Unicode Functions
CLIII. URL Functions
CLIV. Variable Handling Functions
CLV. Verisign Payflow Pro Functions
CLVI. vpopmail Functions
CLVII. W32api Functions
CLVIII. WDDX Functions
CLIX. win32service Functions
CLX. xattr Functions
CLXI. xdiff Functions
CLXII. XML Parser Functions
CLXIII. XML-RPC Functions
CLXIV. XMLReader functions
CLXV. XSL functions
CLXVI. XSLT Functions
CLXVII. YAZ Functions
CLXVIII. YP/NIS Functions
CLXIX. Zip File Functions (Read Only Access)
CLXX. Функции сжатия Zlib
VII. PHP and Zend Engine Internals
44. Streams API for PHP Extension Authors
45. PDO Driver How-To
46. Zend API: Hacking the Core of PHP
47. Extending PHP 3
VIII. ЧАВО: ЧАсто задаваемые Вопросы и Ответы на них
48. Общая Информация
49. Списки рассылки
50. Получение PHP
51. Вопросы по Базам Данных
52. Установка
53. Проблемы Сборки
54. Использование PHP
55. PHP и HTML
56. PHP и COM
57. PHP и другие языки
58. Переход из PHP 2 в PHP 3
59. Переход из PHP 3 в PHP 4
60. Переход из PHP 4 в PHP 5
61. Разные вопросы
IX. Приложения
A. История PHP и смежных проектов
B. Миграция с PHP 4 на PHP 5
C. Migrating from PHP 3 to PHP 4
D. Migrating from PHP/FI 2 to PHP 3
E. Отладка PHP
F. Configure options
G. Директивы php.ini
H. List of Supported Timezones
I. Extension Categorization
J. Список псевдонимов функций
K. List of Reserved Words
L. List of Resource Types
M. List of Supported Protocols/Wrappers
N. Список доступных фильтров
O. Список поддерживаемых транспортных протоколов
P. Таблица сравнения типов в PHP
Q. List of Parser Tokens
R. Об этом руководстве
S. Open Publication License
T. Список функций
U. Что отсутствует в этом руководстве
X. Руководство в формате HTML Help
62. About This Edition
63. Using PHP Manual CHM Edition
64. The Full Text Search
65. Specialities of this Edition
66. Integrating the PHP Manual
67. Skin development
68. CHM Edition Credits

След.
Предисловие


Предисловие

Содержание
Авторы и Участники

PHP, что означает "PHP: Препроцессор Гипертекста", является широко используемым языком сценариев общего назначения с открытым исходным кодом. PHP создавался специально для ведения Web-разработок и может использоваться непосредственно в HTML-коде. Синтаксис языка берет начало из C, Java и Perl и является легким для изучения. Преимущественным назначением PHP является предоставление web-разработчикам возможности быстрого создания динамически генерируемых web-страниц, однако, область применения PHP не ограничивается только этим.

Это руководство состоит, главным образом, из справочника функций, а также содержит справочник языка, комментарии к наиболее важным из отличительных особенностей PHP, и другие дополнительные сведения.

Вы можете получить это руководство в нескольких форматах по адресу http://www.php.net/download-docs.php. Более подробную информацию о том, как ведется работа над руководством, вы сможете получить, обратившись к приложению 'Об этом руководстве'. Если вам интересна история PHP, обратитесь к соответствующему приложению.

Авторы и Участники

Мы публикуем имена самых активных на данный момент участников разработки документации на первой странице, но есть еще множество людей, которые помогают нам в процессе разработки или оказали неоценимую помощь в прошлом. Также, есть огромное количество людей, помогающих нам с помощью системы пользовательских замечаний, которые постоянно включаются в основную документацию. Все списки ниже отсортированы в алфавитном порядке.

Авторы и Редакторы

Следующие участники внесли значительный вклад в наполнение документации в прошлом: Jouni Ahto, Alexander Aulbach, Daniel Beckham, Stig Bakken, Jesus M. Castagnetto, Ron Chmara, Sean Coates, John Coggeshall, Simone Cortesi, Markus Fischer, Wez Furlong, Sara Golemon, Rui Hirokawa, Brad House, Moriyoshi Koizumi, Rasmus Lerdorf, Andrew Lindeman, Stanislav Malyshev, Rafael Martinez, Yasuo Ohgaki, Derick Rethans, Sander Roobol, Egon Schmid, Thomas Schoefbeck, Sascha Schumann, Dan Scott, Lars Torben Wilson, Jim Winstead, Jeroen van Wolffelaar и Andrei Zmievski.

Следующие участники внесли значительный вклад в редактирование и корректирование документации в прошлом: Stig Bakken, Hartmut Holzgraefe и Egon Schmid.

Редакторы пользовательских замечаний

Текущие наиболее активные редакторы: Mehdi Achour, Friedhelm Betz, Vincent Gevers, Aidan Lister, Nuno Lopes и Tom Sommer.

Эти люди внесли свой вклад в управление пользовательскими замечаниями в прошлом: Daniel Beckham, Victor Boivie, Jesus M. Castagnetto, Nicolas Chaillan, Ron Chmara, James Cox, Sara Golemon, Zak Greant, Szabolcs Heilig, Oliver Hinckel, Hartmut Holzgraefe, Rasmus Lerdorf, Andrew Lindeman, Maxim Maletsky, James Moore, Sebastian Picklum, Derick Rethans, Sander Roobol, Damien Seguy, Jason Sheets, Jani Taskinen, Yasuo Ohgaki, Philip Olson, Lars Torben Wilson, Jim Winstead, Jared Wyles и Jeroen van Wolffelaar.

Пред. | Начало | След.
Руководство по PHP |  | Приступая к работе


Приступая к работе

Руководство по PHP
Пред. След.

I. Приступая к работе

Содержание
1. Введение
2. Краткое руководство

Пред. | Начало | След.
Предисловие |  | Введение


Введение

Руководство по PHP
Пред. След.

Глава 1. Введение

Содержание
Что такое PHP?
Возможности PHP

Что такое PHP?

PHP (рекурсивный акроним словосочетания "PHP: Hypertext Preprocessor") - это широко используемый язык программирования общего назначения с открытым исходным кодом. PHP сконструирован специально для ведения Web-разработок и может внедряться в HTML-код.

Простой ответ, но что он может означать? Вот пример:

Пример 1-1. Пример программирования на PHP

<html>
    <head>
        <title>Пример</title>
    </head>
    <body>

        <?php
        echo "Привет, я - скрипт PHP!";
        ?>

    </body>
</html>

Обратите внимание на отличие этого скрипта от скриптов, написанных на других языках, например, на Perl или C - вместо того, чтобы создавать программу, которая занимается формированием HTML-кода и содержит бесчисленное множество предназначенных для этого команд, вы создаете HTML-код с несколькими внедренными командами PHP (в приведенном случае, предназначенными для вывода текста). Код PHP отделяется специальными начальным и конечным тегами, которые позволяют процессору PHP определять начало и конец участка HTML-кода, содержащего PHP-скрипт.

Значительным отличием PHP от какого-либо кода, выполняющегося на стороне клиента, например, JavaScript, является то, что PHP-скрипты выполняются на сервере. Если бы у вас на сервере был размещен скрипт, подобный вышеприведенному, клиент получил бы только результат выполнения скрипта, причем он не смог бы выяснить, какой именно код выполняется. Вы даже можете сконфигурировать свой сервер таким образом, чтобы HTML-файлы обрабатывались процессором PHP, так что клиенты даже не смогут узнать, получают ли они обычный HTML-файл или результат выполнения скрипта.

PHP крайне прост для освоения, но вместе с тем способен удовлетворить запросы профессиональных программистов. После того, как вы впервые услышали о PHP, и открыли это руководство, в течение нескольких часов вы уже сможете создавать простые PHP-скрипты.

Хотя PHP, главным образом, предназначен для работы в среде web-серверов, область его применения не ограничивается только этим. Читайте дальше и не пропустите главу Возможности PHP либо, начните непосредственно с Вводного руководства, если вас интересует исключительно веб-программирование.

Пред. | Начало | След.
Приступая к работе | Уровень выше | Возможности PHP


Возможности PHP

PHP может все. Главным образом, область применения PHP сфокусирована на написание скриптов, работающих на стороне сервера; таким образом, PHP способен выполнять всё то, что выполняет любая другая программа CGI, например, обрабатывать данных форм, генерировать динамические страницы или отсылать и принимать cookies. Но PHP способен выполнять и множество других задач.

Существуют три основных области, где используется PHP.

  • Создание скриптов для выполнения на стороне сервера. PHP наиболее широко используется именно таким образом. Все, что вам понадобится, это парсер PHP (в виде программы CGI или серверного модуля), веб-сервер и броузер. Чтобы вы могли просматривать результаты выполнения PHP-скриптов в броузере, вам нужен работающий веб-сервер и установленный PHP. В случае, если вы просто экспериментируете, вы вполне можете использовать свой домашний компьютер вместо сервера. За более подробными сведениями обратитесь к главе Советы по установке.

  • Создание скриптов для выполнения в командной строке. Вы можете создать PHP-скрипт, способный запускаться вне зависимости от вебсервера и броузера. Все, что вам потребуется - парсер PHP. Такой способ использования PHP идеально подходит для скриптов, которые должны выполняться регулярно, например, с помощью cron (на платформах *nix или Linux) или с помощью планировщика задач (Task Scheduler) на платформах Windows. Эти скрипты также могут быть использованы в задачах простой обработки текстов. За дополнительной информацией обращайтесь к главе Использование PHP в среде командной строки.

  • Создание оконных приложений, выполняющихся на стороне клиента. Возможно, PHP является не самым лучшим языком для создания подобных приложений, но, если вы очень хорошо знаете PHP и хотели бы использовать некоторые его возможности в своих клиент-приложениях, вы можете использовать PHP-GTK для создания таких приложений. Подобным образом вы можете создавать и кросс-платформенные приложения. PHP-GTK является расширением PHP и не поставляется вместе с дистрибутивом PHP. Если вы заинтересованы, посетите сайт PHP-GTK.

PHP доступен для большинства операционных систем, включая Linux, многие модификации Unix (такие, как HP-UX, Solaris и OpenBSD), Microsoft Windows, Mac OS X, RISC OS, и многих других. (Совершенно точно, что существует версия PHP для OS/2. Неизвестно, правда, насколько соответствующая нынешним реалиям - Прим.перев.) Также в PHP включена поддержка большинства современных вебсерверов, таких, как Apache, Microsoft Internet Information Server, Personal Web Server, серверов Netscape и iPlanet, сервера Oreilly Website Pro, Caudium, Xitami, OmniHTTPd и многих других. Для большинства серверов PHP поставляется в качестве модуля, для других, поддерживающих стандарт CGI, PHP может функционировать в качестве процессора CGI.

Таким образом, выбирая PHP, вы получаете свободу выбора операционной системы и вебсервера. Кроме того, у вас появляется выбор между использованием процедурного или объектно-ориентированного программирования или же их сочетания. Несмотря на то, что PHP 4 (текущая стабильная версия) поддерживает не все особенности ООП, многие библиотеки кода и большие приложения (включая библиотеку PEAR) написаны только с использованием ООП. PHP 5 исправляет некоторые слабости, присущие реализации ООП в PHP 4 и предоставляет разработчику целосную объектную модель.

PHP способен не только выдавать HTML. Возможности PHP включают формирование изображений, файлов PDF и даже роликов Flash (с использованием libswf и Ming), создаваемых "на лету". PHP также способен выдавать любые текстовые данные, такие, как XHTML и другие XML-файлы. PHP способен осуществлять автоматическую генерацию таких файлов и сохранять их в файловой системе вашего сервера вместо того, чтобы отдавать клиенту, организуя, таким образом, кеш динамического содержания, расположенный на стороне сервера.

Одним из значительных преимуществ PHP является поддержка широкого круга баз данных. Создание скрипта, использующего базы данных, - невероятно просто. В настоящее время PHP поддерживает следующие базы данных:

Adabas D | InterBase | PostgreSQL
dBase | FrontBase | SQLite
Empress | mSQL | Solid
FilePro (только чтение) | Direct MS-SQL | Sybase
Hyperwave | MySQL | Velocis
IBM DB2 | ODBC | Unix dbm
Informix | Oracle (OCI7 и OCI8)
Ingres | Ovrimos

Также в PHP включена поддержка DBX для работы на абстрактном уровне, так что вы можете работать с любой базой данных, использующих DBX. Кроме того, PHP поддерживает ODBC (Open Database Connection standard), таким образом, вы можете работать с любой базой данных, поддерживающей этот всемирно признанный стандарт.

PHP также поддерживает "общение" с другими сервисами с использованием таких протоколов, как LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (на платформах Windows) и многих других. Кроме того, вы получаете возможность работать с сетевыми сокетами "напрямую". PHP поддерживает стандарт обмена сложными структурами данных WDDX. Обращая внимание на взаимодействие между различными языками, следует упомянуть о поддержке объектов Java и возможности их использования в качестве объектов PHP. Для доступа к удаленным объектам вы можете использовать расширение CORBA.

PHP включает средства обработки текстовой информации, начиная с регулярных выражений Perl или POSIX Extended и заканчивая парсером документов XML. Для парсинга XML в PHP 4 используются стандарты SAX и DOM. Для преобразования документов XML вы можете использовать расширение XSLT. В PHP 5 обработка XML-документов стандартизирована и происходит на базе библиотеки libxml2. Также добавлены два новые расширения для работы с XML: SimpleXML и XMLReader.

Используя PHP в области электронной коммерции, вы обратите внимание на функции осуществления платежей Cybercash, CyberMUT, VeriSign Payflow Pro и CCVS.

Последним по порядку, но не по значению, является поддержка многих других расширений, таких, как функции поисковой машины mnoGoSearch, функции IRC Gateway, функции для работы со сжатыми файлами (gzip, bz2), функции календарных вычислений, функции перевода...

Как вы видите, этой страницы не хватит для того, чтобы перечислить все, что может предложить вам PHP. Читайте следующую главу, Установка PHP и обратитесь к главе Справочник по функциям за более подробными сведениями о перечисленных выше расширениях.

Пред. | Начало | След.
Введение | Уровень выше | Краткое руководство


Краткое руководство

Руководство по PHP
Пред. След.

Глава 2. Краткое руководство

Содержание
Что потребуется?
Первая страница на PHP
Делаем что-нибудь полезное
Работа с формами
Использование старых программ с новыми версиями PHP
Что дальше?

В данном кратком руководстве на примерах объясняются основы PHP. Это руководство включает в себя только создание динамических Web-страниц с помощью PHP, однако реальная область применения PHP гораздо шире. В разделе "Что может PHP" приведена дополнительная информация.

Созданные с использованием PHP Web-страницы обрабатываются, как обычные HTML-страницы. Их можно создавать и изменять точно таким же образом, как и обычные страницы на HTML.

Что потребуется?

В данном руководстве мы предполагаем, что ваш сервер имеет поддержку PHP и что все файлы, заканчивающиеся на .php, обрабатываются PHP. В большинстве серверов это расширение используется для PHP по умолчанию, но все-таки не лишним будет уточнить это у вашего администратора сервера. Если ваш сервер поддерживает PHP, то у вас есть все, что требуется. Просто создавайте ваши файлы .php и размещайте их в вашем каталоге Web-сервера - они будут обрабатываться автоматически. Не нужно ничего компилировать, не нужно никаких дополнительных программ. Считайте файлы PHP обычными файлами HTML с набором новых "волшебных" тегов, которые позволяют вам делать все, что угодно.

Пред. | Начало | След.
Возможности PHP | Уровень выше | Первая страница на PHP


Первая страница на PHP

Создайте файл с именем hello.php в корневом каталоге ваших документов Web-сервера и запишите в него следующее:

Пример 2-1. Первый скрипт на PHP: hello.php

<html>
 <head>
  <title>Тестируем PHP</title>
 </head>
 <body>
 <?php echo "Привет!<p>"; ?>
 </body>
</html>

Эта программа выведет следующее:
<html>
 <head>
  <title>Тестируем PHP</title>
 </head>
 <body>
 Привет!<p>
 </body>
</html>

Заметим, что сходства со скриптами на CGI нет. Файл не обязан быть выполнимым или отмеченным любым другим образом. Это просто обычный файл HTML, в котором есть набор специальных тегов, делающих много интересного.

Эта программа чрезвычайно проста, и для создания настолько простой странички даже необязательно использовать PHP. Все что она делает - это выводит "Привет! с использованием функции PHP echo().

Если у вас этот пример не отображает ничего или выводит окно загрузки, или если вы видите весь этот файл в текстовом виде, то весьма вероятно, что ваш Web-сервер не имеет поддержки PHP. Попросите вашего администратора сервера включить такую поддержку. Предложите ему инструкцию по установке - раздел "Установка" данной документации. Если же вы хотите разрабатывать скрипты на PHP дома, то вам в раздел необходимые файлы. Дома можно разрабатывать скрипты с использованием любой операционной системы, но вам понадобится установить соответствующий Web-сервер.

Цель примера - показать формат специальных тегов PHP. В этом примере мы использовали <?php в качестве открывающего тега, затем шли команды PHP, завершающиеся закрывающим тегом ?>. Таким образом можно сколько угодно раз переходить к коду PHP в файле HTML.

Пара слов о текстовых редакторах: Существует множество текстовых редакторов и интегрированных сред разработки (IDE), в которых вы можете создавать и редактировать файлы PHP. Список некоторых редакторов содержится в разделе "Список редакторов PHP". Если вы хотите порекомендовать какой-либо редактор, посетите данную страницу и попросите добавить данный редактор в список.

Пара слов о текстовых процессорах: Текстовые процессоры (StarOffice Writer, Microsoft Word, Abiword и др.) в большинстве случаев не подходят для редактирования файлов PHP.

Если вы используете текстовый процессор для создания скриптов на PHP, вы должны быть уверены, что сохраняете файл, как ЧИСТО ТЕКСТОВЫЙ. В противном случае PHP не сможет обработать и выполнить вашу программу.

Пара слов о "Блокноте" Windows: При написании скриптов PHP с использованием встроенного "Блокнота" Windows необходимо сохранять файлы с расширением .php. "Блокнот" автоматически добавляет расширение .txt. Для обхода этой проблемы существует несколько методов.

Можно поместить название файла в кавычки (пример: "hello.php").

Кроме того, можно выбрать "Все файлы" вместо "Текстовые документы" из ниспадающего списка с типами файлов в окне сохранения. После этого можно вводить имя файла без кавычек.

Пред. | Начало | След.
Краткое руководство | Уровень выше | Делаем что-нибудь полезное


Делаем что-нибудь полезное

Давайте сделаем что-нибудь полезное. К примеру, определим, какой браузер использует тот, кто смотрит в данный момент нашу страницу. Для этого мы проверим строку с именем браузера, посылаемую нам в HTTP-запросе. Эта информация хранится в переменной. Переменные в PHP всегда предваряются знаком доллара. Интересующая нас в данный момент переменная называется $_SERVER["HTTP_USER_AGENT"].

Пару слов об автоматической глобализации переменных в PHP: $_SERVER - специальная зарезервированная переменная PHP, которая содержит всю информацию, полученную от Web-сервера. Она является автоглобализованной (или суперглобальной). Для более подробной информации смотрите раздел "Суперглобальные переменные". Эти специальные переменные появились в PHP, начиная с версии 4.1.0. До этого использовались массивы $HTTP_*_VARS, такие, как $HTTP_SERVER_VARS. Эти массивы, несмотря на то, что они уже устарели, до сих пор существуют (см. замечания по старым программам).

Для вывода данной переменной мы сделаем так:

Пример 2-2. Вывод значения переменной (элемента массива)

<?php echo $_SERVER["HTTP_USER_AGENT"]; ?>

Пример вывода данной программы:
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

В PHP есть огромное количество типов переменных. В предыдущем примере мы печатали элемент массива. Массивы в PHP являются очень мощным средством.

$_SERVER - просто переменная, которая предоставлена вам языком PHP. Список таких переменных можно посмотреть в разделе "Зарезервированные переменные". А можно получить их полный список с помощью такой программы:

Пример 2-3. Показываем все стандартные переменные с помощью функции phpinfo()

<?php phpinfo(); ?>

Если открыть данный файл в браузере, вы увидите страничку с информацией о PHP, а также список всех доступных вам переменных.

Внутрь тегов PHP можно помещать множество команд и создавать кусочки кода, делающие гораздо большее, чем просто вывод на экран. К примеру, если мы хотим сделать проверку на Internet Explorer, мы можем поступить так:

Пример 2-4. Пример использования управляющих структур и функций

<?php
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
    echo "Вы используете Internet Explorer<br />";
}
?>

Пример вывода данной программы:
You are using Internet Explorer<br />

Здесь мы показали несколько новых элементов. Во-первых, здесь есть команда if. Если вам знаком основной синтаксис языка C, то вы уже заметили что-то схожее. Если же вы не знаете C или подобного по синтаксису языка, то лучший вариант - взять какую-либо книжку по PHP и прочитать ее. Другой вариант - почитать раздел "Описание языка" данного руководства. Список книг по PHP можно найти здесь: http://www.php.net/books.php.

Во-вторых, здесь есть вызов функции strstr(). strstr() - встроенная в PHP функция, которая ищет одну строку в другой. В данном случае мы ищем строку "MSIE" в $_SERVER["HTTP_USER_AGENT"]. Если строка не найдена, эта функция возвращает FALSE, если найдена - TRUE. Если она вернет TRUE, то условие в if окажется истинным, и код в командных скобках ({ }) выполнится. В противном случае данный код не выполняется. Попробуйте создать аналогичные примеры с использованием команд if, else, и других функций, таких, как strtoupper() и strlen(). Также примеры содержатся во многих описаниях функций в данном руководстве.

Продемонстрируем, как можно входить в режим кода PHP и выходить из него прямо внутри кода:

Пример 2-5. Смешение режимов HTML и PHP

<?php
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
?>
<h3>strstr вернул true</h3>
<center><b>Вы используете Internet Explorer</b></center>
<?php
} else {
?>
<h3>strstr вернул false</h3>
<center><b>Вы не используете Internet Explorer</b></center>
<?php
}
?>

Пример вывода данной программы:
<h3>strstr вернул true</h3>
<center><b>Вы используете Internet Explorer</b></center>

Вместо использования команды PHP echo для вывода, мы вышли из режима кода и послали содержимое HTML. Важный момент здесь - то, что логическая структура кода PHP при этом не теряется. Только одна HTML-часть будет послана клиенту в зависимости от результата функции strstr() (другими словами, в зависимости от того, найдена строка "MSIE" или нет).

Пред. | Начало | След.
Первая страница на PHP | Уровень выше | Работа с формами


Работа с формами

Одно из главнейших достоинств PHP - то, как он работает с формами HTML. Здесь основным является то, что каждый элемент формы автоматически станет доступен вашим программам на PHP. Для подробной информации об использовании форм в PHP читайте раздел " Переменные из внешних источников". Вот пример формы HTML:

Пример 2-6. Простейшая форма HTML

<form action="action.php" method="POST">
 Ваше имя: <input type="text" name="name" />
 Ваш возраст: <input type="text" name="age" />
 <input type="submit">
</form>

В этой форме нет ничего особенного. Это обычная форма HTML без каких-либо специальных тегов. Когда пользователь заполнит форму и нажмет кнопку отправки, будет вызвана страница action.php. В этом файле может быть что-то вроде:

Пример 2-7. Выводим данные нашей формы

Здравствуйте, <?php echo $_POST["name"]; ?>.
Вам <?php echo $_POST["age"]; ?> лет.

Пример вывода данной программы:
Здравствуйте, Сергей.
Вам 30 лет.

Принцип работы данного кода прост и понятен. Переменные The $_POST["name"] и $_POST["age"] автоматически установлены для вас средствами PHP. Ранее мы использовали переменную $_SERVER, здесь же мы точно также используем суперглобальную переменную $_POST, которая содержит все POST-данные. Заметим, что метод отправки нашей формы - POST. Если бы мы использовали метод GET, то информация нашей формы была бы в суперглобальной переменной $_GET. Также можно использовать переменную $_REQUEST, если источник данных не имеет значения. Эта переменная содержит смесь данных GET, POST, COOKIE и FILE. Также советуем взглянуть на описание функции import_request_variables().

Пред. | Начало | След.
Делаем что-нибудь полезное | Уровень выше | Использование старых программ с новыми версиями PHP


Использование старых программ с новыми версиями PHP

Сейчас PHP является популярным языком сценариев (скриптов). Становится все больше и больше распространяемых кусочков кода, которые вы можете использовать в своих скриптах. В большинстве случаев разработчики PHP старались сохранить совместимость с предыдущими версиями так, что код, написанный для более старой версии будет идеально работать и с новыми версиями языка без каких-либо изменений. Однако случается так, что изменения все-таки необходимы.

Есть два важных изменения, которые влияют на старые программы:

  • Объявление массивов $HTTP_*_VARS устаревшими. Эти массивы требовали глобализации в функциях и процедурах. Новые суперглобальные массивы были введены, начиная с PHP 4.1.0. Это: $_GET, $_POST, $_COOKIE, $_SERVER, $_ENV, $_REQUEST, и $_SESSION. Более старые массивы $HTTP_*_VARS, такие, как $HTTP_POST_VARS, существуют со времен PHP 3 и, вероятно, будут еще долго существовать для сохранения совместимости.

  • Внешние переменные больше не глобализуются по умолчанию. Другими словами, директива register_globals в php.ini по умолчанию отключена ("off"), начиная с PHP 4.2.0. Рекомендуемый метод доступа к таким переменным - суперглобальные массивы, описанные выше. Более старые программы, книги и руководства могут считать, что данная директива включена ("on"). К примеру, переменная $id может поступать из строки URL http://www.example.com/foo.php?id=42. Когда указанная директива выключена, $id доступна лишь как $_GET['id'].

Для дополнительной информации касательно изменений, связанных с переменными, смотрите раздел "Предопределенные переменные" и ссылки этого раздела.

Пред. | Начало | След.
Работа с формами | Уровень выше | Что дальше?


Что дальше?

То, что вы узнали, поможет вам понять большую часть руководства и разобраться в большинстве приведенных примеров программ. Другие примеры находятся на различных сайтах, ссылки на которые можно найти на php.net: http://www.php.net/links.php.

Пред. | Начало | След.
Использование старых программ с новыми версиями PHP | Уровень выше | Установка и настройка


Справочник языка

Руководство по PHP
Пред. След.

III. Справочник языка

Содержание
10. Основы синтаксиса
11. Типы
12. Переменные
13. Константы
14. Выражения
15. Операторы
16. Control Structures
17. Функции
18. Classes and Objects (PHP 4)
19. Классы и объекты (PHP 5)
20. Exceptions
21. Ссылки. Разъяснения

Пред. | Начало | След.
How to change configuration settings |  | Основы синтаксиса


Основы синтаксиса

Руководство по PHP
Пред. След.

Глава 10. Основы синтаксиса

Содержание
Вставка в HTML
Разделение инструкций
Комментарии

Вставка в HTML

Когда PHP обрабатывает файл, он просто передаёт его текст, пока не встретит один из специальных тегов, который сообщает ему о необходимости начать интерпретацию текста как кода PHP. Затем он выполняет весь найденный код до закрывающего тега, говорящего интерпретатору, что далее снова идет просто текст. Этот механизм позволяет вам внедрять PHP-код в HTML - все за пределами тегов PHP остается неизменным, тогда как внутри - интерпретируется как код.

Существует четыре набора тегов, которые могут быть использованы для обозначения PHP-кода. Из них только два (<?php. . .?> и <script language="php">. . .</script>) всегда доступны; другие могут быть включены или выключены в конфигурационном файле php.ini. Хотя короткие теги и теги в стиле ASP могут быть удобны, они не так переносимы, как длинные версии. Кроме того, если вы намереваетесь вставлять PHP-код в XML или XHTML, чтобы соответствовать XML, вам следует использовать форму <?php. . .?>.

Теги, поддерживаемые PHP:

Пример 10-1. Способы вставки в HTML

1.  <?php echo("если вы хотите работать с документами XHTML или XML, делайте так\n"); ?>

2.  <? echo ("это простейшая инструкция обработки SGML\n"); ?>
    <?= выражение ?> Это синоним для "<? echo выражение ?>"

3.  <script language="php">
        echo ("некоторые редакторы (например, FrontPage) не
              любят инструкции обработки");
    </script>

4.  <% echo ("Вы можете по выбору использовать теги в стиле ASP"); %>
    <%= $variable; # Это синоним для "<% echo . . ." %>

Первый способ, <?php. . .?>, наиболее предпочтительный, так как он позволяет использовать PHP в коде, соответствующем правилам XML, таком как XHTML.

Второй способ не всегда доступен. Короткие теги доступны только когда они включены. Это можно сделать, используя функцию short_tags() (только в PHP 3), включив установку short_open_tag в конфигурационном файле PHP, либо скомпилировав PHP с параметром --enable-short-tags для configure. Даже если оно включено по умолчанию в php.ini-dist, использование коротких тегов не рекомендуется.

Четвертый способ доступен только если теги в стиле ASP были включены, используя конфигурационную установку asp_tags.

Замечание: Поддержка тегов в стиле ASP была добавлена в версии 3.0.4.

Замечание: Следует избегать использования коротких тегов при разработке приложений или библиотек, предназначенных для распространения или размещения на PHP-серверах, не находящихся под вашим контролем, так как короткие теги могут не поддерживаться на целевом сервере. Для создания переносимого, совместимого кода, не используйте короткие теги.

Закрывающий тег блока PHP-кода включает сразу следующий за ним перевод строки, если он имеется. Кроме того, закрывающий тег автоматически подразумевает точку с запятой; вам не нужно заканчивать последнюю строку кода в блоке точкой с запятой. Закрывающий тег PHP-блока в конце файла не является обязательным.

PHP позволяет использовать такие структуры:

Пример 10-2. Профессиональная вставка

<?php
if ($expression) {
    ?>
    <strong>Это истина.</strong>
    <?php
} else {
    ?>
    <strong>Это ложь.</strong>
    <?php
}
?>
Этот код работает так, как ожидается, потому что когда PHP встречает закрывающие теги ?>, он просто выводит все, что он находит до следующего открывающего тега. Приведенный здесь пример конечно придуманный, но для вывода больших блоков текста выход из режима интерпретации PHP обычно более эффективен, чем отправка всего текста через echo(), print() или что-либо подобное.

Пред. | Начало | След.
Справочник языка | Уровень выше | Разделение инструкций


Разделение инструкций

Инструкции разделяются также как и в C или Perl - каждое выражение заканчивается точкой с запятой.

Закрывающий тег (?>) также подразумевает конец инструкции, поэтому два следующих фрагмента кода эквиваленты:

<?php
    echo "Это тест";
?>

<?php echo "Это тест" ?>

Пред. | Начало | След.
Основы синтаксиса | Уровень выше | Комментарии


Комментарии

PHP поддерживает комметарии в стиле 'C', 'C++' и оболочки Unix. Например:

<?php
    echo "Это тест"; // Это однострочный комментарий в стиле c++
    /* Это многострочный комментарий
       еще одна строка комментария */
    echo "Это еще один тест";
    echo "Последний тест"; # Это комментарий в стиле оболочки Unix
?>

Однострочные комментарии идут только до конца строки или текущего блока PHP-кода, в зависимости от того, что идет перед ними.

<h1>Это <?php # echo "простой";?> пример.</h1>
<p>Заголовок вверху выведет 'Это пример'.

Будьте внимательны, следите за отсутствием вложенных 'C'-комментариев, они могут появиться во время комментирования больших блоков.

<?php
 /*
    echo "Это тест"; /* Этот комментарий вызовет проблему */
 */
?>

Однострочные комментарии идут только до конца строки или текущего блока PHP-кода, в зависимости от того, что идет перед ними. Это означает, что HTML-код после // ?> БУДЕТ напечатан: ?> выводит из режима PHP и возвращает в режим HTML, но // не позволяет этого сделать. Если включена конфигурационная директива asp_tags, то же самое происходит и при // %>.

Пред. | Начало | След.
Разделение инструкций | Уровень выше | Типы


Типы

Руководство по PHP
Пред. След.

Глава 11. Типы

Содержание
Введение
Булев
Целые
Числа с плавающей точкой
Строки
Массивы
Объекты
Ресурс
NULL
Псевдо-типы, используемые в этой документации
Манипуляции с типами

Введение

PHP поддерживает восемь простых типов.

Четыре скалярных типа:

  • boolean

  • integer

  • float (число с плавающей точкой или 'double')

  • string

Два смешанных типа:

  • array

  • object

И, наконец, два специальных типа:

  • resource

  • NULL

Для удобства понимания в этом руководстве используется также несколько псевдо-типов:

  • mixed

  • number

  • callback

Вы также можете найти несколько упоминаний типа двойной точности. Рассматривайте его как число с плавающей точкой, два имени существуют только по историческим причинам.

Как правило, программист не устанавливает тип переменной; предпочтительнее, чтобы это делал PHP во время выполнения программы в зависимости от контекста, в котором используется переменная.

Замечание: Если вы желаете проверить тип и значение определенного выражения, используйте var_dump().

Замечание: Если же вам для отладки необходимо просто удобочитаемое представление типа, используйте gettype(). Чтобы проверить на определенный тип, не используйте gettype(), применяйте для этого is_type функции. Вот несколько примеров:

<?php
$bool = TRUE;   // логический
$str  = "foo";  // строковый
$int  = 12;     // целочисленный

echo gettype($bool); // выводит "boolean"
echo gettype($str);  // выводит "string"

// Если это целое, увеличить на четыре
if (is_int($int)) {
    $int += 4;
}

// Если $bool - это строка, вывести ее
// (ничего не выводит)
if (is_string($bool)) {
    echo "Строка: $bool";
}
?>

Если вы хотите принудительно изменить тип переменной, вы можете либо привести переменную, либо использовать функцию settype().

Обратите внимание, что переменная, в зависимости от ее типа в данный момент, в определенных ситуациях может иметь разные значения. Более подробную информацию смотрите в разделе Манипуляции с типами. Также вам, возможно, будет интересно посмотреть таблицы сравнения типов, поскольку в них приведены примеры связанных сравнений различных типов.

Пред. | Начало | След.
Комментарии | Уровень выше | Булев


Булев

Это простейший тип. Он выражает истинность значения - это может быть либо TRUE, либо FALSE.

Замечание: Булев тип был введен в PHP 4.

Синтаксис

Чтобы определить булев тип, используйте ключевое слово TRUE или FALSE. Оба регистро-независимы.

<?php
$foo = True; // присвоить $foo значение TRUE
?>

Обычно вы используете некий оператор, который возвращает логическое выражение, а затем предает его управляющей конструкции.

<?php
// == это оператор, который проверяет
// эквивалентность и возвращает булево значение
if ($action == "показать_версию") {
    echo "Версия 1.23";
}

// это не обязательно...
if ($show_separators == TRUE) {
    echo "<hr>\n";
}

// ...потому что вы можете просто написать
if ($show_separators) {
    echo "<hr>\n";
}
?>

Преобразование в булев тип

Для несомненного преобразования значения в булев тип используйте приведение типа (bool) или (boolean). Однако в большинстве случаев вам нет необходимости использовать приведение типа, поскольку значение будет автоматически преобразовано, если оператор, функция или управляющая конструкция требует булев аргумент.

Смотрите также Манипуляции с типами.

При преобразовании в логический тип, следующие значения рассматриваются как FALSE:

  • Сам булев FALSE

  • целое 0 (ноль)

  • число с плавающей точкой 0.0 (ноль)

  • пустая строка и строка "0"

  • пустой массив

  • объект без атрибутов (только в PHP 4)

  • специальный тип NULL (включая неустановленные переменные)

Все остальные значения рассматриваются как TRUE (включая любой ресурс).

Внимание

-1 считается TRUE, как и любое ненулевое (отрицательное или положительное) число!

<?php
var_dump((bool) "");        // bool(false)
var_dump((bool) 1);         // bool(true)
var_dump((bool) -2);        // bool(true)
var_dump((bool) "foo");     // bool(true)
var_dump((bool) 2.3e5);     // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array());   // bool(false)
var_dump((bool) "false");   // bool(true)
?>

Пред. | Начало | След.
Типы | Уровень выше | Целые


Целые

Целое это число из множества Z = {..., -2, -1, 0, 1, 2, ...}.

Смотрите также: Целые произвольной длины / GMP, Числа с плавающей точкой и Произвольная точность / BCMath

Синтаксис

Целые могут быть указаны в десятичной, шестнадцатеричной или восьмеричной системе счисления, по желанию с предшествующим знаком (- или +).

Если вы используете восьмеричную систему счисления, вы должны предварить число 0 (нулем), для использования шестнадцатеричной системы нужно поставить перед числом 0x.

Пример 11-1. Целые

<?php
$a = 1234; // десятичное число
$a = -123; // отрицательное число
$a = 0123; // восьмеричное число (эквивалентно 83 в десятичной системе)
$a = 0x1A; // шестнадцатеричное число (эквивалентно 26 в десятичной системе)
?>
Формально возможная структура целых такова:

десятичные        : [1-9][0-9]*
                  | 0

шестнадцатеричные : 0[xX][0-9a-fA-F]+

восьмеричные      : 0[0-7]+

целые             : [+-]?десятичные
                  | [+-]?шестнадцатеричные
                  | [+-]?восьмеричные

Размер целого зависит от платформы, хотя, как правило, максимальное значение около двух миллиардов (это 32-битное знаковое). PHP не поддерживает беззнаковые целые.

Превышение размера целого

Если вы определите число, превышающее пределы целого типа, оно будет интерпретировано как число с плавающей точкой. Также, если вы используете оператор, результатом работы которого будет число, превышающее пределы целого, вместо него будет возвращено число с плавающей точкой.

<?php
$large_number =  2147483647;
var_dump($large_number);
// вывод: int(2147483647)

$large_number =  2147483648;
var_dump($large_number);
// вывод: float(2147483648)

// это справедливо и для шестнадцатеричных целых:
var_dump( 0x80000000 );
// вывод: float(2147483648)

$million = 1000000;
$large_number =  50000 * $million;
var_dump($large_number);
// вывод: float(50000000000)
?>

Внимание

К сожалению, в PHP была ошибка, так что это не всегда верно работает, когда используются отрицательные числа. Например: когда вы умножаете -50000 * $million, результатом будет -429496728. Однако, если оба операнда положительны, проблем не возникает.

Эта ошибка устранена в PHP 4.1.0.

в PHP не существует оператора деления целых. Результатом 1/2 будет число с плавающей точкой 0.5. Вы можете привести значение к целому, что всегда округляет его в меньшую сторону, либо использовать функцию round().

<?php
var_dump(25/7);         // float(3.5714285714286)
var_dump((int) (25/7)); // int(3)
var_dump(round(25/7));  // float(4)
?>

Преобразование в целое

Для несомненного преобразования значения в целое используйте приведение типа (int) или (integer). Однако в большинстве случаев вам нет необходимости использовать приведение типа, поскольку значение будет автоматически преобразовано, если оператор, функция или управляющая конструкция требует целый аргумент. Вы также можете преобразовать значение в целое при помощи функции intval().

Смотрите также Манипуляции с типами.

Из булева типа

FALSE преобразуется в 0 (ноль), а TRUE - в 1 (единицу).

Из чисел с плавающей точкой

При преобразовании из числа с плавающей точкой в целое, число будет округлено в сторону нуля.

Если число с плавающей точкой превышает пределы целого (как правило, это +/- 2.15e+9 = 2^31), результат будет неопределенным, так как целое не имеет достаточной точности, чтобы вернуть верный результат. В этом случае не будет выведено ни предупреждения, ни даже замечания!

Внимание

Никогда не приводите неизвестную дробь к целому, так как это может иногда дать неожиданные результаты.

<?php
echo (int) ( (0.1+0.7) * 10 ); // выводит 7!
?>

Смотрите более подробно: предупреждение о точности чисел с плавающей точкой.

Из строк

Смотрите Преобразование строк в числа

Из других типов

Предостережение

Для других типов поведение преобразования в целое не определено. В настоящее время поведение такое же, как если бы значение сперва было преобразовано в булев тип. Однако не полагайтесь на это поведение, так как он может измениться без предупреждения.

Пред. | Начало | След.
Булев | Уровень выше | Числа с плавающей точкой


Числа с плавающей точкой

Числа с плавающей точкой (они же числа двойной точности или действительные числа) могут быть определены при помощи любого из следующих синтаксисов:

<?php
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
?>

Формально:

LNUM          [0-9]+
DNUM          ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*)
EXPONENT_DNUM ( ({LNUM} | {DNUM}) [eE][+-]? {LNUM})

Размер целого зависит от платформы, хотя максимум, как правило, ~1.8e308 с точностью около 14 десятичных цифр (это 64-битный IEEE-формат).

Точность числа с плавающей точкой

Довольно часто простые десятичные дроби вроде 0.1 или 0.7 не могут быть преобразованы в свои внутренние двоичные аналоги без небольшой потери точности. Это может привести к неожиданным результатам: например, floor((0.1+0.7)*10) скорее всего возвратит 7 вместо ожидаемой 8 как результат внутреннего представления числа, являющегося в действительности чем-то вроде 7.9999999999....

Это связано с невозможностью точно выразить некоторые дроби в десятичной системе счисления конечным числом цифр. Например, 1/3 в десятичной форме принимает вид 0.3333333. . ..

Так что никогда не доверяйте точности последних цифр в результатах с числами с плавающей точкой и никогда не проверяйте их на равенство. Если вам действительно необходима высокая точность, вам следует использовать математические функции произвольной точности или gmp-функции.

Преобразование в число с плавающей точкой

О том, когда и как строки преобразуются в числа с плавающей точкой читайте в разделе Преобразование строк в числа. Для значений других типов преобразование будет таким же, как если бы значение сначала было преобразовано в целое, а затем в число с плавающей точкой. Дополнительную информацию смотрите в разделе Преобразование в целое.

Пред. | Начало | След.
Целые | Уровень выше | Строки


Строки

Строка - это набор символов. В PHP символ это то же самое, что и байт, это значит, что возможно ровно 256 различных символов. Это также означает, что PHP не имеет встроенной поддержки Unicode'а. Некоторую поддержку Unicode'а обеспечивают функции utf8_encode() и utf8_decode().

Замечание: Нет никаких проблем, если строка очень велика. Практически не существует ограничений на размер строк, налагаемых PHP, так что нет абсолютно никаких причин беспокоиться об их длине.

Синтаксис

Строка может быть определена тремя различными способами.

  • одинарными кавычками

  • двойными кавычками

  • heredoc-синтаксисом

Одинарные кавычки

Простейший способ определить строку - это заключить ее в одинарные кавычки (символ ').

Чтобы использовать одинарную кавычку внутри строки, как и во многих других языках, ее необходимо предварить символом обратной косой черты (\), т. е. экранировать ее. Если обратная косая черта должна идти перед одинарной кавычкой либо быть в конце строки, вам необходимо продублировать ее. Обратите внимание, что если вы попытаетесь экранировать любой другой символ, обратная косая черта также будет напечатана! Так что, как правило, нет необходимости экранировать саму обратную косую черту.

Замечание: В PHP 3 в данном случае будет выдано сообщение уровня E_NOTICE.

Замечание: В отличие от двух других синтаксисов, переменные и экранирующие последовательности для специальных символов, встречающиеся в строках, заключенных в одинарные кавычки, не обрабатываются.

<?php
echo 'это простая строка';

echo 'Также вы можете вставлять в строки
символ новой строки таким образом,
поскольку это нормально';

// Выведет: Однажды Арнольд сказал: "I'll be back"
echo 'Однажды Арнольд сказал: "I\'ll be back"';

// Выведет: Вы удалили C:\*.*?
echo 'Вы удалили C:\\*.*?';

// Выведет: Вы удалили C:\*.*?
echo 'Вы удалили C:\*.*?';

// Выведет: Это не вставит: \n новую строку
echo 'Это не вставит: \n новую строку';

// Выведет: Переменные $expand также $either не подставляются
echo 'Переменные $expand также $either не подставляются';
?>

Двойные кавычки

Если строка заключена в двойные кавычки ("), PHP распознает большее количество управляющих последовательностей для специальных символов:

Таблица 11-1. Управляющие последовательности

последовательность | значение
\n | новая строка (LF или 0x0A (10) в ASCII)
\r | возврат каретки (CR или 0x0D (13) в ASCII)
\t | горизонтальная табуляция (HT или 0x09 (9) в ASCII)
\\ | обратная косая черта
\$ | знак доллара
\" | двойная кавычка
\[0-7]{1,3} | последовательность символов, соответствующая регулярному выражению, символ в восьмеричной системе счисления
\x[0-9A-Fa-f]{1,2} | последовательность символов, соответствующая регулярному выражению, символ в шестнадцатеричной системе счисления

Повторяем, если вы захотите мнемнонизировать любой другой символ, обратная косая черта также будет напечатана!

Но самым важным свойством строк в двойных кавычках является обработка переменных. Смотрите более подробно: обработка строк.

Heredoc

Другой способ определения строк - это использование heredoc-синтаксиса ("<<<"). После <<< необходимо указать идентификатор, затем идет строка, а потом этот же идентификатор, закрывающий вставку.

Закрывающий идентификатор должен начинаться в первом столбце строки. Кроме того, идентификатор должен соответствовать тем же правилам именования, что и все остальные метки в PHP: содержать только буквенно-цифровые символы и знак подчеркивания, и должен начинаться с нецифры или знака подчеркивания.

Внимание

Очень важно отметить, что строка с закрывающим идентификатором не содержит других символов, за исключением, возможно, точки с запятой (;). Это означает, что идентификатор не должен вводиться с отступом и что не может быть никаких пробелов или знаков табуляции до или после точки с запятой. Важно также понимать, что первым символом перед закрывающим идентификатором должен быть символ новой строки, определенный в вашей операционной системе. Например, на Macintosh это \r.

Если это правило нарушено и закрывающий идентификатор не является "чистым", считается, что закрывающий идентификатор отсутствует и PHP продолжит его поиск дальше. Если в этом случае верный закрывающий идентификатор так и не будет найден, то это вызовет ошибку в обработке с номером строки в конце скрипта.

Heredoc-текст ведет себя так же, как и строка в двойных кавычках, при этом их не имея. Это означает, что вам нет необходимости экранировать кавычки в heredoc, но вы по-прежнему можете использовать вышеперечисленные управляющие последовательности. Переменные обрабатываются, но с применением сложных переменных внутри heredoc нужно быть также внимательным, как и при работе со строками.

Пример 11-2. Пример определения heredoc-строки

<?php
$str = <<<EOD
Пример строки,
охватывающей несколько строчек,
с использованием heredoc-синтаксиса.
EOD;

/* Более сложный пример с переменными. */
class foo
{
    var $foo;
    var $bar;

    function foo()
    {
        $this->foo = 'Foo';
        $this->bar = array('Bar1', 'Bar2', 'Bar3');
    }
}

$foo = new foo();
$name = 'МоеИмя';

echo <<<EOT
Меня зовут "$name". Я печатаю $foo->foo.
Теперь я вывожу {$foo->bar[1]}.
Это должно вывести заглавную букву 'A': \x41
EOT;
?>

Замечание: Поддержка heredoc была добавлена в PHP 4.

Обработка переменных

Если строка определяется в двойных кавычках, либо при помощи heredoc, переменные внутри нее обрабатываются.

Существует два типа синтаксиса: простой и сложный. Простой синтаксис более легок и удобен. Он дает возможность обработки переменной, значения массива (array) или свойства объекта (object).

Сложный синтаксис был введен в PHP 4 и может быть распознан по фигурным скобкам, окружающих выражение.

Простой синтаксис

Если интерпретатор встречает знак доллара ($), он захватывает так много символов, сколько возможно, чтобы сформировать правильное имя переменной. Если вы хотите точно определить конец имени, заключайте имя переменной в фигурные скобки.

<?php
$beer = 'Heineken';
echo "$beer's taste is great"; // работает, "'" это неверный символ для имени переменной
echo "He drank some $beers";   // не работает, 's' это верный символ для имени переменной
echo "He drank some ${beer}s"; // работает
echo "He drank some {$beer}s"; // работает
?>

Точно также могут быть обработаны элемент массива (array) или свойство объекта (object). В индексах массива закрывающая квадратная скобка (]) обозначает конец определения индекса. Для свойств объекта применяются те же правила, что и для простых переменных, хотя с ними невозможен трюк, как с переменными.

<?php
// Эти примеры специфически об использовании массивов внутри
// строк. Вне строк всегда заключайте строковые ключи вашего
// массива в кавычки и не используйте вне строк {скобки}.

// Давайте покажем все ошибки
error_reporting(E_ALL);

$fruits = array('strawberry' => 'red', 'banana' => 'yellow');

// Работает, но заметьте, что вне кавычек строки это работает по-другому
echo "A banana is $fruits[banana].";

//Работает
echo "A banana is {$fruits['banana']}.";

// Работает, но PHP, как описано ниже, сначала ищет
// константу banana.
echo "A banana is {$fruits[banana]}.";

// Не работает, используйте фигурные скобки. Это вызовет ошибку обработки.
echo "A banana is $fruits['banana'].";

// Работает
echo "A banana is " . $fruits['banana'] . ".";

// Работает
echo "This square is $square->width meters broad.";

// Не работает. Для решения см. сложный синтаксис.
echo "This square is $square->width00 centimeters broad.";
?>

Для чего-либо более сложного вы должны использовать сложный синтаксис.

Сложный (фигурный) синтаксис

Он называется сложным не потому, что труден в понимании, а потому что позволяет использовать сложные выражения.

Фактически, вы можете включить любое значение, находящееся в пространстве имени в строке с этим синтаксисом. Вы просто записываете выражение таким же образом, как и вне строки, а затем заключаете его в { и }. Поскольку вы не можете экранировать '{', этот синтаксис будет распознаваться только когда $ следует непосредственно за {. (Используйте "{\$" или "\{$" чтобы отобразить "{$"). Несколько поясняющих примеров:

<?php
// Давайте покажем все ошибки
error_reporting(E_ALL);

$great = 'fantastic';

// Не работает, выведет: This is { fantastic}
echo "This is { $great}";

// Работает, выведет: This is fantastic
echo "This is {$great}";
echo "This is ${great}";

// Работает
echo "Этот квадрат шириной {$square->width}00 сантиметров.";

// Работает
echo "Это работает: {$arr[4][3]}";

// Это неверно по той же причине, что и $foo[bar] неверно вне
// строки. Другими словами, это по-прежнему будет работать,
// но поскольку PHP сначала ищет константу foo, это вызовет
// ошибку уровня E_NOTICE (неопределенная константа).
echo "Это неправильно: {$arr[foo][3]}";

// Работает. При использовании многомерных массивов, внутри
// строк всегда используйте фигурные скобки
echo "Это работает: {$arr['foo'][3]}";

// Работает.
echo "Это работает: " . $arr['foo'][3];

echo "Вы даже можете записать {$obj->values[3]->name}";

echo "Это значение переменной по имени $name: {${$name}}";
?>

Доступ к символу в строке и его изменение

Символы в строках можно использовать и модифицировать, определив их смещение относительно начала строки, начиная с нуля, в фигурных скобках после строки.

Замечание: Для обеспечения обратной совместимости, вы по-прежнему имеете возможность использовать в тех же целях скобки массива. Однако, начиная с PHP 4, этот синтаксис нежелателен к использованию.

Пример 11-3. Несколько примеров строк

<?php
// Получение первого символа строки
$str = 'Это тест.';
$first = $str{0};

// Получение третьего символа строки
$third = $str{2};

// Получение последнего символа строки
$str = 'Это все еще тест.';
$last = $str{strlen($str)-1};

// Изменение последнего символа строки
$str = 'Посмотри на море';
$str{strlen($str)-1} = 'я';

?>

Полезные функции и операторы

Строки могут быть объединены при помощи оператора '.' (точка). Обратите внимание, оператор сложения '+' здесь не работает. Дополнительную информацию смотрите в разделе Строковые операторы.

Для модификации строк существует множество полезных функций.

Основные функции описаны в разделе строковых функций, функции регулярных выражений для расширенного поиска и замены (в двух частях: Perl и POSIX расширенный).

Также существуют функции для URL-строк, и функции для шифрования/дешифрования строк (mcrypt и mhash).

Наконец, если вы все еще не нашли, что искали, смотрите также функции для символьного типа.

Преобразование в строку

Вы можете преобразовать значение в строку, используя приведение (string), либо функцию strval(). В выражениях, где необходима строка, преобразование происходит автоматически. Это происходит, когда вы используете функции echo() или print(), либо когда вы сравниваете значение переменной со строкой. Прочтение разделов руководства Типы и Манипуляции с типами сделает следующее более понятным. Смотрите также settype().

Булево (boolean) значение TRUE преобразуется в строку "1", а значение FALSE представляется как "" (пустая строка). Этим способом вы можете преобразовывать значения в обе стороны - из булева типа в строковый и наоборот.

Целое (integer) или число с плавающей точкой (float) преобразуется в строку, представленную числом, состоящим из его цифр (включая показатель степени для чисел с плавающей точкой).

Массивы всегда преобразуются в строку "Array", так что вы не можете отобразить содержимое массива (array), используя echo() или print(), чтобы узнать, что он содержит. Чтобы просмотреть один элемент, вам нужно сделать что-то вроде echo $arr['foo']. Смотрите ниже советы о том, как отобразить/просмотреть все содержимое.

Объекты всегда преобразуются в строку "Object". Если вы хотите вывести значение переменной-члена объекта (object) с целью отладки, прочтите следующие абзацы. Если вы хотите получить имя класса требуемого объекта, используйте get_class().

Ресурсы всегда преобразуются в строки со структурой "Resource id #1", где 1 - это уникальный номер ресурса (resource), присвоенный ему PHP во время выполнения. Если вы хотите получить тип ресурса, используйте get_resource_type().

NULL всегда преобразуется в пустую строку.

Как вы могли видеть выше, вывод массивов, объектов или ресурсов не предоставляет вам никакой полезной информации о самих значениях. Более подходящий способ вывода значений для отладки - использовать функции print_r() и var_dump().

Вы также можете преобразовать значения PHP в строки для постоянного хранения. Этот метод называется сериализацией и может быть выполнен при помощи функции serialize(). Кроме того, если в вашей установке PHP есть поддержка WDDX, вы можете сериализовать значения PHP в структуры XML.

Преобразование строк в числа

Если строка распознается как числовое значение, результирующее значение и тип определяется так как показано далее.

Строка будет распознана как float, если она содержит любой из символов '.', 'e', или 'E'. Иначе она будет определена как целое.

Значение определяется по начальной части строки. Если строка начинается с верного числового значения, будет использовано это значение. Иначе значением будет 0 (ноль). Верное числовое значение - это одна или более цифр (могущих содержать десятичную точку), по желанию предваренных знаком, с последующим необязательным показателем степени. Показатель степени - это 'e' или 'E' с последующими одной или более цифрами.

<?php
$foo = 1 + "10.5";                // $foo это float (11.5)
$foo = 1 + "-1.3e3";              // $foo это float (-1299)
$foo = 1 + "bob-1.3e3";           // $foo это integer (1)
$foo = 1 + "bob3";                // $foo это integer (1)
$foo = 1 + "10 Small Pigs";       // $foo это integer (11)
$foo = 4 + "10.2 Little Piggies"; // $foo это float (14.2)
$foo = "10.0 pigs " + 1;          // $foo это float (11)
$foo = "10.0 pigs " + 1.0;        // $foo это float (11)
?>

Более подробную информацию об этом преобразовании смотрите в разделе о strtod(3) документации Unix.

Если вы хотите протестировать любой из примеров этого раздела, вы можете скопировать и вставить его и следующую строку, чтобы увидеть, что происходит:

<?php
echo "\$foo==$foo; тип: " . gettype ($foo) . "<br />\n";
?>

Не ожидайте получить код символа, преобразовав его в целое (как вы могли бы сделать, например, в C). Для преобразования символов в их коды и обратно используйте функции ord() и chr().

Пред. | Начало | След.
Числа с плавающей точкой | Уровень выше | Массивы


Массивы

На самом деле массив в PHP - это упорядоченное отображение, которое устанавливает соответствие между значением и ключем. Этот тип оптимизирован в нескольких направлениях, поэтому вы можете использовать его как собственно массив, список (вектор), хэш-таблицу (являющуюся реализацией карты), словарь, коллекцию, стэк, очередь или, возможно, как что-то еще. Поскольку вы можете иметь в качестве значения другой массив PHP, вы можете также легко эмулировать деревья.

Объяснение этих структур данных выходит за рамки данного справочного руководства, но вы найдете как минимум один пример каждой из них. За дополнительной информацией вы можете обратиться к соответствующей литературе по этой обширной теме.

Синтаксис

Определение при помощи array()

Массив может быть создан языковой конструкцией array(). В качестве параметров она принимает определенное количество разделенных запятыми пар key => value (ключ => значение).

array( [key =>] value
     , ...
     )
// key может быть integer или string
// value может быть любым значением

<?php
$arr = array("foo" => "bar", 12 => true);

echo $arr["foo"]; // bar
echo $arr[12];    // 1
?>

key может быть либо integer, либо string. Если ключ - это стандартное представление integer, он так и будет интерпретироваться (т.е. "8" будет восприниматься как 8, тогда как "08" будет интерпретироваться как "08"). В PHP нет разницы между индексными и ассоциативными массивами; существует только один тип массива, который может содержать и числовые, и строковые индексы.

Значение может быть любого имеющегося в PHP типа.

<?php
$arr = array("somearray" => array(6 => 5, 13 => 9, "a" => 42));

echo $arr["somearray"][6];    // 5
echo $arr["somearray"][13];   // 9
echo $arr["somearray"]["a"];  // 42
?>

Если вы не указываете ключ для приведенного значения, то берется максимальный числовой индекс и новый ключ будет равен этому максимуму + 1. Если вы укажите ключ, которому уже присвоено значение, оно будет перезаписано.

<?php
// Этот массив эквивалентен ...
array(5 => 43, 32, 56, "b" => 12);

// ...этому массиву
array(5 => 43, 6 => 32, 7 => 56, "b" => 12);
?>

Внимание

Начиная с PHP 4.3.0, вышеописанное поведение генерации индекса изменено. Теперь, если вы будете использовать массив, в котором максимальным в настоящий момент является отрицательный ключ, то следующий созданный ключ будет нулевым (0). Раньше новым индексом становился самый большой существующий ключ + 1, так же как и у положительных индексов.

Используя в качестве ключа TRUE вы получите ключ 1 типа integer. Используя в качестве ключа FALSE вы получите ключ 0 типа integer. Используя в качестве ключа NULL, вы получите пустую строку. Использование в качестве ключа пустой строки создаст (или перезапишет) ключ с пустой строкой и его значение; это не то же самое, что использование пустых квадратных скобок.

Вы не можете использовать в качестве ключей массивы или объекты. Это вызовет предупреждение: Illegal offset type ('Недопустимый тип смещения').

Создание/модификация с помощью синтаксиса квадратных скобок

Также вы можете изменять существующий массив, явно устанавливая значения в нем.

Это выполняется присвоением значений массиву при указании в скобках ключа. Кроме того, вы можете опустить ключ, в этом случае добавьте к имени переменной пустую пару скобок ("[]").
$arr[key] = value;
$arr[] = value;
// key может быть integer или string
// value может быть любым значением
Если массив $arr еще не существует, он будет создан. Таким образом, это еще один способ определить массив. Для изменения определенного значения просто присвойте элементу с его ключом новое значение. Если вы хотите удалить пару ключ/значение, вам нужно использовать функцию unset().

<?php
$arr = array(5 => 1, 12 => 2);

$arr[] = 56;    // В этом месте скрипта это
                // эквивалентно $arr[13] = 56;

$arr["x"] = 42; // Это добавляет к массиву новый
                // элемент с ключом "x"

unset($arr[5]); // Это удаляет элемент из массива

unset($arr);    // Это удаляет массив полностью
?>

Замечание: Как уже говорилось выше, если вы не укажите в скобках ключа, то будет взят максимальный из существующих целочисленных индексов, и новым ключом будет это максимальное значение + 1. Если целочисленных индексов еще нет, то ключом будет 0 (ноль). Если вы укажите ключ, которому уже присвоено значение, оно будет перезаписано.

Внимание

Начиная с PHP 4.3.0, вышеописанное поведение генерации индекса изменено. Теперь, если вы будете использовать массив, в котором максимальным в настоящий момент является отрицательный ключ, то следующий созданный ключ будет нулевым (0). Раньше новым индексом становился самый большой существующий ключ + 1, так же как и у положительных индексов.

Обратите внимание, что максимальный числовой ключ, используемый для этого не обязательно должен существовать в массиве в настоящий момент. Он просто должен был существовать с момента последнего переиндексирования массива. Это иллюстрирует следующий пример:

<?php
// Создаем простой массив.
$array = array(1, 2, 3, 4, 5);
print_r($array);

// Теперь удаляем каждый элемент, но сам массив оставляем нетронутым:
foreach ($array as $i => $value) {
    unset($array[$i]);
}
print_r($array);

// Создаем элемент (обратите внимание, что новым ключом будет 5,
// а не 0, как вы возможно ожидали).
$array[] = 6;
print_r($array);

// Переиндексация:
$array = array_values($array);
$array[] = 7;
print_r($array);
?>

Вышеприведенный пример выведет следующее:
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
Array
(
)
Array
(
    [5] => 6
)
Array
(
    [0] => 6
    [1] => 7
)

Полезные функции

Для работы с массивами существует достаточное количество полезных функций. Смотрите раздел функции для работы с массивами.

Замечание: Функция unset() позволяет удалять ключи массива. Обратите внимание, что массив НЕ будет переиндексирован. Если вы использовали только "обычные числовые индексы" (увеличивающиеся на единицу, начиная с нуля), вы можете переиндексировать массив используя array_values().

<?php
$a = array(1 => 'один', 2 => 'два', 3 => 'три');
unset($a[2]);
/* даст массив, представленный так:
   $a = array(1 => 'один', 3 => 'три');
   а НЕ так:
   $a = array(1 => 'один', 2 =>'три');
*/

$b = array_values($a);
// Теперь $b это array(0 => 'один', 1 =>'три')
?>

Управляющая конструкция foreach существует специально для массивов. Она предоставляет возможность легко пройтись по массиву.

Массив делает и не делает

Почему $foo[bar] это неверно?

Вы всегда должны заключать индекс ассоциативного массива в кавычки. К примеру, пишите $foo['bar'], а не $foo[bar]. Но почему $foo[bar] это неверно? Возможно, вы встречали в старых скриптах следующий синтаксис:

<?php
$foo[bar] = 'враг';
echo $foo[bar];
// и т. д.
?>

Это неверно, хотя и работает. Тогда почему же это неверно? Причина в том, что этот код содержит неопределенную константу (bar), а не строку ('bar' - обратите внимание на кавычки), и PHP в будущем может определить константу, которая к несчастью для вашего кода будет иметь то же самое имя. Это работает, потому что PHP автоматически преобразует голую строку (не заключенную в кавычки строку, которая не соответствует ни одному из известных символов) в строку, которая содержит голую строку. Например, если константа с именем bar не определена, то PHP заменит bar на строку 'bar' и использует ее.

Замечание: Это не означает, что нужно всегда заключать ключ в кавычки. Нет необходимости заключать в кавычки константы или переменные, поскольку это помешает PHP обрабатывать их.

<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('html_errors', false);
// Простой массив:
$array = array(1, 2);
$count = count($array);
for ($i = 0; $i < $count; $i++) {
    echo "\nПроверяем $i: \n";
    echo "Плохо: " . $array['$i'] . "\n";
    echo "Хорошо: " . $array[$i] . "\n";
    echo "Плохо: {$array['$i']}\n";
    echo "Хорошо: {$array[$i]}\n";
}
?>

Замечание: Вышеприведенный код выведет следующее:
Проверяем 0:
Notice: Undefined index:  $i in /path/to/script.html on line 9
Плохо:
Хорошо: 1
Notice: Undefined index:  $i in /path/to/script.html on line 11
Плохо:
Хорошо: 1

Проверяем 1:
Notice: Undefined index:  $i in /path/to/script.html on line 9
Плохо:
Хорошо: 2
Notice: Undefined index:  $i in /path/to/script.html on line 11
Плохо:
Хорошо: 2

Дополнительные примеры, демонстрирующие этот факт:

<?php
// Давайте покажем все ошибки
error_reporting(E_ALL);

$arr = array('fruit' => 'apple', 'veggie' => 'carrot');

// Верно
print $arr['fruit'];  // apple
print $arr['veggie']; // carrot

// Неверно. Это работает, но из-за неопределенной константы с
// именем fruit также вызывает ошибку PHP уровня E_NOTICE
//
// Notice: Use of undefined constant fruit - assumed 'fruit' in...
print $arr[fruit];    // apple

// Давайте определим константу, чтобы продемонстрировать, что
// происходит. Мы присвоим константе с именем fruit значение 'veggie'.
define('fruit', 'veggie');

// Теперь обратите внимание на разницу
print $arr['fruit'];  // apple
print $arr[fruit];    // carrot

// Внутри строки это нормально. Внутри строк константы не
// рассматриваются, так что ошибки E_NOTICE здесь не произойдет
print "Hello $arr[fruit]";      // Hello apple

// С одним исключением: фигурные скобки вокруг массивов внутри
// строк позволяют константам находится там
print "Hello {$arr[fruit]}";    // Hello carrot
print "Hello {$arr['fruit']}";  // Hello apple

// Это не будет работать и вызовет ошибку обработки, такую как:
// Parse error: parse error, expecting T_STRING' or T_VARIABLE' or T_NUM_STRING'
// Это, конечно, также приложимо и к использованию в строках автоглобальных переменных
print "Hello $arr['fruit']";
print "Hello $_GET['foo']";

// Еще одна возможность - конкатенация
print "Hello " . $arr['fruit']; // Hello apple
?>

Когда вы переведете error_reporting() в режим отображения ошибок уровня E_NOTICE (такой как E_ALL), вы увидите эти ошибки. По умолчанию error_reporting установлена их не отображать.

Как указано в разделе синтаксис, внутри квадратных скобок ('[' и ']') должно быть выражение. Это означает, что вы можете писать подобно этому:

<?php
echo $arr[somefunc($bar)];
?>

Это пример использования возвращаемого функцией значения в качестве индекса массива. PHP известны также и константы, как вы, возможно, видели упоминание E_* раньше.

<?php
$error_descriptions[E_ERROR]   = "Произошла фатальная ошибка";
$error_descriptions[E_WARNING] = "PHP сообщает предупреждение";
$error_descriptions[E_NOTICE]  = "Это лишь неофициальное замечание";
?>

Обратите внимание, что E_ERROR - это такой же верный идентификатор, как и bar в первом примере. Но последний пример по сути эквивалентен такой записи:

<?php
$error_descriptions[1] = "Произошла фатальная ошибка";
$error_descriptions[2] = "PHP сообщает предупреждение";
$error_descriptions[8] = "Это лишь неофициальное замечание";
?>

поскольку E_ERROR соответствует 1 и т. д.

Как мы уже объяснили в вышеприведенных примерах, $foo[bar] по-прежнему работает, но это неверно. Это работает, поскольку в соответствии со своим синтаксисом bar ожидается как константа. Однако, в данном случае константы с именем bar не существует. В таком случае PHP предполагает, что, написав bar, вы имели ввиду строку "bar", но забыли указать кавычки.

Так что же в этом плохого?

Когда-нибудь в будущем команда разработчиков PHP возможно пожелает добавить еще одну константу или ключевое слово, либо вы можете ввести в ваше приложение еще одну константу и тогда у вас могут возникнуть проблемы. Например, вы уже не можете использовать таким образом слова empty и default, поскольку они являются зарезервированными ключевыми словами.

Замечание: Повторим, внутри строки (string), заключенной в двойные кавычки правильным является не окружать индексы массива кавычками, поэтому "$foo[bar]" является верным. Более подробно почему - смотрите вышеприведенные примеры, а также раздел обработка переменных в строках.

Преобразование в массив

Для любого из типов: integer, float, string, boolean и resource, если вы преобразуете значение в массив, вы получите массив с одним элементом (с индексом 0), являющимся скалярным значением, с которого вы начали.

Если вы преобразуете в массив объект (object), вы получите в качестве элементов массива свойства (переменные-члены) этого объекта. Ключами будут имена переменных-членов.

Если вы преобразуете в массив значение NULL, вы получите пустой массив.

Сравнение

Массивы можно сравнивать при помощи функции array_diff() и Операторов массивов.

Примеры

Тип массив в PHP является очень гибким, поэтому мы приведем здесь несколько примеров, чтобы продемонстрировать вам все возможности массивов.

<?php
// это
$a = array( 'color' => 'red',
            'taste' => 'sweet',
            'shape' => 'round',
            'name'  => 'apple',
                       4        // ключом будет 0
          );

// полностью соответствует
$a['color'] = 'red';
$a['taste'] = 'sweet';
$a['shape'] = 'round';
$a['name']  = 'apple';
$a[]        = 4;        // ключом будет 0

$b[] = 'a';
$b[] = 'b';
$b[] = 'c';
// создаст массив array(0 => 'a' , 1 => 'b' , 2 => 'c'),
// или просто array('a', 'b', 'c')
?>

Пример 11-4. Использование array()

<?php
// Массив как карта (свойств)
$map = array( 'version'    => 4,
              'OS'         => 'Linux',
              'lang'       => 'english',
              'short_tags' => true
            );

// исключительно числовые ключи
$array = array( 7,
                8,
                0,
                156,
                -10
              );
// это то же самое, что и array(0 => 7, 1 => 8, ...)

$switching = array(         10, // ключ = 0
                    5    =>  6,
                    3    =>  7,
                    'a'  =>  4,
                            11, // ключ = 6 (максимальным числовым индексом был 5)
                    '8'  =>  2, // ключ = 8 (число!)
                    '02' => 77, // ключ = '02'
                    0    => 12  // значение 10 будет перезаписано на 12
                  );

// пустой массив
$empty = array();
?>

Пример 11-5. Коллекция

<?php
$colors = array('красный', 'синий', 'зеленый', 'желтый');

foreach ($colors as $color) {
    echo "Вам нравится $color?\n";
}
?>

Результат работы приведенного скрипта будет следующий:

Вам нравится красный?
Вам нравится синий?
Вам нравится зеленый?
Вам нравится желтый?

Обратите внимание, что в настоящее время невозможно изменять значения массива в таком цикле напрямую. Однако можно сделать так:

Пример 11-6. Коллекция

<?php
foreach ($colors as $key => $color) {
    // не будет работать:
    //$color = strtoupper($color);

    // работает:
    $colors[$key] = strtoupper($color);
}
print_r($colors);

?>

Результат работы приведенного скрипта будет следующий:

Array
(
    [0] => КРАСНЫЙ
    [1] => СИНИЙ
    [2] => ЗЕЛЕНЫЙ
    [3] => ЖЕЛТЫЙ
)

Следующий пример создает начинающийся с единицы массив.

Пример 11-7. Индекс, начинающийся с единицы

<?php
$firstquarter  = array(1 => 'Январь', 'Февраль', 'Март');
print_r($firstquarter);

?>

Результат работы приведенного скрипта будет следующий:

Array
(
    [1] => 'Январь'
    [2] => 'Февраль'
    [3] => 'Март'
)

Пример 11-8. Заполнение массива

<?php
// заполняет массив всеми элементами директории
$handle = opendir('.');
while (false !== ($file = readdir($handle))) {
    $files[] = $file;
}
closedir($handle);
?>

Массивы упорядочены. Вы можете изменять порядок элементов, используя различные функции сортировки. Для дополнительной информации смотрите раздел функции для работы с массивами. Вы можете подсчитать количество элементов в массиве, используя функцию count().

Пример 11-9. Сортировка массива

<?php
sort($files);
print_r($files);
?>

Поскольку значение массива может быть чем угодно, им также может быть другой массив. Таким образом вы можете создавать рекурсивные и многомерные массивы.

Пример 11-10. Рекурсивные и многомерные массивы

<?php
$fruits = array ( "фрукты" => array ( "a" => "апельсин",
                                      "b" => "банан",
                                      "c" => "яблоко"
                                    ),
                  "числа"  => array ( 1,
                                      2,
                                      3,
                                      4,
                                      5,
                                      6
                                    ),
                  "дырки"  => array (      "первая",
                                      5 => "вторая",
                                           "третья"
                                    )
                );

// Несколько примеров доступа к значениям предыдущего массива
echo $fruits["дырки"][5];    // напечатает "вторая"
echo $fruits["фрукты"]["a"]; // напечатает "апельсин"
unset($fruits["дырки"][0]);  // удалит "первая"

// Создаст новый многомерный массив
$juices["яблоко"]["зеленое"] = "хорошее";
?>

Обратите внимание, что при присваивании массива всегда происходит копирование значения. Чтобы копировать массив по ссылке, вам нужно использовать оператор ссылки.

<?php
$arr1 = array(2, 3);
$arr2 = $arr1;
$arr2[] = 4; // $arr2 изменился,
             // $arr1 по прежнему array(2,3)

$arr3 = &$arr1;
$arr3[] = 4; // теперь $arr1 и $arr3 эквивалентны
?>

Пред. | Начало | След.
Строки | Уровень выше | Объекты


Объекты

Инициализация объекта

Для инициализации объекта используется выражение new, создающее в переменной экземпляр объекта.

<?php
class foo
{
    function do_foo()
    {
        echo "Doing foo.";
    }
}

$bar = new foo;
$bar->do_foo();
?>

Полное рассмотрение производится в разделе Классы и Объекты.

Преобразование в объект

Если объект преобразуется в объект, он не изменяется. Если же в объект преобразуется значение любого иного типа, создается новый экземпляр встроенного класса stdClass. Если значение было пустым, новый экземпляр также будет пустым. При любом другом значении оно будет содержатся в переменной-члене scalar.

<?php
$obj = (object) 'ciao';
echo $obj->scalar;  // выведет 'ciao'
?>

Пред. | Начало | След.
Массивы | Уровень выше | Ресурс


Ресурс

Ресурс - это специальная переменная, содержащая ссылку на внешний ресурс. Ресурсы создаются и используются специальными функциями. Полный перечень этих функций и соответствующих типов ресурсов смотрите в приложении.

Замечание: Тип ресурс был введен в PHP 4

Преобразование в ресурс

Поскольку тип ресурс содержит специальные указатели на открытые файлы, соединения с базой данных, область изображения и тому подобное, вы не можете преобразовать какое-либо значение в ресурс.

Освобождение ресурсов

В связи с системой подсчета ссылок, введенной в движке Zend PHP 4 автоматически определяется, что ресурс больше никуда не ссылается (как в Java). Когда это происходит, все ресурсы, которые использовались для данного ресурса, освобождаются сборщиком мусора. По этой причине маловероятно, что когда-либо будет необходимо освобождать память вручную, используя какую-нибудь free_result функцию.

Замечание: Постоянные ссылки базы данных являются особыми, они не уничтожаются сборщиком мусора. Смотрите также раздел о постоянных соединениях.

Пред. | Начало | След.
Объекты | Уровень выше | NULL


NULL

Специальное значение NULL говорит о том, что эта переменная не имеет значения. NULL - это единственно возможное значение типа NULL.

Замечание: Пустой тип был введен в PHP 4

Переменная считается NULL если

  • ей была присвоена константа NULL.

  • ей еще не было присвоено какое-либо значение.

  • она была удалена с помощью unset().

Синтаксис

Существует только одно значение типа NULL - регистро-независимое ключевое слово NULL.

<?php
$var = NULL;
?>

Смотрите также is_null() и unset().

Пред. | Начало | След.
Ресурс | Уровень выше | Псевдо-типы, используемые в этой документации


Псевдо-типы, используемые в этой документации

mixed

mixed говорит о том, что параметр может принимать множество (но не обязательно все) типов.

gettype(), например, принимает все типы PHP, тогда как str_replace() принимает строки и массивы.

number

number говорит о том, что параметр может быть либо integer, либо float.

callback

Некоторые функции, такие как call_user_func() или usort() принимают в качестве параметра определенные пользователем callback-функции. Callback-функции могут быть не только простыми функциями, но также методами объектов, включая статические методы классов.

PHP-функция передается просто как строка ее имени. Вы можете передать
любую встроенную или определенную пользователем функцию за
исключением
array(),
echo(),
empty(),
eval(),
exit(),
isset(),
list(),
print() и
unset().

Метод созданного объекта передается как массив, содержащий объект в элементе с индексом 0 и имя метода в элементе с индексом 1.

Методы статических классов также могут быть переданы без создания экземпляра объекта передачей имени класса вместо имени объекта в элементе с индексом 0.

Пример 11-11. Примеры callback-функций

<?php

// простой пример callback
function my_callback_function() {
    echo 'hello world!';
}
call_user_func('my_callback_function');

// примеры callback-метода
class MyClass {
    function myCallbackMethod() {
        echo 'Hello World!';
    }
}

// вызов метода статического класса без создания объекта
call_user_func(array('MyClass', 'myCallbackMethod'));

// вызов метода объекта
$obj = new MyClass();
call_user_func(array(&$obj, 'myCallbackMethod'));
?>

Пред. | Начало | След.
NULL | Уровень выше | Манипуляции с типами


Манипуляции с типами

PHP не требует (и не поддерживает) явного определения типа при объявлении переменной; тип переменной определяется по контексту, в котором она используется. То есть, если вы присвоите строковое значение переменной $var, $var станет строкой. Если вы затем присвоите $var целочисленное значение, она станет целым числом.

Примером автоматического преобразования типа является оператор сложения '+'. Если любой из операндов является числом с плавающей точкой, то все операнды интерпретируются как числа с плавающей точкой, результатом будет также число с плавающей точкой. В противном случае операнды будут интерпретироваться как целые числа и результат также будет целочисленным. Обратите внимание, что это НЕ меняет типы самих операндов; меняется только то, как они вычисляются.

<?php
$foo = "0";  // $foo это строка (ASCII 48)
$foo += 2;   // $foo теперь целое число (2)
$foo = $foo + 1.3;  // $foo теперь число с плавающей точкой (3.3)
$foo = 5 + "10 Little Piggies"; // $foo это целое число (15)
$foo = 5 + "10 Small Pigs";     // $foo это целое число (15)
?>

Если последние два примера вам непонятны, смотрите Преобразование строк в числа.

Если вы хотите, чтобы переменная принудительно вычислялась как определенный тип, смотрите раздел приведение типов. Если вы хотите изменить тип переменной, смотрите settype().

Если вы хотите протестировать любой из примеров, приведенных в данном разделе, вы можете использовать функцию var_dump().

Замечание: Поведение автоматического преобразования в массив в настоящий момент не определено.

<?php
$a = "1";     // $a это строка
$a[0] = "f";  // А как же смещение строки? Что произойдет?
?>

Поскольку PHP (по историческим причинам) поддерживает индексирование в строках с использованием такого же синтаксиса, как и при индексировании массива, вышеприведенный пример приводит к проблеме: следует ли $a стать массивом, первым элементом которого будет "f" или "f" должна стать первым символом строки $a?

Текущая версия PHP воспринимает второе присваивание как определение смещения строки, поэтому $a станет "f", результат же этого автоматического преобразования следует, однако, рассматривать как неопределенный. В PHP 4 для доступа к символам строки был введен новый синтаксис фигурных скобок, используйте этот синтаксис вместо вышеприведенного:

<?php
$a    = "abc"; // $a это строка
$a{1} = "f";   // $a теперь содержит "afc"
?>

Для дополнительной информации смотрите раздел Доступ к символу в строке.

Приведение типов

Приведение типов в PHP работает так же, как и в C: имя требуемого типа записывается в круглых скобках перед приводимой переменной.

<?php
$foo = 10;   // $foo это целое число
$bar = (boolean) $foo;   // $bar это булев тип
?>

Допускаются следующие приведения типов:

  • (int), (integer) - приведение к целому числу

  • (bool), (boolean) - приведение к булеву типу

  • (float), (double), (real) - приведение к числу с плавающей точкой (float)

  • (string) - приведение к строке

  • (array) - приведение к массиву

  • (object) - приведение к объекту

Обратите внимание, что внутри скобок допускаются пробелы и символы табуляции, поэтому следующее равносильно по своему действию:

<?php
$foo = (int) $bar;
$foo = ( int ) $bar;
?>

Замечание: Вместо приведения переменной к строке, вы можете заключить ее в двойные кавычки.

<?php
$foo = 10;            // $foo это целое число
$str = "$foo";        // $str это строка
$fst = (string) $foo; // $fst это также строка

// Это напечатает "они одинаковы"
if ($fst === $str) {
    echo "они одинаковы";
}
?>

Возможно, вам не совсем ясно, что происходит при приведении между типами. Для дополнительной информации смотрите разделы:

  • Преобразование в булев тип

  • Преобразование в целое число

  • Преобразование в число с плавающей точкой

  • Преобразование в строку

  • Преобразование в массив

  • Преобразование в объект

  • Преобразование в ресурс

  • Таблицы сравнения типов

Пред. | Начало | След.
Псевдо-типы, используемые в этой документации | Уровень выше | Переменные


Переменные

Руководство по PHP
Пред. След.

Глава 12. Переменные

Содержание
Основы
Предопределенные переменные
Область видимости переменной
Переменные переменные
Переменные вне PHP

Основы

Переменные в PHP представлены знаком доллара с последующим именем переменной. Имя переменной чувствительно к регистру.

Имена переменных соответствуют тем же правилам, что и остальные наименования в PHP. Правильное имя переменной должно начинаться с буквы или символа подчеркивания с последующими в любом количестве буквами, цифрами или символами подчеркивания Это можно отобразить регулярным выражением: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'

Замечание: Для наших целей буквы здесь - это a-z, A-Z, и ASCII-символы со 127 по 255 (0x7f-0xff).

<?php
$var = "Bob";
$Var = "Joe";
echo "$var, $Var";      // выведет "Bob, Joe"

$4site = 'not yet';     // неверно; начинается с цифры
$_4site = 'not yet';    // верно; начинается с символа подчеркивания
$tдyte = 'mansikka';    // верно; 'д' это (Дополнительный) ASCII 228.
?>

В PHP 3 переменные всегда присваивались по значению. То есть, когда вы присваиваете выражение переменной, все значение оригинального выражения копируется в эту переменную. Это означает, к примеру, что после присвоения одной переменной значения другой, изменение одной из них не влияет на значение другой. Дополнительную информацию об этом способе присвоения смотрите в разделе Выражения.

PHP 4 предлагает иной способ присвоения значений переменным: присвоение по ссылке. Это означает, что новая переменная просто ссылается (иначе говоря, "становится псевдонимом" или "указывает") на оригинальную переменную. Изменения в одной переменной отражаются на оригинале, и наоборот. Это также означает, что копирования не происходит; таким образом, присвоение осуществляется быстрее. Однако, любое увеличение скорости будет хорошо заметно только в сжатых циклах или при присвоении больших массивов или объектов.

Для присвоения по ссылке, просто добавьте амперсанд (&) к началу имени присваиваемой (исходной) переменной. Например, следующий фрагмент кода дважды выводит 'My name is Bob':

<?php
$foo = 'Bob';              // Присваивает $foo значение 'Bob'
$bar = &$foo;              // Ссылка на $foo через $bar.
$bar = "My name is $bar";  // Изменение $bar...
echo $bar;
echo $foo;                 // меняет и $foo.
?>

Важно отметить, что по ссылке могут быть присвоены только именованные переменные.

<?php
$foo = 25;
$bar = &$foo;      // Это верное присвоение.
$bar = &(24 * 7);  // Неверно; ссылка на неименованное выражение.

function test()
{
   return 25;
}

$bar = &test();    // Неверно.
?>

Пред. | Начало | След.
Манипуляции с типами | Уровень выше | Предопределенные переменные


Предопределенные переменные

Любому запускаемому скрипту PHP предоставляет большое количество предопределенных переменных. Однако, многие из этих переменных не могут быть полностью задокументированы, поскольку они зависят от запущенного сервера, его версии и настроек, а также других факторов. Некоторые из этих переменных не доступны, когда PHP запущен из командной строки. Перечень этих переменных смотрите в разделе Зарезервированные предопределенные переменные.

Внимание

Начиная с PHP 4.2.0, значение директивы register_globals по умолчанию установлено в off (отключено). Это большое изменение в PHP. Положение register_globals в off делает предопределенные переменные доступными в глобальной области видимости. Например, чтобы получить DOCUMENT_ROOT, вам необходимо будет использовать $_SERVER['DOCUMENT_ROOT'] вместо $DOCUMENT_ROOT, или $_GET['id'] из URL http://www.example.com/test.php?id=3 вместо $id, или $_ENV['HOME'] вместо $HOME.

Дополнительную информацию, связанную с этим изменением, вы можете получить, прочитав описание register_globals в разделе о настройках, главу о безопасности Использование Register Globals , а также сообщения о выпусках PHP 4.1.0 и 4.2.0.

Использование доступных зарезервированных предопределенных переменных PHP, таких как суперглобальные массивы, является предпочтительным.

Начиная с версии 4.1.0, PHP предоставляет дополнительный набор предопределенных массивов, содержащих переменные web-сервера (если они доступны), окружения и пользовательского ввода. Эти новые массивы являются особыми, поскольку они автоматически глобальны--то есть, автоматически доступны в любой области видимости. По этой причине они также известны как 'автоглобальные' или 'суперглобальные' переменные. (В PHP нет механизма определяемых пользователем суперглобальных переменных.) Суперглобальные переменные перечислены ниже; однако, перечисление их содержимого и дальнейшее обсуждение предопределенных переменных PHP и их сути смотрите в разделе Зарезервированные предопределенные переменные. Также вы заметите, что старые предопределенные переменные ($HTTP_*_VARS) все еще существуют. Начиная с PHP 5.0.0, длинные предопределенные переменные массивов PHP могут быть отключены директивой register_long_arrays.

Переменные переменных: Суперглобальные переменные не могут быть переменными переменных.

Если некоторые из переменных в variables_order не установлены, соответствующие им предопределенные массивы также останутся пустыми.

Суперглобальные переменные PHP

$GLOBALS

Содержит ссылку на каждую переменную, доступную в данный момент в глобальной области видимости скрипта. Ключами этого массива являются имена глобальны переменных. $GLOBALS существует, начиная с PHP 3.

$_SERVER

Переменные, установленные web-сервером либо напрямую связанные с окружением выполнения текущего скрипта. Аналог старого массива $HTTP_SERVER_VARS (который по-прежнему доступен, но не рекомендуется).

$_GET

Переменные, передаваемые скрипту через HTTP GET. Аналог старого массива $HTTP_GET_VARS (который по-прежнему доступен, но не рекомендуется).

$_POST

Переменные, передаваемые скрипту через HTTP POST. Аналог старого массива $HTTP_POST_VARS (который по-прежнему доступен, но не рекомендуется).

$_COOKIE

Переменные, передаваемые скрипту через HTTP cookies. Аналог старого массива $HTTP_COOKIE_VARS (который по-прежнему доступен, но не рекомендуется).

$_FILES

Переменные, передаваемые скрипту через HTTP post-загрузку файлов. Аналог старого массива $HTTP_POST_FILES (который по-прежнему доступен, но не рекомендуется). Для дополнительной информации смотрите Загрузка методом POST.

$_ENV

Переменные, передаваемые скрипту через окружение. Аналог старого массива $HTTP_ENV_VARS (который по-прежнему доступен, но не рекомендуется).

$_REQUEST

Переменные, передаваемые скрипту через механизмы ввода GET, POST и COOKIE, и которым, следовательно, нельзя доверять. Наличие и порядок включения переменных в этот массив определяется в соответствии с директивой конфигурации PHP variables_order. Этот массив не имеет прямых аналогов в версиях PHP до 4.1.0. Смотрите также import_request_variables().

Предостережение

Начиная с PHP 4.3.0, информация о файле из $_FILES больше не существует в $_REQUEST.

Замечание: При запуске из командной строки , этот массив не будет содержать записей argv и argc; они находятся в массиве $_SERVER.

$_SESSION

Переменные, зарегистрированные на данный момент в сессии скрипта. Аналог старого массива $HTTP_SESSION_VARS (который по-прежнему доступен, но не рекомендуется). Дополнительную информацию смотрите в разделе Функции обработки сессии.

Пред. | Начало | След.
Переменные | Уровень выше | Область видимости переменной


Область видимости переменной

Область видимости переменной - это среда, в которой она определена. В большинстве случаев все переменные PHP имеют единую область видимости. Эта единая область видимости охватывает также включаемые (include) и требуемые (require) файлы. Например:

<?php
$a = 1;
include "b.inc";
?>

Здесь переменная $a будет доступна внутри включенного скрипта b.inc. Однако, внутри определенных пользователем функций вводится локальная область видимости функции. Любая, используемая внутри функции переменная, по умолчанию ограничена локальной областью видимости функции. Например:

<?php
$a = 1; /* глобальная область видимости */

function Test()
{
    echo $a; /* ссылка на переменную локальной области видимости */
}

Test();
?>

Этот скрипт не сгенерирует никакого вывода, поскольку выражение echo указывает на локальную версию переменной $a, а в пределах этой области видимости ей не не было присвоено значение. Возможно вы заметили, что это немного отличается от языка C в том, что глобальные переменные в C автоматически доступны функциям, если только они не были перезаписаны локальным определением. Это может вызвать некоторые проблемы, поскольку люди могут нечаянно изменить глобальную переменную. В PHP, если глобальная переменная будет использоваться внутри функции, она должна быть объявлена глобальной внутри нее.

Ключевое слово global

Сначала пример использования global:

Пример 12-1. Использование global

<?php
$a = 1;
$b = 2;

function Sum()
{
    global $a, $b;

    $b = $a + $b;
}

Sum();
echo $b;
?>

Вышеприведенный скрипт выведет "3". После определения $a и $b внутри функции как global все ссылки на любую из этих переменных будут указывать на их глобальную версию. Не существует никаких ограничений на количество глобальных переменных, которые могут обрабатываться функцией.

Второй способ доступа к переменным глобальной области видимости - использование специального, определяемого PHP массива $GLOBALS. Предыдущий пример может быть переписан так:

Пример 12-2. Использование $GLOBALS вместо global

<?php
$a = 1;
$b = 2;

function Sum()
{
    $GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
}

Sum();
echo $b;
?>

$GLOBALS - это ассоциативный массив, ключом которого является имя, а значением - содержимое глобальной переменной. Обратите внимание, что $GLOBALS существует в любой области видимости, это объясняется тем, что этот массив является суперглобальным. Ниже приведен пример, демонстрирующий возможности суперглобальных переменных:

Пример 12-3. Суперглобальные переменные и область видимости

<?php
function test_global()
{
    // Большинство предопределенных переменных не являются
    // "супер" и чтобы быть доступными в локальной области
    // видимости функции требуют указания 'global'.
    global $HTTP_POST_VARS;

    echo $HTTP_POST_VARS['name'];

    // Суперглобальные переменные доступны в любой области
    // видимости и не требуют указания 'global'.
    // Суперглобальные переменные доступны, начиная с PHP 4.1.0
    echo $_POST['name'];
}
?>

Использование статических переменных

Другой важной возможностью области видимости переменной является статическая переменная. Статическая переменная существует только в локальной области видимости функции, но не теряет своего значения, когда выполнение программы выходит из этой области видимости. Рассмотрим следующий пример:

Пример 12-4. Демонстрация необходимости статических переменных

<?php
function Test ()
{
    $a = 0;
    echo $a;
    $a++;
}
?>

Эта функция абсолютно бесполезна поскольку при каждом вызове она устанавливает $a в 0 и выводит "0". Инкремент переменной $a++ здесь не играет роли, так как при выходе из функции переменная $a исчезает. Чтобы написать полезную считающую функцию, которая не будет терять текущего значения счетчика, переменная $a объявляется как static:

Пример 12-5. Пример использования статических переменных

<?php
function Test()
{
    static $a = 0;
    echo $a;
    $a++;
}
?>

Теперь при каждом вызове функция Test() будет выводить значение $a и инкрементировать его.

Статические переменные также дают возможность работать с рекурсивными функциями. Рекурсивной является функция, вызывающая саму себя. При написании рекурсивной функции нужно быть внимательным, поскольку есть вероятность сделать рекурсию бесконечной. Вы должны убедиться, что существует адекватный способ завершения рекурсии. Следующая простая функция рекурсивно считает до 10, используя для определения момента остановки статическую переменную $count:

Пример 12-6. Статические переменные и рекурсивные функции

<?php
function Test()
{
    static $count = 0;

    $count++;
    echo $count;
    if ($count < 10) {
        Test ();
    }
    $count--;
}
?>

Замечание: Статические переменные могут быть объявлены так, как показано в предыдущем примере. Попытка присвоить этим переменным значения, являющиеся результатом выражений, вызовет ошибку обработки.

Пример 12-7. Объявление статических переменных

<?php
function foo(){
    static $int = 0;          // верно
    static $int = 1+2;        // неверно  (поскольку это выражение)
    static $int = sqrt(121);  // неверно  (поскольку это тоже выражение)

    $int++;
    echo $int;
}
?>

Ссылки с глобальными и статическими переменными

Движок Zend 1, лежащий в основе PHP 4, оперирует модификаторами переменных static и global как ссылками. Например, реальная глобальная переменная, внедренная в область видимости функции указанием ключевого слова global, в действительности создает ссылку на глобальную переменную. Это может привести к неожиданному поведению, как это показано в следующем примере:

<?php
function test_global_ref() {
    global $obj;
    $obj = &new stdclass;
}

function test_global_noref() {
    global $obj;
    $obj = new stdclass;
}

test_global_ref();
var_dump($obj);
test_global_noref();
var_dump($obj);
?>

Выполнение этого примера сгенерирует следующий вывод:

NULL
object(stdClass)(0) {
}

Аналогично ведет себя и выражение static. Ссылки не хранятся статично:

<?php
function &get_instance_ref() {
    static $obj;

    echo "Static object: ";
    var_dump($obj);
    if (!isset($obj)) {
        // Присвоить ссылку статической переменной
        $obj = &new stdclass;
    }
    $obj->property++;
    return $obj;
}

function &get_instance_noref() {
    static $obj;

    echo "Static object: ";
    var_dump($obj);
    if (!isset($obj)) {
        // Присвоить объект статической переменной
        $obj = new stdclass;
    }
    $obj->property++;
    return $obj;
}

$obj1 = get_instance_ref();
$still_obj1 = get_instance_ref();
echo "\n";
$obj2 = get_instance_noref();
$still_obj2 = get_instance_noref();
?>

Выполнение этого примера сгенерирует следующий вывод:

Static object: NULL
Static object: NULL

Static object: NULL
Static object: object(stdClass)(1) {
  ["property"]=>
  int(1)
}

Этот пример демонстрирует, что при присвоении ссылки статической переменной она не запоминается, когда вы вызываете функцию &get_instance_ref() во второй раз.

Пред. | Начало | След.
Предопределенные переменные | Уровень выше | Переменные переменные


Переменные переменные

Иногда бывает удобно иметь переменными имена переменных. То есть, имя переменной, которое может быть определено и изменено динамически. Обычная переменная определяется примерно таким выражением:

<?php
$a = "hello";
?>

Переменная переменная берет значение переменной и рассматривает его как имя переменной. В вышеприведенном примере hello может быть использовано как имя переменной при помощи двух знаков доллара. То есть:

<?php
$$a = "world";
?>

Теперь в дереве символов PHP определены и содержатся две переменные: $a, содержащая "hello", и $hello, содержащая "world". Таким образом, выражение

<?php
echo "$a ${$a}";
?>

выведет то же, что и

<?php
echo "$a $hello";
?>

то есть, они оба выведут: hello world.

Для того чтобы использовать переменные переменные с массивами, вы должны решить проблему двусмысленности. То есть, если вы напишете $$a[1], обработчику необходимо знать, хотите ли вы использовать $a[1] в качестве переменной, либо вам нужна как переменная $$a, а затем ее индекс [1]. Синтаксис для разрешения этой двусмысленности таков: ${$a[1]} для первого случая и ${$a}[1] для второго.

Внимание

Пожалуйста, обратите внимание, что переменные переменные не могут использоваться с Суперглобальными массивами PHP. Это означает, что вы не можете делать что-то вроде ${$_GET}. Если вы ищете способ использовать суперглобальные переменные и старые HTTP_*_VARS, вы можете попробовать ссылаться на них.

Пред. | Начало | След.
Область видимости переменной | Уровень выше | Переменные вне PHP


Переменные вне PHP

HTML-формы (GET и POST)

Когда происходит отправка данных формы PHP-скрипту, информация из этой формы автоматически становится доступной ему. Существует много способов получения этой информации, например:

Пример 12-8. Простая HTML-форма

<form action="foo.php" method="post">
    Имя:  <input type="text" name="username" /><br />
    Email: <input type="text" name="email" /><br />
    <input type="submit" name="submit" value="Отправь меня!" />
</form>

В зависимости от вашей индивидуальной установки и личных настроек существует много способов доступа к данным из ваших HTML-форм. Вот несколько примеров:

Пример 12-9. Доступ к данным из простой HTML POST-формы

<?php
// Доступно, начиная с PHP 4.1.0

   echo $_POST['username'];
   echo $_REQUEST['username'];

   import_request_variables('p', 'p_');
   echo $p_username;

// Доступно, начиная с PHP 3. Начиная с PHP 5.0.0, эти длинные предопределенные
// переменные могут быть отключены директивой register_long_arrays.

   echo $HTTP_POST_VARS['username'];

// Доступно, если директива PHP register_globals = on. Начиная
// с PHP 4.2.0, значение по умолчанию register_globals = off.
// Использование/доверие этому методу непредпочтительно.

   echo $username;
?>

GET-форма используется аналогично, за исключением того, что вместо POST вам нужно будет использовать соответствующую предопределенную переменную GET. GET относится также к QUERY_STRING (информация в URL после '?'). Так, например, http://www.example.com/test.php?id=3 содержит GET-данные, доступные как $_GET['id']. Смотрите также $_REQUEST и import_request_variables().

Замечание: Суперглобальные массивы, такие как $_POST и $_GET, стали доступны в PHP 4.1.0

Как уже говорилось, до PHP 4.2.0 значением register_globals по умолчанию было on (включено). А в PHP 3 оно всегда было включено. Сообщество PHP рекомендует всем не полагаться на эту директиву, поскольку предпочтительно присвоить ей значение off и писать программы исходя из этого.

Замечание: Конфигурационная директива magic_quotes_gpc влияет на значения Get, Post и Cookie. Если она включена, значение (It's "PHP!") автоматически станет (It\'s \"PHP!\"). Мнемонизация необходима при добавлении в базу данных. Смотрите также addslashes(), stripslashes() и magic_quotes_sybase.

PHP также понимает массивы в контексте переменных формы (смотрите соответствующие ЧАВО). К примеру, вы можете сгруппировать связанные переменные вместе или использовать эту возможность для получения значений списка множественного выбора select. Например, давайте отправим форму самой себе, а после отправки отобразим данные:

Пример 12-10. Более сложные переменные формы

<?php
if (isset($_POST['action']) && $_POST['action'] == 'submitted') {
    echo '<pre>';
    print_r($_POST);
    echo '<a href="'. $_SERVER['PHP_SELF'] .'">Попробуйте еще раз</a>';

    echo '</pre>';
} else {
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Имя:  <input type="text" name="personal[name]" /><br />
    Email: <input type="text" name="personal[email]" /><br />
    Пиво: <br />
    <select multiple name="beer[]">
        <option value="warthog">Warthog</option>
        <option value="guinness">Guinness</option>
        <option value="stuttgarter">Stuttgarter Schwabenbrдu</option>
    </select><br />
    <input type="hidden" name="action" value="submitted" />
    <input type="submit" name="submit" value="Отправь меня!" />
</form>
<?php
}
?>

В PHP 3 использование массивов в переменных формы ограничено одномерными массивами. В PHP 4 таких ограничений нет.

Имена переменных кнопки-изображения

При отправке формы вместо стандартной кнопки можно использовать изображение с помощью тега такого вида:

<input type="image" src="image.gif" name="sub" />

Когда пользователь щелкнет где-нибудь на изображении, соответствующая форма будет передана на сервер с двумя дополнительными переменными - sub_x и sub_y. Они содержат координаты нажатия пользователя на изображение. Опытные программисты могут заметить, что на самом деле имена переменных, отправленных браузером, содержат точку, а не подчеркивание, но PHP автоматически конвертирует точку в подчеркивание.

HTTP Cookies

PHP явно поддерживает HTTP cookies как определено в спецификации Netscape. Cookies - это механизм для хранения данных в удаленном браузере и отслеживания и идентификации таким образом вернувшихся пользователей. Вы можете установить cookies, используя функцию setcookie(). Cookies являются частью HTTP-заголовка, поэтому функция SetCookie должна вызываться до того, как браузеру будет отправлен какой бы то ни было вывод. Это ограничение аналогично ограничению функции header(). Данные, хранящиеся в cookie, доступны в соответствующих массивах данных cookie, таких как $_COOKIE, $HTTP_COOKIE_VARS, а также в $_REQUEST. Подробности и примеры смотрите на странице setcookie() руководства.

Если вы хотите присвоить множество значений одной переменной cookie, вы можете присвоить их как массив. Например:

<?php
  setcookie("MyCookie[foo]", "Тест 1", time()+3600);
  setcookie("MyCookie[bar]", "Тест 2", time()+3600);
?>

Это создаст две разные cookie, хотя в вашем скрипте MyCookie будет теперь одним массивом. Если вы хотите установить именно одну cookie со множеством значений, примите во внимание сначала применение к значениям таких функций, как serialize() или explode().

Обратите внимание, что cookie заменит предыдущую cookie с тем же именем в вашем браузере, если только путь или домен не отличаются. Так, для приложения корзины покупок вы, возможно, захотите сохранить счетчик. То есть:

Пример 12-11. A setcookie() example

<?php
if (isset($_COOKIE['count'])) {
    $count = $_COOKIE['count'] + 1;
} else {
    $count = 1;
}
setcookie("count", $count, time()+3600);
setcookie("Cart[$count]", $item, time()+3600);
?>

Точки в именах приходящих переменных

Как правило, PHP не меняет передаваемых скрипту имен переменных. Однако следует отметить, что точка не является корректным символом в имени переменной PHP. Поэтому рассмотрим такую запись:
<?php
$varname.ext;  /* неверное имя переменной */
?>
В данном случае интерпретатор видит переменную $varname, после которой идет оператор конкатенации, а затем голая строка (то есть, не заключенная в кавычки строка, не соответствующая ни одному из ключевых или зарезервированных слов) 'ext'. Очевидно, что это не даст ожидаемого результата.

По этой причине важно заметить, что PHP будет автоматически заменять любые точки в именах приходящих переменных на символы подчеркивания.

Определение типов переменных

Поскольку PHP определяет и конвертирует типы переменных (в большинстве случаев) как надо, не всегда очевидно, какой тип имеет данная переменная в конкретный момент времени. PHP содержит несколько функций, позволяющих определить тип переменной, таких как: gettype(), is_array(), is_float(), is_int(), is_object() и is_string(). Смотрите также раздел Типы.

Пред. | Начало | След.
Переменные переменные | Уровень выше | Константы


Константы

Руководство по PHP
Пред. След.

Глава 13. Константы

Содержание
Синтаксис
Предопределенные константы

Константы - это идентификаторы простых значений. Исходя из их названия, нетрудно понять, что их значение не может изменяться в ходе выполнения скрипта (исключения представляют "волшебные" константы, которые на самом деле не являются константами в полном смысле этого слова). Имена констант чувствительны к регистру. По принятому соглашению, имена констант всегда пишутся в верхнем регистре.

Имя константы должно соответствовать тем же правилам, которыми руководствуются и другие имена в PHP. Правильное имя начинается с буквы или символа подчеркивания и состоит из букв, цифр и подчеркиваний. Регулярное выражение для проверки правильности имени константы выглядит так: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

Замечание: Понятие "буквы" здесь - это символы a-z, A-Z, и другие символы с ASCII-кодами от 127 до 255 (0x7f-0xff).

Как и суперглобальные переменные, константы доступны из любой области видимости. Вы можете использовать константы в любом месте вашего скрипта, не обращая внимания на текущую область видимости. Подробную информацию об областях видимости можно найти здесь.

Синтаксис

Вы можете определить константу с помощью функции define(). После того, как константа определена, ее значение не может быть изменено или аннулировано.

Константы могут содержать только скалярные данные (логического, целого, плавающего и строкового типов).

Получить значение константы можно, указав ее имя. В отличие от переменных, вам не потребуется предварять имя константы символом $. Также вы можете использовать функцию constant() для получения значения константы, если вы формируете имя константы динамически. Используйте функцию get_defined_constants() для получения списка всех объявленных констант.

Замечание: Константы и (глобальные) переменные находятся в разном пространстве имен. Это означает, что, например, TRUE и $TRUE являются совершенно разными вещами.

Если вы используете неопределенную константу, PHP предполагает, что вы имеете ввиду само имя константы, как если бы вы указали переменную типа строка (CONSTANT и "CONSTANT"). При этом будет сгенерирована ошибка типа E_NOTICE. Смотрите также главу руководства, которая разъясняет, почему $foo[bar] - это неправильно (конечно, если вы перед этим не объявили bar как константу с помощью define()). Если вы просто хотите проверить, определена ли константа, используйте функцию defined().

Различия между константами и переменными:

  • У констант нет приставки в виде знака доллара ($);

  • Константы можно определить только с помощью функции define(), а не присваиванием значения;

  • Константы могут быть определены и доступны в любом месте без учета области видимости;

  • Константы не могут быть определены или аннулированы после первоначального объявления; и

  • Константы могут иметь только скалярные значения.

Пример 13-1. Определение констант

<?php
define("CONSTANT", "Здравствуй, мир.");
echo CONSTANT; // выводит "Здравствуй, мир."
echo Constant; // выводит "Constant" и выводит предупреждениее.
?>

Пред. | Начало | След.
Переменные вне PHP | Уровень выше | Предопределенные константы


Предопределенные константы

PHP предоставляет большой список предопределенных констант для каждого выполняемого скрипта. Многие из этих констант определяются различными модулями и будут присутствовать только в том случае, если эти модули доступны в результате динамической загрузки или в результате статической сборки.

Есть пять волшебных констант, которые меняют свое значение в зависимости от контекста, в котором они используются. Например, значение __LINE__ зависит от строки в скрипте, на которой эта константа указана. Специальные константы нечувствительны к регистру и их список приведен ниже:

Таблица 13-1. Некоторые "волшебные" константы PHP

Имя | Описание
__LINE__ | Текущая строка в файле.
__FILE__ | Полный путь и имя текущего файла.
__FUNCTION__ | Имя функции. (Добавлена в PHP 4.3.0.)
__CLASS__ | Имя класса. (Добавлена в PHP 4.3.0.)
__METHOD__ | Имя метода класса. (Добавлена в PHP 5.0.0)

С полным списком предопределенных констант можно ознакомиться в соответствующем разделе.

Пред. | Начало | След.
Константы | Уровень выше | Выражения


Выражения

Руководство по PHP
Пред. След.

Глава 14. Выражения

Выражения - это краеугольный камень PHP. Почти все, что вы пишите в PHP, является выражением. Самое простое и точное определение выражения - "все что угодно, имеющее значение".

Основными формами выражений являются константы и переменные. Если вы записываете "$a = 5", вы присваиваете '5' переменной $a. '5', очевидно, имеет значение 5 или, другими словами, '5' это выражение со значением 5 (в данном случае '5' это целочисленная константа).

После этого присвоения вы ожидаете, что значением $a также является 5, поэтому, если вы написали $b = $a, вы полагаете, что работать это будет так же, как если бы вы написали $b = 5. Другими словами, $a это также выражение со значением 5. Если все работает верно, то именно так и произойдет.

Немного более сложными примерами выражений являются функции. Например, рассмотрим следующую функцию:

<?php
function foo ()
{
    return 5;
}
?>

Исходя из того, что вы хорошо знакомы с концепцией функций (если нет, то прочитайте главу о функциях), вы полагаете, что запись $c = foo() абсолютно эквивалента записи $c = 5, и вы правы. Функции - это выражения, значением которых является то, что возвращает функция. Поскольку foo() возвращает 5, значением выражения 'foo()' является 5. Как правило, функции возвращают не просто статическое значение, а что-то вычисляют.

Разумеется, значения в PHP не обязаны быть целочисленными, и очень часто ими не являются. PHP поддерживает три типа скалярных значений: целочисленные, с плавающей точкой и строковые значения (скалярными являются значения, которые вы не можете 'разбить' на меньшие части, в отличие, например, от массивов). PHP поддерживает также два комбинированных (не скалярных) типа: массивы и объекты. Каждый из этих типов значений может присваиваться переменной или возвращаться функцией.

До сих пор пользователи PHP/FI 2 не должны были почувствовать каких-либо изменений. Однако PHP, как и многие другие языки, понимает гораздо больше выражений. PHP - это язык, ориентированный на выражения и рассматривающий почти все как выражение. Вернемся к примеру, с которым мы уже имели дело: '$a = 5'. Легко заметить, что здесь присутствуют два значения - значение целочисленной константы '5' и значение переменной $a, также принимающей значение 5. Но на самом деле здесь присутствует и еще одно значение - значение самого присвоения. Само присвоение вычисляется в присвоенное значение, в данном случае - в 5. На практике это означает, что '$a = 5', независимо от того, что оно делает, является выражением со значением 5. Таким образом, запись '$b = ($a = 5)' равносильна записи '$a = 5; $b = 5;' (точка с запятой обозначает конец выражения). Поскольку операции присвоения анализируются справа налево, вы также можете написать '$b = $a = 5'.

Другой хороший пример ориентированности на выражения - пре- и постфиксный инкремент и декремент. Пользователи PHP/FI 2 и многих других языков возможно уже знакомы с формой записи переменная++ и переменная--. Это операторы инкремента и декремента. В PHP/FI 2 операция '$a++' не имеет значения (это не выражение), и, таким образом, вы не можете присвоить ее или каким-либо образом использовать. PHP увеличивает возможности инкремента/декремента, также сделав их выражениями, как в C. Также как и C, PHP поддерживает два типа инкремента - префиксный и постфиксный. Они оба инкрементируют значение переменной и эффект их действия на нее одинаков. Разница состоит в значении выражения инкремента. Префиксный инкремент, записываемый как '++$variable', вычисляется в инкрементированное значение (PHP инкрементирует переменную перед тем как прочесть ее значение, отсюда название 'пре-инкремент'). Постфиксный инкремент, записываемый как '$variable++', вычисляется в первоначальное значение переменной $variable перед ее приращением (PHP инкрементирует переменную после прочтения ее значения, отсюда название 'пост-инкремент').

Очень распространенным типом выражений являются выражения сравнения. Они вычисляются в 0 или 1, означающих соответственно FALSE (ложь) или TRUE (истину). PHP поддерживает > (больше), >= (больше либо равно), == (равно), != (не равно), < (меньше) и <= (меньше либо равно). Он также поддерживает операторы строгого равенства: === (равно и одного типа) и !== (не равно или не одного типа). Чаще всего эти выражения используются в условиях выполнения операторов, таких как if.

Последний пример выражений, который мы здесь рассмотрим, это смешанные выражения операции и присвоения. Вы уже знаете, что если вы хотите увеличить $a на 1, вы можете просто написать '$a++' или '++$a'. Но что, если вы хотите прибавить больше, чем единицу, например, 3? Вы могли бы написать '$a++' много раз, однако, очевидно это не очень рациональный или удобный способ. Гораздо более распространенной практикой является запись вида '$a = $a + 3'. '$a + 3' вычисляется в значение $a плюс 3 и снова присваивается $a, увеличивая в результате $a на 3. В PHP, как и в некоторых других языках, таких как C, вы можете записать это более коротким образом, что увеличит очевидность смысла и быстроту понимания кода по прошествии времени. Прибавить 3 к текущему значению $a можно с помощью записи '$a += 3'. Это означает дословно "взять значение $a, прибавить к нему 3 и снова присвоить его переменной $a". Кроме большей понятности и краткости, это быстрее работает. Значением '$a += 3', как и обычного присвоения, является присвоенное значение. Обратите внимание, что это НЕ 3, а суммированное значение $a плюс 3 (то, что было присвоено $a). Таким образом может использоваться любой двухместный оператор, например, '$a -= 5' (вычесть 5 из значения $a), '$b *= 7' (умножить значение $b на 7) и т.д.

Существует еще одно выражение, которое может выглядеть необычным, если вы не встречали его в других языках - тернарный условный оператор:

<?php
$first ? $second : $third
?>

Если значением первого подвыражения является TRUE (не ноль), выполняется второе подвыражение, которое и будет результатом условного выражения. В противном случае, будет выполнено третье подвыражение и его значение будет результатом.

Следующий пример должен помочь вам немного улучшить понимание префиксного и постфиксного инкремента и выражений:

<?php
function double($i)
{
    return $i*2;
}
$b = $a = 5;        /* присвоить значение пять переменным $a и $b */
$c = $a++;          /* постфиксный инкремент, присвоить значение $a
                       (5) переменной $c */
$e = $d = ++$b;     /* префиксный инкремент, присвоить увеличенное
                       значение $b (6) переменным $d и $e */

/* в этой точке и $d, и $e равны 6 */

$f = double($d++);  /* присвоить удвоенное значение $d перед
                       инкрементом (2*6 = 12) переменной $f */
$g = double(++$e);  /* присвоить удвоенное значение $e после
                       инкремента (2*7 = 14) переменной $g */
$h = $g += 10;      /* сначала переменная $g увеличивается на 10,
                       приобретая, в итоге, значение 24. Затем значение
                       присвоения (24) присваивается переменной $h,
                       которая в итоге также становится равной 24. */
?>

Некоторые выражения могут рассматриваться как инструкции. В данном случае инструкция имеет вид 'выражение' ';' - выражение с последующей точкой с запятой. В записи '$b=$a=5;', $a=5 - это верное выражение, но само по себе не инструкция. Тогда как '$b=$a=5;' является верной инструкцией.

Последнее, что стоит упомянуть, это истинность значения выражений. Во многих случаях, как правило, в условных операторах и циклах, вас может интересовать не конкретное значение выражения, а только значат ли они TRUE или FALSE. Константы TRUE и FALSE (регистро-независимые) - это два возможных булевых значения. При необходимости выражение автоматически преобразуется в булев тип. Подробнее о том, как это происходит, смотрите в разделе о приведении типов.

PHP предоставляет полную и мощную реализацию выражений, и их полное документирование выходит за рамки этого руководства. Вышеприведенные примеры должны дать вам представление о том, что они из себя представляют и как вы сами можете создавать полезные выражения. Далее, для обозначения любого верного выражения PHP в этой документации мы будем использовать сокращение expr.

Пред. | Начало | След.
Предопределенные константы | Уровень выше | Операторы


Операторы

Руководство по PHP
Пред. След.

Глава 15. Операторы

Содержание
Приоритет выполнения операторов
Арифметические операторы
Оператор присвоения
Побитовые операторы
Операторы сравнения
Оператор управления ошибками
Операторы исполнения
Операторы инкремента и декремента
Логические операторы
Строковые операторы
Операторы, работающие с массивами
Оператор проверки принадлежности к классу

Оператором называется нечто, состоящее из одного или более значений (выражений, если говорить на жаргоне программирования), которое можно вычислить как новое значение (таким образом, вся конструкция может рассматриваться как выражение). Отсюда следует, что функции или любые другие конструкции, которые возвращают значение (например, print()) являются операторами, в отличие от всех остальных языковых конструкций (например, echo()), которые ничего не возвращают.

Операторы бывают трех видов. Во-первых, это унарные операторы, которые работают только с одним аргументом, например, ! (оператор отрицания) или ++ (инкримент). Вторую группу составляют бинарные операторы: в нее входят большинство поддерживаемых в PHP операторов, полный список которых вы можете найти в разделе Порядок выполнения операторов.

И последнюю, третью группу составляет тернарный оператор ?:. Он используется для условного выбора между двумя операторами, в зависимости от результата вычисления третьего оператора. Говоря другими словами, он позволяет определить две альтернативные ветви дальнейшего выполнения. Тернарный оператор рекомендуется заключать в круглые скобки.

Приоритет выполнения операторов

Приоритет операторов определяет, насколько "тесно" связанны между собой два выражения. Например, выражение 1 + 5 * 3 вычисляется как 16, а не 18, поскольку операция умножения ("*") имеет более высокий приоритет, чем операция сложения ("+"). В случае, если операторы имеют одинаковый приоритет, они будут выполняться слева направо. Круглые скобки могут использоваться для принудительного указания необходимого порядка выполнения операторов. Например, выражение (1 + 5) * 3 вычисляется как 18.

В следующей таблице приведен список операторов, отсортированный по убыванию их приоритетов. Операторы, размещенные в одной строке имеют одинаковый приоритет и порядок их выполнения опроделяется исходя из их ассоциативности.

Таблица 15-1. Порядок выполнения операторов

Ассоциативность | Оператор
неассоциативна | new
правая | [
неассоциативна | ++ --
неассоциативна | ! ~ - (int) (float) (string) (array) (object) @
левая | * / %
левая | + - .
левая | << >>
неассоциативна | < <= > >=
неассоциативна | == != === !==
левая | &
левая | ^
левая | |
левая | &&
левая | ||
левая | ? :
правая | = += -= *= /= .= %= &= |= ^= <<= >>=
левая | and
левая | xor
левая | or
левая | ,

Левая ассоциативность подразумевает, что выражение вычисляется слева направо, правая ассоциативность соответственно подразумевает противоположный порядок.

Пример 15-1. Ассоциативность

<?php
  $a = 3 * 3 % 5; // (3 * 3) % 5 = 4
  $a = true ? 0 : true ? 1 : 2; // (true ? 0 : true) ? 1 : 2 = 2

  $a = 1;
  $b = 2;
  $a = $b += 3; // $a = ($b += 3) -> $a = 5, $b = 5
  ?>
Вы можете использовать круглые скобки для повышения читабельности кода.

Замечание: Несмотря на то, что оператор ! имеет более высокий приоритет чем =, PHP позволяет использовать следующую конструкцию: if (!$a = foo()), которая присваивает переменной $a результат выполнения функции foo().

Пред. | Начало | След.
Выражения | Уровень выше | Арифметические операторы


Арифметические операторы

Помните школьные основы арифметики? Описанные ниже операторы работают так же.

Таблица 15-2. Арифметические операции

Пример | Название | Результат
-$a | Отрицание | Смена знака $a.
$a + $b | Сложение | Сумма $a и $b.
$a - $b | Вычитание | Разность $a и $b.
$a * $b | Умножение | Произведение $a и $b.
$a / $b | Деление | Частное от деления $a на $b.
$a % $b | Деление по модулю | Целочисленный остаток от деления $a на $b.

Операция деления ("/") всегда возвращает вещественный тип, даже если оба значения были целочисленными (или строками, которые преобразуются в целые числа).

Замечание: Остаток $a % $b будет негативным, для негативных значений $a.

Также вы можете ознакомиться с разделом документации Математические функции.

Пред. | Начало | След.
Операторы | Уровень выше | Оператор присвоения


Оператор присвоения

Базовый оператор присвоения обозначается как =. На первый взгляд может показаться, что это оператор "равно". На самом деле это не так. В действительности, оператор присвоения означает, что левый операнд получает значение правого выражения, (т.е. устанавливается результирующим значением).

Результатом выполнения оператора присвоения является само присвоенное значение. Таким образом, результат выполнения $a = 3 будет равен 3. Это позволяет использовать конструкции вида:

<?php

$a = ($b = 4) + 5; // результат: $a установлена значением 9, переменной $b присвоено 4.

?>

В дополнение к базовому оператору присвоения имеются "комбинированные операторы" для всех бинарных арифметических и строковых операций, которые позволяют использовать некоторое значение в выражении, а затем установить его как результат данного выражения. Например:

<?php

$a = 3;
$a += 5; // устанавливает $a значением 8, аналогично записи: $a = $a + 5;
$b = "Hello ";
$b .= "There!"; // устанавливает $b строкой "Hello There!",  как и $b = $b . "There!";

?>

Обратите внимание, что присвоение копирует оригинальную переменную в новую (присвоение по значению), таким образом все последующие изменения одной из переменных на другой никак не отражаются. Начиная с PHP 4, также поддерживается присваивание по ссылке, используя синтаксис $var = &$othervar;, но в PHP 3 такая возможность отсутствует. 'Присвоение по ссылке' означает, что обе переменные указывают на одни и те же данные и никакого копирования не происходит. Для получения более полной информации об этой возможности, обратитесь к разделу документации Подробно об указателях.

Пред. | Начало | След.
Арифметические операторы | Уровень выше | Побитовые операторы


Побитовые операторы

Побитовые операторы позволяют устанавливать конкретные биты в 0 или 1 для целочисленных значений. В случае если и левый, и правый операнды строки, побитовые операции будут работать с их ASCII-представлениями.

<?php
echo 12 ^ 9; // Выведет '5'

echo "12" ^ "9"; // Отобразит симовол возврата каретки (ascii 8)
                 // ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8

echo "hallo" ^ "hello"; // Выведет следующие ASCII-значения: #0 #4 #0 #0 #0
                        // 'a' ^ 'e' = #4
?>

Таблица 15-3. Побитовые операторы

Пример | Название | Результат
$a & $b | Побитовое 'и' | Устанавливаются только те биты, которые установлены и в $a, и в $b.
$a | $b | Побитовое 'или' | Устанавливаются те биты, которые установлены либо в $a, либо в $b.
$a ^ $b | Исключающее или | Устанавливаются только те биты, которые установлены либо только в $a, либо только в $b
~ $a | Отрицание | Устанавливаются те биты, которые в $a не установлены, и наоборот.
$a << $b | Сдвиг влево | Все биты переменной $a сдвигаються на $b позиций влево (каждая позиция подразумевает 'умножение на 2')
$a >> $b | Сдвиг вправо | Все биты переменной $a сдвигаються на $b позиций вправо (каждая позиция подразумевает 'деление на 2')

Внимание

Не используйте сдвиг вправо более чем на 32 бита на тридцатидвухразрядных системах. Не используйте сдвиг вправо для получения чисел, требующих для записи более ридцатидвух бит.

Пред. | Начало | След.
Оператор присвоения | Уровень выше | Операторы сравнения


Операторы сравнения

Операторы сравнения, как это видно из их названия, позволяют сравнивать между собой два значения. Также вам возможно будет интересно ознакомиться с разделом Сравнение типов, в котором приведено большое количество соответствующих примеров.

Таблица 15-4. Операторы сравнения

Пример | Название | Результат
$a == $b | Равно | TRUE если $a равно $b.
$a === $b | Тождественно равно | TRUE если $a равно $b и имеет тот же тип. (Добавлено в PHP 4)
$a != $b | Не равно | TRUE если $a не равно $b.
$a <> $b | Не равно | TRUE если $a не равно $b.
$a !== $b | Тождественно не равно | TRUE если $a не равно $b или в случае, если они разных типов (Добавлено в PHP 4)
$a < $b | Меньше | TRUE если $a строго меньше $b.
$a > $b | Больше | TRUE если $a строго больше $b.
$a <= $b | Меньше или равно | TRUE если $a is меньше или равно $b.
$a >= $b | Больше или равно | TRUE если $a больше или равно $b.

В случае, если вы сравниваете целое со строкой, строка будет преобразована к числу. В случае, если вы сравниваете две числовые строки, они сравниваются как целые числа. Эти правила также распространяются на оператор switch.

<?php
  var_dump(0 == "a"); // 0 == 0 -> true
  var_dump("1" == "01"); // 1 == 1 -> true

  switch ("a") {
  case 0:
      echo "0";
      break;
  case "a": // Эта ветка никогда не будет достигнута, так как "a" уже сопоставленно с 0
      echo "a";
      break;
  }
  ?>

Еще одним условным оператором является тернарный оператор "?:".

<?php
// Пример использования тернарного оператора
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];

// Приведенный выше код аналогичен следующему блоку с использованием if/else
if (empty($_POST['action'])) {
    $action = 'default';
} else {
    $action = $_POST['action'];
}
?>

Выражение (expr1) ? (expr2) : (expr3) интерпретируется как expr2, если expr1 вычисляется в TRUE, или как expr3 если expr1 вычисляется в FALSE.

Также ознакомьтесь с описаниями функций strcasecmp(), strcmp(), и разделом документации Типы и Операторы, работающие с массивами.

Пред. | Начало | След.
Побитовые операторы | Уровень выше | Оператор управления ошибками


Оператор управления ошибками

PHP поддерживает один оператор управления ошибками: знак @. В случае, если он предшествует какому-либо выражению в PHP-коде, любые сообщения об ошибках, генерируемые этим выражением, будут проигнорированы.

В случае, если установлена опция track_errors, все генерируемые сообщения об ошибках будут сохраняться в переменной $php_errormsg. Эта переменная будет перезаписываться при возникновении каждой новой ошибки, поэтому в случае необходимости проверяйте ее сразу же.

<?php
// Преднамеренная ошибка при работе с файлами
$my_file = @file ('non_existent_file') or
    die ("Failed opening file: error was '$php_errormsg'");

// работает для любых выражений, а не только для функций
$value = @$cache[$key];
// В случае если ключа $key нет, сообщение об ошибке не будет отображено

?>

Замечание: Оператор @ работает только с выражениями. Есть простое правило: если произвольная языковая конструкция возвращает значение, значит вы можете использовать предшествующий ей оператор @. Например, вы можете использовать @ перед именем переменной, произвольной функцией или вызовом include(), константой и так далее. В то же время вы не можете использовать этот оператор перед определением функции или класса, условными конструкциями, такими как if или foreach.

Также ознакомьтесь с описанием функции error_reporting() и соответствующим разделом документации Обработка ошибок и функции логирования.

Замечание: Оператор @ не подавляет вывод ошибок, возникающих на стадии синтаксического разбора скрипта.

Внимание

На сегодняшний день оператор @ подавляет вывод сообщений даже о критических ошибках прерывающих работу скрипта. Помимо всего прочего, это означает, что если вы использовали @ для подавления ошибок, возникающих при работе какой-либо функции, в случае если она недоступна или написана неправильно, дальнейшая работа скрипта будет остановлена без каких-либо уведомлений.

Пред. | Начало | След.
Операторы сравнения | Уровень выше | Операторы исполнения


Операторы исполнения

PHP поддерживает один оператор исполнения: обратные кавычки (``). Обратите внимание, что это не одиночные кавычки. PHP пытается выполнить строку, заключенную в обратные кавычки, как консольную команду, и возвращает полученный вывод (т.е. он не просто выдается на выходе а, например, может быть присвоен переменной). Использование обратных кавычек аналогично использованию функции shell_exec().

<?php
$output = `ls -al`;
echo "<pre>$output</pre>";
?>

Замечание: Обратные кавычки недоступны, в случае, если установлен безопасный режим или отключена функция shell_exec().

Ознакомьтесь также со следующими разделами документации: Функции для выполнения программ, popen() proc_open(), и Использование PHP в командной строке.

Пред. | Начало | След.
Оператор управления ошибками | Уровень выше | Операторы инкремента и декремента


Операторы инкремента и декремента

PHP, аналогично C, поддерживает префиксные и постфиксные операторы инкремента и декремента.

Таблица 15-5. Операторы инкремента и декремента

Пример | Название | Действие
++$a | Префиксный инкремент | Увеличивает $a на единицу и возвращает значение $a.
$a++ | Постфиксный инкремент | Возвращает значение $a, а затем увеличивает $a на единицу.
--$a | Префиксный декремент | Уменьшает $a на единицу и возвращает значение $a.
$a-- | Постфиксный декремент | Возвращает значение $a, а затем уменьшает $a на единицу.

Приведем пример простого скрипта:

<?php
echo "<h3>Постфиксный инкремент</h3>";
$a = 5;
echo "Должно быть 5: " . $a++ . "<br />\n";
echo "Должно быть 6: " . $a . "<br />\n";

echo "<h3>Префиксный инкремент</h3>";
$a = 5;
echo "Должно быть 6: " . ++$a . "<br />\n";
echo "Должно быть 6: " . $a . "<br />\n";

echo "<h3>Постфиксный декремент</h3>";
$a = 5;
echo "Должно быть 5: " . $a-- . "<br />\n";
echo "Должно быть 4: " . $a . "<br />\n";

echo "<h3>Префиксный декремент</h3>";
$a = 5;
echo "Должно быть 4: " . --$a . "<br />\n";
echo "Должно быть 4: " . $a . "<br />\n";
?>

PHP следует соглашениям Perl (в отличие от С) касательно выполнения арифметических операций с символьными переменными. Например в Perl 'Z'+1 будет вычислено как 'AA', в то время как в C 'Z'+1 будет вычислено как '[' ( ord('Z') == 90, ord('[') == 91 ). Следует учесть, что к символьным переменным можно применять операцию инкремента, в то время как операцию декремента применять нельзя.

Пример 15-2. Арифметические операции с символьными переменными

<?php
$i = 'W';
for($n=0; $n<6; $n++)
  echo ++$i . "\n";

/*
  Результат работы будет следующий:

X
Y
Z
AA
AB
AC

*/
?>

Инкрементирование или декрементирование булевых переменных не приводит ни к какому результату.

Пред. | Начало | След.
Операторы исполнения | Уровень выше | Логические операторы


Логические операторы

Таблица 15-6. Логические операторы

Пример | Название | Результат
$a and $b | Логическое 'и' | TRUE если и $a, и $b TRUE.
$a or $b | Логическое 'или' | TRUE если или $a, или $b TRUE.
$a xor $b | Исключающее 'или' | TRUE если $a, или $b TRUE, но не оба.
! $a | Отрицание | TRUE если $a не TRUE.
$a && $b | Логическое 'и' | TRUE если и $a, и $b TRUE.
$a || $b | Логическое 'или' | TRUE если или $a, или $b TRUE.

Смысл двух разных вариантов для операторов "and" и "or" в том, что они работают с различными приоритетами (смотрите таблицу Приоритет выполнения операторов).

Пред. | Начало | След.
Операторы инкремента и декремента | Уровень выше | Строковые операторы


Строковые операторы

В PHP есть два оператора для работы со строками. Первый - оператор конкатенации ('.'), который возвращает объединение левого и правого аргумента. Второй - оператор присвоения с конкатенацией, который присоединяет правый аргумент к левому. Для получения более полной информации ознакомтесь с разделом Оператор присвоения.

<?php
$a = "Hello ";
$b = $a . "World!"; // $b содержит строку "Hello World!"

$a = "Hello ";
$a .= "World!";     // $a содержит строку "Hello World!"
?>

Также ознакомьтесь с разделами документации Строки и Функции для работы со строками.

Пред. | Начало | След.
Логические операторы | Уровень выше | Операторы, работающие с массивами


Операторы, работающие с массивами

Таблица 15-7. Операторы, работающие с массивами

Пример | Название | Результат
$a + $b | Объединение | Объединение массива $a и массива $b.
$a == $b | Равно | TRUE в случае, если $a и $b содержат одни и те же элементы.
$a === $b | Тождественно равно | TRUE в случае, если $a и $b содержат одни и те же элементы в том же самом порядке.
$a != $b | Не равно | TRUE если массив $a не равен массиву $b.
$a <> $b | Не равно | TRUE если массив $a не равен массиву $b.
$a !== $b | Тождественно не равно | TRUE если массив $a не равен тождественно массиву $b.

Оператор + присоединяет правый массив к массиву, размещенному слева НЕ перезаписывая элементы с дублирующимися ключами.

<?php
$a = array("a" => "apple", "b" => "banana");
$b = array("a" => "pear", "b" => "strawberry", "c" => "cherry");

$c = $a + $b; // Объеденение $a и $b
echo "Union of \$a and \$b: \n";
var_dump($c);

$c = $b + $a; // Объединение $b и $a
echo "Union of \$b and \$a: \n";
var_dump($c);
?>

После своего выполнения скрипт напечатает следующее:
Union of $a and $b:
array(3) {
  ["a"]=>
  string(5) "apple"
  ["b"]=>
  string(6) "banana"
  ["c"]=>
  string(6) "cherry"
}
Union of $b and $a:
array(3) {
  ["a"]=>
  string(4) "pear"
  ["b"]=>
  string(10) "strawberry"
  ["c"]=>
  string(6) "cherry"
}

При сравнении элементы массива считаются идентичными, если совпадает и ключ, и соответствующее значение.

Пример 15-3. Сравнение массивов

<?php
$a = array("apple", "banana");
$b = array(1 => "banana", "0" => "apple");

var_dump($a == $b); // bool(true)
var_dump($a === $b); // bool(false)
?>

Также ознакомьтесь с разделами Массивы и Функции для работы с массивами.

Пред. | Начало | След.
Строковые операторы | Уровень выше | Оператор проверки принадлежности к классу


Оператор проверки принадлежности к классу

Оператор instanceof используется для определения того, является ли текущий объект экземпляром указанного класса .

Оператор instanceof был добавлен в PHP 5. До этого использовалась конструкция is_a(), которая на данный момент не рекомендуется к применению, более предпочтительно использовать оператор instanceof .

<?php
class A { }
class B { }

$thing = new A;

if ($thing instanceof A) {
    echo 'A';
}
if ($thing instanceof B) {
    echo 'B';
}
?>

Поскольку объект $thing является экземпляром класса A, и никак не B, то будет выполнен только первый, опирающийся на класс A, блок:

A

Ознакомьтесь также с описанием функций get_class() и is_a().

Пред. | Начало | След.
Операторы, работающие с массивами | Уровень выше | Control Structures


Control Structures

Руководство по PHP
Пред. След.

Глава 16. Control Structures

Содержание
if
else
elseif
Alternative syntax for control structures
while
do-while
for
foreach
break
continue
switch
declare
return
require()
include()
require_once()
include_once()

Any PHP script is built out of a series of statements. A statement can be an assignment, a function call, a loop, a conditional statement of even a statement that does nothing (an empty statement). Statements usually end with a semicolon. In addition, statements can be grouped into a statement-group by encapsulating a group of statements with curly braces. A statement-group is a statement by itself as well. The various statement types are described in this chapter.

if

The if construct is one of the most important features of many languages, PHP included. It allows for conditional execution of code fragments. PHP features an if structure that is similar to that of C:

if (expr)
    statement

As described in the section about expressions, expression is evaluated to its Boolean value. If expression evaluates to TRUE, PHP will execute statement, and if it evaluates to FALSE - it'll ignore it. More information about what values evaluate to FALSE can be found in the 'Converting to boolean' section.

The following example would display a is bigger than b if $a is bigger than $b:

<?php
if ($a > $b)
    echo "a is bigger than b";
?>

Often you'd want to have more than one statement to be executed conditionally. Of course, there's no need to wrap each statement with an if clause. Instead, you can group several statements into a statement group. For example, this code would display a is bigger than b if $a is bigger than $b, and would then assign the value of $a into $b:

<?php
if ($a > $b) {
    echo "a is bigger than b";
    $b = $a;
}
?>

If statements can be nested indefinitely within other if statements, which provides you with complete flexibility for conditional execution of the various parts of your program.

Пред. | Начало | След.
Оператор проверки принадлежности к классу | Уровень выше | else


Alternative syntax for control structures

PHP offers an alternative syntax for some of its control structures; namely, if, while, for, foreach, and switch. In each case, the basic form of the alternate syntax is to change the opening brace to a colon (:) and the closing brace to endif;, endwhile;, endfor;, endforeach;, or endswitch;, respectively.

<?php if ($a == 5): ?>
A is equal to 5
<?php endif; ?>

In the above example, the HTML block "A is equal to 5" is nested within an if statement written in the alternative syntax. The HTML block would be displayed only if $a is equal to 5.

The alternative syntax applies to else and elseif as well. The following is an if structure with elseif and else in the alternative format:

<?php
if ($a == 5):
    echo "a equals 5";
    echo "...";
elseif ($a == 6):
    echo "a equals 6";
    echo "!!!";
else:
    echo "a is neither 5 nor 6";
endif;
?>

See also while, for, and if for further examples.

Пред. | Начало | След.
elseif | Уровень выше | while


return

If called from within a function, the return() statement immediately ends execution of the current function, and returns its argument as the value of the function call. return() will also end the execution of an eval() statement or script file.

If called from the global scope, then execution of the current script file is ended. If the current script file was include()ed or require()ed, then control is passed back to the calling file. Furthermore, if the current script file was include()ed, then the value given to return() will be returned as the value of the include() call. If return() is called from within the main script file, then script execution ends. If the current script file was named by the auto_prepend_file or auto_append_file configuration options in php.ini, then that script file's execution is ended.

For more information, see Returning values.

Замечание: Note that since return() is a language construct and not a function, the parentheses surrounding its arguments are only required if the argument contains an expression. It is common to leave them out while returning a variable, and you actually should as PHP has less work to do in this case.

Замечание: You should never use parentheses around your return variable when returning by reference, as this will not work. You can only return variables by reference, not the result of a statement. If you use return ($a); then you're not returning a variable, but the result of the expression ($a) (which is, of course, the value of $a).

Пред. | Начало | След.
declare | Уровень выше | require()


Функции

Руководство по PHP
Пред. След.

Глава 17. Функции

Содержание
Функции, определяемые пользователем
Аргументы функции
Возврат значений
Обращение к функциям через переменные
Встроенные функции

Функции, определяемые пользователем

Приведем пример синтаксиса, используемого для описания функций:

Пример 17-1. Псевдокод для демонстрации использования функций

<?php
function foo($arg_1, $arg_2, /* ..., */ $arg_n)
{
    echo "Example function.\n";
    return $retval;
}
?>

Внутри функции можно использовать любой корректный PHP-код, в том числе другие функции и даже объявления классов.

В PHP 3 функции должны были быть определены прежде, чем они будут использованы. Начиная с PHP 4 такого ограничения нет, исключая тот случай, когда функции определяются условно, как это показано в двух последующих примерах.

В случае, когда функция определяется в зависимости от какого-либо условия, например, как это показано в двух приведенных ниже примерах, обработка описания функции должна предшествовать ее вызову.

Пример 17-2. Функции, зависящие от условий

<?php

$makefoo = true;

/* Мы не можем вызвать функцию foo() в этом месте,
   поскольку она еще не определена, но мы можем
   обратиться к bar() */

bar();

if ($makefoo) {
  function foo()
  {
    echo "I don't exist until program execution reaches me.\n";
  }
}

/* Теперь мы благополучно можем вызывать foo(),
   поскольку $makefoo была интерпретирована как true */

if ($makefoo) foo();

function bar()
{
  echo "I exist immediately upon program start.\n";
}

?>

Пример 17-3. Вложенные функции

<?php
function foo()
{
  function bar()
  {
    echo "I don't exist until foo() is called.\n";
  }
}

/* Мы пока не можем обратиться к bar(),
   поскольку она еще не определена. */

foo();

/* Теперь мы можем вызвать функцию bar(),
   обработка foo() сделала ее доступной. */

bar();

?>

PHP не поддерживает перегрузку функции, также отсутствует возможность переопределить или удалить объявленную ранее функцию.

Замечание: Имена функций регистронезависимы, тем не менее, более предпочтительно вызывать функции так, как они были объявлены.

PHP 3 не поддерживает переменное количество аргументов функции, хотя поддержка значений по умолчанию для аргументов присутствует (смотрите раздел Значения аргументов по умолчанию). Начиная с 4-й версии PHP поддерживает и то, и другое: смотрите раздел Списки аргументов переменной длины и описания функций func_num_args(), func_get_arg(), и func_get_args() для более детальной информации.

Пред. | Начало | След.
include_once() | Уровень выше | Аргументы функции


Аргументы функции

Функция может принимать информацию в виде списка аргументов, который является списком разделенных запятыми переменных и/или констант.

PHP поддерживает передачу аргументов по значению (по умолчанию), передачу аргументов по ссылке, и значения по умолчанию. Списки аргументов переменной длины поддерживаются, начиная с PHP 4: смотрите раздел Списки аргументов переменной длины и описания функций func_num_args(), func_get_arg() и func_get_args() для более детальной информации. Подобного эффекта можно достичь в PHP 3, передавая функции массив аргументов:

Пример 17-4. Передача массива в функцию

<?php
function takes_array($input)
{
    echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
?>

Передача аргументов по ссылке

По умолчанию аргументы в функцию передаются по значению (это означает, что если вы измените значение аргумента внутри функции, то вне ее значение все равно останется прежним). Если вы хотите разрешить функции модифицировать свои аргументы, вы должны передавать их по ссылке.

Если вы хотите, что бы аргумент всегда передавался по ссылке, вы можете указать амперсанд (&) перед именем аргумента в описании функции:

Пример 17-5. Передача аргументов по ссылке

<?php
function add_some_extra(&$string)
{
    $string .= 'and something extra.';
}
$str = 'This is a string, ';
add_some_extra($str);
echo $str;    // Выведет 'This is a string, and something extra.'
?>

Значения аргументов по умолчанию

Функция может определять значения по умолчанию в стиле C++ для скалярных аргументов, например:

Пример 17-6. Использование значений по умолчанию в определении функции

<?php
function makecoffee($type = "cappuccino")
{
    return "Making a cup of $type.\n";
}
echo makecoffee();
echo makecoffee("espresso");
?>

Результат работы приведенного выше кода будет таким:

Making a cup of cappuccino.
Making a cup of espresso.

PHP также позволяет использовать массивы и специальный тип NULL в качестве значений по умолчанию, например:

Пример 17-7. Использование нескалярных типов в качестве значений по умолчанию

<?php
  function makecoffee($types = array("cappuccino"), $coffeeMaker = NULL)
  {
      $device = is_null($coffeeMaker) ? "hands" : $coffeeMaker;
      return "Making a cup of ".join(", ", $types)." with $device.\n";
  }
  echo makecoffee();
  echo makecoffee(array("cappuccino", "lavazza"), "teapot");
  ?>

Значение по умолчанию должно быть константным выражением, а не (к примеру) переменной или вызовом функции/метода класса.

Обратите внимание, что все аргументы, для которых установлены значения по умолчанию, должны находится правее аргументов, для которых значения по умолчанию не заданы, в противном случае ваш код может работать не так, как вы этого ожидаете. Рассмотрим следующий пример:

Пример 17-8. Некорректное использование значений по умолчанию

<?php
function makeyogurt($type = "acidophilus", $flavour)
{
    return "Making a bowl of $type $flavour.\n";
}

echo makeyogurt("raspberry");   // Не будет работать так, как мы могли бы ожидать
?>

Результат работы приведенного выше примера будет следующим:

Warning: Missing argument 2 in call to makeyogurt() in
/usr/local/etc/httpd/htdocs/php3test/functest.html on line 41
Making a bowl of raspberry .

Теперь сравним эго со следующим примером:

Пример 17-9. Некорректное использование значений по умолчанию

<?php
function makeyogurt($flavour, $type = "acidophilus")
{
    return "Making a bowl of $type $flavour.\n";
}

echo makeyogurt("raspberry");   // отрабатывает правильно
?>

Теперь результат работы примера будет выглядеть так:

Making a bowl of acidophilus raspberry.

Замечание: Начиная с PHP 5, значения по умолчанию могут быть переданны по ссылке.

Списки аргументов переменной длины

PHP 4 и выше поддерживает списки аргументов переменной длины для функций,
определяемых пользователем. Реализация этой возможности достаточно прозрачна
и заключается в использовании функций func_num_args(),
func_get_arg() и
func_get_args().

Необходимости в специфическом синтаксисе нет, при этом список аргументов также может быть указан явно и будет обладать тем же поведением.

Пред. | Начало | След.
Функции | Уровень выше | Возврат значений


Возврат значений

Значения возвращаются при помощи необязательного оператора возврата. Возвращаемые значения могут быть любого типа, в том числе это могут быть списки и объекты. Возврат приводит к завершению выполнения функции и передаче управления обратно к той строке кода, в которой данная функция была вызвана. Для получения более детальной информации ознакомьтесь с описанием функции return().

Пример 17-10. Использование функции return()

<?php
function square($num)
{
    return $num * $num;
}
echo square(4);   // выводит '16'.
?>

Функция не может возвращать несколько значений, но аналогичного результата можно добиться, возвращая массив.

Пример 17-11. Возврат нескольких значений в виде массива

<?php
function small_numbers()
{
    return array (0, 1, 2);
}
list ($zero, $one, $two) = small_numbers();
?>

Для того, чтобы функция возвращала результат по ссылке, вам необходимо использовать оператор & и при описании функции, и при присвоении переменной возвращаемого значения:

Пример 17-12. Возврат результата по ссылке

<?php
function &returns_reference()
{
    return $someref;
}

$newref =& returns_reference();
?>

Для получения более детальной информации о ссылках обратитесь к разделу документации Подробно об указателях.

Пред. | Начало | След.
Аргументы функции | Уровень выше | Обращение к функциям через переменные


Обращение к функциям через переменные

PHP поддерживает концепцию переменных функций. Это означает, что если к имени переменной присоединены круглые скобки, PHP ищет функцию с тем же именем, что и результат вычисления переменной, и пытается ее выполнить. Эту возможность можно использовать для реализации обратных вызовов, таблиц функций и множества других вещей.

Переменные функции не будут работать с такими языковыми конструкциями как echo(), print(), unset(), isset(), empty(), include(), require() и другими подобными им операторами. Вам необходимо реализовывать свою функцию-обертку (wrapper) для того, чтобы приведенные выше конструкции могли работать с переменными функциями.

Пример 17-13. Работа с функциями посредством переменных

<?php
function foo() {
    echo "In foo()<br />\n";
}

function bar($arg = '')
{
    echo "In bar(); argument was '$arg'.<br />\n";
}

// Функция-обертка для echo
function echoit($string)
{
    echo $string;
}

$func = 'foo';
$func();        // Вызывает функцию foo()

$func = 'bar';
$func('test');  // Вызывает функцию bar()

$func = 'echoit';
$func('test');  // Вызыывет функцию echoit()
?>

Вы также можете вызвать методы объекта, используя возможности PHP для работы с переменными функциями.

Пример 17-14. Обращение к методам класса посредством переменных

<?php
class Foo
{
    function Variable()
    {
        $name = 'Bar';
        $this->$name(); // Вызываем метод Bar()
    }

    function Bar()
    {
        echo "This is Bar";
    }
}

$foo = new Foo();
$funcname = "Variable";
$foo->$funcname();  // Обращаемся к $foo->Variable()

?>

Смотрите также call_user_func(), Переменные переменные и function_exists().

Пред. | Начало | След.
Возврат значений | Уровень выше | Встроенные функции


Встроенные функции

В самом PHP содержится достаточно большое количество встроенных функций и языковых конструкций. Также есть функции, которые требуют, чтобы PHP был собран со специфическими расширениями, в противном случае вы получите сообщение об ошибке, вызванной использованием неизвестной функции. Например, для того чтобы использовать Функции для работы с изображениями, например imagecreatetruecolor(), вам необходимо собрать PHP с поддержкой GD. Или же для того, чтобы воспользоваться функцией mysql_connect(), вам необходима поддержка модуля MySQL. Тем не менее, есть много встроенных функций, которые доступны всегда: например Функции обработки строк и Функции для работы с переменными. Вызвав phpinfo() или get_loaded_extensions(), вы можете узнать, поддержка каких модулей есть в используемом вами PHP. Также следует учесть, что поддержка некоторых дополнительных расширений включена по умолчанию, и что сама документация к PHP разбита по расширениям. Ознакомьтесь с разделами Конфигурация, Установка, а также с документацией непосредственно к дополнительным расширениям для получения более детальной информации о том, как настроить ваш PHP.

Более подробную информацию о том, как следует читать и интерпретировать прототипы функций, вы можете найти в разделе Как правильно читать описания функций. Очень важно понимать, что возвращает функция, или как именно она модифицирует передаваемые аргументы. Например, функция str_replace() возвращает модифицированную строку, в то время как функция usort() работает с фактически переданной переменной. Каждая страница документации также содержит информацию, которая специфична для данной функции, например, информацию о передаваемых параметрах, изменениях в поведении, возвращаемых значениях в случае как удачного, так и неудачного выполнения, доступности функции в различных версиях. Знание и применение этих (порой даже незаметных) нюансов очень важно для написания корректного PHP-кода.

Ознакомьтесь также со Справочником функций и более детальными описаниями функций function_exists(), get_extension_funcs() и dl().

Пред. | Начало | След.
Обращение к функциям через переменные | Уровень выше | Classes and Objects (PHP 4)


Classes and Objects (PHP 4)

Руководство по PHP
Пред. След.

Глава 18. Classes and Objects (PHP 4)

Содержание
class
extends
Constructors
Scope Resolution Operator (::)
parent
Serializing objects - objects in sessions
The magic functions __sleep and __wakeup
References inside the constructor
Comparing objects

class

A class is a collection of variables and functions working with these variables. A class is defined using the following syntax:

<?php
class Cart {
    var $items;  // Items in our shopping cart

    // Add $num articles of $artnr to the cart

    function add_item($artnr, $num) {
        $this->items[$artnr] += $num;
    }

    // Take $num articles of $artnr out of the cart

    function remove_item($artnr, $num) {
        if ($this->items[$artnr] > $num) {
            $this->items[$artnr] -= $num;
            return true;
        } elseif ($this->items[$artnr] == $num) {
            unset($this->items[$artnr]);
            return true;
        } else {
            return false;
        }
    }
}
?>

This defines a class named Cart that consists of an associative array of articles in the cart and two functions to add and remove items from this cart.

Внимание

You can NOT break up a class definition into multiple files. You also can NOT break a class definition into multiple PHP blocks, unless the break is within a method declaration. The following will not work:

<?php
class test {
?>
<?php
    function test() {
        print 'OK';
    }
}
?>

However, the following is allowed:

<?php
class test {
    function test() {
        ?>
        <?php
        print 'OK';
    }
}
?>

The following cautionary notes are valid for PHP 4.

Предостережение

The name stdClass is used internally by Zend and is reserved. You cannot have a class named stdClass in PHP.

Предостережение

The function names __sleep and __wakeup are magical in PHP classes. You cannot have functions with these names in any of your classes unless you want the magic functionality associated with them. See below for more information.

Предостережение

PHP reserves all function names starting with __ as magical. It is recommended that you do not use function names with __ in PHP unless you want some documented magic functionality.

In PHP 4, only constant initializers for var variables are allowed. To initialize variables with non-constant values, you need an initialization function which is called automatically when an object is being constructed from the class. Such a function is called a constructor (see below).

<?php
class Cart {
    /* None of these will work in PHP 4. */
    var $todays_date = date("Y-m-d");
    var $name = $firstname;
    var $owner = 'Fred ' . 'Jones';
    /* Arrays containing constant values will, though. */
    var $items = array("VCR", "TV");
}

/* This is how it should be done. */
class Cart {
    var $todays_date;
    var $name;
    var $owner;
    var $items = array("VCR", "TV");

    function Cart() {
        $this->todays_date = date("Y-m-d");
        $this->name = $GLOBALS['firstname'];
        /* etc. . . */
    }
}
?>

Classes are types, that is, they are blueprints for actual variables. You have to create a variable of the desired type with the new operator.

<?php
$cart = new Cart;
$cart->add_item("10", 1);

$another_cart = new Cart;
$another_cart->add_item("0815", 3);
?>

This creates the objects $cart and $another_cart, both of the class Cart. The function add_item() of the $cart object is being called to add 1 item of article number 10 to the $cart. 3 items of article number 0815 are being added to $another_cart.

Both, $cart and $another_cart, have functions add_item(), remove_item() and a variable items. These are distinct functions and variables. You can think of the objects as something similar to directories in a filesystem. In a filesystem you can have two different files README.TXT, as long as they are in different directories. Just like with directories where you'll have to type the full pathname in order to reach each file from the toplevel directory, you have to specify the complete name of the function you want to call: in PHP terms, the toplevel directory would be the global namespace, and the pathname separator would be ->. Thus, the names $cart->items and $another_cart->items name two different variables. Note that the variable is named $cart->items, not $cart->$items, that is, a variable name in PHP has only a single dollar sign.

<?php
// correct, single $
$cart->items = array("10" => 1);

// invalid, because $cart->$items becomes $cart->""
$cart->$items = array("10" => 1);

// correct, but may or may not be what was intended:
// $cart->$myvar becomes $cart->items
$myvar = 'items';
$cart->$myvar = array("10" => 1);
?>

Within a class definition, you do not know under which name the object will be accessible in your program: at the time the Cart class was written, it was unknown that the object will be named $cart or $another_cart later. Thus, you cannot write $cart->items within the Cart class itself. Instead, in order to be able to access it's own functions and variables from within a class, one can use the pseudo-variable $this which can be read as 'my own' or 'current object'. Thus, '$this->items[$artnr] += $num' can be read as 'add $num to the $artnr counter of my own items array' or 'add $num to the $artnr counter of the items array within the current object'.

Замечание: The $this pseudo-variable is not usually defined if the method in which it is hosted is called statically. This is not, however, a strict rule: $this is defined if a method is called statically from within another object. In this case, the value of $this is that of the calling object. This is illustrated in the following example:

<?php
class A
{
    function foo()
    {
        if (isset($this)) {
            echo '$this is defined (';
            echo get_class($this);
            echo ")\n";
        } else {
            echo "\$this is not defined.\n";
        }
    }
}

class B
{
    function bar()
    {
        A::foo();
    }
}

$a = new A();
$a->foo();
A::foo();
$b = new B();
$b->bar();
B::bar();
?>

Результат выполнения данного примера:

$this is defined (a)
$this is not defined.
$this is defined (b)
$this is not defined.

Замечание: There are some nice functions to handle classes and objects. You might want to take a look at the Class/Object Functions.

Пред. | Начало | След.
Встроенные функции | Уровень выше | extends


Constructors

Constructors are functions in a class that are automatically called when you create a new instance of a class with new. A function becomes a constructor, when it has the same name as the class. If a class has no constructor, the constructor of the base class is being called, if it exists.

<?php
class Auto_Cart extends Cart {
    function Auto_Cart() {
        $this->add_item("10", 1);
    }
}
?>

This defines a class Auto_Cart that is a Cart plus a constructor which initializes the cart with one item of article number "10" each time a new Auto_Cart is being made with "new". Constructors can take arguments and these arguments can be optional, which makes them much more useful. To be able to still use the class without parameters, all parameters to constructors should be made optional by providing default values.

<?php
class Constructor_Cart extends Cart {
    function Constructor_Cart($item = "10", $num = 1) {
        $this->add_item ($item, $num);
    }
}

// Shop the same old boring stuff.
$default_cart = new Constructor_Cart;

// Shop for real...
$different_cart = new Constructor_Cart("20", 17);
?>

You also can use the @ operator to mute errors occurring in the constructor, e.g. @new.

<?php
class A
{
    function A()
    {
        echo "I am the constructor of A.<br />\n";
    }

    function B()
    {
        echo "I am a regular function named B in class A.<br />\n";
        echo "I am not a constructor in A.<br />\n";
    }
}

class B extends A
{
}

// This will call B() as a constructor
$b = new B;
?>

The function B() in class A will suddenly become a constructor in class B, although it was never intended to be. PHP 4 does not care if the function is being defined in class B, or if it has been inherited.

Предостережение

PHP 4 doesn't call constructors of the base class automatically from a constructor of a derived class. It is your responsibility to propagate the call to constructors upstream where appropriate.

Destructors are functions that are called automatically when an object is destroyed, either with unset() or by simply going out of scope. There are no destructors in PHP. You may use register_shutdown_function() instead to simulate most effects of destructors.

Пред. | Начало | След.
extends | Уровень выше | Scope Resolution Operator (::)


Serializing objects - objects in sessions

Замечание: In PHP 3, objects will lose their class association throughout the process of serialization and unserialization. The resulting variable is of type object, but has no class and no methods, thus it is pretty useless (it has become just like an array with a funny syntax).

Предостережение

The following information is valid for PHP >= 4 only.

serialize() returns a string containing a byte-stream representation of any value that can be stored in PHP. unserialize() can use this string to recreate the original variable values. Using serialize to save an object will save all variables in an object. The functions in an object will not be saved, only the name of the class.

In order to be able to unserialize() an object, the class of that object needs to be defined. That is, if you have an object $a of class A on page1.php and serialize this, you'll get a string that refers to class A and contains all values of variabled contained in $a. If you want to be able to unserialize this on page2.php, recreating $a of class A, the definition of class A must be present in page2.php. This can be done for example by storing the class definition of class A in an include file and including this file in both page1.php and page2.php.

<?php
// classa.inc:

  class A {
      var $one = 1;

      function show_one() {
          echo $this->one;
      }
  }

// page1.php:

  include("classa.inc");

  $a = new A;
  $s = serialize($a);
  // store $s somewhere where page2.php can find it.
  $fp = fopen("store", "w");
  fwrite($fp, $s);
  fclose($fp);

// page2.php:

  // this is needed for the unserialize to work properly.
  include("classa.inc");

  $s = implode("", @file("store"));
  $a = unserialize($s);

  // now use the function show_one() of the $a object.
  $a->show_one();
?>

If you are using sessions and use session_register() to register objects, these objects are serialized automatically at the end of each PHP page, and are unserialized automatically on each of the following pages. This basically means that these objects can show up on any of your pages once they become part of your session.

It is strongly recommended that you include the class definitions of all such registered objects on all of your pages, even if you do not actually use these classes on all of your pages. If you don't and an object is being unserialized without its class definition being present, it will lose its class association and become an object of class stdClass without any functions available at all, that is, it will become quite useless.

So if in the example above $a became part of a session by running session_register("a"), you should include the file classa.inc on all of your pages, not only page1.php and page2.php.

Пред. | Начало | След.
parent | Уровень выше | The magic functions __sleep and __wakeup


References inside the constructor

Creating references within the constructor can lead to confusing results. This tutorial-like section helps you to avoid problems.

<?php
class Foo {
    function Foo($name) {
        // create a reference inside the global array $globalref
        global $globalref;
        $globalref[] = &$this;
        // set name to passed value
        $this->setName($name);
        // and put it out
        $this->echoName();
    }

    function echoName() {
        echo "<br />", $this->name;
    }

    function setName($name) {
        $this->name = $name;
    }
}
?>

Let us check out if there is a difference between $bar1 which has been created using the copy = operator and $bar2 which has been created using the reference =& operator...

<?php
$bar1 = new Foo('set in constructor');
$bar1->echoName();
$globalref[0]->echoName();

/* output:
set in constructor
set in constructor
set in constructor */

$bar2 =& new Foo('set in constructor');
$bar2->echoName();
$globalref[1]->echoName();

/* output:
set in constructor
set in constructor
set in constructor */
?>

Apparently there is no difference, but in fact there is a very significant one: $bar1 and $globalref[0] are _NOT_ referenced, they are NOT the same variable. This is because "new" does not return a reference by default, instead it returns a copy.

Замечание: There is no performance loss (since PHP 4 and up use reference counting) returning copies instead of references. On the contrary it is most often better to simply work with copies instead of references, because creating references takes some time where creating copies virtually takes no time (unless none of them is a large array or object and one of them gets changed and the other(s) one(s) subsequently, then it would be wise to use references to change them all concurrently).

To prove what is written above let us watch the code below.

<?php
// now we will change the name. what do you expect?
// you could expect that both $bar1 and $globalref[0] change their names...
$bar1->setName('set from outside');

// as mentioned before this is not the case.
$bar1->echoName();
$globalref[0]->echoName();

/* output:
set from outside
set in constructor */

// let us see what is different with $bar2 and $globalref[1]
$bar2->setName('set from outside');

// luckily they are not only equal, they are the same variable
// thus $bar2->name and $globalref[1]->name are the same too
$bar2->echoName();
$globalref[1]->echoName();

/* output:
set from outside
set from outside */
?>

Another final example, try to understand it.

<?php
class A {
    function A($i) {
        $this->value = $i;
        // try to figure out why we do not need a reference here
        $this->b = new B($this);
    }

    function createRef() {
        $this->c = new B($this);
    }

    function echoValue() {
        echo "<br />","class ",get_class($this),': ',$this->value;
    }
}

class B {
    function B(&$a) {
        $this->a = &$a;
    }

    function echoValue() {
        echo "<br />","class ",get_class($this),': ',$this->a->value;
    }
}

// try to understand why using a simple copy here would yield
// in an undesired result in the *-marked line
$a =& new A(10);
$a->createRef();

$a->echoValue();
$a->b->echoValue();
$a->c->echoValue();

$a->value = 11;

$a->echoValue();
$a->b->echoValue(); // *
$a->c->echoValue();

?>

Результат выполнения данного примера:

class A: 10
class B: 10
class B: 10
class A: 11
class B: 11
class B: 11

Пред. | Начало | След.
The magic functions __sleep and __wakeup | Уровень выше | Comparing objects


Comparing objects

In PHP 4, objects are compared in a very simple manner, namely: Two object instances are equal if they have the same attributes and values, and are instances of the same class. Similar rules are applied when comparing two objects using the identity operator (===).

If we were to execute the code in the example below:

Пример 18-1. Example of object comparison in PHP 4

<?php
function bool2str($bool) {
    if ($bool === false) {
            return 'FALSE';
    } else {
            return 'TRUE';
    }
}

function compareObjects(&$o1, &$o2) {
    echo 'o1 == o2 : '.bool2str($o1 == $o2)."\n";
    echo 'o1 != o2 : '.bool2str($o1 != $o2)."\n";
    echo 'o1 === o2 : '.bool2str($o1 === $o2)."\n";
    echo 'o1 !== o2 : '.bool2str($o1 !== $o2)."\n";
}

class Flag {
    var $flag;

    function Flag($flag=true) {
            $this->flag = $flag;
    }
}

class SwitchableFlag extends Flag {

    function turnOn() {
        $this->flag = true;
    }

    function turnOff() {
        $this->flag = false;
    }
}

$o = new Flag();
$p = new Flag(false);
$q = new Flag();

$r = new SwitchableFlag();

echo "Compare instances created with the same parameters\n";
compareObjects($o, $q);

echo "\nCompare instances created with different parameters\n";
compareObjects($o, $p);

echo "\nCompare an instance of a parent class with one from a subclass\n";
compareObjects($o, $r);
?>

Результат выполнения данного примера:

Compare instances created with the same parameters
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE

Compare instances created with different parameters
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Compare an instance of a parent class with one from a subclass
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE
Which is the output we will expect to obtain given the comparison rules above. Only instances with the same values for their attributes and from the same class are considered equal and identical.

Even in the cases where we have object composition, the same comparison rules apply. In the example below we create a container class that stores an associative array of Flag objects.

Пример 18-2. Compound object comparisons in PHP 4

<?php
class FlagSet {
    var $set;

    function FlagSet($flagArr = array()) {
        $this->set = $flagArr;
    }

    function addFlag($name, $flag) {
        $this->set[$name] = $flag;
    }

    function removeFlag($name) {
        if (array_key_exists($name, $this->set)) {
            unset($this->set[$name]);
        }
    }
}

$u = new FlagSet();
$u->addFlag('flag1', $o);
$u->addFlag('flag2', $p);
$v = new FlagSet(array('flag1'=>$q, 'flag2'=>$p));
$w = new FlagSet(array('flag1'=>$q));

echo "\nComposite objects u(o,p) and v(q,p)\n";
compareObjects($u, $v);

echo "\nu(o,p) and w(q)\n";
compareObjects($u, $w);
?>

Результат выполнения данного примера:

Composite objects u(o,p) and v(q,p)
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE

u(o,p) and w(q)
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Пред. | Начало | След.
References inside the constructor | Уровень выше | Классы и объекты (PHP 5)


Классы и объекты (PHP 5)

Руководство по PHP
Пред. След.

Глава 19. Классы и объекты (PHP 5)

Содержание
Введение
The Basics
Autoloading Objects
Конструкторы и деструкторы
Visibility
::
Static Keyword
Константы в объектах
Абстрактные классы
Интерфейсы объектов
Перегрузка
Итераторы объектов
Patterns
Magic Methods
Ключевое слово "final"
Клонирование объектов
Сравнение объектов
Reflection
Type Hinting

Введение

В PHP 5 новая объектная модель. Управление объектами PHP полностью переписано, более удобное и содержит новые возможности.

Пред. | Начало | След.
Comparing objects | Уровень выше | The Basics


The Basics

class

Every class definition begins with the keyword class, followed by a class name, which can be any name that isn't a reserved word in PHP. Followed by a pair of curly braces, of which contains the definition of the classes members and methods. A pseudo-variable, $this is available when a method is called from within an object context. $this is a reference to the calling object (usually the object to which the method belongs, but can be another object, if the method is called statically from the context of a secondary object). This is illustrated in the following example:

Пример 19-1. $this variable in object-oriented language

<?php
class A
{
    function foo()
    {
        if (isset($this)) {
            echo '$this is defined (';
            echo get_class($this);
            echo ")\n";
        } else {
            echo "\$this is not defined.\n";
        }
    }
}

class B
{
    function bar()
    {
        A::foo();
    }
}

$a = new A();
$a->foo();
A::foo();
$b = new B();
$b->bar();
B::bar();
?>

Результат выполнения данного примера:

$this is defined (a)
$this is not defined.
$this is defined (b)
$this is not defined.

Пример 19-2. Simple Class definition

<?php
class SimpleClass
{
    // member declaration
    public $var = 'a default value';

    // method declaration
    public function displayVar() {
        echo $this->var;
    }
}
?>

new

To create an instance of an object, a new object must be created and assigned to a variable. An object will always be assigned when creating a new object unless the object has a constructor defined that throws an exception on error.

Пример 19-3. Creating an instance

<?php
$instance = new SimpleClass();
?>

When assigning an already created instance of an object to a new variable, the new variable will access the same instance as the object that was assigned. This behaviour is the same when passing instances to a function. A new instance of an already created object can be made by cloning it.

Пример 19-4. Object Assignment

<?php
$assigned   =  $instance;
$reference  =& $instance;

$instance->var = '$assigned will have this value';

$instance = null; // $instance and $reference become null

var_dump($instance);
var_dump($reference);
var_dump($assigned);
?>

Результат выполнения данного примера:

NULL
NULL
object(SimpleClass)#1 (1) {
   ["var"]=>
     string(30) "$assigned will have this value"
}

extends

A class can inherit methods and members of another class by using the extends keyword in the declaration. It is not possible to extend multiple classes, a class can only inherit one base class.

The inherited methods and members can be overridden, unless the parent class has defined a method as final, by redeclaring them within the same name defined in the parent class. It is possible to access the overrided method or members by referencing them with parent::

Пример 19-5. Simple Class Inherintance

<?php
class ExtendClass extends SimpleClass
{
    // Redefine the parent method
    function displayVar()
    {
        echo "Extending class\n";
        parent::displayVar();
    }
}

$extended = new ExtendClass();
$extended->displayVar();
?>

Результат выполнения данного примера:

Extending class
a default value

Пред. | Начало | След.
Классы и объекты (PHP 5) | Уровень выше | Autoloading Objects


Autoloading Objects

Many developers writing object-oriented applications create one PHP source file per-class definition. One of the biggest annoyances is having to write a long list of needed includes at the beginning of each script (one for each class).

In PHP 5, this is no longer necessary. You may define an __autoload function which is automatically called in case you are trying to use a class which hasn't been defined yet. By calling this function the scripting engine is given a last chance to load the class before PHP fails with an error.

Замечание: Exceptions thrown in __autoload function cannot be caught in the catch block and results in a fatal error.

Пример 19-6. Autoload example

This example attempts to load the classes MyClass1 and MyClass2 from the files MyClass1.php and MyClass2.php respectively.

<?php
function __autoload($class_name) {
    require_once $class_name . '.php';
}

$obj  = new MyClass1();
$obj2 = new MyClass2();
?>

Пред. | Начало | След.
The Basics | Уровень выше | Конструкторы и деструкторы


Конструкторы и деструкторы

Constructor

PHP 5 позволяет объявлять методы-конструкторы. Классы, в которых объявлен метод-констуктор, будут вызывать этот метод при каждом создании нового объекта, так что это может оказаться полезным, чтобы, например, инициализировать какое-либо состояние объекта перед его использованием.

Замечание: Конструкторы в классах-родителях не вызываются автоматически. Чтобы вызвать конструктор, объявленный в родительском классе, следует обратиться к методу parent::__construct().

Пример 19-7. Использование унифицированных конструкторов

<?php
class BaseClass {
    function __construct() {
        print "Конструктор класса BaseClass\n";
    }
}

class SubClass extends BaseClass {
    function __construct() {
        parent::__construct();
        print "Конструктор класса SubClass\n";
    }
}

$obj = new BaseClass();
$obj = new SubClass();
?>

Если PHP 5 не может обнаружить объявленный метод __construct(), вызов конструктора произойдет по прежней схеме, через обращение к методу, имя которого соответствует имени класса. Может возникнуть только одна проблема совместимости старого кода, если в нём присутствуют классы с методами __construct().

Деструкторы

PHP 5 предоставляет концепцию деструкторов, сходную с теми, что применяются в других ОО языках, таких, как Java: когда освобождается последняя ссылка на объект, перед высвобождением памяти, занимаемой этим объектом, вызывается метод __destruct(), не принимающий параметров.

Пример 19-8. Пример использования деструктора

<?php
class MyDestructableClass {
    function __construct() {
        print "Конструктор\n";
        $this->name = "MyDestructableClass";
    }

    function __destruct() {
        print "Уничтожается " . $this->name . "\n";
    }
}

$obj = new MyDestructableClass();
?>

Как и в случае с конструкторами, деструкторы, объявленные в родительском классе, не будут вызваны автоматически. Для вызова деструктора, объявленном в классе-родителе, следует обратиться к методу parent::__destruct().

Пред. | Начало | След.
Autoloading Objects | Уровень выше | Visibility


Visibility

The visibility of a property or method can be defined by prefixing the declaration with the keywords: public, protected or private. Public declared items can be accessed everywhere. Protected limits access to inherited and parent classes (and to the class that defines the item). Private limits visibility only to the class that defines the item.

Members Visibility

Class members must be defined with public, private, or protected.

Пример 19-9. Member declaration

<?php
/**
 * Define MyClass
 */
class MyClass
{
    public $public = 'Public';
    protected $protected = 'Protected';
    private $private = 'Private';

    function printHello()
    {
        echo $this->public;
        echo $this->protected;
        echo $this->private;
    }
}

$obj = new MyClass();
echo $obj->public; // Works
echo $obj->protected; // Fatal Error
echo $obj->private; // Fatal Error
$obj->printHello(); // Shows Public, Protected and Private

/**
 * Define MyClass2
 */
class MyClass2 extends MyClass
{
    // We can redeclare the public and protected method, but not private
    protected $protected = 'Protected2';

    function printHello()
    {
        echo $this->public;
        echo $this->protected;
        echo $this->private;
    }
}

$obj2 = new MyClass2();
echo $obj->public; // Works
echo $obj2->private; // Undefined
echo $obj2->protected; // Fatal Error
$obj2->printHello(); // Shows Public, Protected2, not Private

?>

Замечание: The PHP 4 method of declaring a variable with the var keyword is no longer valid for PHP 5 objects. For compatibility a variable declared in php will be assumed with public visibility, and a E_STRICT warning will be issued.

Method Visibility

Class methods must be defined with public, private, or protected. Methods without any declaration are defined as public.

Пример 19-10. Method Declaration

<?php
/**
 * Define MyClass
 */
class MyClass
{
    // Contructors must be public
    public function __construct() { }

    // Declare a public method
    public function MyPublic() { }

    // Declare a protected method
    protected function MyProtected() { }

    // Declare a private method
    private function MyPrivate() { }

    // This is public
    function Foo()
    {
        $this->MyPublic();
        $this->MyProtected();
        $this->MyPrivate();
    }
}

$myclass = new MyClass;
$myclass->MyPublic(); // Works
$myclass->MyProtected(); // Fatal Error
$myclass->MyPrivate(); // Fatal Error
$myclass->Foo(); // Public, Protected and Private work

/**
 * Define MyClass2
 */
class MyClass2 extends MyClass
{
    // This is public
    function Foo2()
    {
        $this->MyPublic();
        $this->MyProtected();
        $this->MyPrivate(); // Fatal Error
    }
}

$myclass2 = new MyClass2;
$myclass2->MyPublic(); // Works
$myclass2->Foo2(); // Public and Protected work, not Private
?>

Пред. | Начало | След.
Конструкторы и деструкторы | Уровень выше | ::


::

"Paamayim Nekudotayim" или просто "двойное двоеточие". Используя эту лексему, программист может обращаться к константам, статическим или перегруженным свойствам или методам класса.

При обращении к этим элементам извне класса, программист должен использовать имя этого класса.

"Paamayim Nekudotayim" на первый взгляд может показаться странным словосочетанием для обозначения двойного двоеточия. Однако, во время создания Zend Engine версии 0.5 (который входил в PHP3), Andi и Zeev выбрали именно это обозначение. "Paamayim Nekudotayim" действительно значит "двойное двоеточие". На иврите. Просто это обозначение не менялось ни разу в течение всего времени разработки PHP.

Пример 19-11. Использование :: вне объявления класса

<?php
class MyClass {
  const CONST_VALUE = 'Значение константы';
}
echo MyClass::CONST_VALUE;
?>

Для обращения к свойствам и методам в объявлении класса используются ключевые слова self и parent.

Пример 19-12. Использование :: в объявлении класса

<?php
class OtherClass extends MyClass {
  public static $my_static = 'статическая переменная';

  public static function doubleColon() {
     echo parent::CONST_VALUE . "\n";
     echo self::$my_static . "\n";
  }
}

OtherClass::doubleColon();
?>

Когда дочерний класс перегружает методы, объявленные в классе-родителе, PHP не будет осуществлять автоматический вызов методов, принадлежащих классу-родителю. Этот функционал возлагается на метод, перегружаемый в дочернем классе. Данное правило распространяется на конструкторы и деструкторы, перегруженные и "волшебные" методы.

Пример 19-13. Обращение к методу в родительском классе

<?php
class MyClass {

  protected function myFunc() {
    echo "MyClass::myFunc()\n";
  }
}

class OtherClass extends MyClass {

  /* Override parent's definition */
  public function myFunc() {

    /* But still call the parent function */
    parent::myFunc();
    echo "OtherClass::myFunc()\n";
  }
}

$class = new OtherClass();
$class->myFunc();
?>

Пред. | Начало | След.
Visibility | Уровень выше | Static Keyword


Static Keyword

Declaring class members or methods as static makes them accessible without needing an instantiation of the class. A member declared as static can not be accessed with an instantiated class object (though a static method can).

The static declaration must be after the visibility declaration. For compatibility with PHP 4, if no visibility declaration is used, then the member or method will be treated as if it was declared as public.

Because static methods are callable without an instance of the object created, the pseudo variable $this is not available inside the method declared as static.

In fact static method calls are resolved at compile time. When using an explicit class name the method is already identified completely and no inheritance rules apply. If the call is done by self then self is translated to the current class, that is the class the code belongs to. Here also no inheritance rules apply.

Static properties cannot be accessed through the object using the arrow operator ->.

Calling non-static methods statically generates an E_STRICT level warning.

Пример 19-14. Static member example

<?php
class Foo
{
    public static $my_static = 'foo';

    public function staticValue() {
        return self::$my_static;
    }
}

class Bar extends Foo
{
    public function fooStatic() {
        return parent::$my_static;
    }
}

print Foo::$my_static . "\n";

$foo = new Foo();
print $foo->staticValue() . "\n";
print $foo->my_static . "\n";      // Undefined "Property" my_static

// $foo::my_static is not possible

print Bar::$my_static . "\n";
$bar = new Bar();
print $bar->fooStatic() . "\n";
?>

Пример 19-15. Static method example

<?php
class Foo {
    public static function aStaticMethod() {
        // ...
    }
}

Foo::aStaticMethod();
?>

Пред. | Начало | След.
:: | Уровень выше | Константы в объектах


Константы в объектах

Константы также могут быть объявлены и в пределах одного класса. Отличие переменных и констант состоит в том, что при объявлении последних или при обращении к ним не используется символ $. Как и Разд. Static Keyword свойства и методы, значения констант, объявленных внутри класса, не могут быть получены через переменную, содержащую экземпляр этого класса.

Пример 19-16. Объявление и использование константы

<?php
class MyClass {
  const constant = 'значение константы';

  function showConstant() {
    echo  self::constant . "\n";
  }
}

echo MyClass::constant . "\n";

$class = new MyClass();
$class->showConstant();
/* echo $class::constant; -  такое использование недопустимо */
?>

Пред. | Начало | След.
Static Keyword | Уровень выше | Абстрактные классы


Абстрактные классы

PHP 5 поддерживает определение абстрактных классов и методов. Создавать экземпляр класса, который был объявлен абстрактным, нельзя. Класс, в котором объявлен хотя бы один абстрактный метод, должен также быть объявлен абстрактным. Методы, объявленные как абстрактные, несут, по существу, лишь описательный смысл и не могут включать какой-либо функционал.

Пример 19-17. Пример абстрактного класса

<?php

abstract class AbstractClass {

   /* Данный метод должен быть определён в дочернем классе */
   abstract protected function getValue();

   /* Общий метод */
   public function print() {
     print $this->getValue();
   }

}

class ConcreteClass1 extends AbstractClass {

   protected function getValue() {
     return "ConcreteClass1";
   }

}

class ConcreteClass2 extends AbstractClass {

   protected function getValue() {
     return "ConcreteClass2";
   }

}

$class1 = new ConcreteClass1;
$class1->print();

$class2 = new ConcreteClass2;
$class2->print();
?>

Код, предназначенный для прежних версий PHP, должен работать без изменений, если в нём отсутствуют классы или функции, именованные "abstract".

Пред. | Начало | След.
Константы в объектах | Уровень выше | Интерфейсы объектов


Интерфейсы объектов

Интерфейсы объектов позволяют программисту создавать код, который указывает, какие методы и свойства должен включать класс, без необходимости описывания их функционала.

Интерфейсы объявляются так же, как и обычные классы, но с использованием ключевого слова "interface"; тела методов интерфейсов должны быть пустыми. Для включения интерфейса в класс программист должен использовать ключевое слово "implements" и описать функционал методов, перечисленных во включаемом интерфейсе. Если это требуется, классы могут включать более одного интерфейса путём их перечисления через пробел.

Если класс включает какой-либо интерфейс и не описывает функционал всех методов этого интерфейса, выполнение кода с использованием такого класса завершится фатальной ошибкой, сообщающей, какие именно методы не были описаны.

Пример 19-18. Пример интерфейса

<?php
interface ITemplate
{
  public function setVariable($name, $var);
  public function getHtml($template);
}

class Template implements ITemplate
{
  private $vars = array();

  public function setVariable($name, $var)
  {
    $this->vars[$name] = $var;
  }

  public function getHtml($template)
  {
    foreach($this->vars as $name => $value) {
      $template = str_replace('{'.$name.'}', $value, $template);
    }

    return $template;
  }
}
?>

Пред. | Начало | След.
Абстрактные классы | Уровень выше | Перегрузка


Перегрузка

Вызовы методов, как и обращения к свойствам объекта, могут быть перегружены с использованием методов __call, __get и __set. Эти методы будут срабатывать только в том случае, если объект или наследуемый объект не содержат свойства или метода, к которому осуществляется доступ.

Перегрузка свойств

void __set ( string имя, mixed значение )

void __get ( mixed имя )

С помощью этих методов обращения к свойствам класса могут быть перегружены с целью выполнения произвольного кода, описанного в классе. В аргументе имя передаётся имя свойства, к которому производится обращение. Аргумент значение метода __set() должен содержать значение, которое будет присвоено свойству класса с именем имя.

Пример 19-19. Пример перегрузки с использование __get и __set

<?php
class Setter {
  public $n;
  private $x = array("a" => 1, "b" => 2, "c" => 3);

  function __get($nm) {
    print "ЧИтаем [$nm]\n";

    if (isset($this->x[$nm])) {
      $r = $this->x[$nm];
      print "Получили: $r\n";
      return $r;
    } else {
      print "Ничего!\n";
    }
  }

  function __set($nm, $val) {
    print "Пишем $val в [$nm]\n";

    if (isset($this->x[$nm])) {
      $this->x[$nm] = $val;
      print "OK!\n";
    } else {
      print "Всё плохо!\n";
    }
  }
}

$foo = new Setter();
$foo->n = 1;
$foo->a = 100;
$foo->a++;
$foo->z++;
var_dump($foo);
?>

Результатом выполнения будет:

Пишем 100 в [a]
OK!
Читаем [a]
Получили: 100
Пишем 101 в [a]
OK!
Читаем [z]
Ничего!
Пишем 1 в [z]
Всё плохо!
object(Setter)#1 (2) {
  ["n"]=>
  int(1)
  ["x:private"]=>
  array(3) {
    ["a"]=>
    int(101)
    ["b"]=>
    int(2)
    ["c"]=>
    int(3)
  }
}

Перегрузка методов

mixed __call ( string имя, array аргументы )

С использованием этого метода, методы класса могут быть перегружены с целью выполнения произвольного кода, описанного в классе. В аргументе имя передаётся имя вызванного метода. Аргументы, которые были переданы методу при обращении, будут возвращены чере аргументы. Значение, возвращённое методом __call(), будет передано вызывающему оператору.

Пример 19-20. Пример перегрузки с использованием __call

<?php
class Caller {
  private $x = array(1, 2, 3);

  function __call($m, $a) {
    print "Вызван метод $m :\n";
    var_dump($a);
    return $this->x;
  }
}

$foo = new Caller();
$a = $foo->test(1, "2", 3.4, true);
var_dump($a);
?>

Результатом выполнения будет:

Вызван метод test:
array(4) {
  [0]=>
  int(1)
  [1]=>
  string(1) "2"
  [2]=>
  float(3.4)
  [3]=>
  bool(true)
}
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

Пред. | Начало | След.
Интерфейсы объектов | Уровень выше | Итераторы объектов


Итераторы объектов

PHP 5 предоставляет механизм итераторов для получения списка всех свойств какого-либо объекта, например, для использования совместно с оператором Разд. foreach в Гл. 16. По умолчанию, в итерации будут участвовать все свойства, объявленные как public.

Пример 19-21. Итерация простого объекта

<?php

class MyClass {
  public $var1 = 'value 1';
  public $var2 = 'value 2';
  public $var3 = 'value 3';

  protected $protected = 'protected';
  private   $private   = 'private';

}

$class = new MyClass();

foreach($class as $key => $value) {
  print "$key => $value\n";
}

Результат:

var1 => value 1
var2 => value 2
var3 => value 3

Как показывает результат, Разд. foreach в Гл. 16 проитерировал все принадлежащие объекту public-свойства. Кроме того, программист может включить (implement) в свой класс один из внутренних Разд. Интерфейсы объектов PHP 5, именуемый Iterator. Это позволит программисту самому определить, каким именно образом будет осуществляться итерация объекта.

Пример 19-22. Объект Iteration, включающий интерфейс Iterator

<?php
class MyIterator implements Iterator {

  private $var = array();

  public function __construct($array) {
    if (is_array($array) ) {
      $this->var = $array;
    }
  }

  public function rewind() {
    echo "перемотка в начало\n";
    reset($this->var);
  }

  public function current() {
    $var = current($this->var);
    echo "текущий: $var\n";
    return $var;
  }

  public function key() {
    $var = key($this->var);
    echo "ключ: $var\n";
    return $var;
  }

  public function next() {
    $var = next($this->var);
    echo "следующий: $var\n";
    return $var;
  }

  public function valid() {
    $var = $this->current() !== false;
    echo "верный: {$var}\n";
    return $var;
  }

}

$values = array(1,2,3);
$it = new MyIterator($values);

foreach ($it as $a => $b) {
  print "$a: $b\n";
}

Результатом выполнения этого кода станет:

перемотка в начало
текущий: 1
верный: 1
текущий: 1
ключ: 0
0: 1
следующий: 2
текущий: 2
верный: 1
текущий: 2
ключ: 1
1: 2
следующий: 3
текущий: 3
верный: 1
текущий: 3
ключ: 2
2: 3
следующий:
текущий:
верный:

Программист также может объявить класс так, чтобы ему не пришлось описывать все методы, перечисленные в интерфейсе Iterator, включая интерфейс PHP 5 IteratorAggregate.

Пример 19-23. Объект Iteration, включающий интерфейс IteratorAggregate

<?php
class MyCollection implements IteratorAggregate {
  private $items = array();
  private $count = 0;

  /* Required definition of interface IteratorAggregate */
  public function getIterator() {
    return new MyIterator($this->items);
  }

  public function add($value) {
    $this->items[$this->count++] = $value;
  }

}

$coll = new MyCollection();
$coll->add('value 1');
$coll->add('value 2');
$coll->add('value 3');

foreach ($coll as $key => $val) {
  echo "key/value: [$key -> $val]\n\n";
}

?>
</pre>

Результат:

rewinding
current: value 1
valid: 1
current: value 1
key: 0
key/value: [0 -> value 1]

next: value 2
current: value 2
valid: 1
current: value 2
key: 1
key/value: [1 -> value 2]

next: value 3
current: value 3
valid: 1
current: value 3
key: 2
key/value: [2 -> value 3]

next:
current:
valid:

Пред. | Начало | След.
Перегрузка | Уровень выше | Patterns


Patterns

Patterns are ways to describe best practices and good designs. They show a flexible solution to common programming problems.

Factory

The Factory pattern allows for the instantiation of objects at runtime. It is called a Factory Pattern since it is responsible for "manufacturing" an object.

Пример 19-24. Factory Method

<?php
class Example
{
    // The factory method
    public static function factory($type)
    {
        if (include_once 'Drivers/' . $type . '.php') {
            $classname = 'Driver_' . $type;
            return new $classname;
        } else {
            throw new Exception ('Driver not found');
        }
    }
}
?>

Defining this method in a class allows drivers to be loaded on the fly. If the Example class was a database abstraction class, loading a MySQL and SQLite driver could be done as follows:

<?php
// Load a MySQL Driver
$mysql = Example::factory('MySQL');

// Load a SQLite Driver
$sqlite = Example::factory('SQLite');
?>

Singleton

The Singleton pattern applies to situations in which there needs to be a single instance of a class. The most common example of this is a database connection. Implementing this pattern allows a programmer to make this single instance easily accessible by many other objects.

Пример 19-25. Singleton Function

<?php
class Example
{
    // Hold an instance of the class
    private static $instance;

    // A private constructor; prevents direct creation of object
    private function __construct()
    {
        echo 'I am constructed';
    }

    // The singleton method
    public static function singleton()
    {
        if (!isset(self::$instance)) {
            $c = __CLASS__;
            self::$instance = new $c;
        }

        return self::$instance;
    }

    // Example method
    public function bark()
    {
        echo 'Woof!';
    }

    // Prevent users to clone the instance
    public function __clone()
    {
        trigger_error('Clone is not allowed.', E_USER_ERROR);
    }

}

?>

This allows a single instance of the Example class to be retrieved.

<?php
// This would fail because the constructor is private
$test = new Example;

// This will always retrieve a single instance of the class
$test = Example::singleton();
$test->bark();

// This will issue an E_USER_ERROR.
$test_clone = clone($test);

?>

Пред. | Начало | След.
Итераторы объектов | Уровень выше | Magic Methods


Magic Methods

The function names __construct, __destruct (see Constructors and Destructors), __call, __get, __set, __isset, __unset (see Overloading), __sleep, __wakeup, __toString, __set_state, __clone and __autoload are magical in PHP classes. You cannot have functions with these names in any of your classes unless you want the magic functionality associated with them.

Предостережение

PHP reserves all function names starting with __ as magical. It is recommended that you do not use function names with __ in PHP unless you want some documented magic functionality.

__sleep and __wakeup

serialize() checks if your class has a function with the magic name __sleep. If so, that function is executed prior to any serialization. It can clean up the object and is supposed to return an array with the names of all variables of that object that should be serialized.

The intended use of __sleep is to close any database connections that the object may have, commit pending data or perform similar cleanup tasks. Also, the function is useful if you have very large objects which do not need to be saved completely.

Conversely, unserialize() checks for the presence of a function with the magic name __wakeup. If present, this function can reconstruct any resources that the object may have.

The intended use of __wakeup is to reestablish any database connections that may have been lost during serialization and perform other reinitialization tasks.

Пример 19-26. Sleep and wakeup

<?php
class Connection {
    protected $link;
    private $server, $username, $password, $db;

    public function __construct($server, $username, $password, $db)
    {
        $this->server = $server;
        $this->username = $username;
        $this->password = $password;
        $this->db = $db;
        $this->connect();
    }

    private function connect()
    {
        $this->link = mysql_connect($this->server, $this->username, $this->password);
        mysql_select_db($this->db, $this->link);
    }

    public function __sleep()
    {
        mysql_close($this->link);
    }

    public function __wakeup()
    {
        $this->connect();
    }
}
?>

__toString

The __toString method allows a class to decide how it will react when it is converted to a string.

Пример 19-27. Simple example

<?php
// Declare a simple class
class TestClass
{
    public $foo;

    public function __construct($foo) {
        $this->foo = $foo;
    }

    public function __toString() {
        return $this->foo;
    }
}

$class = new TestClass('Hello');
echo $class;
?>

Результат выполнения данного примера:

Hello

It is worth noting that the __toString method will only be called when it is directly combined with echo() or print().

Пример 19-28. Cases where __toString is called

<?php
// __toString called
echo $class;

// __toString called (still a normal parameter for echo)
echo 'text', $class;

// __toString not called (concatenation operator used first)
echo 'text' . $class;

// __toString not called (cast to string first)
echo (string) $class;

// __toString not called (cast to string first)
echo "text $class";
?>

__set_state

This static method is called for classes exported by var_export() since PHP 5.1.0.

The only parameter of this method is an array containing exported properties in the form array('property' => value, ...).

Пред. | Начало | След.
Patterns | Уровень выше | Ключевое слово "final"


Ключевое слово "final"

Разместив перед объявлениями методов или свойств класса ключевое слово "final", вы можете предотвратить их переопределение в дочерних классах.

Пример 19-29. Пример окончательных (final) методов

<?php
class BaseClass {
   public function test() {
       echo "Вызван метод BaseClass::test()\n";
   }

   final public function moreTesting() {
       echo "Вызван метод BaseClass::moreTesting()\n";
   }
}

class ChildClass extends BaseClass {
   public function moreTesting() {
       echo "Вызван метод ChildClass::moreTesting()\n";
   }
}
// Выполнение заканчивается фатальной ошибкой: Cannot override final method BaseClass::moreTesting()
// (Метод BaseClass::moretesting() не может быть переопределён)
?>

Пред. | Начало | След.
Magic Methods | Уровень выше | Клонирование объектов


Клонирование объектов

Создание копии объекта с абсолютно идентичными свойствами не всегда является приемлемым вариантом. Хорошим примером необходимости копирования конструкторов может послужить ситуация, когда у вас есть объект, представляющий собой окно GTK и содержащий ресурс-идентификатор этого окна; когда вы создаете копию этого объекта, вам может понадобиться, чтобы копия объекта содержала ресурс-идентификатор нового окна. Другим примером может послужить ситуация, когда ваш объект содержит ссылку на какой-либо другой используемый объект и, когда вы создаёте копию ссылающегося объекта, вам нужно также создать новый экземпляр содержащегося объекта, так, чтобы копия объекта содержала собственный отдельный экземпляр содержащегося объекта.

Копия объекта создается с использованием вызова clone (который вызывает метод __clone() объекта, если это возможно). Вызов метода __clone() не может быть осуществлён непосредственно.

$copy_of_object = clone $object;

Когда программист запрашивает создание копии объекта, PHP 5 определит, был ли для этого объекта объявлен метод __clone() или нет. Если нет, будет вызван метод __clone(), объявленный по умолчанию, который скопирует все свойства объекта. Если метод __clone() был объявлен, создание копий свойств в копии объекта полностью возлагается на него. Для удобства, движок обеспечивает программиста функцией, которая импортирует все свойства из объекта-источника, так что программист может осуществить позначное копирование свойств и переопределять только необходимые.

Пример 19-30. Клонирование объекта

<?php
class MyCloneable {
   static $id = 0;

   function MyCloneable() {
       $this->id = self::$id++;
   }

   function __clone() {
       $this->address = "Москва";
       $this->id = self::$id++;
   }
}

$obj = new MyCloneable();

$obj->name = "Привет";
$obj->address = "Самара";

print $obj->id . "\n";

$obj_cloned = clone $obj;

print $obj_cloned->id . "\n";
print $obj_cloned->name . "\n";
print $obj_cloned->address . "\n";
?>

Пред. | Начало | След.
Ключевое слово "final" | Уровень выше | Сравнение объектов


Сравнение объектов

В PHP 5 сравнение объектов является более сложным процессом, чем в PHP 4, а также процессом, более соответствующим идеологии объектно-ориентированного языка (здесь не имеется в виду, что PHP 5 является таковым).

При использовании оператора сравнения (==), свойства объектов просто сравниваются друг с другом, а именно: два объекта равны, если они содержат одинаковые свойства и одинаковые их значения и являются экземплярами одного и того же класса.

С другой стороны, при использовании оператора идентичности (===), свойства объекта считаются идентичными тогда и только тогда, когда они ссылаются на один и тот же экземпляр одного и того же класса.

Следующий пример внесёт ясность.

Пример 19-31. Пример сравнения объектов в PHP 5

<?php
function bool2str($bool) {
    if ($bool === false) {
            return 'FALSE';
    } else {
            return 'TRUE';
    }
}

function compareObjects(&$o1, &$o2) {
    echo 'o1 == o2 : '.bool2str($o1 == $o2)."\n";
    echo 'o1 != o2 : '.bool2str($o1 != $o2)."\n";
    echo 'o1 === o2 : '.bool2str($o1 === $o2)."\n";
    echo 'o1 !== o2 : '.bool2str($o1 !== $o2)."\n";
}

class Flag {
    var $flag;

    function Flag($flag=true) {
            $this->flag = $flag;
    }
}

class OtherFlag {
    var $flag;

    function OtherFlag($flag=true) {
            $this->flag = $flag;
    }
}

$o = new Flag();
$p = new Flag();
$q = $o;
$r = new OtherFlag();

echo "Два экземпляра одного и того же класса\n";
compareObjects($o, $p);

echo "\nДве ссылки на один и тот же экземпляр\n";
compareObjects($o, $q);

echo "\nЭкземпляры двух разных классов\n";
compareObjects($o, $r);
?>
Результатом выполнения этого кода будет:
Два экземпляра одного и того же класса
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Две ссылки на один и тот же экземпляр
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE

Экземпляры двух разных классов
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Пред. | Начало | След.
Клонирование объектов | Уровень выше | Reflection


Reflection

Introduction

PHP 5 comes with a complete reflection API that adds the ability to reverse-engineer classes, interfaces, functions and methods as well as extensions. Additionally, the reflection API also offers ways of retrieving doc comments for functions, classes and methods.

The reflection API is an object-oriented extension to the Zend Engine, consisting of the following classes:

<?php
class Reflection { }
interface Reflector { }
class ReflectionException extends Exception { }
class ReflectionFunction implements Reflector { }
class ReflectionParameter implements Reflector { }
class ReflectionMethod extends ReflectionFunction { }
class ReflectionClass implements Reflector { }
class ReflectionObject extends ReflectionClass { }
class ReflectionProperty implements Reflector { }
class ReflectionExtension implements Reflector { }
?>

Замечание: For details on these classes, have a look at the next chapters.

If we were to execute the code in the example below:

Пример 19-32. Basic usage of the reflection API

<?php
Reflection::export(new ReflectionClass('Exception'));
?>

Результат выполнения данного примера:

Class [ <internal> class Exception ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [6] {
    Property [ <default> protected $message ]
    Property [ <default> private $string ]
    Property [ <default> protected $code ]
    Property [ <default> protected $file ]
    Property [ <default> protected $line ]
    Property [ <default> private $trace ]
  }

  - Methods [9] {
    Method [ <internal> final private method __clone ] {
    }

    Method [ <internal> <ctor> public method __construct ] {

      - Parameters [2] {
        Parameter #0 [ <required> $message ]
        Parameter #1 [ <required> $code ]
      }
    }

    Method [ <internal> final public method getMessage ] {
    }

    Method [ <internal> final public method getCode ] {
    }

    Method [ <internal> final public method getFile ] {
    }

    Method [ <internal> final public method getLine ] {
    }

    Method [ <internal> final public method getTrace ] {
    }

    Method [ <internal> final public method getTraceAsString ] {
    }

    Method [ <internal> public method __toString ] {
    }
  }
}

ReflectionException

ReflectionException extends the standard Exception and is thrown by Reflection API. No specific methods or properties are introduced.

ReflectionFunction

The ReflectionFunction class lets you reverse-engineer functions.

<?php
class ReflectionFunction implements Reflector
{
    final private __clone()
    public object __construct(string name)
    public string __toString()
    public static string export()
    public string getName()
    public bool isInternal()
    public bool isUserDefined()
    public string getFileName()
    public int getStartLine()
    public int getEndLine()
    public string getDocComment()
    public array getStaticVariables()
    public mixed invoke(mixed* args)
    public mixed invokeArgs(array args)
    public bool returnsReference()
    public ReflectionParameter[] getParameters()
    public int getNumberOfParameters()
    public int getNumberOfRequiredParameters()
}
?>

Замечание: getNumberOfParameters() and getNumberOfRequiredParameters() were added in PHP 5.0.3, while invokeArgs() was added in PHP 5.1.0.

To introspect a function, you will first have to create an instance of the ReflectionFunction class. You can then call any of the above methods on this instance.

Пример 19-33. Using the ReflectionFunction class

<?php
/**
 * A simple counter
 *
 * @return    int
 */
function counter()
{
    static $c = 0;
    return $c++;
}

// Create an instance of the Reflection_Function class
$func = new ReflectionFunction('counter');

// Print out basic information
printf(
    "===> The %s function '%s'\n".
    "     declared in %s\n".
    "     lines %d to %d\n",
    $func->isInternal() ? 'internal' : 'user-defined',
    $func->getName(),
    $func->getFileName(),
    $func->getStartLine(),
    $func->getEndline()
);

// Print documentation comment
printf("---> Documentation:\n %s\n", var_export($func->getDocComment(), 1));

// Print static variables if existant
if ($statics = $func->getStaticVariables())
{
    printf("---> Static variables: %s\n", var_export($statics, 1));
}

// Invoke the function
printf("---> Invokation results in: ");
var_dump($func->invoke());

// you may prefer to use the export() method
echo "\nReflectionFunction::export() results:\n";
echo ReflectionFunction::export('counter');
?>

Замечание: The method invoke() accepts a variable number of arguments which are passed to the function just as in call_user_func().

ReflectionParameter

The ReflectionParameter class retrieves information about a function's or method's parameters.

<?php
class ReflectionParameter implements Reflector
{
    final private __clone()
    public object __construct(string name)
    public string __toString()
    public static string export()
    public string getName()
    public bool isPassedByReference()
    public ReflectionClass getClass()
    public bool isArray()
    public bool allowsNull()
    public bool isOptional()
    public bool isDefaultValueAvailable()
    public mixed getDefaultValue()
}
?>

Замечание:
     getDefaultValue(),
     isDefaultValueAvailable() and
     isOptional() were added in PHP 5.0.3,
     while isArray() was added in PHP 5.1.0.

To introspect function parameters, you will first have to create an instance of the ReflectionFunction or ReflectionMethod classes and then use their getParameters() method to retrieve an array of parameters.

Пример 19-34. Using the ReflectionParameter class

<?php
function foo($a, $b, $c) { }
function bar(Exception $a, &$b, $c) { }
function baz(ReflectionFunction $a, $b = 1, $c = null) { }
function abc() { }

// Create an instance of Reflection_Function with the
// parameter given from the command line.
$reflect = new ReflectionFunction($argv[1]);

echo $reflect;

foreach ($reflect->getParameters() as $i => $param) {
    printf(
        "-- Parameter #%d: %s {\n".
        "   Class: %s\n".
        "   Allows NULL: %s\n".
        "   Passed to by reference: %s\n".
        "   Is optional?: %s\n".
        "}\n",
        $i,
        $param->getName(),
        var_export($param->getClass(), 1),
        var_export($param->allowsNull(), 1),
        var_export($param->isPassedByReference(), 1),
        $param->isOptional() ? 'yes' : 'no'
    );
}
?>

ReflectionClass

The ReflectionClass class lets you reverse-engineer classes.

<?php
class ReflectionClass implements Reflector
{
    final private __clone()
    public object __construct(string name)
    public string __toString()
    public static string export()
    public string getName()
    public bool isInternal()
    public bool isUserDefined()
    public bool isInstantiable()
    public bool hasConstant(string name)
    public bool hasMethod(string name)
    public bool hasProperty(string name)
    public string getFileName()
    public int getStartLine()
    public int getEndLine()
    public string getDocComment()
    public ReflectionMethod getConstructor()
    public ReflectionMethod getMethod(string name)
    public ReflectionMethod[] getMethods()
    public ReflectionProperty getProperty(string name)
    public ReflectionProperty[] getProperties()
    public array getConstants()
    public mixed getConstant(string name)
    public ReflectionClass[] getInterfaces()
    public bool isInterface()
    public bool isAbstract()
    public bool isFinal()
    public int getModifiers()
    public bool isInstance(stdclass object)
    public stdclass newInstance(mixed* args)
    public ReflectionClass getParentClass()
    public bool isSubclassOf(ReflectionClass class)
    public array getStaticProperties()
    public mixed getStaticPropertyValue(string name [, mixed default])
    public void setStaticPropertyValue(string name, mixed value)
    public array getDefaultProperties()
    public bool isIterateable()
    public bool implementsInterface(string name)
    public ReflectionExtension getExtension()
    public string getExtensionName()
}
?>

Замечание: hasConstant(), hasMethod(), hasProperty(), getStaticPropertyValue() and setStaticPropertyValue() were added in PHP 5.1.0.

To introspect a class, you will first have to create an instance of the ReflectionClass class. You can then call any of the above methods on this instance.

Пример 19-35. Using the ReflectionClass class

<?php
interface Serializable
{
    // ...
}

class Object
{
    // ...
}

/**
 * A counter class
 */
class Counter extends Object implements Serializable
{
    const START = 0;
    private static $c = Counter::START;

    /**
     * Invoke counter
     *
     * @access  public
     * @return  int
     */
    public function count() {
        return self::$c++;
    }
}

// Create an instance of the ReflectionClass class
$class = new ReflectionClass('Counter');

// Print out basic information
printf(
    "===> The %s%s%s %s '%s' [extends %s]\n" .
    "     declared in %s\n" .
    "     lines %d to %d\n" .
    "     having the modifiers %d [%s]\n",
        $class->isInternal() ? 'internal' : 'user-defined',
        $class->isAbstract() ? ' abstract' : '',
        $class->isFinal() ? ' final' : '',
        $class->isInterface() ? 'interface' : 'class',
        $class->getName(),
        var_export($class->getParentClass(), 1),
        $class->getFileName(),
        $class->getStartLine(),
        $class->getEndline(),
        $class->getModifiers(),
        implode(' ', Reflection::getModifierNames($class->getModifiers()))
);

// Print documentation comment
printf("---> Documentation:\n %s\n", var_export($class->getDocComment(), 1));

// Print which interfaces are implemented by this class
printf("---> Implements:\n %s\n", var_export($class->getInterfaces(), 1));

// Print class constants
printf("---> Constants: %s\n", var_export($class->getConstants(), 1));

// Print class properties
printf("---> Properties: %s\n", var_export($class->getProperties(), 1));

// Print class methods
printf("---> Methods: %s\n", var_export($class->getMethods(), 1));

// If this class is instantiable, create an instance
if ($class->isInstantiable()) {
    $counter = $class->newInstance();

    echo '---> $counter is instance? ';
    echo $class->isInstance($counter) ? 'yes' : 'no';

    echo "\n---> new Object() is instance? ";
    echo $class->isInstance(new Object()) ? 'yes' : 'no';
}
?>

Замечание: The method newInstance() accepts a variable number of arguments which are passed to the function just as in call_user_func().

Замечание: $class = new ReflectionClass('Foo'); $class->isInstance($arg) is equivalent to $arg instanceof Foo or is_a($arg, 'Foo').

ReflectionMethod

The ReflectionMethod class lets you reverse-engineer class methods.

<?php
class ReflectionMethod extends ReflectionFunction
{
    public __construct(mixed class, string name)
    public string __toString()
    public static string export()
    public mixed invoke(stdclass object, mixed* args)
    public mixed invokeArgs(stdclass object, array args)
    public bool isFinal()
    public bool isAbstract()
    public bool isPublic()
    public bool isPrivate()
    public bool isProtected()
    public bool isStatic()
    public bool isConstructor()
    public bool isDestructor()
    public int getModifiers()
    public ReflectionClass getDeclaringClass()

    // Inherited from ReflectionFunction
    final private __clone()
    public string getName()
    public bool isInternal()
    public bool isUserDefined()
    public string getFileName()
    public int getStartLine()
    public int getEndLine()
    public string getDocComment()
    public array getStaticVariables()
    public bool returnsReference()
    public ReflectionParameter[] getParameters()
    public int getNumberOfParameters()
    public int getNumberOfRequiredParameters()
}
?>

To introspect a method, you will first have to create an instance of the ReflectionMethod class. You can then call any of the above methods on this instance.

Пример 19-36. Using the ReflectionMethod class

<?php
class Counter
{
    private static $c = 0;

    /**
     * Increment counter
     *
     * @final
     * @static
     * @access  public
     * @return  int
     */
    final public static function increment()
    {
        return ++self::$c;
    }
}

// Create an instance of the Reflection_Method class
$method = new ReflectionMethod('Counter', 'increment');

// Print out basic information
printf(
    "===> The %s%s%s%s%s%s%s method '%s' (which is %s)\n" .
    "     declared in %s\n" .
    "     lines %d to %d\n" .
    "     having the modifiers %d[%s]\n",
        $method->isInternal() ? 'internal' : 'user-defined',
        $method->isAbstract() ? ' abstract' : '',
        $method->isFinal() ? ' final' : '',
        $method->isPublic() ? ' public' : '',
        $method->isPrivate() ? ' private' : '',
        $method->isProtected() ? ' protected' : '',
        $method->isStatic() ? ' static' : '',
        $method->getName(),
        $method->isConstructor() ? 'the constructor' : 'a regular method',
        $method->getFileName(),
        $method->getStartLine(),
        $method->getEndline(),
        $method->getModifiers(),
        implode(' ', Reflection::getModifierNames($method->getModifiers()))
);

// Print documentation comment
printf("---> Documentation:\n %s\n", var_export($method->getDocComment(), 1));

// Print static variables if existant
if ($statics= $method->getStaticVariables()) {
    printf("---> Static variables: %s\n", var_export($statics, 1));
}

// Invoke the method
printf("---> Invokation results in: ");
var_dump($method->invoke(NULL));
?>

Замечание: Trying to invoke private, protected or abstract methods will result in an exception being thrown from the invoke() method.

Замечание: For static methods as seen above, you should pass NULL as the first argument to invoke(). For non-static methods, pass an instance of the class.

ReflectionProperty

The ReflectionProperty class lets you reverse-engineer class properties.

<?php
class ReflectionProperty implements Reflector
{
    final private __clone()
    public __construct(mixed class, string name)
    public string __toString()
    public static string export()
    public string getName()
    public bool isPublic()
    public bool isPrivate()
    public bool isProtected()
    public bool isStatic()
    public bool isDefault()
    public int getModifiers()
    public mixed getValue(stdclass object)
    public void setValue(stdclass object, mixed value)
    public ReflectionClass getDeclaringClass()
    public string getDocComment()
}
?>

Замечание: getDocComment() was added in PHP 5.1.0.

To introspect a property, you will first have to create an instance of the ReflectionProperty class. You can then call any of the above methods on this instance.

Пример 19-37. Using the ReflectionProperty class

<?php
class String
{
    public $length  = 5;
}

// Create an instance of the ReflectionProperty class
$prop = new ReflectionProperty('String', 'length');

// Print out basic information
printf(
    "===> The%s%s%s%s property '%s' (which was %s)\n" .
    "     having the modifiers %s\n",
        $prop->isPublic() ? ' public' : '',
        $prop->isPrivate() ? ' private' : '',
        $prop->isProtected() ? ' protected' : '',
        $prop->isStatic() ? ' static' : '',
        $prop->getName(),
        $prop->isDefault() ? 'declared at compile-time' : 'created at run-time',
        var_export(Reflection::getModifierNames($prop->getModifiers()), 1)
);

// Create an instance of String
$obj= new String();

// Get current value
printf("---> Value is: ");
var_dump($prop->getValue($obj));

// Change value
$prop->setValue($obj, 10);
printf("---> Setting value to 10, new value is: ");
var_dump($prop->getValue($obj));

// Dump object
var_dump($obj);
?>

Замечание: Trying to get or set private or protected class property's values will result in an exception being thrown.

ReflectionExtension

The ReflectionExtension class lets you reverse-engineer extensions. You can retrieve all loaded extensions at runtime using the get_loaded_extensions().

<?php
class ReflectionExtension implements Reflector {
    final private __clone()
    public __construct(string name)
    public string __toString()
    public static string export()
    public string getName()
    public string getVersion()
    public ReflectionFunction[] getFunctions()
    public array getConstants()
    public array getINIEntries()
    public ReflectionClass[] getClasses()
    public array getClassNames()
}
?>

To introspect an extension, you will first have to create an instance of the ReflectionExtension class. You can then call any of the above methods on this instance.

Пример 19-38. Using the ReflectionExtension class

<?php
// Create an instance of the ReflectionProperty class
$ext = new ReflectionExtension('standard');

// Print out basic information
printf(
    "Name        : %s\n" .
    "Version     : %s\n" .
    "Functions   : [%d] %s\n" .
    "Constants   : [%d] %s\n" .
    "INI entries : [%d] %s\n" .
    "Classes     : [%d] %s\n",
        $ext->getName(),
        $ext->getVersion() ? $ext->getVersion() : 'NO_VERSION',
        sizeof($ext->getFunctions()),
        var_export($ext->getFunctions(), 1),

        sizeof($ext->getConstants()),
        var_export($ext->getConstants(), 1),

        sizeof($ext->getINIEntries()),
        var_export($ext->getINIEntries(), 1),

        sizeof($ext->getClassNames()),
        var_export($ext->getClassNames(), 1)
);
?>

Extending the reflection classes

In case you want to create specialized versions of the built-in classes (say, for creating colorized HTML when being exported, having easy-access member variables instead of methods or having utility methods), you may go ahead and extend them.

Пример 19-39. Extending the built-in classes

<?php
/**
 * My Reflection_Method class
 */
class My_Reflection_Method extends ReflectionMethod
{
    public $visibility = '';

    public function __construct($o, $m)
    {
        parent::__construct($o, $m);
        $this->visibility= Reflection::getModifierNames($this->getModifiers());
    }
}

/**
 * Demo class #1
 *
 */
class T {
    protected function x() {}
}

/**
 * Demo class #2
 *
 */
class U extends T {
    function x() {}
}

// Print out information
var_dump(new My_Reflection_Method('U', 'x'));
?>

Замечание: Caution: If you're overwriting the constructor, remember to call the parent's constructor _before_ any code you insert. Failing to do so will result in the following: Fatal error: Internal error: Failed to retrieve the reflection object

Пред. | Начало | След.
Сравнение объектов | Уровень выше | Type Hinting


Type Hinting

PHP 5 introduces Type Hinting. Functions are now able to force parameters to be objects (by specifying the name of the class in the function prototype) or arrays (since PHP 5.1).

Пример 19-40. Type Hinting examples

<?php
// An example class
class MyClass
{
    /**
     * A test function
     *
     * First parameter must be an object of type OtherClass
     */
    public function test(OtherClass $otherclass) {
        echo $otherclass->var;
    }

    /**
     * Another test function
     *
     * First parameter must be an array
     */
    public function test_array(array $input_array) {
        print_r($input_array);
    }
}

// Another example class
class OtherClass {
    public $var = 'Hello World';
}
?>

Failing to satisfy the type hint results in a fatal error.

<?php
// An instance of each class
$myclass = new MyClass;
$otherclass = new OtherClass;

// Fatal Error: Argument 1 must be an object of class OtherClass
$myclass->test('hello');

// Fatal Error: Argument 1 must be an instance of OtherClass
$foo = new stdClass;
$myclass->test($foo);

// Fatal Error: Argument 1 must not be null
$myclass->test(null);

// Works: Prints Hello World
$myclass->test($otherclass);

// Fatal Error: Argument 1 must be an array
$myclass->test_array('a string');

// Works: Prints the array
$myclass->test_array(array('a', 'b', 'c'));
?>

Type hinting also works with functions:

<?php
// An example class
class MyClass {
    public $var = 'Hello World';
}

/**
 * A test function
 *
 * First parameter must be an object of type MyClass
 */
function MyFunction (MyClass $foo) {
    echo $foo->var;
}

// Works
$myclass = new MyClass;
MyFunction($myclass);
?>

Type Hints can only be of the object and array (since PHP 5.1) type. Traditional type hinting with int and string isn't supported.

Пред. | Начало | След.
Reflection | Уровень выше | Exceptions


Exceptions

Руководство по PHP
Пред. След.

Глава 20. Exceptions

Содержание
Extending Exceptions

PHP 5 has an exception model similar to that of other programming languages. An exception can be thrown, try and caught within PHP. A Try block must include at least one catch block. Multiple catch blocks can be used to catch different classtypes; execution will continue after that last catch block defined in sequence. Exceptions can be thrown within catch blocks.

When an exception is thrown, code following the statement will not be executed and PHP will attempt to find the first matching catch block. If an exception is not caught a PHP Fatal Error will be issued with an Uncaught Exception message, unless there has been a handler defined with set_exception_handler().

Пример 20-1. Throwing an Exception

<?php
try {
    $error = 'Always throw this error';
    throw new Exception($error);

    // Code following an exception is not executed.
    echo 'Never executed';

} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

// Continue execution
echo 'Hello World';
?>

Extending Exceptions

A User defined Exception class can be defined by extending the built-in Exception class. The members and properties below, show what is accessible within the child class that derives from the built-in Exception class.

Пример 20-2. The Built in Exception class

<?php
class Exception
{
    protected $message = 'Unknown exception';   // exception message
    protected $code = 0;                        // user defined exception code
    protected $file;                            // source filename of exception
    protected $line;                            // source line of exception

    function __construct($message = null, $code = 0);

    final function getMessage();                // message of exception
    final function getCode();                   // code of exception
    final function getFile();                   // source filename
    final function getLine();                   // source line
    final function getTrace();                  // an array of the backtrace()
    final function getTraceAsString();          // formated string of trace

    /* Overrideable */
    function __toString();                       // formated string for display
}
?>

If a class extends the built-in Exception class and re-defines the constructor, it is highly recomended that it also call parent::__construct() to ensure all available data has been properly assigned. The __toString() method can be overriden to provide a custom output when the object is presented as a string.

Пример 20-3. Extending the Exception class

<?php
/**
 * Define a custom exception class
 */
class MyException extends Exception
{
    // Redefine the exception so message isn't optional
    public function __construct($message, $code = 0) {
        // some code

        // make sure everything is assigned properly
        parent::__construct($message, $code);
    }

    // custom string representation of object */
    public function __toString() {
        return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
    }

    public function customFunction() {
        echo "A Custom function for this type of exception\n";
    }
}

/**
 * Create a class to test the exception
 */
class TestException
{
    public $var;

    const THROW_NONE    = 0;
    const THROW_CUSTOM  = 1;
    const THROW_DEFAULT = 2;

    function __construct($avalue = self::THROW_NONE) {

        switch ($avalue) {
            case self::THROW_CUSTOM:
                // throw custom exception
                throw new MyException('1 is an invalid parameter', 5);
                break;

            case self::THROW_DEFAULT:
                // throw default one.
                throw new Exception('2 isnt allowed as a parameter', 6);
                break;

            default:
                // No exception, object will be created.
                $this->var = $avalue;
                break;
        }
    }
}

// Example 1
try {
    $o = new TestException(TestException::THROW_CUSTOM);
} catch (MyException $e) {      // Will be caught
    echo "Caught my exception\n", $e;
    $e->customFunction();
} catch (Exception $e) {        // Skipped
    echo "Caught Default Exception\n", $e;
}

// Continue execution
var_dump($o);
echo "\n\n";

// Example 2
try {
    $o = new TestException(TestException::THROW_DEFAULT);
} catch (MyException $e) {      // Doesn't match this type
    echo "Caught my exception\n", $e;
    $e->customFunction();
} catch (Exception $e) {        // Will be caught
    echo "Caught Default Exception\n", $e;
}

// Continue execution
var_dump($o);
echo "\n\n";

// Example 3
try {
    $o = new TestException(TestException::THROW_CUSTOM);
} catch (Exception $e) {        // Will be caught
    echo "Default Exception caught\n", $e;
}

// Continue execution
var_dump($o);
echo "\n\n";

// Example 4
try {
    $o = new TestException();
} catch (Exception $e) {        // Skipped, no exception
    echo "Default Exception caught\n", $e;
}

// Continue execution
var_dump($o);
echo "\n\n";
?>

Пред. | Начало | След.
Type Hinting | Уровень выше | Ссылки. Разъяснения


Ссылки. Разъяснения

Руководство по PHP
Пред. След.

Глава 21. Ссылки. Разъяснения

Содержание
Что такое ссылки
Что делают ссылки
Чем ссылки не являются
Передача по ссылке
Возвращение по ссылке
Сброс переменных-ссылок
Неявное использование механизма ссылок

Что такое ссылки

Ссылки в PHP - это средство доступа к содержимому одной переменной под разными именами. Они не похожи на указатели C и не являются псевдонимами таблицы символов. В PHP имя переменной и её содержимое - это разные вещи, поэтому одно содержимое может иметь разные имена. Ближайшая аналогия - имена файлов Unix и файлы - имена переменных являются элементами каталогов, а содержимое переменных это сами файлы. Ссылки в PHP - аналог жёстких ссылок (hardlinks) в файловых системах Unix.

Пред. | Начало | След.
Exceptions | Уровень выше | Что делают ссылки


Что делают ссылки

Ссылки в PHP дают возможность двум переменным ссылаться на одно содержимое. Например:

<?php
$a =& $b;
?>

означает, что $a указывает на то же содержание, что и $b.

Замечание: $a и $b здесь абсолютно эквивалентны, но это не означает, что $a указывает на $b или наоборот. Это означает, что $a и $b указывают на одно место.

Замечание: При копировании массива ссылок, они не разыменовываются. Это также касается массивов, передаваемых функциям по значению.

Такой же синтаксис можно использовать и в функциях, возвращая ссылки, а так же в операторе new (начиная с PHP 4.0.4):

<?php
$bar =& new fooclass();
$foo =& find_var($bar);
?>

Замечание: Если опустить &, это приведёт к копированию объекта. Если вы используете $this в классе, операция проводится над текущим экземпляром этого класса. Присвоение без & приведёт к копированию экземпляра, и $this будет работать с копией, что не всегда желательно. Обычно, вам нужно иметь один экземпляр, из соображений производительности и использования памяти.

Операция @, которая скрывает сообщения об ошибках, например в конструкторе @new, не может быть использована совместно с операцией & (&new). Это ограничение интерпретатора Zend.

Внимание

Если переменной, объявленной внутри функции как global, будет присвоена ссылка, она будет видна только в функции. Чтобы избежать это, воспользуйтесь массивом $GLOBALS.

Пример 21-1. Присвоение ссылок глобальным переменным внутри функции

<?php
$var1 = "Example variable";
$var2 = "";

function global_references($use_globals)
{
    global $var1, $var2;
    if (!$use_globals) {
        $var2 =& $var1; // только локально
    } else {
        $GLOBALS["var2"] =& $var1; // глобально
    }
}

global_references(false);
echo "значение var2: '$var2'\n"; // значение var2: ''
global_references(true);
echo "значение var2: '$var2'\n"; // значение var2: 'Example variable'
?>
Думайте о global $var; как о сокращении от $var =& $GLOBALS['var'];. Таким образом, присвоение $var другой ссылки влияет лишь на локальную переменную.

Замечание: При использовании переменной-ссылки в foreach, изменяется содержание, на которое она ссылается.

Пример 21-2. Ссылки и foreach

<?php
$ref = 0;
$row =& $ref;
foreach (array(1, 2, 3) as $row) {
    // do something
}
echo $ref; // 3 - последнее значение, используемое в цикле
?>

Внимание

Сложные массивы в некоторых случаях могут копироваться вместо создания ссылок. например, следующий пример не будет работать как ожидалось.

Пример 21-3. Ссылки и сложные массивы

<?php
$top = array(
    'A' => array(),
    'B' => array(
        'B_b' => array(),
    ),
);

$top['A']['parent'] = &$top;
$top['B']['parent'] = &$top;
$top['B']['B_b']['data'] = 'test';
print_r($top['A']['parent']['B']['B_b']); // array()
?>

Второе, что делают ссылки - передача параметров по ссылке. При этом локальная переменная в функции и переменная в области видимости вызывателя ссылаются на одно и то же содержимое. Пример:

<?php
function foo(&$var)
{
    $var++;
}

$a=5;
foo($a);
?>

Этот код присвоит $a значение 6. Это происходит, потому что в функции foo переменная $var ссылается на то же содержимое, что и переменная $a. См. также детальное объяснение передачи по ссылке.

Третье, что могут ссылк - возвращение значение по ссылке.

Пред. | Начало | След.
Ссылки. Разъяснения | Уровень выше | Чем ссылки не являются


Чем ссылки не являются

Как уже было сказано, ссылки не являются указателями. Это означает, что следующая конструкция не будет делать то, что вы ожидаете:

<?php
function foo(&$var)
{
    $var =& $GLOBALS["baz"];
}
foo($bar);
?>

Переменная $var в фукнции foo будет связана с $bar в вызывателе, но затем она будет перепривязана к $GLOBALS["baz"]. Нет способа связать $bar в области видимости вызывателя с чем-либо ещё путём использования механизма ссылок, поскольку $bar не доступна в функции foo (доступно лишь её значение через $var). Вы можете воспользоваться возвращением ссылок из функции для привязки внешней перменной к другому значению.

Пред. | Начало | След.
Что делают ссылки | Уровень выше | Передача по ссылке


Передача по ссылке

Вы можете передавать переменные в функцию по ссылке, и функция сможет изменять свои аргументы. Синтаксис таков:

<?php
function foo(&$var)
{
    $var++;
}

$a=5;
foo($a);
// $a здесь равно 6
?>

Заметьте, что в вызове функции отсутствует знак ссылки - он есть только в определении функции. Этого достаточно для корректной передачи аргументов по ссылке.

По ссылке можно передавать:

  • Переменные, например foo($a)

  • Оператор new, например foo(new foobar())

  • Ссылки, возвращаемые функцией, например:

    <?php
    function &bar()
    {
            $a = 5;
        return     $a;
    }
    foo(bar());
    ?>

    См. также объяснение возвращения по ссылке.

Любое другое выражение не должно передаваться по ссылке, так как результат не определён. Например, следующая передача по ссылке является неправильной:

<?php
function bar() // Операция & отсутствует
{
    $a = 5;
    return $a;
}
foo(bar());

foo($a = 5); // Выражение, а не переменная
foo(5); // Константа, а не переменная
?>

Эти требования для PHP 4.0.4 и позже.

Пред. | Начало | След.
Чем ссылки не являются | Уровень выше | Возвращение по ссылке


Возвращение по ссылке

Возвращение по ссылке используется в тех случаях, когда вы хотите использовать функцию для выбора переменной, с которой должна быть связана данная ссылка. При возвращении по ссылке используйте такой синтаксис:

<?php
function &find_var($param)
{
    /* ... код ... */
    return $found_var;
}

$foo =& find_var($bar);
$foo->x = 2;
?>

В этом примере устанавливается свойство объекта, возвращённого функцией find_var, а не его копии, как было бы без использования ссылок.

Замечание: В отличие от передачи параметров по ссылке, & здесь нужно использовать в обоих местах - для указания на то, что вы возвращаете ссылку, а не копию, как обычно, и для указания того, что происходит связывание по ссылке, а не обычное присвоение.

Пред. | Начало | След.
Передача по ссылке | Уровень выше | Сброс переменных-ссылок


Сброс переменных-ссылок

При сбросе ссылки, просто разрывается связь имени и содержимого переменной. Это не означает, что содержимое переменной будет разрушено. Например:

<?php
$a = 1;
$b =& $a;
unset($a);
?>

Этот код не сбросит $b, а только $a.

Опять же, можно провести аналогию с вызовом unlink (в Unix).

Пред. | Начало | След.
Возвращение по ссылке | Уровень выше | Неявное использование механизма ссылок


Неявное использование механизма ссылок

Многие синтаксические конструкции PHP реализованы через механизм ссылок, поэтому всё сказанное выше о ссылочном связывании применимо также и к этим конструкциям. Некоторые конструкции, вроде передающих и возвращающих по ссылке, рассмотрены ранее. Другие конструкции, использующие ссылки:

Ссылки global

Если вы объявляете переменную как global $var, вы фактически создаёте ссылку на глобальную переменную. Это означает то же самое, что:

<?php
$var =& $GLOBALS["var"];
?>

Это значит, например, что сброс (unset) $var не приведёт к сбросу глобальной переменной.

$this

В методах объекта, $this всегда является ссылкой на вызывающий объект.

Пред. | Начало | След.
Сброс переменных-ссылок | Уровень выше | Безопасность


Безопасность

Руководство по PHP
Пред. След.

IV. Безопасность

Содержание
22. Вступление
23. Общие рассуждения
24. Если PHP установлен как CGI
25. Если PHP установлен как модуль Apache
26. Безопасность файловой системы
27. Безопасность баз данных
28. Сообщения об ошибках
29. Использование глобальных переменных (Register_Globals)
30. Данные, введенные пользователем
31. Magic Quotes
32. Сокрытие PHP
33. Необходимость обновлений

Пред. | Начало | След.
Неявное использование механизма ссылок |  | Вступление


Вступление

Руководство по PHP
Пред. След.

Глава 22. Вступление

PHP является мощным языком программирования и интерпретатором, взаимодействующим с веб-сервером как модуль либо как независимое бинарное CGI приложение. PHP способен обращаться к файлам, выполнять различные команды на сервере и открывать сетевые соединения. Именно поэтому все скрипты, исполняемые на сервере являются потенциально опасными. PHP изначально разрабатывался как более защищенный (относительно Perl, C) язык для написания CGI-приложений. При помощи ряда настроек во время компиляции, а также настроек во время работы приложения, вы всегда сможете найти подходящее сочетание свободы действий и безопасности.

Поскольку существует много различных способов использования PHP, имеется и множество опций, управляющих его поведением. Широкий выбор опций гарантирует вам возможность использовать PHP в разных целях, но также означает, что некоторые комбинации опций делают сервер незащищенным.

Гибкость конфигурирования PHP можно сравнить с гибкостью самого языка. PHP можно использовать для создания полноценных серверных приложений, использующих доступные для указанного пользователя возможности операционной системы, также возможна реализация включения файлов, хранящихся на сервере с минимальным риском в жестко контролируемой среде. То, насколько безопасен ваш сервер и как настроено окружение, в большей части зависит от PHP-разработчика.

Эта глава начинается с рассмотрения некоторых общих вопросов безопасности, различных конфигурационных опций и их комбинаций, а также ситуаций, когда их использование является безопасным. Кроме того, приводятся некоторые рассуждения касательно безопасного кодирования.

Пред. | Начало | След.
Безопасность | Уровень выше | Общие рассуждения


Общие рассуждения

Руководство по PHP
Пред. След.

Глава 23. Общие рассуждения

Так как абсолютно безопасные системы являются не более, чем мифом, на практике приходится балансировать между комфортом и безопасностью. Если каждая переменная, вводимая пользователем, будет требовать две биометрические проверки (например, сканирование сетчатки глаза и отпечатки пальцев), то вы получите предельно высокую достоверность данных. Но поскольку заполнение сложной формы будет занимать около получаса, у пользователей такой системы непременно возникнет желание обойти навязчивую защиту.

Правильно поставленная защита должна соответствовать основным требованиям безопасности, не ухудшая при этом работу пользователя и не усложняя самому программисту разработку продукта. Вместе с тем, некоторые атаки могут основываться именно на таком подходе к защите, что приводит к ее постепенному ослаблению.

Следует помнить хорошую поговорку: надежность системы определяется ее самым слабым звеном. Например, если все транзакции логируются по времени, месторасположению, типу транзакции и ряду других параметров, но авторизация пользователя происходит всего лишь по куке (cookie), то связь конкретной записи в логе с пользователем системы весьма сомнительна.

При тестировании следует помнить, что вы не можете проверить все возможные варианты даже для простейшей страницы. Данные, которые вы ожидаете, могут совершенно не соответствовать тому, что введет разъяренный служащий, хакер со стажем или домашний кот, разгуливающий по клавиатуре. Поэтому лучше логически подумать над вопросом: в каком месте могут быть введены неожиданные данные, как их можно модифицировать, усечь либо, наоборот, дополнить.

Интернет наполнен людьми, которые хотят сделать себе имя на том, что взломают ваш код, разрушат сайт, опубликуют на нем неуместный контент или просто сделают ваши дни интереснее. И не важно, маленький у вас сайт или большой, если у вас есть онлайн-сервер - вы уже потенциальная жертва. Многие программы-взломщики не смотрят на размер, они просто перебирают массивы IP-адресов, выискивая очередную жертву. Постарайтесь не стать одной из них.

Пред. | Начало | След.
Вступление | Уровень выше | Если PHP установлен как CGI


Если PHP установлен как CGI

Руководство по PHP
Пред. След.

Глава 24. Если PHP установлен как CGI

Содержание
Возможные атаки
Вариант 1: обслуживаются только общедоступные файлы
Вариант 2: использование --enable-force-cgi-redirect
Вариант 3: использование опций doc_root и user_dir
Вариант 4: PHP вне дерева веб-документов

Возможные атаки

Использование PHP как бинарного CGI-приложения является одним из вариантов, когда по каким-либо причинам нежелательно интегрировать PHP в веб-сервер (например Apache) в качестве модуля, либо предполагается использование таких утилит, как chroot и setuid для организации безопасного окружения во время работы скриптов. Такая установка обычно сопровождается копированием исполняемого файла PHP в директорию cgi-bin веб-сервера. CERT (организация, следящая за угрозами безопасности) CA-96.11 рекомендует не помещать какие-либо интерпретаторы в каталог cgi-bin. Даже если PHP используется как самостоятельный интерпрктатор, он спроектирован так, чтобы предотвратить возможность следующих атак:

  • Доступ к системным файлам: http://my.host/cgi-bin/php?/etc/passwd

    Данные, введенные в строке запроса (URL) после вопросительного знака, передаются интерпретатору как аргументы командной строки согласно CGI протоколу. Обычно интерпретаторы открывают и исполняют файл, указанный в качестве первого аргумента.

    В случае использования PHP посредством CGI-протокола он не станет интерпретировать аргументы командной строки.

  • Доступ к произвольному документу на сервере: http://my.host/cgi-bin/php/secret/doc.html

    Согласно общепринятому соглашению часть пути в запрошенной странице, которая расположена после имени выполняемого модуля PHP, /secret/doc.html, используется для указания файла, который будет интерпретирован как CGI-программа Обычно, некоторые конфигурационные опции веб-серевера (например, Action для сервера Apache) используются для перенаправления документа, к примеру, для перенаправления запросов вида http://my.host/secret/script.php интерпретатору PHP. В таком случае веб-сервер вначале проверяет права доступа к директории /secret, и после этого создает перенаправленный запрос http://my.host/cgi-bin/php/secret/script.php. К сожалению, если запрос изначально задан в полном виде, проверка на наличие прав для файла /secret/script.php не выполняется, она происходит только для файла /cgi-bin/php. Таким образом, пользователь имеет возможность обратиться к /cgi-bin/php, и, как следствие, к любому защищенному документу на сервере.

    В PHP, указывая во время компиляции опцию --enable-force-cgi-redirect, а таке опции doc_root и user_dir во время выполнения скрипта, можно предотвратить подобные атаки для директорий с ограниченным доступом. Более детально приведенные опции, а также их комбинации будут рассмотрены ниже.

Пред. | Начало | След.
Общие рассуждения | Уровень выше | Вариант 1: обслуживаются только общедоступные файлы


Вариант 1: обслуживаются только общедоступные файлы

В случае, если на вашем сервере отсутствуют файлы, доступ к которым ограничен паролем либо фильтром по IP-адресам, нет никакой необходимости использовать данные опции. Если ваш веб-сервер не разрешает выполнять перенаправления либо не имеет возможности взаимодействовать с исполняемым PHP-модулем на необходимом уровне безопасности, вы можете использовать опцию --enable-force-cgi-redirect во время сборки PHP. Но при этом вы должны убедиться, что альтернативные способы вызова скрипта, такие как непосредственно вызов http://my.host/cgi-bin/php/dir/script.php либо с переадресацией http://my.host/dir/script.php, недоступны.

В веб-сервере Apache перенаправление может быть сконфигурировано при помощи директив AddHandler и Action (описано ниже).

Пред. | Начало | След.
Если PHP установлен как CGI | Уровень выше | Вариант 2: использование --enable-force-cgi-redirect


Вариант 2: использование --enable-force-cgi-redirect

Эта опция, указываемая во время сборки PHP, предотвращает вызов скриптов непосредственно по адресу вида http://my.host/cgi-bin/php/secretdir/script.php. Вместо этого, PHP будет обрабатывать пришедший запрос только в том случае, если он был перенаправлен веб-сервером.

Обычно перенаправление в веб-сервере Apache настраивается при помощи следующих опций:

Action php-script /cgi-bin/php
AddHandler php-script .php

Эта опция проверена только для веб-сервера Apache, ее работа основывается на установке в случае перенаправления нестандартной переменной REDIRECT_STATUS, находящейся в CGI-окружении. В случае, если ваш веб-сервер не предоставляет возможности однозначно идентифицировать, является ли данный запрос перенаправленным, вы не можете использовать описываемую в данном разделе опцию и должны воспользоваться любым другим методом работы с CGI-приложениями.

Пред. | Начало | След.
Вариант 1: обслуживаются только общедоступные файлы | Уровень выше | Вариант 3: использование опций doc_root и user_dir


Вариант 3: использование опций doc_root и user_dir

Размещение динамического контента, такого как скрипты либо любые другие исполняемые файлы, в директории веб-сервера делает его потенциально опасным. В случае, если в конфигурации сервера допущена ошибка, возможна ситуация, когда скрипты не выполняются, а отображаются в браузере, как обычные HTML-документы, что может привести к утечке конфиденциальной информации (например, паролей), либо информации, являющейся интеллектуальной собственностью. Исходя из таких соображений, многие системные администраторы предпочитают использовать для хранения скриптов отдельную директорию, работая со всеми размещенными в ней файлами по CGI-интерфейсу.

В случае, если невозможно гарантировать, что запросы не перенаправляются, как было показано в предыдущем разделе, необходимо указывать переменную doc_root, которая отличается от корневой директории веб-документов.

Вы можете установить корневую директорию для PHP-скриптов, настроив параметр doc_root в конфигурационном файле, либо установив переменную окружения PHP_DOCUMENT_ROOT. В случае, если PHP используется посредством CGI, полный путь к открываемому файлу будет построен на основании значения переменной doc_root и указанного в запросе пути. Таким образом, вы можете быть уверены, что скрипты будут выполняться только внутри указанной вами директории (кроме директории user_dir, которая описана ниже).

Еще одна используемая при настройке безопасности опция - user_dir. В случае, если переменная user_dir не установлена, путь к открываемому файлу строится относительно doc_root. Запрос вида http://my.host/~user/doc.php приводит к выполнению скрипта, находящегося не в домашнем каталоге соответствующего пользователя, а находящегося в подкаталоге doc_root скрипта ~user/doc.php (да, имя директории начинается с символа ~).

Но если переменной public_php присвоено значение, например, http://my.host/~user/doc.php, тогда в приведенном выше примере будет выполнен скрипт doc.php, находящийся в домашнем каталоге пользователя, в директории public_php. Например, если домашний каталог пользователя /home/user, будет выполнен файл /home/user/public_php/doc.php.

Установка опции user_dir происходит независимо от установки doc_root, таким образом вы можете контролировать корневую директорию веб-сервера и пользовательские директории независимо друг от друга.

Пред. | Начало | След.
Вариант 2: использование --enable-force-cgi-redirect | Уровень выше | Вариант 4: PHP вне дерева веб-документов


Вариант 4: PHP вне дерева веб-документов

Один из способов существенно повысить уровень безопасности - поместить исполняемый модуль PHP вне дерева веб-документов, например в /usr/local/bin. Единственным недостатком такого подхода является то, что первая строка каждого скрипта должна иметь вид:

#!/usr/local/bin/php

Также необходимо сделать все файлы скриптов исполняемыми. Таким образом, скрипт будет рассматриваться так же, как и любое другое CGI-приложение, написанное на Perl, sh или любом другом скриптовом языке, который использует дописывание #! в начало файла для запуска самого себя.

Что бы внутри скрипта вы могли получить корректные значения переменных PATH_INFO и PATH_TRANSLATED, PHP должен быть сконфигурирован с опцией --enable-discard-path.

Пред. | Начало | След.
Вариант 3: использование опций doc_root и user_dir | Уровень выше | Если PHP установлен как модуль Apache


Если PHP установлен как модуль Apache

Руководство по PHP
Пред. След.

Глава 25. Если PHP установлен как модуль Apache

Когда PHP используется как модуль Apache, он наследует права пользователя, с которыми был запущен веб-сервер (обычно это пользователь 'nobody'). Это влияет на обеспечение безопасности и реализацию авторизации. Например, если вы используете базу данных, которая не имеет встроенного механизма разграничения доступа, вам прийдется обеспечить доступ к БД для пользователя 'nobody'. В таком случае зловредный скрипт может получить доступ к базе данных и модифицировать ее, даже не зная логина и пароля. Вполне возможна ситуация, когда веб-паук неверными запросами страницы администратора базы данных уничтожит все данные или даже структуру БД. Вы можете избежать такой ситуации при помощи авторизации Apache или разработав собственную модель доступа, используя LDAP, файлы .htaccess или любые другие технологии, внедряя соответствующий код в ваши скрипты.

Достаточно часто используются такие настройки безопасности, при которых PHP (имеется ввиду пользователь, с правами которого выполняется Apache) имеет минимальные привелегии, например отсутствует возможность записи в пользовательские директории. Или, например, отсутствует возможность работать с базой данных. При этом система безопасности не позволяет записывать как "хорошие", так и "плохие" файлы, аналогично позволяет производить как "хорошие", так и "плохие" транзакции.

Распространенной ошибкой является запуск Apache с правами суперпользователя или любое другое расширение полномочий веб-сервера.

Расширение привилегий веб-сервера до полномочий угрожает работоспособности всей системы, такие команды, как sudo, chroot должны выполняться исключительно теми, кто считает себя профессионалами в вопросах безопасности.

Существует несколько простых решений. Используя open_basedir, вы можете ограничить дерево доступных директорий для PHP. Вы так же можете определить область доступа Apache, ограничив все веб-сервисы не-пользовательскими или не-системными файлами.

Пред. | Начало | След.
Вариант 4: PHP вне дерева веб-документов | Уровень выше | Безопасность файловой системы


Безопасность файловой системы

Руководство по PHP
Пред. След.

Глава 26. Безопасность файловой системы

PHP является одним из важных моментов в вопросе безопасности сервера, поскольку PHP-скрипты могут манипулировать файлами и каталогами на диске. В связи с этим существуют конфигурационные настройки, указывающие, какие файлы могут быть доступны и какие операции с ними можно выполнять. Необходимо проявлять осторожность, поскольку любой из файлов с соответствующими правами доступа может быть прочитан каждым, кто имеет доступ к файловой системе.

Поскольку в PHP изначально предполагался полноправный пользовательский доступ к файловой системе, можно написать скрипт, который позволит читать системные файлы, такие как /etc/passwd, управлять сетевыми соединениями, отправлять задания принтеру, и так далее. Как следствие вы всегда должны быть уверены в том, что файлы, которые вы читаете или модифицируете, соответствуют вашим намерениям.

Рассмотрим следующий пример, в коротом пользователь создал скрипт, удаляющий файл из его домашней директории. Предполагается ситуация, когда веб-интерфейс, написанный на PHP, регулярно используется для работы с файлами, и настройки безопасности позволяют удалять файлы в домашнем каталоге.

Пример 26-1. Недостаточная проверка внешних данных.

<?php
// Удаление файла из домашней директории пользователя
$username = $_POST['user_submitted_name'];
$homedir = "/home/$username";
$file_to_delete = "$userfile";
unlink ("$homedir/$userfile");
echo "$file_to_delete has been deleted!";
?>
Поскольку переменные вводятся в пользовательской форме, существует возможность удалить файлы, принадлежащие кому-либо другому, введя соответствующие значения. В этом случае может понадобиться авторизация. Посмотрим, что произойдет, если будут отправлены значения "../etc/" и "passwd". Скрипт выполнит следующие действия:

Пример 26-2. Атака на файловую систему

<?php
// Удаление любого файла, доступного из PHP-скрипта.
// В случае, если PHP работает с правами пользователя root:
$username = "../etc/";
$homedir = "/home/../etc/";
$file_to_delete = "passwd";
unlink ("/home/../etc/passwd");
echo "/home/../etc/passwd has been deleted!";
?>
Cуществуют два решения описанной проблемы.

  • Ограничить доступ пользователя, с правами которого работает веб-сервер.

  • Проверять все данные, вводимые пользователем.

Вот улучшеный вариант кода:

Пример 26-3. Более безопасная проверка имени файла

<?php
// Удаление любого файла, доступного из PHP-скрипта.
$username = $_SERVER['REMOTE_USER']; // использование авторизации

$homedir = "/home/$username";

$file_to_delete = basename("$userfile"); // усечение пути
unlink ($homedir/$file_to_delete);

$fp = fopen("/home/logging/filedelete.log","+a"); //логируем удаление
$logstring = "$username $homedir $file_to_delete";
fwrite ($fp, $logstring);
fclose($fp);

echo "$file_to_delete has been deleted!";
?>
Однако и такая проверка не учитывает все возможные ситуации. Если система авторизации позволяет пользователям выбирать произвольные логины, вломщик может создать учетную запись вида "../etc/" и система опять окажется уязвимой. Исходя из этого, вам может понадобиться более строгая проверка:

Пример 26-4. Более строгая проверка имени файла

<?php
$username = $_SERVER['REMOTE_USER']; // использование авторизации
$homedir = "/home/$username";

if (!ereg('^[^./][^/]*$', $userfile))
     die('bad filename'); //завершение работы

if (!ereg('^[^./][^/]*$', $username))
     die('bad username'); //завершение работы
//etc...
?>

В зависимости от используемой вами операционной системы необходимо предусматривать возможность атаки на разнообразные файлы, включая системные файлы устройств (/dev/ или COM1), конфигурационные файлы (например /etc/ или файлы с расширением .ini), хорошо известные области хранения данных (/home/, My Documents), и так далее. Исходя из этого, как правило, легче реализовать такую политику безопасности, в которой запрещено все, исключая то, что явно разрешено.

Пред. | Начало | След.
Если PHP установлен как модуль Apache | Уровень выше | Безопасность баз данных


Безопасность баз данных

Руководство по PHP
Пред. След.

Глава 27. Безопасность баз данных

Содержание
Проектирование базы данных
Соединение с базой данных
Защита хранилища базы данных
SQL-инъекции

На сегодняшний день базы данных являются ключевыми компонентами большинства веб-приложений, позволяя предоставлять на сайтах динамический контент. Поскольку в таких БД может храниться очень точная или конфиденциальная информация, вы должны обеспечить хорошую защиту данных.

Для извлечения или сохранения любых данных вам необходимо открыть соединение с базой данных, отправить верный запрос, извлечь результат и закрыть соединение. В настоящее время наиболее распространенный стандарт общения - структурированный язык запросов (SQL). Всегда следует помнить о возможности атаки посредством SQL-запроса.

Очевидно, что сам по себе PHP не может защитить вашу базу данных. Этот раздел документации рассказывает об основах безопасного доступа и управления данными в PHP-скриптах.

Запомните простое правило: максимальная защита. Чем больше потенциально опасных участков системы вы проработаете, тем сложнее будет потенциальному взломщику получить доступ к базе данных или повредить ее. Хороший дизайн базы данных и программных приложений поможет вам справиться с вашими страхами.

Проектирование базы данных

Первый шаг - это всегда создание БД, исключая тот случай, когда вы хотите использовать готовую базу, предоставляемую третьим лицом. После того, как база данных создана, она назначается пользователю, который выполнил создавший БД запрос. Как правило, только владелец (или суперпользователь) может выполнять различные действия с различными объектами, хранимыми в базе данных. Для того, чтобы и другие пользователи имели к ней доступ, их необходимо наделить соответствующими привелегиями.

Приложения не должны соединяться с базой данных, используя учетную запись владельца или суперпользователя, иначе они смогут модифицировать структуру таблиц (например, удалить некоторые таблицы) или даже удалить все содержимое БД целиком.

Вы можете создать различные учетные записи пользователей БД для каждой индивидуальной потребности приложения с соответствующими функциональными ограничениями. Рекомендуется назначать только самые необходимые привилегии, также вы должны избегать ситуаций, когда один и тот же пользователь может взаимодействовать с базой данных в нескольких режимах. Вы должны понимать, что если злоумышленник сможет воспользоваться какой-либо учетной записью вашей БД, он сможет вносить в базу все те изменения, что и программа, которая использует текущую учетную запись.

Вам не обязательно реализовывать всю бизнес-логику в веб-приложении (т.е. в скриптах), для этого также можно использовать возможности, предоставляемые базой данных: триггеры, представления, правила. В случае роста системы вам понадобятся новые соединения с БД, и логику работы понадобиться дублировать для каждого нового интерфейса доступа. Исходя из вышесказанного, триггеры могут использоваться для прозрачной и автоматической обработки записей, что часто необходимо при отладке приложений или при трассировке отката транзакций.

Пред. | Начало | След.
Безопасность файловой системы | Уровень выше | Соединение с базой данных


Соединение с базой данных

Вы можете использовать безопасные SSL или ssh соединения, для шифрования данных, которыми обмениваются клиент и сервер. Если вы реализуете что-нибудь из этого, то мониторинг трафика и сбор данных о вашей базе данных для потенциального взломщика существенно усложнится.

Пред. | Начало | След.
Безопасность баз данных | Уровень выше | Защита хранилища базы данных


Защита хранилища базы данных

SSL/SSH защищает данные, которыми обмениваются клиент и сервер, но не защищают сами данные, хранимые в базе данных. SSL - протокол шифрования на уровне сеанса передачи данных.

В случае, если взломщик получил непосредственный доступ к БД (в обход веб-сервера), он может извлечь интересующие данные или нарушить их целостность, поскольку информация не защищена на уровне самой БД. Шифрование данных - хороший способ предотвратить такую ситуацию, но лишь незначительное количество БД предоставляют такую возможность.

Наиболее простое решение этой проблемы - установить вначале обыкновенный программный пакет для шифрования данных, а затем использовать его в ваших скриптах. PHP, в таком случае, может помочь вам в работе с такими расширениями как Mcrypt и Mhash, реализующими различные алгоритмы криптования. При таком подходе скрипт вначале шифрует сохраняемые данные, а затем дешифрует их при запросе. Ниже приведены примеры того, как работает шифрование данных в PHP-скриптах.

В случае работы со скрытыми служебными данными их нешифрованное представление не требуется (т.е. не отображается), и, как следствие, можно использовать хеширование. Хорошо известный пример хэширования - хранение MD5-хеша от пароля в БД, вместо хранения оригинального значения. Более детальная информация доступна в описании функций crypt() and md5().

Пример 27-1. Использование хешированных паролей

<?php
// сохранение хешированного пароля
$query  = sprintf("INSERT INTO users(name,pwd) VALUES('%s','%s');",
            addslashes($username), md5($password));
$result = pg_exec($connection, $query);

// проверка введенного пользователем логина и пароля на корректность
$query = sprintf("SELECT 1 FROM users WHERE name='%s' AND pwd='%s';",
            addslashes($username), md5($password));
$result = pg_exec($connection, $query);

if (pg_numrows($result) > 0) {
    echo "Welcome, $username!";
}
else {
    echo "Authentication failed for $username.";
}
?>

Пред. | Начало | След.
Соединение с базой данных | Уровень выше | SQL-инъекции


SQL-инъекции

Многие веб-разработчики даже не догадываются, что SQL-запросы могут быть подделаны, и считают, что SQL-запросы всегда достоверны. На самом деле поддельные запросы могут обойти ограничения доступа, стандартную проверку авторизации, а некоторые виды запросов могут дать возможность выполнять команды операционной системы.

Принудительное внедрение вредоносных инструкций в SQL-запросы - методика, в которой взломщик создает или изменяет текущие SQL-запросы для работы со скрытыми данными, их изменения или даже выполнения опасных команд операционной системы на сервере базы данных. Атака выполняется на базе приложения, строящего SQL-запросы из пользовательского ввода и статических переменных. Следующие примеры, к сожалению, построены на реальных фактах.

Благодаря отсутствию проверки пользовательского ввода и соединением с базой данных под учетной записью суперпользователя (или любого другого пользователя, наделенного соответствующими привелегиями), взломщик может создать еще одного пользователя БД с правами суперпользователя.

Пример 27-2. Постраничный вывод результата... и создание суперпользователя в PostgreSQL и MySQL

<?php
$offset = argv[0]; // проверка пользовательских данных отсутствует
$query  = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";
// используя PostgreSQL
$result = pg_exec($conn, $query);
// используя MySQL
$result = mysql_query($query);
?>
Обычно пользователи кликают по ссылкам 'вперед' и 'назад', вследствии чего значение переменной $offset заносится в адресную строку. Скрипт ожидает, что $offset - десятиричное число. Однако, взломщик может попытаться взломать систему, присоединив к строке запроса дополнительную подстроку, обработанную функцией urlencode():

// используя PostgreSQL
0;
insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd)
    select 'crack', usesysid, 't','t','crack'
    from pg_shadow where usename='postgres';
--

// используя MySQL
0;
UPDATE user SET Password=PASSWORD('crack') WHERE user='root';
FLUSH PRIVILEGES;

Если это произойдет, скрипт предоставит взломщику доступ к базе с правами суперпользователя. Заметим, что 0; использован для того, чтобы задать правильное значение смещения для первого запроса и корректно его завершить.

Замечание: Уже привычна технология, когда разработчики указывают принудительное игнорирование парсером SQL оставшейся части запроса при помощи нотации --, означающей комментарий.

Еще один вероятный способ получить пароли учетных записей в БД - атака страниц, предоставляющих поиск по базе. Взломщику нужно лишь проверить, используется ли в запросе передаваемая на сервер и необрабатываемая надлежащим образом переменная. Это может быть один из устанавливаемых на предыдущей странице фильтров, таких как WHERE, ORDER BY, LIMIT и OFFSET, используемых при построении запросов SELECT. В случае, если используемая вами база данных поддерживает конструкцию UNION, взломщик может присоединить к оригинальному запросу еще один дополнительный, для извлечения пользовательских паролей. Настоятельно рекомендуем использовать только зашифрованные пароли.

Пример 27-3. Листинг статей... и некоторых паролей (для любой базы данных)

<?php
$query  = "SELECT id, name, inserted, size FROM products
                  WHERE size = '$size'
                  ORDER BY $order LIMIT $limit, $offset;";
$result = odbc_exec($conn, $query);
?>
Статическая часть запроса может комбинироваться с другим SQL-запросом, который откроет все пароли:

'
union select '1', concat(uname||'-'||passwd) as name, '1971-01-01', '0' from usertable;
--

Если этот запрос (использующий ' и --) присоединить к значению одной из переменных, используемых для формирования $query, запрос заметно преобразится.

Команды UPDATE также могут использоваться для атаки. Опять же, есть угроза разделения инструкции на несколько запросов, присоединения дополнительного запроса. Также взломщик может видоизменить выражение SET. В этом случае потенциальному взломщику необходимо обладать некоторой дополнительной информацией для успешного манипулирования запросами. Эту информацию можно получить, проанализировав используемые в форме имена переменных либо просто перебирая все наиболее распространенные варианты названия соответствующих полей (а их не так уж и много).

Пример 27-4. От восстановления пароля... до получения дополнительных привилегий (для любой базы данных)

<?php
$query = "UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';";
?>
Но злоумышленник может ввести значение ' or uid like'%admin%'; -- для переменной $uid для изменения пароля администратора или просто присвоить переменной $pwd значение "hehehe', admin='yes', trusted=100 " (с завершающими пробелами) для получения дополнительных привелегий. При выполнении запросы переплетаются:

<?php
// $uid == ' or uid like'%admin%'; --
$query = "UPDATE usertable SET pwd='...' WHERE uid='' or uid like '%admin%'; --";

// $pwd == "hehehe', admin='yes', trusted=100 "
$query = "UPDATE usertable SET pwd='hehehe', admin='yes', trusted=100 WHERE ...;";
?>

Пугающий пример того, как на сервере баз данных могут выполняться команды операционной системы.

Пример 27-5. Выполнение команд операционной системы на сервере (для базы MSSQL)

$query  = "SELECT * FROM products WHERE id LIKE '%$prod%'";
$result = mssql_query($query);
Если взломщик введет значениме a%' exec master..xp_cmdshell 'net user test testpass /ADD' -- для переменной $prod, тогда запрос $query будет выглядеть так:

$query  = "SELECT * FROM products
                    WHERE id LIKE '%a%'
                    exec master..xp_cmdshell 'net user test testpass /ADD'--";
$result = mssql_query($query);

MSSQL сервер выполняет SQL-команды в пакетном режиме, в том числе и операции по заведению локальных учетных записей базы данных. В случае, если приложение работает с привилегиями администратора и сервис MSSQL запущен с необходимыми привилегиями, выполнив приведенные выше действия, взломщик получит аккаунт для доступа к серверу.

Замечание: Некоторые приведенные в этой главе примеры касаются конкретной базы данных. Это не означает, что аналогичные атаки на другие программные продукты невозможны. Работоспособность вашей базы данных может быть нарушена каким-либо другим способом.

Способы защиты

Вы можете утешать себя тем, что в большинстве случаев, взломщик должен обладать некоторой информацией о структуре базы данных. Вы правы, но вы не знаете, когда и как будет предпринята попытка взлома, в случае если это произойдет ваша БД окажется незащищенной. Если вы используете программный продукт с открытыми исходными кодами или просто общедоступный пакет для работы с базой данных (например контент менеджер или форум), взломщик легко сможет воспроизвести интересующие его участки кода. В случае если они плохо спроектированы, это может являться одной из угроз вашей безопасности.

Большинство успешных атак основывается на коде, написанном без учета соответствующих требований безопасности. Не доверяйте никаким вводим данным, особенно если они поступают со стороны клиента, даже если это списки в форме, скрытые поля или куки. Приведенные примеры показывают, к каким последствиям могут привести подделанные запросы.

  • Старайтесь не открывать соединение с базой, используя учетную запись владельца или администратора. Всегда старайтесь использовать специально созданных пользователей с максимально ограниченными правами.

  • Всегда проверяйте введенные данные на соответствие ожидаемому типу. В PHP есть множество функций для проверки данных: начиная от простейших Функций для работы с переменными и Функции определения типа символов (такие как is_numeric(), ctype_digit()) и заканчивая Perl-совместимыми регулярными выражениями.

  • В случае, если приложение ожидает цифровой ввод, примените функцию is_numeric() для проверки введенных данных, или принудительно укажите их тип при помощи settype(), или просто используйте числовое представление при помощи функции sprintf().

    Пример 27-6. Более безопасная реализация постраничной навигации

    settype($offset, 'integer');
    $query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";

    // обратите внимание на формат %d, использование %s было бы бессмысленно
    $query = sprintf("SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET %d;",
                     $offset);

  • Экранируйте любой нецифровой ввод, используемый в запросах к БД при помощи функций addslashes() или addcslashes(). Обратите внимание на первый пример. Следует помнить, что одного использования кавычек в запросе мало, это легко обойти.

  • Не выводите никакой информации о БД, особенно о ее структуре. Также ознакомьтесь с соответствующими разделами документации: Сообщения об ошибках и Функции обработки и логирования ошибок.

  • Вы можете использовать хранимые процедуры и заранее определенные курсоры для абстрагированной работы с данными, не предоставляя пользователям прямого доступа к данным и представлениям, но это решение имеет свои особенности.

Помимо всего вышесказанного, вы можете логировать запросы в вашем скрипте либо на уровне базы данных, если она это поддерживает. Очевидно, что логирование не может предотвратить нанесение ущерба, но может помочь при трассировке взломанного приложения. Лог-файл полезен не сам по себе, а информацией, которая в нем содержится. Причем, в большинстве случаев полезно логировать все возможные детали.

Пред. | Начало | След.
Защита хранилища базы данных | Уровень выше | Сообщения об ошибках


Сообщения об ошибках

Руководство по PHP
Пред. След.

Глава 28. Сообщения об ошибках

С точки зрения безопасности вывод сообщений об ошибках несет в себе как плюсы, так и минусы.

Одна из стандартных методик, применяемых в атаках - ввод некорректных данных с последующим анализом содержания и характера сообщений об ошибках. Это дает взломщику возможность проверить скрипты и данные сервера на наличие потенциальных дыр. Например, если взломщик получил некоторую информацию о странице на основании отправки формы, он попробует предопределить некоторые передаваемые значения или модифицировать их:

Пример 28-1. Атака на переменные в HTML-странице

<form method="post" action="attacktarget?username=badfoo&amp;password=badfoo">
<input type="hidden" name="username" value="badfoo" />
<input type="hidden" name="password" value="badfoo" />
</form>

Возникаемые во время работы скриптов ошибки являются достаточно ценной информацией для разработчика, содержащей такие данные, как функция или файл, а также номер строки, в которой возникла ошибка. Вся эта информация может быть использована для взлома. Для PHP-разработчика достаточно привычно пользоваться такими функциями, как show_source(), highlight_string() или highlight_file() в целях отладки, но в живых сайтах это может открыть информацию о скрытых переменных, непроверяемом синтаксисе и других потенциально опасных моментах. Особенно опасно наличие кода со встроенным механизмом отладки в публичных частях сайта. Взломщик может попытаться запустить отладочный механизм, подбирая основные признаки отладки:

Пример 28-2. Использование стандартных отладочных переменных

<form method="post" action="attacktarget?errors=Y&amp;showerrors=1&amp;debug=1">
<input type="hidden" name="errors" value="Y" />
<input type="hidden" name="showerrors" value="1" />
<input type="hidden" name="debug" value="1" />
</form>

Независимо от метода обработки ошибок возможность проверки системы на наличие ошибок снабжает взломщика дополнительной информацией.

Например, стандартный вывод об ошибке указывает операционную систему, в которой выполняются PHP скрипты. Если взломщик анализирует обыкновенную HTML-страницу, пытаясь найти уязвимые места, используя ввод неверных данных он может обнаружить использование PHP скриптов в данной системе.

Также уведомление об ошибке может дать информацию о том, какая база данных используется, или, к примеру, как построена логика работы скриптов. Это, в свою очередь, может позволить взломщику подключиться к открытому порту базы данных либо найти специфичные ошибки в коде. Пробуя поочередно различные неверные блоки данных, злоумышленник может определить порядок аутентификации в скрипте (например, по номерам строк с ошибками) или проверять на наличие дыр различные участки кода.

Вывод стандартных ошибок, связанных с файловой системой, может указать, с какими привелегиями запущен веб-сервер, и как организованы каталоги сайта. Обработка подобных ошибок, написанная разработчиками приложения, может только усугубить проблему, если взломщиком будет найден способ обнаружить "скрытую" отладочную информацию.

Существует три основныч способа решения этой проблемы. Первый заключается в том, чтобы структурировать все функции и попытаться компенсировать объем выдаваемых ошибок. Второй способ - полностью отключить в работающем коде вывод сообщений об ошибках. И, наконец, третий способ - использовать специальные средства PHP для создания собственного обработчика ошибок. В зависимости от используемой вами политики безопасности вы можете применять в вашей конкретной ситуации все три способа.

Один из возможных способов обезопасить ваш код перед его публикацией для общего доступа - индивидуальное использование error_reporting(), чтобы выявить потенциально опасные переменные. Тестируя код перед выпуском релиза при помощи значения E_ALL, вы достаточно легко можете обнаружить участки кода, в которых переменные могут быть подменены либо модифицированы. После окончания тестирования, установив значение E_NONE, вы можете полностью отключить вывод сообщений об ошибках.

Пример 28-3. Поиск потенциально опасных переменных при помощи E_ALL

<?php
if ($username) {  // Переменная не инициализируется перед использованием
    $good_login = 1;
}
if ($good_login == 1) { // Если предыдущая проверка потерпела неудачу, переменная оказывается неинициализированной
    readfile ("/highly/sensitive/data/index.html");
}
?>

Пред. | Начало | След.
SQL-инъекции | Уровень выше | Использование глобальных переменных (Register_Globals)


Использование глобальных переменных (Register_Globals)

Руководство по PHP
Пред. След.

Глава 29. Использование глобальных переменных (Register_Globals)

Наверное, наиболее спорным моментом в разработке PHP стала замена значения по умолчанию для опции register_globals с ON на OFF в версии 4.2.0. Большинство пользователей доверились разработчикам, даже не зная, что это за опция и как она влияет на работу PHP. Эта страница документации призвана показать, как эта настройка сочетается с вопросами безопасности при разработке приложений. Следует понимать, что сама по себе эта опция никак не влияет на безопасность, ургозу представляет некорректное использование предоставляемых ею возможностей.

В случае, если значение параметра register_globals ON, перед выполнением вашего кода будут инициализированы различные переменные, например, переменные, переданные при отправке формы. Также, учитывая тот факт, что PHP не требует инициализации переменных, написать потенциально опасный код очень легко. Это было очень спорным решением, но общество разработчиков PHP решило изменить значение по умолчанию этой директивы на OFF. В противном случае при написании кода разработчики не могли бы с уверенностью сказать, откуда пришла та или иная переменная и насколько она достоверна. До такого нововведения переменные, определяемые разработчиком внутри скрипта, и передаваемые пользователем внешние данные могли перемешиваться. Приведем простой пример злоупотребления конфигурационной опцией register_globals:

Пример 29-1. Пример опасного кода с register_globals = on

<?php
// устанавливаем переменную $authorized = true только для пользователей, прошедших авторизацию
if (authenticated_user()) {
    $authorized = true;
}

// Поскольку в случае неудачи при проверке авторизации переменная $authorized
// не установлена, она может быть установлена автоматически, благодаря register_globals,
// например, при GET запросе GET auth.php?authorized=1.
// Таким образом, пройти эту проверку можно без авторизации
if ($authorized) {
    include "/highly/sensitive/data.php";
}
?>

В случае register_globals = on логика работы скрипта может быть нарушена. В случае, если установленное значение off, переменная $authorized не может быть установлена из внешних данных запроса, и скрипт будет работать корректно. Но все же инициализация переменных - один из признаков хорошего тона в программировании. Например, в приведенном выше участке кода мы могли поместить $authorized = false в качестве первой строки. Такой код работал бы как со значением on, так и off опции register_globals, и подразумевая, что по умолчанию пользователь не проходил авторизацию.

Приведем еще один пример, использующий сессии. В случае, если register_globals = on, мы можем использовать переменную $username в приведенном ниже примере, но тогда у нас не будет уверенности в достоверности ее значения (к примеру, она могла быть передана в GET-запросе).

Пример 29-2. Пример использования сессий со значением register_globals on или off

<?php
// Мы не знаем, откуда получена переменная $username, но точно знаем, что
// переменная $_SESSION хранит в себе данные сессии
if (isset($_SESSION['username'])) {

    echo "Hello <b>{$_SESSION['username']}</b>";

} else {

    echo "Hello <b>Guest</b><br />";
    echo "Would you like to login?";

}
?>

Также существует возможность реализации оперативного реагирования в случае попытки подмены переменных. Так как во время разработки приложения мы знаем ожидаемое значение переменной, а также знаем ее достоверное значение, мы можем их сопоставить. Это не защитит код от подмены переменных, но усложнит перебор возможных вариантов. Если вы не хотите знать, как именно были получены внешние данные, используйте переменную $_REQUEST, которая состоит из данных GET и POST запросов, а также данных COOKIE. Также, информацию об этом можно найти в разделе внешние данные в PHP.

Пример 29-3. Обнаружение попытки подмены переменных

<?php
if (isset($_COOKIE['MAGIC_COOKIE'])) {

    // MAGIC_COOKIE получена из достоверного источника.
    // Для полной уверенности необходимо проверить ее значение.

} elseif (isset($_GET['MAGIC_COOKIE']) || isset($_POST['MAGIC_COOKIE'])) {

   mail("admin@example.com", "Обнаружена попытка взлома", $_SERVER['REMOTE_ADDR']);
   echo "Обнаружено нарушение безопасности, администратор уведомлен.";
   exit;

} else {

   // MAGIC_COOKIE в данных запроса не присутствует
}
?>

Следует понимать, что установка register_globals в off не сделает ваш код безопасным. Каждую полученную от пользователя переменную следует проверять на соответствие ожидаемому значению. Всегда проверяйте ввод пользователя и инициализируйте все используемые переменные. Для проверки на наличие неинициализированных переменных можно включить в опцию error_reporting() отображение ошибок категории E_NOTICE.

Суперглобальные переменные: замечание о доступности: Начиная с PHP 4.1.0, стали доступными суперглобальные массивы, такие как $_GET, $_POST, $_SERVER и т.д. Дополнительную информацию смотрите в разделе руководства superglobals

Пред. | Начало | След.
Сообщения об ошибках | Уровень выше | Данные, введенные пользователем


Данные, введенные пользователем

Руководство по PHP
Пред. След.

Глава 30. Данные, введенные пользователем

Наиболее опасные дыры во многих PHP-скриптах возникают не столько из-за самого языка, сколько из-за кода, написанного без учета соответствующих требований безопасности. Как следствие, вы всегда должны выделять время на исследование разрабатываемого участка кода, чтобы оценить потенциальную угрозу от ввода переменной с нестандартным значением.

Пример 30-1. Потенциально опасное использование переменных

<?php
// удалить файлы из домашней директории пользователя...
// а может, еще что нибудь?
unlink ($evil_var);

// записать в лог-файл выполняемое действие...
// может быть, даже /etc/passwd?
fwrite ($fp, $evil_var);

// выполнение тривиальных действий... или rm -rf *?
system ($evil_var);
exec ($evil_var);

?>
Вы должны тщательно проверять ваш код и быть абсолютно уверены в том, что все данные, передаваемые веб-браузером, проверяются надлежащим образом. Попробуйте ответить для себя на следующие вопросы:

  • Будет ли данный скрипт воздействовать исключительно на предполагаемые данные?

  • Правильно ли будут обработаны некорректные или нестандартные данные?

  • Возможно ли использование скрипта не предусмотренным способом?

  • Возможно ли его использование в сочетании с другими скриптами в негативных целях?

  • Будет ли каждая транзакция корректно логирована?

Ответив на эти вопросы во время написания скрипта, а не после, вы, возможно, предотвратите последующую доработку скрипта в целях повышения его безопасности. Начиная разработку с этих вопросов, вы не гарантируете полную безопасность вашей системы, но сможете значительно повысить её.

Вы также можете предусмотреть отключение таких конфигурационных опций, как register_globals, magic_quotes и некоторых других, которые могут приводить к сомнениям относительно происхождения или значения получаемых переменных. Использование при написании кода режима error_reporting(E_ALL) может помочь, предупреждая вас об использовании переменных до инициализации или проверки (что предотвратит работу с данными, отличныи от ожидаемых).

Пред. | Начало | След.
Использование глобальных переменных (Register_Globals) | Уровень выше | Magic Quotes


Magic Quotes

Руководство по PHP
Пред. След.

Глава 31. Magic Quotes

Содержание
What are Magic Quotes
Why use Magic Quotes
Why not to use Magic Quotes
Disabling Magic Quotes

Magic Quotes is a process that automagically escapes incoming data to the PHP script. It's preferred to code with magic quotes off and to instead escape the data at runtime, as needed.

What are Magic Quotes

When on, all ' (single-quote), " (double quote), \ (backslash) and NULL characters are escaped with a backslash automatically. This is identical to what addslashes() does.

There are three magic quote directives:

  • magic_quotes_gpc

    Affects HTTP Request data (GET, POST, and COOKIE). Cannot be set at runtime, and defaults to on in PHP.

    See also get_magic_quotes_gpc().

  • magic_quotes_runtime

    If enabled, most functions that return data from an external source, including databases and text files, will have quotes escaped with a backslash. Can be set at runtime, and defaults to off in PHP.

    See also set_magic_quotes_runtime() and get_magic_quotes_runtime().

  • magic_quotes_sybase

    If enabled, a single-quote is escaped with a single-quote instead of a backslash. If on, it completely overrides magic_quotes_gpc. Having both directives enabled means only single quotes are escaped as ''. Double quotes, backslashes and NULL's will remain untouched and unescaped.

    See also ini_get() for retrieving its value.

Пред. | Начало | След.
Данные, введенные пользователем | Уровень выше | Why use Magic Quotes


Why use Magic Quotes

  • Useful for beginners

    Magic quotes are implemented in PHP to help code written by beginners from being dangerous. Although SQL Injection is still possible with magic quotes on, the risk is reduced.

  • Convenience

    For inserting data into a database, magic quotes essentially runs addslashes() on all Get, Post, and Cookie data, and does so automagically.

Пред. | Начало | След.
Magic Quotes | Уровень выше | Why not to use Magic Quotes


Why not to use Magic Quotes

  • Portability

    Assuming it to be on, or off, affects portability. Use get_magic_quotes_gpc() to check for this, and code accordingly.

  • Performance

    Because not every piece of escaped data is inserted into a database, there is a performance loss for escaping all this data. Simply calling on the escaping functions (like addslashes()) at runtime is more efficient.

    Although php.ini-dist enables these directives by default, php.ini-recommended disables it. This recommendation is mainly due to performance reasons.

  • Inconvenience

    Because not all data needs escaping, it's often annoying to see escaped data where it shouldn't be. For example, emailing from a form, and seeing a bunch of \' within the email. To fix, this may require excessive use of stripslashes().

Пред. | Начало | След.
Why use Magic Quotes | Уровень выше | Disabling Magic Quotes


Disabling Magic Quotes

The magic_quotes_gpc directive may only be disabled at the system level, and not at runtime. In otherwords, use of ini_set() is not an option.

Пример 31-1. Disabling magic quotes server side

An example that sets the value of these directives to Off in php.ini. For additional details, read the manual section titled How to change configuration settings.

; Magic quotes
;

; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off

; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
magic_quotes_runtime = Off

; Use Sybase-style magic quotes (escape ' with '' instead of \').
magic_quotes_sybase = Off

If access to the server configuration is unavailable, use of .htaccess is also an option. For example:

php_flag magic_quotes_gpc Off

In the interest of writing portable code (code that works in any environment), like if setting at the server level is not possible, here's an example to disable magic_quotes_gpc at runtime. This method is inefficient so it's preferred to instead set the appropriate directives elsewhere.

Пример 31-2. Disabling magic quotes at runtime

<?php
if (get_magic_quotes_gpc()) {
    function stripslashes_deep($value)
    {
        $value = is_array($value) ?
                    array_map('stripslashes_deep', $value) :
                    stripslashes($value);

        return $value;
    }

    $_POST = array_map('stripslashes_deep', $_POST);
    $_GET = array_map('stripslashes_deep', $_GET);
    $_COOKIE = array_map('stripslashes_deep', $_COOKIE);
}
?>

Пред. | Начало | След.
Why not to use Magic Quotes | Уровень выше | Сокрытие PHP


Сокрытие PHP

Руководство по PHP
Пред. След.

Глава 32. Сокрытие PHP

В общем случае внесение неясности ненамного улучшает защищенность системы. Но бывают случаи, когда следует использовать малейшую возможность.

Несколько несложных методик могут помочь вам скрыть PHP, что усложняет работу потенциального взломщика, который пытается найти брешь в вашей системе. Установив опцию expose_php = off в конфигурационном файле php.ini, вы уменьшите количество доступной хакеру информации.

Еще одна методика заключается в настройке веб-сервера таким образом, чтобы он обрабатывал файлы с различными расширениями как PHP-скрипты. Это можно указать как в .htaccess файлах, так и конфигурационном файле Apache. В таком случае вы сможете использовать при написании кода нестандартные расширения:

Пример 32-1. Маскировка PHP под другие языки программирования

# Теперь PHP-скрипты могут иметь те же расширения, что и другие языки программирования
AddType application/x-httpd-php .asp .py .pl
Или скрыть его совсем:

Пример 32-2. Использование неизвестных расширений для PHP-скриптов

# Теперь PHP-скрипты могут иметь неизвестные типы файлов
AddType application/x-httpd-php .bop .foo .133t
Также можно спрятать его под видом HTML-кода, что приведет к потере производительности, так как все HTML файлы будут обрабатываться как PHP-код:

Пример 32-3. Маскировка PHP-кода под html-файлы

# Теперь PHP-скртпы могут выглядеть как обыкновенный HTML
AddType application/x-httpd-php .htm .html
Чтобы достичь желаемого эффекта, вы должны переименовать все ваши скрипты в соответствии с выбранным вами расширением. Описанное в этом разделе документации повышение безопасности через сокрытие PHP имеет мало недостатков при небольших затратах.

Пред. | Начало | След.
Disabling Magic Quotes | Уровень выше | Необходимость обновлений


Необходимость обновлений

Руководство по PHP
Пред. След.

Глава 33. Необходимость обновлений

PHP, как и любая другая система, все время тщательно проверяется и улучшается. Каждая новая версия содержит множество как существенных, так и мелких новшеств и доработок, которые, в том числе, касаются повышения безопасности, расширения конфигурационных возможностей, а так же стабильности вашей системы.

Как и в других языках программирования, рекомендуется регулярно обновлять PHP и быть в курсе изменений, сделанных в последних версиях.

Пред. | Начало | След.
Сокрытие PHP | Уровень выше | Отличительные особенности


Отличительные особенности

Руководство по PHP
Пред. След.

V. Отличительные особенности

Содержание
34. HTTP-Аутентификация в PHP
35. Cookies
36. Sessions
37. Работа с XForms
38. Загрузка файлов на сервер
39. Работа с удаленными файлами
40. Работа с соединениями
41. Постоянные соединения с базами данных
42. Защищенный режим
43. Использование PHP в командной строке

Пред. | Начало | След.
Необходимость обновлений |  | HTTP-Аутентификация в PHP


HTTP-Аутентификация в PHP

Руководство по PHP
Пред. След.

Глава 34. HTTP-Аутентификация в PHP

HTTP-Аутентификация в PHP возможна только в том случае, когда он выполняется как модуль веб-сервера Apache, и, соответственно, недоступна для CGI-версии. Ваш скрипт может использовать функцию header() для того, чтобы отправить браузеру клиента сообщение "Authentication Required", что в свою очередь приведет к появлению диалогового окна для ввода имени пользователя и пароля. После того как клиент ввел свое имя и пароль, скрипт будет вызван повторно, но уже с предопределенными переменными PHP_AUTH_USER, PHP_AUTH_PW и AUTH_TYPE, которые соответственно содержат имя пользователя, пароль и тип аутентификации. Эти переменные могут быть найдены в массиве $_SERVER и $HTTP_SERVER_VARS. В настоящее время поддерживается только "Basic"-аутентификация. Также вы можете ознакомится с более детальным описанием функции header().

Замечание касательно версии PHP: Cуперглобальные переменные, такие как $_SERVER, доступны, начиная с 4.1.0. Массив $HTTP_SERVER_VARS доступен в PHP 3 и выше.

Пример фрагмента скрипта, который вынуждает клиента авторизироваться для просмотра страницы:

Пример 34-1. Пример HTTP-аутентификации

<?php
  if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Текст, отправляемый в том случае,
    если пользователь нажал кнопку Cancel';
    exit;
  } else {
    echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo "<p>Вы ввели пароль {$_SERVER['PHP_AUTH_PW']}.</p>";
  }
?>

Замечание касательно совместимости: Будьте особенно внимательны при указании HTTP-заголовков. Для того, чтобы гарантировать максимальную совместимость с наибольшим количеством различных клиентов, слово "Basic" должно быть написано с большой буквы "B", регион (realm) должен быть взят в двойный (не одинарные!) кавычки, и ровно один пробел должен предшествовать коду 401 в заголовке HTTP/1.0 401.

Вместо простого отображения на экране переменных PHP_AUTH_USER и PHP_AUTH_PW, вам, возможно, понадобится проверить их корректность. Используйте для этого запрос к базе данных или поиск пользователя в dbm-файле.

Вы можете пронаблюдать особенности работы браузера Internet Explorer. Он очень требователен к параметру передаваемых заголовков. Указание заголовка WWW-Authenticate перед отправкой статуса HTTP/1.0 401 является небольшой хитростью.

Начиная с PHP 4.3.0, для того, чтобы предотвратить написание кем-либо скрипта, раскрывающего пароль к странице, которая использует внешнюю аутентификацию, переменные PHP_AUTH не устанавливаются в случае, если данная страница использует внешнюю аутентификацию и установлен безопасный режим. Несмотря на это, переменная REMOTE_USER может использоваться для аутентификации пользователя, прошедшего внешнюю аутентификацию. Таким образом, вы всегда можете воспользоваться переменной $_SERVER['REMOTE_USER'].

Замечание касательно конфигурации: PHP использует указание директивы AuthType для указания того, используется внешняя аутентификация или нет.

Следует заметить, что все вышесказанное не предотвращает похищения паролей к страницам, требующим авторизацию, кем-либо, кто контролирует страницы без авторизации, расположенные на том же сервере.

И Netscape Navigator и Internet Explorer очищают кеш аутентификации текущего окна для заданного региона (realm) при получении от сервера. Это может использоваться для реализации принудительного выхода пользователя и повторного отображения диалогового окна для ввода имени пользователя и пароля. Некоторые разработчики используют это для ограничения авторизации по времени или для предоставления кнопки "Выход".

Пример 34-2. Пример HTTP-аутентификации с принудительным вводом новой пары логин/пароль

<?php
  function authenticate() {
    header('WWW-Authenticate: Basic realm="Test Authentication System"');
    header('HTTP/1.0 401 Unauthorized');
    echo "Вы должны ввести корректный логин и пароль для получения доступа к ресурсу \n";
    exit;
  }

  if (!isset($_SERVER['PHP_AUTH_USER']) ||
      ($_POST['SeenBefore'] == 1 && $_POST['OldAuth'] == $_SERVER['PHP_AUTH_USER'])) {
   authenticate();
  }
  else {
   echo "<p>Добро пожаловать: {$_SERVER['PHP_AUTH_USER']}<br />";
   echo "Предыдущий логин: {$_REQUEST['OldAuth']}";
   echo "<form action='{$_SERVER['PHP_SELF']}' METHOD='post'>\n";
   echo "<input type='hidden' name='SeenBefore' value='1' />\n";
   echo "<input type='hidden' name='OldAuth' value='{$_SERVER['PHP_AUTH_USER']}' />\n";
   echo "<input type='submit' value='Авторизоваться повторно' />\n";
   echo "</form></p>\n";
  }
?>

Это поведение не регламентируется стандартами HTTP Basic-аутентификации, следовательно, вы не должны зависеть от этого. Как показали тесты, браузер Lynx не очищает кеш авторизации при получении от сервера статуса 401, и, нажав последовательно "Back", а затем "Forward" возможно открыть такую страницу, при условии, что требуемые атрибуты авториазации не изменились. Однако, пользователь может нажать клавишу '_' для очистки кеша аутентификации.

Также следует заметить, что до версии PHP 4.3.3, HTTP-аутентификация не работала на серверах под управлением Microsoft IIS, если PHP был установлен как CGI-модуль, в силу некоторых ограничений IIS. Для того, чтобы добиться корректной работы в PHP 4.3.3+, вы должны отредактировать конфигурационную настройку IIS под названием "Directory Security". Щелкните на надписи "Edit" и установите опцию "Anonymous Access", все остальные поля должны остаться неотмеченными.

Еще одно ограничение, если вы используете IIS посредством ISAPI: переменные PHP_AUTH_* не определены, но в то же время доступна переменная HTTP_AUTHORIZATION. Пример кода, который вы могли бы использовать: list($user, $pw) = explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));

Замечание касательно IIS:: Для того, чтобы HTTP-аутентификация корректно работала в IIS, в конфигурации PHP опция cgi.rfc2616_headers должна быть установлена значением 0 (значение по умолчанию).

Замечание: В случае, если используется защищенный режим, UID текущего скрипта будет добавлен в realm-часть заголовка WWW-Authenticate.

Пред. | Начало | След.
Отличительные особенности | Уровень выше | Cookies


Cookies

Руководство по PHP
Пред. След.

Глава 35. Cookies

PHP прозрачно поддерживает HTTP cookies. Cookies это механизм хранения данных броузером удаленной машины для отслеживания или идентификации возвращающихся посетителей. Вы можете установить cookies при помощи функций setcookie() или setrawcookie(). Cookies являются частью HTTP-заголовка, поэтому setcookie() должна вызываться до любого вывода данных в броузер. Это то же самое ограничение, которое имеет функция header(). Вы можете использовать функции буферизации вывода, чтобы задержать вывод результатов работы скрипта до того момента, когда будет известно, понадобится ли установка cookies или других HTTP-заголовков.

Любые cookies, отправленные серверу броузером клиента, будут автоматически преобразованы в переменные PHP, подобно данным методов GET и POST. На этот процесс влияют конфигурационные директивы register_globals и variables_order . Для назначения нескольких значений одной cookie, просто добавьте [] к её имени.

В PHP 4.1.0 и выше, глобальный массив $_COOKIE всегда автоматически заполняется значениями полученных cookies. В более ранних версиях определяется массив $HTTP_COOKIE_VARS но только когда включена директива track_vars. (Эта директива всегда включена начиная с PHP 4.0.3.)

Дополнительная информация, в том числе и об особенностях реализации броузеров, приведена в описании функций setcookie() и setrawcookie().

Пред. | Начало | След.
HTTP-Аутентификация в PHP | Уровень выше | Sessions


Sessions

Руководство по PHP
Пред. След.

Глава 36. Sessions

Session support in PHP consists of a way to preserve certain data across subsequent accesses. This enables you to build more customized applications and increase the appeal of your web site. All information is in the Session reference section.

Пред. | Начало | След.
Cookies | Уровень выше | Работа с XForms


Работа с XForms

Руководство по PHP
Пред. След.

Глава 37. Работа с XForms

XForms являются альтернативой традиционным веб-формам, и позволяют использовать их на множестве платформ и браузеров, а также реализовывать нестандартные представления форм, например, в виде PDF-документа.

Первое существенное отличие XForms заключается в том, как форма отсылается клиенту. Руководство XForms для HTML-верстальщиков содержит детальное описание создания XForms. Для того, чтобы очертить основную идею руководства, приведем несколько простых примеров.

Пример 37-1. Простая XForms для поисковой формы

<h:html xmlns:h="http://www.w3.org/1999/xhtml"
        xmlns="http://www.w3.org/2002/xforms">
<h:head>
 <h:title>Search</h:title>
 <model>
  <submission action="http://example.com/search"
              method="post" id="s"/>
 </model>
</h:head>
<h:body>
 <h:p>
  <input ref="q"><label>Find</label></input>
  <submit submission="s"><label>Go</label></submit>
 </h:p>
</h:body>
</h:html>

Приведенная выше форма отображает текстовое поле для ввода (названное q) и кнопку для оправки формы, при нажатии на которую все введенные данные будут отправлены скрипту, указанному в поле action.

Тут мы подошли к еще одному существенному различию с точки зрения вашего веб-приложения. Стандартная HTML-форма отправляет данные как application/x-www-form-urlencoded, а XForms для передачи данных использует разметку XML.

Если вы решили работать с XForms, скорее всего вы захотите получить отправленные пользователем данные в формате XML. В таком случае обратите внимание на переменную $HTTP_RAW_POST_DATA, в ней содержится XML-документ, сгенерированный браузером, который в дальнейшем можно обработать предпочитаемым вами движком XSLT или парсером XML.

Если XML-разметка вас не интересует, и вы хотите, чтобы передаваемые данные были помещены в стандартный массив $_POST, вы можете указать клиентскому браузеру на необходимость отправлять данные в формате application/x-www-form-urlencoded. Для этого установите атрибут method значением urlencoded-post.

Пример 37-2. Использование XForm совместно с массивом $_POST

<h:html xmlns:h="http://www.w3.org/1999/xhtml"
        xmlns="http://www.w3.org/2002/xforms">
<h:head>
 <h:title>Search</h:title>
 <model>
  <submission action="http://example.com/search"
              method="urlencoded-post" id="s"/>
 </model>
</h:head>
<h:body>
 <h:p>
  <input ref="q"><label>Find</label></input>
  <submit submission="s"><label>Go</label></submit>
 </h:p>
</h:body>
</h:html>

Замечание: В дополнение к вышесказанному следует заметить, что большое количество браузеров не поддерживают XForms. Если приведенные примеры потерпели неудачу, проверьте версию используемого вами браузера.

Пред. | Начало | След.
Sessions | Уровень выше | Загрузка файлов на сервер


Загрузка файлов на сервер

Руководство по PHP
Пред. След.

Глава 38. Загрузка файлов на сервер

Содержание
Загрузка файлов методом POST
Разъяснение сообщений об ошибках
Наиболее распространенные ошибки
Загрузка на сервер нескольких файлов
Поддержка метода PUT

Загрузка файлов методом POST

PHP способен принимать файл загружаемый при помощи любого браузера, поддерживающего стандарт RFC-1867 (в том числе Netscape Navigator 3 и выше, Microsoft Internet Explorer 3 с патчем от Microsoft или более поздние версии без патча). Это дает возможность загружать как текстовые, так и бинарные файлы. Вместе с PHP-аутентификацией и функциями для работы с файловой системой вы получаете полный контроль над тем, кому разрешено загружать файлы, и над тем, что делать с файлом после его загрузки.

Смежные замечания по конфигурации: Также ознакомьтесь с описанием директив file_uploads, upload_max_filesize, upload_tmp_dir, max_input_time и post_max_size конфигурационного файла php.ini

Также следует заметить, что PHP поддерживает загрузку файлов методом PUT, который используется в клиентах Netscape Composer и W3C Amaya. Для получения более детальной документации обратитесь к разделу поддержка метода PUT

Страница для загрузки файлов может быть реализована при помощи специальной формы, которая выглядит примерно так:

Пример 38-1. Форма для загрузки файлов

<form enctype="multipart/form-data" action="_URL_" method="post">
 <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
 Отправить этот файл: <input name="userfile" type="file" />
 <input type="submit" value="Send File" />
</form>

В приведенном выше примере "_URL_" необходимо заменить ссылкой на PHP-скрипт. Скрытое поле MAX_FILE_SIZE(значение необходимо указывать в байтах) должно предшествовать полю для выбора файла, и его значение является максимально допустимым размером принимаемого файла. Также следует убедиться, что в атрибутах формы вы указали enctype="multipart/form-data", в противном случае загрузка файлов на сервер выполняться не будет.

Внимание

Опция MAX_FILE_SIZE является рекомендацией браузеру, даже если бы PHP также проверял это условие. Обойти это ограничение на стороне браузера достаточно просто, следовательно, вы не должны полагаться на то, что все файлы большего размера будут блокированы при помощи этой возможности. Тем не менее, ограничение PHP касательно максимального размера обойти невозможно. Вы в любом случае должны добавлять переменную формы MAX_FILE_SIZE, так как она предотвращает тревожное ожидание пользователей при передаче огромных файлов, только для того, чтобы узнать, что файл слишком большой и передача фактически не состоялась.

Переменные, определенные для загруженных файлов, зависят от версии PHP и текущей конфигурации. Суперглобальный массив $_FILES доступен начиная с PHP 4.1.0. Массив $HTTP_POST_FILES доступен начиная с PHP 4.0.0. Эти массивы содержат всю информацию о загруженных файлах. Использование $_FILES является более предпочтительным. В случае, если конфигурационная директива register_globals установлена значением on, дополнительно будут объявлены переменные с соответствующими именами. Начиная с версии 4.2.0 значением по умолчанию для опции register_globals является off.

Содержимое массива $_FILES для нашего примера приведено ниже. Обратите внимание, что здесь предполагается использование имени userfile для поля выбора файла, как и в приведенном выше примере. На самом деле имя поля может быть любым.

$_FILES['userfile']['name']

Оригинальное имя файла на компьютере клиента.

$_FILES['userfile']['type']

Mime-тип файла, в случае, если браузер предоставил такую информацию. Пример: "image/gif".

$_FILES['userfile']['size']

Размер в байтах принятого файла.

$_FILES['userfile']['tmp_name']

Временное имя, с которым принятый файл был сохранен на сервере.

$_FILES['userfile']['error']

Код ошибки, которая может возникнуть при загрузке файла. Ключ ['error'] был добавлен в PHP 4.2.0

Замечание: В PHP 4.1.0 и более ранних версиях описанный выше массив назывался $HTTP_POST_FILES и не являлся суперглобальным, в отличие от $_FILES. В PHP 3 массив $HTTP_POST_FILES не определен.

В случае, если register_globals установлена значением on в конфигурационном файле php.ini, будут доступны дополнительные переменные. Например, $userfile_name будет эквивалентна переменной $_FILES['userfile']['name'], а $userfile_type соответствует $_FILES['userfile']['type'], и так далее. Не стоит забывать, что начиная с PHP 4.2.0 для директивы register_globals значение по умолчанию off. Рекомендуется не полагаться на значение этой директивы.

По умолчанию принятые файлы сохраняются на сервере в стандартной временной папке до тех пор, пока не будет задана другая директория при помощи директивы upload_tmp_dir конфигурационного файла php.ini. Директорию сервера по умолчанию можно сменить, установив переменную TMPDIR для окружения, в котором выполняется PHP. Установка переменной TMPDIR при помощи функции putenv() внутри PHP-скрипта работать не будет. Эта переменная окружения также может использоваться для того, чтобы удостовериться, что другие операции также работают с принятыми файлами.

Пример 38-2. Проверка загружаемых на сервер файлов

Для получения более детальной информации вы можете ознакомится с описанием функций is_uploaded_file() и move_uploaded_file(). Следующий пример принимает и обрабатывает загруженный при помощи формы файл.

<?php
// В PHP 4.1.0 и более ранних версиях следует использовать $HTTP_POST_FILES
// вместо $_FILES.

$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    print "File is valid, and was successfully uploaded. ";
    print "Here's some more debugging info:\n";
    print_r($_FILES);
} else {
    print "Possible file upload attack!  Here's some debugging info:\n";
    print "Possible file upload attack!  Дополнительная отладочная информация:\n";
    print_r($_FILES);
}
print "</pre>";

?>

PHP-скрипт, принимающий загруженный файл, должен реализовывать логику, необходимую для определения дальнейших действий над принятым файлом. Например, вы можете проверить переменную $_FILES['userfile']['size'], чтобы отсечь слишком большие или слишком маленькие файлы. Также вы можете использовать переменную $_FILES['userfile']['type'] для исключения файлов, которые не удовлетворяют критерию касательно типа файла. Начиная с PHP 4.2.0 вы можете использовать $_FILES['userfile']['error'] и разъяснение сообщений об ошибках при реализации вашей логики. Независимо от того, какую модель поведения вы выбрали, вы должны удалить файл из временной папки или переместить его в другую директорию.

В случае, если при отправке формы файл выбран не был, PHP установит переменную $_FILES['userfile']['size'] значением 0, а переменную $_FILES['userfile']['tmp_name'] - пустой строкой. none.

По окончанию работы скрипта, в случае, если принятый файл не был переименован, или перемещен он будет автоматически удален из временной папки.

Пред. | Начало | След.
Работа с XForms | Уровень выше | Разъяснение сообщений об ошибках


Разъяснение сообщений об ошибках

Начиная с PHP 4.2.0, PHP возвращает код ошибки наряду с другими атрибутами принятого файла. Он расположен в массиве, создаваемом PHP при загрузке файла, и может быть получен при обращении по ключу ['error']. Говоря другими словами, код ошибки можно найти в переменной $_FILES['userfile']['error'].

UPLOAD_ERR_OK

Значение: 0; Ошибок не возникало, файл был успешно загружен на сервер.

UPLOAD_ERR_INI_SIZE

Значение: 1; Размер принятого файла превысил максимально допустимый размер, который задан директивой upload_max_filesize конфигурационного файла php.ini.

UPLOAD_ERR_FORM_SIZE

Значение: 2; Размер загружаемого файла превысил значение MAX_FILE_SIZE, указанное в HTML-форме.

UPLOAD_ERR_PARTIAL

Значение: 3; Загружаемый файл был получен только частично.

UPLOAD_ERR_NO_FILE

Значение: 4; Файл не был загружен.

Замечание: Константы были добавлены в PHP 4.3.0.

Пред. | Начало | След.
Загрузка файлов на сервер | Уровень выше | Наиболее распространенные ошибки


Наиболее распространенные ошибки

Опция MAX_FILE_SIZE не должна позволять передачу файлов, размер которых превышает лимит, установленный конфигурационной директивой upload_max_filesize. Ограничение по умолчанию составляет 2 мегабайта.

В случае, если установлено ограничения памяти, вам может понадобиться увеличить значение опции memory_limit. Убедитесь в том, что значение memory_limit достаточно велико.

В случае, если опция max_execution_time установлена слишком маленьким значением, необходимое время работы скрипта может превышать это значение. Убедитесь в том, что значение max_execution_time достаточно велико.

Замечание: Директива max_execution_time only касается исключительно времени, используемого непосредственно самим скриптом. Время, потраченное на внешние действия, такие как системные вызовы при помощи функции system() или sleep(), обращения к базе данных, а также время, потраченное на загрузку файла и другие действия, происходящие вне скрипта, не учитываются при определении максимально допустимого промежутка времени, отведенного для выполнения скрипта.

Внимание

Директива max_input_time указывает максимально допустимое время в секундах для получения входящих данных, в том числе и загружаемых файлов. В случае, если вы имеете дело с несколькими или большими файлами, либо удаленные пользователи используют медленный канал, ограничение по умолчанию в 60 секунд может быть превышено.

Если директива post_max_size установлена слишком маленьким значением, большие файлы не смогут быть загружены на сервер. Убедитесь, что значение директивы post_max_size достаточно велико.

Если не проверять, с какими файлами вы работаете, пользователи могут получить доступ к конфиденциальной информации, расположенной в других директориях.

Следут заметить, что CERN httpd может отсечь все, что идет после первого пробела в получаемом от клиента заголовке content-type. Если у вас именно такой случай, CERN httpd не будет поддерживать возможность загрузки файлов.

Поскольку разные системы по-разному работают с файловой структурой, у вас нет никаких гарантий того, что файлы с экзотическими именами (например, которые содержат пробельные символы) будут обработаны корректно.

Разработчики не должны использовать одинаковые имена для полей ввода и полей выбора файла в пределах одной и той же формы (например, используя имя вида foo[]).

Пред. | Начало | След.
Разъяснение сообщений об ошибках | Уровень выше | Загрузка на сервер нескольких файлов


Загрузка на сервер нескольких файлов

Загрузку нескольких файлов можно реализовать используя, например, различные значения name для тега input.

Также предусмотрена возможность автоматического получения организованной в массив информации о нескольких одновременно загружаемых файлах. Для реализации такой возможности используйте тот же синтаксис отправки массива из HTML-формы, что и для множественных полей select и checkbox:

Замечание: Поддержка загрузки нескольких файлов была добавлена в PHP 3.0.10.

Пример 38-3. Загрузка нескольких файлов

<form action="file-upload.php" method="post" enctype="multipart/form-data">
  Send these files:<br />
  <input name="userfile[]" type="file" /><br />
  <input name="userfile[]" type="file" /><br />
  <input type="submit" value="Send files" />
</form>

В случае, если такая форма была отправлена, массивы $_FILES['userfile'], $_FILES['userfile']['name'], и $_FILES['userfile']['size'] будут инициализированы (точно так же, как и $HTTP_POST_FILES для PHP 4.1.0 и более ранних версий). Если конфигурационная директива register_globals установлена значением on, также будут инициализированы сопутствующие глобальные переменные. Каждая из таких переменных будет представлять собой численно индексированный массив соответствующих значений для принятых файлов.

Например, предположим, что были загружены файлы /home/test/review.html и /home/test/xwp.out. В таком случае переменная $_FILES['userfile']['name'][0] будет установлена значением review.html, а переменная $_FILES['userfile']['name'][1] - значением xwp.out. Аналогично, переменная $_FILES['userfile']['size'][0] будет содержать размер файла review.html и так далее.

Переменные $_FILES['userfile']['name'][0], $_FILES['userfile']['tmp_name'][0], $_FILES['userfile']['size'][0] и $_FILES['userfile']['type'][0] также будут инициализированы.

Пред. | Начало | След.
Наиболее распространенные ошибки | Уровень выше | Поддержка метода PUT


Поддержка метода PUT

Поддержка метода PUT была изменена при переходе от PHP 3 к PHP 4. В PHP 4 вы должны использовать стандартный поток ввода для чтения файла, передаваемого методом HTTP PUT.

Пример 38-4. Сохранение загруженного при помощи HTTP PUT файла в PHP 4

<?php
/* Данные PUT находятся в потоке stdin */
$putdata = fopen("php://stdin", "r");

/* Открываем файл для записи */
$fp = fopen("myputfile.ext", "w");

/* Читаем данные блоками размером в 1 KB и
   записываем их в файл */
while ($data = fread($putdata, 1024))
  fwrite($fp, $data);

/* Закрываем потоки */
fclose($fp);
fclose($putdata);
?>

Замечание: Вся документация, приведенная ниже, касается исключительно PHP 3.

PHP поддерживает загрузку файлов методом HTTP PUT, который используется в клиентах Netscape Composer и W3C Amaya. Запрос PUT выглядит проще, чем в случае обыкновенной загрузки файла на сервер:

PUT /path/filename.html HTTP/1.1

Такой вызов означает, что удаленный клиент хотел бы сохранить файл под именем /path/filename.html в дереве каталогов вашего веб-сервера. Очевидно, что возможность клиента автоматически перезаписывать файлы вашего веб-сервера при помощи Apache или PHP не является хорошим решением. Поэтому для того, чтобы обрабатывать такие запросы, вам необходимо указать веб-серверу PHP-скрипт, которому вы доверяете их обработку. В веб-сервере Apache вы можете сделать это, используя директиву Script. Она может находиться практически в любом месте конфигурационного файла Apache. Как правило, эта директива расположена внутри блока <Directory> или же внутри блока <Virtualhost>. Сама запись выглядит следующим образом:

Script PUT /put.php

Это указывает веб-серверу Apache на необходимость перенаправлять по указанному адресу все PUT-запросы, контекст которых совпадает с контекстом, в которым вы разместили эту строку. Предполагается, что файлы с расширением .php обрабатываются, как PHP-скрипты, и что сам PHP установлен и работает.

Внутри вашего файла put.php file вы можете поместить что-нибудь похожее на это:

<?php copy($PHP_UPLOADED_FILE_NAME, $DOCUMENT_ROOT . $REQUEST_URI); ?>

Приведенный код скопирует файл в место, запрошенное клиентом. Возможно, вы захотите выполнить какую-либо проверку и/или аутентифицировать пользователя, прежде чем выполнять копирование. Трюк состоит в том, что когда PHP видит PUT-запрос, он сохраняет полученный файл во временной папке, как и при загрузке методом POST. По окончании обработки запроса временный файл удаляется. Поэтому ваш PHP-скрипт, обрабатывающий PUT-запрос, должен скопировать куда-либо полученный файл. Имя временного файла хранится в переменной $PHP_PUT_FILENAME, а предполагаемое имя файла можно найти в переменной $REQUEST_URI (может быть другим на веб-серверах, отличных от Apache). Запрашиваемое имя файла указывается удаленным клиентом. Вы не обязаны следовать его указаниям. Например, вы можете скопировать все загруженные файлы в отдельный каталог.

Пред. | Начало | След.
Загрузка на сервер нескольких файлов | Уровень выше | Работа с удаленными файлами


Работа с удаленными файлами

Руководство по PHP
Пред. След.

Глава 39. Работа с удаленными файлами

В случае, если опция allow_url_fopen включена в конфигурационном файле php.ini, вы можете использовать HTTP и FTP ссылки в большинстве функций, принимающих в качестве параметра имя файла. Также вы можете использовать ссылки в операторах include(), include_once(), require() и require_once(). Дополнительную информацию о поддерживаемых в PHP протоколах вы можете найти в Прил. M.

Замечание: В 4.0.3 и более ранних версиях при сборке необходимо использовать опцию --enable-url-fopen-wrapper для активации возможности работать с удаленными файлами.

Замечание: Дистрибутивы PHP для Windows-платформ до версии 4.3 не поддерживают возможности работы с удаленными файлами для следующих операторов: include(), include_once(), require(), require_once(), и функций вида imagecreatefromXXX (Ссылка LVII, Image Functions).

Например, вы можете использовать это для того, чтобы открыть файл на удаленном сервере, извлечь необходимые вам данные и использовать их в запросе к базе данных или же просто отобразить их в дизайне вашего сайта.

Пример 39-1. Получение заголовка удаленной страницы

<?php
$file = fopen ("http://www.example.com/", "r");
if (!$file) {
    echo "<p>Unable to open remote file.\n";
    exit;
}
while (!feof ($file)) {
    $line = fgets ($file, 1024);
    /* Сработает, только если заголовок и сопутствующие теги расположены в одной строке */
    if (eregi ("<title>(.*)</title>", $line, $out)) {
        $title = $out[1];
        break;
    }
}
fclose($file);
?>

Вы также можете работать с удаленными файлами, расположенными на FTP-сервере (подразумевается, что вы авторизировались с необходимыми для этого привилегиями). Таким образом вы можете создавать новые файлы, но попытка перезаписать существующий файл при помощи функции fopen() приведет к ошибке.

Для того, что бы авторизироваться под пользователем, отличным от 'anonymous', вам необходимо указать логин (и, возможно, пароль) в адресной строке, например так: 'ftp://user:password@ftp.example.com/path/to/file'. (Вы можете использовать этот же синтаксис для доступа к удаленным файлам по HTTP-протоколу, если необходима Basic-авторизация.)

Пример 39-2. Сохранение данных на удаленном сервере

<?php
$file = fopen ("ftp://ftp.example.com/incoming/outputfile", "w");
if (!$file) {
    echo "<p>Unable to open remote file for writing.\n";
    exit;
}
/* Запись данных. */
fputs ($file, $_SERVER['HTTP_USER_AGENT'] . "\n");
fclose ($file);
?>

Замечание: Глядя на приведенный выше пример, у вас может возникнуть идея использовать эту технику для ведения удаленного лог-файла. К сожалению, это не реализуемо, поскольку попытка записи в уже существующий удаленный файл при помощи функции fopen() приведет к ошибке. В реализации распределенного логирования, возможно, вам поможет функция syslog().

Пред. | Начало | След.
Поддержка метода PUT | Уровень выше | Работа с соединениями


Работа с соединениями

Руководство по PHP
Пред. След.

Глава 40. Работа с соединениями

Замечание: Вся последующая информация применима к версиям 3.0.7 и ниже.

Статус соединения сохраняется внутренними механизмами PHP. Ниже перечислены три возможные состояния:

  • 0 - NORMAL

  • 1 - ABORTED

  • 2 - TIMEOUT

Во время штатного выполнения PHP-скрипта установлен статус NORMAL. В случае, если удаленный клиент разорвал соединение, статус изменяется на ABORTED. Чаще всего отсоединение удаленного клиента происходит при нажатии кнопки "Stop" в браузере. В случае, если достигается установленный временной лимит (ознакомьтесь с функцией set_time_limit()), будет установлен статус TIMEOUT.

Вы можете решать, приводит ли отключение клиента к завершению вашего скрипта. Иногда бывает необходимо, чтобы скрипт выполнился до конца, даже если отсутствует удаленный браузер, которому адресован весь вывод. По умолчанию скрипт завершает свою работу при отключении клиента. Это поведение может быть изменено при помощи опции ignore_user_abort в конфигурационном файле php.ini. Такого же результата можно добиться, указав "php_value ignore_user_abort" в конфигурационном файле Apache или воспользовавшись функцией ignore_user_abort(). Если вы явно не указали на необходимость игнорировать разрыв соединения с клиентом, выполнение скрипта будет прервано. Исключением является тот случай, если используя register_shutdown_function(), вы указали специальную функцию, вызываемую при завершении скрипта. В таком случае после того, как пользователь нажал кнопку "Stop" в своем браузере, при первой же попытке что-либо вывести PHP обнаруживает, что соединение с клиентом было утеряно, и вызывает завершающую функцию. Эта функция также вызывается при нормальном завершении работы вашего скрипта, поэтому для того, чтобы выполнить некоторые специфические действия при отсоединении клиента, вам понадобится функция connection_aborted(), которая возвращает TRUE, если соединение было разорвано.

Выполнение вашего скрипта также может быть прервано встроенным таймером. Стандартное ограничение по времени составляет 30 секунд, изменить его можно при помощи директивы max_execution_time в конфигурационном файле php.ini. Такого же результата можно достичь, добавив php_value max_execution_time в конфигурационный файл Apache или воспользовавщись функцией set_time_limit(). При достижении скриптом временного лимита выполнение скрипта прерывается и вызывается завершающая функция, если она была указана. Уточнить причину завершения скрипта вы можете при помощи функции connection_timeout(), которая возвращает TRUE, если скрипт был прерван по достижению временного ограничения.

Единственное, что следует заметить - что оба статуса: ABORTED и TIMEOUT,- могут быть установлены одновременно. Это может произойти в том случае, если вы явно указали необходимость игнорировать отсоединение удаленного клиента. В таком случае после разрыва соединения, отметив этот факт, PHP продолжит выполнение скрипта, и при достижении временного лимита будет вызвана завершающая функция, если таковая была указана. В этой точке вы можете обнаружить, что и connection_timeout(), и connection_aborted() возвращают TRUE. Вы также можете проверить оба статуса одновременно, вызвав функцию connection_status(), которая возвращает битовые значения для активных статусов. В случае, если оба статуса активны, она, к примеру, вернет значение 3.

Пред. | Начало | След.
Работа с удаленными файлами | Уровень выше | Постоянные соединения с базами данных


Постоянные соединения с базами данных

Руководство по PHP
Пред. След.

Глава 41. Постоянные соединения с базами данных

Постоянные соединения представляют собой связи с базами данных, которые не закрываются при завершении скрипта. При получении запроса на постоянное соединение PHP вначале проверяет, имеется ли идентичное постоянное соединение (которое было открыто при предыдущих обращениях) и, если таковое было найдено, использует его. В случае, если идентичного соединения нет, PHP создает новое. Под "идентичным" подразумевается соединение, открытое на тот же хост с таким же именем пользователя и паролем (если они указаны).

Та часть разработчиков, которая не имеет четкого представления о том, как работает веб-сервер и как распределяется нагрузка, могут получить ошибочное представление о том, чем на самом деле являются постоянные соединения. В частности, постоянные соединения не предоставляют возможность открывать 'пользовательские сессии' в том же самом соединении, они не предоставляют возможность организовывать более эффективные транзакции, также они не предоставляют множества других полезных возможностей. Фактически, постоянные соединения не предоставляют никакой функциональности, которая была бы невозможна в непостоянных аналогичных соединениях.

Почему?

Это зависит от того, как происходит взаимодействие с веб-сервером. Существует три основных способа использования PHP сервером для генерации веб-страниц.

Первый способ заключается в том, чтобы использовать PHP как CGI-оболочку. При этом PHP-интерпретатор создается и уничтожается при каждом обращении к странице (PHP-скрипту). Поскольку интерпретатор уничтожается после каждого запроса к серверу, все используемые им ресурсы (в том числе и соединение с базой данных) закрывается. Следовательно, в этом случае вы не получите ничего от использования постоянных соединений - их просто нет.

Второй, и наиболее популярный способ - использовать PHP как модуль в сервере, который использует несколько процессов. В число таких серверов сейчас входит только Apache. В таком случае, можно выделить один процесс (родительский), который координирует работу всех остальных процессов (дочерних), которые фактически и выполняют работу по обслуживанию веб-страниц. При каждом обращении клиента к серверу запрос перенаправляется одному из дочерних процессов, который в данный момент не занят обслуживанием другого клиента. Это означает, что когда тот же самый клиент выполняет повторный запрос к серверу, он может быть обработан другим дочерним процессом, отличным от того, который был при первом обращении. После открытия постоянного соединения каждая последующая страница, требующая соединения с базой данных, может использовать уже установленное ранее соединение с SQL-сервером.

Третий способ - использовать PHP в качестве плугина в многопоточном веб-сервере. В настоящее время в PHP4 реализована поддержка ISAPI, WSAPI, и NSAPI (для Windows-платформ), которые позволяют подключать PHP к таким многопоточным серверам, как Netscape FastTrack (iPlanet), Microsoft's Internet Information Server (IIS) и O'Reilly WebSite Pro. В этом случае поведение PHP полностью аналогично рассмотренной ранее модели с использованием нескольких процессов. Следует заметить, что поддержка SAPI отсутствует в PHP 3.

Если постоянные соединения не предоставляют никакой дополнительной функциональности, чем же они тогда так хороши?

Ответ содержится в повышении эффективности. Постоянные соединения полезны в том случае, если при открытии большого количества SQL-соединений возникает ощутимая нагрузка на сервер. То, насколько велика эта нагрузка, зависит от многих факторов. Например, от того, какая именно база данных используется, находится ли она на том же компьютере что и ваш веб-сервер, насколько загружена машина, на которой установлен SQL-сервер, и так далее. В случае, если затраты на установку соединения велики, постоянные соединения могут вам существенно помочь. Они позволяют дочернему процессу на протяжении всего жизненного цикла использовать одно и то же соединение вместо того, чтобы создавать его при обработке каждой страницы, которая взаимодействует с SQL-сервером. Это означает, что каждый дочерний процесс, открывший постоянное соединение, будет иметь свое собственное соединение с сервером. Например, если у вас запущено 20 дочерних процессов, которые выполнили скрипт, использовавший постоянное соединение с SQL-сервером, вы получите 20 различных соединений с SQL-сервером, по одному на каждый дочерний процесс.

Следует заметить, что этот подход имеет некоторые недостатки: если вы используете базу данных с ограниченным количеством возможных подключений, оно может быть превышено количеством запрашиваемых дочерними процессами постоянных соединений. Например, если ваша база данных позволяет 16 одновременных соединений, и во время нагрузки на сервер 17 дочерних процессов попробуют открыть соединение, одна из попыток потерпит неудачу. Если в вашем коде содержатся ошибки, не позволяющие закрывать соединение (например, бесконечные циклы), база данных с 32 одновременными подключениями вскоре может оказаться заблокированной. Информацию о том, как обрабатывать открытые и неиспользумые соединения, вы можете найти в документации к вашей базе данных

Внимание

Есть еще два дополнительных предостережения, которые следует помнить при работе с постоянными соединениями. В случае, если скрипт блокирует таблицу и по каким-либо причинам не может ее освободить, при использовании постоянного соединения все последующие скрипты, которые используют это соединение будут блокированы бесконечно долго и могут потребовать рестарта веб-сервера или сервера баз данных. Второе предостережение заключается в том, что открытые транзакции, если они не были закрыты до завершения работы скрипта, будут продолжены в следующем скрипте, использующем это же постоянное соединение. Исходя из этого, вы можете использовать функцию register_shutdown_function() для указания простой функции, которая снимает блокировку таблиц или отката ваших транзакций. Еще лучше избежать этих проблем полностью, не используя постоянные соединения в скриптах, которые используют блокировку таблиц или транзакции (при этом вы все еще можете использовать их где-то в другом месте).

Важное резюме. Постоянные соединения были созданы для точного отображения обыкновенных соединений. Это означает, что у вас всегда есть возможность заменить все постоянные соединения непостоянными, и это никак не отразится на поведении скрипта. Такая замена может повлиять (и, наверное, таки повлияет) на эффективность работы скрипта, но никак не на его поведение.

Смотрите также fbsql_pconnect(),
ibase_pconnect(), ifx_pconnect(),
ingres_pconnect(),
msql_pconnect(), mssql_pconnect(),
mysql_pconnect(), ociplogon(),
odbc_pconnect(), ora_plogon(),
pfsockopen(), pg_pconnect(), и
sybase_pconnect().

Пред. | Начало | След.
Работа с соединениями | Уровень выше | Защищенный режим


Защищенный режим

Руководство по PHP
Пред. След.

Глава 42. Защищенный режим

Содержание
Безопасность и защищенный режим
Ограниченные или недоступные в защищенном режиме функции

Защищенный режим в PHP - это попытка решить проблему безопасности на совместно используемых серверах. Несмотря на то, что концептуально неверно решать эту проблему на уровне PHP, но поскольку альтернативы уровня веб-сервера или операционной системы на сегодняшний день отсутствуют, многие пользователи, особенно провайдеры, используют именно защищенный режим.

Безопасность и защищенный режим

Таблица 42-1. Конфигурационные опции, управляющие защищенным режимом и вопросами безопасности

Имя | Значение по умолчанию | Изменяемость
safe_mode | "0" | PHP_INI_SYSTEM
safe_mode_gid | "0" | PHP_INI_SYSTEM
safe_mode_include_dir | NULL | PHP_INI_SYSTEM
safe_mode_exec_dir | "" | PHP_INI_SYSTEM
safe_mode_allowed_env_vars | PHP_ | PHP_INI_SYSTEM
safe_mode_protected_env_vars | LD_LIBRARY_PATH | PHP_INI_SYSTEM
open_basedir | NULL | PHP_INI_SYSTEM
disable_functions | "" | PHP_INI_SYSTEM
disable_classes | "" | PHP_INI_SYSTEM
Для получения более детальной информации о константах вида PHP_INI_* ознакомьтесь с функцией ini_set().

Краткое разъяснение конфигурационных директив.

safe_mode boolean

Включает/отключает защищенный режим в PHP. Для получения более детальной информации ознакомьтесь с разделом Безопасность.

safe_mode_gid boolean

По умолчанию в защищенном режиме при открытии файла выполняется проверка значения UID. Для того, чтобы немного смягчить это условие и выполнять проверку GID, необходимо установить значение on для флага safe_mode_gid. Определяет, использовать или нет проверку UID (FALSE) или GID (TRUE) проверку при обращении к файлу.

safe_mode_include_dir string

При подключении файлов, расположенных в указанной директории и всех ее подкаталогах, проверка на соответствие значений UID/GID не выполняется (В случае, если установленная директория не указана в include_path, необходимо указывать полный путь при включении).

Начиная с PHP 4.2.0 значением этой директивы может быть список каталогов, разделенных двоеточием (точкой с запятой на windows-системах), что аналогично синтаксису include_path.

Указанное значение в действительности является префиксом, а не названием директории. Это означает, что запись "safe_mode_include_dir = /dir/incl" позволяет подключать файлы, находящиеся в директориях "/dir/include" и "/dir/incls", в случае, если они существуют. Если вы хотите указать доступ к конкретной директории, используйте завершающий слеш, например: "safe_mode_include_dir = /dir/incl/".

safe_mode_exec_dir string

В случае, когда PHP работает в защищенном режиме, system() и другие функции для выполнения системных команд и программ отклоняют выполнение программ, находящихся вне данной директории.

safe_mode_allowed_env_vars string

Возможность устанавливать переменные окружения - потенциальная брешь в безопасности. Значением этой директивы является список префиксов, разделенных двоеточиями. В защищенном режиме пользователь может модифицировать только те переменные окружения, имена которых начинаются с одного из указанных префиксов. По умолчанию, пользователю доступны переменные, которые начинаются с префикса PHP_ (например, PHP_FOO=BAR).

Замечание: В случае, если этой директиве указать пустое значение, пользователь получит возможность модифицировать любую переменную окружения!

safe_mode_protected_env_vars string

Эта директива содержит список переменных окружения, разделенных двоеточием, значение которых пользователь не сможет изменить, используя функцию putenv(). Значения этих переменных остаются защищенными, даже если их модификация разрешена директивой safe_mode_allowed_env_vars.

open_basedir string

Ограничивает список файлов, которые могут быть открыты в PHP, указанным деревом директорий независимо от того, используется защищенный режим или нет.

Каждый раз, когда скрипт пытается открыть файл, например, при помощи функции fopen() или gzopen(), проверяется месторасположение файла. В случае, если он находится вне указанного дерева директорий, PHP отказывает в открытия файла. Все символические ссылки распознаются и преобразуются, поэтому обойти это ограничение при помощи символических ссылок невозможно.

Специальное значение . указывает, что базовой следует считать директорию, в которой расположен сам скрипт. В этом случае следует быть осторожным, так как рабочую директорию скрипта можно легко изменить при помощи функции chdir().

Опция open_basedir может быть отключена в конфигурационном файле httpd.conf (например, для некоторых виртуальных хостов) точно таким же образом как и любая другая директива: "php_admin_value open_basedir none".

Для Windows-систем разделителем списка директорий служит точка с запятой. Для всех других операционных систем в качестве разделителя используется двоеточие. В случае, если PHP работает как модуль веб-сервера Apache, все указания open_basedir для родительских директорий наследуются.

Указанное значение в действительности является префиксом, а не названием директории. Это означает, что запись "safe_mode_include_dir = /dir/incl" позволяет открывать файлы, находящиеся в директориях "/dir/include" и "/dir/incls", в случае, если они существуют. Если вы хотите указать доступ к конкретной директории, используйте завершающий слеш, например: "safe_mode_include_dir = /dir/incl/".

Замечание: Возможность работы с несколькими директориями добавлена в версии 3.0.7.

По умолчанию разрешен доступ ко всем файлам.

disable_functions string

Эта директива позволяет вам запретить некоторые функции из соображений безопасности. В качестве значения она принимает список функций, разделенных двоеточием. disable_functions не зависит от того, используется Защищенный режим или нет.

Эта директива должна быть указана в php.ini. Вы не можете использовать ее, например, в httpd.conf.

disable_classes string

Эта директива позволяет вам запретить некоторые классы из соображений безопасности. В качестве значения она принимает список класов, разделенных двоеточием. disable_classes не зависит от того, используется Защищенный режим или нет.

Эта директива должна быть указана в php.ini. Вы не можете использовать ее, например, в httpd.conf.

Замечание: Эта директива доступна, начиная с PHP 4.3.2

Ознакомьтесь также со следующими конфигурационными директивами: register_globals, display_errors, и log_errors

В случае, если директива safe_mode установлена значением on, PHP проверит, совпадает ли владелец скрипта и владелец файла или директории, которыми оперирует скрипт. Например:
-rw-rw-r--    1 rasmus   rasmus       33 Jul  1 19:20 script.php
-rw-r--r--    1 root     root       1116 May 26 18:01 /etc/passwd
выполние срипта script.php
<?php
 readfile('/etc/passwd');
?>
в случае использования защищенного режима приводит к следующей ошибке:
Warning: SAFE MODE Restriction in effect. The script whose uid is 500 is not
allowed to access /etc/passwd owned by uid 0 in /docroot/script.php on line 2

Тем не менее, предусмотрена возможность вместо проверки на соответствие UID использовать более мягкую проверку на соответствие GID. Для этого необходимо использовать директиву safe_mode_gid. В случае, если она установлена значением On, используется более мягкая проверка GID. В противном случае, если установлено значение Off (значение по умолчанию), выполняется более строгая проверка на соответствие UID.

В качестве альтернативы директиве safe_mode вы можете ограничить все выполняемые скрипты жестко заданным деревом директорий при помощи опции open_basedir. Например (фрагмент конфигурационного файла httpd.conf):
<Directory /docroot>
  php_admin_value open_basedir /docroot
</Directory>
При попытке выполнить тот же самый скрипт script.php с указанной опцией open_basedir вы получите следующий результат:
Warning: open_basedir restriction in effect. File is in wrong directory in
/docroot/script.php on line 2

Вы также можете запретить отдельные функции. Следует заметить, что директива disable_functions может быть указана исключительно в конфигурационном файле php.ini, это означает, что вы не можете, отредактировав httpd.conf, установить индивидуальные значения для конкретного виртуального хоста или каталога. Если добавить в php.ini следующую строку:
disable_functions readfile,system
Результатом работы скрипта будет следующий вывод:
Warning: readfile() has been disabled for security reasons in
/docroot/script.php on line 2

Пред. | Начало | След.
Постоянные соединения с базами данных | Уровень выше | Ограниченные или недоступные в защищенном режиме функции


Ограниченные или недоступные в защищенном режиме функции

Ниже приведен, вероятно, неполный и, возможно, не вполне корректный список функций, ограниченных в защищенном режиме.

Таблица 42-2. Функции, ограниченные в безопасном режиме

Функция | Ограничения
dbmopen() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
dbase_open() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
filepro() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
filepro_rowcount() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
filepro_retrieve() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
ifx_* | sql_safe_mode ограничения (не путать с safe_mode)
ingres_* | sql_safe_mode ограничения (не путать с safe_mode)
mysql_* | sql_safe_mode ограничения (не путать с safe_mode)
pg_lo_import() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
posix_mkfifo() | Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
putenv() | Подчиняется настройкам the safe_mode_protected_env_vars и safe_mode_allowed_env_vars. Ознакомьтесь с более подробным описанием функции putenv().
move_uploaded_file() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
chdir() | Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
dl() | Эта функция недоступна в безопасном режиме.
backtick operator | Эта функция недоступна в безопасном режиме.
shell_exec() (функция эквивалентна backticks) | Эта функция недоступна в безопасном режиме.
exec() | Вы можете запускать исполняемые файлы, ограниченные деревом каталогов, указанным в safe_mode_exec_dir. Исходя из практических соображений, использовать .. при указании пути запрещено. Следует заметить, что к аргументу этой функции применяется escapeshellcmd().
system() | Вы можете запускать исполняемые файлы, ограниченные деревом каталогов, указанным в safe_mode_exec_dir. Исходя из практических соображений, использовать .. при указании пути запрещено. Следует заметить, что к аргументу этой функции применяется escapeshellcmd()
passthru() | Вы можете запускать исполняемые файлы, ограниченные деревом каталогов, указанным в safe_mode_exec_dir. Исходя из практических соображений, использовать .. при указании пути запрещено. Следует заметить, что к аргументу этой функции применяется escapeshellcmd().
popen() | Вы можете запускать исполняемые файлы, ограниченные деревом каталогов, указанным в safe_mode_exec_dir. Исходя из практических соображений, использовать .. при указании пути запрещено. Следует заметить, что к аргументу этой функции применяется escapeshellcmd().
fopen() | Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
mkdir() | Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
rmdir() | Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
rename() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
unlink() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
copy() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. (Для параметров source и target).
chgrp() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
chown() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
chmod() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. Кроме того, вы не можете устанавливать UID, SGID и sticky-биты.
touch() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
symlink() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. (Замечание: проверка выполняется только для параметра target)
link() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. (Замечание: проверка выполняется только для параметра target)
apache_request_headers() | В защищенном режиме, заголовки, начинающиеся с 'authorization' (независимо от регистра), не возвращаются.
header() | В защищенном режиме, текущий UID скрипта будет добавлен к realm-части заголовка WWW-Authenticate, если вы его устанавливаете (используется для HTTP-аутентификации)
переменные PHP_AUTH | В защищенном режиме, переменные PHP_AUTH_USER, PHP_AUTH_PW, и AUTH_TYPE недоступны как элементы массива $_SERVER. Несмотря на это, вы все еще можете использовать переменную REMOTE_USER для идентификации пользователя. (Замечание: актуально только для PHP 4.3.0 и выше)
highlight_file(), show_source() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. (Замечание: актуально только для PHP 4.2.1 и выше)
parse_ini_file() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. (Замечание: актуально только для PHP 4.2.1 и выше)
set_time_limit() | Не имеет никакого эффекта, если безопасный режим используется
max_execution_time | Не имеет никакого эффекта, если безопасный режим используется
mail() | В защищенном режиме пятый параметр недоступен. (Замечание: актуально только для PHP 4.2.3 и выше)
Любая функция, которая использует php4/main/fopen_wrappers.c | Временно не документировано

Пред. | Начало | След.
Защищенный режим | Уровень выше | Использование PHP в командной строке


Использование PHP в командной строке

Руководство по PHP
Пред. След.

Глава 43. Использование PHP в командной строке

Начиная с версии 4.3.0, PHP поддерживает новый вид SAPI (интерфейс разработки серверных приложений) под названием CLI, что означает интерфейс командной строки. Как видно из названия, этот вид SAPI предназначен для разработки консольных (или даже десктопных) приложений на PHP. Имеется несколько несущественных различий между CLI SAPI и другими видами SAPI, которые будут рассмотрены в этой главе. Будет полезно заметить, что CLI и CGI - различные SAPI-интерфейсы, хотя в их поведении много общего.

Впервые в качестве эксперимента CLI SAPI был включен в релиз PHP 4.2.0, и при запуске скрипта ./configure необходимо было явно указывать опцию --enable-cli. Начиная с PHP 4.3.0, CLI SAPI не является экспериментальным, и опция сборки --enable-cli присутствует по умолчанию. Вы можете отключить CLI SAPI при помощи опции --disable-cli.

Что касается PHP 4.3.0, имя, расположение и существование бинарных модулей CLI/CGI зависит от того, как именно установлен PHP. По умолчанию при выполнении make создается как CGI, так и CLI модуль, в каталогах sapi/cgi/php и sapi/cli/php соответственно, внутри директории с исходными кодами PHP. Cледует заметить, что оба файла имеют одинаковое название: PHP. Что произойдет при выполнении make install, зависит от того, какие опции вы указали на стадии конфигурирования. В случае, если вы отдали предпочтение такому модулю SAPI как apxs, либо указали опцию --disable-cgi, модуль CLI будет скопирован в {PREFIX}/bin/php при выполнении make install, в противном случае будет скопирован CGI-модуль. Например, если при запуске скрипта ./configure вы указали опцию --with--apxs, CLI-версия будет скопирована в {PREFIX}/bin/php при выполнении make install. Если вы хотите перекрыть установленный CGI-модуль, используйте make install-cli после выполнения make install. В качестве альтернативы вы могли бы указать опцию --disable-cgi при выполнении скрипта ./configure.

Замечание: Поскольку обе опции, --enable-cli и --enable-cgi, присутствуют по умолчанию, одного присутствия строки --enable-cli при выполнении скрипта ./configure недостаточно для того, чтобы CLI-версия была установлена в {PREFIX}/bin/php при выполнении make install.

Дистрибутивы для Windows между версиями PHP 4.2.0 и PHP 4.2.3 включают в себя CLI-модуль как php-cli.exe, расположенный в той же директории, что и CGI-модуль php.exe. Начиная с PHP 4.3.0 дистрибутив для Windows влючает в себя CLI-модуль php.exe, расположенный в отдельной директории cli, полное имя - cli/php.exe. Начиная с PHP 5, CLI-модуль расположен в основной директории и называется php.exe. CGI-модуль также включен в дистрибутив под названием php-cgi.exe.

Начиная с PHP 5, в дистрибутив для Windows входит новый файл php-win.exe. Он полностью эквивалентен CLI, за исключением того, что php-win абсолютно ничего не выводит, что приводит к отстутствию консоли (окно DOS не появляется на экране). Это поведение похоже на php-gtk. При сборке из исходных кодов вам необходимо указать опцию --enable-cli-win32.

Какой из вариантов SAPI установлен?: Выполните из командной строки php -v для получения информации о том, какой из двух модулей PHP установлен: CGI или CLI. Также вы можете использовать для этого функцию php_sapi_name() или константу PHP_SAPI.

Замечание: Соответствующая страница руководства Unix была добавлена в PHP 4.3.2. Вы можете увидеть ее, выполнив в консоли man php.

Основные отличия CLI SAPI от остальных реализаций SAPI:

  • В отличие от CGI SAPI заголовки не пишутся в поток вывода.

    Несмотря на то, что в CGI SAPI есть способ подавить HTTP-заголовки, в CLI SAPI нет возможности их включить.

    CLI по умолчанию запускается в режиме с подавлением сообщений, тем не менее, ключи -q и --no-header сохранены для обратной совместимости, что позволяет использовать написанные ранее CGI-скрипты.

    Текущая директория не изменяется на рабочую директорию скрипта. (Ключи -C и --no-chdir сохранены для обратной совместимости)

    Сообщения об ошибках выдаются в текстовом режиме (без HTML-форматирования).

  • Некоторые настройки php.ini переопределены в CLI SAPI, поскольку они не имеют особого смысла при работе в командной строке:

    Таблица 43-1. Переопределяемые директивы php.ini

    Директива | Значение по умолчанию в CLI SAPI | Комментарий
    html_errors | FALSE | Бывает достаточно сложно прочитать в консоли сообщение об ошибке, когда оно наполнено бессмысленными HTML-тегами, поэтому значение по умолчанию данной опции всегда FALSE.
    implicit_flush | TRUE | Желательно, чтобы любой вывод print(), echo(), а также аналогичных функций немедлено отправлялся в стандартный поток вывода, а не попадал в буфер. Хотя вы все еще можете использовать буферизацию вывода, если хотите задержать вывод или манипулировать им.
    max_execution_time | 0 (без ограничений) | Из-за неограниченных возможностей использования PHP в командной строке максимальное время выполнения скрипта не ограничено. В то время, как приложения, написанные для веб, выполняются достаточно быстро, консольные приложения могут выполняться в течении длительного времени.
    register_argc_argv TRUE

    Благодаря значению TRUE в CLI SAPI вам всегда доступны переменные argc (количество аргументов при запуске приложения) и argv (массив текущих аргументов).

    Начиная с PHP 4.3.0, при использовании CLI SAPI переменные $argc и and $argv зарегистрированы и заполнены соответствующими значениями. В более ранних версиях создание этих переменных, так же, как и для CGI или модуля веб-сервера, требует значение on директивы register_globals. Независимо от версии PHP или статуса опции register_global они всегда доступны как элементы массива $_SERVER или $HTTP_SERVER_VARS. Например: $_SERVER['argv']

    Замечание: Эти директивы не могут быть инициализированы другими значениями из конфигурационного файла php.ini или любого другого (в случае, если он указан). Это является ограничением, поскольку указанные выше значения по умолчанию применяются после обработки конфигурационных файлов. Тем не менее, эти значения могут быть изменены во время работы скрипта (хотя это не имеет особого смысла для указанных директив, например, для register_argc_argv).

  • Облегчена работа с консолью, благодаря следующим определенным константам:

    Таблица 43-2. Специфические CLI-константы

    Константа Описание
    STDIN Уже открытый поток stdin. Константа хранит результат
    <?php

    $stdin     = fopen('php://stdin', 'r');

    ?>
    Если вам необходимо прочитать строку из потока stdin, вы можете сделать это следующим образом:
    <?php
      $line     = trim(fgets(STDIN)); // читаем строку из STDIN
          fscanf(STDIN, "%d\n", $number); // читаем число из STDIN
          ?>
    STDOUT Уже открытый поток stdout. Константа хранит результат
    <?php

    $stdout     = fopen('php://stdout', 'w');

    ?>
    STDERR Уже открытый поток stderr. Константа хранит результат
    <?php

    $stderr     = fopen('php://stderr', 'w');

    ?>

    Имея все это, вы не должны самостоятельно открывать, например, поток для stderr, а просто используйте константу вместо дескриптора потока:
    php -r 'fwrite(STDERR, "stderr\n");'
    Также вам не надо закрывать эти потоки, PHP автоматически закрывает их после завершения скрипта.

  • CLI SAPI не изменяет текущую директорию на директорию исполняемого скрипта!

    Пример, демонстрирующий отличие CGI SAPI:
    <?php
    // Простейший тестовый скрипт под названием test.php
    echo getcwd(), "\n";
    ?>

    В случае, если используется CGI версия, результат работы будет следующим:
    $ pwd
/tmp

$ php -q another_directory/test.php
/tmp/another_directory
    Это наглядно демонстрирует тот факт, что PHP изменяет текущую директорию на директорию исполняемого скрипта.

    Использование CLI SAPI дает другой результат:
    $ pwd
/tmp

$ php -f another_directory/test.php
/tmp
    Это позволяет писать более гибкие консольные скрипты на PHP.

    Замечание: CGI SAPI позволяет получить аналогичное CLI SAPI поведение в случае использования ключа -C при запуске из командной строки.

Список опций, доступный при запуске PHP из командной строки, может быть получен в любой момент путем запуска PHP с ключом -h:
Usage: php [options] [-f] <file> [args...]
       php [options] -r <code> [args...]
       php [options] [-- args...]
  -s               Отображает исходный код с цветной подсветкой
  -w               Отображает исходный текст без комментариев и пробелов
  -f <file>        Исполняет <file>
  -v               Выводит информацию о версии PHP
  -c <path>|<file> Ищет файл php.ini в указанной директории
  -a               Интерактивный запуск
  -d foo[=bar]     Установить конфигурационную опцию foo значением 'bar'
  -e               Генерация дополнительной информации для отладчика и профайлера
  -z <file>        Загрузить Zend-расширение <file>.
  -l               Проверить синтаксис
  -m               Показать подключенные модули
  -i               Выводит информацию о PHP
  -r <code>        Запустить PHP-код без использования <?..?>
  -h               Текущая справка

  args...          Аргументы, передаваемые скрипту. Используйте -- args в случае, если
                   первый аргумент начинается с '-' или сам скрипт читается из потока STDIN.

CLI SAPI имеет три различных способа получения PHP-кода, который необходимо выполнить:

  1. Указать PHP на исполнение конкретного файла.

    php my_script.php

php -f my_script.php
    Оба способа (с или без использования ключа -f) исполняют указанный файл my_script.php. Вы можете выбрать любой файл - ваши PHP-скрипты не обязаны заканчиваться на .php, а могут иметь любое имя и расширение.

  2. Указать PHP-код для выполнения непосредственно в командной строке.

    php -r 'print_r(get_defined_constants());'
    Особого внимания требует подстановка переменных окружения и использование кавычек.

    Замечание: Посмотрите внимательно на пример: в нем нет начальных и конечных тегов! При использовании ключа -r они не нужны. Использование их в данном примере приведет к синтаксической ошибке.

  3. Предоставить PHP-код для выполнения посредством стандартного потока stdin.

    Это позволяет динамически создавать PHP-код и переадресовывать его исполняемому модулю, как показано в следующем (вымышленном) примере:
    $ some_application | some_filter | php | sort -u >final_output.txt

Вы не можете комбинировать эти три способа выполнения кода.

Как и в любом консольном приложении, не только PHP, но и сам скрипт может принимать аргументы командной строки. Количество передаваемых аргументов в PHP не ограничено (хотя консоль имеет некоторое ограничение на количество передаваемых символов, но на практике вы не должны с этим столкнуться). Все аргументы, переданные вашему скрипту, доступны в виде глобального массива $argv. Нулевой элемент содержит имя скрипта (которое является символом - в случае, если PHP-код читается из потока stdin или указан в командной строке при помощи ключа -r). Вторая определяемая глобальная переменная $argc содержит количество элементов массива $argv (а не количество аргументов, передаваемых при запуске).

До тех пор, пока передаваемые аргументы не начинаются с символа -, ничего особенного предпринимать не надо. Но при указании аргумента, который начинается с символа -, может возникнуть проблема, так как PHP попытается обработать их самостоятельно. Чтобы предотвратить это, используйте -- в качестве разделителя списка аргументов. Все последующие за таким разделителем аргументы будут переданы вашему скрипту без изменений.

# Приведенный пример не выполнит указанный код, а выдаст справку об использовании PHP
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f] <file> [args...]
[...]

# Аргумент '-h' будет передан скрипту, справка напечатана не будет
$ php -r 'var_dump($argv);' -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}

Однако, существует еще один способ использования PHP для написания консольных скриптов. Вы можете написать скрипт, первая строка которого начинается с #!/usr/bin/php. Следующие строки содержат обыкновенный PHP-код, обрамленный открывающими и завершающими PHP-тегами. Также необходимо установить права на выполнение (как правило, это chmod +x test), чтобы ваш скрипт мог запускаться, как обыкновенный консольный (или perl) скрипт:
#!/usr/bin/php
<?php
var_dump($argv);
?>
Предположив, что наш скрипт называется test и расположен в текущей директории, мы можем выполнить следующее:
$ chmod +x test
$ ./test -h -- foo
array(4) {
  [0]=>
  string(6) "./test"
  [1]=>
  string(2) "-h"
  [2]=>
  string(2) "--"
  [3]=>
  string(3) "foo"
}
Как видно из примера, при передаче параметров командной строки, начинающихся с символа -, никаких особых действий предпринимать не надо.

Полные названия опций доступны, начиная с PHP 4.3.3.

Таблица 43-3. Опции, доступные из командной строки

Опция | Полное название | Описание
-s --syntax-highlight

Отображает исходный код с цветной подсветкой

Эта опция использует внутренний механизм разбора файла, генерирует подсвеченную HTML-версию и записывает ее в стандартный вывод. Следует заметить, что генерируется только блок <code> [...] </code> с HTML-тегами, без HTML-заголовков.

Замечание: Эта опция не совместима с опцией -r.

-s --syntax-highlighting

Алиас для --syntax-highlight.

-w --strip

Отображает исходный текст без комментариев и пробельных символов.

Замечание: Эта опция не совместима с опцией -r.

-f --file

Исполняет указанный файл. Опция -f является не обязательной и может отсутствовать. Достаточно просто указать имя файла.

-v --version

Выводит информацию о версии PHP, PHP SAPI и Zend, например:
$ php -v
PHP 4.3.0 (cli), Copyright (c) 1997-2002 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2002 Zend Technologies

-c --php-ini

При помощи этой опции можно указать специфическую директорию для конфигурационного файла php.ini либо непосредственно указать на сам INI-файл (название которого может отличаться от стандартного php.ini), например:
$ php -c /custom/directory/ my_script.php

$ php -c /custom/directory/custom-file.ini my_script.php
В случае, если вы не используете данную опцию, конфигурационный файл будет взят из директории по умолчанию.

-n --no-php-ini

Указывает на необходимость игнорировать конфигурационный файл php.ini, доступен, начиная с PHP 4.3.0.

-d --define

Эта опция позволяет устанавливать специальное значение для каждой из конфигурационных переменных, доступных в php.ini. Синтаксис выглядит следующим образом:
-d configuration_directive[=value]

Примеры (переводы строк использованы, чтобы сделать текст более читаемым):
# Если опущено значение, то соответствующей опции будет присвоено значение "1"
$ php -d max_execution_time
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(1) "1"

# Указание пустого значения инициализирует соответствующую  опцию значением ""
php -d max_execution_time=
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(0) ""

# Конфигурационная переменная будет установлена любым значением,
# указанным после символа '='

$  php -d max_execution_time=20
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(2) "20"
$  php
        -d max_execution_time=doesntmakesense
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(15) "doesntmakesense"

-a --interactive

Запускает PHP в интерактивном режиме.

-e --profile-info

Генерирует дополнительную информацию для отладчика и профайлера.

-z --zend-extension

Подгружает дополнительный модуль Zend. В случае, если указано только имя файла, PHP ищет модуль в текущем пути к библиотекам по умолчанию (в Linux-системах он обычно указан в /etc/ld.so.conf). В случае, если указано имя файла и полный путь к нему, поиск в системных библиотеках не производится. Указание относительного пути к модулю приведет к поиску файла по указанному пути относительно текущей директории.

-l --syntax-check

Эта опция предоставляет удобный способ для проверки заданного PHP-кода на наличие синтаксических ошибок. В случае успешной проверки будет напечатана следующая фраза: "No syntax errors detected in <filename>",- и код возврата будет равен 0. А в случае неудачи - текст "Errors parsing <filename>" вместе с внутренними сообщениями разборщика и код возврата 255.

Проверка исходного кода при помощи данной опции не находит фатальных ошибок (например, таких как вызов неопределенных функций). Используйте опцию -f, если вы хотите проверить код на наличие фатальных ошибок.

Замечание: Эта опция не совместима с опцией -r.

-m --modules

При использовании этой опции PHP напечатает список встроенных (а также подгруженных) модулей Zend и PHP.
$ php -m
[PHP Modules]
xml
tokenizer
standard
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

-i | --info | Использование этой опции приводит к вызову функции phpinfo() и и выводу результирующей информации. В случае, если PHP работает некорректно, будет весьма логично выполнить php -i и посмотреть, выводятся ли сообщения об ошибке до информационных таблиц или даже вместо них. Учтите, что в случае использования CGI-модуля весь вывод будет в формате HTML и, как следствие, может выглядеть нечитабельно.
-r --run

Эта опция позволяет выполнять PHP-код, указанный непосредственно в командной строке. Открывающие и завершающие PHP-теги (<?php и ?>) не нужны и, более того, приводят к синтаксической ошибке.

Замечание: При использовании этого ключа следует быть очень осторожным и избегать недоразумений, связанных с автоматической подстановкой переменных окружения.

Вот пример, приводящий к синтаксической ошибке:
$ php -r "$foo = get_defined_constants();"
Command line code(1) : Parse error - parse error, unexpected '='
Проблема заключается в том, что sh/bash выполняет автоматическую подстановку переменных в случае, если используются двойные кавычки ("). Поскольку переменная $foo вряд ли определена, она заменяется пустой строкой, так что передаваемый PHP-код для выполнения выглядит следующим образом:
$ php -r " = get_defined_constants();"
Правильным решением в данном случае будет использование одиночных кавычек ', поскольку автоматическая подстановка переменных, заключенных в одиночные кавычки, в sh/bash не происходит.
$ php -r '$foo = get_defined_constants(); var_dump($foo);'
array(370) {
  ["E_ERROR"]=>
  int(1)
  ["E_WARNING"]=>
  int(2)
  ["E_PARSE"]=>
  int(4)
  ["E_NOTICE"]=>
  int(8)
  ["E_CORE_ERROR"]=>
  [...]
Если вы используете оболочку, отличную от sh/bash, у вас могут возникнуть другие вопросы. В таком случае создайте рапорт о возникшей проблеме на сайте http://bugs.php.net/ или напишите письмо по адресу phpdoc@lists.php.net. Вы вполне можете столкнуться с проблемами при попытке получить доступ к переменным оболочки или при работе с экранирующими обратными слешами. Мы вас предупредили.

Замечание: Ключ -r доступен в CLI SAPI и не доступен в CGI SAPI.

-h | --help | При помощи этой опции вы можете получить информацию о действующем списке опций командной строки и их краткое описание.
-? --usage Алиас для --help.

Исполняемый PHP-файл может использоваться для запуска PHP-скриптов независимо от веб-сервера. В случае, если вы работаете в Unix-подобной системе, вам необходимо добавить ко всем скриптам специальную первую строку и сделать их исполняемыми, чтобы указать, какая из программ должна обрабатывать эти скрипты. На Windows-платформах вы можете назначить обработчик php.exe для файлов с расширениями .php либо создать пакетный (.bat) файл для запуска скриптов посредством PHP. Строка, добавляемая вначале скрипта для Unix-систем, не влияет на их работу в ОС Windows, таким образом вы можете создавать кроссплатформенные скрипты. Ниже приведен простой пример скрипта, выполняемого из командной строки:

Пример 43-1. Скрипт, предназначенный для запуска из командной строки (script.php)

#!/usr/bin/php
<?php

if ($argc != 2 || in_array($argv[1], array('--help', '-help', '-h', '-?'))) {
?>

Это консольный PHP-скрипт, принимающий один аргумент.

  Использование:
  <?php echo $argv[0]; ?> <option>

  <option> Любое слово, которое вы хотели бы
  напечатать. Опции  --help, -help, -h,
  или -? покажут текущую справочную информацию.

<?php
} else {
    echo $argv[1];
}
?>

В приведенном примере мы используем специальную первую строку для указания на то, что этот скрипт необходимо запускать при помощи PHP. Поскольку мы работаем с CLI-версией, то HTTP-заголовки выводиться не будут. При написании консольных приложений на PHP вам доступны две переменные: $argc и $argv. Первая - количество переданных аргументов плюс один (имя выполняемого скрипта). Вторая - массив переданных аргументов, начиная с имени скрипта с нулевым индексом ($argv[0]).

Также в приведенном примере мы проверяем количество переданных аргументов. В случае, если их более или менее одного, а также в случае, если переданный аргумент был --help, -help, -h или -?, мы выводим справочное сообщение, подставляя имя выполняемого скрипта динамически. В обратном случае мы просто печатаем полученный аргумент.

Если вы хотите выполнить приведенный пример в Unix-системе, вам необходимо сделать его исполняемым и просто выполнить из консоли script.php echothis или script.php -h. В Windows-системе вы можете создать для этого пакетный файл:

Пример 43-2. Пакетный файл для запуска PHP-скрипта из командной строки (script.bat)

@c:\php\cli\php.exe script.php %1 %2 %3 %4

Предполагая, что скрипт называется script.php и полный путь к CLI php.exe совпадает с c:\php\cli\php.exe, приведенный пакетный файл запустит скрипт с переданными вами параметрами: script.bat echothis либо script.bat -h.

Вы также можете ознакомится с расширением Readline, которое может быть использовано для усовершенствования консольного PHP-скрипта.

Пред. | Начало | След.
Ограниченные или недоступные в защищенном режиме функции | Уровень выше | Справочник функций


Справочник функций

Руководство по PHP
Пред. След.

VI. Справочник функций

Содержание
I. .NET Functions
II. Функции для работы с сервером Apache
III. Alternative PHP Cache
IV. Advanced PHP debugger
V. Функции для работы с массивами
VI. Aspell functions [deprecated]
VII. BCMath Arbitrary Precision Mathematics Functions
VIII. PHP bytecode Compiler
IX. Функции сжатия Bzip2
X. Calendar Functions
XI. CCVS API Functions [deprecated]
XII. Функции работы с Классами/Объектами
XIII. Classkit Functions
XIV. ClibPDF Functions
XV. COM and .Net (Windows)
XVI. Crack Functions
XVII. Функции определения типа символов
XVIII. Функции CURL, Client URL Library
XIX. Cybercash Payment Functions
XX. Credit Mutuel CyberMUT functions
XXI. Cyrus IMAP administration Functions
XXII. Функции для работы с датой и временем
XXIII. DB++ Functions
XXIV. Database (dbm-style) Abstraction Layer Functions
XXV. dBase Functions
XXVI. DBM Functions [deprecated]
XXVII. dbx Functions
XXVIII. Direct IO Functions
XXIX. Функции для работы с каталогами
XXX. DOM Functions
XXXI. DOM XML Functions
XXXII. Error Handling and Logging Functions
XXXIII. Exif Functions
XXXIV. Expect Functions
XXXV. File Alteration Monitor Functions
XXXVI. Forms Data Format Functions
XXXVII. filePro Functions
XXXVIII. Функции для работы с файловой системой
XXXIX. Firebird/InterBase Functions
XL. Firebird/Interbase Functions (PDO_FIREBIRD)
XLI. FriBiDi Functions
XLII. FrontBase Functions
XLIII. Функции для работы с FTP
XLIV. Управление функциями
XLV. Gettext
XLVI. GMP Functions
XLVII. gnupg Функции
XLVIII. Net_Gopher
XLIX. Функции протокола HTTP
L. Hyperwave Functions
LI. Hyperwave API Functions
LII. IBM DB2, Cloudscape and Apache Derby Functions
LIII. ICAP Functions [deprecated]
LIV. Функции iconv
LV. ID3 Functions
LVI. IIS Administration Functions
LVII. Image Functions
LVIII. IMAP, POP3 and NNTP Functions
LIX. Informix Functions
LX. Ingres II Functions
LXI. IRC Gateway Functions
LXII. PHP / Java Integration
LXIII. KADM5
LXIV. LDAP Functions
LXV. libxml Functions
LXVI. Lotus Notes Functions
LXVII. LZF Functions
LXVIII. Mail Functions
LXIX. mailparse Functions
LXX. Математические функции
LXXI. MaxDB PHP Extension
LXXII. MCAL Functions
LXXIII. Mcrypt Encryption Functions
LXXIV. MCVE (Monetra) Payment Functions
LXXV. Memcache Functions
LXXVI. Mhash Functions
LXXVII. Mimetype Functions
LXXVIII. Ming functions for Flash
LXXIX. Miscellaneous Functions
LXXX. mnoGoSearch Functions
LXXXI. Microsoft SQL Server Functions
LXXXII. Microsoft SQL Server and Sybase Functions (PDO_DBLIB)
LXXXIII. Mohawk Software Session Handler Functions
LXXXIV. mSQL Functions
LXXXV. Multibyte String Functions
LXXXVI. muscat Functions
LXXXVII. Функции СУБД MySQL
LXXXVIII. MySQL Functions (PDO_MYSQL)
LXXXIX. MySQL Improved Extension
XC. Ncurses Terminal Screen Control Functions
XCI. Network Functions
XCII. Newt Functions
XCIII. NSAPI-specific Functions
XCIV. Object Aggregation/Composition Functions
XCV. Object property and method call overloading
XCVI. Функции для работы с Oracle
XCVII. ODBC Functions (Unified)
XCVIII. ODBC and DB2 functions (PDO_ODBC)
XCIX. oggvorbis
C. OpenAL Audio Bindings
CI. OpenSSL Functions
CII. Oracle Functions [deprecated]
CIII. Oracle Functions (PDO_OCI)
CIV. Output Control Functions
CV. Ovrimos SQL Functions
CVI. Paradox File Access
CVII. Parsekit Functions
CVIII. Process Control Functions
CIX. Функции для работы с регулярными выражениями (Perl-совместимые)
CX. PDF functions
CXI. PDO Functions
CXII. PHP Options&Information
CXIII. POSIX Functions
CXIV. Regular Expression Functions (POSIX Extended)
CXV. PostgreSQL Functions
CXVI. PostgreSQL Functions (PDO_PGSQL)
CXVII. Printer Functions
CXVIII. Program Execution Functions
CXIX. PostScript document creation
CXX. Pspell Functions
CXXI. qtdom Functions
CXXII. Radius
CXXIII. Rar функции
CXXIV. GNU Readline
CXXV. GNU Recode Functions
CXXVI. RPM Header Reading Функции
CXXVII. runkit Functions
CXXVIII. Satellite CORBA client extension [deprecated]
CXXIX. SDO Functions
CXXX. SDO XML Data Access Service Functions
CXXXI. SDO Relational Data Access Service Functions
CXXXII. Semaphore, Shared Memory and IPC Functions
CXXXIII. SESAM Database Functions
CXXXIV. PostgreSQL Session Save Handler
CXXXV. Session Handling Functions
CXXXVI. Shared Memory Functions
CXXXVII. SimpleXML functions
CXXXVIII. SNMP Functions
CXXXIX. SOAP Functions
CXL. Socket Functions
CXLI. Standard PHP Library (SPL) Functions
CXLII. SQLite
CXLIII. SQLite Functions (PDO_SQLITE)
CXLIV. Secure Shell2 Functions
CXLV. Stream Functions
CXLVI. Функции обработки строк
CXLVII. Shockwave Flash Functions
CXLVIII. Sybase Functions
CXLIX. TCP Wrappers Functions
CL. Tidy Functions
CLI. Tokenizer Functions
CLII. Unicode Functions
CLIII. URL Functions
CLIV. Variable Handling Functions
CLV. Verisign Payflow Pro Functions
CLVI. vpopmail Functions
CLVII. W32api Functions
CLVIII. WDDX Functions
CLIX. win32service Functions
CLX. xattr Functions
CLXI. xdiff Functions
CLXII. XML Parser Functions
CLXIII. XML-RPC Functions
CLXIV. XMLReader functions
CLXV. XSL functions
CLXVI. XSLT Functions
CLXVII. YAZ Functions
CLXVIII. YP/NIS Functions
CLXIX. Zip File Functions (Read Only Access)
CLXX. Функции сжатия Zlib

Пред. | Начало | След.
Использование PHP в командной строке |  | .NET Functions


Функции для работы с сервером Apache

Руководство по PHP
Пред. След.

II. Функции для работы с сервером Apache

Эти функции доступны только в том случае, если PHP работает в качестве модуля Apache.

Содержание
apache_child_terminate -- Завершить процесс Apache по окончании текущего запроса
apache_get_modules -- Get a list of loaded Apache modules
apache_get_version -- Fetch Apache version
apache_getenv -- Get an Apache subprocess_env variable
apache_lookup_uri -- Осуществить частичный запрос на указанный URI и вернуть все полученные сведения
apache_note -- Установить и получить аннотации к запросу Apache
apache_request_headers -- Осуществить выборку всех заголовков HTTP запросов
apache_reset_timeout -- Reset the Apache write timer
apache_response_headers -- Осуществить выборку всех заголовков HTTP ответа
apache_setenv -- Установить переменную Apache subprocess_env
ascii2ebcdic -- Преобразовать строку из ASCII в EBCDIC
ebcdic2ascii -- Преобразовать строку из EBCDIC в ASCII
getallheaders -- Получить все заголовки HTTP-запроса
virtual -- Выполнить подзапрос Apache

Пред. | Начало | След.
dotnet_load | Уровень выше | apache_child_terminate


apache_child_terminate

(PHP 4 >= 4.0.5, PHP 5)

apache_child_terminate -- Завершить процесс Apache по окончании текущего запроса

Описание

bool apache_child_terminate ( void )

Функция apache_child_terminate() регистрирует процесс Apache, обслуживающий текущий запрос PHP с тем, чтобы завершить его по окончании выполнения PHP скрипта. Эта функция может быть использована для завершения процесса, для работы которого понадобилось значительное количество оперативной памяти, не возвращенной операционной системе по завершении работы PHP скрипта.

Замечание: Доступность использования этой функции определяется опцией apache.child_terminate в файле php.ini, которая по умолчанию установлена в off.

Эта функция также недоступна на многопоточных версиях Apache, например, для платформ Windows.

Также ознакомьтесь с функцией exit().

Пред. | Начало | След.
Функции для работы с сервером Apache | Уровень выше | apache_get_modules


apache_get_modules

(PHP 4 >= 4.3.2, PHP 5)

apache_get_modules -- Get a list of loaded Apache modules

Описание

array apache_get_modules ( void )

Get a list of loaded Apache modules.

Возвращаемые значения

An array of loaded Apache modules.

Список изменений

Версия | Описание
5.0.0 | Became available when using Apache 1, or the PHP Apache 2 filter API. Before this time, it was only available when using the Apache 2 handler API.

Примеры

Пример 1. apache_get_modules() example

<?php
print_r(apache_get_modules());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => core
    [1] => http_core
    [2] => mod_so
    [3] => sapi_apache2
    [4] => mod_mime
    [5] => mod_rewrite
)

Пред. | Начало | След.
apache_child_terminate | Уровень выше | apache_get_version


apache_get_version

(PHP 4 >= 4.3.2, PHP 5)

apache_get_version -- Fetch Apache version

Описание

string apache_get_version ( void )

Fetch the Apache version.

Возвращаемые значения

Returns the Apache version on success, or FALSE on failure.

Список изменений

Версия | Описание
4.3.4 | Became available with Apache 1.
5.0.0 | Became available with the Apache 2 filter API.

Примеры

Пример 1. apache_get_version() example

<?php
$version = apache_get_version();
echo "$version\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Apache/1.3.29 (Unix) PHP/4.3.4

Смотрите также

phpinfo()

Пред. | Начало | След.
apache_get_modules | Уровень выше | apache_getenv


apache_getenv

(PHP 4 >= 4.3.0, PHP 5)

apache_getenv -- Get an Apache subprocess_env variable

Описание

string apache_getenv ( string variable [, bool walk_to_top] )

Get an Apache environment variable as specified by variable.

This function requires Apache 2 otherwise it's undefined.

Список параметров

variable

The Apache environment variable

walk_to_top

Whether to get the top-level variable available to all Apache layers.

Возвращаемые значения

The value of the Apache environment variable on success, or FALSE on failure

Примеры

Пример 1. apache_getenv() example

The example above shows how to retrieve the value of the Apache environment variable SERVER_ADDR.

<?php
$ret = apache_getenv("SERVER_ADDR");
echo $ret;
?>

Результатом выполнения данного примера будет что-то подобное:

42.24.42.240

Смотрите также

apache_sentenv()
getenv()
Superglobals

Пред. | Начало | След.
apache_get_version | Уровень выше | apache_lookup_uri


apache_lookup_uri

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

apache_lookup_uri -- Осуществить частичный запрос на указанный URI и вернуть все полученные сведения

Описание

object apache_lookup_uri ( string filename )

Эта функция осущестслвяет частичный запрос на указанный URI и, проведя анализ полученных данных, возвращает их в классе. Свойствами возвращаемого класса являются:

status
the_request
status_line
method
content_type
handler
uri
filename
path_info
args
boundary
no_cache
no_local_copy
allowed
send_bodyct
bytes_sent
byterange
clength
unparsed_uri
mtime
request_time

Замечание: Функция apache_lookup_uri() доступна только в том случае, если PHP работает в качестве модуля Apache.

Пред. | Начало | След.
apache_getenv | Уровень выше | apache_note


apache_note

(PHP 3 >= 3.0.2, PHP 4, PHP 5)

apache_note -- Установить и получить аннотации к запросу Apache

Описание

string apache_note ( string note_name [, string note_value] )

Функция apache_note() является функцией, предназначенной для работы в среде сервера Apache. Ее действиями является установка и чтение значений из таблицы аннотаций к запросам. Если функция вызывается с одним параметром, она возвращает текущее значение аннотации наименование_аннотации. Если функция вызывается с двумя параметрами, она устанавливает аннотацию наименование_аннотации в содержание_аннотации и возвращает предыдущее значение наименование_аннотации.

Пред. | Начало | След.
apache_lookup_uri | Уровень выше | apache_request_headers


apache_request_headers

(PHP 4 >= 4.3.0, PHP 5)

apache_request_headers -- Осуществить выборку всех заголовков HTTP запросов

Описание

array apache_request_headers ( void )

Функция apache_request_headers() возвращает ассоциативный массив, содержащий все заголовки текущего HTTP запроса. Эта функция доступна только в том случае, если PHP работает в качестве модуля Apache.

Замечание: В версиях PHP, более ранних, чем 4.3.0, функция apache_request_headers() имела наименование getallheaders(). В PHP версии 4.3.0 и последующих версиях, имя getallheaders() является псевдонимом функции apache_request_headers().

Пример 1. Пример использования apache_request_headers()

<?php
$headers = apache_request_headers();

foreach ($headers as $header => $value) {
    echo "$header: $value <br />\n";
}
?>

Замечание: Также вы можете получить значения наиболее широко используемых CGI переменных, читая их из окружения сервера; это работает независимо от того, установлен PHP в качестве модуля Apache или нет. Для того, чтобы получить список всех доступных переменных окружения, используйте функцию phpinfo().

Пред. | Начало | След.
apache_note | Уровень выше | apache_reset_timeout


apache_reset_timeout

(no version information, might be only in CVS)

apache_reset_timeout -- Reset the Apache write timer

Описание

bool apache_reset_timeout ( void )

apache_reset_timeout() resets the Apache write timer, which defaults to 300 seconds. With set_time_limit(0); ignore_user_abort(true) and periodic apache_reset_timeout() calls, Apache can theoretically run forever.

This function requires Apache 1.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание: Эта функция недоступна в безопасном режиме.

Пред. | Начало | След.
apache_request_headers | Уровень выше | apache_response_headers


apache_response_headers

(PHP 4 >= 4.3.0, PHP 5)

apache_response_headers -- Осуществить выборку всех заголовков HTTP ответа

Описание

array apache_response_headers ( void )

Возвращает массив, содержащий все заголовки ответа Apache. Эта функция доступна только для версий PHP >= 4.3.0.

Также ознакомьтесь с функцией getallheaders() и функцией headers_sent().

Пред. | Начало | След.
apache_reset_timeout | Уровень выше | apache_setenv


apache_setenv

(PHP 4 >= 4.2.0, PHP 5)

apache_setenv -- Установить переменную Apache subprocess_env

Описание

integer apache_setenv ( string variable, string value [, bool walk_to_top] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
apache_response_headers | Уровень выше | ascii2ebcdic


ascii2ebcdic

(PHP 3 >= 3.0.17)

ascii2ebcdic -- Преобразовать строку из ASCII в EBCDIC

Описание

integer ascii2ebcdic ( string ascii_str )

Функция ascii2ebcdic() предназначена для использования с сервером Apache и доступна только на операционных системах, основанных на стандарте EBCDIC (OS/390, BS2000). Эта функция преобразует ASCII-строку ascii_строка в ее эквивалентное представление в формате EBCDIC (безопасна для использования с двоичными данными) и возвращает резальтат.

Также ознакомьтесь с обратной функцией ebcdic2ascii()

Пред. | Начало | След.
apache_setenv | Уровень выше | ebcdic2ascii


ebcdic2ascii

(PHP 3 >= 3.0.17)

ebcdic2ascii -- Преобразовать строку из EBCDIC в ASCII

Описание

integer ebcdic2ascii ( string ebcdic_str )

Функция ebcdic2ascii() предназначена для использования с сервером Apache и доступна только в операционных системах, основанных на стандарте EBCDIC (OS/390, BS2000). Эта функция преобразует строку в формате EBCDIC ebcdic_строка в ее эквивалетное представление в формате ASCII (безопасна для использования с двоичными данными) и возвращает результат.

Также ознакомьтесь с обратной функцией ascii2ebcdic()

Пред. | Начало | След.
ascii2ebcdic | Уровень выше | getallheaders


getallheaders

(PHP 3, PHP 4, PHP 5)

getallheaders -- Получить все заголовки HTTP-запроса

Описание

array getallheaders ( void )

Функция getallheaders() является псевдонимом для функции apache_request_headers(). Эта функция возвращает ассоциативный массив, содержащий все заголовки текущего HTTP-запроса. Для получения более подробных сведений о работе этой функции обратитесь к описанию функции apache_request_headers().

Замечание: В PHP 4.3.0 функция getallheaders() стала псевдонимом для функции apache_request_headers(). Соответствующим образом, она была переименована. Это связано с тем, что эта функция работоспособна только в том случае, если PHP был собран в качестве модуля Apache.

См.также apache_request_headers().

Пред. | Начало | След.
ebcdic2ascii | Уровень выше | virtual


virtual

(PHP 3, PHP 4, PHP 5)

virtual -- Выполнить подзапрос Apache

Описание

integer virtual ( string filename )

Функция virtual() предназначена для работы в среде сервера Apache и является эквивалентом конструкции <!--#include virtual...-->, используемой в mod_include. Эта функция выполняет подзапрос Apache. Она бывает полезной в тех случаях, когда вам нужно включить в свой скрипт результат выполнения других CGI программ или скриптов или обработки сервером Apache .shtml файлов. Имейте в виду, что CGI скрипты должны создавать корректные CGI заголовки. Как минимум, CGI скрипт должен создавать заголовок Content-type. Если вы хотите включить в скрипт PHP файлы, используйте функцию include() или функцию require(); функция virtual() не должна использоваться для включения файлов, которые сами по себе являются PHP скриптами.

Перед тем, как осуществится выполнение подзапроса, все буферы сбрасываются и выдаются в броузер, также отсылаются заголовки, помещенные в буфер.

Пред. | Начало | След.
getallheaders | Уровень выше | Alternative PHP Cache


Advanced PHP debugger

Руководство по PHP
Пред. След.

IV. Advanced PHP debugger

Введение

APD is the Advanced PHP Debugger. It was written to provide profiling and debugging capabilities for PHP code, as well as to provide the ability to print out a full stack backtrace. APD supports interactive debugging, but by default it writes data to trace files. It also offers event based logging so that varying levels of information (including function calls, arguments passed, timings, etc.) can be turned on or off for individual scripts.

Предостережение

APD is a Zend Extension, modifying the way the internals of PHP handle function calls, and thus may or may not be compatible with other Zend Extensions (for example Zend Optimizer).

Установка

APD is currently available as a PECL extension from http://pecl.php.net/package/apd. Make sure you have installed the CGI version of PHP and it is available in your current path along with the phpize script.

Run the following command to download, build, and install the latest stable version of APD:
pear install apd

This automatically installs the APD Zend module into your PHP extensions directory. It is not mandatory to keep it there; you can store the module in any directory PHP can read as long as you set the zend_extension parameter accordingly.

Windows users can download the extension dll php_apd.dll from http://snaps.php.net/win32/PECL_STABLE/.

In your INI file, add the following lines:

zend_extension = /absolute/path/to/apd.so
apd.dumpdir = /absolute/path/to/trace/directory
apd.statement_tracing = 0

Depending on your PHP build, the zend_extension directive can be one of the following:

zend_extension              (non ZTS, non debug build)
zend_extension_ts           (    ZTS, non debug build)
zend_extension_debug        (non ZTS,     debug build)
zend_extension_debug_ts     (    ZTS,     debug build)

Building on Win32

To build APD under Windows you need a working PHP compilation environment as described on http://php.net/ -- basically, it requires you to have Microsoft Visual C++, win32build.zip, bison/flex, and some know how to get it to work. Also ensure that adp.dsp has DOS line endings; if it has unix line endings, Microsoft Visual C++ will complain about it.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. APD Configuration Options

Name | Default | Changeable | Changelog
apd.dumpdir | NULL | PHP_INI_ALL |
apd.statement_tracing | "0" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

apd.dumpdir string

Sets the directory in which APD writes profile dump files. You can specify an absolute path or a relative path.

You can specify a different directory as an argument to apd_set_pprof_trace().

apd.statement_tracing boolean

Specfies whether or not to do per-line tracings. Turning this on (1) will impact the performance of your application.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

How to use PHP-APD in your scripts

  1. As the first line of your PHP script, call the apd_set_pprof_trace() function to start the trace:

    apd_set_pprof_trace();

    You can insert the line anywhere in your script, but if you do not start tracing at the beginning of your script you discard profile data that might otherwise lead you to a performance bottleneck.

  2. Now run your script. The dump output will be written to apd.dumpdir/pprof_pid.ext.

    Подсказка: If you're running the CGI version of PHP, you will need to add the '-e' flag to enable extended information for apd to work properly. For example: php -e -f script.php

  3. To display formatted profile data, issue the pprofp command with the sort and display options of your choice. The formatted output will look something like:
    bash-2.05b$ pprofp -R /tmp/pprof.22141.0

Trace for /home/dan/testapd.php
Total Elapsed Time = 0.00
Total System Time  = 0.00
Total User Time    = 0.00

Real         User        System             secs/    cumm
%Time (excl/cumm)  (excl/cumm)  (excl/cumm) Calls    call    s/call  Memory Usage Name
--------------------------------------------------------------------------------------
100.0 0.00 0.00  0.00 0.00  0.00 0.00     1  0.0000   0.0009            0 main
56.9 0.00 0.00  0.00 0.00  0.00 0.00     1  0.0005   0.0005            0 apd_set_pprof_trace
28.0 0.00 0.00  0.00 0.00  0.00 0.00    10  0.0000   0.0000            0 preg_replace
14.3 0.00 0.00  0.00 0.00  0.00 0.00    10  0.0000   0.0000            0 str_replace

    The -R option used in this example sorts the profile table by the amount of real time the script spent executing a given function. The "cumm call" column reveals how many times each function was called, and the "s/call" column reveals how many seconds each call to the function required, on average.

  4. To generate a calltree file that you can import into the KCacheGrind profile analysis application, issue the pprof2calltree comand.

Contact information

If you have comments, bugfixes, enhancements or want to help developing this beast, you can send an mail to apd@mail.communityconnect.com. Any help is very welcome.

Содержание
apd_breakpoint -- Stops the interpreter and waits on a CR from the socket
apd_callstack -- Returns the current call stack as an array
apd_clunk -- Throw a warning and a callstack
apd_continue -- Restarts the interpreter
apd_croak -- Throw an error, a callstack and then exit
apd_dump_function_table -- Outputs the current function table
apd_dump_persistent_resources -- Return all persistent resources as an array
apd_dump_regular_resources -- Return all current regular resources as an array
apd_echo -- Echo to the debugging socket
apd_get_active_symbols -- Get an array of the current variables names in the local scope
apd_set_pprof_trace -- Starts the session debugging
apd_set_session_trace -- Starts the session debugging
apd_set_session -- Changes or sets the current debugging level
apd_set_socket_session_trace -- Starts the remote session debugging
override_function -- Overrides built-in functions
rename_function -- Renames orig_name to new_name in the global function_table

Пред. | Начало | След.
apc_store | Уровень выше | apd_breakpoint


apd_breakpoint

(PECL)

apd_breakpoint -- Stops the interpreter and waits on a CR from the socket

Description

bool apd_breakpoint ( int debug_level )

This can be used to stop the running of your script, and await responses on the connected socket. To step the program, just send enter (a blank line), or enter a php command to be executed. A typical session using tcplisten would look like this.

bash#tcplisten localhost 7777

APD - Advanced PHP Debugger Trace File
---------------------------------------------------------------------------
Process Pid (6118)
Trace Begun at Sun Mar 10 23:13:12 2002
---------------------------------------------------------------------------
(  0.000000): apd_set_session_trace called at /home/alan/Projects/project2/test.
php:5
(  0.074824): apd_set_session_trace_socket() at /home/alan/Projects/project2/tes
t.php:5 returned.  Elapsed (0.074824)
(  0.074918): apd_breakpoint() /home/alan/Projects/project2/test.php:7
              ++ argv[0] $(??) = 9
apd_breakpoint() at /home/alan/Projects/project2/test.php:7 returned.  Elapsed (
-2089521468.1073275368)
>\n
statement: /home/alan/Projects/project2/test.php:8
>\n
statement: /home/alan/Projects/project2/test.php:8
>\n
statement: /home/alan/Projects/project2/test.php:10
>apd_echo($i);
EXEC: apd_echo($i);
0
>apd_echo(serialize(apd_get_active_symbols()));
EXEC:  apd_echo(serialize(apd_get_active_symbols()));
a:47:{i:0;s:4:"PWD";i:1;s:10:"COLORFGBG";i:2;s:11:"XAUTHORITY";i:3;s:14:"
COLORTERM_BCE";i:4;s:9:"WINDOWID";i:5;s:14:"ETERM_VERSION";i:6;s:16:"SE
SSION_MANAGER";i:7;s:4:"PS1";i:8;s:11:"GDMSESSION";i:9;s:5:"USER";i:10;s:5:"
MAIL";i:11;s:7:"OLDPWD";i:12;s:5:"LANG";i:13;s:10:"COLORTERM";i:14;s:8:"DISP
LAY";i:15;s:8:"LOGNAME";i:16;s:6:"
>apd_echo(system('ls /home/mydir'));
........
>apd_continue(0);

Пред. | Начало | След.
Advanced PHP debugger | Уровень выше | apd_callstack


apd_callstack

(no version information, might be only in CVS)

apd_callstack -- Returns the current call stack as an array

Description

array apd_callstack ( void )

Returns the current call stack as an array

Пример 1. apd_callstack() example

<?php
print_r(apd_callstack());
?>

Пред. | Начало | След.
apd_breakpoint | Уровень выше | apd_clunk


apd_clunk

(no version information, might be only in CVS)

apd_clunk -- Throw a warning and a callstack

Description

void apd_clunk ( string warning [, string delimiter] )

Behaves like perl's Carp::cluck. Throw a warning and a callstack. The default line delimiter is "<BR />\n".

Пример 1. apd_clunk() example

<?php
apd_clunk("Some Warning","<P>");
?>

Пред. | Начало | След.
apd_callstack | Уровень выше | apd_continue


apd_continue

(PECL)

apd_continue -- Restarts the interpreter

Description

bool apd_continue ( int debug_level )

Usually sent via the socket to restart the interpreter.

Пример 1. apd_continue() example

<?php
apd_continue(0);
?>

Пред. | Начало | След.
apd_clunk | Уровень выше | apd_croak


apd_croak

(no version information, might be only in CVS)

apd_croak -- Throw an error, a callstack and then exit

Description

void apd_croak ( string warning [, string delimiter] )

Behaves like perl's Carp::croak. Throw an error, a callstack and then exit. The default line delimiter is "<BR />\n".

Пример 1. apd_croak() example

<?php
apd_croak("Some Warning","<P>");
?>

Пред. | Начало | След.
apd_continue | Уровень выше | apd_dump_function_table


apd_dump_function_table

(no version information, might be only in CVS)

apd_dump_function_table -- Outputs the current function table

Description

void apd_dump_function_table ( void )

Outputs the current function table.

Пример 1. apd_dump_function_table() example

<?php
apd_dump_function_table();
?>

Пред. | Начало | След.
apd_croak | Уровень выше | apd_dump_persistent_resources


apd_dump_persistent_resources

(no version information, might be only in CVS)

apd_dump_persistent_resources -- Return all persistent resources as an array

Description

array apd_dump_persistent_resources ( void )

Return all persistent resources as an array.

Пример 1. apd_dump_persistent_resources() example

<?php
print_r(apd_dump_persistent_resources());
?>

Пред. | Начало | След.
apd_dump_function_table | Уровень выше | apd_dump_regular_resources


apd_dump_regular_resources

(no version information, might be only in CVS)

apd_dump_regular_resources -- Return all current regular resources as an array

Description

array apd_dump_regular_resources ( void )

Return all current regular resources as an array.

Пример 1. apd_dump_regular_resources() example

<?php
print_r(apd_dump_regular_resources());
?>

Пред. | Начало | След.
apd_dump_persistent_resources | Уровень выше | apd_echo


apd_echo

(PECL)

apd_echo -- Echo to the debugging socket

Description

bool apd_echo ( string output )

Usually sent via the socket to request information about the running script.

Пример 1. apd_echo() example

<?php
apd_echo($i);
?>

Пред. | Начало | След.
apd_dump_regular_resources | Уровень выше | apd_get_active_symbols


apd_get_active_symbols

(no version information, might be only in CVS)

apd_get_active_symbols -- Get an array of the current variables names in the local scope

Description

array apd_get_active_symbols ( )

Returns the names of all the variables defined in the active scope, (not their values)

Пример 1. apd_get_active_symbols() example

<?php
apd_echo(apd_get_active_symbols());
?>

Пред. | Начало | След.
apd_echo | Уровень выше | apd_set_pprof_trace


apd_set_pprof_trace

(PECL)

apd_set_pprof_trace -- Starts the session debugging

Description

void apd_set_pprof_trace ( [string dump_directory] )

Starts debugging to {dump_directory}/pprof_{process_id}, if dump_directory is not set, then the apd.dumpdir setting from the php.ini file is used.

Пример 1. apd_set_pprof_trace() example

<?php
apd_set_pprof_trace();
?>

Пред. | Начало | След.
apd_get_active_symbols | Уровень выше | apd_set_session_trace


apd_set_session_trace

(no version information, might be only in CVS)

apd_set_session_trace -- Starts the session debugging

Description

void apd_set_session_trace ( int debug_level [, string dump_directory] )

Starts debugging to {dump_directory}/apd_dump_{process_id}, if dump_directory is not set, then the apd.dumpdir setting from the php.ini file is used.

debug_level is an integer which is formed by adding together the following values:

FUNCTION_TRACE      1
        ARGS_TRACE          2
        ASSIGNMENT_TRACE    4
        STATEMENT_TRACE     8
        MEMORY_TRACE        16
        TIMING_TRACE        32
        SUMMARY_TRACE       64

I would seriously not recommend using MEMORY_TRACE. It is very slow and does not appear to be accurate (great, huh?) also ASSIGNMENT_TRACE is not implemented. So, to turn on all functional traces (TIMING, FUNCTIONS, ARGS SUMMARY (like strace -c)) use the value 99

Пример 1. apd_set_session_trace() example

<?php
apd_set_session_trace(99);
?>

Пред. | Начало | След.
apd_set_pprof_trace | Уровень выше | apd_set_session


apd_set_session

(no version information, might be only in CVS)

apd_set_session -- Changes or sets the current debugging level

Description

void apd_set_session ( int debug_level )

This can be used to increase or decrease debugging in a different area of your application,.debug_level is an integer which is formed by adding together the following values:

FUNCTION_TRACE      1
        ARGS_TRACE          2
        ASSIGNMENT_TRACE    4
        STATEMENT_TRACE     8
        MEMORY_TRACE        16
        TIMING_TRACE        32
        SUMMARY_TRACE       64

Пример 1. apd_set_session() example

<?php
apd_set_session(9);
?>

Пред. | Начало | След.
apd_set_session_trace | Уровень выше | apd_set_socket_session_trace


apd_set_socket_session_trace

(no version information, might be only in CVS)

apd_set_socket_session_trace -- Starts the remote session debugging

Description

bool apd_set_socket_session_trace ( string ip_address_or_unix_socket_file, int socket_type, int port, int debug_level )

Connects to the tcp server (eg. tcplisten) specified IP or Unix Domain socket (like a file), and sends debugging data to the socket. You can use any port, but higher numbers are better as most of the lower numbers may be used by other system services.

the socket_type can be APD_AF_UNIX (for file based sockets) or APD_AF_INET (for standard tcp/ip)

debug_level is an integer which is formed by adding together the following values:

FUNCTION_TRACE      1
        ARGS_TRACE          2
        ASSIGNMENT_TRACE    4
        STATEMENT_TRACE     8
        MEMORY_TRACE        16
        TIMING_TRACE        32
        SUMMARY_TRACE       64

I would seriously not recommend setting the value to 'zero' to start with, and use the breakpoint methods to start debugging at a specific place in the file.

Пример 1. apd_set_socket_session_trace() example

<?php
  apd_set_socket_session_trace("127.0.0.1",APD_AF_INET,7112,0);
?>

Пред. | Начало | След.
apd_set_session | Уровень выше | override_function


override_function

(PECL)

override_function -- Overrides built-in functions

Description

bool override_function ( string function_name, string function_args, string function_code )

Syntax similar to create_function(). Overrides built-in functions (replaces them in the symbol table).

Пример 1. override_function() example

<?php
override_function('test', '$a,$b', 'echo "DOING TEST"; return $a * $b;');
?>

Пред. | Начало | След.
apd_set_socket_session_trace | Уровень выше | rename_function


rename_function

(PECL)

rename_function -- Renames orig_name to new_name in the global function_table

Description

bool rename_function ( string original_name, string new_name )

Renames orig_name to new_name in the global function_table. Useful for temporarily overriding builtin functions.

Пример 1. rename_function() example

<?php
rename_function('mysql_connect', 'debug_mysql_connect' );
?>

Пред. | Начало | След.
override_function | Уровень выше | Функции для работы с массивами


Функции для работы с массивами

Руководство по PHP
Пред. След.

V. Функции для работы с массивами

Введение

Эти функции позволят вам различными способами оперировать с массивами. Массивы идеально подходят для хранения, изменения и работы с наборами переменных.

Поддерживаются одно- и многоразмерные массивы, как созданные пользователем, так и возвращенные в качестве результата какой-либо функцией. Существуют специальные функции для работы с базами данных, облегчающие работу с массивами данных, возвращаемых в результате выполнения запросов; также существуют функции, возвращающие массивы в качестве результата.

Чтобы получить больше сведений о том, каким образом создаются и используются массивы в PHP, обратитесь к главе Массивы данного руководства.

Требования

Эти функции всегда доступны.

Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы всегда доступны как часть ядра PHP.

CASE_LOWER (integer)

CASE_LOWER используется с функцией array_change_key_case() для указания необходимости преобразования ключей массива в нижний регистр символов. По умолчанию функцией array_change_key_case() используется именно эта константа.

CASE_UPPER (integer)

CASE_UPPER используется с функцией array_change_key_case() для указания необходимости преобразования ключей массива в верхний регистр символов.

Смотрите также

См.также is_array(), explode(),
implode(), split(),
preg_split() и join().

Содержание
array_change_key_case -- Возвращает массив, символьные ключи которого преобразованы в верхний или нижний регистр символов
array_chunk -- Разбить массив на части
array_combine -- Создать новый массив, используя один массив в качестве ключей, а другой в качестве соответствующих значений
array_count_values -- Подсчитать количество всех значений массива
array_diff_assoc -- Вычислить расхождение в массивах с дополнительной проверкой индекса
array_diff_key -- Вычислить расхождение в массивах, сравнивая ключи
array_diff_uassoc -- Вычислить расхождение в массивах с дополнительной проверкой индекса, осуществляемой при помощи функции, определённой пользователем
array_diff_ukey -- Вычислить расхождение в массивах, используя функцию обратного вызова для сравнения ключей
array_diff -- Вычислить расхождение в массивах
array_fill -- Заполнить массив определенным значением
array_filter -- Применяет фильтр к массиву, используя функцию обратного вызова
array_flip -- Поменять местами значения массива
array_intersect_assoc -- Вычислить схождение массивов с дополнительной проверкой индекса
array_intersect_key -- Вычислить пересечение массивов, сравнивая ключи
array_intersect_uassoc -- Вычислить пересечение массивов с дополнительной проверкой индекса, осуществляемой при помощи функции, определённой пользователем
array_intersect_ukey -- Вычислить пересечение массивов, используя функцию обратного вызова для сравнения ключей
array_intersect -- Вычислить схождение массивов
array_key_exists -- Проверить, присутствует ли в массиве указанный ключ или индекс
array_keys -- Выбрать все ключи массива
array_map -- Применить функцию обратного вызова ко всем элементам указанных массивов
array_merge_recursive -- Рекурсивно слить два или большее количество массивов
array_merge -- Слить два или большее количество массивов
array_multisort -- Сортировать несколько массивов или многомерные массивы
array_pad -- Увеличить размер массива до заданной величины
array_pop -- Извлечь последний элемент массива
array_product -- Вычислить произведение значений массива
array_push -- Добавить один или несколько элеметов в конец массива
array_rand -- Выбрать одно или несколько случайных значений из массива
array_reduce -- Итеративно уменьшить массив к единственному значению, используя функцию обратного вызова
array_reverse -- Возвращает массив с элементами в обратном порядке
array_search -- Осуществляет поиск данного значения в массиве и возвращает соответствующий ключ в случае удачи
array_shift -- Извлечь первый элемент массива
array_slice -- Выбрать срез массива
array_splice -- Удалить последовательность элементов массива и заменить её другой последовательностью
array_sum -- Вычислить сумму значений массива
array_udiff_assoc -- Вычислить расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений функцию обратного вызова
array_udiff_uassoc -- Вычислить расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов функцию обратного вызова
array_udiff -- Вычислить расхождение массивов, используя для сравнения функцию обратного вызова
array_uintersect_assoc -- Вычислить пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений функцию обратного вызова
array_uintersect_uassoc -- Вычислить пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений функцию обратного вызова
array_uintersect -- Вычислить пересечение массивов, используя для сравнения значений функцию обратного вызова
array_unique -- Убрать повторяющиеся значения из массива
array_unshift -- Добавить один или несколько элементов в начало массива
array_values -- Выбрать все значения массива
array_walk_recursive -- Рекурсивно применить пользовательскую функцию к каждому элементу массива
array_walk -- Применить пользовательскую функцию к каждому члену массива
array -- Создать массив
arsort -- Отсортировать массив в обратном порядке, сохраняя ключи
asort -- Отсортировать массив, сохраняя ключи
compact -- Создать массив, содержащий названия переменных и их значения
count -- Посчитать количество элементов массива или количество свойств объекта
current -- Возвратить текущий элемент массива
each -- Возвратить текущую пару ключ/значение из массива и сместить его указатель
end -- Установить внутренний указатель массива на его последний элемент
extract -- Импортировать переменные из массива в текущую символьную таблицу.
in_array -- Проверить, присутствует ли в массиве значение
key -- Выбрать ключ из ассоциативного массива
krsort -- Отсортировать массив по ключам в обратном порядке
ksort -- Отсортировать массив по ключам
list -- Присвоить переменным из списка значения подобно массиву
natcasesort -- Отсортировать массив, используя алгоритм "natural order" не принимая во внимание регистр символов
natsort -- Отсортировать массив, используя алгоритм "natural order"
next -- Передвинуть внутренний указатель массива на одну позицию вперёд
pos -- Alias of current()
prev -- Передвинуть внутренний указатель массива на одну позицию назад
range -- Создать массив, содержащий диапазон элементов
reset -- Установить внутренний указатель массива на его первый элемент
rsort -- Отсортировать массив в обратном порядке
shuffle -- Перемешать массив
sizeof -- Alias of count()
sort -- Отсортировать массив
uasort -- Отсортировать массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей
uksort -- Отсортировать массив по ключам, используя пользовательскую функцию для сравнения ключей
usort -- Отсортировать массив по значениям используя пользовательскую функцию для сравнения элементов

Пред. | Начало | След.
rename_function | Уровень выше | array_change_key_case


array_change_key_case

(PHP 4 >= 4.2.0, PHP 5)

array_change_key_case -- Возвращает массив, символьные ключи которого преобразованы в верхний или нижний регистр символов

Описание

array array_change_key_case ( array input [, integer case] )

Функция array_change_key_case() преобразует ключи массива исходный_массив в верхний или нижний регистр символов. Тип преобразования зависит от последнего опционального параметра регистр_символов. В качестве этого параметра вы можете передать одну из двух констант: CASE_UPPER и CASE_LOWER. По умолчанию используется CASE_LOWER. Эта функция не изменяет ключи, состоящие из чисел.

Пример 1. Пример использования array_change_key_case()

$input_array = array("FirSt" => 1, "SecOnd" => 4);
print_r(array_change_key_case($input_array, CASE_UPPER));

Результатом выполнения вышеприведенной программы будет:
Array
(
    [FIRST] => 1
    [SECOND] => 2
)

Пред. | Начало | След.
Функции для работы с массивами | Уровень выше | array_chunk


array_chunk

(PHP 4 >= 4.2.0, PHP 5)

array_chunk -- Разбить массив на части

Описание

array array_chunk ( array input, integer size [, bool preserve_keys] )

Функция array_chunk() разбивает массив на несколько массивов размером размер значений. Последний массив из полученных может содержать меньшее количество значений, чем указано. В качестве результата функция возвращает многомерный массив с индексами, начинающимися с нуля и элементами, которыми являются массивы, полученные в результате разбивки.

Если вы передадите значение TRUE в качестве необязательного параметра preserve_keys, PHP сохранит ключи из исходного массива. Если значение этого параметра равно FALSE, элементы результирующих массивов будут проиндексированы числами, начиная с нуля. По умолчанию используется значение FALSE.

Пример 1. Пример использования array_chunk()

$input_array = array('a', 'b', 'c', 'd', 'e');
print_r(array_chunk($input_array, 2));
print_r(array_chunk($input_array, 2, TRUE));

Результатом выполнения вышеприведенной программы будет:
Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [0] => c
            [1] => d
        )

    [2] => Array
        (
            [0] => e
        )

)
Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [2] => c
            [3] => d
        )

    [2] => Array
        (
            [4] => e
        )

)

Пред. | Начало | След.
array_change_key_case | Уровень выше | array_combine


array_combine

(PHP 5)

array_combine -- Создать новый массив, используя один массив в качестве ключей, а другой в качестве соответствующих значений

Описание

array array_combine ( array keys, array values )

Возвращает array, используя значения массива keys в качестве ключей и значения масссива values в качестве соответствующих значений.

Возвращает FALSE, если количество элементов в исходных массивах не совпадает или если массивы пусты.

Пример 1. Простой пример использования array_combine()

<?php
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);

print_r($c);
?>

Выводит:

Array
(
    [green]  => avocado
    [red]    => apple
    [yellow] => banana
)

См. также array_merge(),
array_walk(), и
array_values().

Пред. | Начало | След.
array_chunk | Уровень выше | array_count_values


array_count_values

(PHP 4, PHP 5)

array_count_values -- Подсчитать количество всех значений массива

Описание

array array_count_values ( array input )

Функция array_count_values() возвращает массив, ключами которого являются значения массива исходный_массив, а значениями - частота повторения этих значений.

Пример 1. Пример использования array_count_values()

$array = array (1, "hello", 1, "world", "hello");
print_r(array_count_values ($array));

Результатом вышеприведенной программы будет:
Array
(
    [1] => 2
    [hello] => 2
    [world] => 1
)

Пред. | Начало | След.
array_combine | Уровень выше | array_diff_assoc


array_diff_assoc

(PHP 4 >= 4.3.0, PHP 5)

array_diff_assoc -- Вычислить расхождение в массивах с дополнительной проверкой индекса

Описание

array array_diff_assoc ( array array_1, array array_2 [, array ...] )

Функция array_diff_assoc() возвращает массив, состоящий из значений массива array_1, которые отсутствуют в любом другом массиве, перечисленном в последующих аргументах. Обратите внимание, что ключи возвращаемого расхождения отличны от ключей расхождения, возвращаемого функцией array_diff().

Пример 1. Пример использования array_diff_assoc()

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>

Результатом вышеприведенной программы будет:

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

В вышеприведённом примере Вы видите, что пара "a" => "green" содержится в обоих массивах и таким образом её не содержится в выводе функции. Наоборот, пара 0 => "red" содержится в выводе функции, потому что во втором аргументе значению "red" соответствует ключ 1.

Два значения пар key => value считаются равными только, если (string) $elem1 === (string) $elem2 . Другими словами, строгая проверка считает, что строковое представление должно быть идентичным.

Замечание: Обратите внимание, что эта функция обрабатывает только одно измерение n-размерного массива. Естественно, вы можете обрабатывать и более глубокие уровни вложенности, например, используя array_diff_assoc($array1[0], $array2[0]);.

См.также array_diff(),
array_intersect(),
и array_intersect_assoc().

Пред. | Начало | След.
array_count_values | Уровень выше | array_diff_key


array_diff_key

(PHP 5 >= 5.1.0RC1)

array_diff_key -- Вычислить расхождение в массивах, сравнивая ключи

Описание

array array_diff_key ( array array1, array array2 [, array ...] )

array_diff_key() возвращает массив, содержащий все значения array1, имеющие ключи, не содержащиеся в последующих параметрах. Обратите внимание, что ассоциации сохраняются. Эта функция схожа с array_diff() за исключением того, что сравниваются ключи, а не значения.

Пример 1. Пример использования array_diff_key()

<?php
$array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);

var_dump(array_diff_key($array1, $array2));
?>

Результат выполнения данного примера:

array(2) {
  ["red"]=>
  int(2)
  ["purple"]=>
  int(4)
}

Два ключа пар key => value считаются равными только, если (string) $key1 === (string) $key2 . Другими словами, строгая проверка считает, что строковое представление должно быть идентичным.

Замечание: Обратите внимание, что эта функция обрабатывает только одно измерение n-размерного массива. Естественно, вы можете обрабатывать и более глубокие уровни вложенности, например, используя array_diff_key($array1[0], $array2[0]);.

См. также array_diff(),
array_udiff()
array_diff_assoc(),
array_diff_uassoc(),
array_udiff_assoc(),
array_udiff_uassoc(),
array_diff_ukey(),
array_intersect(),
array_intersect_assoc(),
array_intersect_uassoc(),
array_intersect_key() и
array_intersect_ukey().

Пред. | Начало | След.
array_diff_assoc | Уровень выше | array_diff_uassoc


array_diff_uassoc

(PHP 5)

array_diff_uassoc -- Вычислить расхождение в массивах с дополнительной проверкой индекса, осуществляемой при помощи функции, определённой пользователем

Описание

array array_diff_uassoc ( array array1, array array2 [, array ..., callback key_compare_func] )

array_diff_uassoc() возвращает array, содержащий все значения array1, не содержащиеся в последующих параметрах. Обратите внимание, что в отличие от array_diff(), для сравнения используются ключи.

Для сравнения используется функция, определённая пользователем. Она должна возвращать целое число меньшее, равное или большее нуля, если первый параметр, соответственно, меньше, равен или больше второго. В отличие от array_diff_assoc(), использующей для сравнения встроенную функцию.

Пример 1. Пример использования array_diff_uassoc()

<?php
function key_compare_func($a, $b)
{
    if ($a === $b) {
        return 0;
    }
    return ($a > $b)? 1:-1;
}

$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_uassoc($array1, $array2, "key_compare_func");
print_r($result);
?>

Результат выполнения данного примера:

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

В нашем примере пара "a" => "green" существует в обоих массивах и поэтому не присутствует в выводе функции. Наоборот, пара 0 => "red" присутствует в выводе, потому что во втором аргументе значению "red" соответствует ключ 1.

Равенство двух индексов проверяется при помощи функции, определённой пользователем.

Замечание: Обратите внимание, что эта функция обрабатывает только одно измерение n-размерного массива. Естественно, вы можете обрабатывать и более глубокие уровни вложенности, например, используя array_diff_uassoc($array1[0], $array2[0], "key_compare_func");.

См. также
array_diff(),
array_diff_assoc(),
array_udiff(),
array_udiff_assoc(),
array_udiff_uassoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() и
array_uintersect_uassoc().

Пред. | Начало | След.
array_diff_key | Уровень выше | array_diff_ukey


array_diff_ukey

(PHP 5 >= 5.1.0RC1)

array_diff_ukey -- Вычислить расхождение в массивах, используя функцию обратного вызова для сравнения ключей

Описание

array array_diff_ukey ( array array1, array array2 [, array ..., callback key_compare_func] )

array_diff_ukey() возвращает массив, содержащий все значения array1, имеющие ключи, не содержащиеся в последующих параметрах. Обратите внимание, что ассоциации сохраняются. Эта функция схожа с array_diff() за исключением того, что сравниваются ключи, а не значения.

Для сравнения используется функция, определённая пользователем. Она должна возвращать целое число меньшее, равное или большее нуля, если первый ключ, соответственно, меньше, равен или больше второго.

Пример 1. Пример использования array_diff_ukey()

<?php
function key_compare_func($key1, $key2)
{
    if ($key1 == $key2)
        return 0;
    else if ($key1 > $key2)
        return 1;
    else
        return -1;
}

$array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);

var_dump(array_diff_ukey($array1, $array2, 'key_compare_func'));
?>

Результат выполнения данного примера:

array(2) {
  ["red"]=>
  int(2)
  ["purple"]=>
  int(4)
}

Замечание: Обратите внимание, что эта функция обрабатывает только одно измерение n-размерного массива. Естественно, вы можете обрабатывать и более глубокие уровни вложенности, например, используя array_diff_ukey($array1[0], $array2[0], 'callback_func');.

См. также array_diff(),
array_udiff()
array_diff_assoc(),
array_diff_uassoc(),
array_udiff_assoc(),
array_udiff_uassoc(),
array_diff_key(),
array_intersect(),
array_intersect_assoc(),
array_intersect_uassoc(),
array_intersect_key() и
array_intersect_ukey().

Пред. | Начало | След.
array_diff_uassoc | Уровень выше | array_diff


array_diff

(PHP 4 >= 4.0.1, PHP 5)

array_diff -- Вычислить расхождение в массивах

Описание

array array_diff ( array array1, array array2 [, array ...] )

Функция array_diff() возвращает массив, состоящий из значений массива массив_1, которые отсутствуют в любом другом массиве, перечисленном в последующих аргументах. Обратите внимание, что ключи массивов сохраняются.

Пример 1. Пример использования array_diff()

$array1 = array ("a" => "green", "red", "blue", "red");
$array2 = array ("b" => "green", "yellow", "red");
$result = array_diff ($array1, $array2);

В результате выполнения этой программы переменная $result будет содержать array ("blue");. Повторения одного и того же значения в $array1 обрабатываются как одно значение.

Замечание: Два элемента считаются одинаковыми если и только если (string) $elem1 === (string) $elem2. Другими словами, когда их строковое представление идентично.

Замечание: Обратите внимание, что эта функция обрабатывает только одно измерение n-размерного массива. Естественно, вы можете обрабатывать и более глубокие уровни вложенности, например, используя array_diff($array1[0], $array2[0]);.

Внимание

См.также array_intersect().

Пред. | Начало | След.
array_diff_ukey | Уровень выше | array_fill


array_fill

(PHP 4 >= 4.2.0, PHP 5)

array_fill -- Заполнить массив определенным значением

Описание

array array_fill ( integer start_index, integer num, mixed value )

Функция array_fill() возвращает массив, содержащий количество элементов, имеющих значение параметра значение. Нумерация ключей элементов массива начинаются со значения параметра начальный_индекс parameter.

Пример 1. Пример использования array_fill()

$a = array_fill(5, 6, 'banana');

Переменная $a теперь содержит следующие значения (вывод функции print_r()):
Array
(
    [5]  => banana
    [6]  => banana
    [7]  => banana
    [8]  => banana
    [9]  => banana
    [10] => banana
)

Пред. | Начало | След.
array_diff | Уровень выше | array_filter


array_filter

(PHP 4 >= 4.0.6, PHP 5)

array_filter -- Применяет фильтр к массиву, используя функцию обратного вызова

Описание

array array_filter ( array input [, mixed callback] )

Функция array_filter() возвращает массив, содержащий значения массива исходный_массив, отфильтрованные в соответствии с результатом функции обратного вызова. Если исходный_массив является ассоциативным массивом, его ключи сохраняются.

Пример 1. Пример использования array_filter()

function odd($var) {
    return ($var % 2 == 1);
}

function even($var) {
    return ($var % 2 == 0);
}

$array1 = array ("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array (6, 7, 8, 9, 10, 11, 12);

echo "Нечетные :\n";
print_r(array_filter($array1, "odd"));
echo "Четные   :\n";
print_r(array_filter($array2, "even"));

Результатом выполнения вышеприведенной программы будет:
Нечетные :
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Четные   :
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Пользователи не должны изменять массив в результате его обработки функцией обратного вызова, например, добавлять или удалять элемент или обнулять массив, обрабатываемый функцией array_filter(). Если массив подвергается изменениям, поведение этой функции становится неопределенным.

См.также array_map() и array_reduce().

Пред. | Начало | След.
array_fill | Уровень выше | array_flip


array_flip

(PHP 4, PHP 5)

array_flip -- Поменять местами значения массива

Описание

array array_flip ( array input )

Функция array_flip() возвращает array в обратном порядке, то есть ключи массива исходный_массив становятся значениями, а значения массива исходный_массив становятся ключами.

Обратите внимание, что значения массива исходный_массив должны быть корректными ключами, то есть они должны иметь тип integer или string. Если значение имеет неверный тип, будет выдано предупреждение и пара ключ/значение не будет обработана.

Если значение встречается несколько раз, для обработки будет использоваться последний встреченный ключ, а все остальные будут потеряны.

Функция array_flip() возвращает FALSE, если обработка массива вызвала ошибку.

Пример 1. Пример использования array_flip()

$trans = array_flip ($trans);
$original = strtr ($str, $trans);

Пример 2. Пример использования array_flip(): многократное повторение значения

$trans = array ("a" => 1, "b" => 1, "c" => 2);
$trans = array_flip ($trans);
print_r($trans);

теперь $trans содержит:
Array
(
    [1] => b
    [2] => c
)

Пред. | Начало | След.
array_filter | Уровень выше | array_intersect_assoc


array_intersect_assoc

(PHP 4 >= 4.3.0, PHP 5)

array_intersect_assoc -- Вычислить схождение массивов с дополнительной проверкой индекса

Описание

array array_intersect_assoc ( array array_1, array array_2 [, array ...] )

Функция array_intersect_assoc() возвращает массив, содержащий значения массива aray_1, которые содержат все перечисленные в аргументах массивы. Обратите внимание, что ключи возвращаемого схождения отличны от ключей схождения, возвращаемого функцией array_intersect().

Пример 1. Пример использования array_intersect_assoc()

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result_array = array_intersect_assoc($array1, $array2);
?>

В результате выполнения переменная $result_array будет содержать:

Array
(
    [a] => green
)

В нашем примере Вы видете, что только пара "a" => "green", содержится в обоих массивах и таким образом возвращается. Значение "red" не возвращается, потому что в массиве $array1 его ключ - 0, в то время как ключ значения "red" в массиве $array2 - 1.

Два значения пар key => value считаются равными только, если (string) $elem1 === (string) $elem2 . Другими словами, строгая проверка считает, что строковое представление должно быть идентичным.

См.также array_intersect(),
array_diff() и
array_diff_assoc().

Пред. | Начало | След.
array_flip | Уровень выше | array_intersect_key


array_intersect_key

(PHP 5 >= 5.1.0RC1)

array_intersect_key -- Вычислить пересечение массивов, сравнивая ключи

Описание

array array_intersect_key ( array array1, array array2 [, array ...] )

array_intersect_key() возвращает массив, содержащий значения array1, имеющие ключи, содержащиеся во всех последующих параметрах..

Пример 1. Пример использования array_intersect_key()

<?php
$array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);

var_dump(array_intersect_key($array1, $array2));
?>

Результат выполнения данного примера:

array(2) {
  ["blue"]=>
  int(1)
  ["green"]=>
  int(3)
})

В нашем примере только ключи 'blue' и 'green' содержатся в обоих массивах и поэтому возвращаются. Также обратите внимание, что значения, соответствующие ключам 'blue' и 'green' различны в исходных массивах. Совпадение происходит, так как сравниваются только ключи. Возвращаемые значения берутся из array1.

Два ключа пар key => value считаются равными только, если (string) $key1 === (string) $key2 . Другими словами, строгая проверка считает, что строковое представление должно быть идентичным.

См. также array_diff(),
array_udiff()
array_diff_assoc(),
array_diff_uassoc(),
array_udiff_assoc(),
array_udiff_uassoc(),
array_diff_key(),
array_diff_ukey(),
array_intersect(),
array_intersect_assoc(),
array_intersect_uassoc() и
array_intersect_ukey().

Пред. | Начало | След.
array_intersect_assoc | Уровень выше | array_intersect_uassoc


array_intersect_uassoc

(PHP 5)

array_intersect_uassoc -- Вычислить пересечение массивов с дополнительной проверкой индекса, осуществляемой при помощи функции, определённой пользователем

Описание

array array_intersect_uassoc ( array array1, array array2 [, array ..., callback key_compare_func] )

array_intersect_uassoc() возвращает массив, содержащий значения array1, содержащиеся во всех последующих параметрах. Обратите внимание, что в отличие от array_intersect(), для сравнения используются ключи.

Для сравнения используется функция, определённая пользователем. Она должна возвращать целое число меньшее, равное или большее нуля, если первый параметр, соответственно, меньше, равен или больше второго.

Пример 1. Пример использования array_intersect_uassoc()

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");

print_r(array_intersect_uassoc($array1, $array2, "strcasecmp"));
?>

Результат выполнения данного примера:

Array
(
    [b] => brown
)

См. также array_intersect(),
array_intersect_assoc(),
array_uintersect_assoc(),
array_uintersect_uassoc(),
array_intersect_key() и
array_intersect_ukey().

Пред. | Начало | След.
array_intersect_key | Уровень выше | array_intersect_ukey


array_intersect_ukey

(PHP 5 >= 5.1.0RC1)

array_intersect_ukey -- Вычислить пересечение массивов, используя функцию обратного вызова для сравнения ключей

Описание

array array_intersect_ukey ( array array1, array array2 [, array ..., callback key_compare_func] )

array_intersect_ukey() возвращает массив, содержащий значения array1, имеющие ключи, содержащиеся во всех последующих параметрах.

Для сравнения используется функция, определённая пользователем. Она должна возвращать целое число меньшее, равное или большее нуля, если первый ключ, соответственно, меньше, равен или больше второго.

Пример 1. Пример использования array_intersect_ukey()

<?php
function key_compare_func($key1, $key2)
{
    if ($key1 == $key2)
        return 0;
    else if ($key1 > $key2)
        return 1;
    else
        return -1;
}

$array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);

var_dump(array_intersect_ukey($array1, $array2, 'key_compare_func'));
?>

Результат выполнения данного примера:

array(2) {
  ["blue"]=>
  int(1)
  ["green"]=>
  int(3)
})

В нашем примере только ключи 'blue' и 'green' содержатся в обоих массивах и поэтому возвращаются. Также обратите внимание, что значения, соответствующие ключам 'blue' и 'green' различны в исходных массивах. Совпадение происходит, так как сравниваются только ключи. Возвращаемые значения берутся из array1.

См. также array_diff(),
array_udiff()
array_diff_assoc(),
array_diff_uassoc(),
array_udiff_assoc(),
array_udiff_uassoc(),
array_diff_key(),
array_diff_ukey(),
array_intersect(),
array_intersect_assoc(),
array_intersect_uassoc() и
array_intersect_key().

Пред. | Начало | След.
array_intersect_uassoc | Уровень выше | array_intersect


array_intersect

(PHP 4 >= 4.0.1, PHP 5)

array_intersect -- Вычислить схождение массивов

Описание

array array_intersect ( array array1, array array2 [, array ...] )

Функция array_intersect() возвращает массив, содержащий значения массива массив_1, которые содержат все перечисленные в аргументах массивы. Обратите внимание, что ключи сохраняются.

Пример 1. Пример использования array_intersect()

$array1 = array ("a" => "green", "red", "blue");
$array2 = array ("b" => "green", "yellow", "red");
$result = array_intersect ($array1, $array2);

В результате выполнения переменная $result будет содержать
Array
(
    [a] => green
    [0] => red
)

Замечание: Два элемента считаются одинаковыми тогда и только тогда, когда (string) $elem1 === (string) $elem2. Другими словами, когда их строковые представления идентичны.

См.также array_diff().

Пред. | Начало | След.
array_intersect_ukey | Уровень выше | array_key_exists


array_key_exists

(PHP 4 >= 4.1.0, PHP 5)

array_key_exists -- Проверить, присутствует ли в массиве указанный ключ или индекс

Описание

bool array_key_exists ( mixed key, array input )

Функция array_key_exists() возвращает TRUE, если в массиве присутствует указанное значение ключ. Параметр ключ может быть любым значением, которое подходит для описания индекса массива.

Пример 1. Пример использования array_key_exists()

$search_array = array("first" => 1, "second" => 4);
if (array_key_exists("first", $search_array)) {
    echo "The 'first' element is in the array";
}

Замечание: В PHP версии 4.0.6 название этой функции - key_exists().

См.также isset().

Пред. | Начало | След.
array_intersect | Уровень выше | array_keys


array_keys

(PHP 4, PHP 5)

array_keys -- Выбрать все ключи массива

Описание

array array_keys ( array input [, mixed значение_для_поиска] )

Функция array_keys() возвращает числовые и строковые ключи, содержащиеся в массиве исходный_массив.

Если указан необязательный параметр значение_для_поиска, функция возвращает только ключи, совпадающие с этим параметром. В обратном случае, функция возвращает все ключи массива исходный_массив.

Пример 1. Пример использования array_keys()

$array = array (0 => 100, "color" => "red");
print_r(array_keys ($array));

$array = array ("blue", "red", "green", "blue", "blue");
print_r(array_keys ($array, "blue"));

$array = array ("color" => array("blue", "red", "green"), "size" => array("small", "medium", "large"));
print_r(array_keys ($array));

Результатом выполнения вышеприведенной программы будет:
Array
(
    [0] => 0
    [1] => color
)
Array
(
    [0] => 0
    [1] => 3
    [2] => 4
)
Array
(
    [0] => color
    [1] => size
)

Замечание: Эта функция появилась в PHP 4. Ниже приведен ее эквивалент для PHP 3.

Пример 2. Эквивалент функции array_keys() в PHP 3

function array_keys ($arr, $term="") {
    $t = array();
    while (list($k,$v) = each($arr)) {
        if ($term && $v != $term) {
            continue;
        }
        $t[] = $k;
    }
    return $t;
}

См.также array_values().

Пред. | Начало | След.
array_key_exists | Уровень выше | array_map


array_map

(PHP 4 >= 4.0.6, PHP 5)

array_map -- Применить функцию обратного вызова ко всем элементам указанных массивов

Описание

array array_map ( mixed callback, array array1 [, array array2...] )

Функция array_map() возвращает массив, содержащий элементы всех указанных массивов после их обработки функцией обратного вызова. Количество параметров, передаваемых функции обратного вызова, должно совпадать с количеством массивов, переданным функции array_map().

Пример 1. Пример использования array_map()

function cube($n) {
    return $n*$n*$n;
}

$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);

В результате переменная $b будет содержать:
Array
(
    [0] => 1
    [1] => 8
    [2] => 27
    [3] => 64
    [4] => 125
)

Пример 2. Пример использования array_map(): обработка нескольких массивов

function show_Spanish($n, $m) {
    return "Число $n по-испански -  $m";
}

function map_Spanish($n, $m) {
    return array ($n => $m);
}

$a = array(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");

$c = array_map("show_Spanish", $a, $b);
print_r($c);

$d = array_map("map_Spanish", $a , $b);
print_r($d);

Результат выполнения:
// printout of $c
Array
(
    [0] => Число 1 по-испански -  uno
    [1] => Число 2 по-испански -  dos
    [2] => Число 3 по-испански -  tres
    [3] => Число 4 по-испански -  cuatro
    [4] => Число 5 по-испански -  cinco
)

// printout of $d
Array
(
    [0] => Array
        (
            [1] => uno
        )

    [1] => Array
        (
            [2] => dos
        )

    [2] => Array
        (
            [3] => tres
        )

    [3] => Array
        (
            [4] => cuatro
        )

    [4] => Array
        (
            [5] => cinco
        )

)

Обычно при обработке двух или более массивов, они имею одинаковую длину, так как функция обратного вызова применяется параллельно к соответствующим элементам массивов. Если массивы имеют различную длину, самый маленький из них дополняется элементами с пустыми значениями.

Интересным эффектом при использовании этой функции является создание массива массивов, что может быть достигнуто путем использования значения NULL в качестве имени функции обратного вызова.

Пример 3. Создание массива массивов

$a = array(1, 2, 3, 4, 5);
$b = array("one", "two", "three", "four", "five");
$c = array("uno", "dos", "tres", "cuatro", "cinco");

$d = array_map(null, $a, $b, $c);
print_r($d);

Результатом выполнения вышеприведенной программы будет:
Array
(
    [0] => Array
        (
            [0] => 1
            [1] => one
            [2] => uno
        )

    [1] => Array
        (
            [0] => 2
            [1] => two
            [2] => dos
        )

    [2] => Array
        (
            [0] => 3
            [1] => three
            [2] => tres
        )

    [3] => Array
        (
            [0] => 4
            [1] => four
            [2] => cuatro
        )

    [4] => Array
        (
            [0] => 5
            [1] => five
            [2] => cinco
        )

)

См.также array_filter() и array_reduce().

Пред. | Начало | След.
array_keys | Уровень выше | array_merge_recursive


array_merge_recursive

(PHP 4 >= 4.0.1, PHP 5)

array_merge_recursive -- Рекурсивно слить два или большее количество массивов

Описание

array array_merge_recursive ( array array1, array array2 [, array ...] )

Функция array_merge_recursive() сливает элементы двух или большего количества массивов таким образом, что значения одного массива присоединяются к значениям предыдущего. Результатом работы функции является новый массив.

Если входные массивы имеют одинаковые строковые ключи, тогда значения, соответствующие этим ключам, рекурсивно сливаются в один массив, таким образом, если одно из значений является массивом, функция сливает его с соответствующим значением в другом массиве. Однако, если массивы имеют одинаковые числовые ключи, значение, упомянутое последним, не заменит исходное значение, а будет слито с ним.

Пример 1. Пример использования array_merge_recursive()

$ar1 = array ("color" => array ("favorite" => "red"), 5);
$ar2 = array (10, "color" => array ("favorite" => "green", "blue"));
$result = array_merge_recursive ($ar1, $ar2);

Переменная $result будет содержать:
Array
(
    [color] => Array
        (
            [favorite] => Array
                (
                    [0] => red
                    [1] => green
                )

            [0] => blue
        )

    [0] => 5
    [1] => 10
)

См.также array_merge().

Пред. | Начало | След.
array_map | Уровень выше | array_merge


array_merge

(PHP 4, PHP 5)

array_merge -- Слить два или большее количество массивов

Описание

array array_merge ( array array1, array array2 [, array ...] )

Функция array_merge() сливает элементы двух или большего количества массивов таким образом, что значения одного массива присоединяются к значениям предыдущего. Результатом работы функции является новый массив.

Если входные массивы имеют одинаковые строковые ключи, тогда значения, соответствующие этим ключам, рекурсивно сливаются в один массив, таким образом, если одно из значений является массивом, функция сливает его с соответствующим значением в другом массиве. Однако, если массивы имеют одинаковые числовые ключи, значение, упомянутое последним, не заменит исходное значение, а будет слито с ним.

Пример 1. Пример использования array_merge()

$array1 = array ("color" => "red", 2, 4);
$array2 = array ("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$result = array_merge ($array1, $array2);
print_r($result);

Результат выполнения данного примера:

Array
(
    [color] => green
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [shape] => trapezoid
    [4] => 4
)

Пример 2. Пример простого использования array_merge()

$array1 = array();
$array2 = array(1 => "data");
$result = array_merge($array1, $array2);

Не забывайте, что числовые ключи будут перенумерованы!
Array
(
    [0] => data
)

Если вы хотите полностью сохранить массивы и просто слить их вместе, используйте оператор +:
$array1 = array();
$array2 = array(1 => "data");
$result = $array1 + $array2;
Числовой ключ будет сохранен, поэтому ассоциация также сохраняется.
Array
(
    [1] => data
)

Замечание: Общие ключи будут перезаписаны по принципу "первый пришел - первый обработан".

Внимание

Поведение функции array_merge() было изменено в PHP 5. В отличие от PHP 4, array_merge() принимает параметры только типа array. Однако вы можете использовать приведение типов. Смотрите следующий пример для уточнения подробностей.

Пример 3. Пример использования array_merge() с параметрами разных типов в PHP 5

<?php
$beginning = 'foo';
$end = array(1 => 'bar');
$result = array_merge((array)$beginning, (array)$end);
print_r($result);
?>

Результат выполнения данного примера:

Array
(
    [0] => foo
    [1] => bar
)

См.также array_merge_recursive().

Пред. | Начало | След.
array_merge_recursive | Уровень выше | array_multisort


array_multisort

(PHP 4, PHP 5)

array_multisort -- Сортировать несколько массивов или многомерные массивы

Описание

bool array_multisort ( array ar1 [, mixed arg [, mixed ... [, array ...]]] )

Функция array_multisort() может быть использована для сортировки сразу нескольких массивов или одного многомерного массива в соответствии с одной или несколькими размерностями. Эта функция сохраняет соответствие между ключами и соответствующими им значениями.

Входные массивы рассматриваются как столбцы таблицы, которую нужно отсортировать по строкам - такой подход напоминает поведение выражения SQL ORDER BY. Первый массив имеет проиоритет в процессе сортировки.

Структура аргументов этой функции немного необычна, но удобна. Первым аргументом должен быть массив. Последующие аргументы могут быть как массивами, так и значениями, определяющими порядок сортировки, приведенными в нижеследующем списке.

Значения, определяющие порядок сортировки:

  • SORT_ASC - сортировать в возрастающем порядке

  • SORT_DESC - сортировать в убывающем порядке

Sorting type flags:

  • SORT_REGULAR - сравнивать элементы обычным образом

  • SORT_NUMERIC - сравнивать элементы, как если бы они были числами

  • SORT_STRING - сравнивать элементы, как если бы они были строками

Недопустимым является указание двух флагов сортировки одинакового типа после каждого массива. Флаги сортировки, переданные после аргумента массив, применяются только к этому аргументу - перед тем, как функция начнет обрабатывать следующий массив, эти флаги снова принимают значения по умолчаниюt SORT_ASC и SORT_REGULAR.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. Сортировка нескольких массивов

$ar1 = array ("10", 100, 100, "a");
$ar2 = array (1, 3, "2", 1);
array_multisort ($ar1, $ar2);

В вышеприведенном примере, после того, как будет осуществлена сортировка, первый массив будет содержать 10, "a", 100, 100. Второй - 1, 1, "2", 3. Элементы второго массива, соответствующие идентичным элементам первого (100 и 100), также будут отсортированы.

Пример 2. Сортировка многомерного массива

$ar = array (array ("10", 100, 100, "a"), array (1, 3, "2", 1));
array_multisort ($ar[0], SORT_ASC, SORT_STRING,
                 $ar[1], SORT_NUMERIC, SORT_DESC);

В вышеприведенном примере, после сортировки, первый массив будет содержать 10, 100, 100, "a" (его элементы были отсортированы в возрастающем порядке так, как если бы они были строками), а второй массив будет содержать 1, 3, "2", 1 (элементы отсортированы как числа, в порядке убывания).

Пред. | Начало | След.
array_merge | Уровень выше | array_pad


array_pad

(PHP 4, PHP 5)

array_pad -- Увеличить размер массива до заданной величины

Описание

array array_pad ( array input, integer pad_size, mixed pad_value )

Функция array_pad() возвращает копию массива исходный_массив, размер которого был увеличен до значения параметра размер элементами со значением значение. Если параметр размер является положительным числом, то массив увеличивается с конца, если отрицательный - сначала. Если абсолютное значение параметра размер меньше или равно размеру массива исходный_массив, функция не производит никаких операций.

Пример 1. Пример использования array_pad()

$input = array (12, 10, 9);

$result = array_pad ($input, 5, 0);
// результат: array (12, 10, 9, 0, 0)

$result = array_pad ($input, -7, -1);
// результат: array (-1, -1, -1, -1, 12, 10, 9)

$result = array_pad ($input, 2, "noop");
// операция не произведена

Пред. | Начало | След.
array_multisort | Уровень выше | array_pop


array_pop

(PHP 4, PHP 5)

array_pop -- Извлечь последний элемент массива

Описание

mixed array_pop ( array &array )

array_pop() извлекает и возвращает последнее значение параметра array, уменьшая размер array на один элемент. Если array пуст (или не является массивом), будет возвращён NULL.

Замечание: Эта функция сбрасывает указатель массива после использования.

Пример 1. Пример использованияarray_pop()

<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_pop($stack);
print_r($stack);
?>

После этого, в $stack будет только 3 элемента:

Array
(
    [0] => orange
    [1] => banana
    [2] => apple
)

и raspberry будет присвоено переменной $fruit.

См. также array_push(),
array_shift(), и
array_unshift().

Пред. | Начало | След.
array_pad | Уровень выше | array_product


array_push

(PHP 4, PHP 5)

array_push -- Добавить один или несколько элеметов в конец массива

Описание

int array_push ( array &array, mixed var [, mixed ...] )

array_push() использует array как стэк, и добавляет переданные значения в конец массива array. Длина array увеличивается на количество переданных значений. Имеет тот же эффект, что и выражение:
<?php
$array[] = $var;
?>
повторенное для каждой var.

Возвращает новое количество элементов в массиве.

Пример 1. Пример использования array_push()

<?php
$stack = array("orange", "banana");
array_push($stack, "apple", "raspberry");
print_r($stack);
?>

В результате выполнения этого примера, $stack содержит следующие элементы:

Array
(
    [0] => orange
    [1] => banana
    [2] => apple
    [3] => raspberry
)

Замечание: Вместо использования array_push() для добавления в массив одного элемента, лучше использовать $array[] = , потому что в этом случае не происходит вызова функции.

См. также array_pop(),
array_shift(), и
array_unshift().

Пред. | Начало | След.
array_product | Уровень выше | array_rand


array_rand

(PHP 4, PHP 5)

array_rand -- Выбрать одно или несколько случайных значений из массива

Описание

mixed array_rand ( array input [, int num_req] )

Использование array_rand() предпочтительно, если вам нужно выбрать одно или несколько случайных значений из массива. Эта функция в качестве параметров берёт массив input и дополнительный аргумент num_req, который определяет количество значений, которое вы хотите выбрать - если не определён, то 1.

Если вы выбираете только одно значение, функция array_rand() возвращает ключ, соответствующий этому значению. В обратном случае, она возвращает массив ключей, соответствующих случайным значениям. Это означает, что вы можете выбрать из массива как случайные значения, так и случайные ключи.

Замечание: Начиная с PHP 4.2.0, больше нет необходимости инициализировать генератор случайных чисел функциями srand() или mt_srand(), поскольку теперь это происходит автоматически.

Пример 1. Пример использования array_rand()

<?php
srand((float) microtime() * 10000000);
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
?>

См. также shuffle().

Пред. | Начало | След.
array_push | Уровень выше | array_reduce


array_reduce

(PHP 4 >= 4.0.5, PHP 5)

array_reduce -- Итеративно уменьшить массив к единственному значению, используя функцию обратного вызова

Описание

mixed array_reduce ( array input, callback function [, int initial] )

array_reduce() итеративно применяет функцию function к элементам массива input и, таким образом, сводит массив к единственному значению. Если указан дополнительный параметр initial, он будет использован в начале процесса, или в качестве окончательного результата, если массив пуст.

Пример 1. Пример использованияarray_reduce()

<?php
function rsum($v, $w)
{
    $v += $w;
    return $v;
}

function rmul($v, $w)
{
    $v *= $w;
    return $v;
}

$a = array(1, 2, 3, 4, 5);
$x = array();
$b = array_reduce($a, "rsum");
$c = array_reduce($a, "rmul", 10);
$d = array_reduce($x, "rsum", 1);
?>

В результате переменная $b содержит 15, $c содержит 1200 (= 1*2*3*4*5*10), и $d содержит 1.

См. также array_filter(),
array_map(),
array_unique(), и
array_count_values().

Пред. | Начало | След.
array_rand | Уровень выше | array_reverse


array_reverse

(PHP 4, PHP 5)

array_reverse -- Возвращает массив с элементами в обратном порядке

Описание

array array_reverse ( array array [, bool preserve_keys] )

Функция array_reverse() берёт массив array и возвращает новый массив, порядок элементов в котором обратный исходному, сохраняя ключи, если параметр preserve_keys равен TRUE.

Пример 1. Пример использования array_reverse()

<?php
$input  = array("php", 4.0, array("green", "red"));
$result = array_reverse($input);
$result_keyed = array_reverse($input, true);
?>

Оба массива $result и $result_keyed содержат одинаковые значения, но обратите внимание на различные ключи. Распечатка $result и $result_keyed будет:

Array
(
    [0] => Array
        (
            [0] => green
            [1] => red
        )

    [1] => 4
    [2] => php
)
Array
(
    [2] => Array
        (
            [0] => green
            [1] => red
        )

    [1] => 4
    [0] => php
)

Замечание: Второй аргумент был добавлен в PHP 4.0.3.

См. также array_flip().

Пред. | Начало | След.
array_reduce | Уровень выше | array_search


array_search

(PHP 4 >= 4.0.5, PHP 5)

array_search -- Осуществляет поиск данного значения в массиве и возвращает соответствующий ключ в случае удачи

Описание

mixed array_search ( mixed needle, array haystack [, bool strict] )

Ищет в haystack значение needle и возвращает ключ, если таковое присутствует в массиве, FALSE в противном случае.

Замечание: Если needle является строкой, производится регистро-зависимое сравнение.

Замечание: До PHP 4.2.0, array_search() при неудаче возвращала NULL вместо FALSE.

Если вы передадите значение TRUE в качестве необязательного третьего параметра strict, функция array_search() также проверит тип needle в массиве haystack.

Если needle присутствует в haystack более одного раза, будет возвращён первый найденный ключ. Для того, чтобы возвратить ключи для всех найденных значений, используйте функцию array_keys() с необязательным параметром search_value.

Пример 1. Пример использования array_search()

<?php
$array = array(0 => 'blue', 1 => 'red', 2 => 0x000000, 3 => 'green', 4 => 'red');

$key = array_search('red', $array);         // $key = 1;
$key = array_search('green', $array);       // $key = 2; (0x000000 == 0 == 'green')
$key = array_search('green', $array, true); // $key = 3;
?>

Внимание

Эта функция может возвращать как логическое значение FALSE, так и не относящееся к логическому типу значение, которое приводится к FALSE, например, 0 или "". За более подробной информации обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

См. также array_keys(),
array_values(),
array_key_exists(), и
in_array().

Пред. | Начало | След.
array_reverse | Уровень выше | array_shift


array_shift

(PHP 4, PHP 5)

array_shift -- Извлечь первый элемент массива

Описание

mixed array_shift ( array &array )

array_shift() извлекает первое значение массива array и возвращает его, сокращая размер array на один элемент. Все числовые ключи будут изменены таким образом, что нумерация массива начнётся с нуля, в то время как строковые ключи останутся прежними. Если array пуст (или не является массивом), будет возвращён NULL.

Замечание: Эта функция сбрасывает указатель массива после использования.

Пример 1. Пример использования array_shift()

<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_shift($stack);
print_r($stack);
?>

В результате в массиве $stack останется 3 элемента:

Array
(
    [0] => banana
    [1] => apple
    [2] => raspberry
)

и значение orange будет присвоено переменной $fruit.

См. также array_unshift(),
array_push() и
array_pop().

Пред. | Начало | След.
array_search | Уровень выше | array_slice


array_slice

(PHP 4, PHP 5)

array_slice -- Выбрать срез массива

Описание

array array_slice ( array array, int offset [, int length [, bool preserve_keys]] )

array_slice() возвращает последовательность элементов массива array, определённую параметрами offset и length.

Если параметр offset положителен, последовательность начнётся на расстоянии offset от начала array. Если offset отрицателен, последовательность начнётся на расстоянии offset от конца array.

Если в эту функцию передан положительный параметр length, последовательность будет включать length элементов. Если в эту функцию передан отрицательный параметр length, в последовательность войдут все элементы исходного массива, начиная с позиции offset и заканчивая позицией, отстоящей на length элементов от конца array. Если этот параметр будет опущен, в последовательность войдут все элементы исходного массива array, начиная с позиции offset.

Обратите внимание, что array_slice() сбрасывает ключи массива. Начиная с PHP 5.0.2 вы можете переопределить это поведение, установив параметр preserve_keys в TRUE.

Пример 1. Пример использования array_slice()

<?php
$input = array("a", "b", "c", "d", "e");

$output = array_slice($input, 2);      // returns "c", "d", and "e"
$output = array_slice($input, -2, 1);  // returns "d"
$output = array_slice($input, 0, 3);   // returns "a", "b", and "c"

// note the differences in the array keys
print_r(array_slice($input, 2, -1));
print_r(array_slice($input, 2, -1, true));
?>

Вышеприведённый пример выведет:

Array
(
    [0] => c
    [1] => d
)
Array
(
    [2] => c
    [3] => d
)

См. также array_splice() и unset().

Пред. | Начало | След.
array_shift | Уровень выше | array_splice


array_splice

(PHP 4, PHP 5)

array_splice -- Удалить последовательность элементов массива и заменить её другой последовательностью

Оисание

array array_splice ( array &input, int offset [, int length [, array replacement]] )

array_splice() удаляет length элементов, расположенных на растоянии offset от начала массива input, и заменяет их элементами массива replacement, если он передан в качестве параметра. Возвращает массив выбранных элементов.

Если параметр offset положителен, будут удалены элементы, находящиеся на расстоянии offset от начала array. Если offset отрицателен, будут удалены элементы, находящиеся на расстоянии offset от конца array.

Если параметр length опущен, будут удалены все элементы начиная с позиции offset и до конца массива. Если передан положительный параметр length, будет удалено length элементов. Если передан отрицательный параметр length, будут удалены элементы исходного массива, начиная с позиции offset и заканчивая позицией, отстоящей на length элементов от конца array. Совет: для того, чтобы удалить все элементы массива, начиная с позиции offset в то время как указан параметр replacement, используйте count($input) в качестве параметра length.

Если передан массив replacement в качестве аргумента, тогда удалённые элементы будут заменены элементами этого массива. Если параметры offset и length таковы, что из исходного массива не будет ничего удалено, тогда элементы массива replacement будут вставлены на позицию offset. Обратите внимание, что ключи массива replacement не сохраняются. Совет: если вам нужно вставить один элемент в массив, нет необходимости заключать его в вызов функции array(), если только этот элемент не является массивом.

Последующие выражения произведут одинаковые изменения в массиве $input:

Таблица 1. Эквиваленты array_splice()

array_push($input, $x, $y) | array_splice($input, count($input), 0, array($x, $y))
array_pop($input) | array_splice($input, -1)
array_shift($input) | array_splice($input, 0, 1)
array_unshift($input, $x, $y) | array_splice($input, 0, 0, array($x, $y))
$input[$x] = $y // в случае, если key равен offset | array_splice($input, $x, 1, $y)

Возвращает массив, содержащий удалённые элементы.

Пример 1. Примеры использования array_splice()

<?php
$input = array("red", "green", "blue", "yellow");
array_splice($input, 2);
// $input is now array("red", "green")

$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, -1);
// $input is now array("red", "yellow")

$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, count($input), "orange");
// $input is now array("red", "orange")

$input = array("red", "green", "blue", "yellow");
array_splice($input, -1, 1, array("black", "maroon"));
// $input is now array("red", "green",
//          "blue", "black", "maroon")

$input = array("red", "green", "blue", "yellow");
array_splice($input, 3, 0, "purple");
// $input is now array("red", "green",
//          "blue", "purple", "yellow");
?>

См. также array_slice(),
unset() и
array_merge().

Пред. | Начало | След.
array_slice | Уровень выше | array_sum


array_sum

(PHP 4 >= 4.0.4, PHP 5)

array_sum -- Вычислить сумму значений массива

Описание

number array_sum ( array array )

array_sum() возвращает сумму значений массива. Полученный результат будет иметь тип integer или float.

Пример 1. Пример использования array_sum()

<?php
$a = array(2, 4, 6, 8);
echo "sum(a) = " . array_sum($a) . "\n";

$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);
echo "sum(b) = " . array_sum($b) . "\n";
?>

Программа выведет:

sum(a) = 20
sum(b) = 6.9

Замечание: PHP более ранних, чем 4.2.1, версий модифицировал переданный в качестве аргумента массив и конвертировал строки в числа (что в большинстве случаев означало конвертирование в 0).

Пред. | Начало | След.
array_splice | Уровень выше | array_udiff_assoc


array_udiff_assoc

(PHP 5)

array_udiff_assoc -- Вычислить расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений функцию обратного вызова

Описание

array array_udiff_assoc ( array array1, array array2 [, array ..., callback data_compare_func] )

array_udiff_assoc() возвращает array содержащий все значения параметра array1, отсутствующие в последующих аргументах. Обратите внимание, что для сравнения используются ключи, в отличие от функций array_diff() и array_udiff(). Для сравнения значений массивов используется определённая пользователем функция обратного вызова. В этом смысле поведение array_udiff_assoc() отличается от поведения array_diff_assoc(), которая использует встроенную функцию для сравнения значений.

Пример 1. Пример использования array_udiff_assoc()

<?php
class cr {
    private $priv_member;
    function cr($val)
    {
        $this->priv_member = $val;
    }

    function comp_func_cr($a, $b)
    {
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member > $b->priv_member)? 1:-1;
    }
}

$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);

$result = array_udiff_assoc($a, $b, array("cr", "comp_func_cr"));
print_r($result);
?>

Результат выполнения данного примера:

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

В примере выше вы видите, что пара "1" => new cr(4) имеется в обоих массивах и поэтому её нет в выводе функции.

Для сравнения используется функция, определённая пользователем. Она должна возвращать целое число меньшее, равное или большее нуля, если первый параметр, соответственно, должен считаться меньше, равен или больше второго.

Замечание: Пожалуйста, обратите внимание, что эта функция обрабатывает только одно измерение многомерного массива. Разумеется, вы можете обработать более одного измерения, используя array_udiff_assoc($array1[0], $array2[0], "some_comparison_func");.

См. также
array_diff(),
array_diff_assoc(),
array_diff_uassoc(),
array_udiff(),
array_udiff_uassoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() и
array_uintersect_uassoc().

Пред. | Начало | След.
array_sum | Уровень выше | array_udiff_uassoc


array_udiff_uassoc

(PHP 5)

array_udiff_uassoc -- Вычислить расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов функцию обратного вызова

Описание

array array_udiff_uassoc ( array array1, array array2 [, array ..., callback data_compare_func, callback key_compare_func] )

array_udiff_uassoc() возвращает array, все значения параметра array1, отсутствующие в последующих аргументах. Обратите внимание, что для сравнения используются ключи, в отличие от array_diff() и array_udiff(). Сравнение значений массива происходит при помощи определённой пользователем функции обратного вызова: data_compare_func. В этом смысле поведение отличается от поведения array_diff_assoc(), использующей для сравнения внутреннюю функцию. Сравнение ключей (индексов) происходит также при помощи определённой пользователем функции обратного вызова key_compare_func. Это поведение отлично от поведения array_udiff_assoc(), которая использует для сравнения ключей встроенную функцию.

Пример 1. Пример использованияarray_udiff_uassoc()

<?php
class cr {
    private $priv_member;
    function cr($val)
    {
        $this->priv_member = $val;
    }

    function comp_func_cr($a, $b)
    {
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member > $b->priv_member)? 1:-1;
    }

    function comp_func_key($a, $b)
    {
        if ($a === $b) return 0;
        return ($a > $b)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);

$result = array_udiff_uassoc($a, $b, array("cr", "comp_func_cr"), array("cr", "comp_func_key"));
print_r($result);
?>

Результат выполнения данного примера:

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

В вышеприведённом примере вы можете видеть, что пара "1" => new cr(4) присутствует в обоих массивах и поэтому отсутствует в выводе функции. Держите в уме, что вы можете использовать две функции обратного вызова.

Для сравнения используется функция, определённая пользователем. Она должна возвращать целое число меньшее, равное или большее нуля, если первый параметр, соответственно, должен считаться меньше, равен или больше второго.

Замечание: Пожалуйста, обратите внимание, что эта функция обрабатывает только одно измерение многомерного массива. Разумеется, вы можете обработать более одного измерения, используя array_udiff_uassoc($array1[0], $array2[0], "data_compare_func", "key_compare_func");.

См. также
array_diff(),
array_diff_assoc(),
array_diff_uassoc(),
array_udiff(),
array_udiff_assoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() и
array_uintersect_uassoc().

Пред. | Начало | След.
array_udiff_assoc | Уровень выше | array_udiff


array_udiff

(PHP 5)

array_udiff -- Вычислить расхождение массивов, используя для сравнения функцию обратного вызова

Описание

array array_udiff ( array array1, array array2 [, array ..., callback data_compare_func] )

array_udiff() возвращает массив, содержащий все значения параметра array1, отсутствующие в последующих аргументах. Обратите внимание, что ключи сохраняются. Для сравнения значений используется функция data_compare_func. Она должна возвращать целое число меньшее, равное или большее нуля, если первый параметр, соответственно, должен считаться меньше, равен или больше второго. Обратите внимание на отличие от array_diff(), которая использует встроенную функцию для сравнения значений массивов.

Пример 1. Пример использования array_udiff()

<?php
class cr {
    private $priv_member;
    function cr($val)
    {
        $this->priv_member = $val;
    }

    function comp_func_cr($a, $b)
    {
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member > $b->priv_member)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);

$result = array_udiff($a, $b, array("cr", "comp_func_cr"));
print_r($result);
?>

Результат выполнения данного примера:

Array
(
    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )

)

Замечание: Обратите внимание, что эта функция обрабатывает только одно измерение многомерного массива. Разумеется, вы можете обработать более одного измерения, используя array_udiff($array1[0], $array2[0], "data_compare_func");.

См. также
array_diff(),
array_diff_assoc(),
array_diff_uassoc(),
array_udiff_assoc(),
array_udiff_uassoc(),
array_intersect(),
array_intersect_assoc(),
array_uintersect(),
array_uintersect_assoc() и
array_uintersect_uassoc().

Пред. | Начало | След.
array_udiff_uassoc | Уровень выше | array_uintersect_assoc


array_uintersect_assoc

(PHP 5)

array_uintersect_assoc -- Вычислить пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений функцию обратного вызова

Описание

array array_uintersect_assoc ( array array1, array array2 [, array ..., callback data_compare_func] )

array_uintersect_assoc() возвращает массив, содержащий все значения array1 присутствующие во всех последующих аргументах. Обратите внимание, что при сравнении используются ключи в отличие от array_uintersect(). Значения сравниваются при помощи функции обратного вызова.

Пример 1. Пример использования array_uintersect_assoc()

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");

print_r(array_uintersect_assoc($array1, $array2, "strcasecmp"));
?>

Результат выполнения данного примера:

Array
(
    [a] => green
)

Для сравнения используется функция, определённая пользователем. Она должна возвращать целое число меньшее, равное или большее нуля, если первый параметр, соответственно, должен считаться меньше, равен или больше второго.

См. также array_uintersect(),
array_intersect_assoc(),
array_intersect_uassoc() и
array_uintersect_uassoc().

Пред. | Начало | След.
array_udiff | Уровень выше | array_uintersect_uassoc


array_uintersect_uassoc

(PHP 5)

array_uintersect_uassoc -- Вычислить пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений функцию обратного вызова

Описание

array array_uintersect_uassoc ( array array1, array array2 [, array ..., callback data_compare_func, callback key_compare_func] )

array_uintersect_uassoc() возвращает массив, содержащий все значения параметра array1, содержащиеся во всех последующих аргументах. Обратите внимание, что в отличие от array_uintersect() в сравнении используются и ключи. Для сравнения и ключей, и значений используется функция обратного вызова.

Пример 1. Пример использования array_uintersect_uassoc()

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");

print_r(array_uintersect_uassoc($array1, $array2, "strcasecmp", "strcasecmp"));
?>

Результат выполнения данного примера:

Array
(
    [a] => green
    [b] => brown
)

Для сравнения используется функция, определённая пользователем. Она должна возвращать целое число меньшее, равное или большее нуля, если первый параметр, соответственно, должен считаться меньше, равен или больше второго.

См. также array_uintersect(),
array_intersect_assoc(),
array_intersect_uassoc() и
array_uintersect_assoc().

Пред. | Начало | След.
array_uintersect_assoc | Уровень выше | array_uintersect


array_uintersect

(PHP 5)

array_uintersect -- Вычислить пересечение массивов, используя для сравнения значений функцию обратного вызова

Описание

array array_uintersect ( array array1, array array2 [, array ..., callback data_compare_func] )

array_uintersect() возвращает массив, содержащий все значения параметра array1 присутствующие во всех последующих аргументах. Значения сравниваются при помощи функции обратного вызова.

Пример 1. Пример использования array_uintersect()

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");

print_r(array_uintersect($array1, $array2, "strcasecmp"));
?>

Результат выполнения данного примера:

Array
(
    [a] => green
    [b] => brown
    [0] => red
)

Для сравнения используется функция, определённая пользователем. Она должна возвращать целое число меньшее, равное или большее нуля, если первый параметр, соответственно, должен считаться меньше, равен или больше второго.

См. также array_intersect(),
array_uintersect_assoc(),
array_intersect_uassoc() и
array_uintersect_uassoc().

Пред. | Начало | След.
array_uintersect_uassoc | Уровень выше | array_unique


array_unique

(PHP 4 >= 4.0.1, PHP 5)

array_unique -- Убрать повторяющиеся значения из массива

Описание

array array_unique ( array array )

array_unique() берёт в качестве параметра array и возвращает новый массив без повторяющихся значений.

Обратите внимание, что ключи сохранятся. array_unique() сначала сортирует значения как строки, сохраняет первый встреченный ключ для каждого значения и игнорирует все последующие ключи. Это не означает, что первый ключ каждого значения неотсортированного array будет сохранён.

Замечание: Два элемента считаются одинаковыми в том и только в том случае, если (string) $elem1 === (string) $elem2. Другими словами: если у них одинаковое строковое представление.

Будет использован первый элемент.

Пример 1. Пример использования array_unique()

<?php
$input = array("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique($input);
print_r($result);
?>

Вывод:

Array
(
    [a] => green
    [0] => red
    [1] => blue
)

Пример 2. array_unique() и типы:

<?php
$input = array(4, "4", "3", 4, 3, "3");
$result = array_unique($input);
var_dump($result);
?>

Скрипт выведет:

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}

Пред. | Начало | След.
array_uintersect | Уровень выше | array_unshift


array_unshift

(PHP 4, PHP 5)

array_unshift -- Добавить один или несколько элементов в начало массива

Описание

int array_unshift ( array &array, mixed var [, mixed ...] )

array_unshift() добавляет переданные в качестве аргументов элементы в начало массива array. Обратите внимание, что список элементов добавляется целиком, то есть порядок элементов сохраняется. Все числовые ключи будут изменены таким образом, что нумерация массива будет начинаться с нуля, в то время как строковые ключи останутся прежними.

Возвращает новое количество элементов в array.

Пример 1. Пример использования array_unshift()

<?php
$queue = array("orange", "banana");
array_unshift($queue, "apple", "raspberry");
?>

В результате массив $queue будет содержать следующие элементы:

Array
(
    [0] => apple
    [1] => raspberry
    [2] => orange
    [3] => banana
)

См. также array_shift(),
array_push() и
array_pop().

Пред. | Начало | След.
array_unique | Уровень выше | array_values


array_values

(PHP 4, PHP 5)

array_values -- Выбрать все значения массива

Описание

array array_values ( array input )

array_values() возвращает индексный массив, содержащий все значения массива input.

Пример 1. Пример использованияarray_values()

<?php
$array = array("size" => "XL", "color" => "gold");
print_r(array_values($array));
?>

Выведет:

Array
(
    [0] => XL
    [1] => gold
)

См. также array_keys().

Пред. | Начало | След.
array_unshift | Уровень выше | array_walk_recursive


array_walk_recursive

(PHP 5)

array_walk_recursive -- Рекурсивно применить пользовательскую функцию к каждому элементу массива

Описание

bool array_walk_recursive ( array &input, callback funcname [, mixed userdata] )

Применяет пользовательскую функцию funcname к каждому элементу массива input. Эта функция обрабатывает каждый элемент многомерного массива. Обычно у функции funcname два параметра. Значение массива array в качестве первого параметра, и ключ/индекс в качестве второго. Если указан дополнительный параметр userdata, он будет передан в качестве третьего параметра в функцию обратного вызова funcname.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: Если требуется, чтобы функция funcname изменила значения в массиве, определите первый параметр funcname как ссылку. Тогда все изменения будут применены к элементам массива.

Пример 1. Пример использования array_walk_recursive()

<?php
$sweet = array('a' => 'apple', 'b' => 'banana');
$fruits = array('sweet' => $sweet, 'sour' => 'lemon');

function test_print($item, $key)
{
    echo "$key holds $item\n";
}

array_walk_recursive($fruits, 'test_print');
?>

Вывод вышеприведённой программы:

a holds apple
b holds banana
sour holds lemon

Обратите внимание, что ключ 'sweet' никогда не отображается. Никакой ключ, соответствующий значению типа array, не будет передан в функцию.

См. также array_walk().

Пред. | Начало | След.
array_values | Уровень выше | array_walk


array_walk

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

array_walk -- Применить пользовательскую функцию к каждому члену массива

Описание

bool array_walk ( array &array, callback funcname [, mixed userdata] )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Применяет пользовательскую функцию funcname к каждому элементу массива array. Обычно у функции funcname два параметра. Значение массива array в качестве первого параметра, и ключ/индекс в качестве второго. Если указан дополнительный параметр userdata, он будет передан в качестве третьего параметра в функцию обратного вызова funcname.

Если в функцию funcname должно быть передано больше параметров, чем передано на самом деле, ошибка уровня E_WARNING будет генерироваться каждый раз как array_walk() будет вызывать funcname. Эти предупреждения могут быть подавлены добавлением оператора управления ошибками PHP @ в вызов array_walk(), или использованием error_reporting().

Замечание: Если требуется, чтобы функция funcname изменила значения в массиве, определите первый параметр funcname как ссылку. Тогда все изменения будут применены к элементам массива.

Замечание: Передача в funcname параметров key и userdata была добавлена в версии 4.0.0

array_walk() не изменяет внутренний указатель массива array. array_walk() обойдёт все элементы массива независимо от позиции указателя. Для того чтобы сбросить указатель, используйте функцию reset(). В PHP 3 array_walk() сбрасывает указатель.

Вы не сможете изменить непосредственно массив при помощи функции обратного вызова, то есть добавить и удалить элементы, уничтожить значения элементов и т.д. Если массив, к которому применяется array_walk(), изменится, то поведение этой функции станет неопределённым и непредсказуемым.

Пример 1. Пример использования array_walk()

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");

function test_alter(&$item1, $key, $prefix)
{
    $item1 = "$prefix: $item1";
}

function test_print($item2, $key)
{
    echo "$key. $item2<br />\n";
}

echo "Before ...:\n";
array_walk($fruits, 'test_print');

array_walk($fruits, 'test_alter', 'fruit');
echo "... and after:\n";

array_walk($fruits, 'test_print');
?>

Вывод вышеприведённой программы:

Before ...:
d. lemon
a. orange
b. banana
c. apple
... and after:
d. fruit: lemon
a. fruit: orange
b. fruit: banana
c. fruit: apple

См. также array_walk_recursive(),
create_function(),
list(),
foreach,
each(),
call_user_func_array() и
array_map().

Пред. | Начало | След.
array_walk_recursive | Уровень выше | array


array

(PHP 3, PHP 4, PHP 5)

array -- Создать массив

Описание

array array ( [mixed ...] )

Возвратить массив параметров. Параметры могут быть заданы с индексом при помощи оператора =>. См. раздел руководства array type для ознакомления с понятием массив.

Замечание: array() - это языковая конструкция для представления массивов, а не функция.

Синтакс "index => values", разделённые запятыми, определяет индексы и их значения. Индекс может быть строкой или целым числом. Если индекс опущен, будет автоматически сгенерирован числовой индекс, начиная с 0. Если индекс - число, следующим сгенерированным индексом будет число, равное максимальному числовому индексу + 1. Обратите внимание, что если определены два одинаковых индекса, последующий переназначит предыдущий.

Использование запятой после последнего определённого элемента массива, в отличие от обычного поведения, является приемлемым синтаксисом.

Последующие примеры демонстрируют создание двухмерного массива, определение ключей ассоциативных массивов и и способ генерации числовых индексов для обычных массивов, если нумерация начинается с произвольного числа.

Пример 1. Пример использования array()

<?php
$fruits = array (
    "fruits"  => array("a" => "orange", "b" => "banana", "c" => "apple"),
    "numbers" => array(1, 2, 3, 4, 5, 6),
    "holes"   => array("first", 5 => "second", "third")
);
?>

Пример 2. Автоматическая индексация array()

<?php
$array = array(1, 1, 1, 1,  1, 8 => 1,  4 => 1, 19, 3 => 13);
print_r($array);
?>

Результат выполнения данного примера:

Array
(
    [0] => 1
    [1] => 1
    [2] => 1
    [3] => 13
    [4] => 1
    [8] => 1
    [9] => 19
)

Обратите внимание, что индекс '3' определён дважды, и содержит последнее значение 13. Индекс 4 определён после индекса 8, и следующий сгенерированный индекс (значение 19) - 9, начиная с максимального индекса 8.

Этот пример создаёт массив, нумерация которого начинаяется с 1.

Пример 3. array(), нумерация которого начинаяется с 1

<?php
$firstquarter = array(1 => 'January', 'February', 'March');
print_r($firstquarter);
?>

Результат выполнения данного примера:

Array
(
    [1] => January
    [2] => February
    [3] => March
)

Как и в Perl, вы имеете доступ к значениям массива внутри кавычек. Однако в PHP нужно заключить ваш массив в фигурные скобки.

Пример 4. Доступ к массиву внутри кавычек

<?php

$foo = array('bar' => 'baz');
echo "Hello {$foo['bar']}!"; // Hello baz!

?>

См. также array_pad(),
list(),
count(),
foreach и
range().

Пред. | Начало | След.
array_walk | Уровень выше | arsort


arsort

(PHP 3, PHP 4, PHP 5)

arsort -- Отсортировать массив в обратном порядке, сохраняя ключи

Описание

bool arsort ( array &array [, int sort_flags] )

Эта функция сортирует массив в обратном порядке таким образом, что сохраняются отношения между ключами и значениями. Она полезна, в основном, при сортировке ассаоциативных массивов, когда важно сохранить отношение ключ => значение.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. Пример использования arsort()

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
arsort($fruits);
reset($fruits);
while (list($key, $val) = each($fruits)) {
    echo "$key = $val\n";
}
?>

Результат выполнения данного примера:

a = orange
d = lemon
b = banana
c = apple

Названия фруктов были отсортированы в обратном порядке и отношения ключ/значение были сохранены.

Вы можете изменить поведение сортировки, используя дополнительный параметр sort_flags, подробнее см. sort().

См. также asort(), rsort(), ksort() и sort().

Пред. | Начало | След.
array | Уровень выше | asort


asort

(PHP 3, PHP 4, PHP 5)

asort -- Отсортировать массив, сохраняя ключи

Описание

bool asort ( array &array [, int sort_flags] )

Эта функция сортирует массив таким образом, что сохраняются отношения между ключами и значениями. Она полезна, в основном, при сортировке ассоциативных массивов, когда важно сохранить отношение ключ => значение.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. Пример использования asort()

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
asort($fruits);
reset($fruits);
while (list($key, $val) = each($fruits)) {
    echo "$key = $val\n";
}
?>

Результат выполнения данного примера:

c = apple
b = banana
d = lemon
a = orange

Названия фруктов были отсортированы и отношения ключ/значение были сохранены.

Вы можете изменить поведение сортировки, используя дополнительный параметр sort_flags, подробнее см. sort().

См. также arsort(), rsort(), ksort() и sort().

Пред. | Начало | След.
arsort | Уровень выше | compact


compact

(PHP 4, PHP 5)

compact -- Создать массив, содержащий названия переменных и их значения

Описание

array compact ( mixed varname [, mixed ...] )

compact() принимает переменное число параметров. Любой из параметров может быть либо строкой, содержащей название переменной либо массивом названий переменных. Массив может содержать вложенные массивы названий переменных; функция compact() обрабатывает их рекурсивно.

Для каждого из параметров, compact() смотрит, существует ли переменная с таким именем в текущей символьной таблице и добавляет в результирующий массив элемент, ключ которого содержит название переменной, а значение, соответствующее этому ключу, значение переменной. Коротко говоря, действия этой функции противоположны действиям функции extract(). Она возвращает результирующий массив со всеми переменными, добавленными туда.

Если переменной, с именем, соответствующем переданной строке не существует, такая строка будет просто проигнорирована.

Пример 1. Пример использования compact()

<?php
$city  = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";

$location_vars = array("city", "state");

$result = compact("event", "nothing_here", $location_vars);
?>

После этого значение $result будет:

Array
(
    [event] => SIGGRAPH
    [city] => San Francisco
    [state] => CA
)

См. также extract().

Пред. | Начало | След.
asort | Уровень выше | count


count

(PHP 3, PHP 4, PHP 5)

count -- Посчитать количество элементов массива или количество свойств объекта

Описание

int count ( mixed var [, int mode] )

Возвратить количество элементов переменной var, которая обычно является array, или любым другим объектом, который может содержать хотя бы один элемент.

Для объектов count() возвращает количество нестатических свойств, не принимая во внимание видимость. Если у вас включена поддержка SPL, вы можете перехватить count(), реализуя интерфейс Countable. Этот интерфейс имеет только один метод, count(), который возвращает значение функции count().

Если var не является массивом или объектом, реализующим интерфейс Countable, будет возвращена 1. За одним исключением: если var - NULL, то будет возвращён 0.

Замечание: Дополнительный параметр mode был добавлен начиная с PHP 4.2.0.

Если дополнительный параметр mode установлен в COUNT_RECURSIVE (или 1), count() будет считать количество элементов массива рекурсивно. Это особенно полезно для подсчёта всех элементов многомерных массивов. Предустановленное значение параметра mode - 0. count() не обнаруживает бесконечную рекурсию.

Предостережение

count() может возвратить 0 для переменных, которые не установлены, но также может возвратить 0 для переменных, которые инициализированы пустым массивом. Используйте функцию isset() для того, чтобы протестировать, установлена ли переменная.

Пожалуйста, см. раздел этого руководства Array для того, чтобы получить детальное представление о реализации и использовании массивов в PHP.

Пример 1. Пример использования count()

<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
$result = count($a);
// $result == 3

$b[0]  = 7;
$b[5]  = 9;
$b[10] = 11;
$result = count($b);
// $result == 3;

$result = count(null);
// $result == 0;

$result = count(false);
// $result == 1;
?>

Пример 2. Пример рекурсивного использования count() (PHP >= 4.2.0)

<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
              'veggie' => array('carrot', 'collard', 'pea'));

// рекурсивный count
echo count($food, COUNT_RECURSIVE);  // output 8

// обычный count
echo count($food);                  // output 2

?>

См. также is_array(),
isset() и
strlen().

Пред. | Начало | След.
compact | Уровень выше | current


current

(PHP 3, PHP 4, PHP 5)

current -- Возвратить текущий элемент массива

Описание

mixed current ( array &array )

У каждого массива имеется внутренний указатель на его "текущий" элемент, который инициализирован первым элементом, добавленным в массив.

Функция current() просто возвращает значение элемента массива, на который указывает его внутренний указатель. Она не перемещает указатель куда бы то ни было. Если внутренний указатель за пределами списка элементов, current() возвращает FALSE.

Внимание

Если массив содержит пустые элементы (0 или "", пустая строка), эта функция возвратит FALSE для этих элементов. Это делает невозможным установить в действительности ли достигнут конец списка элементов массива при помощи функции current(). Для того, чтобы правильно просматривать массивы, содержащие пустые элементы, используйте функцию each().

Пример 1. Пример использования current() и дружественных функций

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport);    // $mode = 'bike';
$mode = current($transport); // $mode = 'bike';
$mode = prev($transport);    // $mode = 'foot';
$mode = end($transport);     // $mode = 'plane';
$mode = current($transport); // $mode = 'plane';
?>

См. также end(), key(),
next(), prev() и
reset().

Пред. | Начало | След.
count | Уровень выше | each


each

(PHP 3, PHP 4, PHP 5)

each -- Возвратить текущую пару ключ/значение из массива и сместить его указатель

Описание

array each ( array &array )

Возвращает текущую пару ключ/значение из массива array и смещает его указатель. Эта пара возвращается в виде массива из четырёх элементов, со следующими ключами: 0, 1, key и value. Элементы 0 и key содержат ключ элемента массива, а элементы 1 и value содержат его значение.

Если внутренний указатель массива указывает на его конец, each() возвратит FALSE.

Пример 1. Примеры использования each()

<?php
$foo = array("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each($foo);
print_r($bar);
?>

$bar теперь содержит следующие пары ключ/значение:

Array
(
    [1] => bob
    [value] => bob
    [0] => 0
    [key] => 0
)

<?php
$foo = array("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each($foo);
print_r($bar);
?>

$bar теперь содержит следующие пары ключ/значение:

Array
(
    [1] => Bob
    [value] => Bob
    [0] => Robert
    [key] => Robert
)

each() обычно используется совместно с list() для обхода массива, как в этом примере:

Пример 2. Обход массива функцией each()

<?php
$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');

reset($fruit);
while (list($key, $val) = each($fruit)) {
    echo "$key => $val
";
}
?>

Результат выполнения данного примера:

a => apple
b => banana
c => cranberry

После выполнения each(), указатель массива перемещается к следующему его элементу, пока не будет достигнут конец массива. Вы можете использовать функцию reset() для повторного обхода массива при помощи each.

Предостережение

Посколько добавление элемента в массив сбрасывает указатель, вышеприведённый пример может привести бесконечному циклу, если мы будем присваивать $fruit другие значения внутри цикла.

См. также key(), list(),
current(), reset(),
next(), prev() и
foreach.

Пред. | Начало | След.
current | Уровень выше | end


end

(PHP 3, PHP 4, PHP 5)

end -- Установить внутренний указатель массива на его последний элемент

Описание

mixed end ( array &array )

end() устанавливает внутренний указатель array на последний элемент и возвращает его значение.

Пример 1. Простой пример использования end()

<?php

$fruits = array('apple', 'banana', 'cranberry');
echo end($fruits); // cranberry

?>

См. также current(),
each(),
prev(),
next() и
reset().

Пред. | Начало | След.
each | Уровень выше | extract


extract

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

extract -- Импортировать переменные из массива в текущую символьную таблицу.

Описание

int extract ( array var_array [, int extract_type [, string prefix]] )

Эта функция используется для импорта переменных из массива в текущую символьную таблицу. Она берёт ассоциативный массив в качестве параметра var_array и трактует его ключи как имена переменных и значения как значения переменных. Для каждой пары ключ/значение будет создана переменная в текущей символьной таблице, согласно параметрам extract_type и prefix.

Замечание: Начиная с версии 4.0.5, эта функция возвращает количество извлечённых переменных.

Замечание: EXTR_IF_EXISTS и EXTR_PREFIX_IF_EXISTS были добавлены в версии 4.2.0.

Замечание: EXTR_REFS был добавлен в версии 4.3.0.

extract() проверяет каждый ключ на соответствие приемлемости в качестве имени переменной. Эта функция также обрабатывает коллизии имён, если ключ совпадает с именем переменной, уже существующей в текущей символьной таблице. Способ обработки неприемлемых/числовых ключей и коллизий имён устанавливает параметр extract_type. Он может принимать одно из следующих значений:

EXTR_OVERWRITE

Если переменная с таким именем существует, она будет переназначена.

EXTR_SKIP

Если переменная с таким именем существует, будет сохранено её прежнее значение.

EXTR_PREFIX_SAME

Если переменная с таким именем существует, к её имени будет добавлен префикс, определённый параметром prefix.

EXTR_PREFIX_ALL

Добавить префикс prefix ко всем именам переменных. Начиная с PHP 4.0.5, также включает числовые имена.

EXTR_PREFIX_INVALID

Добавить префикс prefix только к неприемлемым/числовым именам переменных. Этот флаг был добавлен в PHP 4.0.5.

EXTR_IF_EXISTS

Переназначить только переменные, уже имеющиеся в текущей символьной таблице, в противном случае ничего не делать. Данная возможность полезна для определения списка приемлемых переменных и для извлечения только тех переменных, которые вы уже определили из массивов типа $_REQUEST, например. Этот флаг был добавлен в PHP 4.2.0.

EXTR_PREFIX_IF_EXISTS

Создать переменные, имена которых начинаются с prefix только если переменная с названием, которому не предшествует prefix, определена в текущей символьной таблице. Этот флаг был добавлен в PHP 4.2.0.

EXTR_REFS

Извлечь переменные как ссылки. Это означает, что значения таких переменных будут всё ещё ссылаться на значения массива var_array. Вы можете использовать этот флаг отдельно или комбинировать его с другими, используя OR. Этот флаг был добавлен в PHP 4.3.0.

Если extract_type не определён, он трактуется как EXTR_OVERWRITE.

Обратите внимание, что prefix имеет значение, только если extract_type установлен в EXTR_PREFIX_SAME, EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID или EXTR_PREFIX_IF_EXISTS. Если в результате добавления префикса, не будет получено допустимое имя для переменной, она не будет импортирована в текущую символьную таблицу.

extract() возвращает количество переменных, успешно импортированных в символьную таблицу.

Внимание

Не используйте функцию extract() для непроверенных данных, таких как пользовательский ввод ($_GET, ...). Если вы сделаете это, например, для того, что бы временно запустить старый код, использующий register_globals, используйте соответствующий флаг extract_type для того, что бы не переназначить уже установленные переменные, такой как EXTR_SKIP и удостоверьтесь, что вы извлекаете содержимое массивов $_SERVER, $_SESSION, $_COOKIE, $_POST и $_GET в этом порядке.

Функцию extract() также можно использовать для импорта в текущую символьную таблицу переменных, содержащихся в ассоциативном массиве, возвращённом функцией wddx_deserialize().

Пример 1. Пример использования extract()

<?php

/* Предположим, что $var_array - это массив, полученный в результате
   wddx_deserialize */

$size = "large";
$var_array = array("color" => "blue",
                   "size"  => "medium",
                   "shape" => "sphere");
extract($var_array, EXTR_PREFIX_SAME, "wddx");

echo "$color, $size, $shape, $wddx_size
";

?>

Результат выполнения данного примера:

blue, large, sphere, medium

Переменная $size не была переназначена, потому что мы определили EXTR_PREFIX_SAME, в результате чего была создана переменная $wddx_size. Если был бы определён флаг EXTR_SKIP, тогда переменная $wddx_size не была бы создана. EXTR_OVERWRITE был бы причиной того, что переменной $size было бы присвоено значение "medium", и EXTR_PREFIX_ALL был бы причиной того, что были бы также созданы новые переменные $wddx_color, $wddx_size и $wddx_shape.

Вы должны использовать ассоциативный массив, использование числовых массивов не приведёт ни к каким результатам, если вы не использууете EXTR_PREFIX_ALL и EXTR_PREFIX_INVALID.

См. также compact().

Пред. | Начало | След.
end | Уровень выше | in_array


in_array

(PHP 4, PHP 5)

in_array -- Проверить, присутствует ли в массиве значение

Описание

bool in_array ( mixed needle, array haystack [, bool strict] )

Ищет в haystack значение needle и возвращает TRUE в случае удачи, FALSE в противном случае.

Если третий параметр strict установлен в TRUE тогда функция in_array() также проверит соответствие types параметра needle и соответствующего значения массива haystack.

Замечание: Если needle - строка, сравнение будет регистрозависмым.

Замечание: В PHP версий, более ранних, чем 4.2.0 параметр needle не может быть массивом.

Пример 1. Пример использования in_array()

<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
    echo "Got Irix";
}
if (in_array("mac", $os)) {
    echo "Got mac";
}
?>

Второго совпадения не будет, потому что in_array() регистрозависима, таким образом, программа выведет:

Got Irix

Пример 2. Пример использования in_array() с параметром strict

<?php
$a = array('1.10', 12.4, 1.13);

if (in_array('12.4', $a, true)) {
    echo "'12.4' found with strict check
";
}

if (in_array(1.13, $a, true)) {
    echo "1.13 found with strict check
";
}
?>

Результат выполнения данного примера:

1.13 found with strict check

Пример 3. Пример использования in_array() с массивом в качестве параметра needle

<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');

if (in_array(array('p', 'h'), $a)) {
    echo "'ph' найдено
";
}

if (in_array(array('f', 'i'), $a)) {
    echo "'fi' найдено
";
}

if (in_array('o', $a)) {
    echo "'o' найдено
";
}
?>

Результат выполнения данного примера:

'ph' найдено
  'o' найдено

См. также array_search(),
array_key_exists() и
isset().

Пред. | Начало | След.
extract | Уровень выше | key


key

(PHP 3, PHP 4, PHP 5)

key -- Выбрать ключ из ассоциативного массива

Описание

mixed key ( array &array )

key() возвращает индекс текущего элемента массива.

Пример 1. Пример использования key()

<?php
$array = array(
    'fruit1' => 'apple',
    'fruit2' => 'orange',
    'fruit3' => 'grape',
    'fruit4' => 'apple',
    'fruit5' => 'apple');

// этот цикл выведет все ключи ассоциативного массива,
// значения которых равны "apple"
while ($fruit_name = current($array)) {
    if ($fruit_name == 'apple') {
        echo key($array).'<br />';
    }
    next($array);
}
?>

См. также current() и next().

Пред. | Начало | След.
in_array | Уровень выше | krsort


krsort

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

krsort -- Отсортировать массив по ключам в обратном порядке

Описание

bool krsort ( array &array [, int sort_flags] )

Сортирует массив по ключам в обратном порядке, сохраняя отношения между ключами и значениями. Функция полезна, в основном, для работы с ассоциативными массивами.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. Пример использования krsort()

<?php
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
krsort($fruits);
reset($fruits);
while (list($key, $val) = each($fruits)) {
    echo "$key = $val
";
}
?>

Результат выполнения данного примера:

d = lemon
c = apple
b = banana
a = orange

Вы можете изменить поведение сортировки, используя дополнительный параметр sort_flags, подробнее см. sort().

См. также asort(), arsort(),
ksort(), sort(),
natsort() и rsort().

Пред. | Начало | След.
key | Уровень выше | ksort


ksort

(PHP 3, PHP 4, PHP 5)

ksort -- Отсортировать массив по ключам

Описание

bool ksort ( array &array [, int sort_flags] )

Сортирует массив по ключам, сохраняя отношения между ключами и значениями. Функция полезна, в основном, для работы с ассоциативными массивами.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. Пример использования ksort()

<?php
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
ksort($fruits);
reset($fruits);
while (list($key, $val) = each($fruits)) {
    echo "$key = $val
";
}
?>

Результат выполнения данного примера:

a = orange
b = banana
c = apple
d = lemon

Вы можете изменить поведение сортировки, используя дополнительный параметр sort_flags, подробнее см. sort().

См. также asort(), arsort(),
krsort(), uksort(),
sort(), natsort() и
rsort().

Замечание: Второй параметр был добавлен в PHP 4.

Пред. | Начало | След.
krsort | Уровень выше | list


list

(PHP 3, PHP 4, PHP 5)

list -- Присвоить переменным из списка значения подобно массиву

Описание

void list ( mixed varname, mixed ... )

Подобно array(), это не функция, а языковая конструкция. list() используется для того, чтобы присвоить списку переменных значения за одну операцию.

Замечание: list() работает только с массивами, индексами которых являются числа и нумерация которых начинается с 0.

Пример 1. Примеры использования list()

<?php

$info = array('coffee', 'brown', 'caffeine');

// Составить список всех переменных
list($drink, $color, $power) = $info;
echo "$drink is $color and $power makes it special.
";

// Составить список только некоторых из них
list($drink, , $power) = $info;
echo "$drink has $power.
";

// Или только третья
list( , , $power) = $info;
echo "I need $power!
";

?>

Пример 2. Пример использования list()

<table>
 <tr>
  <th>Employee name</th>
  <th>Salary</th>
 </tr>

<?php

$result = mysql_query("SELECT id, name, salary FROM employees", $conn);
while (list($id, $name, $salary) = mysql_fetch_row($result)) {
    echo " <tr>
" .
          "  <td><a href=\"info.php?id=$id\">$name</a></td>
" .
          "  <td>$salary</td>
" .
          " </tr>
";
}

?>

</table>

Внимание

list() присваивает значения начиная с крайнего правого параметра. Если вы используете простые переменные, можете не беспокоиться об этом. Но если вы используете индексные массивы, вы можете ожидать, что в результате выполнения функции list() вы получите тот же порядок элементов, что и в исходном массиве: слева направо; однако это не так. Они будут присвоены в обратном порядке.

Пример 3. Использование list() с индексами массивов

<?php

$info = array('coffee', 'brown', 'caffeine');

list($a[0], $a[1], $a[2]) = $info;

var_dump($a);

?>

Выведет (сравните порядок исходных элементов с порядком, в в котором они были перезаписаны функцией list()):

array(3) {
  [2]=>
  string(8) "caffeine"
  [1]=>
  string(5) "brown"
  [0]=>
  string(6) "coffee"
}

См. также each(), array() и extract().

Пред. | Начало | След.
ksort | Уровень выше | natcasesort


natcasesort

(PHP 4, PHP 5)

natcasesort -- Отсортировать массив, используя алгоритм "natural order" не принимая во внимание регистр символов

Описание

void natcasesort ( array &array )

Эта функция реализует алгоритм сортировки, при котором порядок буквенно-цифровых строк будет привычным для человека. Такой алгоритм называется "natural ordering".

natcasesort() - это регистронезависимый аналог natsort().

Пример 1. Пример использования natcasesort()

<?php
$array1 = $array2 = array('IMG0.png', 'img12.png', 'img10.png', 'img2.png', 'img1.png', 'IMG3.png');

sort($array1);
echo "Обычная сортировка
";
print_r($array1);

natcasesort($array2);
echo "
Natural order сортировка (регистронезависимая)
";
print_r($array2);
?>

Результат выполнения данного примера:

Обычная сортировка
Array
(
    [0] => IMG0.png
    [1] => IMG3.png
    [2] => img1.png
    [3] => img10.png
    [4] => img12.png
    [5] => img2.png
)

Natural order сортировка (регистронезависимая)
Array
(
    [0] => IMG0.png
    [4] => img1.png
    [3] => img2.png
    [5] => IMG3.png
    [2] => img10.png
    [1] => img12.png
)

Подробнее см. Martin Pool's Natural Order String Comparison.

См. также sort(),
natsort(),
strnatcmp() и
strnatcasecmp().

Пред. | Начало | След.
list | Уровень выше | natsort


natsort

(PHP 4, PHP 5)

natsort -- Отсортировать массив, используя алгоритм "natural order"

Описание

void natsort ( array &array )

Эта функция реализует алгоритм сортировки, при котором порядок буквенно-цифровых строк будет привычным для человека. Такой алгоритм называется "natural ordering". Отличие алгоритма "natural ordering" от обычных алгоритмов сортировки, применяемых, например, функцией sort() показывает нижеприведённый пример:

Пример 1. Пример использования natsort()

<?php
$array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");

sort($array1);
echo "Обычная сортировка
";
print_r($array1);

natsort($array2);
echo "
Natural order сортировка
";
print_r($array2);
?>

Результат выполнения данного примера:

Обычная сортировка
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Natural order сортировка
Array
(
    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png
)

Подробнее см. Martin Pool's Natural Order String Comparison.

См. также natcasesort(),
strnatcmp() и
strnatcasecmp().

Пред. | Начало | След.
natcasesort | Уровень выше | next


next

(PHP 3, PHP 4, PHP 5)

next -- Передвинуть внутренний указатель массива на одну позицию вперёд

Описание

mixed next ( array &array )

Возвращает значение элемента массива, находящегося на позиции, следующей за позицией, в которой находится его внутренний указатель или FALSE, если достигнут конец массива.

next() ведёт себя подобно current(), но с одним отличием. Перед тем, как возвратить значение элемента массива, эта функция передвигает его внутренний указатель на одну позицию вперёд. Другими словами, она возвращает следующий элемент массива и сдвигает его внутренний указатель на одну позицию. Если при продвижении внутренний указатель массива выйдет за предел списка элементов, next() возвратит FALSE.

Внимание

Если массив содержит пустые или равные 0 элементы, функция возвратит FALSE для этих элементов. Для того, чтобы правильно просматривать массивы, содержащие пустые элементы, используйте функцию each().

Пример 1. Пример использования next() и друзей

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport);    // $mode = 'bike';
$mode = next($transport);    // $mode = 'car';
$mode = prev($transport);    // $mode = 'bike';
$mode = end($transport);     // $mode = 'plane';
?>

См. также current(), end(), prev() и reset().

Пред. | Начало | След.
natsort | Уровень выше | pos


pos

(PHP 3, PHP 4, PHP 5)

pos -- Alias of current()

Описание

This function is an alias of: current()

Пред. | Начало | След.
next | Уровень выше | prev


prev

(PHP 3, PHP 4, PHP 5)

prev -- Передвинуть внутренний указатель массива на одну позицию назад

Описание

mixed prev ( array &array )

Возвращает значение элемента массива, находящегося на позиции, предыдущей по отношению к позиции, в которой находится его внутренний указатель или FALSE, если достигнут конец массива.

Внимание

Если массив содержит пустые или равные 0 элементы, функция возвратит FALSE для этих элементов. Для того, чтобы правильно просматривать массивы, содержащие пустые элементы, используйте функцию each().

prev() ведёт себя подобно next(), за исключением того, что она передвигает внутренний указатель массива на одну позицию назад, а не вперёд.

Пример 1. Пример использования prev() и друзей

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport);    // $mode = 'bike';
$mode = next($transport);    // $mode = 'car';
$mode = prev($transport);    // $mode = 'bike';
$mode = end($transport);     // $mode = 'plane';
?>

См. также current(), end(), next() и reset().

Пред. | Начало | След.
pos | Уровень выше | range


range

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

range -- Создать массив, содержащий диапазон элементов

Описание

array range ( number low, number high [, number step] )

range() возвращает массив элементов с low по high, включительно. Если low > high, последовательность будет убывающей.

New parameter: Дополнительный параметр step был добавлен в PHP 5.0.0.

Если указан параметр step, он будет использоваться как инкремент между элементами последовательности. step должен быть положительным числом. Если step не указан, он принимает значение по умолчанию 1.

Пример 1. Примеры использования range()

<?php
// array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
foreach (range(0, 12) as $number) {
    echo $number;
}

// Параметр step был добавлен в 5.0.0
// array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
foreach (range(0, 100, 10) as $number) {
    echo $number;
}

// Использование последовательности знаков было добавлено в версии 4.1.0
// array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i');
foreach (range('a', 'i') as $letter) {
    echo $letter;
}
// array('c', 'b', 'a');
foreach (range('c', 'a') as $letter) {
    echo $letter;
}
?>

Замечание: До появления PHP 4.1.0, range() создавала только массивы, содержащие диапазон чисел в порядке возрастания. Поддержка последовательностей знаков и создания диапазона в порядке убывания была добавлена в версии 4.1.0. Диапазон знаков можно задать только при помощи строки из одного знака. Если длина такой строки будет более одного знака, будет использован первый знак.

Предостережение

В PHP версий с 4.1.0 по 4.3.2, range() рассматривал числовые строки именно как строки, а не числа. Вместо них использовалась последовательность знаков. Например, "4242" трактовалось "4".

См. также shuffle(), array_fill() и foreach.

Пред. | Начало | След.
prev | Уровень выше | reset


reset

(PHP 3, PHP 4, PHP 5)

reset -- Установить внутренний указатель массива на его первый элемент

Описание

mixed reset ( array &array )

reset() перемещает внутренний указатель array к его первому элементу и возвращает значение первого элемента массива или FALSE если массив пуст.

Пример 1. Пример использования reset()

<?php

$array = array('step one', 'step two', 'step three', 'step four');

// первоначально указатель указывает на первый элемент
echo current($array) . "<br />
"; // "шаг один"

// пропускаем два шага
next($array);
next($array);
echo current($array) . "<br />
"; // "шаг три"

// сбрасываем указатель, тем самым возвращаемся к первому шагу
reset($array);
echo current($array) . "<br />
"; // "шаг один"

?>

См. также current(),
each(), next()
и prev().

Пред. | Начало | След.
range | Уровень выше | rsort


rsort

(PHP 3, PHP 4, PHP 5)

rsort -- Отсортировать массив в обратном порядке

Описание

bool rsort ( array &array [, int sort_flags] )

Эта функция сортирует массив в обратном порядке (от большего к меньшему).

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. Пример использования rsort()

<?php
$fruits = array("lemon", "orange", "banana", "apple");
rsort($fruits);
reset($fruits);
while (list($key, $val) = each($fruits)) {
    echo "$key = $val
";
}
?>

Результат выполнения данного примера:

0 = orange
1 = lemon
2 = banana
3 = apple

Названия фруктов были отсортированы по алфавиту в обратном порядке.

Вы можете изменить поведение сортировки, используя дополнительный параметр sort_flags, подробнее см. sort().

См. также arsort(),
asort(), ksort(),
sort() и usort().

Пред. | Начало | След.
reset | Уровень выше | shuffle


shuffle

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

shuffle -- Перемешать массив

Описание

bool shuffle ( array &array )

Эта функция перемещает элементы массива в случайном порядке.

Пример 1. Пример использования shuffle()

<?php
$numbers = range(1, 20);
srand((float)microtime() * 1000000);
shuffle($numbers);
while (list(, $number) = each($numbers)) {
    echo "$number ";
}
?>

Замечание: Начиная с PHP 4.2.0, больше нет необходимости инициализировать генератор случайных чисел функциями srand() или mt_srand(), поскольку теперь это происходит автоматически.

См. также arsort(), asort(),
ksort(), rsort(),
sort() и usort().

Пред. | Начало | След.
rsort | Уровень выше | sizeof


sizeof

(PHP 3, PHP 4, PHP 5)

sizeof -- Alias of count()

Описание

This function is an alias of: count().

Пред. | Начало | След.
shuffle | Уровень выше | sort


sort

(PHP 3, PHP 4, PHP 5)

sort -- Отсортировать массив

Описание

bool sort ( array &array [, int sort_flags] )

Эта функция сортирует массив. После завершения работы функции элементы массива будут расположены в порядке возрастания.

Замечание: Эта функция назначает новые ключи для элементов array. Все ранее назначенные значения ключей будут удалены, вернее переназначены.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. Пример использования sort()

<?php

$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
reset($fruits);
while (list($key, $val) = each($fruits)) {
    echo "fruits[" . $key . "] = " . $val . "\n";
}

?>

Результат выполнения данного примера:

fruits[0] = apple
fruits[1] = banana
fruits[2] = lemon
fruits[3] = orange

Фрукты отсортированы в алфавитном порядке.

Дополнительный второй параметр sort_flags можно использовать для изменения поведения сортировки, используя следующие значения:

Флаги сортировки:

  • SORT_REGULAR - сравнивать элементы нормально (не изменять типы)

  • SORT_NUMERIC - сравнивать элементы в числовом отношении

  • SORT_STRING - сравнивать элементы как строки

  • SORT_LOCALE_STRING - сравнивать элементы как строки, основываясь на текущей локали. Добавлено в PHP 5.0.2

Замечание: Второй параметр был добавлен в PHP 4.

Внимание

Будьте осторожны при сортировке массивов, содержащих элементы разных типов, так как в этом случае результат работы функции sort() может быть непредсказуемым.

См. также arsort(),
asort(), ksort(),
natsort(), natcasesort(),
rsort(), usort(),
array_multisort() и
uksort().

Пред. | Начало | След.
sizeof | Уровень выше | uasort


uasort

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

uasort -- Отсортировать массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей

Описание

bool uasort ( array &array, callback cmp_function )

Функция сортирует массив таким образом, что его индексы сохраняют отношения с элементами, с которыми ранее были ассоциированы. Это особенно полезно при сортировке ассоциативных массивов, актуальный порядок элементов которых значим. Для сравнения используется функция, определённая пользователем.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: Пожалуйста, смотрите примеры пользовательских функций в описании usort() и uksort().

См. также usort(), uksort(),
sort(), asort(),
arsort(), ksort()
и rsort().

Пред. | Начало | След.
sort | Уровень выше | uksort


uksort

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

uksort -- Отсортировать массив по ключам, используя пользовательскую функцию для сравнения ключей

Описание

bool uksort ( array &array, callback cmp_function )

uksort() отсортирует массив, используя для сравнения его ключей функцию, определённую пользователем. Если массив должен быть отсортирован по какому-либо необычному признаку, вы должны использовать эту функцию.

Функция cmp_function должна принимать два параметра, которым будут присвоены значения двух ключей array. Функция, используемая для сравнения, должна возвращать целое число, меньшее, равное или большее нуля, если первый параметр считается меньше, равен или больше второго.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. Пример использования uksort()

<?php
function cmp($a, $b)
{
    if ($a == $b) {
        return 0;
    }
    return ($a > $b) ? -1 : 1;
}

$a = array(4 => "four", 3 => "three", 20 => "twenty", 10 => "ten");

uksort($a, "cmp");

while (list($key, $value) = each($a)) {
    echo "$key: $value\n";
}
?>

Результат выполнения данного примера:

20: twenty
10: ten
4: four
3: three

См. также usort(), uasort(),
sort(), asort(),
arsort(), ksort(),
natsort() и rsort().

Пред. | Начало | След.
uasort | Уровень выше | usort


usort

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

usort -- Отсортировать массив по значениям используя пользовательскую функцию для сравнения элементов

Описание

bool usort ( array &array, callback cmp_function )

Эта функция сортирует элементы массива, используя для сравнения значений пользовательскую функцию. Если вам нужно отсортировать массив по необычному критерию, вы должны использовать эту функцию.

Функция, используемая для сравнения, должна возвращать целое число, меньшее, равное или большее нуля, если первый аргумент соответственно меньше, равен или больше второго.

Замечание: Если два элемента исходного массива равны, их порядок в отсортированном массиве неопределён. До PHP 4.0.6 пользовательские функции сохраняли для таких элеменов порядок в оригинальном массиве, но новый алгоритм сортировки, появившейся в версии 4.1.0 больше не использует это решение и не имеет другого эффективного.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. Пример использования usort()

<?php
function cmp($a, $b)
{
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

$a = array(3, 2, 5, 6, 1);

usort($a, "cmp");

while (list($key, $value) = each($a)) {
    echo "$key: $value
";
}
?>

Результат выполнения данного примера:

0: 1
1: 2
2: 3
3: 5
4: 6

Замечание: Очевидно, что для этого тривиального случая более подходит функция sort().

Пример 2. Пример использования функцией usort() многомерных массивов

<?php
function cmp($a, $b)
{
    return strcmp($a["fruit"], $b["fruit"]);
}

$fruits[0]["fruit"] = "lemons";
$fruits[1]["fruit"] = "apples";
$fruits[2]["fruit"] = "grapes";

usort($fruits, "cmp");

while (list($key, $value) = each($fruits)) {
    echo "\$fruits[$key]: " . $value["fruit"] . "
";
}
?>

При сортировке многомерного массива переменные $a и $b содержат ссылки на первые два индекса массива.

Результат выполнения данного примера:

$fruits[0]: apples
$fruits[1]: grapes
$fruits[2]: lemons

Пример 3. Пример использования usort() с методом класса

<?php
class TestObj {
    var $name;

    function TestObj($name)
    {
        $this->name = $name;
    }

    /* This is the static comparing function: */
    function cmp_obj($a, $b)
    {
        $al = strtolower($a->name);
        $bl = strtolower($b->name);
        if ($al == $bl) {
            return 0;
        }
        return ($al > $bl) ? +1 : -1;
    }
}

$a[] = new TestObj("c");
$a[] = new TestObj("b");
$a[] = new TestObj("d");

usort($a, array("TestObj", "cmp_obj"));

foreach ($a as $item) {
    echo $item->name . "
";
}
?>

Результат выполнения данного примера:

b
c
d

См. также uasort(),
uksort(), sort(),
asort(),
arsort(),ksort(),
natsort() и rsort().

Пред. | Начало | След.
uksort | Уровень выше | Aspell functions [deprecated]


Aspell functions [deprecated]

Руководство по PHP
Пред. След.

VI. Aspell functions [deprecated]

Введение

The aspell() functions allows you to check the spelling on a word and offer suggestions.

Замечание: This extension has been removed from PHP and is no longer available as of PHP 4.3.0. If you want to use spell-checking capabilities in PHP, use pspell instead. It uses pspell library and works with newer versions of aspell.

Требования

aspell works only with very old (up to .27.* or so) versions of aspell library. Neither this module, nor those versions of aspell library are supported any longer. You need the aspell library, available from: http://aspell.sourceforge.net/.

Установка

In PHP 4, these functions are only available if PHP was configured with --with-aspell=[DIR].

Смотрите также

See also pspell.

Содержание
aspell_check_raw -- Check a word without changing its case or trying to trim it [deprecated]
aspell_check -- Check a word [deprecated]
aspell_new -- Load a new dictionary [deprecated]
aspell_suggest -- Suggest spellings of a word [deprecated]

Пред. | Начало | След.
usort | Уровень выше | aspell_check_raw


aspell_check_raw

(PHP 3 >= 3.0.7, PHP 4 <= 4.2.3)

aspell_check_raw -- Check a word without changing its case or trying to trim it [deprecated]

Description

bool aspell_check_raw ( int dictionary_link, string word )

aspell_check_raw() checks the spelling of a word, without changing its case or trying to trim it in any way and returns TRUE if the spelling is correct, FALSE if not.

Пример 1. aspell_check_raw()

<?php

$aspell_link = aspell_new("english");

if (aspell_check_raw($aspell_link, "test")) {
    echo "This is a valid spelling";
} else {
    echo "Sorry, wrong spelling";
}

?>

Пред. | Начало | След.
Aspell functions [deprecated] | Уровень выше | aspell_check


aspell_check

(PHP 3 >= 3.0.7, PHP 4 <= 4.2.3)

aspell_check -- Check a word [deprecated]

Description

bool aspell_check ( int dictionary_link, string word )

aspell_check() checks the spelling of a word and returns TRUE if the spelling is correct, FALSE if not.

Пример 1. aspell_check()

<?php

$aspell_link = aspell_new("english");

if (aspell_check($aspell_link, "testt")) {
    echo "This is a valid spelling";
} else {
    echo "Sorry, wrong spelling";
}

?>

Пред. | Начало | След.
aspell_check_raw | Уровень выше | aspell_new


aspell_new

(PHP 3 >= 3.0.7, PHP 4 <= 4.2.3)

aspell_new -- Load a new dictionary [deprecated]

Description

int aspell_new ( string master [, string personal] )

aspell_new() opens up a new dictionary and returns the dictionary link identifier for use in other aspell functions. Returns FALSE on error.

Пример 1. aspell_new()

<?php
$aspell_link = aspell_new("english");
?>

Пред. | Начало | След.
aspell_check | Уровень выше | aspell_suggest


aspell_suggest

(PHP 3 >= 3.0.7, PHP 4 <= 4.2.3)

aspell_suggest -- Suggest spellings of a word [deprecated]

Description

array aspell_suggest ( int dictionary_link, string word )

aspell_suggest() returns an array of possible spellings for the given word.

Пример 1. aspell_suggest()

<?php

$aspell_link = aspell_new("english");

if (!aspell_check($aspell_link, "test")) {
    $suggestions = aspell_suggest($aspell_link, "test");

    foreach ($suggestions as $suggestion) {
        echo "Possible spelling: $suggestion<br />\n";
    }
}

?>

Пред. | Начало | След.
aspell_new | Уровень выше | BCMath Arbitrary Precision Mathematics Functions


BCMath Arbitrary Precision Mathematics Functions

Руководство по PHP
Пред. След.

VII. BCMath Arbitrary Precision Mathematics Functions

Введение

For arbitrary precision mathematics PHP offers the Binary Calculator which supports numbers of any size and precision, represented as strings.

Требования

Since PHP 4.0.4, libbcmath is bundled with PHP. You don't need any external libraries for this extension.

Установка

These functions are only available if PHP was configured with --enable-bcmath. In PHP 3, these functions are only available if PHP was not configured with --disable-bcmath.

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. BC math configuration options

Name | Default | Changeable | Changelog
bcmath.scale | "0" | PHP_INI_ALL | Available since PHP 5.0.0.
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

bcmath.scale integer

Number of decimal digits for all bcmath functions. See also bcscale().

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Содержание
bcadd -- Add two arbitrary precision numbers
bccomp -- Compare two arbitrary precision numbers
bcdiv -- Divide two arbitrary precision numbers
bcmod -- Get modulus of an arbitrary precision number
bcmul -- Multiply two arbitrary precision number
bcpow -- Raise an arbitrary precision number to another
bcpowmod -- Raise an arbitrary precision number to another, reduced by a specified modulus
bcscale -- Set default scale parameter for all bc math functions
bcsqrt -- Get the square root of an arbitrary precision number
bcsub -- Subtract one arbitrary precision number from another

Пред. | Начало | След.
aspell_suggest | Уровень выше | bcadd


bcadd

(PHP 3, PHP 4, PHP 5)

bcadd -- Add two arbitrary precision numbers

Description

string bcadd ( string left_operand, string right_operand [, int scale] )

Adds the left_operand to the right_operand and returns the sum in a string. The optional scale parameter is used to set the number of digits after the decimal place in the result.

Примеры

Пример 1. bcadd() example

<?php

$a = '1.234';
$b = '5';

echo bcadd($a, $b);     // 6
echo bcadd($a, $b, 4);  // 6.2340

?>

Смотрите также

bcsub().

Пред. | Начало | След.
BCMath Arbitrary Precision Mathematics Functions | Уровень выше | bccomp


bccomp

(PHP 3, PHP 4, PHP 5)

bccomp -- Compare two arbitrary precision numbers

Description

int bccomp ( string left_operand, string right_operand [, int scale] )

Compares the left_operand to the right_operand and returns the result as an integer. The optional scale parameter is used to set the number of digits after the decimal place which will be used in the comparison. The return value is 0 if the two operands are equal. If the left_operand is larger than the right_operand the return value is +1 and if the left_operand is less than the right_operand the return value is -1.

Примеры

Пример 1. bccomp() example

<?php

echo bccomp('1', '2') . "\n";   // -1
echo bccomp('1.00001', '1', 3); // 0
echo bccomp('1.00001', '1', 5); // 1

?>

Пред. | Начало | След.
bcadd | Уровень выше | bcdiv


bcdiv

(PHP 3, PHP 4, PHP 5)

bcdiv -- Divide two arbitrary precision numbers

Description

string bcdiv ( string left_operand, string right_operand [, int scale] )

Divides the left_operand by the right_operand and returns the result. The optional scale sets the number of digits after the decimal place in the result, which defaults to 0.

Примеры

Пример 1. bcdiv() example

<?php

echo bcdiv('105', '6.55957', 3);  // 16.007

?>

Смотрите также

bcmul().

Пред. | Начало | След.
bccomp | Уровень выше | bcmod


bcmod

(PHP 3, PHP 4, PHP 5)

bcmod -- Get modulus of an arbitrary precision number

Description

string bcmod ( string left_operand, string modulus )

Get the modulus of the left_operand using modulus.

Примеры

Пример 1. bcmod() example

<?php
echo bcmod('4', '2'); // 0
echo bcmod('2', '4'); // 2
?>

Смотрите также

bcdiv().

Пред. | Начало | След.
bcdiv | Уровень выше | bcmul


bcmul

(PHP 3, PHP 4, PHP 5)

bcmul -- Multiply two arbitrary precision number

Description

string bcmul ( string left_operand, string right_operand [, int scale] )

Multiply the left_operand by the right_operand and returns the result. The optional scale sets the number of digits after the decimal place in the result.

Примеры

Пример 1. bcmul() example

<?php
echo bcmul('1.34747474747', '35', 3); // 47.162
echo bcmul('2', '4'); // 8
?>

Смотрите также

bcdiv().

Пред. | Начало | След.
bcmod | Уровень выше | bcpow


bcpow

(PHP 3, PHP 4, PHP 5)

bcpow -- Raise an arbitrary precision number to another

Description

string bcpow ( string x, string y [, int scale] )

Raise x to the power y. The optional scale can be used to set the number of digits after the decimal place in the result.

Примеры

Пример 1. bcpow() example

<?php

echo bcpow('4.2', '3', 2); // 74.08

?>

Смотрите также

bcpowmod() и bcsqrt().

Пред. | Начало | След.
bcmul | Уровень выше | bcpowmod


bcpowmod

(PHP 5)

bcpowmod -- Raise an arbitrary precision number to another, reduced by a specified modulus

Description

string bcpowmod ( string x, string y, string modulus [, int scale] )

Use the fast-exponentiation method to raise x to the power y with respect to the modulus modulus. The optional scale can be used to set the number of digits after the decimal place in the result.

Замечание: Because this method uses the modulus operation, non-natural numbers may give unexpected results. A natural number is any positive non-zero integer.

Примеры

The following two statements are functionally identical. The bcpowmod() version however, executes in less time and can accept larger parameters.

<?php
$a = bcpowmod($x, $y, $mod);

$b = bcmod(bcpow($x, $y), $mod);

// $a and $b are equal to each other.

?>

Смотрите также

bcpow() и bcmod().

Пред. | Начало | След.
bcpow | Уровень выше | bcscale


bcscale

(PHP 3, PHP 4, PHP 5)

bcscale -- Set default scale parameter for all bc math functions

Description

bool bcscale ( int scale )

This function sets the default scale parameter for all subsequent bc math functions that do not explicitly specify a scale parameter. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. bcscale() example

<?php

// default scale : 3
bcscale(3);
echo bcdiv('105', '6.55957'); // 16.007

// this is the same without bcscale()
echo bcdiv('105', '6.55957', 3); // 16.007

?>

Пред. | Начало | След.
bcpowmod | Уровень выше | bcsqrt


bcsqrt

(PHP 3, PHP 4, PHP 5)

bcsqrt -- Get the square root of an arbitrary precision number

Description

string bcsqrt ( string operand [, int scale] )

Return the square root of the operand. The optional scale parameter sets the number of digits after the decimal place in the result.

Примеры

Пример 1. bcsqrt() example

<?php

echo bcsqrt('2', 3); // 1.414

?>

Смотрите также

bcpow().

Пред. | Начало | След.
bcscale | Уровень выше | bcsub


bcsub

(PHP 3, PHP 4, PHP 5)

bcsub -- Subtract one arbitrary precision number from another

Description

string bcsub ( string left_operand, string right_operand [, int scale] )

Subtracts the right_operand from the left_operand and returns the result in a string. The optional scale parameter is used to set the number of digits after the decimal place in the result.

Примеры

Пример 1. bcsub() example

<?php

$a = '1.234';
$b = '5';

echo bcsub($a, $b);     // -3
echo bcsub($a, $b, 4);  // -3.7660

?>

Смотрите также

bcadd().

Пред. | Начало | След.
bcsqrt | Уровень выше | PHP bytecode Compiler


PHP bytecode Compiler

Руководство по PHP
Пред. След.

VIII. PHP bytecode Compiler

Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

Bcompiler was written for several reasons:

To encode entire script in a proprietary PHP application
To encode some classes and/or functions in a proprietary PHP application
To enable the production of php-gtk applications that could be used on client desktops, without the need for a php.exe.
To do the feasibility study for a PHP to C converter

The first of these goals is achieved using the bcompiler_write_header(), bcompiler_write_file() and bcompiler_write_footer() functions. The bytecode files can be written as either uncompressed or plain. To use the generated bytecode, you can simply include it with include or require statements.

The second of these goals is achieved using the bcompiler_write_header(), bcompiler_write_class(), bcompiler_write_footer(), bcompiler_read(), and bcompiler_load() functions. The bytecode files can be written as either uncompressed or plain. The bcompiler_load() reads a bzip compressed bytecode file, which tends to be 1/3 of the size of the original file.

To create EXE type files, bcompiler has to be used with a modified sapi file or a version of PHP which has been compiled as a shared library. In this scenario, bcompiler reads the compressed bytecode from the end of the exe file.

bcompiler can improve performance by about 30% when used with uncompressed bytecodes only. But keep in mind that uncompressed bytecode can be up to 5 times larger than the original source code. Using bytecode compression can save your space, but decompression requires much more time than parsing a source. bcompiler also does not do any bytecode optimization, this could be added in the future...

In terms of code protection, it is safe to say that it would be impossible to recreate the exact source code that it was built from, and without the accompanying source code comments. It would effectively be useless to use the bcompiler bytecodes to recreate and modify a class. However it is possible to retrieve data from a bcompiled bytecode file - so don't put your private passwords or anything in it.

Установка

short installation note:

  • You need at least PHP 4.3. for the compression to work

  • To install on PHP 4.3 and later at the unix command prompt type pear install bcompiler

  • To install on Windows, until the binary package distribution mechanism is finished please search the archives of the pear-general mailing list for pre-built packages. (or send an email to it if you could not find a reference)

  • To install on older versions you need to make some slight changes to the build.

  • untar the bcompiler.tgz archive into php4/ext.(Get it directly from PECL http://pecl.php.net/get/bcompiler)

  • If the new directory is now called something like bcompiler-0.x, then you should rename it to bcompiler (except you only want to build it as self-contained php-module).

  • If you are using versions before PHP 4.3, the you will need to copy the Makefile.in.old to Makefile.in and config.m4.old to config.m4.

  • run phpize in ext/bcompiler

  • run ./buildconf in php4

  • run configure with --enable-bcompiler (and your other options)

  • make; make install

  • that's it.

Contact Information

If you have comments, bugfixes, enhancements or want to help developing this beast, you can drop me a mail at alan_k@php.net. Any help is very welcome.

Содержание
bcompiler_load_exe -- Reads and creates classes from a bcompiler exe file
bcompiler_load -- Reads and creates classes from a bz compressed file
bcompiler_parse_class -- Reads the bytecodes of a class and calls back to a user function
bcompiler_read -- Reads and creates classes from a filehandle
bcompiler_write_class -- Writes an defined class as bytecodes
bcompiler_write_constant -- Writes a defined constant as bytecodes
bcompiler_write_exe_footer -- Writes the start pos, and sig to the end of a exe type file
bcompiler_write_file -- Writes a php source file as bytecodes
bcompiler_write_footer -- Writes the single character \x00 to indicate End of compiled data
bcompiler_write_function -- Writes an defined function as bytecodes
bcompiler_write_functions_from_file -- Writes all functions defined in a file as bytecodes
bcompiler_write_header -- Writes the bcompiler header

Пред. | Начало | След.
bcsub | Уровень выше | bcompiler_load_exe


bcompiler_load_exe

(PECL)

bcompiler_load_exe -- Reads and creates classes from a bcompiler exe file

Description

bool bcompiler_load_exe ( string filename )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Reads data from a bcompiler exe file and creates classes from the bytecodes.

Пример 1. bcompiler_load() example

<?php

bcompiler_load_exe("/tmp/example.exe");
print_r(get_defined_classes());

?>

Пред. | Начало | След.
PHP bytecode Compiler | Уровень выше | bcompiler_load


bcompiler_load

(PECL)

bcompiler_load -- Reads and creates classes from a bz compressed file

Description

bool bcompiler_load ( string filename )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Замечание: Please use include or require statements to parse bytecodes, it's more portable and convenient way than using this function.

Reads data from a bzcompressed file and creates classes from the bytecodes. Please note that this function won't execute script body code contained in the bytecode file.

Пример 1. bcompiler_load() example

<?php

bcompiler_load("/tmp/example");

print_r(get_defined_classes());

?>

Пред. | Начало | След.
bcompiler_load_exe | Уровень выше | bcompiler_parse_class


bcompiler_parse_class

(PECL)

bcompiler_parse_class -- Reads the bytecodes of a class and calls back to a user function

Description

bool bcompiler_parse_class ( string class, string callback )

Замечание: This function has been removed from bcompiler and is no longer available as of bcompiler 0.5.

Reads the bytecodes of a class and calls back to a user function.

Пример 1. bcompiler_parse_class() example

<?php

function readByteCodes($data) {
  print_r($data);
}

bcompiler_parse_class("DB","readByteCodes");

?>

Пред. | Начало | След.
bcompiler_load | Уровень выше | bcompiler_read


bcompiler_read

(PECL)

bcompiler_read -- Reads and creates classes from a filehandle

Description

bool bcompiler_read ( resource filehandle )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Замечание: Please use include or require statements to parse bytecodes, it's more portable and convenient way than using this function.

Reads data from a open file handle and creates classes from the bytecodes. Please note that this function won't execute script body code contained in the bytecode file.

Пример 1. bcompiler_read() example

<?php
$fh = fopen("/tmp/example","r");
bcompiler_read($fh);
fclose($fh);
print_r(get_defined_classes());

?>

Пред. | Начало | След.
bcompiler_parse_class | Уровень выше | bcompiler_write_class


bcompiler_write_class

(PECL)

bcompiler_write_class -- Writes an defined class as bytecodes

Description

bool bcompiler_write_class ( resource filehandle, string className [, string extends] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

This reads the bytecodes from PHP for an existing class, and writes them to the open file handle, It does not perform dependency checking, so make sure you write the classes in an order that will not result in an 'undefined class' occurring when you load it.

Пример 1. bcompiler_write_class() example

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_class($fh,"DB");
// you must write DB_common before DB_mysql, as DB_mysql extends DB_common.
bcompiler_write_class($fh,"DB_common");
bcompiler_write_class($fh,"DB_mysql");
bcompiler_write_footer($fh);
fclose($fh);

?>

See also bcompiler_write_header(), and bcompiler_write_footer().

Пред. | Начало | След.
bcompiler_read | Уровень выше | bcompiler_write_constant


bcompiler_write_constant

(PECL)

bcompiler_write_constant -- Writes a defined constant as bytecodes

Description

bool bcompiler_write_constant ( resource filehandle, string constantName )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

This function reads the bytecodes from PHP for an existing constant, and writes them to the open file handle.

Пример 1. bcompiler_write_constant() example

<?php
define("MODULE_MAX", 30);

$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_constant($fh,"MODULE_MAX");
bcompiler_write_footer($fh);
fclose($fh);

?>

See also bcompiler_write_header(), and bcompiler_write_footer().

Пред. | Начало | След.
bcompiler_write_class | Уровень выше | bcompiler_write_exe_footer


bcompiler_write_exe_footer

(PECL)

bcompiler_write_exe_footer -- Writes the start pos, and sig to the end of a exe type file

Description

bool bcompiler_write_exe_footer ( resource filehandle, int startpos )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

An EXE (or self executable) file consists of 3 parts,

The stub (executable code, e.g. a compiled C program) that loads PHP interpreter, bcompiler extension, stored Bytecodes and initiates a call for the specified function (e.g. main) or class method (e.g. main::main)
The Bytecodes (uncompressed only for the moment)
The bcompiler EXE footer

The startpos is the file position at which the Bytecodes start, and can be obtained using ftell($fh).

To obtain a suitable stub you can compile php_embed-based stub phpe.c located in the examples/embed directory on bcompiler's CVS.

Пример 1. bcompiler_write_footer() example

<?php
/* creating the output file (example.exe) */
$fh = fopen("example.exe", "w");
/* 1) writing a stub (phpe.exe) */
$size = filesize("phpe.exe");
$fr = fopen("phpe.exe", "r");
fwrite($fh, fread($fr, $size), $size);
$startpos = ftell($fh);
/* 2) writing bytecodes */
bcompiler_write_header($fh);
bcompiler_write_class($fh, "myclass");
bcompiler_write_function($fh, "main");
bcompiler_write_footer($fh);
/* 3) writing EXE footer */
bcompiler_write_exe_footer($fh, $startpos);
/* closing the output file */
fclose($fh);
?>

See also bcompiler_write_header(),
bcompiler_write_class(), and
bcompiler_write_footer().

Пред. | Начало | След.
bcompiler_write_constant | Уровень выше | bcompiler_write_file


bcompiler_write_file

(PECL)

bcompiler_write_file -- Writes a php source file as bytecodes

Description

bool bcompiler_write_file ( resource filehandle, string filename )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

This function complies specified source file into bytecodes, and writes them to the open file handle.

Пример 1. bcompiler_write_file() example

<?php
$fh = fopen("example.phb", "w");
bcompiler_write_header($fh);
bcompiler_write_file($fh, "example.php");
bcompiler_write_footer($fh);
fclose($fh);
/* the following should be equivalent:
include "example.php";
   and
include "example.phb";
*/
?>

See also bcompiler_write_header(), and bcompiler_write_footer().

Пред. | Начало | След.
bcompiler_write_exe_footer | Уровень выше | bcompiler_write_footer


bcompiler_write_footer

(PECL)

bcompiler_write_footer -- Writes the single character \x00 to indicate End of compiled data

Description

bool bcompiler_write_footer ( resource filehandle )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Writes the single character \x00 to indicate End of compiled data.

Пример 1. bcompiler_write_footer() example

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_class($fh,"DB");
bcompiler_write_class($fh,"DB_common");
bcompiler_write_footer($fh);
fclose($fh);

?>

See also bcompiler_write_header(), and bcompiler_write_header().

Пред. | Начало | След.
bcompiler_write_file | Уровень выше | bcompiler_write_function


bcompiler_write_function

(PECL)

bcompiler_write_function -- Writes an defined function as bytecodes

Description

bool bcompiler_write_function ( resource filehandle, string functionName )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

This reads the bytecodes from PHP for an existing function, and writes them to the open file handle. Order is not important, (eg. if function b uses function a, and you compile it like the example below, it will work perfectly OK).

Пример 1. bcompiler_write_function() example

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_function($fh,"my_function_a");
bcompiler_write_function($fh,"my_function_b");
bcompiler_write_footer($fh);
fclose($fh);

?>

See also bcompiler_write_header(), and bcompiler_write_footer().

Пред. | Начало | След.
bcompiler_write_footer | Уровень выше | bcompiler_write_functions_from_file


bcompiler_write_functions_from_file

(PECL)

bcompiler_write_functions_from_file -- Writes all functions defined in a file as bytecodes

Description

bool bcompiler_write_functions_from_file ( resource filehandle, string fileName )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

This function searches for all functions declared in the given file, and writes their correspondent bytecodes to the open file handle. Always remember to include/require the file you intend to compile.

Пример 1. bcompiler_write_functions_from_file() example

<?php
require('module.php');

$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_functions_from_file($fh,'module.php');
bcompiler_write_footer($fh);
fclose($fh);

?>

See also bcompiler_write_header(), and bcompiler_write_footer().

Пред. | Начало | След.
bcompiler_write_function | Уровень выше | bcompiler_write_header


bcompiler_write_header

(PECL)

bcompiler_write_header -- Writes the bcompiler header

Description

bool bcompiler_write_header ( resource filehandle [, string write_ver] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Writes the header part of a bcompiler file. Optional second parameter can be used to write bytecode in a previously used format, so that you can use it with older versions of bcompiler.

Пример 1. bcompiler_write_header() example

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_class($fh,"DB");
bcompiler_write_footer($fh);
fclose($fh);

?>

See also bcompiler_write_file(),
bcompiler_write_class(),
bcompiler_write_function(), and
bcompiler_write_footer().

Пред. | Начало | След.
bcompiler_write_functions_from_file | Уровень выше | Функции сжатия Bzip2


Функции сжатия Bzip2

Руководство по PHP
Пред. След.

IX. Функции сжатия Bzip2

Введение

Расширение используется для чтения, записи файлов (.bz2), с использованияем метода сжатия bzip2.

Требования

Расширение использует функции библиотеки bzip2 (автор: Julian Seward) и требует bzip2/libbzip2 версий >= 1.0.x.

Установка

Поддержка Bzip2 в PHP не включена по умолчанию. Вам придётся скомпилировать PHP с указанием директивы --with-bz2[=DIR].

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Расширение определяет один новый тип ресурсов: указатель на bz2-файл, с которым идёт работа.

Предопределенные константы

Данное расширение не определяет никакие константы.

Примеры

Следующий пример откроет временный файл, запишет в нему тестовую строку, после чего выдаст содержание файла.

Пример 1. Пример работы с bzip2

<?php

$filename = "/tmp/testfile.bz2";
$str = "This is a test string.\n";

// открываем файл для записи
$bz = bzopen($filename, "w");

// пишем строку в файл
bzwrite($bz, $str);

// закрываем файл
bzclose($bz);

// открываем файл для чтения
$bz = bzopen($filename, "r");

// читаем и выводим 10 символов
print bzread($bz, 10);

// выводим всё, до конца файла и закрываем его.
print bzread($bz);

bzclose($bz);

?>
Содержание
bzclose -- Закрывает файл bzip2
bzcompress -- Сжимает данные с использованием bzip2
bzdecompress -- Распаковывает данные, сжатые с использованием bzip2
bzerrno -- Возвращает код ошибки работы с bzip2
bzerror -- Возвращает код и строку ошибки работы с bzip2
bzerrstr -- Возвращает строку ошибки работы с bzip2
bzflush -- Вызывает запись всех буфферизированных данных
bzopen -- Открывает для работы файл, сжатый с использованием bzip2
bzread -- Бинарно-безопасное чтение файла bzip2
bzwrite -- Бинарно-безопасная запись bzip2 файла

Пред. | Начало | След.
bcompiler_write_header | Уровень выше | bzclose


bzclose

(PHP 4 >= 4.3.3, PHP 5)

bzclose -- Закрывает файл bzip2

Описание

integer bzclose ( resource bz )

Закрывает файл bzip2, на который ссылается указательbz.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Указатель должен быть рабочим и должен ссылаться на файл, успешно открытый функцией bzopen().

Cм. также bzopen().

Пред. | Начало | След.
Функции сжатия Bzip2 | Уровень выше | bzcompress


bzcompress

(PHP 4 >= 4.3.3, PHP 5)

bzcompress -- Сжимает данные с использованием bzip2

Описание

string bzcompress ( string source [, integer blocksize [, integer workfactor]] )

bzcompress() возвращает строку source, сжатую с использованием bzip2.

Опциональный параметр blocksize указывает размер блока используемого во время сжатия и должен быть числом от 1 до 9, где 9 даёт наилучшее качество сжатия, но использует больше ресурсов. По умолчанию blocksize равен 4.

Опциональный параметр workfactor указывает как поведёт себя процесс сжатия в худшем случае, при частоповторяющихся блоках. Параметр может принимать значения от 0 до 250, с 0 в специальном случае и с 30 по умолчанию. Независимо от параметра workfactor, результат сжатия всегда один.

Пример 1. Пример использования bzcompress()

<?php
$str = "sample data";
$bzstr = bzcompress($str, 9);
print( $bzstr );
?>

См. также bzdecompress().

Пред. | Начало | След.
bzclose | Уровень выше | bzdecompress


bzdecompress

(PHP 4 >= 4.3.3, PHP 5)

bzdecompress -- Распаковывает данные, сжатые с использованием bzip2

Описание

string bzdecompress ( string source [, integer small] )

bzdecompress() распаковывает и возвращает source строку, содержащую данные, сжатые с использованием bzip2. Если опциональный параметр small указан как TRUE, будет использован альтернативный алгоритм декомпрессии. Он использует меньше памяти (максимальный размер используемой памяти -- около 2300K), но работает в два раза медленнее. За доп. информации обращайтесь к документации bzip2.

Пример 1. Пример использования bzdecompress()

<?php
$start_str = "This is not an honest face?";
$bzstr = bzcompress($start_str);

print( "Compressed String: " );
print( $bzstr );
print( "\n<br>\n" );

$str = bzdecompress($bzstr);
print( "Decompressed String: " );
print( $str );
print( "\n<br>\n" );
?>

См. также bzcompress().

Пред. | Начало | След.
bzcompress | Уровень выше | bzerrno


bzerrno

(PHP 4 >= 4.3.3, PHP 5)

bzerrno -- Возвращает код ошибки работы с bzip2

Описание

integer bzerrno ( resource bz )

Возвращает код ошибки последней bzip2 функций, отработавшей с указателем bz.

См. также bzerror() и bzerrstr().

Пред. | Начало | След.
bzdecompress | Уровень выше | bzerror


bzerror

(PHP 4 >= 4.3.3, PHP 5)

bzerror -- Возвращает код и строку ошибки работы с bzip2

Описание

array bzerror ( resource bz )

Возвращает ассоциативный массив с кодом и строкой ошибки последней bzip2 функции, отработавшей с указателем bz.

Пример 1. Пример использования bzerror()

<?php
$error = bzerror($bz);

echo $error["errno"];
echo $error["errstr"];
?>

См. также bzerrno() и bzerrstr().

Пред. | Начало | След.
bzerrno | Уровень выше | bzerrstr


bzerrstr

(PHP 4 >= 4.3.3, PHP 5)

bzerrstr -- Возвращает строку ошибки работы с bzip2

Описание

string bzerrstr ( resource bz )

Возвращает строку ошибки последней bzip2 функции, отработавшей с указателем bz.

См. также bzerrno() and bzerror().

Пред. | Начало | След.
bzerror | Уровень выше | bzflush


bzflush

(PHP 4 >= 4.3.3, PHP 5)

bzflush -- Вызывает запись всех буфферизированных данных

Описание

integer bzflush ( resource bz )

Записывает все буфферизированные bzip2 данные в файл, на который ссылается указатель bz.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

См. также bzread() и bzwrite().

Пред. | Начало | След.
bzerrstr | Уровень выше | bzopen


bzopen

(PHP 4 >= 4.3.3, PHP 5)

bzopen -- Открывает для работы файл, сжатый с использованием bzip2

Описание

resource bzopen ( string filename, string mode )

Открывает файл bzip2 (.bz2) для чтения или записи. filename путь к файлу. mode параметр аналогичный одноимённому параметру функции fopen() (`r' -- чтение, `w' -- запись, и т.д.).

При ошибке открытия функция возвращает FALSE, иначе она возвращает указатель на открытый файл.

Пример 1. Пример использования bzopen()

<?php
$bz = bzopen("/tmp/foo.bz2", "r");

$decompressed_file = '';
while (!feof($bz)) {
    $decompressed_file .= bzread($bz, 4096);
}
bzclose($bz);

print( "The contents of /tmp/foo.bz2 are: " );
print( "\n<br>\n" );
print( $decompressed_file );
?>

См. также bzclose().

Пред. | Начало | След.
bzflush | Уровень выше | bzread


bzread

(PHP 4 >= 4.3.3, PHP 5)

bzread -- Бинарно-безопасное чтение файла bzip2

Описание

string bzread ( resource bz [, integer length] )

bzread() считывает length байт из файла bzip2, на который ссылается указатель bz. Чтение останавливается, когда length (несжатых) байт прочитано или достигнут конец файла (EOF). Если опциональный параметр length не задан, bzread() будет считывать по 1024 (несжатых) байт за раз.

Пример 1. Пример использования bzread()

<?php
$bz = bzopen("/tmp/foo.bz2", "r");
$str = bzread($bz, 2048);
print( $str );
?>

См. также bzwrite() и bzopen().

Пред. | Начало | След.
bzopen | Уровень выше | bzwrite


bzwrite

(PHP 4 >= 4.3.3, PHP 5)

bzwrite -- Бинарно-безопасная запись bzip2 файла

Описание

integer bzwrite ( resource bz, string data [, integer length] )

bzwrite() записывает содержание строки data в поток файла bzip2, на который ссылается указатель bz. Если указан опциональный параметр length, запись будет остановлена по достижению length байт (несжатых), либо по достижению конца строки.

Пример 1. Пример использования bzwrite()

<?php
$str = "uncompressed data";
$bz = bzopen("/tmp/foo.bz2", "w");
bzwrite($bz, $str, strlen($str));
bzclose($bz);
?>

См. также bzread() и bzopen().

Пред. | Начало | След.
bzread | Уровень выше | Calendar Functions


Calendar Functions

Руководство по PHP
Пред. След.

X. Calendar Functions

Введение

The calendar extension presents a series of functions to simplify converting between different calendar formats. The intermediary or standard it is based on is the Julian Day Count. The Julian Day Count is a count of days starting from January 1st, 4713 B.C. To convert between calendar systems, you must first convert to Julian Day Count, then to the calendar system of your choice. Julian Day Count is very different from the Julian Calendar! For more information on Julian Day Count, visit http://www.hermetic.ch/cal_stud/jdn.htm. For more information on calendar systems visit http://www.boogle.com/info/cal-overview.html. Excerpts from this page are included in these instructions, and are in quotes.

Установка

To get these functions to work, you have to compile PHP with --enable-calendar.

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

CAL_GREGORIAN (integer)

CAL_JULIAN (integer)

CAL_JEWISH (integer)

CAL_FRENCH (integer)

CAL_NUM_CALS (integer)

CAL_DOW_DAYNO (integer)

CAL_DOW_SHORT (integer)

CAL_DOW_LONG (integer)

CAL_MONTH_GREGORIAN_SHORT (integer)

CAL_MONTH_GREGORIAN_LONG (integer)

CAL_MONTH_JULIAN_SHORT (integer)

CAL_MONTH_JULIAN_LONG (integer)

CAL_MONTH_JEWISH (integer)

CAL_MONTH_FRENCH (integer)

The following constants are available since PHP 4.3.0 :

CAL_EASTER_DEFAULT (integer)

CAL_EASTER_ROMAN (integer)

CAL_EASTER_ALWAYS_GREGORIAN (integer)

CAL_EASTER_ALWAYS_JULIAN (integer)

The following constants are available since PHP 5.0.0 :

CAL_JEWISH_ADD_ALAFIM_GERESH (integer)

CAL_JEWISH_ADD_ALAFIM (integer)

CAL_JEWISH_ADD_GERESHAYIM (integer)

Содержание
cal_days_in_month -- Return the number of days in a month for a given year and calendar
cal_from_jd -- Converts from Julian Day Count to a supported calendar
cal_info -- Returns information about a particular calendar
cal_to_jd -- Converts from a supported calendar to Julian Day Count
easter_date -- Get Unix timestamp for midnight on Easter of a given year
easter_days -- Get number of days after March 21 on which Easter falls for a given year
FrenchToJD -- Converts a date from the French Republican Calendar to a Julian Day Count
GregorianToJD -- Converts a Gregorian date to Julian Day Count
JDDayOfWeek -- Returns the day of the week
JDMonthName -- Returns a month name
JDToFrench -- Converts a Julian Day Count to the French Republican Calendar
JDToGregorian -- Converts Julian Day Count to Gregorian date
jdtojewish -- Converts a Julian day count to a Jewish calendar date
JDToJulian -- Converts a Julian Day Count to a Julian Calendar Date
jdtounix -- Convert Julian Day to Unix timestamp
JewishToJD -- Converts a date in the Jewish Calendar to Julian Day Count
JulianToJD -- Converts a Julian Calendar date to Julian Day Count
unixtojd -- Convert Unix timestamp to Julian Day

Пред. | Начало | След.
bzwrite | Уровень выше | cal_days_in_month


cal_days_in_month

(PHP 4 >= 4.1.0, PHP 5)

cal_days_in_month -- Return the number of days in a month for a given year and calendar

Description

int cal_days_in_month ( int calendar, int month, int year )

This function will return the number of days in the month of year for the specified calendar.

Пример 1. cal_days_in_month() example

<?php
$num = cal_days_in_month(CAL_GREGORIAN, 8, 2003); // 31
echo "There was $num days in August 2003";
?>

See also jdtounix().

Пред. | Начало | След.
Calendar Functions | Уровень выше | cal_from_jd


cal_from_jd

(PHP 4 >= 4.1.0, PHP 5)

cal_from_jd -- Converts from Julian Day Count to a supported calendar

Description

array cal_from_jd ( int jd, int calendar )

cal_from_jd() converts the Julian day given in jd into a date of the specified calendar. Supported calendar values are CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH and CAL_FRENCH.

Пример 1. cal_from_jd() example

<?php
$today = unixtojd(mktime(0, 0, 0, 8, 16, 2003));
print_r(cal_from_jd($today, CAL_GREGORIAN));
?>

Результат выполнения данного примера:

Array
(
    [date] => 8/16/2003
    [month] => 8
    [day] => 16
    [year] => 2003
    [dow] => 6
    [abbrevdayname] => Sat
    [dayname] => Saturday
    [abbrevmonth] => Aug
    [monthname] => August
)

See also cal_to_jd().

Пред. | Начало | След.
cal_days_in_month | Уровень выше | cal_info


cal_info

(PHP 4 >= 4.1.0, PHP 5)

cal_info -- Returns information about a particular calendar

Description

array cal_info ( [int calendar] )

cal_info() returns information on the specified calendar.

Calendar information is returned as an array containing the elements calname, calsymbol, month, abbrevmonth and maxdaysinmonth. The names of the different calendars which can be used as calendar are as follows:

  • 0 or CAL_GREGORIAN - Gregorian Calendar

  • 1 or CAL_JULIAN - Julian Calendar

  • 2 or CAL_JEWISH - Jewish Calendar

  • 3 or CAL_FRENCH - French Revolutionary Calendar

If no calendar is specified information on all supported calendars is returned as an array. This functionality is available beginning with PHP 5.

Пример 1. cal_info() example

<?php
$info = cal_info(0);
print_r($info);
?>

Результат выполнения данного примера:

Array
(
    [months] => Array
        (
            [1] => January
            [2] => February
            [3] => March
            [4] => April
            [5] => May
            [6] => June
            [7] => July
            [8] => August
            [9] => September
            [10] => October
            [11] => November
            [12] => December
        )

    [abbrevmonths] => Array
        (
            [1] => Jan
            [2] => Feb
            [3] => Mar
            [4] => Apr
            [5] => May
            [6] => Jun
            [7] => Jul
            [8] => Aug
            [9] => Sep
            [10] => Oct
            [11] => Nov
            [12] => Dec
        )

    [maxdaysinmonth] => 31
    [calname] => Gregorian
    [calsymbol] => CAL_GREGORIAN
)

Пред. | Начало | След.
cal_from_jd | Уровень выше | cal_to_jd


cal_to_jd

(PHP 4 >= 4.1.0, PHP 5)

cal_to_jd -- Converts from a supported calendar to Julian Day Count

Description

int cal_to_jd ( int calendar, int month, int day, int year )

cal_to_jd() calculates the Julian day count for a date in the specified calendar. Supported calendars are CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH and CAL_FRENCH.

See also cal_from_jd().

Пред. | Начало | След.
cal_info | Уровень выше | easter_date


easter_date

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

easter_date -- Get Unix timestamp for midnight on Easter of a given year

Description

int easter_date ( [int year] )

Returns the Unix timestamp corresponding to midnight on Easter of the given year.

Since PHP 4.3.0, the year parameter is optional and defaults to the current year according to the localtime if omitted.

Пример 1. easter_date() example

<?php

echo date("M-d-Y", easter_date(1999));        // Apr-04-1999
echo date("M-d-Y", easter_date(2000));        // Apr-23-2000
echo date("M-d-Y", easter_date(2001));        // Apr-15-2001

?>

Внимание

This function will generate a warning if the year is outside of the range for Unix timestamps (i.e. before 1970 or after 2037).

The date of Easter Day was defined by the Council of Nicaea in AD325 as the Sunday after the first full moon which falls on or after the Spring Equinox. The Equinox is assumed to always fall on 21st March, so the calculation reduces to determining the date of the full moon and the date of the following Sunday. The algorithm used here was introduced around the year 532 by Dionysius Exiguus. Under the Julian Calendar (for years before 1753) a simple 19-year cycle is used to track the phases of the Moon. Under the Gregorian Calendar (for years after 1753 - devised by Clavius and Lilius, and introduced by Pope Gregory XIII in October 1582, and into Britain and its then colonies in September 1752) two correction factors are added to make the cycle more accurate.

(The code is based on a C program by Simon Kershaw, <webmaster at ely.anglican dot org>)

See easter_days() for calculating Easter before 1970 or after 2037.

Пред. | Начало | След.
cal_to_jd | Уровень выше | easter_days


easter_days

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

easter_days -- Get number of days after March 21 on which Easter falls for a given year

Description

int easter_days ( [int year [, int method]] )

Returns the number of days after March 21 on which Easter falls for a given year. If no year is specified, the current year is assumed.

Since PHP 4.3.0, the year parameter is optional and defaults to the current year according to the localtime if omitted.

The method parameter was also introduced in PHP 4.3.0 and allows to calculate easter dates based on the Gregorian calendar during the years 1582 - 1752 when set to CAL_EASTER_ROMAN. See the calendar constants for more valid constants.

This function can be used instead of easter_date() to calculate Easter for years which fall outside the range of Unix timestamps (i.e. before 1970 or after 2037).

Пример 1. easter_days() example

<?php

echo easter_days(1999);        // 14, i.e. April 4
echo easter_days(1492);        // 32, i.e. April 22
echo easter_days(1913);        //  2, i.e. March 23

?>

The date of Easter Day was defined by the Council of Nicaea in AD325 as the Sunday after the first full moon which falls on or after the Spring Equinox. The Equinox is assumed to always fall on 21st March, so the calculation reduces to determining the date of the full moon and the date of the following Sunday. The algorithm used here was introduced around the year 532 by Dionysius Exiguus. Under the Julian Calendar (for years before 1753) a simple 19-year cycle is used to track the phases of the Moon. Under the Gregorian Calendar (for years after 1753 - devised by Clavius and Lilius, and introduced by Pope Gregory XIII in October 1582, and into Britain and its then colonies in September 1752) two correction factors are added to make the cycle more accurate.

(The code is based on a C program by Simon Kershaw, <webmaster at ely.anglican dot org>)

See also easter_date().

Пред. | Начало | След.
easter_date | Уровень выше | FrenchToJD


FrenchToJD

(PHP 3, PHP 4, PHP 5)

FrenchToJD -- Converts a date from the French Republican Calendar to a Julian Day Count

Description

int frenchtojd ( int month, int day, int year )

Converts a date from the French Republican Calendar to a Julian Day Count.

These routines only convert dates in years 1 through 14 (Gregorian dates 22 September 1792 through 22 September 1806). This more than covers the period when the calendar was in use.

Пред. | Начало | След.
easter_days | Уровень выше | GregorianToJD


GregorianToJD

(PHP 3, PHP 4, PHP 5)

GregorianToJD -- Converts a Gregorian date to Julian Day Count

Description

int gregoriantojd ( int month, int day, int year )

Valid Range for Gregorian Calendar 4714 B.C. to 9999 A.D.

Although this function can handle dates all the way back to 4714 B.C., such use may not be meaningful. The Gregorian calendar was not instituted until October 15, 1582 (or October 5, 1582 in the Julian calendar). Some countries did not accept it until much later. For example, Britain converted in 1752, The USSR in 1918 and Greece in 1923. Most European countries used the Julian calendar prior to the Gregorian.

Пример 1. Calendar functions

<?php
$jd = GregorianToJD(10, 11, 1970);
echo "$jd\n";
$gregorian = JDToGregorian($jd);
echo "$gregorian\n";
?>

Пред. | Начало | След.
FrenchToJD | Уровень выше | JDDayOfWeek


JDDayOfWeek

(PHP 3, PHP 4, PHP 5)

JDDayOfWeek -- Returns the day of the week

Description

mixed jddayofweek ( int julianday [, int mode] )

Returns the day of the week. Can return a string or an integer depending on the mode.

Таблица 1. Calendar week modes

Mode | Meaning
0 (Default) | Returns the day number as an int (0=Sunday, 1=Monday, etc)
1 | Returns string containing the day of week (English-Gregorian)
2 | Returns a string containing the abbreviated day of week (English-Gregorian)

Пред. | Начало | След.
GregorianToJD | Уровень выше | JDMonthName


JDMonthName

(PHP 3, PHP 4, PHP 5)

JDMonthName -- Returns a month name

Description

string jdmonthname ( int julianday, int mode )

Returns a string containing a month name. mode tells this function which calendar to convert the Julian Day Count to, and what type of month names are to be returned.

Таблица 1. Calendar modes

Mode | Meaning | Values
0 | Gregorian - abbreviated | Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
1 | Gregorian | January, February, March, April, May, June, July, August, September, October, November, December
2 | Julian - abbreviated | Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
3 | Julian | January, February, March, April, May, June, July, August, September, October, November, December
4 | Jewish | Tishri, Heshvan, Kislev, Tevet, Shevat, AdarI, AdarII, Nisan, Iyyar, Sivan, Tammuz, Av, Elul
5 | French Republican | Vendemiaire, Brumaire, Frimaire, Nivose, Pluviose, Ventose, Germinal, Floreal, Prairial, Messidor, Thermidor, Fructidor, Extra

Пред. | Начало | След.
JDDayOfWeek | Уровень выше | JDToFrench


JDToFrench

(PHP 3, PHP 4, PHP 5)

JDToFrench -- Converts a Julian Day Count to the French Republican Calendar

Description

string jdtofrench ( int juliandaycount )

Converts a Julian Day Count to the French Republican Calendar.

Пред. | Начало | След.
JDMonthName | Уровень выше | JDToGregorian


JDToGregorian

(PHP 3, PHP 4, PHP 5)

JDToGregorian -- Converts Julian Day Count to Gregorian date

Description

string jdtogregorian ( int julianday )

Converts Julian Day Count to a string containing the Gregorian date in the format of "month/day/year".

Пред. | Начало | След.
JDToFrench | Уровень выше | jdtojewish


jdtojewish

(PHP 3, PHP 4, PHP 5)

jdtojewish -- Converts a Julian day count to a Jewish calendar date

Description

string jdtojewish ( int juliandaycount [, bool hebrew [, int fl]] )

Converts a Julian Day Count to the Jewish Calendar.

The optional hebrew and fl parameters became available in PHP 5.0.0

If the hebrew parameter is set to TRUE, the fl parameter is used for Hebrew, string based, output format. The available formats are: CAL_JEWISH_ADD_ALAFIM_GERESH, CAL_JEWISH_ADD_ALAFIM, CAL_JEWISH_ADD_GERESHAYIM.

Пример 1. jdtojewish() Example

<?php
echo jdtojewish(gregoriantojd(10, 8, 2002), true,
       CAL_JEWISH_ADD_GERESHAYIM + CAL_JEWISH_ADD_ALAFIM + CAL_JEWISH_ADD_ALAFIM_GERESH);
?>

Пред. | Начало | След.
JDToGregorian | Уровень выше | JDToJulian


JDToJulian

(PHP 3, PHP 4, PHP 5)

JDToJulian -- Converts a Julian Day Count to a Julian Calendar Date

Description

string jdtojulian ( int julianday )

Converts Julian Day Count to a string containing the Julian Calendar Date in the format of "month/day/year".

Пред. | Начало | След.
jdtojewish | Уровень выше | jdtounix


jdtounix

(PHP 4, PHP 5)

jdtounix -- Convert Julian Day to Unix timestamp

Description

int jdtounix ( int jday )

This function will return a Unix timestamp corresponding to the Julian Day given in jday or FALSE if jday is not inside the Unix epoch (Gregorian years between 1970 and 2037 or 2440588 <= jday <= 2465342 ). The time returned is localtime (and not GMT).

See also unixtojd().

Пред. | Начало | След.
JDToJulian | Уровень выше | JewishToJD


JewishToJD

(PHP 3, PHP 4, PHP 5)

JewishToJD -- Converts a date in the Jewish Calendar to Julian Day Count

Description

int jewishtojd ( int month, int day, int year )

Although this function can handle dates all the way back to the year 1 (3761 B.C.), such use may not be meaningful. The Jewish calendar has been in use for several thousand years, but in the early days there was no formula to determine the start of a month. A new month was started when the new moon was first observed.

Пред. | Начало | След.
jdtounix | Уровень выше | JulianToJD


JulianToJD

(PHP 3, PHP 4, PHP 5)

JulianToJD -- Converts a Julian Calendar date to Julian Day Count

Description

int juliantojd ( int month, int day, int year )

Valid Range for Julian Calendar 4713 B.C. to 9999 A.D.

Although this function can handle dates all the way back to 4713 B.C., such use may not be meaningful. The calendar was created in 46 B.C., but the details did not stabilize until at least 8 A.D., and perhaps as late at the 4th century. Also, the beginning of a year varied from one culture to another - not all accepted January as the first month.

Предостережение

Remember, the current calendar system being used worldwide is the Gregorian calendar. gregoriantojd() can be used to convert such dates to their Julian Day count.

Пред. | Начало | След.
JewishToJD | Уровень выше | unixtojd


unixtojd

(PHP 4, PHP 5)

unixtojd -- Convert Unix timestamp to Julian Day

Description

int unixtojd ( [int timestamp] )

Return the Julian Day for a Unix timestamp (seconds since 1.1.1970), or for the current day if no timestamp is given.

See also jdtounix().

Пред. | Начало | След.
JulianToJD | Уровень выше | CCVS API Functions [deprecated]


CCVS API Functions [deprecated]

Руководство по PHP
Пред. След.

XI. CCVS API Functions [deprecated]

Введение

These functions interface the CCVS API, allowing you to work directly with CCVS from your PHP scripts. CCVS is RedHat's solution to the "middle-man" in credit card processing. It lets you directly address the credit card clearing houses via your *nix box and a modem. Using the CCVS module for PHP, you can process credit cards directly through CCVS via your PHP Scripts. The following references will outline the process.

Замечание: CCVS has been discontinued by Red Hat and there are no plans to issue further keys or support contracts. Those looking for a replacement can consider MCVE by Main Street Softworks as a potential replacement. It is similar in design and has documented PHP support!

This extension has been removed from PHP and is no longer available as of PHP 4.3.0. If you want to use credit card processing features you can use MCVE instead.

Установка

To enable CCVS Support in PHP, first verify your CCVS installation directory. You will then need to configure PHP with the --with-ccvs option. If you use this option without specifying the path to your CCVS installation, PHP will attempt to look in the default CCVS Install location (/usr/local/ccvs). If CCVS is in a non-standard location, run configure with: --with-ccvs=[DIR], where DIR is the path to your CCVS installation. Please note that CCVS support requires that DIR/lib and DIR/include exist, and include cv_api.h under the include directory and libccvs.a under the lib directory.

Additionally, a ccvsd process will need to be running for the configurations you intend to use in your PHP scripts. You will also need to make sure the PHP Processes are running under the same user as your CCVS was installed as (e.g. if you installed CCVS as user 'ccvs', your PHP processes must run as 'ccvs' as well.)

Смотрите также

RedHat has discontinued support for CCVS; however, a slightly outdated manual is still available at http://www.redhat.com/docs/manuals/ccvs/.

Содержание
ccvs_add -- Add data to a transaction
ccvs_auth -- Perform credit authorization test on a transaction
ccvs_command -- Performs a command which is peculiar to a single protocol, and thus is not available in the general CCVS API
ccvs_count -- Find out how many transactions of a given type are stored in the system
ccvs_delete -- Delete a transaction
ccvs_done -- Terminate CCVS engine and do cleanup work
ccvs_init -- Initialize CCVS for use
ccvs_lookup -- Look up an item of a particular type in the database #
ccvs_new -- Create a new, blank transaction
ccvs_report -- Return the status of the background communication process
ccvs_return -- Transfer funds from the merchant to the credit card holder
ccvs_reverse -- Perform a full reversal on an already-processed authorization
ccvs_sale -- Transfer funds from the credit card holder to the merchant
ccvs_status -- Check the status of an invoice
ccvs_textvalue -- Get text return value for previous function call
ccvs_void -- Perform a full reversal on a completed transaction

Пред. | Начало | След.
unixtojd | Уровень выше | ccvs_add


ccvs_add

(4.0.2 - 4.2.3 only)

ccvs_add -- Add data to a transaction

Description

string ccvs_add ( string session, string invoice, string argtype, string argval )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
CCVS API Functions [deprecated] | Уровень выше | ccvs_auth


ccvs_auth

(4.0.2 - 4.2.3 only)

ccvs_auth -- Perform credit authorization test on a transaction

Description

string ccvs_auth ( string session, string invoice )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ccvs_add | Уровень выше | ccvs_command


ccvs_command

(4.0.2 - 4.2.3 only)

ccvs_command -- Performs a command which is peculiar to a single protocol, and thus is not available in the general CCVS API

Description

string ccvs_command ( string session, string type, string argval )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ccvs_auth | Уровень выше | ccvs_count


ccvs_count

(4.0.2 - 4.2.3 only)

ccvs_count -- Find out how many transactions of a given type are stored in the system

Description

int ccvs_count ( string session, string type )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ccvs_command | Уровень выше | ccvs_delete


ccvs_delete

(4.0.2 - 4.2.3 only)

ccvs_delete -- Delete a transaction

Description

string ccvs_delete ( string session, string invoice )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ccvs_count | Уровень выше | ccvs_done


ccvs_done

(4.0.2 - 4.2.3 only)

ccvs_done -- Terminate CCVS engine and do cleanup work

Description

string ccvs_done ( string sess )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ccvs_delete | Уровень выше | ccvs_init


ccvs_init

(4.0.2 - 4.2.3 only)

ccvs_init -- Initialize CCVS for use

Description

string ccvs_init ( string name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ccvs_done | Уровень выше | ccvs_lookup


ccvs_lookup

(4.0.2 - 4.2.3 only)

ccvs_lookup -- Look up an item of a particular type in the database #

Description

string ccvs_lookup ( string session, string invoice, int inum )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ccvs_init | Уровень выше | ccvs_new


ccvs_new

(4.0.2 - 4.2.3 only)

ccvs_new -- Create a new, blank transaction

Description

string ccvs_new ( string session, string invoice )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ccvs_lookup | Уровень выше | ccvs_report


ccvs_report

(4.0.2 - 4.2.3 only)

ccvs_report -- Return the status of the background communication process

Description

string ccvs_report ( string session, string type )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ccvs_new | Уровень выше | ccvs_return


ccvs_return

(4.0.2 - 4.2.3 only)

ccvs_return -- Transfer funds from the merchant to the credit card holder

Description

string ccvs_return ( string session, string invoice )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ccvs_report | Уровень выше | ccvs_reverse


ccvs_reverse

(4.0.2 - 4.2.3 only)

ccvs_reverse -- Perform a full reversal on an already-processed authorization

Description

string ccvs_reverse ( string session, string invoice )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ccvs_return | Уровень выше | ccvs_sale


ccvs_sale

(4.0.2 - 4.2.3 only)

ccvs_sale -- Transfer funds from the credit card holder to the merchant

Description

string ccvs_sale ( string session, string invoice )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ccvs_reverse | Уровень выше | ccvs_status


ccvs_status

(4.0.2 - 4.2.3 only)

ccvs_status -- Check the status of an invoice

Description

string ccvs_status ( string session, string invoice )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ccvs_sale | Уровень выше | ccvs_textvalue


ccvs_textvalue

(4.0.2 - 4.2.3 only)

ccvs_textvalue -- Get text return value for previous function call

Description

string ccvs_textvalue ( string session )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ccvs_status | Уровень выше | ccvs_void


ccvs_void

(4.0.2 - 4.2.3 only)

ccvs_void -- Perform a full reversal on a completed transaction

Description

string ccvs_void ( string session, string invoice )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ccvs_textvalue | Уровень выше | Функции работы с Классами/Объектами


Classkit Functions

Руководство по PHP
Пред. След.

XIII. Classkit Functions

Введение

These functions allow the dynamic manipulation of PHP classes, at runtime.

Замечание: This extension has been replaced by runkit, which is not limited to class manipulation but has function manipulation, as well.

Установка

Это расширение PECL не поставляется вместе с PHP.

Дополнительная информация, такая как новый версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, могут быть найдены здесь: http://pecl.php.net/package/classkit.

Вы можете скачать DLL этого расширения PECL со страницы PHP Downloads или http://snaps.php.net/.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

CLASSKIT_ACC_PRIVATE (int)

Marks the method private

CLASSKIT_ACC_PROTECTED (int)

Marks the method protected

CLASSKIT_ACC_PUBLIC (int)

Marks the method public

Содержание
classkit_import -- Import new class method definitions from a file
classkit_method_add -- Dynamically adds a new method to a given class
classkit_method_copy -- Copies a method from class to another
classkit_method_redefine -- Dynamically changes the code of the given method
classkit_method_remove -- Dynamically removes the given method
classkit_method_rename -- Dynamically changes the name of the given method

Пред. | Начало | След.
method_exists | Уровень выше | classkit_import


classkit_import

(PECL)

classkit_import -- Import new class method definitions from a file

Описание

array classkit_import ( string filename )

Замечание: Эта функция не может быть использована для влияния на работающие в данный момент (или цепные) методы.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

filename

The filename of the class method definitions to import

Возвращаемые значения

Associative array of imported methods

Примеры

Пример 1. classkit_import() example

<?php
// file: newclass.php
class Example {
    function foo() {
        return "bar!\n";
    }
}
?>
<?php
// requires newclass.php (see above)
class Example {
    function foo() {
        return "foo!\n";
    }
}

$e = new Example();

// output original
echo $e->foo();

// import replacement method
classkit_import('newclass.php');

// output imported
echo $e->foo();

?>

Результат выполнения данного примера:

foo!
bar!

Смотрите также

classkit_method_add()
classkit_method_copy()

Пред. | Начало | След.
Classkit Functions | Уровень выше | classkit_method_add


classkit_method_add

(PECL)

classkit_method_add -- Dynamically adds a new method to a given class

Описание

bool classkit_method_add ( string classname, string methodname, string args, string code [, int flags] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

classname

The class to which this method will be added

methodname

The name of the method to add

args

Comma-delimited list of arguments for the newly-created method

code

The code to be evaluated when methodname is called

flags

The type of method to create, can be CLASSKIT_ACC_PUBLIC, CLASSKIT_ACC_PROTECTED or CLASSKIT_ACC_PRIVATE

Замечание: This parameter is only used as of PHP 5, because, prior to this, all methods were public.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. classkit_method_add() example

<?php
class Example {
    function foo() {
        echo "foo!\n";
    }
}

// create an Example object
$e = new Example();

// Add a new public method
classkit_method_add(
    'Example',
    'add',
    '$num1, $num2',
    'return $num1 + $num2;',
    CLASSKIT_ACC_PUBLIC
);

// add 12 + 4
echo $e->add(12, 4);
?>

Результат выполнения данного примера:

16

Смотрите также

classkit_method_copy()
classkit_method_redefine()
classkit_method_remove()
classkit_method_rename()
create_function()

Пред. | Начало | След.
classkit_import | Уровень выше | classkit_method_copy


classkit_method_copy

(PECL)

classkit_method_copy -- Copies a method from class to another

Описание

bool classkit_method_copy ( string dClass, string dMethod, string sClass [, string sMethod] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

dClass

Destination class for copied method

dMethod

Destination method name

sClass

Source class of the method to copy

sMethod

Name of the method to copy from the source class. If this parameter is omitted, the value of dMethod is assumed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. classkit_method_copy() example

<?php
class Foo {
    function example() {
        return "foo!\n";
    }
}

class Bar {
    // initially, no methods
}

// copy the example() method from the Foo class to the Bar class, as baz()
classkit_method_copy('Bar', 'baz', 'Foo', 'example');

// output copied function
echo Bar::baz();
?>

Результат выполнения данного примера:

foo!

Смотрите также

classkit_method_add()
classkit_method_redefine()
classkit_method_remove()
classkit_method_rename()

Пред. | Начало | След.
classkit_method_add | Уровень выше | classkit_method_redefine


classkit_method_redefine

(PECL)

classkit_method_redefine -- Dynamically changes the code of the given method

Описание

bool classkit_method_redefine ( string classname, string methodname, string args, string code [, int flags] )

Замечание: Эта функция не может быть использована для влияния на работающие в данный момент (или цепные) методы.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

classname

The class in which to redefine the method

methodname

The name of the method to redefine

args

Comma-delimited list of arguments for the redefined method

code

The new code to be evaluated when methodname is called

flags

The redefined method can be CLASSKIT_ACC_PUBLIC, CLASSKIT_ACC_PROTECTED or CLASSKIT_ACC_PRIVATE

Замечание: This parameter is only used as of PHP 5, because, prior to this, all methods were public.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. classkit_method_redefine() example

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// create an Example object
$e = new Example();

// output Example::foo() (before redefine)
echo "Before: " . $e->foo();

// Redefine the 'foo' method
classkit_method_redefine(
    'Example',
    'foo',
    '',
    'return "bar!\n";',
    CLASSKIT_ACC_PUBLIC
);

// output Example::foo() (after redefine)
echo "After: " . $e->foo();
?>

Результат выполнения данного примера:

Before: foo!
After: bar!

Смотрите также

classkit_method_add()
classkit_method_copy()
classkit_method_remove()
classkit_method_rename()

Пред. | Начало | След.
classkit_method_copy | Уровень выше | classkit_method_remove


classkit_method_remove

(PECL)

classkit_method_remove -- Dynamically removes the given method

Описание

bool classkit_method_remove ( string classname, string methodname )

Замечание: Эта функция не может быть использована для влияния на работающие в данный момент (или цепные) методы.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

classname

The class in which to remove the method

methodname

The name of the method to remove

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. classkit_method_remove() example

<?php
class Example {
    function foo() {
        return "foo!\n";
    }

    function bar() {
        return "bar!\n";
    }
}

// Remove the 'foo' method
classkit_method_remove(
    'Example',
    'foo'
);

echo implode(' ', get_class_methods('Example'));

?>

Результат выполнения данного примера:

bar

Смотрите также

classkit_method_add()
classkit_method_copy()
classkit_method_redefine()
classkit_method_rename()

Пред. | Начало | След.
classkit_method_redefine | Уровень выше | classkit_method_rename


classkit_method_rename

(PECL)

classkit_method_rename -- Dynamically changes the name of the given method

Описание

bool classkit_method_rename ( string classname, string methodname, string newname )

Замечание: Эта функция не может быть использована для влияния на работающие в данный момент (или цепные) методы.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

classname

The class in which to rename the method

methodname

The name of the method to rename

newname

The new name to give to the renamed method

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. classkit_method_rename() example

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// Rename the 'foo' method to 'bar'
classkit_method_rename(
    'Example',
    'foo',
    'bar'
);

// output renamed function
echo Example::bar();
?>

Результат выполнения данного примера:

foo!

Смотрите также

classkit_method_add()
classkit_method_copy()
classkit_method_redefine()
classkit_method_remove()

Пред. | Начало | След.
classkit_method_remove | Уровень выше | ClibPDF Functions


Функции работы с Классами/Объектами

Руководство по PHP
Пред. След.

XII. Функции работы с Классами/Объектами

Введение

Нижеописанные функции позволят вам получить информацию о классах и экземплярах объектов. Вы можете получить имя класса из экземпляра объекта равно как и все его свойства и методы. Используя эти функции, вы сможете установить не только принадлежность объекта к конкретному классу, но и определить наследование (к примеру какой класс наследует класс данного объекта).

Требования

Эти функции всегда доступны.

Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Примеры

В приведённом ниже примере, мы сначала определим базовый класс и класс его наследующий. Базовый класс описывает овощ: съедобен ли и какого внешне цвета. Дочерний класс Spinach добавляет метод приготовления овоща и проверки -- был ли он уже приготовлен.

Пример 1. classes.inc

<?php

// базовый класс с основными свойствами и методами
class Vegetable {

    var $edible;
    var $color;

    function Vegetable($edible, $color="green")
    {
        $this->edible = $edible;
        $this->color = $color;
    }

    function is_edible()
    {
        return $this->edible;
    }

    function what_color()
    {
        return $this->color;
    }

} // конец класса Vegetable

// расширяет базовый класс
class Spinach extends Vegetable {

    var $cooked = false;

    function Spinach()
    {
        $this->Vegetable(true, "green");
    }

    function cook_it()
    {
        $this->cooked = true;
    }

    function is_cooked()
    {
        return $this->cooked;
    }

} // конец класса Spinach

?>

Теперь мы создадим по объекту каждого класса и распечатаем информацию о них, включая наследовательность. Также мы объявим несколько функций-утилит, главным образом для удобного вывода результатов.

Пример 2. test_script.php

<pre>
<?php

include "classes.inc";

// функции-утилиты

function print_vars($obj)
{
    $arr = get_object_vars($obj);
    while (list($prop, $val) = each($arr))
        echo "\t$prop = $val\n";
}

function print_methods($obj)
{
    $arr = get_class_methods(get_class($obj));
    foreach ($arr as $method)
        echo "\tfunction $method()\n";
}

function class_parentage($obj, $class)
{
    if (is_subclass_of($GLOBALS[$obj], $class)) {
        echo "Object $obj belongs to class " . get_class($$obj);
        echo " a subclass of $class\n";
    } else {
        echo "Object $obj does not belong to a subclass of $class\n";
    }
}

// создание экземпляров объектов

$veggie = new Vegetable(true, "blue");
$leafy = new Spinach();

// распечатка информации об объектах
echo "veggie: CLASS " . get_class($veggie) . "\n";
echo "leafy: CLASS " . get_class($leafy);
echo ", PARENT " . get_parent_class($leafy) . "\n";

// показать свойства объекта класса Spinach
echo "\nveggie: Properties\n";
print_vars($veggie);

// и методы объекта базового класса Vegetable
echo "\nleafy: Methods\n";
print_methods($leafy);

echo "\nParentage:\n";
class_parentage("leafy", "Spinach");
class_parentage("leafy", "Vegetable");
?>
</pre>

Важно заметить, что в приведенном выше примере объект $leafy -- экземпляр класса Spinach, который наследует класс Vegetable, вследствие чего последний пункт скрипта выведет:

[...]
Parentage:
Object leafy does not belong to a subclass of Spinach
Object leafy belongs to class spinach a subclass of Vegetable

Содержание
call_user_method_array -- Вызываем метод объекта с массивом параметров [устаревшее]
call_user_method -- Вызывает метод указанного объекта [устаревшее]
class_exists -- Проверяет был ли объявлен класс
get_class_methods -- Возвращает массив имен методов класса
get_class_vars -- Возвращает массив свойств класса с их инициализационными значенями
get_class -- Возвращает имя класса к которому принадлежит объект
get_declared_classes -- Возвращает массив с именами объявленных классов
get_object_vars -- Возвращает ассоциативный массив свойств и значений объекта
get_parent_class -- Возвращает имя класса базового для объекта или класса
is_a -- Возвращает TRUE если объект принадлежит классу или является одним из его наследователей.
is_subclass_of -- Возвращает TRUE если объект является экземпляром класса, наследующего данный.
method_exists -- Проверяет существует ли метод в данном классе

Пред. | Начало | След.
ccvs_void | Уровень выше | call_user_method_array


call_user_method_array

(PHP 4 >= 4.0.5, PHP 5)

call_user_method_array -- Вызываем метод объекта с массивом параметров [устаревшее]

Описание

mixed call_user_method_array ( string method_name, object obj [, array paramarr] )

Внимание

Функция call_user_method_array() устарела с выходом 4.1.0: используйте функцию call_user_func_array() с array(&$obj, "method_name") в качестве параметра имени функции.

Вызывает метод method_name объекта obj, с параметрами содержащимися в массиве paramarr.

См. также: call_user_func_array() и call_user_func().

Пред. | Начало | След.
Функции работы с Классами/Объектами | Уровень выше | call_user_method


call_user_method

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

call_user_method -- Вызывает метод указанного объекта [устаревшее]

Описание

mixed call_user_method ( string method_name, object obj [, mixed parameter [, mixed ...]] )

Внимание

Функция call_user_method_array() устарела с выходом 4.1.0: используйте функцию call_user_func() с array(&$obj, "method_name") в качестве параметра имени функции.

Вызываем метод method_name объекта obj. Ниже приведен пример использования функции, в которой мы определяем класс, создаём его объект и используем call_user_method() для вызова метода print_info.

<?php
class Country {
    var $NAME;
    var $TLD;

    function Country($name, $tld)
    {
        $this->NAME = $name;
        $this->TLD = $tld;
    }

    function print_info($prestr = "")
    {
        echo $prestr . "Country: " . $this->NAME . "\n";
        echo $prestr . "Top Level Domain: " . $this->TLD . "\n";
    }
}

$cntry = new Country("Peru", "pe");

echo "* Calling the object method directly\n";
$cntry->print_info();

echo "\n* Calling the same method indirectly\n";
call_user_method("print_info", $cntry, "\t");
?>

См. также call_user_func_array() и call_user_func().

Пред. | Начало | След.
call_user_method_array | Уровень выше | class_exists


class_exists

(PHP 4, PHP 5)

class_exists -- Проверяет был ли объявлен класс

Описание

bool class_exists ( string class_name )

Функция возвращает TRUE если классclass_name был объявлен. В противном случае функция возвращает FALSE.

См. также get_declared_classes().

Пред. | Начало | След.
call_user_method | Уровень выше | get_class_methods


get_class_methods

(PHP 4, PHP 5)

get_class_methods -- Возвращает массив имен методов класса

Описание

array get_class_methods ( mixed class_name )

Функция возвращает массив имен методов определенных для класса class_name.

Замечание: Начиная с PHP 4.0.6, вы можете передать функции объект вместо указания имени класса class_name. К примеру:

<?php
$class_methods = get_class_methods($my_class); // ниже приведен полный пример
?>

Пример 1. Пример использования get_class_methods()

<?php

class myclass {
    // конструктор
    function myclass()
    {
        return(true);
    }

    // метод 1
    function myfunc1()
    {
        return(true);
    }

    // метод 2
    function myfunc2()
    {
        return(true);
    }
}

$my_object = new myclass();

$class_methods = get_class_methods(get_class($my_object));

foreach ($class_methods as $method_name) {
    echo "$method_name\n";
}

?>

выведет:

myclass
myfunc1
myfunc2

См. также get_class_vars() и get_object_vars().

Пред. | Начало | След.
class_exists | Уровень выше | get_class_vars


get_class_vars

(PHP 4, PHP 5)

get_class_vars -- Возвращает массив свойств класса с их инициализационными значенями

Описание

array get_class_vars ( string class_name )

Функция возвращает ассоциативный массив свойств класса и их значения по-умолчанию (инициализационные значения). Массив имеет формат свойство => инициализационное значение.

Замечание: До PHP 4.2.0 неинициализируемые переменные класса не будут возвращены функцией get_class_vars().

Пример 1. Пример использования get_class_vars()

<?php

class myclass {

    var $var1; // переменная не имеет начального значения...
    var $var2 = "xyz";
    var $var3 = 100;

    // конструктор
    function myclass() {
        // change some properties
        $this->var1 = "foo";
        $this->var2 = "bar";
        return true;
    }

}

$my_class = new myclass();

$class_vars = get_class_vars(get_class($my_class));

foreach ($class_vars as $name => $value) {
    echo "$name : $value\n";
}

?>

выведет:

// Вплоть до PHP 4.2.0
var2 : xyz
var3 : 100

// Начиная с PHP 4.2.0
var1 :
var2 : xyz
var3 : 100

См. также get_class_methods(), get_object_vars()

Пред. | Начало | След.
get_class_methods | Уровень выше | get_class


get_class

(PHP 4, PHP 5)

get_class -- Возвращает имя класса к которому принадлежит объект

Description

string get_class ( object obj )

Функция возвращает имя класса экземпляром которого является объект obj. Если obj не является объектом, функция вернет FALSE

Замечание: Внутренние классы PHP, объявленные в расширениях возвращаются в оригинальном регистре. В PHP 4, функция get_class() возвращает имя класса в нижнем регистре, однако в PHP 5 имя также возвращается в оригинальном регистре, аналогично классам расширений.

Пример 1. Использование get_class()

<?php

class foo {
    function foo()
    {
    // имплементация чего-либо
    }

    function name()
    {
        echo "My name is " , get_class($this) , "\n";
    }
}

// создание объекта
$bar = new foo();

// внешний вызов
echo "Its name is " , get_class($bar) , "\n";

// внутренний вызов
$bar->name();

?>

выведет:

Its name is foo
My name is foo

См. также get_parent_class(),
gettype() и
is_subclass_of().

Пред. | Начало | След.
get_class_vars | Уровень выше | get_declared_classes


get_declared_classes

(PHP 4, PHP 5)

get_declared_classes -- Возвращает массив с именами объявленных классов

Описание

array get_declared_classes ( void )

Эта функция возвращает массив имен классов, объявленных в текущей итерации.

Замечание: Начиная с PHP 4.0.1pl2, три дополнительных класса добавляются в начало списка: stdClass (объявленный в Zend/zend.c), OverloadedTestClass (объявленный в ext/standard/basic_functions.c) и Directory (объявленный в ext/standard/dir.c).

Учтите также, что в зависимости от набора библиотек, собранных с PHP, может варьироваться число дополнительных классов: дополнительные расширения могут объявлять свои классы. Это означает, что вы не сможете использовать имена их классов для своих. Список классов в расширениях находится в разделе Predefined Classes дополнения.

Пример 1. Пример использования get_declared_classes()

<?php
print_r(get_declared_classes());
?>

Пример выведет что-нибудь близкое к:

Array
(
    [0] => stdClass
    [1] => __PHP_Incomplete_Class
    [2] => Directory
)

См. также class_exists().

Пред. | Начало | След.
get_class | Уровень выше | get_object_vars


get_object_vars

(PHP 4, PHP 5)

get_object_vars -- Возвращает ассоциативный массив свойств и значений объекта

Описание

array get_object_vars ( object obj )

Функция возвращает ассоциативный массив объявленных свойств класса и их текущих значений для объекта obj.

Замечание: В версиях PHP вплоть до 4.2.0 в случае если свойству не было присвоено значения, оно не возвращалось в массиве. Начиная с PHP 4.2.0, свойству присваивается значение NULL.

Пример 1. Пример использования get_object_vars()

<?php
class Point2D {
    var $x, $y;
    var $label;

    function Point2D($x, $y)
    {
        $this->x = $x;
        $this->y = $y;
    }

    function setLabel($label)
    {
        $this->label = $label;
    }

    function getPoint()
    {
        return array("x" => $this->x,
                     "y" => $this->y,
                     "label" => $this->label);
    }
}

// "$label" объявлена, но не установлена
$p1 = new Point2D(1.233, 3.445);
print_r(get_object_vars($p1));

$p1->setLabel("point #1");
print_r(get_object_vars($p1));

?>

The printout of the above program will be:

Array
 (
     [x] => 1.233
     [y] => 3.445
     [label] =>
 )

 Array
 (
     [x] => 1.233
     [y] => 3.445
     [label] => point #1
 )

См. также get_class_methods() и get_class_vars().

Пред. | Начало | След.
get_declared_classes | Уровень выше | get_parent_class


get_parent_class

(PHP 4, PHP 5)

get_parent_class -- Возвращает имя класса базового для объекта или класса

Описание

string get_parent_class ( mixed obj )

Если obj, функция возвращает имя класса базового для класса, экземпляром которого является obj.

Если obj является строкой, функция возвращает имя класса базового для класса с этим именем. Эта возможность была добавлена в PHP 4.0.5.

Пример 1. Пример использования get_parent_class()

<?php

class dad {
    function dad()
    {
    // имплементация чего-либо
    }
}

class child extends dad {
    function child()
    {
        echo "I'm " , get_parent_class($this) , "'s son\n";
    }
}

class child2 extends dad {
    function child2()
    {
        echo "I'm " , get_parent_class('child2') , "'s son too\n";
    }
}

$foo = new child();
$bar = new child2();

?>

вывод:

I'm dad's son
I'm dad's son too

См. также get_class() и is_subclass_of().

Пред. | Начало | След.
get_object_vars | Уровень выше | is_a


is_a

(PHP 4 >= 4.2.0, PHP 5)

is_a -- Возвращает TRUE если объект принадлежит классу или является одним из его наследователей.

Описание

bool is_a ( object object, string class_name )

Функция возвращает TRUE если объект принадлежит классу или является одним из его наследователей. В противном случае возвращается FALSE

Пример 1. Пример использования is_a()

<?php
// объявление класса
class WidgetFactory
{
  var $oink = 'moo';
}

// создание нового объекта
$WF = new WidgetFactory();

if (is_a($WF, 'WidgetFactory')) {
  echo "yes, \$WF is still a WidgetFactory\n";
}
?>

См. также get_class(),
get_parent_class() и
is_subclass_of().

Пред. | Начало | След.
get_parent_class | Уровень выше | is_subclass_of


is_subclass_of

(PHP 4, PHP 5)

is_subclass_of -- Возвращает TRUE если объект является экземпляром класса, наследующего данный.

Описание

bool is_subclass_of ( object object, string class_name )

Возвращает TRUE если объект object является экземпляром класса, наследующего class_name. В противном случае возвращается FALSE

См. также get_class(),
get_parent_class() и
is_a().

Пред. | Начало | След.
is_a | Уровень выше | method_exists


method_exists

(PHP 4, PHP 5)

method_exists -- Проверяет существует ли метод в данном классе

Описание

bool method_exists ( object object, string method_name )

Функция возвращает TRUE если метод method_name был объявлен для object. В противном случае функция возвращает FALSE.

Пример 1. Пример использования method_exists()

<?php
$directory = new Directory('.');
var_dump(method_exists($directory,'read'));
?>

выведет:

bool(true)

Пред. | Начало | След.
is_subclass_of | Уровень выше | Classkit Functions


COM and .Net (Windows)

Руководство по PHP
Пред. След.

XV. COM and .Net (Windows)

Введение

COM is an acronym for Component Object Model; it is an object orientated layer (and associated services) on top of DCE RPC (an open standard) and defines a common calling convention that enables code written in any language to call and interoperate with code written in any other language (provided those languages are COM aware). Not only can the code be written in any language, but it need not even be part of the same executable; the code can be loaded from a DLL, be found in another process running on the same machine, or, with DCOM (Distributed COM), be found in another process on a remote machine, all without your code even needing to know where a component resides.

There is a subset of COM known as OLE Automation which comprises a set of COM interfaces that allow loose binding to COM objects, so that they can be introspected and called at run-time without compile-time knowledge of how the object works. The PHP COM extension utilizes the OLE Automation interfaces to allow you to create and call compatible objects from your scripts. Technically speaking, this should really be called the "OLE Automation Extension for PHP", since not all COM objects are OLE compatible.

Now, why would or should you use COM? COM is one of the main ways to glue applications and components together on the Windows platform; using COM you can launch Microsoft Word, fill in a document template and save the result as a Word document and send it to a visitor of your web site. You can also use COM to perform administrative tasks for your network and to configure your IIS; these are just the most common uses; you can do much more with COM.

Starting with PHP 5, this extension (and this documentation) was rewritten from scratch and much of the old confusing and bogus cruft has be removed. Additionally, we support the instantiation and creation of .Net assemblies using the COM interoperability layer provided by Microsoft.

Please read this article for an overview of the changes in this extension in PHP 5.

Требования

COM functions are only available for the Windows version of PHP.

.Net support requires PHP 5 and the .Net runtime.

Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.

You are responsible for installing support for the various COM objects that you intend to use (such as MS Word); we don't and can't bundle all of those with PHP.

For Each

Starting with PHP 5, you may use PHP's own Разд. foreach в Гл. 16 statement to iterate over the contents of a standard COM/OLE IEnumVariant. In laymans terms, this means that you can use foreach in places where you would have used For Each in VB/ASP code.

Пример 1. For Each in ASP

<%
Set domainObject = GetObject("WinNT://Domain")
For Each obj in domainObject
  Response.Write obj.Name & "<br />"
Next
%>

Пример 2. while() ... Next() in PHP 4

<?php
$domainObject = new COM("WinNT://Domain");
while ($obj = $domainObject->Next()) {
   echo $obj->Name . "<br />";
}
?>

Пример 3. foreach in PHP 5

<?php
$domainObject = new COM("WinNT://Domain");
foreach ($domainObject as $obj) {
   echo $obj->Name . "<br />";
}
?>

Arrays and Array-style COM properties

Many COM objects expose their properties as arrays, or using array-style access. In PHP 4, you may use PHP array syntax to read/write such a property, but only a single dimension is allowed. If you want to read a multi-dimensional property, you could instead make the property access into a function call, with each parameter representing each dimension of the array access, but there is no way to write to such a property.

PHP 5 introduces the following new features to make your life easier:

  • Access multi-dimensional arrays, or COM properties that require multiple parameters using PHP array syntax. You can also write or set properties using this technique.

  • Iterate SafeArrays ("true" arrays) using the Разд. foreach в Гл. 16 control structure. This works because SafeArrays include information about their size. If an array-style property implements IEnumVariant then you can also use foreach for that property too; take a look at Разд. For Each for more information on this topic.

Exceptions (PHP 5)

This extension will throw instances of the class com_exception whenever there is a potentially fatal error reported by COM. All COM exceptions have a well-defined code property that corresponds to the HRESULT return value from the various COM operations. You may use this code to make programmatic decisions on how to handle the exception.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Com configuration options

Name | Default | Changeable | Changelog
com.allow_dcom | "0" | PHP_INI_SYSTEM | Available since PHP 4.0.5.
com.autoregister_typelib | "0" | PHP_INI_ALL | PHP_INI_SYSTEM in PHP 4. Available since PHP 4.1.0.
com.autoregister_verbose | "0" | PHP_INI_ALL | PHP_INI_SYSTEM in PHP 4. Available since PHP 4.1.0.
com.autoregister_casesensitive | "1" | PHP_INI_ALL | PHP_INI_SYSTEM in PHP 4. Available since PHP 4.1.0.
com.code_page | "" | PHP_INI_ALL | Available since PHP 5.0.0.
com.typelib_file | "" | PHP_INI_SYSTEM | Available since PHP 4.0.5.
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

com.allow_dcom

When this is turned on, PHP will be allowed to operate as a D-COM (Distributed COM) client and will allow the PHP script to instantiate COM objects on a remote server.

com.autoregister_typelib

When this is turned on, PHP will attempt to register constants from the typelibrary of objects that it instantiates, if those objects implement the interfaces required to obtain that information. The case sensitivity of the constants it registers is controlled by the com.autoregister_casesensitive configuration directive.

com.autoregister_verbose

When this is turned on, any problems with loading a typelibrary during object instantiation will be reported using the PHP error mechanism. The default is off, which does not emit any indication if there was an error finding or loading the type library.

com.autoregister_casesensitive

When this is turned on (the default), constants found in auto-loaded type libraries will be registered case sensitively. See com_load_typelib() for more details.

com.code_page

It controls the default character set code-page to use when passing strings to and from COM objects. If set to an empty string, PHP will assume that you want CP_ACP, which is the default system ANSI code page.

If the text in your scripts is encoded using a different encoding/character set by default, setting this directive will save you from having to pass the code page as a parameter to the COM class constructor. Please note that by using this directive (as with any PHP configuration directive), your PHP script becomes less portable; you should use the COM constructor parameter whenever possible.

Замечание: This configuration directive was introduced with PHP 5.

com.typelib_file

When set, this should hold the path to a file that contains a list of typelibraries that should be loaded on startup. Each line of the file will be treated as the type library name and loaded as though you had called com_load_typelib(). The constants will be registered persistently, so that the library only needs to be loaded once. If a type library name ends with the string #cis or #case_insensitive, then the constants from that library will be registered case insensitively.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

CLSCTX_INPROC_SERVER (integer)

CLSCTX_INPROC_HANDLER (integer)

CLSCTX_LOCAL_SERVER (integer)

CLSCTX_REMOTE_SERVER (integer)

CLSCTX_SERVER (integer)

CLSCTX_ALL (integer)

VT_NULL (integer)

VT_EMPTY (integer)

VT_UI1 (integer)

VT_I2 (integer)

VT_I4 (integer)

VT_R4 (integer)

VT_R8 (integer)

VT_BOOL (integer)

VT_ERROR (integer)

VT_CY (integer)

VT_DATE (integer)

VT_BSTR (integer)

VT_DECIMAL (integer)

VT_UNKNOWN (integer)

VT_DISPATCH (integer)

VT_VARIANT (integer)

VT_I1 (integer)

VT_UI2 (integer)

VT_UI4 (integer)

VT_INT (integer)

VT_UINT (integer)

VT_ARRAY (integer)

VT_BYREF (integer)

CP_ACP (integer)

CP_MACCP (integer)

CP_OEMCP (integer)

CP_UTF7 (integer)

CP_UTF8 (integer)

CP_SYMBOL (integer)

CP_THREAD_ACP (integer)

VARCMP_LT (integer)

VARCMP_EQ (integer)

VARCMP_GT (integer)

VARCMP_NULL (integer)

NORM_IGNORECASE (integer)

NORM_IGNORENONSPACE (integer)

NORM_IGNORESYMBOLS (integer)

NORM_IGNOREWIDTH (integer)

NORM_IGNOREKANATYPE (integer)

NORM_IGNOREKASHIDA (integer)

DISP_E_DIVBYZERO (integer)

DISP_E_OVERFLOW (integer)

MK_E_UNAVAILABLE (integer)

Смотрите также

For further information on COM read the COM specification or perhaps take a look at Don Box's Yet Another COM Library (YACL). You might find some additional useful information in our FAQ for Гл. 56. If you're thinking of using MS Office applications on the server side, you should read the information here: Considerations for Server-Side Automation of Office.

Содержание
COM -- COM class
DOTNET -- DOTNET class
VARIANT -- VARIANT class
com_addref -- Increases the components reference counter [deprecated]
com_create_guid -- Generate a globally unique identifier (GUID)
com_event_sink -- Connect events from a COM object to a PHP object
com_get_active_object -- Returns a handle to an already running instance of a COM object
com_get -- Gets the value of a COM Component's property [deprecated]
com_invoke -- Calls a COM component's method [deprecated]
com_isenum -- Indicates if a COM object has an IEnumVariant interface for iteration [deprecated]
com_load_typelib -- Loads a Typelib
com_load -- Creates a new reference to a COM component [deprecated]
com_message_pump -- Process COM messages, sleeping for up to timeoutms milliseconds
com_print_typeinfo -- Print out a PHP class definition for a dispatchable interface
com_propget -- Alias of com_get()
com_propput -- Alias of com_set()
com_propset -- Alias of com_set()
com_release -- Decreases the components reference counter [deprecated]
com_set -- Assigns a value to a COM component's property
variant_abs -- Returns the absolute value of a variant
variant_add -- "Adds" two variant values together and returns the result
variant_and -- performs a bitwise AND operation between two variants and returns the result
variant_cast -- Convert a variant into a new variant object of another type
variant_cat -- concatenates two variant values together and returns the result
variant_cmp -- Compares two variants
variant_date_from_timestamp -- Returns a variant date representation of a unix timestamp
variant_date_to_timestamp -- Converts a variant date/time value to unix timestamp
variant_div -- Returns the result from dividing two variants
variant_eqv -- Performs a bitwise equivalence on two variants
variant_fix -- Returns the integer portion ? of a variant
variant_get_type -- Returns the type of a variant object
variant_idiv -- Converts variants to integers and then returns the result from dividing them
variant_imp -- Performs a bitwise implication on two variants
variant_int -- Returns the integer portion of a variant
variant_mod -- Divides two variants and returns only the remainder
variant_mul -- multiplies the values of the two variants and returns the result
variant_neg -- Performs logical negation on a variant
variant_not -- Performs bitwise not negation on a variant
variant_or -- Performs a logical disjunction on two variants
variant_pow -- Returns the result of performing the power function with two variants
variant_round -- Rounds a variant to the specified number of decimal places
variant_set_type -- Convert a variant into another type "in-place"
variant_set -- Assigns a new value for a variant object
variant_sub -- subtracts the value of the right variant from the left variant value and returns the result
variant_xor -- Performs a logical exclusion on two variants

Пред. | Начало | След.
cpdf_translate | Уровень выше | COM


COM

(no version information, might be only in CVS)

COM -- COM class

Синтаксис

$obj = new COM("Application.ID")

Description

The COM class allows you to instantiate an OLE compatible COM object and call its methods and access its properties.

Methods

com COM::COM ( string module_name [, mixed server_name [, int codepage [, string typelib]]] )

COM class constructor. The parameters have the following meanings:

module_name

Can be a ProgID, Class ID or Moniker that names the component to load.

A ProgID is typically the application or DLL name, followed by a period, followed by the object name. e.g: Word.Application.

A Class ID is the UUID that uniquely identifies a given class.

A Moniker is a special form of naming, similar in concept to a URL scheme, that identifies a resource and specifies how it should be loaded. As an example, you could load up Word and get an object representing a word document by specifying the full path to the word document as the module name, or you can use LDAP: as a moniker to use the ADSI interface to LDAP.

server_name

The name of the DCOM server on which the component should be loaded and run. If NULL, the object is run using the default for the application. The default is typically to run it on the local machine, although the administrator might have configured the application to launch on a different machine.

If you specify a non-NULL value for server, PHP will refuse to load the object unless the com.allow_dcom configuration option is set to TRUE.

If server_name is an array, it should contain the following elements (case sensitive!). Note that they are all optional (although you need to specify both Username and Password together); if you omit the Server setting, the default server will be used (as mentioned above), and the instantiation of the object will not be affected by the com.allow_dcom directive.

Таблица 1. DCOM server name

server_name key | type | description
Server | string | The name of the server.
Username | string | The username to connect as.
Password | string | The password for Username.
Flags | integer | One or more of the following constants, logically OR'd together: CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER, CLSCTX_LOCAL_SERVER, CLSCTX_REMOTE_SERVER, CLSCTX_SERVER and CLSCTX_ALL. The default value if not specified here is CLSCTX_SERVER if you also omit Server, or CLSCTX_REMOTE_SERVER if you do specify a server. You should consult the Microsoft documentation for CoCreateInstance for more information on the meaning of these constants; you will typically never have to use them.

codepage

Specifies the codepage that is used to convert strings to unicode-strings and vice versa. The conversion is applied whenever a PHP string is passed as a parameter or returned from a method of this COM object. The code page is sticky in PHP 5, which means that it will propagate to objects and variants returned from the object.

Possible values are CP_ACP (use system default ANSI code page - the default if this parameter is omitted), CP_MACCP, CP_OEMCP, CP_SYMBOL, CP_THREAD_ACP (use codepage/locale set for the current executing thread), CP_UTF7 and CP_UTF8. You may also use the number for a given codepage; consult the Microsoft documentation for more details on codepages and their numeric values.

Overloaded Methods

The returned object is an overloaded object, which means that PHP does not see any fixed methods as it does with regular classes; instead, any property or method accesses are passed through to COM.

Starting with PHP 5, PHP will automatically detect methods that accept parameters by reference, and will automatically convert regular PHP variables to a form that can be passed by reference. This means that you can call the method very naturally; you needn't go to any extra effort in your code.

In PHP 4, to pass parameters by reference you need to create an instance of the VARIANT class to wrap the byref parameters.

Pseudo Methods

In PHP versions prior to 5, a number of not very pleasant hacks meant that the following method names were not passed through to COM and were handled directly by PHP. PHP 5 eliminates these things; read the details below to determine how to fix your scripts. These magic method names are case insensitive.

void COM::AddRef ( void )

Artificially adds a reference count to the COM object.

Внимание

You should never need to use this method. It exists as a logical complement to the Release() method below.

void COM::Release ( void )

Artificially removes a reference count from the COM object.

Внимание

You should never need to use this method. Its existence in PHP is a bug designed to work around a bug that keeps COM objects running longer than they should.

Pseudo Methods for Iterating

These pseudo methods are only available if com_isenum() returns TRUE, in which case, they hide any methods with the same names that might otherwise be provided by the COM object. These methods have all been eliminated in PHP 5, and you should use Разд. For Each в Ссылка XV, COM and .Net (Windows) instead.

variant COM::All ( void )

Returns a variant representing a SafeArray that has 10 elements; each element will be an empty/null variant. This function was supposed to return an array containing all the elements from the iterator, but was never completed. Do not use.

variant COM::Next ( void )

Returns a variant representing the next element available from the iterator, or FALSE when there are no more elements.

variant COM::Prev ( void )

Returns a variant representing the previous element available from the iterator, or FALSE when there are no more elements.

void COM::Reset ( void )

Rewinds the iterator back to the start.

COM examples

Пример 1. COM example (1)

<?php
// starting word
$word = new COM("word.application") or die("Unable to instantiate Word");
echo "Loaded Word, version {$word->Version}\n";

//bring it to front
$word->Visible = 1;

//open an empty document
$word->Documents->Add();

//do some weird stuff
$word->Selection->TypeText("This is a test...");
$word->Documents[1]->SaveAs("Useless test.doc");

//closing word
$word->Quit();

//free the object
$word = null;
?>

Пример 2. COM example (2)

<?php

$conn = new COM("ADODB.Connection") or die("Cannot start ADO");
$conn->Open("Provider=SQLOLEDB; Data Source=localhost;
Initial Catalog=database; User ID=user; Password=password");

$rs = $conn->Execute("SELECT * FROM sometable");    // Recordset

$num_columns = $rs->Fields->Count();
echo $num_columns . "\n";

for ($i=0; $i < $num_columns; $i++) {
    $fld[$i] = $rs->Fields($i);
}

$rowcount = 0;
while (!$rs->EOF) {
    for ($i=0; $i < $num_columns; $i++) {
        echo $fld[$i]->value . "\t";
    }
    echo "\n";
    $rowcount++;            // increments rowcount
    $rs->MoveNext();
}

$rs->Close();
$conn->Close();

$rs = null;
$conn = null;

?>

Пред. | Начало | След.
COM and .Net (Windows) | Уровень выше | DOTNET


DOTNET

(no version information, might be only in CVS)

DOTNET -- DOTNET class

Синтаксис

$obj = new DOTNET("assembly", "classname")

Description

The DOTNET class allows you to instantiate a class from a .Net assembly and call its methods and access its properties.

Methods

string DOTNET::DOTNET ( string assembly_name, string class_name [, int codepage] )

DOTNET class constructor. assembly_name specifies which assembly should be loaded, and class_name specifices which class in that assembly to instantiate. You may optionally specify a codepage to use for unicode string transformations; see the COM class for more details on code pages.

The returned object is an overloaded object, which means that PHP does not see any fixed methods as it does with regular classes; instead, any property or method accesses are passed through to COM and from there to DOTNET. In other words, the .Net object is mapped through the COM interoperability layer provided by the .Net runtime.

Once you have created a DOTNET object, PHP treats it identically to any other COM object; all the same rules apply.

Пример 1. DOTNET example

<?php
  $stack = new DOTNET("mscorlib", "System.Collections.Stack");
  $stack->Push(".Net");
  $stack->Push("Hello ");
  echo $stack->Pop() . $stack->Pop();
?>

Замечание: You need to install the .Net runtime on your web server to take advantage of this feature.

Пред. | Начало | След.
COM | Уровень выше | VARIANT


VARIANT

(no version information, might be only in CVS)

VARIANT -- VARIANT class

Синтаксис

$vVar = new VARIANT($var)

Description

The VARIANT is COM's equivalent of the PHP zval; it is a structure that can contain a value with a range of different possible types. The VARIANT class provided by the COM extension allows you to have more control over the way that PHP passes values to and from COM.

Methods

object VARIANT::VARIANT ( [mixed value [, int type [, int codepage]]] )

VARIANT class constructor. Parameters:

value

initial value. if omitted, or set to NULL an VT_EMPTY object is created.

type

specifies the content type of the VARIANT object. Possible values are one of the VT_XXX Разд. Предопределенные константы в Ссылка XV, COM and .Net (Windows).

In PHP versions prior to PHP 5, you could force PHP to pass a variant object by reference by OR'ing VT_BYREF with the type. In PHP 5, this hack is not supported; instead, PHP 5 can detect parameters passed by reference automatically; they do not even need to be passed as VARIANT objects.

Consult the MSDN library for additional information on the VARIANT type.

codepage

specifies the codepage that is used to convert strings to unicode. See the parameter of the same name in the COM class for more information.

PHP versions prior to PHP 5 define a number of (undocumented) virtual properties for instances of the VARIANT class; these properties have all been removed in PHP 5 in favour of its more natural syntax; these differences are best highlighted by example:

Пример 1. Variant example, PHP 4.x style

<?php
$v = new VARIANT(42);
print "The type is " . $v->type . "<br/>";
print "The value is " . $v->value . "<br/>";
?>

Пример 2. Variant example, PHP 5 style

<?php
$v = new VARIANT(42);
print "The type is " . variant_get_type($v) . "<br/>";
print "The value is " . $v . "<br/>";
?>

The reason for the change is that, internally, the COM extension sees VARIANT, COM and DOTNET classes as the same thing, and the design philosophy for these classes is that all property and member accesses are passed through to COM with no interference. The new syntax is more natural and less effort, and most of the removed virtual properties didn't make any sense in a PHP context in any case.

Замечание: PHP 5 takes a much simpler approach to handling VARIANTs; when returning a value or fetching a variant property, the variant is converted to a PHP value only when there is a direct mapping between the types that would not result in a loss of information. In all other cases, the result is returned as an instance of the VARIANT class. You can force PHP to convert or evaluate the variant as a PHP native type by using a casting operator explicitly, or implicitly casting to a string by print()ing it. You may use the wide range of variant functions to perform arithmetic operations on variants without forcing a conversion or risking a loss of data.

See also variant_get_type().

Пред. | Начало | След.
DOTNET | Уровень выше | com_addref


com_addref

(PHP 4 >= 4.1.0)

com_addref -- Increases the components reference counter [deprecated]

Description

void com_addref ( void )

Increases the components reference counter.

Внимание

You should never need to use this function.

Замечание: This function has gone away in PHP 5.

Пред. | Начало | След.
VARIANT | Уровень выше | com_create_guid


com_create_guid

(PHP 5)

com_create_guid -- Generate a globally unique identifier (GUID)

Description

string com_create_guid ( void )

Generates a Globally Unique Identifier (GUID) and returns it as a string. A GUID is generated in the same way as DCE UUID's, except that the Microsoft convention is to enclose a GUID in curly braces.

See also uuid_create() in the PECL uuid extension.

Пред. | Начало | След.
com_addref | Уровень выше | com_event_sink


com_event_sink

(PHP 4 >= 4.2.3, PHP 5)

com_event_sink -- Connect events from a COM object to a PHP object

Description

bool com_event_sink ( variant comobject, object sinkobject [, mixed sinkinterface] )

Instructs COM to sink events generated by comobject into the PHP object sinkobject. PHP will attempt to use the default dispinterface type specified by the typelibrary associated with comobject, but you may override this choice by setting sinkinterface to the name of the dispinterface that you want to use.

sinkobject should be an instance of a class with methods named after those of the desired dispinterface; you may use com_print_typeinfo() to help generate a template class for this purpose.

Be careful how you use this feature; if you are doing something similar to the example below, then it doesn't really make sense to run it in a web server context.

Пример 1. COM event sink example

<?php
class IEEventSinker {
  var $terminated = false;

  function ProgressChange($progress, $progressmax) {
    echo "Download progress: $progress / $progressmax\n";
  }

  function DocumentComplete(&$dom, $url) {
    echo "Document $url complete\n";
  }

  function OnQuit() {
    echo "Quit!\n";
    $this->terminated = true;
  }
}
$ie = new COM("InternetExplorer.Application");
// note that you don't need the & for PHP 5!
$sink =& new IEEventSinker();
com_event_sink($ie, $sink, "DWebBrowserEvents2");
$ie->Visible = true;
$ie->Navigate("http://www.php.net");
while(!$sink->terminated) {
  com_message_pump(4000);
}
$ie = null;
?>

See also com_print_typeinfo(), com_message_pump().

Пред. | Начало | След.
com_create_guid | Уровень выше | com_get_active_object


com_get_active_object

(PHP 5)

com_get_active_object -- Returns a handle to an already running instance of a COM object

Description

variant com_get_active_object ( string progid [, int code_page] )

com_get_active_object() is similar to creating a new instance of a COM object, except that it will only return an object to your script if the object is already running. OLE applications use something known as the Running Object Table to allow well-known applications to be launched only once; this function exposes the COM library function GetActiveObject() to get a handle on a running instance.

progid must be either the ProgID or CLSID for the object that you want to access (for example Word.Application). code_page acts in precisely the same way that it does for the COM class.

If the requested object is running, it will be returned to your script just like any other COM object. Otherwise a com_exception will be raised. There are a variety of reasons why this function might fail, the most common being that the object is not already running. In that situation, the exception error code will be MK_E_UNAVAILABLE; you can use the getCode method of the exception object to check the exception code.

Внимание

Using com_get_active_object() in a web server context is not always a smart idea. Most COM/OLE applications are not designed to handle more than one client concurrently, even (or especially!) Microsoft Office. You should read Considerations for Server-Side Automation of Office for more information on the general issues involved.

Пред. | Начало | След.
com_event_sink | Уровень выше | com_get


com_get

(PHP 3 >= 3.0.3, PHP 4)

com_get -- Gets the value of a COM Component's property [deprecated]

Description

mixed com_get ( resource com_object, string property )

Returns the value of the property of the COM component referenced by com_object. Returns FALSE on error.

Пример 1. Don't use com_get(), use OO syntax instead

<?php
// do this
$var = $obj->property;
// instead of this:
$var = com_get($obj, 'property');
?>

Замечание: This function does not exist in PHP 5; instead, you should use the regular and more natural OO syntax to access properties or call methods.

Пред. | Начало | След.
com_get_active_object | Уровень выше | com_invoke


com_invoke

(PHP 4)

com_invoke -- Calls a COM component's method [deprecated]

Description

mixed com_invoke ( resource com_object, string function_name [, mixed function_parameters] )

com_invoke() invokes the method named function_name of the COM component referenced by com_object. com_invoke() returns FALSE on error, returns the function_name's return value on success. All the extra parameters function_parameters are passed to the method function_name.

Пример 1. Don't use com_invoke(), use OO syntax instead

<?php
// do this
$val = $obj->method($one, $two);
// instead of this:
$val = com_invoke($obj, 'method', $one, $two);
?>

Замечание: This function does not exist in PHP 5; instead, you should use the regular and more natural OO syntax to access properties or call methods.

Пред. | Начало | След.
com_get | Уровень выше | com_isenum


com_isenum

(PHP 4 >= 4.1.0)

com_isenum -- Indicates if a COM object has an IEnumVariant interface for iteration [deprecated]

Description

bool com_isenum ( variant com_module )

Checks to see if a COM object can be enumerated using the Next() method hack. Returns TRUE if it can, FALSE if it cannot. See COM class for more details on these methods.

Замечание: This function does not exist in PHP 5; use the more natural Разд. foreach в Гл. 16 statement to iterate over the contents of COM objects. See Разд. For Each в Ссылка XV, COM and .Net (Windows) for more details.

Пред. | Начало | След.
com_invoke | Уровень выше | com_load_typelib


com_load_typelib

(PHP 4 >= 4.1.0, PHP 5)

com_load_typelib -- Loads a Typelib

Description

bool com_load_typelib ( string typelib_name [, bool case_insensitive] )

Loads a type-library and registers its constants in the engine, as though they were defined using define(). The case_insensitive behaves in the same way as the parameter with the same name in the define() function.

typelib_name can be one of the following:

  • The filename of a .tlb file or the executable module that contains the type library.

  • The type library GUID, followed by its version number, for example {00000200-0000-0010-8000-00AA006D2EA4},2,0.

  • The type library name, e.g. Microsoft OLE DB ActiveX Data Objects 1.0 Library.

PHP will attempt to resolve the type library in this order, as the process gets more and more expensive as you progress down the list; searching for the type library by name is handled by physically enumerating the registry until we find a match.

Note that it is much more efficient to use the com.typelib_file configuration setting to pre-load and register the constants, although not so flexible.

If you have turned on com.autoregister_typelib , then PHP will attempt to automatically register the constants associated with a COM object when you instantiate it. This depends on the interfaces provided by the COM object itself, and may not always be possible.

Пред. | Начало | След.
com_isenum | Уровень выше | com_load


com_load

(PHP 4)

com_load -- Creates a new reference to a COM component [deprecated]

Description

resource com_load ( string module_name [, string server_name [, int codepage]] )

Equivalent to using the new operator to create an instance of the COM class. You should do that instead of calling this function.

Пример 1. Don't use com_load(), use OO syntax instead

<?php
// do this
$obj = new COM($module);
// instead of this:
$obj = com_load($module);
?>

Замечание: This function does not exist in PHP 5; use the COM class instead.

Пред. | Начало | След.
com_load_typelib | Уровень выше | com_message_pump


com_message_pump

(PHP 4 >= 4.2.3, PHP 5)

com_message_pump -- Process COM messages, sleeping for up to timeoutms milliseconds

Description

bool com_message_pump ( [int timeoutms] )

This function will sleep for up to timeoutms milliseconds, or until a message arrives in the queue. If a message or messages arrives before the timeout, they will be dispatched, and the function will return TRUE. If the timeout occurs and no messages were processed, the return value will be FALSE. If you do not specify a value for timeoutms, then 0 will be assumed. A 0 value means that no waiting will be performed; if there are messages pending they will be dispatched as before; if there are no messages pending, the function will return FALSE immediately without sleeping.

The purpose of this function is to route COM calls between apartments and handle various synchronization issues. This allows your script to wait efficiently for events to be triggered, while still handling other events or running other code in the background. You should use it in a loop, as demonstrated by the example in the com_event_sink() function, until you are finished using event bound COM objects.

Пред. | Начало | След.
com_load | Уровень выше | com_print_typeinfo


com_print_typeinfo

(PHP 4 >= 4.2.3, PHP 5)

com_print_typeinfo -- Print out a PHP class definition for a dispatchable interface

Description

bool com_print_typeinfo ( object comobject [, string dispinterface [, bool wantsink]] )

The purpose of this function is to help generate a skeleton class for use as an event sink. You may also use it to generate a dump of any COM object, provided that it supports enough of the introspection interfaces, and that you know the name of the interface you want to display.

comobject should be either an instance of a COM object, or be the name of a typelibrary (which will be resolved according to the rules set out in com_load_typelib()). dispinterface is the name of an IDispatch descendant interface that you want to display. If wantsink is TRUE, the corresponding sink interface will be displayed instead.

See also com_event_sink(), com_load_typelib().

Пред. | Начало | След.
com_message_pump | Уровень выше | com_propget


com_propget

(PHP 3 >= 3.0.3, PHP 4)

com_propget -- Alias of com_get()

Описание

This function is an alias of: com_get().

Замечание: This function does not exist in PHP 5; instead, you should use the regular and more natural OO syntax to access properties or call methods.

Пред. | Начало | След.
com_print_typeinfo | Уровень выше | com_propput


com_propput

(PHP 3 >= 3.0.3, PHP 4)

com_propput -- Alias of com_set()

Описание

This function is an alias of: com_set().

Замечание: This function does not exist in PHP 5; instead, you should use the regular and more natural OO syntax to access properties or call methods.

Пред. | Начало | След.
com_propget | Уровень выше | com_propset


com_propset

(PHP 3 >= 3.0.3, PHP 4)

com_propset -- Alias of com_set()

Описание

This function is an alias of: com_set().

Замечание: This function does not exist in PHP 5; instead, you should use the regular and more natural OO syntax to access properties or call methods.

Пред. | Начало | След.
com_propput | Уровень выше | com_release


com_release

(PHP 4 >= 4.1.0)

com_release -- Decreases the components reference counter [deprecated]

Description

void com_release ( void )

Decreases the components reference counter.

Внимание

You should never need to use this function.

Замечание: This function has gone away in PHP 5.

Пред. | Начало | След.
com_propset | Уровень выше | com_set


com_set

(PHP 3 >= 3.0.3, PHP 4)

com_set -- Assigns a value to a COM component's property

Description

void com_set ( resource com_object, string property, mixed value )

Sets the value of the property of the COM component referenced by com_object. Returns the newly set value if succeeded, FALSE on error.

Пример 1. Don't use com_set(), use OO syntax instead

<?php
// do this
$obj->property = $value;
// instead of this:
com_set($obj, 'property', $value);
?>

Замечание: This function does not exist in PHP 5; instead, you should use the regular and more natural OO syntax to access properties or call methods.

Пред. | Начало | След.
com_release | Уровень выше | variant_abs


variant_abs

(PHP 5)

variant_abs -- Returns the absolute value of a variant

Description

mixed variant_abs ( mixed val )

Returns the absolute value of val.

See also abs().

Замечание: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.

The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

Пред. | Начало | След.
com_set | Уровень выше | variant_add


variant_add

(PHP 5)

variant_add -- "Adds" two variant values together and returns the result

Description

mixed variant_add ( mixed left, mixed right )

Adds left to right using the following rules (taken from the MSDN library), which correspond to those of Visual Basic:

Таблица 1. Variant Addition Rules

If | Then
Both expressions are of the string type | Concatenation
One expression is a string type and the other a character | Addition
One expression is numeric and the other is a string | Addition
Both expressions are numeric | Addition
Either expression is NULL | NULL is returned
Both expressions are empty | Integer subtype is returned

See also variant_sub().

Замечание: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.

The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

Пред. | Начало | След.
variant_abs | Уровень выше | variant_and


variant_and

(PHP 5)

variant_and -- performs a bitwise AND operation between two variants and returns the result

Description

mixed variant_and ( mixed left, mixed right )

Performs a bitwise AND operation, according to the following truth table; note that this is slightly different from a regular AND operation.

Таблица 1. Variant AND Rules

If left is | If right is | then the result is
TRUE | TRUE | TRUE
TRUE | FALSE | FALSE
TRUE | NULL | NULL
FALSE | TRUE | FALSE
FALSE | FALSE | FALSE
FALSE | NULL | FALSE
NULL | TRUE | NULL
NULL | FALSE | FALSE
NULL | NULL | NULL

See also variant_or().

Замечание: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.

The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

Пред. | Начало | След.
variant_add | Уровень выше | variant_cast


variant_cast

(PHP 5)

variant_cast -- Convert a variant into a new variant object of another type

Description

variant variant_cast ( variant variant, int type )

This function makes a copy of variant and then performs a variant cast operation to force the copy to have the type given by type. type should be one of the VT_XXX constants.

This function wraps VariantChangeType() in the COM library; consult MSDN for more information.

See also variant_set_type().

Пред. | Начало | След.
variant_and | Уровень выше | variant_cat


variant_cat

(PHP 5)

variant_cat -- concatenates two variant values together and returns the result

Description

mixed variant_cat ( mixed left, mixed right )

Concatenates left with right and returns the result.

See also Разд. Строковые операторы в Гл. 15 for the string concatenation operator; this function is notionally equivalent to $left . $right.

Замечание: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.

The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

Пред. | Начало | След.
variant_cast | Уровень выше | variant_cmp


variant_cmp

(PHP 5)

variant_cmp -- Compares two variants

Description

int variant_cmp ( mixed left, mixed right [, int lcid [, int flags]] )

Compares left with right and returns one of the following values:

Таблица 1. Variant Comparision Results

value | meaning
VARCMP_LT | left is less than right
VARCMP_EQ | left is equal to right
VARCMP_GT | left is greater than right
VARCMP_NULL | Either left, right or both are NULL

This function will only compare scalar values, not arrays or variant records.

lcid is a valid Locale Identifier to use when comparing strings (this affects string collation). flags can be one or more of the following values OR'd together, and affects string comparisons:

Таблица 2. Variant Comparision Flags

value | meaning
NORM_IGNORECASE | Compare case insensitively
NORM_IGNORENONSPACE | Ignore nonspacing characters
NORM_IGNORESYMBOLS | Ignore symbols
NORM_IGNOREWIDTH | Ignore string width
NORM_IGNOREKANATYPE | Ignore Kana type
NORM_IGNOREKASHIDA | Ignore Arabic kashida characters

Замечание: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.

The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

Пред. | Начало | След.
variant_cat | Уровень выше | variant_date_from_timestamp


variant_date_from_timestamp

(PHP 5)

variant_date_from_timestamp -- Returns a variant date representation of a unix timestamp

Description

variant variant_date_from_timestamp ( int timestamp )

Converts timestamp from a unix timestamp value into a variant of type VT_DATE. This allows easier interopability between the unix-ish parts of PHP and COM.

See also variant_date_to_timestamp() for the inverse of this operation, mktime(), time().

Пред. | Начало | След.
variant_cmp | Уровень выше | variant_date_to_timestamp


variant_date_to_timestamp

(PHP 5)

variant_date_to_timestamp -- Converts a variant date/time value to unix timestamp

Description

int variant_date_to_timestamp ( variant variant )

Converts variant from a VT_DATE (or similar) value into a unix timestamp. This allows easier interopability between the unix-ish parts of PHP and COM.

See also variant_date_from_timestamp() for the inverse of this operation, date(), strftime().

Пред. | Начало | След.
variant_date_from_timestamp | Уровень выше | variant_div


variant_div

(PHP 5)

variant_div -- Returns the result from dividing two variants

Description

mixed variant_div ( mixed left, mixed right )

Divides left by right and returns the result, subject to the following rules:

Таблица 1. Variant Division Rules

If | Then
Both expressions are of the string, date, character, boolean type | Double is returned
One expression is a string type and the other a character | Division and a double is returned
One expression is numeric and the other is a string | Division and a double is returned.
Both expressions are numeric | Division and a double is returned
Either expression is NULL | NULL is returned
right is empty and left is anything but empty | A com_exception with code DISP_E_DIVBYZERO is thrown
left is empty and right is anything but empty. | 0 as type double is returned
Both expressions are empty | A com_exception with code DISP_E_OVERFLOW is thrown

Замечание: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.

The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

Пред. | Начало | След.
variant_date_to_timestamp | Уровень выше | variant_eqv


variant_eqv

(PHP 5)

variant_eqv -- Performs a bitwise equivalence on two variants

Description

mixed variant_eqv ( mixed left, mixed right )

If each bit in left is equal to the corresponding bit in right then TRUE is returned, otherwise FALSE is returned.

Замечание: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.

The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

Пред. | Начало | След.
variant_div | Уровень выше | variant_fix


variant_fix

(PHP 5)

variant_fix -- Returns the integer portion ? of a variant

Description

mixed variant_fix ( mixed variant )

If variant is negative, then the first negative integer greater than or equal to the variant is returned, otherwise returns the integer portion of the value of variant.

See also variant_int(),
variant_round(), floor(),
ceil(),
round().

Внимание

This documentation is based on the MSDN documentation; it appears that this function is either the same as variant_int(), or that there is an error in the MSDN documentation.

Замечание: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.

The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

Пред. | Начало | След.
variant_eqv | Уровень выше | variant_get_type


variant_get_type

(PHP 5)

variant_get_type -- Returns the type of a variant object

Description

int variant_get_type ( variant variant )

This function returns an integer value that indicates the type of variant, which can be an instance of COM, DOTNET or VARIANT classes. The return value can be compared to one of the VT_XXX constants.

The return value for COM and DOTNET objects will usually be VT_DISPATCH; the only reason this function works for those classes is because COM and DOTNET are descendants of VARIANT.

In PHP versions prior to 5, you could obtain this information from instances of the VARIANT class ONLY, by reading a fake type property. See the VARIANT class for more information on this.

Пред. | Начало | След.
variant_fix | Уровень выше | variant_idiv


variant_idiv

(PHP 5)

variant_idiv -- Converts variants to integers and then returns the result from dividing them

Description

mixed variant_idiv ( mixed left, mixed right )

Converts left and right to integer values, and then performs integer division according the following rules:

Таблица 1. Variant Integer Division Rules

If | Then
Both expressions are of the string, date, character, boolean type | Division and integer is returned
One expression is a string type and the other a character | Division
One expression is numeric and the other is a string | Division
Both expressions are numeric | Division
Either expression is NULL | NULL is returned
Both expressions are empty | A com_exception with code DISP_E_DIVBYZERO is thrown

See also variant_div().

Замечание: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.

The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

Пред. | Начало | След.
variant_get_type | Уровень выше | variant_imp


variant_imp

(PHP 5)

variant_imp -- Performs a bitwise implication on two variants

Description

mixed variant_imp ( mixed left, mixed right )

Performs a bitwise implication operation, according to the following truth table:

Таблица 1. Variant Implication Table

If left is | If right is | then the result is
TRUE | TRUE | TRUE
TRUE | FALSE | TRUE
TRUE | NULL | TRUE
FALSE | TRUE | TRUE
FALSE | FALSE | TRUE
FALSE | NULL | TRUE
NULL | TRUE | TRUE
NULL | FALSE | NULL
NULL | NULL | NULL

Замечание: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.

The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

Пред. | Начало | След.
variant_idiv | Уровень выше | variant_int


variant_int

(PHP 5)

variant_int -- Returns the integer portion of a variant

Description

mixed variant_int ( mixed variant )

If variant is negative, then the first negative integer greater than or equal to the variant is returned, otherwise returns the integer portion of the value of variant.

See also variant_fix(),
variant_round(), floor(),
ceil(),
round().

Замечание: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.

The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

Пред. | Начало | След.
variant_imp | Уровень выше | variant_mod


variant_mod

(PHP 5)

variant_mod -- Divides two variants and returns only the remainder

Description

mixed variant_mod ( mixed left, mixed right )

Divides left by right and returns the remainder.

See also variant_div(), variant_idiv().

Замечание: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.

The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

Пред. | Начало | След.
variant_int | Уровень выше | variant_mul


variant_mul

(PHP 5)

variant_mul -- multiplies the values of the two variants and returns the result

Description

mixed variant_mul ( mixed left, mixed right )

Multiplies left by right and returns the result, subject to the following rules:

Таблица 1. Variant Multiplication Rules

If | Then
Both expressions are of the string, date, character, boolean type | Multiplication
One expression is a string type and the other a character | Multiplication
One expression is numeric and the other is a string | Multiplication
Both expressions are numeric | Multiplication
Either expression is NULL | NULL is returned
Both expressions are empty | Empty string is returned

Boolean values are converted to -1 for FALSE and 0 for TRUE.

See also variant_div(), variant_idiv().

Замечание: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.

The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

Пред. | Начало | След.
variant_mod | Уровень выше | variant_neg


variant_neg

(PHP 5)

variant_neg -- Performs logical negation on a variant

Description

mixed variant_neg ( mixed variant )

Performs logical negation of variant and returns the result.

Замечание: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.

The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

Пред. | Начало | След.
variant_mul | Уровень выше | variant_not


variant_not

(PHP 5)

variant_not -- Performs bitwise not negation on a variant

Description

mixed variant_not ( mixed variant )

Performs bitwise not negation on variant and returns the result. If variant is NULL, the result will also be NULL.

Замечание: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.

The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

Пред. | Начало | След.
variant_neg | Уровень выше | variant_or


variant_or

(PHP 5)

variant_or -- Performs a logical disjunction on two variants

Description

mixed variant_or ( mixed left, mixed right )

Performs a bitwise OR operation, according to the following truth table; note that this is slightly different from a regular OR operation.

Таблица 1. Variant OR Rules

If left is | If right is | then the result is
TRUE | TRUE | TRUE
TRUE | FALSE | TRUE
TRUE | NULL | TRUE
FALSE | TRUE | TRUE
FALSE | FALSE | FALSE
FALSE | NULL | NULL
NULL | TRUE | TRUE
NULL | FALSE | NULL
NULL | NULL | NULL

See also variant_and(), variant_xor().

Замечание: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.

The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

Пред. | Начало | След.
variant_not | Уровень выше | variant_pow


variant_pow

(PHP 5)

variant_pow -- Returns the result of performing the power function with two variants

Description

mixed variant_pow ( mixed left, mixed right )

Returns the result of left to the power of right.

See also pow().

Замечание: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.

The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

Пред. | Начало | След.
variant_or | Уровень выше | variant_round


variant_round

(PHP 5)

variant_round -- Rounds a variant to the specified number of decimal places

Description

mixed variant_round ( mixed variant, int decimals )

Returns the value of variant rounded to decimals decimal places.

See also round().

Замечание: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.

The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

Пред. | Начало | След.
variant_pow | Уровень выше | variant_set_type


variant_set_type

(PHP 5)

variant_set_type -- Convert a variant into another type "in-place"

Description

void variant_set_type ( variant variant, int type )

This function is similar to variant_cast() except that the variant is modified "in-place"; no new variant is created. The parameters for this function have identical meaning to those of variant_cast().

See also variant_cast().

Пред. | Начало | След.
variant_round | Уровень выше | variant_set


variant_set

(PHP 5)

variant_set -- Assigns a new value for a variant object

Description

void variant_set ( variant variant, mixed value )

Converts value to a variant and assigns it to the variant object; no new variant object is created, and the old value of variant is freed/released.

Пред. | Начало | След.
variant_set_type | Уровень выше | variant_sub


variant_sub

(PHP 5)

variant_sub -- subtracts the value of the right variant from the left variant value and returns the result

Description

mixed variant_sub ( mixed left, mixed right )

Subtracts right from left using the following rules:

Таблица 1. Variant Subtraction Rules

If | Then
Both expressions are of the string type | Subtraction
One expression is a string type and the other a character | Subtraction
One expression is numeric and the other is a string | Subtraction.
Both expressions are numeric | Subtraction
Either expression is NULL | NULL is returned
Both expressions are empty | Empty string is returned

See also variant_add().

Замечание: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.

The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

Пред. | Начало | След.
variant_set | Уровень выше | variant_xor


variant_xor

(PHP 5)

variant_xor -- Performs a logical exclusion on two variants

Description

mixed variant_xor ( mixed left, mixed right )

Performs a logical exclusion, according to the following truth table:

Таблица 1. Variant XOR Rules

If left is | If right is | then the result is
TRUE | TRUE | FALSE
TRUE | FALSE | TRUE
FALSE | TRUE | TRUE
FALSE | FALSE | FALSE
NULL | NULL | NULL

See also variant_and(), variant_or().

Замечание: As with all the variant arithmetic functions, the parameters for this function can be either a PHP native type (integer, string, floating point, boolean or NULL), or an instance of a COM, VARIANT or DOTNET class. PHP native types will be converted to variants using the same rules as found in the constructor for the VARIANT class. COM and DOTNET objects will have the value of their default property taken and used as the variant value.

The variant arithmetic functions are wrappers around the similarly named functions in the COM library; for more information on these functions, consult the MSDN library. The PHP functions are named slightly differently; for example variant_add() in PHP corresponds to VarAdd() in the MSDN documentation.

Пред. | Начало | След.
variant_sub | Уровень выше | Crack Functions


ClibPDF Functions

Руководство по PHP
Пред. След.

XIV. ClibPDF Functions

Введение

ClibPDF lets you create PDF documents with PHP. ClibPDF functionality and API are similar to PDFlib. This documentation should be read alongside the ClibPDF manual since it explains the library in much greater detail.

Many functions in the native ClibPDF and the PHP module, as well as in PDFlib, have the same name. All functions except for cpdf_open() take the handle for the document as their first parameter.

Currently this handle is not used internally since ClibPDF does not support the creation of several PDF documents at the same time. Actually, you should not even try it, the results are unpredictable. I can't oversee what the consequences in a multi threaded environment are. According to the author of ClibPDF this will change in one of the next releases (current version when this was written is 1.10). If you need this functionality use the pdflib module.

A nice feature of ClibPDF (and PDFlib) is the ability to create the pdf document completely in memory without using temporary files. It also provides the ability to pass coordinates in a predefined unit length. (This feature can also be simulated by pdf_translate() when using the PDFlib functions.)

Another nice feature of ClibPDF is the fact that any page can be modified at any time even if a new page has been already opened. The function cpdf_set_current_page() allows to leave the current page and presume modifying an other page.

Most of the functions are fairly easy to use. The most difficult part is probably creating a very simple PDF document at all. The following example should help you to get started. It creates a document with one page. The page contains the text "Times-Roman" in an outlined 30pt font. The text is underlined.

Замечание: This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 5.1.0.

Замечание: If you're interested in alternative free PDF generators that do not utilize external PDF libraries, see this related FAQ.

Требования

In order to use the ClibPDF functions you need to install the ClibPDF package. It is available for download from FastIO, but requires that you purchase a license for commercial use. PHP requires that you use cpdflib >= 2.

Установка

To get these functions to work, you have to compile PHP with --with-cpdflib[=DIR]. DIR is the cpdflib install directory, defaults to /usr. In addition you can specify the jpeg library and the tiff library for ClibPDF to use. To do so add to your configure line the options --with-jpeg-dir[=DIR] --with-tiff-dir[=DIR].

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

CPDF_PM_NONE (integer)

CPDF_PM_OUTLINES (integer)

CPDF_PM_THUMBS (integer)

CPDF_PM_FULLSCREEN (integer)

CPDF_PL_SINGLE (integer)

CPDF_PL_1COLUMN (integer)

CPDF_PL_2LCOLUMN (integer)

CPDF_PL_2RCOLUMN (integer)

Примеры

Пример 1. Simple ClibPDF Example

<?php
$cpdf = cpdf_open(0);
cpdf_page_init($cpdf, 1, 0, 595, 842, 1.0);
cpdf_add_outline($cpdf, 0, 0, 0, 1, "Page 1");
cpdf_begin_text($cpdf);
cpdf_set_font($cpdf, "Times-Roman", 30, "WinAnsiEncoding");
cpdf_set_text_rendering($cpdf, 1);
cpdf_text($cpdf, "Times Roman outlined", 50, 50);
cpdf_end_text($cpdf);
cpdf_moveto($cpdf, 50, 50);
cpdf_lineto($cpdf, 740, 330);
cpdf_stroke($cpdf);
cpdf_finalize_page($cpdf, 1);
cpdf_finalize($cpdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($cpdf);
cpdf_close($cpdf);
?>

The pdflib distribution contains a more complex example which creates a series of pages with an analog clock. Here is that example converted into PHP using the ClibPDF extension:

Пример 2. pdfclock example from pdflib 2.0 distribution

<?php
$radius = 200;
$margin = 20;
$pagecount = 40;

$pdf = cpdf_open(0);
cpdf_set_creator($pdf, "pdf_clock.php");
cpdf_set_title($pdf, "Analog Clock");

while ($pagecount-- > 0) {
  cpdf_page_init($pdf, $pagecount+1, 0, 2 * ($radius + $margin), 2 * ($radius + $margin), 1.0);

  cpdf_set_page_animation($pdf, 4, 0.5, 0, 0, 0);  /* wipe */

  cpdf_translate($pdf, $radius + $margin, $radius + $margin);
  cpdf_save($pdf);
  cpdf_setrgbcolor($pdf, 0.0, 0.0, 1.0);

  /* minute strokes */
  cpdf_setlinewidth($pdf, 2.0);
  for ($alpha = 0; $alpha < 360; $alpha += 6) {
    cpdf_rotate($pdf, 6.0);
    cpdf_moveto($pdf, $radius, 0.0);
    cpdf_lineto($pdf, $radius-$margin/3, 0.0);
    cpdf_stroke($pdf);
  }

  cpdf_restore($pdf);
  cpdf_save($pdf);

  /* 5 minute strokes */
  cpdf_setlinewidth($pdf, 3.0);
  for ($alpha = 0; $alpha < 360; $alpha += 30) {
    cpdf_rotate($pdf, 30.0);
    cpdf_moveto($pdf, $radius, 0.0);
    cpdf_lineto($pdf, $radius-$margin, 0.0);
    cpdf_stroke($pdf);
  }

  $ltime = getdate();

  /* draw hour hand */
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['minutes']/60.0) + $ltime['hours'] - 3.0) * 30.0);
  cpdf_moveto($pdf, -$radius/10, -$radius/20);
  cpdf_lineto($pdf, $radius/2, 0.0);
  cpdf_lineto($pdf, -$radius/10, $radius/20);
  cpdf_closepath($pdf);
  cpdf_fill($pdf);
  cpdf_restore($pdf);

  /* draw minute hand */
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['seconds']/60.0) + $ltime['minutes'] - 15.0) * 6.0);
  cpdf_moveto($pdf, -$radius/10, -$radius/20);
  cpdf_lineto($pdf, $radius * 0.8, 0.0);
  cpdf_lineto($pdf, -$radius/10, $radius/20);
  cpdf_closepath($pdf);
  cpdf_fill($pdf);
  cpdf_restore($pdf);

  /* draw second hand */
  cpdf_setrgbcolor($pdf, 1.0, 0.0, 0.0);
  cpdf_setlinewidth($pdf, 2);
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['seconds'] - 15.0) * 6.0));
  cpdf_moveto($pdf, -$radius/5, 0.0);
  cpdf_lineto($pdf, $radius, 0.0);
  cpdf_stroke($pdf);
  cpdf_restore($pdf);

  /* draw little circle at center */
  cpdf_circle($pdf, 0, 0, $radius/30);
  cpdf_fill($pdf);

  cpdf_restore($pdf);

  cpdf_finalize_page($pdf, $pagecount+1);
}

cpdf_finalize($pdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($pdf);
cpdf_close($pdf);
?>

Смотрите также

See also the PDFlib extension documentation.

Содержание
cpdf_add_annotation -- Adds annotation
cpdf_add_outline -- Adds bookmark for current page
cpdf_arc -- Draws an arc
cpdf_begin_text -- Starts text section
cpdf_circle -- Draw a circle
cpdf_clip -- Clips to current path
cpdf_close -- Closes the pdf document
cpdf_closepath_fill_stroke -- Close, fill and stroke current path
cpdf_closepath_stroke -- Close path and draw line along path
cpdf_closepath -- Close path
cpdf_continue_text -- Output text in next line
cpdf_curveto -- Draws a curve
cpdf_end_text -- Ends text section
cpdf_fill_stroke -- Fill and stroke current path
cpdf_fill -- Fill current path
cpdf_finalize_page -- Ends page
cpdf_finalize -- Ends document
cpdf_global_set_document_limits -- Sets document limits for any pdf document
cpdf_import_jpeg -- Opens a JPEG image
cpdf_lineto -- Draws a line
cpdf_moveto -- Sets current point
cpdf_newpath -- Starts a new path
cpdf_open -- Opens a new pdf document
cpdf_output_buffer -- Outputs the pdf document in memory buffer
cpdf_page_init -- Starts new page
cpdf_place_inline_image -- Places an image on the page
cpdf_rect -- Draw a rectangle
cpdf_restore -- Restores formerly saved environment
cpdf_rlineto -- Draws a line
cpdf_rmoveto -- Sets current point
cpdf_rotate_text -- Sets text rotation angle
cpdf_rotate -- Sets rotation
cpdf_save_to_file -- Writes the pdf document into a file
cpdf_save -- Saves current environment
cpdf_scale -- Sets scaling
cpdf_set_action_url -- Sets hyperlink
cpdf_set_char_spacing -- Sets character spacing
cpdf_set_creator -- Sets the creator field in the pdf document
cpdf_set_current_page -- Sets current page
cpdf_set_font_directories -- Sets directories to search when using external fonts
cpdf_set_font_map_file -- Sets fontname to filename translation map when using external fonts
cpdf_set_font -- Select the current font face and size
cpdf_set_horiz_scaling -- Sets horizontal scaling of text
cpdf_set_keywords -- Sets the keywords field of the pdf document
cpdf_set_leading -- Sets distance between text lines
cpdf_set_page_animation -- Sets duration between pages
cpdf_set_subject -- Sets the subject field of the pdf document
cpdf_set_text_matrix -- Sets the text matrix
cpdf_set_text_pos -- Sets text position
cpdf_set_text_rendering -- Determines how text is rendered
cpdf_set_text_rise -- Sets the text rise
cpdf_set_title -- Sets the title field of the pdf document
cpdf_set_viewer_preferences -- How to show the document in the viewer
cpdf_set_word_spacing -- Sets spacing between words
cpdf_setdash -- Sets dash pattern
cpdf_setflat -- Sets flatness
cpdf_setgray_fill -- Sets filling color to gray value
cpdf_setgray_stroke -- Sets drawing color to gray value
cpdf_setgray -- Sets drawing and filling color to gray value
cpdf_setlinecap -- Sets linecap parameter
cpdf_setlinejoin -- Sets linejoin parameter
cpdf_setlinewidth -- Sets line width
cpdf_setmiterlimit -- Sets miter limit
cpdf_setrgbcolor_fill -- Sets filling color to rgb color value
cpdf_setrgbcolor_stroke -- Sets drawing color to rgb color value
cpdf_setrgbcolor -- Sets drawing and filling color to rgb color value
cpdf_show_xy -- Output text at position
cpdf_show -- Output text at current position
cpdf_stringwidth -- Returns width of text in current font
cpdf_stroke -- Draw line along path
cpdf_text -- Output text with parameters
cpdf_translate -- Sets origin of coordinate system

Пред. | Начало | След.
classkit_method_rename | Уровень выше | cpdf_add_annotation


cpdf_add_annotation

(PHP 3 >= 3.0.12, PHP 4, PHP 5 <= 5.0.4)

cpdf_add_annotation -- Adds annotation

Description

bool cpdf_add_annotation ( int pdf_document, float llx, float lly, float urx, float ury, string title, string content [, int mode] )

The cpdf_add_annotation() adds a note with the lower left corner at (llx, lly) and the upper right corner at (urx, ury). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Необязательный параметр mode определяет единицу измерения. Если он не указан, либо равен 0, используется определенная по умолчанию для страницы единица измерения. Иначе координаты измеряются в пунктах postscript без учета текущей единицы измерения.

Пред. | Начало | След.
ClibPDF Functions | Уровень выше | cpdf_add_outline


cpdf_add_outline

(PHP 3 >= 3.0.9, PHP 4, PHP 5 <= 5.0.4)

cpdf_add_outline -- Adds bookmark for current page

Description

int cpdf_add_outline ( int pdf_document, int lastoutline, int sublevel, int open, int pagenr, string text )

The cpdf_add_outline() function adds a bookmark with text text that points to the current page.

Пример 1. Adding a page outline

<?php
$cpdf = cpdf_open(0);
cpdf_page_init($cpdf, 1, 0, 595, 842);
cpdf_add_outline($cpdf, 0, 0, 0, 1, "Page 1");
// ...
// some drawing
// ...
cpdf_finalize($cpdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($cpdf);
cpdf_close($cpdf);
?>

Пред. | Начало | След.
cpdf_add_annotation | Уровень выше | cpdf_arc


cpdf_arc

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_arc -- Draws an arc

Description

bool cpdf_arc ( int pdf_document, float x_coor, float y_coor, float radius, float start, float end [, int mode] )

The cpdf_arc() function draws an arc with center at point (x_coor, y_coor) and radius radius, starting at angle start and ending at angle end. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Необязательный параметр mode определяет единицу измерения. Если он не указан, либо равен 0, используется определенная по умолчанию для страницы единица измерения. Иначе координаты измеряются в пунктах postscript без учета текущей единицы измерения.

See also cpdf_circle().

Пред. | Начало | След.
cpdf_add_outline | Уровень выше | cpdf_begin_text


cpdf_begin_text

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_begin_text -- Starts text section

Description

bool cpdf_begin_text ( int pdf_document )

The cpdf_begin_text() function starts a text section. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. The created text section must be ended with cpdf_end_text().

Пример 1. Text output

<?php
cpdf_begin_text($pdf);
cpdf_set_font($pdf, 16, "Helvetica", "WinAnsiEncoding");
cpdf_text($pdf, 100, 100, "Some text");
cpdf_end_text($pdf)
?>

See also cpdf_end_text().

Пред. | Начало | След.
cpdf_arc | Уровень выше | cpdf_circle


cpdf_circle

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_circle -- Draw a circle

Description

bool cpdf_circle ( int pdf_document, float x_coor, float y_coor, float radius [, int mode] )

The cpdf_circle() function draws a circle with center at point (x_coor, y_coor) and radius radius. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Необязательный параметр mode определяет единицу измерения. Если он не указан, либо равен 0, используется определенная по умолчанию для страницы единица измерения. Иначе координаты измеряются в пунктах postscript без учета текущей единицы измерения.

See also cpdf_arc().

Пред. | Начало | След.
cpdf_begin_text | Уровень выше | cpdf_clip


cpdf_clip

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_clip -- Clips to current path

Description

bool cpdf_clip ( int pdf_document )

The cpdf_clip() function clips all drawing to the current path. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
cpdf_circle | Уровень выше | cpdf_close


cpdf_close

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_close -- Closes the pdf document

Description

bool cpdf_close ( int pdf_document )

The cpdf_close() function closes the pdf document. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. This should be the last function even after cpdf_finalize(), cpdf_output_buffer() and cpdf_save_to_file().

See also cpdf_open().

Пред. | Начало | След.
cpdf_clip | Уровень выше | cpdf_closepath_fill_stroke


cpdf_closepath_fill_stroke

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_closepath_fill_stroke -- Close, fill and stroke current path

Description

bool cpdf_closepath_fill_stroke ( int pdf_document )

The cpdf_closepath_fill_stroke() function closes, fills the interior of the current path with the current fill color and draws current path. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also cpdf_closepath(),
cpdf_stroke(),
cpdf_fill(),
cpdf_setgray_fill(),
cpdf_setgray(),
cpdf_setrgbcolor_fill() and
cpdf_setrgbcolor().

Пред. | Начало | След.
cpdf_close | Уровень выше | cpdf_closepath_stroke


cpdf_closepath_stroke

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_closepath_stroke -- Close path and draw line along path

Description

bool cpdf_closepath_stroke ( int pdf_document )

The cpdf_closepath_stroke() function is a
combination of cpdf_closepath() and
cpdf_stroke(). Then clears the path.
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also cpdf_closepath() and cpdf_stroke().

Пред. | Начало | След.
cpdf_closepath_fill_stroke | Уровень выше | cpdf_closepath


cpdf_closepath

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_closepath -- Close path

Description

bool cpdf_closepath ( int pdf_document )

The cpdf_closepath() function closes the current path. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
cpdf_closepath_stroke | Уровень выше | cpdf_continue_text


cpdf_continue_text

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_continue_text -- Output text in next line

Description

bool cpdf_continue_text ( int pdf_document, string text )

The cpdf_continue_text() function outputs the string in text in the next line. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also cpdf_show_xy(),
cpdf_text(),
cpdf_set_leading() and
cpdf_set_text_pos().

Пред. | Начало | След.
cpdf_closepath | Уровень выше | cpdf_curveto


cpdf_curveto

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_curveto -- Draws a curve

Description

bool cpdf_curveto ( int pdf_document, float x1, float y1, float x2, float y2, float x3, float y3 [, int mode] )

The cpdf_curveto() function draws a Bezier curve from the current point to the point (x3, y3) using (x1, y1) and (x2, y2) as control points. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Необязательный параметр mode определяет единицу измерения. Если он не указан, либо равен 0, используется определенная по умолчанию для страницы единица измерения. Иначе координаты измеряются в пунктах postscript без учета текущей единицы измерения.

See also cpdf_moveto(),
cpdf_rmoveto(),
cpdf_rlineto() and
cpdf_lineto().

Пред. | Начало | След.
cpdf_continue_text | Уровень выше | cpdf_end_text


cpdf_end_text

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_end_text -- Ends text section

Description

bool cpdf_end_text ( int pdf_document )

The cpdf_end_text() function ends a text section which was started with cpdf_begin_text(). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. Text output

<?php
cpdf_begin_text($pdf);
cpdf_set_font($pdf, 16, "Helvetica", "WinAnsiEncoding");
cpdf_text($pdf, 100, 100, "Some text");
cpdf_end_text($pdf)
?>

See also cpdf_begin_text().

Пред. | Начало | След.
cpdf_curveto | Уровень выше | cpdf_fill_stroke


cpdf_fill_stroke

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_fill_stroke -- Fill and stroke current path

Description

bool cpdf_fill_stroke ( int pdf_document )

The cpdf_fill_stroke() function fills the interior of the current path with the current fill color and draws current path. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also cpdf_closepath(),
cpdf_stroke(),
cpdf_fill(),
cpdf_setgray_fill(),
cpdf_setgray(),
cpdf_setrgbcolor_fill() and
cpdf_setrgbcolor().

Пред. | Начало | След.
cpdf_end_text | Уровень выше | cpdf_fill


cpdf_fill

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_fill -- Fill current path

Description

bool cpdf_fill ( int pdf_document )

The cpdf_fill() function fills the interior of the current path with the current fill color. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also cpdf_closepath(),
cpdf_stroke(),
cpdf_setgray_fill(),
cpdf_setgray(),
cpdf_setrgbcolor_fill() and
cpdf_setrgbcolor().

Пред. | Начало | След.
cpdf_fill_stroke | Уровень выше | cpdf_finalize_page


cpdf_finalize_page

(PHP 3 >= 3.0.10, PHP 4, PHP 5 <= 5.0.4)

cpdf_finalize_page -- Ends page

Description

bool cpdf_finalize_page ( int pdf_document, int page_number )

The cpdf_finalize_page() function ends the page with page number page_number. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is only for saving memory. A finalized page takes less memory but cannot be modified anymore.

See also cpdf_page_init().

Пред. | Начало | След.
cpdf_fill | Уровень выше | cpdf_finalize


cpdf_finalize

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_finalize -- Ends document

Description

bool cpdf_finalize ( int pdf_document )

The cpdf_finalize() function ends the document. You still have to call cpdf_close(). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also cpdf_close().

Пред. | Начало | След.
cpdf_finalize_page | Уровень выше | cpdf_global_set_document_limits


cpdf_global_set_document_limits

(PHP 4, PHP 5 <= 5.0.4)

cpdf_global_set_document_limits -- Sets document limits for any pdf document

Description

bool cpdf_global_set_document_limits ( int maxpages, int maxfonts, int maximages, int maxannotations, int maxobjects )

The cpdf_global_set_document_limits() function sets several document limits. This function has to be called before cpdf_open() to take effect. It sets the limits for any document open afterwards. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also cpdf_open().

Пред. | Начало | След.
cpdf_finalize | Уровень выше | cpdf_import_jpeg


cpdf_import_jpeg

(PHP 3 >= 3.0.9, PHP 4, PHP 5 <= 5.0.4)

cpdf_import_jpeg -- Opens a JPEG image

Description

bool cpdf_import_jpeg ( int pdf_document, string file_name, float x_coor, float y_coor, float angle, float width, float height, float x_scale, float y_scale, int gsave [, int mode] )

The cpdf_import_jpeg() function opens an image stored in the file with the name file_name. The format of the image has to be jpeg. The image is placed on the current page at position (x_coor, y_coor). The image is rotated by angle degrees. gsave should be non-zero to allow this function to operate correctly.

Необязательный параметр mode определяет единицу измерения. Если он не указан, либо равен 0, используется определенная по умолчанию для страницы единица измерения. Иначе координаты измеряются в пунктах postscript без учета текущей единицы измерения.

See also cpdf_place_inline_image().

Пред. | Начало | След.
cpdf_global_set_document_limits | Уровень выше | cpdf_lineto


cpdf_lineto

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_lineto -- Draws a line

Description

bool cpdf_lineto ( int pdf_document, float x_coor, float y_coor [, int mode] )

The cpdf_lineto() function draws a line from the current point to the point with coordinates (x_coor, y_coor). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Необязательный параметр mode определяет единицу измерения. Если он не указан, либо равен 0, используется определенная по умолчанию для страницы единица измерения. Иначе координаты измеряются в пунктах postscript без учета текущей единицы измерения.

See also cpdf_moveto(),
cpdf_rmoveto() and
cpdf_curveto().

Пред. | Начало | След.
cpdf_import_jpeg | Уровень выше | cpdf_moveto


cpdf_moveto

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_moveto -- Sets current point

Description

bool cpdf_moveto ( int pdf_document, float x_coor, float y_coor [, int mode] )

The cpdf_moveto() function set the current point to the coordinates x_coor and y_coor. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Необязательный параметр mode определяет единицу измерения. Если он не указан, либо равен 0, используется определенная по умолчанию для страницы единица измерения. Иначе координаты измеряются в пунктах postscript без учета текущей единицы измерения.

Пред. | Начало | След.
cpdf_lineto | Уровень выше | cpdf_newpath


cpdf_newpath

(PHP 3 >= 3.0.9, PHP 4, PHP 5 <= 5.0.4)

cpdf_newpath -- Starts a new path

Description

bool cpdf_newpath ( int pdf_document )

The cpdf_newpath() starts a new path on the document given by the pdf_document parameter. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
cpdf_moveto | Уровень выше | cpdf_open


cpdf_open

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_open -- Opens a new pdf document

Description

int cpdf_open ( int compression [, string filename [, array doc_limits]] )

The cpdf_open() function opens a new pdf document. The first parameter turns document compression on if it is unequal to 0. The second optional parameter sets the file in which the document is written. If it is omitted the document is created in memory and can either be written into a file with the cpdf_save_to_file() or written to standard output with cpdf_output_buffer().

Замечание: The return value will be needed in further versions of ClibPDF as the first parameter in all other functions which are writing to the pdf document.

The ClibPDF library takes the filename "-" as a synonym for stdout. If PHP is compiled as an apache module this will not work because the way ClibPDF outputs to stdout does not work with apache. You can solve this problem by skipping the filename and using cpdf_output_buffer() to output the pdf document.

See also cpdf_close() and cpdf_output_buffer().

Пред. | Начало | След.
cpdf_newpath | Уровень выше | cpdf_output_buffer


cpdf_output_buffer

(PHP 3 >= 3.0.9, PHP 4, PHP 5 <= 5.0.4)

cpdf_output_buffer -- Outputs the pdf document in memory buffer

Description

bool cpdf_output_buffer ( int pdf_document )

The cpdf_output_buffer() function outputs the pdf document to stdout. The document has to be created in memory which is the case if cpdf_open() has been called with no filename parameter. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also cpdf_open().

Пред. | Начало | След.
cpdf_open | Уровень выше | cpdf_page_init


cpdf_page_init

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_page_init -- Starts new page

Description

bool cpdf_page_init ( int pdf_document, int page_number, int orientation, float height, float width [, float unit] )

The cpdf_page_init() function starts a new page with height height and width width. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. The page has number page_number and orientation orientation. orientation can be 0 for portrait and 1 for landscape. The last optional parameter unit sets the unit for the coordinate system. The value should be the number of postscript points per unit. Since one inch is equal to 72 points, a value of 72 would set the unit to one inch. The default is also 72.

See also cpdf_set_current_page().

Пред. | Начало | След.
cpdf_output_buffer | Уровень выше | cpdf_place_inline_image


cpdf_place_inline_image

(PHP 3 >= 3.0.9, PHP 4, PHP 5 <= 5.0.4)

cpdf_place_inline_image -- Places an image on the page

Description

bool cpdf_place_inline_image ( int pdf_document, int image, float x_coor, float y_coor, float angle, float width, float height, int gsave [, int mode] )

The cpdf_place_inline_image() function places an image created with the PHP image functions on the page at position (x_coor, y_coor). The image can be scaled at the same time. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Необязательный параметр mode определяет единицу измерения. Если он не указан, либо равен 0, используется определенная по умолчанию для страницы единица измерения. Иначе координаты измеряются в пунктах postscript без учета текущей единицы измерения.

Замечание: This function is only available if PHP was compiled with the GD Graphics Library 1.3. See the GD extension installation instructions for further information.

See also cpdf_import_jpeg().

Пред. | Начало | След.
cpdf_page_init | Уровень выше | cpdf_rect


cpdf_rect

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_rect -- Draw a rectangle

Description

bool cpdf_rect ( int pdf_document, float x_coor, float y_coor, float width, float height [, int mode] )

The cpdf_rect() function draws a rectangle with its lower left corner at point (x_coor, y_coor). This width is set to width. This height is set to height. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Необязательный параметр mode определяет единицу измерения. Если он не указан, либо равен 0, используется определенная по умолчанию для страницы единица измерения. Иначе координаты измеряются в пунктах postscript без учета текущей единицы измерения.

Пример 1. Drawing a rectangle

<?php

$cpdf = cpdf_open(0);
cpdf_page_init($cpdf, 1, 0, 595, 842, 1.0);

// set the fill color to red
cpdf_setrgbcolor($cpdf, 1, 0, 0);

// draw a (180 * 100) rectangle
cpdf_rect($cpdf, 645, 400, 180, 100);

// fill the rectangle
cpdf_fill($cpdf);

cpdf_finalize($cpdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($cpdf);
cpdf_close($cpdf);

?>

Пред. | Начало | След.
cpdf_place_inline_image | Уровень выше | cpdf_restore


cpdf_restore

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_restore -- Restores formerly saved environment

Description

bool cpdf_restore ( int pdf_document )

The cpdf_restore() function restores the environment saved with cpdf_save(). It works like the postscript command grestore. Very useful if you want to translate or rotate an object without effecting other objects. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. Save/Restore

<?php
cpdf_save($pdf);
// do all kinds of rotations, transformations, ...
cpdf_restore($pdf)
?>

See also cpdf_save().

Пред. | Начало | След.
cpdf_rect | Уровень выше | cpdf_rlineto


cpdf_rlineto

(PHP 3 >= 3.0.9, PHP 4, PHP 5 <= 5.0.4)

cpdf_rlineto -- Draws a line

Description

bool cpdf_rlineto ( int pdf_document, float x_coor, float y_coor [, int mode] )

The cpdf_rlineto() function draws a line from the current point to the relative point with coordinates (x_coor, y_coor). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Необязательный параметр mode определяет единицу измерения. Если он не указан, либо равен 0, используется определенная по умолчанию для страницы единица измерения. Иначе координаты измеряются в пунктах postscript без учета текущей единицы измерения.

See also cpdf_moveto(),
cpdf_rmoveto() and
cpdf_curveto().

Пред. | Начало | След.
cpdf_restore | Уровень выше | cpdf_rmoveto


cpdf_rmoveto

(PHP 3 >= 3.0.9, PHP 4, PHP 5 <= 5.0.4)

cpdf_rmoveto -- Sets current point

Description

bool cpdf_rmoveto ( int pdf_document, float x_coor, float y_coor [, int mode] )

The cpdf_rmoveto() function set the current point relative to the coordinates x_coor and y_coor. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Необязательный параметр mode определяет единицу измерения. Если он не указан, либо равен 0, используется определенная по умолчанию для страницы единица измерения. Иначе координаты измеряются в пунктах postscript без учета текущей единицы измерения.

See also cpdf_moveto().

Пред. | Начало | След.
cpdf_rlineto | Уровень выше | cpdf_rotate_text


cpdf_rotate_text

(PHP 3 >= 3.0.9, PHP 4, PHP 5 <= 5.0.4)

cpdf_rotate_text -- Sets text rotation angle

Description

bool cpdf_rotate_text ( int pdfdoc, float angle )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
cpdf_rmoveto | Уровень выше | cpdf_rotate


cpdf_rotate

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_rotate -- Sets rotation

Description

bool cpdf_rotate ( int pdf_document, float angle )

The cpdf_rotate() function set the rotation in degrees to angle. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
cpdf_rotate_text | Уровень выше | cpdf_save_to_file


cpdf_save_to_file

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_save_to_file -- Writes the pdf document into a file

Description

bool cpdf_save_to_file ( int pdf_document, string filename )

The cpdf_save_to_file() function outputs the pdf document into a file if it has been created in memory. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is not needed if the pdf document has been open by specifying a filename as a parameter of cpdf_open().

See also cpdf_output_buffer() and cpdf_open().

Пред. | Начало | След.
cpdf_rotate | Уровень выше | cpdf_save


cpdf_save

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_save -- Saves current environment

Description

bool cpdf_save ( int pdf_document )

The cpdf_save() function saves the current environment. It works like the postscript command gsave. Very useful if you want to translate or rotate an object without effecting other objects. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also cpdf_restore().

Пред. | Начало | След.
cpdf_save_to_file | Уровень выше | cpdf_scale


cpdf_scale

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_scale -- Sets scaling

Description

bool cpdf_scale ( int pdf_document, float x_scale, float y_scale )

The cpdf_scale() function set the scaling factor in both directions. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
cpdf_save | Уровень выше | cpdf_set_action_url


cpdf_set_action_url

(PHP 3 >= 3.0.9, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_action_url -- Sets hyperlink

Description

bool cpdf_set_action_url ( int pdfdoc, float xll, float yll, float xur, float xur, string url [, int mode] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
cpdf_scale | Уровень выше | cpdf_set_char_spacing


cpdf_set_char_spacing

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_char_spacing -- Sets character spacing

Description

bool cpdf_set_char_spacing ( int pdf_document, float space )

The cpdf_set_char_spacing() function sets the spacing between characters. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also cpdf_set_word_spacing() and cpdf_set_leading().

Пред. | Начало | След.
cpdf_set_action_url | Уровень выше | cpdf_set_creator


cpdf_set_creator

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_creator -- Sets the creator field in the pdf document

Description

bool cpdf_set_creator ( int pdf_document, string creator )

The cpdf_set_creator() function sets the creator of a pdf document. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also cpdf_set_subject(),
cpdf_set_title() and
cpdf_set_keywords().

Пред. | Начало | След.
cpdf_set_char_spacing | Уровень выше | cpdf_set_current_page


cpdf_set_current_page

(PHP 3 >= 3.0.9, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_current_page -- Sets current page

Description

bool cpdf_set_current_page ( int pdf_document, int page_number )

The cpdf_set_current_page() function set the page on which all operations are performed. One can switch between pages until a page is finished with cpdf_finalize_page(). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also cpdf_finalize_page().

Пред. | Начало | След.
cpdf_set_creator | Уровень выше | cpdf_set_font_directories


cpdf_set_font_directories

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

cpdf_set_font_directories -- Sets directories to search when using external fonts

Description

bool cpdf_set_font_directories ( int pdfdoc, string pfmdir, string pfbdir )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
cpdf_set_current_page | Уровень выше | cpdf_set_font_map_file


cpdf_set_font_map_file

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

cpdf_set_font_map_file -- Sets fontname to filename translation map when using external fonts

Description

bool cpdf_set_font_map_file ( int pdfdoc, string filename )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
cpdf_set_font_directories | Уровень выше | cpdf_set_font


cpdf_set_font

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_font -- Select the current font face and size

Description

bool cpdf_set_font ( int pdf_document, string font_name, float size, string encoding )

The cpdf_set_font() function sets the current font face, font size and encoding. Currently only the standard postscript fonts are supported. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

The last parameter encoding can take the following values: "MacRomanEncoding", "MacExpertEncoding", "WinAnsiEncoding", and "NULL". "NULL" stands for the font's built-in encoding.

See the ClibPDF Manual for more information, especially how to support Asian fonts.

Пред. | Начало | След.
cpdf_set_font_map_file | Уровень выше | cpdf_set_horiz_scaling


cpdf_set_horiz_scaling

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_horiz_scaling -- Sets horizontal scaling of text

Description

bool cpdf_set_horiz_scaling ( int pdf_document, float scale )

The cpdf_set_horiz_scaling() function sets the horizontal scaling to scale percent. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
cpdf_set_font | Уровень выше | cpdf_set_keywords


cpdf_set_keywords

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_keywords -- Sets the keywords field of the pdf document

Description

bool cpdf_set_keywords ( int pdf_document, string keywords )

The cpdf_set_keywords() function sets the keywords of a pdf document. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also cpdf_set_title(),
cpdf_set_creator() and
cpdf_set_subject().

Пред. | Начало | След.
cpdf_set_horiz_scaling | Уровень выше | cpdf_set_leading


cpdf_set_leading

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_leading -- Sets distance between text lines

Description

bool cpdf_set_leading ( int pdf_document, float distance )

The cpdf_set_leading() function sets the distance between text lines. This will be used if text is output by cpdf_continue_text(). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also cpdf_continue_text().

Пред. | Начало | След.
cpdf_set_keywords | Уровень выше | cpdf_set_page_animation


cpdf_set_page_animation

(PHP 3 >= 3.0.9, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_page_animation -- Sets duration between pages

Description

bool cpdf_set_page_animation ( int pdf_document, int transition, float duration, float direction, int orientation, int inout )

The cpdf_set_page_animation() function set the transition between following pages. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

The value of transition can be

0 for none,
1 for two lines sweeping across the screen reveal the page,
2 for multiple lines sweeping across the screen reveal the page,
3 for a box reveals the page,
4 for a single line sweeping across the screen reveals the page,
5 for the old page dissolves to reveal the page,
6 for the dissolve effect moves from one screen edge to another,
7 for the old page is simply replaced by the new page (default)

The value of duration is the number of seconds between page flipping.

Пред. | Начало | След.
cpdf_set_leading | Уровень выше | cpdf_set_subject


cpdf_set_subject

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_subject -- Sets the subject field of the pdf document

Description

bool cpdf_set_subject ( int pdf_document, string subject )

The cpdf_set_subject() function sets the subject of a pdf document. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also cpdf_set_title(),
cpdf_set_creator() and
cpdf_set_keywords().

Пред. | Начало | След.
cpdf_set_page_animation | Уровень выше | cpdf_set_text_matrix


cpdf_set_text_matrix

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_text_matrix -- Sets the text matrix

Description

bool cpdf_set_text_matrix ( int pdf_document, array matrix )

The cpdf_set_text_matrix() function sets a matrix which describes a transformation applied on the current text font. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
cpdf_set_subject | Уровень выше | cpdf_set_text_pos


cpdf_set_text_pos

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_text_pos -- Sets text position

Description

bool cpdf_set_text_pos ( int pdf_document, float x_coor, float y_coor [, int mode] )

The cpdf_set_text_pos() function sets the position of text for the next cpdf_show() function call. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Необязательный параметр mode определяет единицу измерения. Если он не указан, либо равен 0, используется определенная по умолчанию для страницы единица измерения. Иначе координаты измеряются в пунктах postscript без учета текущей единицы измерения.

See also cpdf_show() and cpdf_text().

Пред. | Начало | След.
cpdf_set_text_matrix | Уровень выше | cpdf_set_text_rendering


cpdf_set_text_rendering

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_text_rendering -- Determines how text is rendered

Description

bool cpdf_set_text_rendering ( int pdf_document, int rendermode )

The cpdf_set_text_rendering() function determines how text is rendered. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

The possible values for rendermode are 0=fill text, 1=stroke text, 2=fill and stroke text, 3=invisible, 4=fill text and add it to clipping path, 5=stroke text and add it to clipping path, 6=fill and stroke text and add it to clipping path, 7=add it to clipping path.

Пред. | Начало | След.
cpdf_set_text_pos | Уровень выше | cpdf_set_text_rise


cpdf_set_text_rise

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_text_rise -- Sets the text rise

Description

bool cpdf_set_text_rise ( int pdf_document, float value )

The cpdf_set_text_rise() function sets the text rising to value units. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
cpdf_set_text_rendering | Уровень выше | cpdf_set_title


cpdf_set_title

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_title -- Sets the title field of the pdf document

Description

bool cpdf_set_title ( int pdf_document, string title )

The cpdf_set_title() function sets the title of a pdf document. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also cpdf_set_subject(),
cpdf_set_creator() and
cpdf_set_keywords().

Пред. | Начало | След.
cpdf_set_text_rise | Уровень выше | cpdf_set_viewer_preferences


cpdf_set_viewer_preferences

(PHP 3 >= 3.0.9, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_viewer_preferences -- How to show the document in the viewer

Description

bool cpdf_set_viewer_preferences ( int pdfdoc, array preferences )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
cpdf_set_title | Уровень выше | cpdf_set_word_spacing


cpdf_set_word_spacing

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_set_word_spacing -- Sets spacing between words

Description

bool cpdf_set_word_spacing ( int pdf_document, float space )

The cpdf_set_word_spacing() function sets the spacing between words. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also cpdf_set_char_spacing() and cpdf_set_leading().

Пред. | Начало | След.
cpdf_set_viewer_preferences | Уровень выше | cpdf_setdash


cpdf_setdash

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_setdash -- Sets dash pattern

Description

bool cpdf_setdash ( int pdf_document, float white, float black )

The cpdf_setdash() function set the dash pattern white white units and black black units. If both are 0 a solid line is set. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
cpdf_set_word_spacing | Уровень выше | cpdf_setflat


cpdf_setflat

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_setflat -- Sets flatness

Description

bool cpdf_setflat ( int pdf_document, float value )

The cpdf_setflat() function set the flatness to a value between 0 and 100. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
cpdf_setdash | Уровень выше | cpdf_setgray_fill


cpdf_setgray_fill

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_setgray_fill -- Sets filling color to gray value

Description

bool cpdf_setgray_fill ( int pdf_document, float value )

The cpdf_setgray_fill() function sets the current gray value to fill a path. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also cpdf_setrgbcolor_fill().

Пред. | Начало | След.
cpdf_setflat | Уровень выше | cpdf_setgray_stroke


cpdf_setgray_stroke

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_setgray_stroke -- Sets drawing color to gray value

Description

bool cpdf_setgray_stroke ( int pdf_document, float gray_value )

The cpdf_setgray_stroke() function sets the current drawing color to the given gray value. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also cpdf_setrgbcolor_stroke().

Пред. | Начало | След.
cpdf_setgray_fill | Уровень выше | cpdf_setgray


cpdf_setgray

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_setgray -- Sets drawing and filling color to gray value

Description

bool cpdf_setgray ( int pdf_document, float gray_value )

The cpdf_setgray() function sets the current drawing and filling color to the given gray value. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also cpdf_setrgbcolor_stroke() and cpdf_setrgbcolor_fill().

Пред. | Начало | След.
cpdf_setgray_stroke | Уровень выше | cpdf_setlinecap


cpdf_setlinecap

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_setlinecap -- Sets linecap parameter

Description

bool cpdf_setlinecap ( int pdf_document, int value )

The cpdf_setlinecap() function set the linecap parameter between a value of 0 and 2. 0 = butt end, 1 = round, 2 = projecting square. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
cpdf_setgray | Уровень выше | cpdf_setlinejoin


cpdf_setlinejoin

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_setlinejoin -- Sets linejoin parameter

Description

bool cpdf_setlinejoin ( int pdf_document, int value )

The cpdf_setlinejoin() function set the linejoin parameter between a value of 0 and 2. 0 = miter, 1 = round, 2 = bevel. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
cpdf_setlinecap | Уровень выше | cpdf_setlinewidth


cpdf_setlinewidth

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_setlinewidth -- Sets line width

Description

bool cpdf_setlinewidth ( int pdf_document, float width )

The cpdf_setlinewidth() function set the line width to width. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
cpdf_setlinejoin | Уровень выше | cpdf_setmiterlimit


cpdf_setmiterlimit

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_setmiterlimit -- Sets miter limit

Description

bool cpdf_setmiterlimit ( int pdf_document, float value )

The cpdf_setmiterlimit() function set the miter limit to a value greater or equal than 1. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
cpdf_setlinewidth | Уровень выше | cpdf_setrgbcolor_fill


cpdf_setrgbcolor_fill

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_setrgbcolor_fill -- Sets filling color to rgb color value

Description

bool cpdf_setrgbcolor_fill ( int pdf_document, float red_value, float green_value, float blue_value )

The cpdf_setrgbcolor_fill() function sets the current rgb color value to fill a path. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: The values are expected to be floating point values between 0.0 and 1.0. (i.e black is (0.0, 0.0, 0.0) and white is (1.0, 1.0, 1.0)).

See also cpdf_setrgbcolor_stroke() and cpdf_setrgbcolor().

Пред. | Начало | След.
cpdf_setmiterlimit | Уровень выше | cpdf_setrgbcolor_stroke


cpdf_setrgbcolor_stroke

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_setrgbcolor_stroke -- Sets drawing color to rgb color value

Description

bool cpdf_setrgbcolor_stroke ( int pdf_document, float red_value, float green_value, float blue_value )

The cpdf_setrgbcolor_stroke() function sets the current drawing color to the given rgb color value. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: The values are expected to be floating point values between 0.0 and 1.0. (i.e black is (0.0, 0.0, 0.0) and white is (1.0, 1.0, 1.0)).

See also cpdf_setrgbcolor_fill() and cpdf_setrgbcolor().

Пред. | Начало | След.
cpdf_setrgbcolor_fill | Уровень выше | cpdf_setrgbcolor


cpdf_setrgbcolor

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_setrgbcolor -- Sets drawing and filling color to rgb color value

Description

bool cpdf_setrgbcolor ( int pdf_document, float red_value, float green_value, float blue_value )

The cpdf_setrgbcolor() function sets the current drawing and filling color to the given rgb color value. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: The values are expected to be floating point values between 0.0 and 1.0. (i.e black is (0.0, 0.0, 0.0) and white is (1.0, 1.0, 1.0)).

See also cpdf_setrgbcolor_stroke() and cpdf_setrgbcolor_fill().

Пред. | Начало | След.
cpdf_setrgbcolor_stroke | Уровень выше | cpdf_show_xy


cpdf_show_xy

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_show_xy -- Output text at position

Description

bool cpdf_show_xy ( int pdf_document, string text, float x_coor, float y_coor [, int mode] )

The cpdf_show_xy() function outputs the string text at position with coordinates (x_coor, y_coor). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Необязательный параметр mode определяет единицу измерения. Если он не указан, либо равен 0, используется определенная по умолчанию для страницы единица измерения. Иначе координаты измеряются в пунктах postscript без учета текущей единицы измерения.

Замечание: The function cpdf_show_xy() is identical to cpdf_text() without the optional parameters.

See also cpdf_text().

Пред. | Начало | След.
cpdf_setrgbcolor | Уровень выше | cpdf_show


cpdf_show

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_show -- Output text at current position

Description

bool cpdf_show ( int pdf_document, string text )

The cpdf_show() function outputs the string in text at the current position. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also cpdf_text(),
cpdf_begin_text() and
cpdf_end_text().

Пред. | Начало | След.
cpdf_show_xy | Уровень выше | cpdf_stringwidth


cpdf_stringwidth

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_stringwidth -- Returns width of text in current font

Description

float cpdf_stringwidth ( int pdf_document, string text )

The cpdf_stringwidth() function returns the width of the string in text. It requires a font to be set before.

See also cpdf_set_font().

Пред. | Начало | След.
cpdf_show | Уровень выше | cpdf_stroke


cpdf_stroke

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_stroke -- Draw line along path

Description

bool cpdf_stroke ( int pdf_document )

The cpdf_stroke() function draws a line along current path. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also cpdf_closepath() and cpdf_closepath_stroke().

Пред. | Начало | След.
cpdf_stringwidth | Уровень выше | cpdf_text


cpdf_text

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_text -- Output text with parameters

Description

bool cpdf_text ( int pdf_document, string text [, float x_coor, float y_coor [, int mode [, float orientation [, int alignmode]]]] )

The cpdf_text() function outputs the string text at position with coordinates (x_coor, y_coor). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Необязательный параметр mode определяет единицу измерения. Если он не указан, либо равен 0, используется определенная по умолчанию для страницы единица измерения. Иначе координаты измеряются в пунктах postscript без учета текущей единицы измерения.

The optional parameter orientation is the rotation of the text in degree.

The optional parameter alignmode determines how the text is aligned.

See the ClibPDF documentation for possible values.

See also cpdf_show_xy().

Пред. | Начало | След.
cpdf_stroke | Уровень выше | cpdf_translate


cpdf_translate

(PHP 3 >= 3.0.8, PHP 4, PHP 5 <= 5.0.4)

cpdf_translate -- Sets origin of coordinate system

Description

bool cpdf_translate ( int pdf_document, float x_coor, float y_coor )

The cpdf_translate() function set the origin of coordinate system to the point (x_coor, y_coor). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Необязательный параметр mode определяет единицу измерения. Если он не указан, либо равен 0, используется определенная по умолчанию для страницы единица измерения. Иначе координаты измеряются в пунктах postscript без учета текущей единицы измерения.

Пред. | Начало | След.
cpdf_text | Уровень выше | COM and .Net (Windows)


Crack Functions

Руководство по PHP
Пред. След.

XVI. Crack Functions

Введение

These functions allow you to use the CrackLib library to test the 'strength' of a password. The 'strength' of a password is tested by that checks length, use of upper and lower case and checked against the specified CrackLib dictionary. CrackLib will also give helpful diagnostic messages that will help 'strengthen' the password.

Замечание: This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 5.0.0.

Требования

More information regarding CrackLib along with the library can be found at http://www.crypticide.com/users/alecm/.

Установка

Это расширение PECL не поставляется вместе с PHP. Дополнительная информация, такая как новый версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, могут быть найдены здесь: http://pecl.php.net/package/crack.

В PHP 4 исходные файлы этого расширения PECL могут быть найдены в директории ext/ внутри исходных файлов PHP или по ссылке PECL выше. In order to use these functions you must compile PHP with Crack support by using the --with-crack[=DIR] configuration option.

Windows users will enable php_crack.dll inside of php.ini in order to use these functions. В PHP 4 этот DLL находится в директории extensions/ внутри директории бинарного дистрибутива PHP для Windows. Вы можете скачать DLL этого расширения PECL со страницы PHP Downloads или http://snaps.php.net/.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Crack configuration options

Name | Default | Changeable | Changelog
crack.default_dictionary | NULL | PHP_INI_SYSTEM | Available since PHP 4.0.5.
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Примеры

This example shows how to open a CrackLib dictionary, test a given password, retrieve any diagnostic messages, and close the dictionary.

Пример 1. CrackLib example

<?php
// Open CrackLib Dictionary
$dictionary = crack_opendict('/usr/local/lib/pw_dict')
     or die('Unable to open CrackLib dictionary');

// Perform password check
$check = crack_check($dictionary, 'gx9A2s0x');

// Retrieve messages
$diag = crack_getlastmessage();
echo $diag; // 'strong password'

// Close dictionary
crack_closedict($dictionary);
?>

Замечание: If crack_check() returns TRUE, crack_getlastmessage() will return 'strong password'.

Содержание
crack_check -- Performs an obscure check with the given password
crack_closedict -- Closes an open CrackLib dictionary
crack_getlastmessage -- Returns the message from the last obscure check
crack_opendict -- Opens a new CrackLib dictionary

Пред. | Начало | След.
variant_xor | Уровень выше | crack_check


crack_check

(PHP 4 >= 4.0.5, PECL)

crack_check -- Performs an obscure check with the given password

Описание

bool crack_check ( resource dictionary, string password )

bool crack_check ( string password )

Performs an obscure check with the given password on the specified dictionary.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

dictionary

The crack lib dictionary. If not specified, the last opened dictionary is used.

password

The tested password.

Возвращаемые значения

Returns TRUE if password is strong, or FALSE otherwise.

Пред. | Начало | След.
Crack Functions | Уровень выше | crack_closedict


crack_closedict

(PHP 4 >= 4.0.5, PECL)

crack_closedict -- Closes an open CrackLib dictionary

Описание

bool crack_closedict ( [resource dictionary] )

crack_closedict() closes the specified dictionary identifier.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

dictionary

The dictionary to close. If not specified, the current directory is closed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

crack_opendict()

Пред. | Начало | След.
crack_check | Уровень выше | crack_getlastmessage


crack_getlastmessage

(PHP 4 >= 4.0.5, PECL)

crack_getlastmessage -- Returns the message from the last obscure check

Описание

string crack_getlastmessage ( void )

crack_getlastmessage() returns the message from the last obscure check.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Возвращаемые значения

The message from the last obscure check.

Смотрите также

crack_check()

Пред. | Начало | След.
crack_closedict | Уровень выше | crack_opendict


crack_opendict

(PHP 4 >= 4.0.5, PECL)

crack_opendict -- Opens a new CrackLib dictionary

Описание

resource crack_opendict ( string dictionary )

crack_opendict() opens the specified CrackLib dictionary for use with crack_check().

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Замечание: Only one dictionary may be open at a time.

Список параметров

dictionary

The path to the Cracklib dictionary.

Возвращаемые значения

Returns a dictionary resource identifier on success, or FALSE on failure.

Смотрите также

crack_check()
crack_closedict()

Пред. | Начало | След.
crack_getlastmessage | Уровень выше | Функции определения типа символов


Функции определения типа символов

Руководство по PHP
Пред. След.

XVII. Функции определения типа символов

Введение

Функции представленные этим расширением позволяют проверить принадлежность символа или строки определенному классу символов принимая во внимание текущие региональные установки (смотрите также функцию setlocale()).

Будучи вызванными с челочисленным аргументом, эти функции полностью аналогичны своим эквивалентам в языке C (из ctype.h).

Если аргументом выступает строка, то функции будут проверять каждый символ в этой строке и вернут TRUE только если каждый символ удовлятворяет требуемуму условию. При вызове с пустой строкой в качестве аргуемента, функции всегда возвращают TRUE.

При передачи данных других типов (кроме целого или строки) функции возвращают FALSE.

Требования

Стандартная библиотека C всегда доступна, поэтому дополнительных требований нет.

Установка

Начиная с PHP 4.2.0 эти функции включены по умолчанию. В предыдущих версиях вы должны сконфигурировать и откомпилировать PHP с --enable-ctype. Запретить поддержку ctype можно с помощью --disable-ctype.

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.

Замечание: Встроенная поддержка ctype доступна с PHP 4.3.0.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Содержание
ctype_alnum -- Check for alphanumeric character(s)
ctype_alpha -- Check for alphabetic character(s)
ctype_cntrl -- Check for control character(s)
ctype_digit -- Проверяет является ли символ цифрой
ctype_graph -- Check for any printable character(s) except space
ctype_lower -- Check for lowercase character(s)
ctype_print -- Check for printable character(s)
ctype_punct -- Check for any printable character which is not whitespace or an alphanumeric character
ctype_space -- Check for whitespace character(s)
ctype_upper -- Check for uppercase character(s)
ctype_xdigit -- Проверяет является ли указанный символ шестнадцатеричной цифрой

Пред. | Начало | След.
crack_opendict | Уровень выше | ctype_alnum


ctype_alnum

(PHP 4 >= 4.0.4, PHP 5)

ctype_alnum -- Check for alphanumeric character(s)

Описание

bool ctype_alnum ( string text )

Checks if all of the characters in the provided string, text, are alphanumeric. In the standard C locale letters are just [A-Za-z] and the function is equivalent to preg_match('/^[a-z0-9]*$/i', $text).

Список параметров

text

The tested string.

Возвращаемые значения

Returns TRUE if every character in text is either a letter or a digit, FALSE otherwise.

Примеры

Пример 1. A ctype_alnum() example (using the default locale)

<?php
$strings = array('AbCd1zyZ9', 'foo!#$bar');
foreach ($strings as $testcase) {
    if (ctype_alnum($testcase)) {
        echo "The string $testcase consists of all letters or digits.\n";
    } else {
        echo "The string $testcase does not consist of all letters or digits.\n";
    }
}
?>

Результат выполнения данного примера:

The string AbCd1zyZ9 consists of all letters or digits.
The string foo!#$bar does not consists of all letters or digits.

Смотрите также

ctype_alpha()
ctype_digit()
setlocale()

Пред. | Начало | След.
Функции определения типа символов | Уровень выше | ctype_alpha


ctype_alpha

(PHP 4 >= 4.0.4, PHP 5)

ctype_alpha -- Check for alphabetic character(s)

Описание

bool ctype_alpha ( string text )

Checks if all of the characters in the provided string, text, are alphabetic. In the standard C locale letters are just [A-Za-z] and ctype_alpha() is equivalent to (ctype_upper($text) || ctype_lower($text)) if $text is just a single character, but other languages have letters that are considered neither upper nor lower case.

Список параметров

text

The tested string.

Возвращаемые значения

Returns TRUE if every character in text is a letter from the current locale, FALSE otherwise.

Примеры

Пример 1. A ctype_alpha() example (using the default locale)

<?php
$strings = array('KjgWZC', 'arf12');
foreach ($strings as $testcase) {
    if (ctype_alpha($testcase)) {
        echo "The string $testcase consists of all letters.\n";
    } else {
        echo "The string $testcase does not consist of all letters.\n";
    }
}
?>

Результат выполнения данного примера:

The string KjgWZC consists of all letters.
The string arf12 does not consists of all letters.

Смотрите также

ctype_upper()
ctype_lower()
setlocale()

Пред. | Начало | След.
ctype_alnum | Уровень выше | ctype_cntrl


ctype_cntrl

(PHP 4 >= 4.0.4, PHP 5)

ctype_cntrl -- Check for control character(s)

Описание

bool ctype_cntrl ( string text )

Checks if all of the characters in the provided string, text, are control characters. Control characters are e.g. line feed, tab, esc.

Список параметров

text

The tested string.

Возвращаемые значения

Returns TRUE if every character in text is a letter from the current locale, FALSE otherwise.

Примеры

Пример 1. A ctype_cntrl() example

<?php
$strings = array('string1' => "\n\r\t", 'string2' => 'arf12');
foreach ($strings as $name => $testcase) {
    if (ctype_cntrl($testcase)) {
        echo "The string '$name' consists of all control characters.\n";
    } else {
        echo "The string '$name' does not consist of all control characters.\n";
    }
}
?>

Результат выполнения данного примера:

The string 'string1' consists of all control characters.
The string 'string2' does not consists of all control characters.

Смотрите также

ctype_print()

Пред. | Начало | След.
ctype_alpha | Уровень выше | ctype_digit


ctype_digit

(PHP 4 >= 4.0.4, PHP 5)

ctype_digit -- Проверяет является ли символ цифрой

Описание

bool ctype_digit ( string text )

Возвращает TRUE если каждый символ строки text является десятичной цифрой, либо FALSE в противном случае.

Пример 1. Пример использования функции ctype_digit()

<?php
$strings = array('1820.20', '10002', 'wsl!12');
foreach ($strings as $testcase) {
    if (ctype_digit($testcase)) {
        echo "Строка $testcase состоит только из цифр.\n";
    } else {
        echo "Строка $testcase не состоит только из цифр.\n";
    }
}
?>

Этот пример выведет :

Строка 1820.20 не состоит только из цифр.
Строка 10002 состоит только из цифр.
Строка wsl!12 не состоит только из цифр.

Смотрите также ctype_alnum() и ctype_xdigit().

Пред. | Начало | След.
ctype_cntrl | Уровень выше | ctype_graph


ctype_graph

(PHP 4 >= 4.0.4, PHP 5)

ctype_graph -- Check for any printable character(s) except space

Описание

bool ctype_graph ( string text )

Checks if all of the characters in the provided string, text, creates visible output.

Список параметров

text

The tested string.

Возвращаемые значения

Returns TRUE if every character in text is printable and actually creates visible output (no white space), FALSE otherwise.

Примеры

Пример 1. A ctype_graph() example

<?php
$strings = array('string1' => "asdf\n\r\t", 'string2' => 'arf12', 'string3' => 'LKA#@%.54');
foreach ($strings as $name => $testcase) {
    if (ctype_graph($testcase)) {
        echo "The string '$name' consists of all (visibly) printable characters.\n";
    } else {
        echo "The string '$name' does not consist of all (visibly) printable characters.\n";
    }
}
?>

Результат выполнения данного примера:

The string 'string1' does not consist of all (visibly) printable characters.
The string 'string2' consists of all (visibly) printable characters.
The string 'string3' consists of all (visibly) printable characters.

Смотрите также

ctype_alnum()
ctype_print()
ctype_punct()

Пред. | Начало | След.
ctype_digit | Уровень выше | ctype_lower


ctype_lower

(PHP 4 >= 4.0.4, PHP 5)

ctype_lower -- Check for lowercase character(s)

Описание

bool ctype_lower ( string text )

Checks if all of the characters in the provided string, text, are lowercase letters.

Список параметров

text

The tested string.

Возвращаемые значения

Returns TRUE if every character in text is a lowercase letter in the current locale.

Примеры

Пример 1. A ctype_lower() example (using the default locale)

<?php
$strings = array('aac123', 'qiutoas', 'QASsdks');
foreach ($strings as $testcase) {
    if (ctype_lower($testcase)) {
        echo "The string $testcase consists of all lowercase letters.\n";
    } else {
        echo "The string $testcase does not consist of all lowercase letters.\n";
    }
}
?>

Результат выполнения данного примера:

The string aac123 does not consist of all lowercase letters.
The string qiutoas consists of all lowercase letters.
The string QASsdks does not consist of all lowercase letters.

Смотрите также

ctype_alpha()
ctype_upper()
setlocale()

Пред. | Начало | След.
ctype_graph | Уровень выше | ctype_print


ctype_print

(PHP 4 >= 4.0.4, PHP 5)

ctype_print -- Check for printable character(s)

Описание

bool ctype_print ( string text )

Checks if all of the characters in the provided string, text, are printable.

Список параметров

text

The tested string.

Возвращаемые значения

Returns TRUE if every character in text will actually create output (including blanks). Returns FALSE if text contains control characters or characters that do not have any output or control function at all.

Примеры

Пример 1. A ctype_print() example

<?php
$strings = array('string1' => "asdf\n\r\t", 'string2' => 'arf12', 'string3' => 'LKA#@%.54');
foreach ($strings as $name => $testcase) {
    if (ctype_print($testcase)) {
        echo "The string '$name' consists of all printable characters.\n";
    } else {
        echo "The string '$name' does not consist of all printable characters.\n";
    }
}
?>

Результат выполнения данного примера:

The string 'string1' does not consist of all printable characters.
The string 'string2' consists of all printable characters.
The string 'string3' consists of all printable characters.

Смотрите также

ctype_cntrl()
ctype_graph()
ctype_punct()

Пред. | Начало | След.
ctype_lower | Уровень выше | ctype_punct


ctype_punct

(PHP 4 >= 4.0.4, PHP 5)

ctype_punct -- Check for any printable character which is not whitespace or an alphanumeric character

Описание

bool ctype_punct ( string text )

Checks if all of the characters in the provided string, text, are punctuation character.

Список параметров

text

The tested string.

Возвращаемые значения

Returns TRUE if every character in text is printable, but neither letter, digit or blank, FALSE otherwise.

Примеры

Пример 1. A ctype_punct() example

<?php
$strings = array('ABasdk!@!$#', '!@ # $', '*&$()');
foreach ($strings as $testcase) {
    if (ctype_punct($testcase)) {
        echo "The string $testcase consists of all punctuation.\n";
    } else {
        echo "The string $testcase does not consist of all punctuation.\n";
    }
}
?>

Результат выполнения данного примера:

The string ABasdk!@!$# does not consist of all punctuation.
The string !@ # $ does not consist of all punctuation.
The string *&$() consists of all punctuation.

Смотрите также

ctype_cntrl()
ctype_graph()

Пред. | Начало | След.
ctype_print | Уровень выше | ctype_space


ctype_space

(PHP 4 >= 4.0.4, PHP 5)

ctype_space -- Check for whitespace character(s)

Описание

bool ctype_space ( string text )

Checks if all of the characters in the provided string, text, creates whitespace.

Список параметров

text

The tested string.

Возвращаемые значения

Returns TRUE if every character in text creates some sort of white space, FALSE otherwise. Besides the blank character this also includes tab, vertical tab, line feed, carriage return and form feed characters.

Примеры

Пример 1. A ctype_space() example

<?php
$strings = array('string1' => "\n\r\t", 'string2' => "\narf12", 'string3' => '\n\r\t');
foreach ($strings as $name => $testcase) {
    if (ctype_space($testcase)) {
        echo "The string '$name' consists of all whitespace characters.\n";
    } else {
        echo "The string '$name' does not consist of all whitespace characters.\n";
    }
}
?>

Результат выполнения данного примера:

The string 'string1' consists of all whitespace characters.
The string 'string2' does not consist of all whitespace characters.
The string 'string3' does not consist of all whitespace characters.

Смотрите также

ctype_cntrl()
ctype_graph()
ctype_punct()

Пред. | Начало | След.
ctype_punct | Уровень выше | ctype_upper


ctype_upper

(PHP 4 >= 4.0.4, PHP 5)

ctype_upper -- Check for uppercase character(s)

Описание

bool ctype_upper ( string text )

Checks if all of the characters in the provided string, text, are uppercase characters.

Список параметров

text

The tested string.

Возвращаемые значения

Returns TRUE if every character in text is an uppercase letter in the current locale.

Примеры

Пример 1. A ctype_upper() example (using the default locale)

<?php
$strings = array('AKLWC139', 'LMNSDO', 'akwSKWsm');
foreach ($strings as $testcase) {
    if (ctype_upper($testcase)) {
        echo "The string $testcase consists of all uppercase letters.\n";
    } else {
        echo "The string $testcase does not consist of all uppercase letters.\n";
    }
}
?>

Результат выполнения данного примера:

The string AKLWC139 does not consist of all uppercase letters.
The string LMNSDO consists of all uppercase letters.
The string akwSKWsm does not consist of all uppercase letters.

Смотрите также

ctype_alpha()
ctype_lower()
setlocale()

Пред. | Начало | След.
ctype_space | Уровень выше | ctype_xdigit


ctype_xdigit

(PHP 4 >= 4.0.4, PHP 5)

ctype_xdigit -- Проверяет является ли указанный символ шестнадцатеричной цифрой

Описание

bool ctype_xdigit ( string text )

Возвращает TRUE если каждый символ строки text является шестнадцатеричной 'цифрой', то есть десятичной цифрой либо символом из диапазона [A-Fa-f] , в обратном случае возвращает FALSE.

Пример 1. Пример ctype_xdigit()

<?php
$strings = array('AB10BC99', 'AR1012', 'ab12bc99');
foreach ($strings as $testcase) {
    if (ctype_xdigit($testcase)) {
        echo "Строка $testcase состоит из шестнадцатеричных цифр.\n";
    } else {
        echo "Строка $testcase состоит не только из шестнадцатеричных цифр.\n";
    }
}
?>

В результате мы получим :

Строка AB10BC99 состоит из шестнадцатеричных цифр.
Строка AR1012 состоит не только из шестнадцатеричных цифр.
Строка ab12bc99 состоит из шестнадцатеричных цифр.

Смотрите также ctype_digit().

Пред. | Начало | След.
ctype_upper | Уровень выше | Функции CURL, Client URL Library


Функции CURL, Client URL Library

Руководство по PHP
Пред. След.

XVIII. Функции CURL, Client URL Library

Введение

В PHP включена поддержка libcurl - библиотеки функций, написанной Daniel Stenberg, которая позволяет взаимодействовать с различными серверами по различным протоколам. В настоящее время libcurl поддерживает протоколы http, https, ftp, gopher, telnet, dict, file, и ldap. libcurl также умеет работать с сертификатами HTTPS, посылать запросы к HTTP серверам методами POST и PUT, закачивать файлы по протоколам HTTP и FTP (последнее можно сделать также используя модуль FTP), использовать прокси-серверы, cookies и аутентификацию пользователей.

Эти функции были добавлены в PHP 4.0.2.

Требования

Для использования функций CURL необходимо установить пакет CURL. Необходимо мспользовать версию CURL 7.0.2-beta или старше, с более младшими версиями PHP не работает. Для PHP 4.2.3 необходимо использовать версию CURL 7.9.0 или старше. Начиная PHP 4.3.0, необходима CURL 7.9.8 или старше. Вероятнее всего, PHP 5.0.0 будет требовать CURL не младше 7.10.5.

Установка

Для использования CURL необходимо также собрать PHP с опцией --with-curl[=DIR], где DIR - имя директории, содержащей поддиректории lib и include. Директория "include" должна содержать поддиректорию "curl" с файлами easy.h и curl.h. Директория "lib" должна содержать файл libcurl.a. Начиная с PHP 4.3.0 с помощью опции --with-curlwrappers можно сконфигурировать PHP для использования CURL при работе с удаленными файлами.

Замечание для пользователей Win32: Для работы с этим модулем в Windows необходимо скопировать файлы libeay32.dll и ssleay32.dll из директории DLL Win32 дистрибутива PHP в директорию SYSTEM (Нпример C:\WINNT\SYSTEM32 или C:\WINDOWS\SYSTEM)

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

CURLOPT_PORT (integer)

CURLOPT_FILE (integer)

CURLOPT_INFILE (integer)

CURLOPT_INFILESIZE (integer)

CURLOPT_URL (integer)

CURLOPT_PROXY (integer)

CURLOPT_VERBOSE (integer)

CURLOPT_HEADER (integer)

CURLOPT_HTTPHEADER (integer)

CURLOPT_NOPROGRESS (integer)

CURLOPT_NOBODY (integer)

CURLOPT_FAILONERROR (integer)

CURLOPT_UPLOAD (integer)

CURLOPT_POST (integer)

CURLOPT_FTPLISTONLY (integer)

CURLOPT_FTPAPPEND (integer)

CURLOPT_NETRC (integer)

CURLOPT_FOLLOWLOCATION (integer)

CURLOPT_FTPASCII (integer)

CURLOPT_PUT (integer)

CURLOPT_MUTE (integer)

CURLOPT_USERPWD (integer)

CURLOPT_PROXYUSERPWD (integer)

CURLOPT_RANGE (integer)

CURLOPT_TIMEOUT (integer)

CURLOPT_POSTFIELDS (integer)

CURLOPT_REFERER (integer)

CURLOPT_USERAGENT (integer)

CURLOPT_FTPPORT (integer)

CURLOPT_LOW_SPEED_LIMIT (integer)

CURLOPT_LOW_SPEED_TIME (integer)

CURLOPT_RESUME_FROM (integer)

CURLOPT_COOKIE (integer)

CURLOPT_SSLCERT (integer)

CURLOPT_SSLCERTPASSWD (integer)

CURLOPT_WRITEHEADER (integer)

CURLOPT_SSL_VERIFYHOST (integer)

CURLOPT_COOKIEFILE (integer)

CURLOPT_SSLVERSION (integer)

CURLOPT_TIMECONDITION (integer)

CURLOPT_TIMEVALUE (integer)

CURLOPT_CUSTOMREQUEST (integer)

CURLOPT_STDERR (integer)

CURLOPT_TRANSFERTEXT (integer)

CURLOPT_RETURNTRANSFER (integer)

CURLOPT_QUOTE (integer)

CURLOPT_POSTQUOTE (integer)

CURLOPT_INTERFACE (integer)

CURLOPT_KRB4LEVEL (integer)

CURLOPT_HTTPPROXYTUNNEL (integer)

CURLOPT_FILETIME (integer)

CURLOPT_WRITEFUNCTION (integer)

CURLOPT_READFUNCTION (integer)

CURLOPT_PASSWDFUNCTION (integer)

CURLOPT_HEADERFUNCTION (integer)

CURLOPT_MAXREDIRS (integer)

CURLOPT_MAXCONNECTS (integer)

CURLOPT_CLOSEPOLICY (integer)

CURLOPT_FRESH_CONNECT (integer)

CURLOPT_FORBID_REUSE (integer)

CURLOPT_RANDOM_FILE (integer)

CURLOPT_EGDSOCKET (integer)

CURLOPT_CONNECTTIMEOUT (integer)

CURLOPT_SSL_VERIFYPEER (integer)

CURLOPT_CAINFO (integer)

CURLOPT_COOKIEJAR (integer)

CURLOPT_SSL_CIPHER_LIST (integer)

CURLOPT_BINARYTRANSFER (integer)

CURLCLOSEPOLICY_LEAST_RECENTLY_USED (integer)

CURLCLOSEPOLICY_LEAST_TRAFFIC (integer)

CURLCLOSEPOLICY_SLOWEST (integer)

CURLCLOSEPOLICY_CALLBACK (integer)

CURLCLOSEPOLICY_OLDEST (integer)

CURLINFO_EFFECTIVE_URL (integer)

CURLINFO_HTTP_CODE (integer)

CURLINFO_HEADER_SIZE (integer)

CURLINFO_REQUEST_SIZE (integer)

CURLINFO_TOTAL_TIME (integer)

CURLINFO_NAMELOOKUP_TIME (integer)

CURLINFO_CONNECT_TIME (integer)

CURLINFO_PRETRANSFER_TIME (integer)

CURLINFO_SIZE_UPLOAD (integer)

CURLINFO_SIZE_DOWNLOAD (integer)

CURLINFO_SPEED_DOWNLOAD (integer)

CURLINFO_SPEED_UPLOAD (integer)

CURLINFO_FILETIME (integer)

CURLINFO_SSL_VERIFYRESULT (integer)

CURLINFO_CONTENT_LENGTH_DOWNLOAD (integer)

CURLINFO_CONTENT_LENGTH_UPLOAD (integer)

CURLE_OK (integer)

CURLE_UNSUPPORTED_PROTOCOL (integer)

CURLE_FAILED_INIT (integer)

CURLE_URL_MALFORMAT (integer)

CURLE_URL_MALFORMAT_USER (integer)

CURLE_COULDNT_RESOLVE_PROXY (integer)

CURLE_COULDNT_RESOLVE_HOST (integer)

CURLE_COULDNT_CONNECT (integer)

CURLE_FTP_WEIRD_SERVER_REPLY (integer)

CURLE_FTP_ACCESS_DENIED (integer)

CURLE_FTP_USER_PASSWORD_INCORRECT (integer)

CURLE_FTP_WEIRD_PASS_REPLY (integer)

CURLE_FTP_WEIRD_USER_REPLY (integer)

CURLE_FTP_WEIRD_PASV_REPLY (integer)

CURLE_FTP_WEIRD_227_FORMAT (integer)

CURLE_FTP_CANT_GET_HOST (integer)

CURLE_FTP_CANT_RECONNECT (integer)

CURLE_FTP_COULDNT_SET_BINARY (integer)

CURLE_PARTIAL_FILE (integer)

CURLE_FTP_COULDNT_RETR_FILE (integer)

CURLE_FTP_WRITE_ERROR (integer)

CURLE_FTP_QUOTE_ERROR (integer)

CURLE_HTTP_NOT_FOUND (integer)

CURLE_WRITE_ERROR (integer)

CURLE_MALFORMAT_USER (integer)

CURLE_FTP_COULDNT_STOR_FILE (integer)

CURLE_READ_ERROR (integer)

CURLE_OUT_OF_MEMORY (integer)

CURLE_OPERATION_TIMEOUTED (integer)

CURLE_FTP_COULDNT_SET_ASCII (integer)

CURLE_FTP_PORT_FAILED (integer)

CURLE_FTP_COULDNT_USE_REST (integer)

CURLE_FTP_COULDNT_GET_SIZE (integer)

CURLE_HTTP_RANGE_ERROR (integer)

CURLE_HTTP_POST_ERROR (integer)

CURLE_SSL_CONNECT_ERROR (integer)

CURLE_FTP_BAD_DOWNLOAD_RESUME (integer)

CURLE_FILE_COULDNT_READ_FILE (integer)

CURLE_LDAP_CANNOT_BIND (integer)

CURLE_LDAP_SEARCH_FAILED (integer)

CURLE_LIBRARY_NOT_FOUND (integer)

CURLE_FUNCTION_NOT_FOUND (integer)

CURLE_ABORTED_BY_CALLBACK (integer)

CURLE_BAD_FUNCTION_ARGUMENT (integer)

CURLE_BAD_CALLING_ORDER (integer)

CURLE_HTTP_PORT_FAILED (integer)

CURLE_BAD_PASSWORD_ENTERED (integer)

CURLE_TOO_MANY_REDIRECTS (integer)

CURLE_UNKNOWN_TELNET_OPTION (integer)

CURLE_TELNET_OPTION_SYNTAX (integer)

CURLE_OBSOLETE (integer)

CURLE_SSL_PEER_CERTIFICATE (integer)

Примеры

После сборки PHP с поддержкой CURL можно использовать функции CURL functions. Работа с CURL всегда начинается с вызова curl_init(), затем устанавливаются необходимые параметры с помощью curl_setopt(), и выполняется требуемая операция вызовом curl_exec(), после чего вызовом curl_close() сеанс работы завершается. Приведенный ниже пример использует функции CURL для сохранения стартовой страницы сайта example.com в файл:

Пример 1. Использования модуля CURL для сохранения стартовой страницы example.com

<?php

$ch = curl_init("http://www.example.com/");
$fp = fopen("example_homepage.txt", "w");

curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);
curl_close($ch);
fclose($fp);
?>

Содержание
curl_close -- Завершает сеанс CURL
curl_copy_handle -- Copy a cURL handle along with all of its preferences
curl_errno -- Возвращает код последней ошибки
curl_error -- Возвращает строку с описанием последней ошибки
curl_exec -- Выполняет запрос CURL
curl_getinfo -- Возвращает информацию о последней операции
curl_init -- Инициализирует сеанс CURL
curl_multi_add_handle -- Добавляет обычный cURL дескриптор к набору cURL дескрипторов
curl_multi_close -- Закрывает набор cURL дескрипторов
curl_multi_exec -- Выполняет операции с набором cURL дескрипторов
curl_multi_getcontent -- Возвращает результат операции, если был установлен параметр CURLOPT_RETURNTRANSFER
curl_multi_info_read -- Возвращает информацию о текущих операциях
curl_multi_init -- Создает набор cURL дескрипторов
curl_multi_remove_handle -- Удаляет cURL дескриптор из набора cURL дескрипторов
curl_multi_select -- Возвращает сокеты, созданные модулем cURL
curl_setopt -- Устанавливает параметр для сеанса CURL
curl_version -- Возвращает версию CURL

Пред. | Начало | След.
ctype_xdigit | Уровень выше | curl_close


curl_close

(PHP 4 >= 4.0.2, PHP 5)

curl_close -- Завершает сеанс CURL

Описание

void curl_close ( resource ch )

Завершает сеанс CURL и освобождает ресурсы. Дескриптор ch также уничтожается.

Пример 1. Инициализация сеанса CURL и загрузка web-страницы

<?php
// инициализация сеанса
$ch = curl_init();

// установка URL и других необходимых параметров
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// загрузка страницы и выдача её браузеру
curl_exec($ch);

// завершение сеанса и освобождение ресурсов
curl_close($ch);
?>

См. также описание функции curl_init().

Пред. | Начало | След.
Функции CURL, Client URL Library | Уровень выше | curl_copy_handle


curl_copy_handle

(PHP 5)

curl_copy_handle -- Copy a cURL handle along with all of its preferences

Description

resource curl_copy_handle ( resource ch )

This function copies a cURL handle, returning a new cURL handle with the same preferences.

Пример 1. Copying a cURL handle.

<?php
// create a new curl resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/');
curl_setopt($ch, CURLOPT_HEADER, 0);

// copy the handle
$ch2 = curl_copy_handle($ch);

// grab URL (http://www.example.com/) and pass it to the browser
curl_exec($ch2);

// close curl resources, and free up system resources
curl_close($ch2);
curl_close($ch);
?>

Пред. | Начало | След.
curl_close | Уровень выше | curl_errno


curl_errno

(PHP 4 >= 4.0.3, PHP 5)

curl_errno -- Возвращает код последней ошибки

Описание

int curl_errno ( resource ch )

Возвращает код ошибки для последней операции cURL с дескриптором ch, или 0 (ноль), если ошибки не было.

См. также описание функции curl_error() и коды ошибок CURL.

Пред. | Начало | След.
curl_copy_handle | Уровень выше | curl_error


curl_error

(PHP 4 >= 4.0.3, PHP 5)

curl_error -- Возвращает строку с описанием последней ошибки

Описание

string curl_error ( resource ch )

Возвращает сообщение об ошибке для последней операции cURL с дескриптором ch, или '' (пустую строку), если ошибки не было.

См. также описание функции curl_errno() и коды ошибок CURL.

Пред. | Начало | След.
curl_errno | Уровень выше | curl_exec


curl_exec

(PHP 4 >= 4.0.2, PHP 5)

curl_exec -- Выполняет запрос CURL

Описание

mixed curl_exec ( resource ch )

Эта функция вызывается после инициализации сеанса и установки всех необходимых параметров. Именна эта функция фактически выполняет требуемую операцию.

Пример 1. Инициализация сеанса CURL и загрузка web-страницы

<?php
// инициализация сеанса
$ch = curl_init();

// установка URL и других необходимых параметров
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// загрузка страницы и выдача её браузеру
curl_exec($ch);

// завершение сеанса и освобождение ресурсов
curl_close($ch);
?>

Замечание: Если вам нужно, чтобы эта функция вернула результат, а не вывела его в браузер, используйте опцию CURLOPT_RETURNTRANSFER с функцией curl_setopt().

Пред. | Начало | След.
curl_error | Уровень выше | curl_getinfo


curl_getinfo

(PHP 4 >= 4.0.4, PHP 5)

curl_getinfo -- Возвращает информацию о последней операции

Описание

string curl_getinfo ( resource ch [, int opt] )

Возвращает информацию о последней операции, opt может быть одной из следующих констант:

  • CURLINFO_EFFECTIVE_URL - Последний использованный URL

  • CURLINFO_HTTP_CODE - Последний полученный код HTTP

  • CURLINFO_FILETIME - Дата модификации загруженного документа, если она неизвестна, возвращается -1.

  • CURLINFO_TOTAL_TIME - Полное время выполнения операции в секундах.

  • CURLINFO_NAMELOOKUP_TIME - Время разрешения имени сервера в секундах.

  • CURLINFO_CONNECT_TIME - Время, затраченное на установку соединения, в секундах

  • CURLINFO_PRETRANSFER_TIME - Время, прошедшее от начала операции до готовности к фактической передаче данных, в секундах

  • CURLINFO_STARTTRANSFER_TIME - Время, прошедшее от начала операции до момента передачи первого байта данных, в секундах

  • CURLINFO_REDIRECT_TIME - Общее время, затраченное на перенапрвления, в секундах

  • CURLINFO_SIZE_UPLOAD - Количество байт при закачке

  • CURLINFO_SIZE_DOWNLOAD - Количество байт при загрузке

  • CURLINFO_SPEED_DOWNLOAD - Средняя скорость закачки

  • CURLINFO_SPEED_UPLOAD - Средняя скорость загрузки

  • CURLINFO_HEADER_SIZE - Суммарный размер всех полученных заголовков

  • CURLINFO_REQUEST_SIZE - Суммарный размер всех отправленных запросов, в настоящее время используется только для HTTP запросов

  • CURLINFO_SSL_VERIFYRESULT - Результат проверки SSL сертификата, запрошенной с помощью установки параметра CURLOPT_SSL_VERIFYPEER

  • CURLINFO_CONTENT_LENGTH_DOWNLOAD - размер загруженного документа, прочитанный из заголовка Content-Length

  • CURLINFO_CONTENT_LENGTH_UPLOAD - Размер закачиваемых данных

  • CURLINFO_CONTENT_TYPE - Содержимое полученного заголовка Content-type, или NULL в случае, когда этот заголовок не был получен

При вызове без необязательного аргумента opt возвращается ассоциативный массив со следующими индексами, которые соответствуют значениям аргумента opt:

  • "url"

  • "content_type"

  • "http_encode"

  • "header_size"

  • "request_size"

  • "filetime"

  • "ssl_verify_result"

  • "redirect_count"

  • "total_time"

  • "namelookup_time"

  • "connect_time"

  • "pretransfer_time"

  • "size_upload"

  • "size_download"

  • "speed_download"

  • "speed_upload"

  • "download_content_length"

  • "upload_content_length"

  • "starttransfer_time"

  • "redirect_time"

Пред. | Начало | След.
curl_exec | Уровень выше | curl_init


curl_init

(PHP 4 >= 4.0.2, PHP 5)

curl_init -- Инициализирует сеанс CURL

Описание

resource curl_init ( [string url] )

curl_init() создает новый сеанс CURL и возвращает дескриптор, который используется с функциями curl_setopt(), curl_exec() и curl_close(). Если передан необязательный аргумент url, опция CURLOPT_URL будет автоматически установлена в значение этого аргумента. Если этот аргумент не передан, необходимо использовать функцию curl_setopt().

Пример 1. Инициализация сеанса CURL и загрузка web-страницы

<?php
// инициализация сеанса
$ch = curl_init();

// установка URL и других необходимых параметров
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// загрузка страницы и выдача её браузеру
curl_exec($ch);

// завершение сеанса и освобождение ресурсов
curl_close($ch);
?>

См. также описание функций curl_close() и curl_setopt()

Пред. | Начало | След.
curl_getinfo | Уровень выше | curl_multi_add_handle


curl_multi_add_handle

(PHP 5)

curl_multi_add_handle -- Добавляет обычный cURL дескриптор к набору cURL дескрипторов

Описание

int curl_multi_add_handle ( resource mh, resource ch )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

См. также описание функций
curl_multi_init(),
curl_init() и
curl_multi_remove_handle().

Пред. | Начало | След.
curl_init | Уровень выше | curl_multi_close


curl_multi_close

(PHP 5)

curl_multi_close -- Закрывает набор cURL дескрипторов

Описание

void curl_multi_close ( resource mh )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

См. также описание функций curl_multi_init() и curl_close().

Пред. | Начало | След.
curl_multi_add_handle | Уровень выше | curl_multi_exec


curl_multi_exec

(PHP 5)

curl_multi_exec -- Выполняет операции с набором cURL дескрипторов

Описание

int curl_multi_exec ( resource mh )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

См. также описание функций curl_multi_init() и curl_exec().

Пред. | Начало | След.
curl_multi_close | Уровень выше | curl_multi_getcontent


curl_multi_getcontent

(PHP 5)

curl_multi_getcontent -- Возвращает результат операции, если был установлен параметр CURLOPT_RETURNTRANSFER

Описание

string curl_multi_getcontent ( resource ch )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

См. также описание функции curl_multi_init().

Пред. | Начало | След.
curl_multi_exec | Уровень выше | curl_multi_info_read


curl_multi_info_read

(PHP 5)

curl_multi_info_read -- Возвращает информацию о текущих операциях

Описание

array curl_multi_info_read ( resource mh )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

См. также описание функции curl_multi_init().

Пред. | Начало | След.
curl_multi_getcontent | Уровень выше | curl_multi_init


curl_multi_init

(PHP 5)

curl_multi_init -- Создает набор cURL дескрипторов

Описание

resource curl_multi_init ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

См. также описание функций curl_init() и curl_multi_close().

Пред. | Начало | След.
curl_multi_info_read | Уровень выше | curl_multi_remove_handle


curl_multi_remove_handle

(PHP 5)

curl_multi_remove_handle -- Удаляет cURL дескриптор из набора cURL дескрипторов

Описание

int curl_multi_remove_handle ( resource mh, resource ch )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

См. также описание функций
curl_multi_init(),
curl_init() и
curl_multi_add_handle().

Пред. | Начало | След.
curl_multi_init | Уровень выше | curl_multi_select


curl_multi_select

(PHP 5)

curl_multi_select -- Возвращает сокеты, созданные модулем cURL

Описание

int curl_multi_select ( resource mh [, float timeout] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

См. также описание функции curl_multi_init().

Пред. | Начало | След.
curl_multi_remove_handle | Уровень выше | curl_setopt


curl_setopt

(PHP 4 >= 4.0.2, PHP 5)

curl_setopt -- Устанавливает параметр для сеанса CURL

Описание

bool curl_setopt ( resource ch, string option, mixed value )

Функция curl_setopt() Устанавливает параметр для сеанса CURL, заданного аргументом ch. Аргумент option задает устанавливаемый параметр, а value - его значение.

Для перечисленных ниже параметров, value должен быть целым числом:

  • CURLOPT_INFILESIZE: при закачке файла на удаленный сервер, следует использовать этот параметр для указания ожидаемого размера файла.

  • CURLOPT_VERBOSE: При установке этого параметра в ненулевое значение cURL будет выводить подробные сообщения о всех производимых действиях.

  • CURLOPT_HEADER: При установке этого параметра в ненулевое значение результат будет включать полученные заголовки.

  • CURLOPT_NOPROGRESS: При установке этого параметра в ненулевое значение не будет выводиться индикатор прогресса операции.

    Замечание: В PHP этот параметр устанавливается в ненулевое значение по умолчнию. Изменять его значение рекомендуется только при отладке.

  • CURLOPT_NOBODY: При установке этого параметра в ненулевое значение результат не будет включать документ (например, вам нужно получить только заголовки).

  • CURLOPT_FAILONERROR: При установке этого параметра в ненулевое значение, получение HTTP кода более 300 считается ошибкой.

  • CURLOPT_UPLOAD: Установка этого параметра в ненулевое значение означает, что будет производиться закачка файла на удаленный сервер.

  • CURLOPT_POST: При установке этого параметра в ненулевое значение будет отправлен HTTP запрос методом POST типа application/x-www-form-urlencoded, используемый браузерами при отправке форм.

  • CURLOPT_FTPLISTONLY: При установке этого параметра в ненулевое значение будет получен список файлов в директории FTP сервера.

  • CURLOPT_FTPAPPEND: При установке этого параметра в ненулевое значение данные будут добавляться к файлу на FTP сервере, в противном случае файл будет перезаписан.

  • CURLOPT_NETRC: При установке этого параметра в ненулевое значение будет сделана попытка найти имя пользователя и пароль к удаленному серверу в файле ~./netrc.

  • CURLOPT_FOLLOWLOCATION: При установке этого параметра в ненулевое значение, при получении HTTP заголовка "Location: " будет происходить перенаправление на указанный этим заголовком URL (это действие выполняется рекурсивно, для каждого полученного заголовка "Location:").

  • CURLOPT_PUT: При установке этого параметра в ненулевое значение, будет производиться закачка файла методом HTTP PUT. Файл задается параметрами CURLOPT_INFILE и CURLOPT_INFILESIZE.

  • CURLOPT_MUTE: При установке этого параметра в ненулевое значение, все сообщения cURL будут подавляться.

  • CURLOPT_TIMEOUT: Задает масимальное время выполнения операции в секундах.

  • CURLOPT_LOW_SPEED_LIMIT: Задает минимальную скорость передачи в байтах в секунду. Если в течении времени, заданного параметром CURLOPT_LOW_SPEED_TIME, скорость передачи будет меньше этого значения, операция будет прервана.

  • CURLOPT_LOW_SPEED_TIME: Задает время в секундах, в течение которого скорость передачи должна быть ниже, чем CURLOPT_LOW_SPEED_LIMIT, чтобы операция была признана слишком медленной и прервана.

  • CURLOPT_RESUME_FROM: Задает позицию в файле в байтах, с которой начнется передача данных.

  • CURLOPT_CAINFO: Имя файла, содержащего один или более сертификатов, которые будут использованы при проверке подлинности удаленного сервера. Имеет значение только совместно с параметром CURLOPT_SSL_VERIFYPEER.

  • CURLOPT_SSL_VERIFYPEER: Установите этот параметр в ноль, чтобы запретить проверку сертификата удаленного сервера (начиная с curl 7.10, по умолчанию этот параметр имеет значение TRUE). Дополнительные сертификаты можно задать с помощью параметра CURLOPT_CAINFO (добавленного в in curl 7.9.8). Можно также указать путь к файлам сертификатов в параметре CURLOPT_CAPATH. Если CURLOPT_SSL_VERIFYPEER установлен в 0, возможно, также потребуется установить CURLOPT_SSL_VERIFYHOST в 1 или 0 (по умолчанию 2).

  • CURLOPT_SSLVERSION: Целое число, указывающее, какую версию SSL использовать (2 или 3). По умолчанию версия SSL определяется автоматически, но в некоторых случаях требуется явное указание.

  • CURLOPT_SSL_VERIFYHOST: Задает проверку имени, указанного в сертификате удаленного сервера, при установлении SSL соединения. Значение 1 означает проверку существования имени, значение 2 - кроме того, и проверку соответствия имени хоста.

  • CURLOPT_TIMECONDITION: Задает способ интерпретации значения параметра CURLOPT_TIMEVALUE. Возможные значения: TIMECOND_IFMODSINCE или TIMECOND_ISUNMODSINCE. Применяется только для протокола HTTP.

  • CURLOPT_TIMEVALUE: Задает время в секундах с 1 января 1970 г. Это значение будет использовано в соответствии со значением параметра CURLOPT_TIMECONDITION (по умолчанию TIMECOND_IFMODSINCE).

  • CURLOPT_RETURNTRANSFER: При установке этого параметра в ненулевое значение CURL будет возвращать результат, а не выводить его.

Для перечисленных ниже параметров, value должен быть строкой:

  • CURLOPT_URL: URL, с которым будет производиться операция. Значение этого параметра также может быть задано в вызове функции curl_init().

  • CURLOPT_USERPWD: Стока с именем пользователя и паролем в виде [username]:[password].

  • CURLOPT_PROXYUSERPWD: Стока с именем пользователя и паролем к HTTP прокси-серверу в виде [username]:[password].

  • CURLOPT_RANGE: Задает участок файла, который нужно загрузить, в формате "X-Y" , причем X или Y могут быть опущены. Протокол HTTP также поддерживает передачу нескольких фрагментов файла, это задается в виде "X-Y,N-M".

  • CURLOPT_POSTFIELDS: Строка, содержащая данные для HTTP POST запроса.

  • CURLOPT_REFERER: Задает значение HTTP заголовка "Referer: ".

  • CURLOPT_USERAGENT: Задает значение HTTP заголовка "User-Agent: ".

  • CURLOPT_FTPPORT: Задает значение, которое будет использоваться для определения IP адреса для команды "PORT" протокола ftp. Команда "PORT" сообщает серверу, с каким IP адресом он должен устанавливать соединение. Это может быть IP адрес, имя хоста, имя сетевого интерфейса (под Unix), или просто '-' для использования IP адреса по умолчанию.

  • CURLOPT_COOKIE: Содержимое заголовка "Cookie: ", который будет отправлен с HTTP запросом.

  • CURLOPT_SSLCERT: Имя файла с сертификатом в формате PEM.

  • CURLOPT_SSLCERTPASSWD: Пароль к файлу сертификата, заданному параметром CURLOPT_SSLCERT.

  • CURLOPT_COOKIEFILE: Имя файла, содержащего данные cookie. Данные могут быть либо в формате Netscape, либо просто HTTP-заголовки.

  • CURLOPT_CUSTOMREQUEST: Задает специальный метод, который будет использован в HTTP запросе вместоGET или HEAD. Это используется для отправке запросов DELETE или других, редко используемых. Допустимыми зачениями являются GET, POST, и т.д; не передавайте полный HTTP запрос в этом параметре. Например, 'GET /index.html HTTP/1.0\r\n\r\n' недопустимо.

    Замечание: Перед использованием этого параметра убедитесь, что сервер, к которому вы обращаетесь, поддерживает требуемый метод.

  • CURLOPT_PROXY: Имя HTTP прокси, через который будут направляться запросы.

  • CURLOPT_INTERFACE: Имя используемого сетевого интерфейса. Может быть именем интерфейса, IP адресом или именем хоста.

  • CURLOPT_KRB4LEVEL: Уровень безопасности KRB4 (Kerberos 4). Допустимы следующие значения (в порядке возрастания безопасности) : 'clear', 'safe', 'confidential', 'private'. Если переданное значение не входит в этот список, используется 'private'. Установка этого параметра в NULL, запрещает безопасность KRB4 . В настоящее время безопасность KRB4 поддерживается только для протокола FTP.

  • CURLOPT_HTTPHEADER: Массив с HTTP заголовками.

  • CURLOPT_QUOTE: Массив с FTP командами, которые будут выполнены перед выполнением основного запроса.

  • CURLOPT_POSTQUOTE: Массив с FTP командами, которые будут выполнены после выполнения основного запроса.

Для перечисленных ниже параметров, value должен быть дескриптором файла, возвращенным функцией fopen():

  • CURLOPT_FILE: Файл, в который будет выведен результат операции. По умолчанию STDOUT.

  • CURLOPT_INFILE: Файл, содержащий данные для передачи.

  • CURLOPT_WRITEHEADER: Файл, в который будут выведены полученные заголовки.

  • CURLOPT_STDERR: Файл, в который будут выводиться сообщения об ошибках. По умолчанию STDERR.

Пример 1. Инициализация сеанса CURL и загрузка web-страницы

<?php
// инициализация сеанса
$ch = curl_init();

// установка URL и других необходимых параметров
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// загрузка страницы и выдача её браузеру
curl_exec($ch);

// завершение сеанса и освобождение ресурсов
curl_close($ch);
?>

Пред. | Начало | След.
curl_multi_select | Уровень выше | curl_version


curl_version

(PHP 4 >= 4.0.2, PHP 5)

curl_version -- Возвращает версию CURL

Описание

string curl_version ( void )

Функция curl_version() возвращает строку с номером версии CURL.

Пред. | Начало | След.
curl_setopt | Уровень выше | Cybercash Payment Functions


Cybercash Payment Functions

Руководство по PHP
Пред. След.

XIX. Cybercash Payment Functions

Установка

These functions are only available if the interpreter has been compiled with the --with-cybercash=[DIR].

This extension has been moved from PHP as of PHP 4.3.0 and now CyberCash lives in PECL.

If you have questions as to the latest status of CyberCash then the following CyberCash Faq will be helpful. In short, CyberCash was bought out by VeriSign and although the CyberCash service continues to exist, VeriSign encourages users to switch. See the above faq and PECL link for details.

Содержание
cybercash_base64_decode -- base64 decode data for Cybercash
cybercash_base64_encode -- base64 encode data for Cybercash
cybercash_decr -- Cybercash decrypt
cybercash_encr -- Cybercash encrypt

Пред. | Начало | След.
curl_version | Уровень выше | cybercash_base64_decode


cybercash_base64_decode

(PHP 4 <= 4.2.3, PECL)

cybercash_base64_decode -- base64 decode data for Cybercash

Description

string cybercash_base64_decode ( string inbuff )

Пред. | Начало | След.
Cybercash Payment Functions | Уровень выше | cybercash_base64_encode


cybercash_base64_encode

(PHP 4 <= 4.2.3, PECL)

cybercash_base64_encode -- base64 encode data for Cybercash

Description

string cybercash_base64_encode ( string inbuff )

Пред. | Начало | След.
cybercash_base64_decode | Уровень выше | cybercash_decr


cybercash_decr

(PHP 4 <= 4.2.3, PECL)

cybercash_decr -- Cybercash decrypt

Description

array cybercash_decr ( string wmk, string sk, string inbuff )

The function returns an associative array with the elements "errcode" and, if "errcode" is FALSE, "outbuff" (string), "outLth" (long) and "macbuff" (string).

Пред. | Начало | След.
cybercash_base64_encode | Уровень выше | cybercash_encr


cybercash_encr

(PHP 4 <= 4.2.3, PECL)

cybercash_encr -- Cybercash encrypt

Description

array cybercash_encr ( string wmk, string sk, string inbuff )

The function returns an associative array with the elements "errcode" and, if "errcode" is FALSE, "outbuff" (string), "outLth" (long) and "macbuff" (string).

Пред. | Начало | След.
cybercash_decr | Уровень выше | Credit Mutuel CyberMUT functions


Cyrus IMAP administration Functions

Руководство по PHP
Пред. След.

XXI. Cyrus IMAP administration Functions

Введение

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Замечание: Для Windows-платформ это расширение недоступно.

Установка

To enable Cyrus IMAP support and to use these functions you have to compile PHP with the --with-cyrus option.

Внимание

Расширение IMAP не может использоваться вместе с расширениями перекодировки или YAZ. Это связано с тем фактом, что они оба используют один и тот же внутренний символ.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

CYRUS_CONN_NONSYNCLITERAL (integer)

CYRUS_CONN_INITIALRESPONSE (integer)

CYRUS_CALLBACK_NUMBERED (integer)

CYRUS_CALLBACK_NOLITERAL (integer)

Содержание
cyrus_authenticate -- Authenticate against a Cyrus IMAP server
cyrus_bind -- Bind callbacks to a Cyrus IMAP connection
cyrus_close -- Close connection to a Cyrus IMAP server
cyrus_connect -- Connect to a Cyrus IMAP server
cyrus_query -- Send a query to a Cyrus IMAP server
cyrus_unbind -- Unbind ...

Пред. | Начало | След.
cybermut_testmac | Уровень выше | cyrus_authenticate


cyrus_authenticate

(PHP 4 >= 4.1.0, PECL)

cyrus_authenticate -- Authenticate against a Cyrus IMAP server

Description

void cyrus_authenticate ( resource connection [, string mechlist [, string service [, string user [, int minssf [, int maxssf [, string authname [, string password]]]]]]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
Cyrus IMAP administration Functions | Уровень выше | cyrus_bind


cyrus_bind

(PHP 4 >= 4.1.0, PECL)

cyrus_bind -- Bind callbacks to a Cyrus IMAP connection

Description

bool cyrus_bind ( resource connection, array callbacks )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
cyrus_authenticate | Уровень выше | cyrus_close


cyrus_close

(PHP 4 >= 4.1.0, PECL)

cyrus_close -- Close connection to a Cyrus IMAP server

Description

bool cyrus_close ( resource connection )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
cyrus_bind | Уровень выше | cyrus_connect


cyrus_connect

(PHP 4 >= 4.1.0, PECL)

cyrus_connect -- Connect to a Cyrus IMAP server

Description

resource cyrus_connect ( [string host [, string port [, int flags]]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
cyrus_close | Уровень выше | cyrus_query


cyrus_query

(PHP 4 >= 4.1.0, PECL)

cyrus_query -- Send a query to a Cyrus IMAP server

Description

array cyrus_query ( resource connection, string query )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
cyrus_connect | Уровень выше | cyrus_unbind


cyrus_unbind

(PHP 4 >= 4.1.0, PECL)

cyrus_unbind -- Unbind ...

Description

bool cyrus_unbind ( resource connection, string trigger_name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
cyrus_query | Уровень выше | Функции для работы с датой и временем


Функции для работы с датой и временем

Руководство по PHP
Пред. След.

XXII. Функции для работы с датой и временем

Введение

Эти функции позволяют получить дату и время на сервере, где выполняется PHP скрипт. Используя эти функции, дату и время можно представить в различных форматах.

Замечание: Обратите внимание, что работа этих функций зависит от текущей локали на сервере. Также следует принимать во внимание летнее время и високосные годы.

Требования

Эти функции всегда доступны.

Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Содержание
checkdate -- Проверяет правильность даты по грегорианскому календарю
date_default_timezone_get -- Gets the default timezone used by all date/time functions in a script
date_default_timezone_set -- Sets the default timezone used by all date/time functions in a script
date_sunrise -- Returns time of sunrise for a given day and location
date_sunset -- Returns time of sunset for a given day and location
date -- Форматирует системную дату/время
getdate -- Возвращает информацию о дате/времени
gettimeofday -- Возвращает текущее время
gmdate -- Форматирует дату/время по Гринвичу
gmmktime -- Возвращает метку времени Unix для времени по Гринвичу
gmstrftime -- Форматирует дату/время по Гринвичу с учетом текущей локали
idate -- Format a local time/date as integer
localtime -- Возвращает системное время
microtime -- Возвращает метку времени с микросекундами
mktime -- Возвращает метку времени для заданной даты
strftime -- Форматирует текущую дату/время с учетом текущей локали
strptime -- Parse a time/date generated with strftime()
strtotime -- Преобразует текстовое представление даты на английском языке в метку времени Unix
time -- Возвращает текущую метку времени

Пред. | Начало | След.
cyrus_unbind | Уровень выше | checkdate


checkdate

(PHP 3, PHP 4, PHP 5)

checkdate -- Проверяет правильность даты по грегорианскому календарю

Описание

bool checkdate ( int month, int day, int year )

Возвращает TRUE если дата, заданная аргументами, является правильной; иначе возвращает FALSE. Дата считается правильной, если:

  • год в диапазоне от 1 до 32767 включительно

  • месяц в диапазоне от 1 до 12 включительно

  • day является допустимым номером дня для месяца, заданного аргументом month, принимая во внимание,что year может задавать високосный год.

Пример 1. Пример использования функции checkdate()

<?php
var_dump(checkdate(12, 31, 2000));
var_dump(checkdate(2, 29, 2001));
?>

Приведенный выше пример выведет:

bool(true)
bool(false)

См.также описание функций mktime() и strtotime().

Пред. | Начало | След.
Функции для работы с датой и временем | Уровень выше | date_default_timezone_get


date_sunrise

(PHP 5)

date_sunrise -- Returns time of sunrise for a given day and location

Description

mixed date_sunrise ( int timestamp [, int format [, float latitude [, float longitude [, float zenith [, float gmt_offset]]]]] )

date_sunrise() returns the sunrise time for a given day (specified as a timestamp) and location. The latitude, longitude and zenith parameters default to the date.default_latitude, date.default_longitude and date.sunrise_zenith configuration options, respectively.

The latitude defaults to North. So, if you want to specify a South value, you must pass a negative value. The same note applies to longitude, which defaults to East.

The gmt_offset parameter is specified in hours.

Таблица 1. format constants

constant | description | example
SUNFUNCS_RET_STRING | returns the result as string | 16:46
SUNFUNCS_RET_DOUBLE | returns the result as float | 16.78243132
SUNFUNCS_RET_TIMESTAMP | returns the result as integer (timestamp) | 1095034606

Пример 1. date_sunrise() example

<?php

/* calculate the sunrise time for Lisbon, Portugal
Latitude: 38.4 North
Longitude: 9 West
Zenith ~= 90
offset: +1 GMT
*/

echo date("D M d Y"). ', sunrise time : ' .date_sunrise(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);

?>

Результатом выполнения данного примера будет что-то подобное:

Mon Dec 20 2004, sunrise time : 08:54

See also date_sunset().

Пред. | Начало | След.
date_default_timezone_set | Уровень выше | date_sunset


date_sunset

(PHP 5)

date_sunset -- Returns time of sunset for a given day and location

Description

mixed date_sunset ( int timestamp [, int format [, float latitude [, float longitude [, float zenith [, float gmt_offset]]]]] )

date_sunset() returns the sunset time for a given day (specified as a timestamp) and location. The latitude, longitude and zenith parameters default to the date.default_latitude, date.default_longitude and date.sunset_zenith configuration options, respectively.

The latitude defaults to North. So, if you want to specify a South value, you must pass a negative value. The same note applies to longitude, which defaults to East.

The gmt_offset parameter is specified in hours.

Таблица 1. format constants

constant | description | example
SUNFUNCS_RET_STRING | returns the result as string | 16:46
SUNFUNCS_RET_DOUBLE | returns the result as float | 16.78243132
SUNFUNCS_RET_TIMESTAMP | returns the result as integer (timestamp) | 1095034606

Пример 1. date_sunset() example

<?php

/* calculate the sunset time for Lisbon, Portugal
Latitude: 38.4 North
Longitude: 9 West
Zenith ~= 90
offset: +1 GMT
*/

echo date("D M d Y"). ', sunset time : ' .date_sunset(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);

?>

Результатом выполнения данного примера будет что-то подобное:

Mon Dec 20 2004, sunset time : 18:13

See also date_sunrise().

Пред. | Начало | След.
date_sunrise | Уровень выше | date


date

(PHP 3, PHP 4, PHP 5)

date -- Форматирует системную дату/время

Описание

string date ( string format [, int timestamp] )

Возвращает время, отформатированное в соответствии с аргументом format, используя метку времени, заданную аргументом timestamp или текущее системное время, если timestamp не задан. Другими словами, timestamp является необязательным и по умолчанию равен значению, возвращаемому функцией time().

Замечание: Для большинства систем допустимыми являются даты с 13 декабря 1901, 20:45:54 GMT по 19 января 2038, 03:14:07 GMT. (Эти даты соответствуют минимальному и максимальному значению 32-битового целого со знаком). Для Windows допустимы даты с 01-01-1970 по 19-01-2038.

Замечание: Для получения метки времени из строкового представления даты можно использовать функцию strtotime(). Кроме того, некоторые базы данных имеют собственные функции для преобразования внутреннего представления даты в метку времени (напрмер, функция MySQL UNIX_TIMESTAMP).

Таблица 1. В параметре format распознаются следующие символы

Символ в строке format | Описание | Пример возвращаемого значения
a | Ante meridiem или Post meridiem в нижнем регистре | am или pm
A | Ante meridiem или Post meridiem в верхнем регистре | AM или PM
B | Время в стадарте Swatch Internet | От 000 до 999
c | Дата в формате ISO 8601 (добавлено в PHP 5) | 2004-02-12T15:19:21+00:00
d | День месяца, 2 цифры с ведущими нулями | от 01 до 31
D | Сокращенное наименование дня недели, 3 символа | от Mon до Sun
F | Полное наименование месяца, например January или March | от January до December
g | Часы в 12-часовом формате без ведущих нулей | От 1 до 12
G | Часы в 24-часовом формате без ведущих нулей | От 0 до 23
h | Часы в 12-часовом формате с ведущими нулями | От 01 до 12
H | Часы в 24-часовом формате с ведущими нулями | От 00 до 23
i | Минуты с ведущими нулями | 00 to 59
I (заглавная i) | Признак летнего времени | 1, если дата соответствует летнему времени, иначе 0 otherwise.
j | День месяца без ведущих нулей | От 1 до 31
l (строчная 'L') | Полное наименование дня недели | От Sunday до Saturday
L | Признак високосного года | 1, если год високосный, иначе 0.
m | Порядковый номер месяца с ведущими нулями | От 01 до 12
M | Сокращенное наименование месяца, 3 символа | От Jan до Dec
n | Порядковый номер месяца без ведущих нулей | От 1 до 12
O | Разница с временем по Гринвичу в часах | Например: +0200
r | Дата в формате RFC 2822 | Например: Thu, 21 Dec 2000 16:01:07 +0200
s | Секунды с ведущими нулями | От 00 до 59
S | Английский суффикс порядкового числительного дня месяца, 2 символа | st, nd, rd или th. Применяется совместно с j
t | Количество дней в месяце | От 28 до 31
T | Временная зона на сервере | Примеры: EST, MDT ...
U | Количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970, 00:00:00 GMT) | См. также time()
w | Порядковый номер дня недели | От 0 (воскресенье) до 6 (суббота)
W | Порядковый номер недели года по ISO-8601, первый день недели - понедельник (добавлено в PHP 4.1.0) | Например: 42 (42-я неделя года)
Y | Порядковый номер года, 4 цифры | Примеры: 1999, 2003
y | Номер года, 2 цифры | Примеры: 99, 03
z | Порядковый номер дня в году (нумерация с 0) | От 0 до 365
Z | Смещение временной зоны в секундах. Для временных зон западнее UTC это отрицательное число, восточнее UTC - положительное. | От -43200 до 43200

Любые другие символы, встреченные в строке format, будут выведены в результирующую строку без изменений. Z всегда возвращает 0 при использовании gmdate().

Пример 1. Примеры использования функции date()

<?php
// вывод дня недели, например Wednesday
echo date("l");

// вывод даты в формате: Wednesday 15th of January 2003 05:51:38 AM
echo date("l dS of F Y h:i:s A");

// вывод: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));
?>

Избежать распознавания символа как форматирующего можно, если экранировать этот символ с помощью \ Если в сочетании с \ символ являееся специальным (например, \t), следует добавлять еще один \.

Пример 2. Экранирование символов в функции date()

<?php
// вывод: Wednesday the 15th
echo date("l \\t\h\e jS");
?>

Функции date() и mktime() для вывода прошедших и будущих дат.

Пример 3. date() и mktime() example

<?php
$tomorrow  = mktime(0, 0, 0, date("m")  , date("d")+1, date("Y"));
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"),   date("Y"));
$nextyear  = mktime(0, 0, 0, date("m"),   date("d"),   date("Y")+1);
?>

Замечание: Этот метод более надежен, чем вычитание и прибавление секунд к метке времени, так как mktime() учитывает любые неоднозначности в датах (переход на летнее/зимнее время и др.).

Приведем еще несколько примеров использования функции date(). Помните, что следует экранировать все символы, которые вы хотите видеть в результате работы функции без изменений. Это относится и к символам, которые в текущей версии PHP не распознаются как специальные, так как этим символам может быть назначено значение в следующих версиях. Используйте одинарные кавычки для предотвращения преобразования \n в перевод строки.

Пример 4. Форматирование с использованием date()

<?php
// Предположим, что текущая дата March 10th, 2001, 5:16:18 pm

$today = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
$today = date("m.d.y");                         // 03.10.01
$today = date("j, n, Y");                       // 10, 3, 2001
$today = date("Ymd");                           // 20010310
$today = date('h-i-s, j-m-y, it is w Day z ');  // 05-16-17, 10-03-01, 1631 1618 6 Fripm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.');   // It is the 10th day.
$today = date("D M j G:i:s T Y");               // Sat Mar 10 15:16:08 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:17 m is month
$today = date("H:i:s");                         // 17:16:17
?>

Для форматирования дат на других языках используйте функции setlocale() и strftime().

См. также описание функций getlastmod(), gmdate(),
mktime(), strftime()
и time().

Пред. | Начало | След.
date_sunset | Уровень выше | getdate


getdate

(PHP 3, PHP 4, PHP 5)

getdate -- Возвращает информацию о дате/времени

Описание

array getdate ( [int timestamp] )

Возвращает ассоциативный массив, содержащий информацию о дате, представленной меткой времени timestamp или текущем системном времени, если timestamp не передан. Массив содержит следующие элементы:

Таблица 1. Индексы возвращаемого ассоциативного массива

Индекс | Описание | Пример значения
"seconds" | Секунды | От 0 до 59
"minutes" | Минуты | От 0 до 59
"hours" | Часы | От 0 до 23
"mday" | Порядковый номер дня месяца | От 1 до 31
"wday" | Порядковый номер дня | От 0 (воскресенье) до 6 (суббота)
"mon" | Порядковый номер месяца | От 1 до 12
"year" | Порядковый номер года, 4 цифры | Примеры: 1999, 2003
"yday" | Порядковый номер дня в году (нумерация с 0) | От 0 до 365
"weekday" | Полное наименование дня недели | От Sunday до Saturday
"month" | Полное наименование месяца, например January или March | от January до December
0 | Колическтво секунд, прошедших с начала Эпохи Unix (The Unix Epoch), подобно значению, возвращаемому функцией time() и используемому функцией date(). | Платформо-зависимое, в большинстве случаев от -2147483648 до 2147483647.

Пример 1. Пример использования функции getdate()

<?php
$today = getdate();
print_r($today);
?>

Вывод будет выглядеть так:

Array
(
    [seconds] => 40
    [minutes] => 58
    [hours]   => 21
    [mday]    => 17
    [wday]    => 2
    [mon]     => 6
    [year]    => 2003
    [yday]    => 167
    [weekday] => Tuesday
    [month]   => June
    [0]       => 1055901520
)

See also date(),
time(), and
setlocale().

Пред. | Начало | След.
date | Уровень выше | gettimeofday


gettimeofday

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

gettimeofday -- Возвращает текущее время

Описание

array gettimeofday ( void )

Эта функция является интерфейсом к системному вызову gettimeofday(2). Она возвращает ассоциативный массив, содержащий информацию, полученную от системной функции.

  • "sec" - секунды

  • "usec" - микросекунды

  • "minuteswest" - смещение к западу от Гринвича, в минутах

  • "dsttime" - тип коррекции летнего времени

Пример 1. Пример использования функции gettimeofday()

<?php
print_r(gettimeofday());
?>

Вывод будет выглядеть так:

Array
(
    [sec] => 1073504408
    [usec] => 238215
    [minuteswest] => 0
    [dsttime] => 1
)

Пред. | Начало | След.
getdate | Уровень выше | gmdate


gmdate

(PHP 3, PHP 4, PHP 5)

gmdate -- Форматирует дату/время по Гринвичу

Описание

string gmdate ( string format [, int timestamp] )

Эта функция идентична функции date() за исключением того, что возвращает время по Гринвичу (GMT). Например, в Финляндии (GMT +0200), первая строка в следующем примере выведет "Jan 01 1998 00:00:00", а вторая - "Dec 31 1997 22:00:00".

Пример 1. gmdate() example

<?php
echo date("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
echo gmdate("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
?>

Замечание: В семействе ОС Microsoft Windows системные библиотеки, реализующие эту функцию, содержат ошибки, поэтому функция gmdate() на этих системах не поддерживает отрицательные значения аргумента timestamp. Для более подробной информации, см. сообщения об ошибках: #22620, #22457, и #14391.

В операционных системах Unix/Linux эта проблема не возникает, так как системные библиотеки в этих системах реализованы корректно.

PHP не может исправить ошибки в системных библиотеках. Для решения этой и подобных проблем обращайтесь к производителю операционной системы.

См. также описание функций date(), mktime(), gmmktime() и strftime().

Пред. | Начало | След.
gettimeofday | Уровень выше | gmmktime


gmmktime

(PHP 3, PHP 4, PHP 5)

gmmktime -- Возвращает метку времени Unix для времени по Гринвичу

Description

int gmmktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] )

Эта функция идентична функции mktime(), за исключением того, что аргументы формируют время по Гринвичу (GMT).

Подобно функции mktime(), аргументы могут быть опущены в порядке справа налево , в этом случае они предполагаются равными соответствующим компонентам текущего времени по Гринвичу.

Пред. | Начало | След.
gmdate | Уровень выше | gmstrftime


gmstrftime

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

gmstrftime -- Форматирует дату/время по Гринвичу с учетом текущей локали

Описание

string gmstrftime ( string format [, int timestamp] )

Эта функция идентична функции strftime() за исключением того, что возвращает время по Гринвичу (GMT). Например, при запуске на системе, где установлено Eastern Standard Time (GMT -0500), первая строка из следующего примера выведет "Dec 31 1998 20:00:00", а вторая - "Jan 01 1999 01:00:00".

Пример 1. Пример использования функции gmstrftime()

<?php
setlocale(LC_TIME, 'en_US');
echo strftime("%b %d %Y %H:%M:%S", mktime(20, 0, 0, 12, 31, 98)) . "\n";
echo gmstrftime("%b %d %Y %H:%M:%S", mktime(20, 0, 0, 12, 31, 98)) . "\n";
?>

См. также описание функции strftime().

Пред. | Начало | След.
gmmktime | Уровень выше | idate


idate

(PHP 5)

idate -- Format a local time/date as integer

Description

int idate ( string format [, int timestamp] )

Returns a number formatted according to the given format string using the given integer timestamp or the current local time if no timestamp is given. In other words, timestamp is optional and defaults to the value of time().

Unlike the function date(), idate() accepts just one char in the format parameter.

Таблица 1. The following characters are recognized in the format parameter string

format character | Description
B | Swatch Beat/Internet Time
d | Day of the month
h | Hour (12 hour format)
H | Hour (24 hour format)
i | Minutes
I | returns 1 if DST is activated, 0 otherwise
L | returns 1 for leap year, 0 otherwise
m | Month number
s | Seconds
t | Days in current month
U | Seconds since the Unix Epoch - January 1 1970 00:00:00 GMT - this is the same as time()
w | Day of the week (0 on Sunday)
W | ISO-8601 week number of year, weeks starting on Monday
y | Year (1 or 2 digits - check note below)
Y | Year (4 digits)
z | Day of the year
Z | Timezone offset in seconds

Замечание: As idate() returns always an integer and as they can't start with a "0", idate() may return less digits then you would expect. See the example below:

<?php
$timestamp = strtotime('1st January 2004'); //1072915200

// this prints the year in a two digit format
// however, as this would start with a "0", it
// only prints "4"
echo idate('y', $timestamp);
?>

See also date() and time().

Пред. | Начало | След.
gmstrftime | Уровень выше | localtime


localtime

(PHP 4, PHP 5)

localtime -- Возвращает системное время

Описание

array localtime ( [int timestamp [, bool is_associative]] )

Функция localtime() возвращает массив, аналогичный структуре, возвращаемой соответствующей функцией C. Первым аргументом функции localtime() является метка времени, если этот аргумент не передан, используется текущее время, полученное вызовом функции time(). Если аргумент is_associative не передан или или равен 0, возврачается массив с числовыми индексами. Если этот аргумент равен 1, функция localtime() возврашает ассоциативный массив, содержащий компоненты структуры, возвращаемой функцией C localtime. Список индексов :

  • "tm_sec" - секунды

  • "tm_min" - минуты

  • "tm_hour" - часы

  • "tm_mday" - день месяца

  • "tm_mon" - месяц года, 0 соответствует январю

  • "tm_year" - Количество лет, прошедших с 1900 г.

  • "tm_wday" - день недели

  • "tm_yday" - порядковый номер дня в году

  • "tm_isdst" - признак летнего времени

Пред. | Начало | След.
idate | Уровень выше | microtime


microtime

(PHP 3, PHP 4, PHP 5)

microtime -- Возвращает метку времени с микросекундами

Описание

mixed microtime ( [bool get_as_float] )

Функция microtime() возвращает текущую метку времени с микросекундами. Эта функция доступна только на операционных системах, в которых есть системная функция gettimeofday().

При вызове без необязательного параметра, возвращается строка в формате "msec sec", где sec - это количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970, 00:00:00 GMT), а msec - это дробная часть.

Если передан аргумент get_as_float, равный TRUE, функция microtime() возвращает действительное число.

Замечание: Аргумент get_as_float появился в PHP 5.0.0.

Пример 1. Пример использования функции microtime()

<?php

function getmicrotime()
{
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}

$time_start = getmicrotime();

for ($i=0; $i < 1000; $i++) {
    // Ничего не делать. Повторить 1000 раз
}

$time_end = getmicrotime();
$time = $time_end - $time_start;

echo "Ничего не делал $time секунд\n";

// в PHP 5 то же самое можно сделать вот так:

$time_start = microtime(1);

for ($i=0; $i < 1000; $i++) {
     // Ничего не делать. Повторить 1000 раз
}

$time_end = microtime(1);
$time = $time_end - $time_start;

echo "Ничего не делал $time секунд\n";

?>

См. также описание функции time().

Пред. | Начало | След.
localtime | Уровень выше | mktime


mktime

(PHP 3, PHP 4, PHP 5)

mktime -- Возвращает метку времени для заданной даты

Description

int mktime ( [int hour [, int minute [, int second [, int month [, int day [, int year [, int is_dst]]]]]]] )

Предепреждение: Обратите внимание на странный порядок аргументов, отличающийся от порядка аргументов стандартной функции Unix mktime() и делающий неудобной работу с необязательными аргументами. Часто при написании скриптов путают порядок аргументов, что приводит к ошибкам.

Функция возвращает метку времени Unix, соответствующую дате и времени, заданным аргументами. Метка времени - это цело число, равное разнице в секундах между заданной датой/временем и началом Эпохи Unix (The Unix Epoch, 1 января 1970 г).

Аргументы могут быть опущены в порядке справа налево. Опущенные аргументы считаются равными соответствующим компонентам локальной даты/времени.

Аргумент is_dst может быть установлен в 1, если заданной дате соответствует летнее время, 0 в противном случае, или -1 (значение по умолчанию), если неизвестно, действует ли летнеее время на заданную дату. В последнем случае PHP пытается определить это самостоятельно. Это можно привести к неожиданному результату (который, тем не менее, не будет неверным).

Замечание: Аргумент is_dst был добавлен в версии 3.0.10.

Функцию mktime() удобно использовать для выполнения арифметических операций с датами, так как она вычисляет верные значения при некорректных аргументах. Например, в следующем примере каждая строка выведет "Jan-01-1998".

Пример 1. Пример использования функции mktime()

<?php
echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 13, 1, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 1998));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 98));
?>
Year может быть двух- или четырехзначным числом. Значения от 0 до 69 соответствуют 2000-2069, а 70-99 соответствуют 1970-1999 (в большинстве современных систем, где время представляется 32-битным целым со знаком, допустимыми являются значения year между 1901 и 2038).

Windows: Ни одна из версий Windows не поддерживает отрицательные метки времени. Поэтому для Windows допустимыми являются значения year между 1970 и 2038.

Последний день любого месяца можно вычислить как "нулевой" день следующего месяца. Оба приведенных ниже примера выведут "Последний день в феврале 2000 г: 29".

Пример 2. Last day of next month

<?php
$lastday = mktime(0, 0, 0, 3, 0, 2000);
echo strftime("Последний день в феврале 2000 г:: %d", $lastday);

$lastday = mktime(0, 0, 0, 4, -31, 2000);
echo strftime("Последний день в феврале 2000 г:: %d", $lastday);
?>

Даты, в которых год, месяц и день равны 0, считаются неверными (иначе им бы соответствовала дата 30.11.1999, что, согласитесь, было бы довольно странно).

См. также описание функций date() и time().

Пред. | Начало | След.
microtime | Уровень выше | strftime


strftime

(PHP 3, PHP 4, PHP 5)

strftime -- Форматирует текущую дату/время с учетом текущей локали

Описание

string strftime ( string format [, int timestamp] )

Возвращает строку, отформатированную в соответствии с аргументом format, используя аргумент timestamp или текущее системное время, если этот аргумент не передан. Названия месяцев, дней недели и другие строки, зависящие от языка, соответствуют текущей локали, установленной функцией setlocale().

В форматирующей строке распознаются следующие символы:

  • %a - сокращенное название дня недели в текущей локали

  • %A - полное название дня недели в текущей локали

  • %b - сокращенное название месяца недели в текущей локали

  • %B - полное название месяца недели в текущей локали

  • %c - предпочтительный формат даты и времени в текущей локали

  • %C - столетие (год, деленный на 100 и огругленный до целого, от 00 до 99)

  • %d - день месяца в виде десятичного числа (от 01 до 31)

  • %D - аналогично %m/%d/%y

  • %e - день месяца в виде десятичного числа, если это одна цифра, то перед ней добавляется пробел (от ' 1' до '31')

  • %g - подобно %G, но без столетия.

  • %G - Год, 4-значное число, соответствующее номеру недели по ISO (см. %V). Аналогично %Y, за исключением того, что если номер недели по ISO соответствует предыдущему или следующему году, используется соответствующий год.

  • %h - аналогично %b

  • %H - номер часа от 00 до 23

  • %I - номер часа от 01 до 12

  • %j - номер дня в году (от 001 до 366)

  • %m - номер месяца (от 01 до 12)

  • %M - минуты

  • %n - символ "\n"

  • %p - `am' или `pm', или соответствующие строки в текущей локали

  • %r - время в формате a.m. или p.m.

  • %R - время в 24-часовом формате

  • %S - секунды

  • %t - символ табуляции ("\t")

  • %T - текущее время, аналогично %H:%M:%S

  • %u - номер дня недели от 1 до 7, где 1 соответствует понедельнику

    Внимание

    На Sun Solaris 1 соответствует воскресенью, хотя в ISO 9889:1999 (текущий стандарт языка C) явно указано, что это должен быть понедельник.

  • %U - порядковый номер недели в текущем году. Первым днем первой недели в году считается первое воскресенье года.

  • %V - Порядковый номер недели в году по стандарту ISO 8601:1988 от 01 до 53, где 1 соответствует первой неделе в году, в которой как минимум 4 дня принадлежат этому году. Первым днем недели считается понедельник. (Используйте %G or %g для определения соответствующего года)

  • %W - порядковый номер недели в текущем году. Первым днем первой недели в году считается первый понедельник года.

  • %w - номер дня недели, 0 соответствует воскресенью

  • %x - предпочтительный формат даты без времени в текущей локали

  • %X - предпочтительный формат времени без даты в текущей локали

  • %y - год без столетия (от 00 до 99)

  • %Y - год, включая столетие

  • %Z - временная зона в виде смещения, аббривеатуры или полного наименования

  • %% - символ `%'

Замечание: strftime() использует функции операционной системы, поэтому отдельные форматирующие символы могут не работать в вашей операционной системе. Кроме того, не все платформы поддерживают отрицательные метки времени support negative timestamps. Это значит, что %e, %T, %R и %D (а возможно и другие) и даты до Jan 1, 1970 не поддерживаются Windows, некоторыми версиями Linux и некоторыми другими операционными системами. Список форматирующих символов, поддерживаемых Windows, можно найти на сайте MSDN.

Пример 1. Пример использования функции strftime() с разными локалями

<?php
setlocale(LC_TIME, "C");
echo strftime("%A");
setlocale(LC_TIME, "fi_FI");
echo strftime(" по-фински - %A,");
setlocale(LC_TIME, "fr_FR");
echo strftime(" по-французски - %A и");
setlocale(LC_TIME, "de_DE");
echo strftime(" по-немецки - %A.\n");
?>
Этот пример будет работать, если на вашей системе установлены соответствующие локали.

Замечание: %G and %V, которые основаны на номере недели по ISO 8601:1988, Могут давать результат, отличный от ожидаемого, если вы не полностью понимаете систему нумерации, используемую этим стандартом. Смотрите описание %V выше и следующий пример.

Пример 2. Пример номеров недели по ISO 8601:1988

<?php
/*      Декабрь 2002 / Январь 2003
ISO    Пн  Вт  Ср  Чт  Пт  Сб  Вс
----- ----------------------------
51     16  17  18  19  20  21  22
52     23  24  25  26  27  28  29
1      30  31   1   2   3   4   5
2       6   7   8   9  10  11  12
3      13  14  15  16  17  18  19   */

// Вывод: 12/28/2002 - %V,%G,%Y = 52,2002,2002
echo "12/28/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/28/2002")) . "\n";

// Вывод: 12/30/2002 - %V,%G,%Y = 1,2003,2002
echo "12/30/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/30/2002")) . "\n";

// Вывод: 1/3/2003 - %V,%G,%Y = 1,2003,2003
echo "1/3/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2003")) . "\n";

// Вывод: 1/10/2003 - %V,%G,%Y = 2,2003,2003
echo "1/10/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/10/2003")) . "\n";

/*      Декабрь 2004 / Январь 2005
ISO    Пн  Вт  Ср  Чт  Пт  Сб  Вс
----- ----------------------------
51     13  14  15  16  17  18  19
52     20  21  22  23  24  25  26
53     27  28  29  30  31   1   2
1       3   4   5   6   7   8   9
2      10  11  12  13  14  15  16   */

// Вывод: 12/23/2004 - %V,%G,%Y = 52,2004,2004
echo "12/23/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/23/2004")) . "\n";

// Вывод: 12/31/2004 - %V,%G,%Y = 53,2004,2004
echo "12/31/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/31/2004")) . "\n";

// Вывод: 1/2/2005 - %V,%G,%Y = 53,2004,2005
echo "1/2/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/2/2005")) . "\n";

// Вывод: 1/3/2005 - %V,%G,%Y = 1,2005,2005
echo "1/3/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2005")) . "\n";

?>

См. также описание функций setlocale(), mktime(), и спецификацию strftime() Open Group.

Пред. | Начало | След.
mktime | Уровень выше | strptime


strptime

(PHP 5 >= 5.1.0RC1)

strptime -- Parse a time/date generated with strftime()

Description

array strptime ( string date, string format )

strptime() returns an array with the date parsed, or FALSE on error.

Month and weekday names and other language dependent strings respect the current locale set with setlocale() (LC_TIME).

Замечание: Для Windows-платформ эта функция не реализована.

Список параметров

date (string)

The string to parse (e.g. returned from strftime())

format (string)

The format used in date (e.g. the same as used in strftime()).

For more information about the format options, read the strftime() page.

Возвращаемые значения

Returns an array, or FALSE on failure.

Таблица 1. The following parameters are returned in the array

parameters | Description
tm_sec | Seconds after the minute (0-61)
tm_min | Minutes after the hour (0-59)
tm_hour | Hour since midnight (0-23)
tm_mday | Day of the month (1-31)
tm_mon | Months since January (0-11)
tm_year | Years since 1900
tm_wday | Days since Sunday (0-6)
tm_yday | Days since January 1 (0-365)
unparsed | the date part which was not recognized using the specified format

Примеры

Пример 1. strptime() example

<?php
$format = '%d/%m/%Y %H:%M:%S';
$strf = strftime($format);

echo "$strf\n";

print_r(strptime($strf, $format));
?>

Результатом выполнения данного примера будет что-то подобное:

03/10/2004 15:54:19

Array
(
    [tm_sec] => 19
    [tm_min] => 54
    [tm_hour] => 15
    [tm_mday] => 3
    [tm_mon] => 9
    [tm_year] => 104
    [tm_wday] => 0
    [tm_yday] => 276
    [unparsed] =>
)

Смотрите также

strftime()

Пред. | Начало | След.
strftime | Уровень выше | strtotime


strtotime

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

strtotime -- Преобразует текстовое представление даты на английском языке в метку времени Unix

Описание

int strtotime ( string time [, int now] )

Первым параметром функции должна быть строка с датой на английском языке, которая будет преобразована в метку времени относительно метки времени, переданной в now, или текущего времени, если аргумент now опущен. В случае ошибки возвращается -1.

Функция strtotime() использует GNU формат даты, поэтому рекомендуется ознакомиться с руководством GNU Date Input Formats, где описывается синтаксис аргумента time.

Пример 1. Пример использования функции strtotime()

<?php
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";
?>

Пример 2. Проверка ошибок

<?php
$str = 'Not Good';
if (($timestamp = strtotime($str)) === -1) {
    echo "Строка ($str) недопустима";
} else {
    echo "$str == " . date('l dS of F Y h:i:s A', $timestamp);
}
?>

Замечание: Для большинства систем допустимыми являются даты с 13 декабря 1901, 20:45:54 GMT по 19 января 2038, 03:14:07 GMT. (Эти даты соответствуют минимальному и максимальному значению 32-битового целого со знаком). Для Windows допустимы даты с 01-01-1970 по 19-01-2038. Не все платформы поддерживают отрицательные метки времени, поэтому даты ранее 1 января 1970 г. не поддерживаются в Windows, некоторых версиях Linux и некоторых других операционных системах.

Пред. | Начало | След.
strptime | Уровень выше | time


time

(PHP 3, PHP 4, PHP 5)

time -- Возвращает текущую метку времени

Описание

int time ( void )

Возвращает количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970, 00:00:00 GMT) до текущего времени.

См. также описание функций date() и microtime().

Пред. | Начало | След.
strtotime | Уровень выше | DB++ Functions


Database (dbm-style) Abstraction Layer Functions

Руководство по PHP
Пред. След.

XXIV. Database (dbm-style) Abstraction Layer Functions

Введение

These functions build the foundation for accessing Berkeley DB style databases.

This is a general abstraction layer for several file-based databases. As such, functionality is limited to a common subset of features supported by modern databases such as Sleepycat Software's DB2. (This is not to be confused with IBM's DB2 software, which is supported through the ODBC functions.)

Требования

The behaviour of various aspects depends on the implementation of the underlying database. Functions such as dba_optimize() and dba_sync() will do what they promise for one database and will do nothing for others. You have to download and install supported dba-Handlers.

Таблица 1. List of DBA handlers

Handler | Notes
dbm | Dbm is the oldest (original) type of Berkeley DB style databases. You should avoid it, if possible. We do not support the compatibility functions built into DB2 and gdbm, because they are only compatible on the source code level, but cannot handle the original dbm format.
ndbm | Ndbm is a newer type and more flexible than dbm. It still has most of the arbitrary limits of dbm (therefore it is deprecated).
gdbm | Gdbm is the GNU database manager.
db2 | DB2 is Sleepycat Software's DB2. It is described as "a programmatic toolkit that provides high-performance built-in database support for both standalone and client/server applications.
db3 | DB3 is Sleepycat Software's DB3.
db4 | DB4 is Sleepycat Software's DB4. This is available since PHP 4.3.2.
cdb | Cdb is "a fast, reliable, lightweight package for creating and reading constant databases." It is from the author of qmail and can be found at http://cr.yp.to/cdb.html. Since it is constant, we support only reading operations. And since PHP 4.3.0 we support writing (not updating) through the internal cdb library.
cdb_make | Since PHP 4.3.0 we support creation (not updating) of cdb files when the bundled cdb library is used.
flatfile | This is available since PHP 4.3.0 for compatibility with the deprecated dbm extension only and should be avoided. However you may use this where files were created in this format. That happens when configure could not find any external library.
inifile | This is available since PHP 4.3.3 to be able to modify php.ini files from within PHP scripts. When working with ini files you can pass arrays of the form array(0=>group,1=>value_name) or strings of the form "[group]value_name" where group is optional. As the functions dba_firstkey() and dba_nextkey() return string representations of the key there is a new function dba_key_split() available since PHP 5 which allows to convert the string keys into array keys without loosing FALSE.
qdbm | This is available since PHP 5.0.0. The qdbm library can be loaded from http://qdbm.sourceforge.net.

When invoking the dba_open() or dba_popen() functions, one of the handler names must be supplied as an argument. The actually available list of handlers is displayed by invoking phpinfo() or dba_handlers().

Установка

By using the --enable-dba=shared configuration option you can build a dynamic loadable module to enable PHP for basic support of dbm-style databases. You also have to add support for at least one of the following handlers by specifying the --with-XXXX configure switch to your PHP configure line.

Внимание

After configuring and compiling PHP you must execute the following test from commandline: php run-tests.php ext/dba. This shows whether your combination of handlers works. Most problematic are dbm and ndbm which conflict with many installations. The reason for this is that on several systems these libraries are part of more than one other library. The configuration test only prevents you from configuring malfaunctioning single handlers but not combinations.

Таблица 2. Supported DBA handlers

Handler | Configure Switch
dbm To enable support for dbm add --with-dbm[=DIR].

Замечание: dbm normally is a wrapper which often results in failures. This means you should only use dbm if you are sure it works and if you really need this format.

ndbm To enable support for ndbm add --with-ndbm[=DIR].

Замечание: ndbm normally is a wrapper which often results in failures. This means you should only use ndbm if you are sure it works and if you really need this format.

gdbm | To enable support for gdbm add --with-gdbm[=DIR].
db2 To enable support for db2 add --with-db2[=DIR].

Замечание: db2 conflicts with db3 and db4.

db3 To enable support for db3 add --with-db3[=DIR].

Замечание: db3 conflicts with db2 and db4.

db4 To enable support for db4 add --with-db4[=DIR].

Замечание: db4 conflicts with db2 and db3.

Замечание: This was added in PHP 4.3.2. In earlier versions of PHP you need to use --with-db3=DIR with DIR being the path to db4 library. It is not possible to use db versions starting from 4.1 with PHP prior to version 4.3.0. Also, the db libraries with versions 4.1 through 4.1.24 cannot be used in any PHP version.

cdb To enable support for cdb add --with-cdb[=DIR].

Замечание: Since PHP 4.3.0 you can omit DIR to use the bundled cdb library that adds the cdb_make handler which allows creation of cdb files and allows to access cdb files on the network using PHP's streams.

flatfile To enable support for flatfile add --with-flatfile.

Замечание: This was added in PHP 4.3.0 to add compatibility with deprecated dbm extension. Use this handler only when you cannot install one of the libraries required by the other handlers and when you cannot use bundled cdb handler.

inifile To enable support for inifile add --with-inifile.

Замечание: This was added in PHP 5.0.0 and allows to read and set microsoft style .ini files (like the php.ini file).

qdbm To enable support for qdbm add --with-qdbm[=DIR].

Замечание: qdbm conflicts with dbm and gdbm.

Замечание: This was added in PHP 5.0.0. The qdbm library can be loaded from http://qdbm.sourceforge.net.

Замечание: Up to PHP 4.3.0 you are able to add both db2 and db3 handler but only one of them can be used internally. That means that you cannot have both file formats. Starting with PHP 5.0.0 there is a configuration check avoid such misconfigurations.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

The functions dba_open() and dba_popen() return a handle to the specified database file to access which is used by all other dba-function calls.

Предопределенные константы

Данное расширение не определяет никакие константы.

Примеры

Пример 1. DBA example

<?php

$id = dba_open("/tmp/test.db", "n", "db2");

if (!$id) {
    echo "dba_open failed\n";
    exit;
}

dba_replace("key", "This is an example!", $id);

if (dba_exists("key", $id)) {
    echo dba_fetch("key", $id);
    dba_delete("key", $id);
}

dba_close($id);
?>

DBA is binary safe and does not have any arbitrary limits. However, it inherits all limits set by the underlying database implementation.

All file-based databases must provide a way of setting the file mode of a new created database, if that is possible at all. The file mode is commonly passed as the fourth argument to dba_open() or dba_popen().

You can access all entries of a database in a linear way by using the dba_firstkey() and dba_nextkey() functions. You may not change the database while traversing it.

Пример 2. Traversing a database

<?php

// ...open database...

$key = dba_firstkey($id);

while ($key != false) {
    if (true) {          // remember the key to perform some action later
        $handle_later[] = $key;
    }
    $key = dba_nextkey($id);
}

foreach ($handle_later as $val) {
    dba_delete($val, $id);
}

?>

Содержание
dba_close -- Close a DBA database
dba_delete -- Delete DBA entry specified by key
dba_exists -- Check whether key exists
dba_fetch -- Fetch data specified by key
dba_firstkey -- Fetch first key
dba_handlers -- List all the handlers available
dba_insert -- Insert entry
dba_key_split -- Splits a key in string representation into array representation
dba_list -- List all open database files
dba_nextkey -- Fetch next key
dba_open -- Open database
dba_optimize -- Optimize database
dba_popen -- Open database persistently
dba_replace -- Replace or insert entry
dba_sync -- Synchronize database

Пред. | Начало | След.
dbplus_xunlockrel | Уровень выше | dba_close


dba_close

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

dba_close -- Close a DBA database

Описание

void dba_close ( resource handle )

dba_close() closes the established database and frees all resources of the specified database handle.

Список параметров

handle

The database handler, returned by dba_open() or dba_popen().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

dba_open()
dba_popen()

Пред. | Начало | След.
Database (dbm-style) Abstraction Layer Functions | Уровень выше | dba_delete


dba_delete

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

dba_delete -- Delete DBA entry specified by key

Описание

bool dba_delete ( string key, resource handle )

dba_delete() deletes the specified entry from the database.

Список параметров

key

The key of the entry which is deleted.

handle

The database handler, returned by dba_open() or dba_popen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

dba_exists()
dba_fetch()
dba_insert()
dba_replace()

Пред. | Начало | След.
dba_close | Уровень выше | dba_exists


dba_exists

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

dba_exists -- Check whether key exists

Описание

bool dba_exists ( string key, resource handle )

dba_exists() checks whether the specified key exists in the database.

Список параметров

key

The key the check is performed for.

handle

The database handler, returned by dba_open() or dba_popen().

Возвращаемые значения

Returns TRUE if the key exists, FALSE otherwise.

Смотрите также

dba_delete()
dba_fetch()
dba_insert()
dba_replace()

Пред. | Начало | След.
dba_delete | Уровень выше | dba_fetch


dba_fetch

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

dba_fetch -- Fetch data specified by key

Описание

string dba_fetch ( string key, resource handle )

string dba_fetch ( string key, int skip, resource handle )

dba_fetch() fetches the data specified by key from the database specified with handle.

Список параметров

key

The key the data is specified by.

Замечание: When working with inifiles this function accepts arrays as keys where index 0 is the group and index 1 is the value name. See: dba_key_split().

skip

The number of key-value pairs to ignore when using cdb databases. This value is ignored for all other databases which do not support multiple keys with the same name.

handle

The database handler, returned by dba_open() or dba_popen().

Возвращаемые значения

Returns the associated string if the key/data pair is found, FALSE otherwise.

Список изменений

Версия | Описание
4.3 | The skip parameter is available to support cdb's capability of multiple keys having the same name.

Смотрите также

dba_exists()
dba_delete()
dba_insert()
dba_replace()
dba_key_split()

Пред. | Начало | След.
dba_exists | Уровень выше | dba_firstkey


dba_firstkey

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

dba_firstkey -- Fetch first key

Описание

string dba_firstkey ( resource handle )

dba_firstkey() returns the first key of the database and resets the internal key pointer. This permits a linear search through the whole database.

Список параметров

handle

The database handler, returned by dba_open() or dba_popen().

Возвращаемые значения

Returns the key on success, or FALSE on failure.

Смотрите также

dba_nextkey()
dba_key_split()
Example 2 in the DBA examples

Пред. | Начало | След.
dba_fetch | Уровень выше | dba_handlers


dba_handlers

(PHP 4 >= 4.3.0, PHP 5)

dba_handlers -- List all the handlers available

Описание

array dba_handlers ( [bool full_info] )

dba_handlers() list all the handlers supported by this extension.

Список параметров

full_info

Turns on/off full information display in the result. The default is FALSE.

Возвращаемые значения

Returns an array of database handlers. If full_info is set to TRUE, the array will be associative with the handlers names as keys, and their version information as value. Otherwise, the result will be an indexed array of handlers names.

Замечание: When the internal cdb library is used you will see cdb and cdb_make.

Примеры

Пример 1. dba_handlers() Example

<?php

echo "Available DBA handlers:\n";
foreach (dba_handlers(true) as $handler_name => $handler_version) {
  // clean the versions
  $handler_version = str_replace('$', '', $handler_version);
  echo " - $handler_name: $handler_version\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

Available DBA handlers:
 - cdb: 0.75, Revision: 1.3.2.3
 - cdb_make: 0.75, Revision: 1.2.2.4
 - db2: Sleepycat Software: Berkeley DB 2.7.7: (08/20/99)
 - inifile: 1.0, Revision: 1.6.2.3
 - flatfile: 1.0, Revision: 1.5.2.4

Пред. | Начало | След.
dba_firstkey | Уровень выше | dba_insert


dba_insert

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

dba_insert -- Insert entry

Описание

bool dba_insert ( string key, string value, resource handle )

dba_insert() inserts the entry described with key and value into the database.

Список параметров

key

The key of the entry to be inserted. If this key already exist in the database, this function will fail. Use dba_replace() if you need to replace an existent key.

value

The value to be inserted.

handle

The database handler, returned by dba_open() or dba_popen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

dba_exists()
dba_delete()
dba_fetch()
dba_replace()

Пред. | Начало | След.
dba_handlers | Уровень выше | dba_key_split


dba_key_split

(PHP 5)

dba_key_split -- Splits a key in string representation into array representation

Описание

mixed dba_key_split ( mixed key )

dba_key_split() splits a key (string representation) into an array representation.

Список параметров

key

The key in string representation.

Возвращаемые значения

Returns an array of the form array(0 => group, 1 => value_name). This function will return FALSE if key is NULL or FALSE.

Смотрите также

dba_firstkey()
dba_nextkey()
dba_fetch()

Пред. | Начало | След.
dba_insert | Уровень выше | dba_list


dba_list

(PHP 4 >= 4.3.0, PHP 5)

dba_list -- List all open database files

Описание

array dba_list ( void )

dba_list() list all open database files.

Возвращаемые значения

An associative array, in the form resourceid => filename.

Пред. | Начало | След.
dba_key_split | Уровень выше | dba_nextkey


dba_nextkey

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

dba_nextkey -- Fetch next key

Описание

string dba_nextkey ( resource handle )

dba_nextkey() returns the next key of the database and advances the internal key pointer.

Список параметров

handle

The database handler, returned by dba_open() or dba_popen().

Возвращаемые значения

Returns the key on success, or FALSE on failure.

Смотрите также

dba_firstkey()
dba_key_split()
Example 2 in the DBA examples

Пред. | Начало | След.
dba_list | Уровень выше | dba_open


dba_open

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

dba_open -- Open database

Описание

resource dba_open ( string path, string mode [, string handler [, mixed ...]] )

dba_open() establishes a database instance for path with mode using handler.

Список параметров

path

Commonly a regular path in your filesystem.

mode

It is r for read access, w for read/write access to an already existing database, c for read/write access and database creation if it doesn't currently exist, and n for create, truncate and read/write access.

Additionally you can set the database lock method with the next char. Use l to lock the database with a .lck file or d to lock the databasefile itself. It is important that all of your applications do this consistently.

If you want to test the access and do not want to wait for the lock you can add t as third character. When you are absolutely sure that you do not require database locking you can do so by using - instead of l or d. When none of d, l or - is used, dba will lock on the database file as it would with d.

Замечание: There can only be one writer for one database file. When you use dba on a webserver and more than one request requires write operations they can only be done one after another. Also read during write is not allowed. The dba extension uses locks to prevent this. See the following table:

Таблица 1. DBA locking

already open | mode = "rl" | mode = "rlt" | mode = "wl" | mode = "wlt" | mode = "rd" | mode = "rdt" | mode = "wd" | mode = "wdt"
not open | ok | ok | ok | ok | ok | ok | ok | ok
mode = "rl" | ok | ok | wait | false | illegal | illegal | illegal | illegal
mode = "wl" | wait | false | wait | false | illegal | illegal | illegal | illegal
mode = "rd" | illegal | illegal | illegal | illegal | ok | ok | wait | false
mode = "wd" | illegal | illegal | illegal | illegal | wait | false | wait | false

ok: the second call will be successfull.
wait: the second call waits until dba_close() is called for the first.
false: the second call returns false.
illegal: you must not mix "l" and "d" modifiers for mode parameter.

handler

The name of the handler which shall be used for accessing path. It is passed all optional parameters given to dba_open() and can act on behalf of them.

Возвращаемые значения

Returns a positive handle on success, or FALSE on failure.

Список изменений

Версия | Описание
4.3.0 | It's possible to open database files over network connection. However in cases a socket connection will be used (as with http or ftp) the connection will be locked instead of the resource itself. This is important to know since in such cases locking is simply ignored on the resource and other solutions have to be found.
4.3.0 | Locking and the mode modifiers "l", "d", "-" and "t" were added. In previous PHP versions, you must use semaphores to guard against simultaneous database access for any database handler with the exception of GDBM. See System V semaphore support.
before 4.3.5 | open mode 'c' is broken for several internal handlers and truncates the database instead of appending data to an existent database. Also dbm and ndbm fail on mode 'c' in typical configurations (this cannot be fixed).

Смотрите также

dba_popen()
dba_close()

Пред. | Начало | След.
dba_nextkey | Уровень выше | dba_optimize


dba_optimize

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

dba_optimize -- Optimize database

Описание

bool dba_optimize ( resource handle )

dba_optimize() optimizes the underlying database.

Список параметров

handle

The database handler, returned by dba_open() or dba_popen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

dba_sync()

Пред. | Начало | След.
dba_open | Уровень выше | dba_popen


dba_popen

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

dba_popen -- Open database persistently

Описание

resource dba_popen ( string path, string mode [, string handler [, mixed ...]] )

dba_popen() establishes a persistent database instance for path with mode using handler.

Список параметров

path

Commonly a regular path in your filesystem.

mode

It is r for read access, w for read/write access to an already existing database, c for read/write access and database creation if it doesn't currently exist, and n for create, truncate and read/write access.

handler

The name of the handler which shall be used for accessing path. It is passed all optional parameters given to dba_popen() and can act on behalf of them.

Возвращаемые значения

Returns a positive handle on success, or FALSE on failure.

Смотрите также

dba_open()
dba_close()

Пред. | Начало | След.
dba_optimize | Уровень выше | dba_replace


dba_replace

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

dba_replace -- Replace or insert entry

Описание

bool dba_replace ( string key, string value, resource handle )

dba_replace() replaces or inserts the entry described with key and value into the database specified by handle.

Список параметров

key

The key of the entry to be replaced.

value

The value to be replaced.

handle

The database handler, returned by dba_open() or dba_popen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

dba_exists()
dba_delete()
dba_fetch()
dba_insert()

Пред. | Начало | След.
dba_popen | Уровень выше | dba_sync


dba_sync

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

dba_sync -- Synchronize database

Описание

bool dba_sync ( resource handle )

dba_sync() synchronizes the database. This will probably trigger a physical write to the disk, if supported.

Список параметров

handle

The database handler, returned by dba_open() or dba_popen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

dba_optimize()

Пред. | Начало | След.
dba_replace | Уровень выше | dBase Functions


dBase Functions

Руководство по PHP
Пред. След.

XXV. dBase Functions

Введение

These functions allow you to access records stored in dBase-format (dbf) databases.

dBase files are simple sequential files of fixed length records. Records are appended to the end of the file and delete records are kept until you call dbase_pack().

The types of dBase fields available are:

Таблица 1. Available types of fields

Field | dBase Type | Format | Additional informations
M | Memo | n/a | This type is not supported by PHP, such field will be ignored
D | Date | YYYYMMDD | The field length is limited to 8
N | Number | A number | You must declare a length and a precision (the number of digits after the decimal point)
C | String | A string | You must declare a length. When retrieving data, the string will be right-padded with spaces to fit the declared length.
L | Boolean | T or Y for TRUE, F or N for FALSE | Stored and returned as an integer (1 or 0)

Внимание

There is no support for indexes or memo fields. There is no support for locking, too. Two concurrent webserver processes modifying the same dBase file will very likely ruin your database.

We recommend that you do not use dBase files as your production database. Choose any real SQL server instead; MySQL or Postgres are common choices with PHP. dBase support is here to allow you to import and export data to and from your web database, because the file format is commonly understood by Windows spreadsheets and organizers.

Установка

In order to enable the bundled dbase library and to use these functions, you must compile PHP with the --enable-dbase option.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Примеры

Many examples in this reference require a dBase database. We will use /tmp/test.dbf that will be created in the example of dbase_create().

Предопределенные константы

Данное расширение не определяет никакие константы.

Содержание
dbase_add_record -- Adds a record to a database
dbase_close -- Closes a database
dbase_create -- Creates a database
dbase_delete_record -- Deletes a record from a database
dbase_get_header_info -- Gets the header info of a database
dbase_get_record_with_names -- Gets a record from a database as an associative array
dbase_get_record -- Gets a record from a database as an indexed array
dbase_numfields -- Gets the number of fields of a database
dbase_numrecords -- Gets the number of records in a database
dbase_open -- Opens a database
dbase_pack -- Packs a database
dbase_replace_record -- Replaces a record in a database

Пред. | Начало | След.
dba_sync | Уровень выше | dbase_add_record


dbase_add_record

(PHP 3, PHP 4, PHP 5)

dbase_add_record -- Adds a record to a database

Описание

bool dbase_add_record ( int dbase_identifier, array record )

Adds the given data to the database.

Список параметров

dbase_identifier

The database link identifier, returned by dbase_open() or dbase_create().

record

An indexed array of data. The number of items must be equal to the number of fields in the database, otherwise dbase_add_record() will fail.

Замечание: If you're using dbase_get_record() return value for this parameter, remember to reset the key named deleted.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Inserting a record in a dBase database

<?php

// open in read-write mode
$db = dbase_open('/tmp/test.dbf', 2);

if ($db) {
  dbase_add_record($db, array(
      date('Ymd'),
      'Maxim Topolov',
      '23',
      'max@example.com',
      'T'));
  dbase_close($db);
}

?>

Смотрите также

dbase_delete_record()
dbase_replace_record()

Пред. | Начало | След.
dBase Functions | Уровень выше | dbase_close


dbase_close

(PHP 3, PHP 4, PHP 5)

dbase_close -- Closes a database

Описание

bool dbase_close ( int dbase_identifier )

Closes the given database link identifier.

Список параметров

dbase_identifier

The database link identifier, returned by dbase_open() or dbase_create().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Closing a dBase database file

<?php

// open in read-only mode
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
  // read some data ..

  dbase_close($db);
}

?>

Смотрите также

dbase_open()
dbase_create()

Пред. | Начало | След.
dbase_add_record | Уровень выше | dbase_create


dbase_create

(PHP 3, PHP 4, PHP 5)

dbase_create -- Creates a database

Описание

int dbase_create ( string filename, array fields )

dbase_create() creates a dBase database with the given definition.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Замечание: На поведение этой функции влияет значение директивы open_basedir.

Список параметров

filename

The name of the database. It can be a relative or absolute path to the file where dBase will store your data.

fields

An array of arrays, each array describing the format of one field of the database. Each field consists of a name, a character indicating the field type, and optionally, a length, and a precision.

Замечание: The fieldnames are limited in length and must not exceed 10 chars.

Возвращаемые значения

Returns a database link identifier if the database is successfully created, or FALSE if an error occurred.

Примеры

Пример 1. Creating a dBase database file

<?php

// database "definition"
$def = array(
  array("date",     "D"),
  array("name",     "C",  50),
  array("age",      "N",   3, 0),
  array("email",    "C", 128),
  array("ismember", "L")
);

// creation
if (!dbase_create('/tmp/test.dbf', $def)) {
  echo "Error, can't create the database\n";
}

?>

Смотрите также

dbase_open()
dbase_close()

Пред. | Начало | След.
dbase_close | Уровень выше | dbase_delete_record


dbase_delete_record

(PHP 3, PHP 4, PHP 5)

dbase_delete_record -- Deletes a record from a database

Описание

bool dbase_delete_record ( int dbase_identifier, int record_number )

Marks the given record to be deleted from the database.

Замечание: To actually remove the record from the database, you must also call dbase_pack().

Список параметров

dbase_identifier

The database link identifier, returned by dbase_open() or dbase_create().

record_number

An integer which spans from 1 to the number of records in the database (as returned by dbase_numrecords()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

dbase_add_record()
dbase_replace_record()

Пред. | Начало | След.
dbase_create | Уровень выше | dbase_get_header_info


dbase_get_header_info

(PHP 5)

dbase_get_header_info -- Gets the header info of a database

Описание

array dbase_get_header_info ( int dbase_identifier )

Returns information on the column structure of the given database link identifier.

Список параметров

dbase_identifier

The database link identifier, returned by dbase_open() or dbase_create().

Возвращаемые значения

An indexed array with an entry for each column in the database. The array index starts at 0.

Each array element contains an associative array of column information, as described here:

name

The name of the column

type

The human-readable name for the dbase type of the column (i.e. date, boolean, etc.)

length

The number of bytes this column can hold

precision

The number of digits of decimal precision for the column

format

A suggested printf() format specifier for the column

offset

The byte offset of the column from the start of the row

If the database header information cannot be read, FALSE is returned.

Примеры

Пример 1. Showing header information for a dBase database file

<?php
// Path to dbase file
$db_path = "/tmp/test.dbf";

// Open dbase file
$dbh = dbase_open($db_path, 0)
  or die("Error! Could not open dbase database file '$db_path'.");

// Get column information
$column_info = dbase_get_header_info($dbh);

// Display information
print_r($column_info);
?>

Пред. | Начало | След.
dbase_delete_record | Уровень выше | dbase_get_record_with_names


dbase_get_record_with_names

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

dbase_get_record_with_names -- Gets a record from a database as an associative array

Описание

array dbase_get_record_with_names ( int dbase_identifier, int record_number )

Gets a record from a dBase database as an associative array.

Список параметров

dbase_identifier

The database link identifier, returned by dbase_open() or dbase_create().

record_number

The index of the record.

Возвращаемые значения

An associative array with the record. This will also include a key named deleted which is set to 1 if the record has been marked for deletion (see dbase_delete_record()).

Each field is converted to the appropriate PHP type, except:

  • Dates are left as strings.

  • Integers that would have caused an overflow (> 32 bits) are returned as strings.

On error, dbase_get_record_with_names() will return FALSE.

Примеры

Пример 1. Listing all the registered members in the database

<?php
// open in read-only mode
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
  $record_numbers = dbase_numrecords($db);
  for ($i = 1; $i <= $record_numbers; $i++) {
      $row = dbase_get_record_with_names($db, $i);
      if ($row['ismember'] == 1) {
          echo "Member #$i: " . trim($row['name']) . "\n";
      }
  }
}
?>

Смотрите также

dbase_get_record()

Пред. | Начало | След.
dbase_get_header_info | Уровень выше | dbase_get_record


dbase_get_record

(PHP 3, PHP 4, PHP 5)

dbase_get_record -- Gets a record from a database as an indexed array

Описание

array dbase_get_record ( int dbase_identifier, int record_number )

Gets a record from a database as an indexed array.

Список параметров

dbase_identifier

The database link identifier, returned by dbase_open() or dbase_create().

record_number

The index of the record.

Возвращаемые значения

An indexed array with the record. This array will also include an associative key named deleted which is set to 1 if the record has been marked for deletion (see dbase_delete_record()).

Each field is converted to the appropriate PHP type, except:

  • Dates are left as strings.

  • Integers that would have caused an overflow (> 32 bits) are returned as strings.

On error, dbase_get_record() will return FALSE.

Смотрите также

dbase_get_record_with_names()

Пред. | Начало | След.
dbase_get_record_with_names | Уровень выше | dbase_numfields


dbase_numfields

(PHP 3, PHP 4, PHP 5)

dbase_numfields -- Gets the number of fields of a database

Описание

int dbase_numfields ( int dbase_identifier )

Gets the number of fields (columns) in the specified database.

Замечание: Field numbers are between 0 and dbase_numfields($db)-1, while record numbers are between 1 and dbase_numrecords($db).

Список параметров

dbase_identifier

The database link identifier, returned by dbase_open() or dbase_create().

Возвращаемые значения

The number of fields in the database, or FALSE if an error occurs.

Примеры

Пример 1. dbase_numfields() Example

<?php

$rec = dbase_get_record($db, $recno);
$nf  = dbase_numfields($db);
for ($i = 0; $i < $nf; $i++) {
  echo $rec[$i], "\n";
}

?>

Смотрите также

dbase_numrecords()

Пред. | Начало | След.
dbase_get_record | Уровень выше | dbase_numrecords


dbase_numrecords

(PHP 3, PHP 4, PHP 5)

dbase_numrecords -- Gets the number of records in a database

Описание

int dbase_numrecords ( int dbase_identifier )

Gets the number of records (rows) in the specified database.

Замечание: Record numbers are between 1 and dbase_numrecords($db), while field numbers are between 0 and dbase_numfields($db)-1.

Список параметров

dbase_identifier

The database link identifier, returned by dbase_open() or dbase_create().

Возвращаемые значения

The number of records in the database, or FALSE if an error occurs.

Примеры

Пример 1. Looping over all the records of the database

<?php

// open in read-only mode
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
  $record_numbers = dbase_numrecords($db);
  for ($i = 1; $i <= $record_numbers; $i++) {
      // do something here, for each record
  }
}

?>

Смотрите также

dbase_num_fields()

Пред. | Начало | След.
dbase_numfields | Уровень выше | dbase_open


dbase_open

(PHP 3, PHP 4, PHP 5)

dbase_open -- Opens a database

Описание

int dbase_open ( string filename, int mode )

dbase_open() opens a dBase database with the given access mode.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Замечание: На поведение этой функции влияет значение директивы open_basedir.

Список параметров

filename

The name of the database. It can be a relative or absolute path to the file where dBase will store your data.

mode

An integer which correspond to those for the open() system call (Typically 0 means read-only, 1 means write-only, and 2 means read and write).

Замечание: You can't open a dBase file in write-only mode as the function will fail to read the headers information and thus you can't use 1 as mode.

Примеры

Пример 1. Opening a dBase database file

<?php

// open in read-only mode
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
  // read some data ..

  dbase_close($db);
}

?>

Возвращаемые значения

Returns a database link identifier if the database is successfully opened, or FALSE if an error occurred.

Смотрите также

dbase_create()
dbase_close()

Пред. | Начало | След.
dbase_numrecords | Уровень выше | dbase_pack


dbase_pack

(PHP 3, PHP 4, PHP 5)

dbase_pack -- Packs a database

Описание

bool dbase_pack ( int dbase_identifier )

Packs the specified database by permanently deleting all records marked for deletion using dbase_delete_record().

Список параметров

dbase_identifier

The database link identifier, returned by dbase_open() or dbase_create().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Emptying a dBase database

<?php

// open in read-write mode
$db = dbase_open('/tmp/test.dbf', 2);

if ($db) {
  $record_numbers = dbase_numrecords($db);
  for ($i = 1; $i <= $record_numbers; $i++) {
      dbase_delete_record($db, $i);
  }
  // expunge the database
  dbase_pack($db);
}

?>

Смотрите также

dbase_delete_record()

Пред. | Начало | След.
dbase_open | Уровень выше | dbase_replace_record


dbase_replace_record

(PHP 3 >= 3.0.11, PHP 4, PHP 5)

dbase_replace_record -- Replaces a record in a database

Описание

bool dbase_replace_record ( int dbase_identifier, array record, int record_number )

Replaces the given record in the database with the given data.

Список параметров

dbase_identifier

The database link identifier, returned by dbase_open() or dbase_create().

record

An indexed array of data. The number of items must be equal to the number of fields in the database, otherwise dbase_add_record() will fail.

Замечание: If you're using dbase_get_record() return value for this parameter, remember to reset the key named deleted.

record_number

An integer which spans from 1 to the number of records in the database (as returned by dbase_numrecords()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Updating a record in the database

<?php

// open in read-write mode
$db = dbase_open('/tmp/test.dbf', 2);

if ($db) {
  // gets the old row
  $row = dbase_get_record_with_names($db, 1);

  // remove the 'deleted' entry
  unset($row['deleted']);

  // Update the date field with the current timestamp
  $row['date'] = date('Ymd');

  // Replace the record
  dbase_replace_record($db, $row, 1);
  dbase_close($db);
}

?>

Смотрите также

dbase_add_record()
dbase_delete_record()

Пред. | Начало | След.
dbase_pack | Уровень выше | DBM Functions [deprecated]


DBM Functions [deprecated]

Руководство по PHP
Пред. След.

XXVI. DBM Functions [deprecated]

Введение

These functions allow you to store records stored in a dbm-style database. This type of database (supported by the Berkeley DB, GDBM, and some system libraries, as well as a built-in flatfile library) stores key/value pairs (as opposed to the full-blown records supported by relational databases).

Замечание: However, dbm support is deprecated and you are encouraged to use the Database (dbm-style) abstraction layer functions instead.

Требования

To use this functions you have to compile PHP with support for an underlying database. See the list of supported Databases.

Установка

In order to use these functions, you must compile PHP with dbm support by using the --with-db option. In addition you must ensure support for an underlying database or you can use some system libraries.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

The function dbmopen() returns an database identifier which is used by the other dbm-functions.

Предопределенные константы

Данное расширение не определяет никакие константы.

Примеры

Пример 1. DBM example

<?php

$dbm = dbmopen("lastseen", "w");
if (dbmexists($dbm, $userid)) {
    $last_seen = dbmfetch($dbm, $userid);
} else {
    dbminsert($dbm, $userid, time());
}
do_stuff();
dbmreplace($dbm, $userid, time());
dbmclose($dbm);

?>

Содержание
dblist -- Describes the DBM-compatible library being used
dbmclose -- Closes a dbm database
dbmdelete -- Deletes the value for a key from a DBM database
dbmexists -- Tells if a value exists for a key in a DBM database
dbmfetch -- Fetches a value for a key from a DBM database
dbmfirstkey -- Retrieves the first key from a DBM database
dbminsert -- Inserts a value for a key in a DBM database
dbmnextkey -- Retrieves the next key from a DBM database
dbmopen -- Opens a DBM database
dbmreplace -- Replaces the value for a key in a DBM database

Пред. | Начало | След.
dbase_replace_record | Уровень выше | dblist


dblist

(PHP 3, PHP 4, PECL)

dblist -- Describes the DBM-compatible library being used

Description

string dblist ( void )

Пример 1. Getting the information on the command line

[marcus@zaphod marcus]$ php -r 'echo dblist();'
This is GDBM version 1.8.0, as of May 19, 1999.

Пред. | Начало | След.
DBM Functions [deprecated] | Уровень выше | dbmclose


dbmclose

(PHP 3, PHP 4, PECL)

dbmclose -- Closes a dbm database

Description

bool dbmclose ( resource dbm_identifier )

Unlocks and closes the specified database.

Пред. | Начало | След.
dblist | Уровень выше | dbmdelete


dbmdelete

(PHP 3, PHP 4, PECL)

dbmdelete -- Deletes the value for a key from a DBM database

Description

bool dbmdelete ( resource dbm_identifier, string key )

Deletes the value for key in the database.

Returns FALSE if the key didn't exist in the database.

Пред. | Начало | След.
dbmclose | Уровень выше | dbmexists


dbmexists

(PHP 3, PHP 4, PECL)

dbmexists -- Tells if a value exists for a key in a DBM database

Description

bool dbmexists ( resource dbm_identifier, string key )

Returns TRUE if there is a value associated with the key.

Пред. | Начало | След.
dbmdelete | Уровень выше | dbmfetch


dbmfetch

(PHP 3, PHP 4, PECL)

dbmfetch -- Fetches a value for a key from a DBM database

Description

string dbmfetch ( resource dbm_identifier, string key )

Returns the value associated with key.

Пред. | Начало | След.
dbmexists | Уровень выше | dbmfirstkey


dbmfirstkey

(PHP 3, PHP 4, PECL)

dbmfirstkey -- Retrieves the first key from a DBM database

Description

string dbmfirstkey ( resource dbm_identifier )

Returns the first key in the database. Note that no particular order is guaranteed since the database may be built using a hash-table, which doesn't guarantee any ordering.

Пред. | Начало | След.
dbmfetch | Уровень выше | dbminsert


dbminsert

(PHP 3, PHP 4, PECL)

dbminsert -- Inserts a value for a key in a DBM database

Description

int dbminsert ( resource dbm_identifier, string key, string value )

Adds the value to the database with the specified key.

Returns -1 if the database was opened read-only, 0 if the insert was successful, and 1 if the specified key already exists. (To replace the value, use dbmreplace().)

Пред. | Начало | След.
dbmfirstkey | Уровень выше | dbmnextkey


dbmnextkey

(PHP 3, PHP 4, PECL)

dbmnextkey -- Retrieves the next key from a DBM database

Description

string dbmnextkey ( resource dbm_identifier, string key )

Returns the next key after key. By calling dbmfirstkey() followed by successive calls to dbmnextkey() it is possible to visit every key/value pair in the dbm database. For example:

Пример 1. Visiting every key/value pair in a DBM database

<?php

$key = dbmfirstkey($dbm_id);
while ($key) {
    echo "$key = " . dbmfetch($dbm_id, $key) . "\n";
    $key = dbmnextkey($dbm_id, $key);
}

?>

Пред. | Начало | След.
dbminsert | Уровень выше | dbmopen


dbmopen

(PHP 3, PHP 4, PECL)

dbmopen -- Opens a DBM database

Description

resource dbmopen ( string filename, string flags )

The first argument is the full-path filename of the DBM file to be opened and the second is the file open mode which is one of "r", "n", "c" or "w" for read-only, new (implies read-write, and most likely will truncate an already-existing database of the same name), create (implies read-write, and will not truncate an already-existing database of the same name) and read-write respectively.

Returns an identifier to be passed to the other DBM functions on success, or FALSE on failure.

If NDBM support is used, NDBM will actually create filename.dir and filename.pag files. GDBM only uses one file, as does the internal flat-file support, and Berkeley DB creates a filename.db file. Note that PHP does its own file locking in addition to any file locking that may be done by the DBM library itself. PHP does not delete the .lck files it creates. It uses these files simply as fixed inodes on which to do the file locking. For more information on DBM files, see your Unix man pages, or obtain GNU's GDBM.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Пред. | Начало | След.
dbmnextkey | Уровень выше | dbmreplace


dbmreplace

(PHP 3, PHP 4, PECL)

dbmreplace -- Replaces the value for a key in a DBM database

Description

int dbmreplace ( resource dbm_identifier, string key, string value )

Replaces the value for the specified key in the database.

This will also add the key to the database if it didn't already exist.

Пред. | Начало | След.
dbmopen | Уровень выше | dbx Functions


DB++ Functions

Руководство по PHP
Пред. След.

XXIII. DB++ Functions

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

Введение

db++, made by the German company Concept asa, is a relational database system with high performance and low memory and disk usage in mind. While providing SQL as an additional language interface, it is not really a SQL database in the first place but provides its own AQL query language which is much more influenced by the relational algebra then SQL is.

Concept asa always had an interest in supporting open source languages, db++ has had Perl and Tcl call interfaces for years now and uses Tcl as its internal stored procedure language.

Требования

This extension relies on external client libraries so you have to have a db++ client installed on the system you want to use this extension on.

Concept asa provides db++ Demo versions and documentation for Linux, some other Unix versions. There is also a Windows version of db++, but this extension doesn't support it (yet).

Установка

In order to build this extension yourself you need the db++ client libraries and header files to be installed on your system (these are included in the db++ installation archives by default). You have to run configure with option --with-dbplus to build this extension.

configure looks for the client libraries and header files under the default paths /usr/dbplus, /usr/local/dbplus and /opt/dblus. If you have installed db++ in a different place you have add the installation path to the configure option like this: --with-dbplus=/your/installation/path.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

dbplus_relation

Most db++ functions operate on or return dbplus_relation resources. A dbplus_relation is a handle to a stored relation or a relation generated as the result of a query.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

db++ error codes

Таблица 1. DB++ Error Codes

PHP Constant | db++ constant | meaning
DBPLUS_ERR_NOERR (integer) | ERR_NOERR | Null error condition
DBPLUS_ERR_DUPLICATE (integer) | ERR_DUPLICATE | Tried to insert a duplicate tuple
DBPLUS_ERR_EOSCAN (integer) | ERR_EOSCAN | End of scan from rget()
DBPLUS_ERR_EMPTY (integer) | ERR_EMPTY | Relation is empty (server)
DBPLUS_ERR_CLOSE (integer) | ERR_CLOSE | The server can't close
DBPLUS_ERR_WLOCKED (integer) | ERR_WLOCKED | The record is write locked
DBPLUS_ERR_LOCKED (integer) | ERR_LOCKED | Relation was already locked
DBPLUS_ERR_NOLOCK (integer) | ERR_NOLOCK | Relation cannot be locked
DBPLUS_ERR_READ (integer) | ERR_READ | Read error on relation
DBPLUS_ERR_WRITE (integer) | ERR_WRITE | Write error on relation
DBPLUS_ERR_CREATE (integer) | ERR_CREATE | Create() system call failed
DBPLUS_ERR_LSEEK (integer) | ERR_LSEEK | Lseek() system call failed
DBPLUS_ERR_LENGTH (integer) | ERR_LENGTH | Tuple exceeds maximum length
DBPLUS_ERR_OPEN (integer) | ERR_OPEN | Open() system call failed
DBPLUS_ERR_WOPEN (integer) | ERR_WOPEN | Relation already opened for writing
DBPLUS_ERR_MAGIC (integer) | ERR_MAGIC | File is not a relation
DBPLUS_ERR_VERSION (integer) | ERR_VERSION | File is a very old relation
DBPLUS_ERR_PGSIZE (integer) | ERR_PGSIZE | Relation uses a different page size
DBPLUS_ERR_CRC (integer) | ERR_CRC | Invalid crc in the superpage
DBPLUS_ERR_PIPE (integer) | ERR_PIPE | Piped relation requires lseek()
DBPLUS_ERR_NIDX (integer) | ERR_NIDX | Too many secondary indices
DBPLUS_ERR_MALLOC (integer) | ERR_MALLOC | Malloc() call failed
DBPLUS_ERR_NUSERS (integer) | ERR_NUSERS | Error use of max users
DBPLUS_ERR_PREEXIT (integer) | ERR_PREEXIT | Caused by invalid usage
DBPLUS_ERR_ONTRAP (integer) | ERR_ONTRAP | Caused by a signal
DBPLUS_ERR_PREPROC (integer) | ERR_PREPROC | Error in the preprocessor
DBPLUS_ERR_DBPARSE (integer) | ERR_DBPARSE | Error in the parser
DBPLUS_ERR_DBRUNERR (integer) | ERR_DBRUNERR | Run error in db
DBPLUS_ERR_DBPREEXIT (integer) | ERR_DBPREEXIT | Exit condition caused by prexit() * procedure
DBPLUS_ERR_WAIT (integer) | ERR_WAIT | Wait a little (Simple only)
DBPLUS_ERR_CORRUPT_TUPLE (integer) | ERR_CORRUPT_TUPLE | A client sent a corrupt tuple
DBPLUS_ERR_WARNING0 (integer) | ERR_WARNING0 | The Simple routines encountered a non fatal error which was corrected
DBPLUS_ERR_PANIC (integer) | ERR_PANIC | The server should not really die but after a disaster send ERR_PANIC to all its clients
DBPLUS_ERR_FIFO (integer) | ERR_FIFO | Can't create a fifo
DBPLUS_ERR_PERM (integer) | ERR_PERM | Permission denied
DBPLUS_ERR_TCL (integer) | ERR_TCL | TCL_error
DBPLUS_ERR_RESTRICTED (integer) | ERR_RESTRICTED | Only two users
DBPLUS_ERR_USER (integer) | ERR_USER | An error in the use of the library by an application programmer
DBPLUS_ERR_UNKNOWN (integer) | ERR_UNKNOWN |

Содержание
dbplus_add -- Add a tuple to a relation
dbplus_aql -- Perform AQL query
dbplus_chdir -- Get/Set database virtual current directory
dbplus_close -- Close a relation
dbplus_curr -- Get current tuple from relation
dbplus_errcode -- Get error string for given errorcode or last error
dbplus_errno -- Get error code for last operation
dbplus_find -- Set a constraint on a relation
dbplus_first -- Get first tuple from relation
dbplus_flush -- Flush all changes made on a relation
dbplus_freealllocks -- Free all locks held by this client
dbplus_freelock -- Release write lock on tuple
dbplus_freerlocks -- Free all tuple locks on given relation
dbplus_getlock -- Get a write lock on a tuple
dbplus_getunique -- Get an id number unique to a relation
dbplus_info -- Get information about a relation
dbplus_last -- Get last tuple from relation
dbplus_lockrel -- Request write lock on relation
dbplus_next -- Get next tuple from relation
dbplus_open -- Open relation file
dbplus_prev -- Get previous tuple from relation
dbplus_rchperm -- Change relation permissions
dbplus_rcreate -- Creates a new DB++ relation
dbplus_rcrtexact -- Creates an exact but empty copy of a relation including indices
dbplus_rcrtlike -- Creates an empty copy of a relation with default indices
dbplus_resolve -- Resolve host information for relation
dbplus_restorepos -- Restore position
dbplus_rkeys -- Specify new primary key for a relation
dbplus_ropen -- Open relation file local
dbplus_rquery -- Perform local (raw) AQL query
dbplus_rrename -- Rename a relation
dbplus_rsecindex -- Create a new secondary index for a relation
dbplus_runlink -- Remove relation from filesystem
dbplus_rzap -- Remove all tuples from relation
dbplus_savepos -- Save position
dbplus_setindex -- Set index
dbplus_setindexbynumber -- Set index by number
dbplus_sql -- Perform SQL query
dbplus_tcl -- Execute TCL code on server side
dbplus_tremove -- Remove tuple and return new current tuple
dbplus_undo -- Undo
dbplus_undoprepare -- Prepare undo
dbplus_unlockrel -- Give up write lock on relation
dbplus_unselect -- Remove a constraint from relation
dbplus_update -- Update specified tuple in relation
dbplus_xlockrel -- Request exclusive lock on relation
dbplus_xunlockrel -- Free exclusive lock on relation

Пред. | Начало | След.
time | Уровень выше | dbplus_add


dbplus_add

(4.1.0 - 4.2.3 only, PECL)

dbplus_add -- Add a tuple to a relation

Description

int dbplus_add ( resource relation, array tuple )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

This function will add a tuple to a relation. The tuple data is an array of attribute/value pairs to be inserted into the given relation. After successful execution the tuple array will contain the complete data of the newly created tuple, including all implicitly set domain fields like sequences.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

Пред. | Начало | След.
DB++ Functions | Уровень выше | dbplus_aql


dbplus_aql

(4.1.0 - 4.2.3 only, PECL)

dbplus_aql -- Perform AQL query

Description

resource dbplus_aql ( string query [, string server [, string dbpath]] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_aql() will execute an AQL query on the given server and dbpath.

On success it will return a relation handle. The result data may be fetched from this relation by calling dbplus_next() and dbplus_current(). Other relation access functions will not work on a result relation.

Further information on the AQL A... Query Language is provided in the original db++ manual.

Пред. | Начало | След.
dbplus_add | Уровень выше | dbplus_chdir


dbplus_chdir

(4.1.0 - 4.2.3 only, PECL)

dbplus_chdir -- Get/Set database virtual current directory

Description

string dbplus_chdir ( [string newdir] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_chdir() will change the virtual current directory where relation files will be looked for by dbplus_open(). dbplus_chdir() will return the absolute path of the current directory. Calling dbplus_chdir() without giving any newdir may be used to query the current working directory.

Пред. | Начало | След.
dbplus_aql | Уровень выше | dbplus_close


dbplus_close

(4.1.0 - 4.2.3 only, PECL)

dbplus_close -- Close a relation

Description

mixed dbplus_close ( resource relation )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Calling dbplus_close() will close a relation previously opened by dbplus_open().

Returns TRUE on success or DBPLUS_ERR_UNKNOWN on failure.

Пред. | Начало | След.
dbplus_chdir | Уровень выше | dbplus_curr


dbplus_curr

(4.1.0 - 4.2.3 only, PECL)

dbplus_curr -- Get current tuple from relation

Description

int dbplus_curr ( resource relation, array &tuple )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_curr() will read the data for the current tuple for the given relation and will pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_first(),
dbplus_prev(),
dbplus_next(), and
dbplus_last().

Пред. | Начало | След.
dbplus_close | Уровень выше | dbplus_errcode


dbplus_errcode

(4.1.0 - 4.2.3 only, PECL)

dbplus_errcode -- Get error string for given errorcode or last error

Description

string dbplus_errcode ( [int errno] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_errcode() returns a cleartext error string for the error code passed as errno of for the result code of the last db++ operation if no parameter is given.

Пред. | Начало | След.
dbplus_curr | Уровень выше | dbplus_errno


dbplus_errno

(4.1.0 - 4.2.3 only, PECL)

dbplus_errno -- Get error code for last operation

Description

int dbplus_errno ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_errno() will return the error code returned by the last db++ operation.

See also dbplus_errcode().

Пред. | Начало | След.
dbplus_errcode | Уровень выше | dbplus_find


dbplus_find

(4.1.0 - 4.2.3 only, PECL)

dbplus_find -- Set a constraint on a relation

Description

int dbplus_find ( resource relation, array constraints, mixed tuple )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_find() will place a constraint on the given relation. Further calls to functions like dbplus_curr() or dbplus_next() will only return tuples matching the given constraints.

Constraints are triplets of strings containing of a domain name, a comparison operator and a comparison value. The constraints parameter array may consist of a collection of string arrays, each of which contains a domain, an operator and a value, or of a single string array containing a multiple of three elements.

The comparison operator may be one of the following strings: '==', '>', '>=', '<', '<=', '!=', '~' for a regular expression match and 'BAND' or 'BOR' for bitwise operations.

See also dbplus_unselect().

Пред. | Начало | След.
dbplus_errno | Уровень выше | dbplus_first


dbplus_first

(4.1.0 - 4.2.3 only, PECL)

dbplus_first -- Get first tuple from relation

Description

int dbplus_first ( resource relation, array &tuple )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_curr() will read the data for the first tuple for the given relation, make it the current tuple and pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_curr(),
dbplus_prev(),
dbplus_next(), and
dbplus_last().

Пред. | Начало | След.
dbplus_find | Уровень выше | dbplus_flush


dbplus_flush

(4.1.0 - 4.2.3 only, PECL)

dbplus_flush -- Flush all changes made on a relation

Description

int dbplus_flush ( resource relation )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_flush() will write all changes applied to relation since the last flush to disk.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

Пред. | Начало | След.
dbplus_first | Уровень выше | dbplus_freealllocks


dbplus_freealllocks

(4.1.0 - 4.2.3 only, PECL)

dbplus_freealllocks -- Free all locks held by this client

Description

int dbplus_freealllocks ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_freealllocks() will free all tuple locks held by this client.

See also dbplus_getlock(),
dbplus_freelock(), and
dbplus_freerlocks().

Пред. | Начало | След.
dbplus_flush | Уровень выше | dbplus_freelock


dbplus_freelock

(4.1.0 - 4.2.3 only, PECL)

dbplus_freelock -- Release write lock on tuple

Description

int dbplus_freelock ( resource relation, string tname )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_freelock() will release a write lock on the given tuple previously obtained by dbplus_getlock().

See also dbplus_getlock(),
dbplus_freerlocks(), and
dbplus_freealllocks().

Пред. | Начало | След.
dbplus_freealllocks | Уровень выше | dbplus_freerlocks


dbplus_freerlocks

(4.1.0 - 4.2.3 only, PECL)

dbplus_freerlocks -- Free all tuple locks on given relation

Description

int dbplus_freerlocks ( resource relation )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_freerlocks() will free all tuple locks held on the given relation.

See also dbplus_getlock(),
dbplus_freelock(), and
dbplus_freealllocks().

Пред. | Начало | След.
dbplus_freelock | Уровень выше | dbplus_getlock


dbplus_getlock

(4.1.0 - 4.2.3 only, PECL)

dbplus_getlock -- Get a write lock on a tuple

Description

int dbplus_getlock ( resource relation, string tname )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_getlock() will request a write lock on the specified tuple. It will return zero on success or a non-zero error code, especially DBPLUS_ERR_WLOCKED, on failure.

See also dbplus_freelock(),
dbplus_freerlocks(), and
dbplus_freealllocks().

Пред. | Начало | След.
dbplus_freerlocks | Уровень выше | dbplus_getunique


dbplus_getunique

(4.1.0 - 4.2.3 only, PECL)

dbplus_getunique -- Get an id number unique to a relation

Description

int dbplus_getunique ( resource relation, int uniqueid )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_getunique() will obtain a number guaranteed to be unique for the given relation and will pass it back in the variable given as uniqueid.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

Пред. | Начало | След.
dbplus_getlock | Уровень выше | dbplus_info


dbplus_info

(4.1.0 - 4.2.3 only, PECL)

dbplus_info -- Get information about a relation

Description

int dbplus_info ( resource relation, string key, array &result )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
dbplus_getunique | Уровень выше | dbplus_last


dbplus_last

(4.1.0 - 4.2.3 only, PECL)

dbplus_last -- Get last tuple from relation

Description

int dbplus_last ( resource relation, array &tuple )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_curr() will read the data for the last tuple for the given relation, make it the current tuple and pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_first(),
dbplus_curr(),
dbplus_prev(), and
dbplus_next().

Пред. | Начало | След.
dbplus_info | Уровень выше | dbplus_lockrel


dbplus_lockrel

(no version information, might be only in CVS)

dbplus_lockrel -- Request write lock on relation

Description

int dbplus_lockrel ( resource relation )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_lockrel() will request a write lock on the given relation. Other clients may still query the relation, but can't alter it while it is locked.

Пред. | Начало | След.
dbplus_last | Уровень выше | dbplus_next


dbplus_next

(4.1.0 - 4.2.3 only, PECL)

dbplus_next -- Get next tuple from relation

Description

int dbplus_next ( resource relation, array &tuple )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_curr() will read the data for the next tuple for the given relation, will make it the current tuple and will pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_first(),
dbplus_curr(),
dbplus_prev(), and
dbplus_last().

Пред. | Начало | След.
dbplus_lockrel | Уровень выше | dbplus_open


dbplus_open

(4.1.0 - 4.2.3 only, PECL)

dbplus_open -- Open relation file

Description

resource dbplus_open ( string name )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

The relation file name will be opened. name can be either a file name or a relative or absolute path name. This will be mapped in any case to an absolute relation file path on a specific host machine and server.

On success a relation file resource (cursor) is returned which must be used in any subsequent commands referencing the relation. Failure leads to a zero return value, the actual error code may be asked for by calling dbplus_errno().

Пред. | Начало | След.
dbplus_next | Уровень выше | dbplus_prev


dbplus_prev

(4.1.0 - 4.2.3 only, PECL)

dbplus_prev -- Get previous tuple from relation

Description

int dbplus_prev ( resource relation, array &tuple )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_curr() will read the data for the previous tuple for the given relation, will make it the current tuple and will pass it back as an associative array in tuple.

The function will return zero (aka. DBPLUS_ERR_NOERR) on success or a db++ error code on failure. See dbplus_errcode() or the introduction to this chapter for more information on db++ error codes.

See also dbplus_first(),
dbplus_curr(),
dbplus_next(), and
dbplus_last().

Пред. | Начало | След.
dbplus_open | Уровень выше | dbplus_rchperm


dbplus_rchperm

(4.1.0 - 4.2.3 only, PECL)

dbplus_rchperm -- Change relation permissions

Description

int dbplus_rchperm ( resource relation, int mask, string user, string group )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_rchperm() will change access permissions as specified by mask, user and group. The values for these are operating system specific.

Пред. | Начало | След.
dbplus_prev | Уровень выше | dbplus_rcreate


dbplus_rcreate

(4.1.0 - 4.2.3 only, PECL)

dbplus_rcreate -- Creates a new DB++ relation

Description

resource dbplus_rcreate ( string name, mixed domlist [, bool overwrite] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_rcreate() will create a new relation named name. An existing relation by the same name will only be overwritten if the relation is currently not in use and overwrite is set to TRUE.

domlist should contain the domain specification for the new relation within an array of domain description strings. ( dbplus_rcreate() will also accept a string with space delimited domain description strings, but it is recommended to use an array). A domain description string consists of a domain name unique to this relation, a slash and a type specification character. See the db++ documentation, especially the dbcreate(1) manpage, for a description of available type specifiers and their meanings.

Пред. | Начало | След.
dbplus_rchperm | Уровень выше | dbplus_rcrtexact


dbplus_rcrtexact

(4.1.0 - 4.2.3 only, PECL)

dbplus_rcrtexact -- Creates an exact but empty copy of a relation including indices

Description

mixed dbplus_rcrtexact ( string name, resource relation [, bool overwrite] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_rcrtexact() will create an exact but empty copy of the given relation under a new name. An existing relation by the same name will only be overwritten if overwrite is TRUE and no other process is currently using the relation.

Returns resource on success or DBPLUS_ERR_UNKNOWN on failure.

Пред. | Начало | След.
dbplus_rcreate | Уровень выше | dbplus_rcrtlike


dbplus_rcrtlike

(4.1.0 - 4.2.3 only, PECL)

dbplus_rcrtlike -- Creates an empty copy of a relation with default indices

Description

mixed dbplus_rcrtlike ( string name, resource relation [, int overwrite] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_rcrtexact() will create an empty copy of the given relation under a new name, but with default indices. An existing relation by the same name will only be overwritten if overwrite is TRUE and no other process is currently using the relation.

Returns resource on success or DBPLUS_ERR_UNKNOWN on failure.

Пред. | Начало | След.
dbplus_rcrtexact | Уровень выше | dbplus_resolve


dbplus_resolve

(4.1.0 - 4.2.3 only, PECL)

dbplus_resolve -- Resolve host information for relation

Description

array dbplus_resolve ( string relation_name )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_resolve() will try to resolve the given relation_name and find out internal server id, real hostname and the database path on this host. The function will return an array containing these values under the keys 'sid', 'host' and 'host_path' or FALSE on error.

See also dbplus_tcl().

Пред. | Начало | След.
dbplus_rcrtlike | Уровень выше | dbplus_restorepos


dbplus_restorepos

(4.1.0 - 4.2.3 only, PECL)

dbplus_restorepos -- Restore position

Description

int dbplus_restorepos ( resource relation, array tuple )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
dbplus_resolve | Уровень выше | dbplus_rkeys


dbplus_rkeys

(4.1.0 - 4.2.3 only, PECL)

dbplus_rkeys -- Specify new primary key for a relation

Description

mixed dbplus_rkeys ( resource relation, mixed domlist )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_rkeys() will replace the current primary key for relation with the combination of domains specified by domlist.

domlist may be passed as a single domain name string or as an array of domain names.

Returns resource on success or DBPLUS_ERR_UNKNOWN on failure.

Пред. | Начало | След.
dbplus_restorepos | Уровень выше | dbplus_ropen


dbplus_ropen

(4.1.0 - 4.2.3 only, PECL)

dbplus_ropen -- Open relation file local

Description

resource dbplus_ropen ( string name )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_ropen() will open the relation file locally for quick access without any client/server overhead. Access is read only and only dbplus_current() and dbplus_next() may be applied to the returned relation.

Пред. | Начало | След.
dbplus_rkeys | Уровень выше | dbplus_rquery


dbplus_rquery

(4.1.0 - 4.2.3 only, PECL)

dbplus_rquery -- Perform local (raw) AQL query

Description

resource dbplus_rquery ( string query [, string dbpath] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_rquery() performs a local (raw) AQL query using an AQL interpreter embedded into the db++ client library. dbplus_rquery() is faster than dbplus_aql() but will work on local data only.

Пред. | Начало | След.
dbplus_ropen | Уровень выше | dbplus_rrename


dbplus_rrename

(4.1.0 - 4.2.3 only, PECL)

dbplus_rrename -- Rename a relation

Description

int dbplus_rrename ( resource relation, string name )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_rrename() will change the name of relation to name.

Пред. | Начало | След.
dbplus_rquery | Уровень выше | dbplus_rsecindex


dbplus_rsecindex

(4.1.0 - 4.2.3 only, PECL)

dbplus_rsecindex -- Create a new secondary index for a relation

Description

mixed dbplus_rsecindex ( resource relation, mixed domlist, int type )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_rsecindex() will create a new secondary index for relation with consists of the domains specified by domlist and is of type type

domlist may be passed as a single domain name string or as an array of domain names.

Returns resource on success or DBPLUS_ERR_UNKNOWN on failure.

Пред. | Начало | След.
dbplus_rrename | Уровень выше | dbplus_runlink


dbplus_runlink

(4.1.0 - 4.2.3 only, PECL)

dbplus_runlink -- Remove relation from filesystem

Description

int dbplus_runlink ( resource relation )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_unlink() will close and remove the relation.

Пред. | Начало | След.
dbplus_rsecindex | Уровень выше | dbplus_rzap


dbplus_rzap

(4.1.0 - 4.2.3 only, PECL)

dbplus_rzap -- Remove all tuples from relation

Description

int dbplus_rzap ( resource relation )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_rzap() will remove all tuples from relation.

Пред. | Начало | След.
dbplus_runlink | Уровень выше | dbplus_savepos


dbplus_savepos

(4.1.0 - 4.2.3 only, PECL)

dbplus_savepos -- Save position

Description

int dbplus_savepos ( resource relation )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
dbplus_rzap | Уровень выше | dbplus_setindex


dbplus_setindex

(4.1.0 - 4.2.3 only, PECL)

dbplus_setindex -- Set index

Description

int dbplus_setindex ( resource relation, string idx_name )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
dbplus_savepos | Уровень выше | dbplus_setindexbynumber


dbplus_setindexbynumber

(4.1.0 - 4.2.3 only, PECL)

dbplus_setindexbynumber -- Set index by number

Description

int dbplus_setindexbynumber ( resource relation, int idx_number )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
dbplus_setindex | Уровень выше | dbplus_sql


dbplus_sql

(4.1.0 - 4.2.3 only, PECL)

dbplus_sql -- Perform SQL query

Description

resource dbplus_sql ( string query [, string server [, string dbpath]] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
dbplus_setindexbynumber | Уровень выше | dbplus_tcl


dbplus_tcl

(4.1.0 - 4.2.3 only, PECL)

dbplus_tcl -- Execute TCL code on server side

Description

string dbplus_tcl ( int sid, string script )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

A db++ server will prepare a TCL interpreter for each client connection. This interpreter will enable the server to execute TCL code provided by the client as a sort of stored procedures to improve the performance of database operations by avoiding client/server data transfers and context switches.

dbplus_tcl() needs to pass the client connection id the TCL script code should be executed by. dbplus_resolve() will provide this connection id. The function will return whatever the TCL code returns or a TCL error message if the TCL code fails.

See also dbplus_resolve().

Пред. | Начало | След.
dbplus_sql | Уровень выше | dbplus_tremove


dbplus_tremove

(4.1.0 - 4.2.3 only, PECL)

dbplus_tremove -- Remove tuple and return new current tuple

Description

int dbplus_tremove ( resource relation, array tuple [, array &current] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_tremove() removes tuple from relation if it perfectly matches a tuple within the relation. current, if given, will contain the data of the new current tuple after calling dbplus_tremove().

Пред. | Начало | След.
dbplus_tcl | Уровень выше | dbplus_undo


dbplus_undo

(4.1.0 - 4.2.3 only, PECL)

dbplus_undo -- Undo

Description

int dbplus_undo ( resource relation )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
dbplus_tremove | Уровень выше | dbplus_undoprepare


dbplus_undoprepare

(4.1.0 - 4.2.3 only, PECL)

dbplus_undoprepare -- Prepare undo

Description

int dbplus_undoprepare ( resource relation )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
dbplus_undo | Уровень выше | dbplus_unlockrel


dbplus_unlockrel

(4.1.0 - 4.2.3 only, PECL)

dbplus_unlockrel -- Give up write lock on relation

Description

int dbplus_unlockrel ( resource relation )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_unlockrel() will release a write lock previously obtained by dbplus_lockrel().

Пред. | Начало | След.
dbplus_undoprepare | Уровень выше | dbplus_unselect


dbplus_unselect

(4.1.0 - 4.2.3 only, PECL)

dbplus_unselect -- Remove a constraint from relation

Description

int dbplus_unselect ( resource relation )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Calling dbplus_unselect() will remove a constraint previously set by dbplus_find() on relation.

Пред. | Начало | След.
dbplus_unlockrel | Уровень выше | dbplus_update


dbplus_update

(4.1.0 - 4.2.3 only, PECL)

dbplus_update -- Update specified tuple in relation

Description

int dbplus_update ( resource relation, array old, array new )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_update() replaces the tuple given by old with the data from new if and only if old completely matches a tuple within relation.

Пред. | Начало | След.
dbplus_unselect | Уровень выше | dbplus_xlockrel


dbplus_xlockrel

(4.1.0 - 4.2.3 only, PECL)

dbplus_xlockrel -- Request exclusive lock on relation

Description

int dbplus_xlockrel ( resource relation )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_xlockrel() will request an exclusive lock on relation preventing even read access from other clients.

See also dbplus_xunlockrel().

Пред. | Начало | След.
dbplus_update | Уровень выше | dbplus_xunlockrel


dbplus_xunlockrel

(4.1.0 - 4.2.3 only, PECL)

dbplus_xunlockrel -- Free exclusive lock on relation

Description

int dbplus_xunlockrel ( resource relation )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

dbplus_xunlockrel() will release an exclusive lock on relation previously obtained by dbplus_xlockrel().

Пред. | Начало | След.
dbplus_xlockrel | Уровень выше | Database (dbm-style) Abstraction Layer Functions


dbx Functions

Руководство по PHP
Пред. След.

XXVII. dbx Functions

Введение

The dbx module is a database abstraction layer (db 'X', where 'X' is a supported database). The dbx functions allow you to access all supported databases using a single calling convention. The dbx-functions themselves do not interface directly to the databases, but interface to the modules that are used to support these databases.

Замечание: This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 5.1.0.

Требования

To be able to use a database with the dbx-module, the module must be either linked or loaded into PHP, and the database module must be supported by the dbx-module. Currently, the following databases are supported, but others will follow:

  • FrontBase (available from PHP 4.1.0).

  • Microsoft SQL Server

  • MySQL

  • ODBC

  • PostgreSQL

  • Sybase-CT (available from PHP 4.2.0).

  • Oracle (oci8) (available from PHP 4.3.0).

  • SQLite (PHP 5).

Documentation for adding additional database support to dbx can be found at http://www.guidance.nl/php/dbx/doc/.

Установка

In order to have these functions available, you must compile PHP with dbx support by using the --enable-dbx option and all options for the databases that will be used, e.g. for MySQL you must also specify --with-mysql=[DIR]. To get other supported databases to work with the dbx-module refer to their specific documentation.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. DBX Configuration Options

Name | Default | Changeable | Changelog
dbx.colnames_case | "unchanged" | PHP_INI_SYSTEM | Available since PHP 4.3.0.
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

dbx.colnames_case string

Columns names can be returned "unchanged" or converted to "uppercase" or "lowercase". This directive can be overridden with a flag to dbx_query().

Типы ресурсов

There are two resource types used in the dbx module. The first one is the link-object for a database connection, the second a result-object which holds the result of a query.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

DBX_MYSQL (integer)

DBX_ODBC (integer)

DBX_PGSQL (integer)

DBX_MSSQL (integer)

DBX_FBSQL (integer)

DBX_OCI8 (integer) (available from PHP 4.3.0)

DBX_SYBASECT (integer)

DBX_SQLITE (integer) (PHP 5)

DBX_PERSISTENT (integer)

DBX_RESULT_INFO (integer)

DBX_RESULT_INDEX (integer)

DBX_RESULT_ASSOC (integer)

DBX_RESULT_UNBUFFERED (integer) (PHP 5)

DBX_COLNAMES_UNCHANGED (integer) (available from PHP 4.3.0)

DBX_COLNAMES_UPPERCASE (integer) (available from PHP 4.3.0)

DBX_COLNAMES_LOWERCASE (integer) (available from PHP 4.3.0)

DBX_CMP_NATIVE (integer)

DBX_CMP_TEXT (integer)

DBX_CMP_NUMBER (integer)

DBX_CMP_ASC (integer)

DBX_CMP_DESC (integer)

Содержание
dbx_close -- Close an open connection/database
dbx_compare -- Compare two rows for sorting purposes
dbx_connect -- Open a connection/database
dbx_error -- Report the error message of the latest function call in the module (not just in the connection)
dbx_escape_string -- Escape a string so it can safely be used in an sql-statement
dbx_fetch_row -- Fetches rows from a query-result that had the DBX_RESULT_UNBUFFERED flag set
dbx_query -- Send a query and fetch all results (if any)
dbx_sort -- Sort a result from a dbx_query by a custom sort function

Пред. | Начало | След.
dbmreplace | Уровень выше | dbx_close


dbx_close

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

dbx_close -- Close an open connection/database

Description

bool dbx_close ( object link_identifier )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. dbx_close() example

<?php
$link = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die("Could not connect");

echo "Connected successfully";
dbx_close($link);
?>

Замечание: Always refer to the module-specific documentation as well.

See also dbx_connect().

Пред. | Начало | След.
dbx Functions | Уровень выше | dbx_compare


dbx_compare

(PHP 4 >= 4.1.0, PHP 5 <= 5.0.4)

dbx_compare -- Compare two rows for sorting purposes

Description

int dbx_compare ( array row_a, array row_b, string column_key [, int flags] )

dbx_compare() returns 0 if the row_a[$column_key] is equal to row_b[$column_key], and 1 or -1 if the former is greater or is smaller than the latter one, respectively, or vice versa if the flag is set to DBX_CMP_DESC. dbx_compare() is a helper function for dbx_sort() to ease the make and use of the custom sorting function.

The flags can be set to specify comparison direction:

  • DBX_CMP_ASC - ascending order

  • DBX_CMP_DESC - descending order

and the preferred comparison type:

  • DBX_CMP_NATIVE - no type conversion

  • DBX_CMP_TEXT - compare items as strings

  • DBX_CMP_NUMBER - compare items numerically

One of the direction and one of the type constant can be combined with bitwise OR operator (|). The default value for the flags parameter is DBX_CMP_ASC | DBX_CMP_NATIVE.

Пример 1. dbx_compare() example

<?php
function user_re_order($a, $b)
{
    $rv = dbx_compare($a, $b, "parentid", DBX_CMP_DESC);
    if (!$rv) {
        $rv = dbx_compare($a, $b, "id", DBX_CMP_NUMBER);
    }
    return $rv;
}

$link   = dbx_connect(DBX_ODBC, "", "db", "username", "password")
    or die("Could not connect");

$result = dbx_query($link, "SELECT id, parentid, description FROM table ORDER BY id");
    // data in $result is now ordered by id

dbx_sort($result, "user_re_order");
    // date in $result is now ordered by parentid (descending), then by id

dbx_close($link);
?>

See also dbx_sort().

Пред. | Начало | След.
dbx_close | Уровень выше | dbx_connect


dbx_connect

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

dbx_connect -- Open a connection/database

Description

object dbx_connect ( mixed module, string host, string database, string username, string password [, int persistent] )

dbx_connect() returns an object on success, FALSE on error. If a connection has been made but the database could not be selected, the connection is closed and FALSE is returned. The persistent parameter can be set to DBX_PERSISTENT, if so, a persistent connection will be created.

The module parameter can be either a string or a constant, though the latter form is preferred. The possible values are given below, but keep in mind that they only work if the module is actually loaded.

  • DBX_MYSQL or "mysql"

  • DBX_ODBC or "odbc"

  • DBX_PGSQL or "pgsql"

  • DBX_MSSQL or "mssql"

  • DBX_FBSQL or "fbsql" (available from PHP 4.1.0)

  • DBX_SYBASECT or "sybase_ct" (available from PHP 4.2.0)

  • DBX_OCI8 or "oci8" (available from PHP 4.3.0)

  • DBX_SQLITE or "sqlite" (PHP 5)

The host, database, username and password parameters are expected, but not always used depending on the connect functions for the abstracted module.

The returned object has three properties:

database

It is the name of the currently selected database.

handle

It is a valid handle for the connected database, and as such it can be used in module-specific functions (if required).

<?php
$link = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password");
mysql_close($link->handle); // dbx_close($link) would be better here
?>

module

It is used internally by dbx only, and is actually the module number mentioned above.

Пример 1. dbx_connect() example

<?php
$link = dbx_connect(DBX_ODBC, "", "db", "username", "password", DBX_PERSISTENT)
    or die("Could not connect");

echo "Connected successfully";
dbx_close($link);
?>

Замечание: Always refer to the module-specific documentation as well.

See also dbx_close().

Пред. | Начало | След.
dbx_compare | Уровень выше | dbx_error


dbx_error

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

dbx_error -- Report the error message of the latest function call in the module (not just in the connection)

Description

string dbx_error ( object link_identifier )

dbx_error() returns a string containing the error message from the last function call of the abstracted module (e.g. mysql module). If there are multiple connections in the same module, just the last error is given. If there are connections on different modules, the latest error is returned for the module specified by the link_identifier parameter.

Пример 1. dbx_error() example

<?php
$link   = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die("Could not connect");

$result = dbx_query($link, "select id from non_existing_table");
if ($result == 0) {
    echo dbx_error($link);
}
dbx_close($link);
?>

Замечание: Always refer to the module-specific documentation as well.

The error message for Microsoft SQL Server is actually the result of the mssql_get_last_message() function.

The error message for Oracle (oci8) is not implemented (yet).

Пред. | Начало | След.
dbx_connect | Уровень выше | dbx_escape_string


dbx_escape_string

(PHP 4 >= 4.3.0, PHP 5 <= 5.0.4)

dbx_escape_string -- Escape a string so it can safely be used in an sql-statement

Description

string dbx_escape_string ( object link_identifier, string text )

dbx_escape_string() returns the text, escaped where necessary (such as quotes, backslashes etc). It returns NULL on error.

Пример 1. dbx_escape_string() example

<?php
$link   = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die("Could not connect");

$text = dbx_escape_string($link, "It\'s quoted and backslashed (\\).");
$result = dbx_query($link, "insert into tbl (txt) values ('" . $text . "')");
if ($result == 0) {
    echo dbx_error($link);
}
dbx_close($link);
?>

See also dbx_query().

Пред. | Начало | След.
dbx_error | Уровень выше | dbx_fetch_row


dbx_fetch_row

(PHP 5 <= 5.0.4)

dbx_fetch_row -- Fetches rows from a query-result that had the DBX_RESULT_UNBUFFERED flag set

Description

mixed dbx_fetch_row ( object result_identifier )

dbx_fetch_row() returns a row on success, and 0 on failure (e.g. when no more rows are available). When the DBX_RESULT_UNBUFFERED is not set in the query, dbx_fetch_row() will fail as all rows have already been fetched into the results data property.

As a side effect, the rows property of the query-result object is incremented for each successful call to dbx_fetch_row().

Пример 1. How to handle the returned value

<?php
$result = dbx_query($link, 'SELECT id, parentid, description FROM table', DBX_RESULT_UNBUFFERED);

echo "<table>\n";
while ($row = dbx_fetch_row($result)) {
    echo "<tr>\n";
    foreach ($row as $field) {
        echo "<td>$field</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";
?>

The result_identifier parameter is the result object returned by a call to dbx_query().

The returned object contains the same information as any row would have in the dbx_query result data property, including columns accessible by index or fieldname when the flags for dbx_guery were set that way.

See also dbx_query().

Пред. | Начало | След.
dbx_escape_string | Уровень выше | dbx_query


dbx_query

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

dbx_query -- Send a query and fetch all results (if any)

Description

mixed dbx_query ( object link_identifier, string sql_statement [, int flags] )

dbx_query() returns an object or 1 on success, and 0 on failure. The result object is returned only if the query given in sql_statement produces a result set (i.e. a SELECT query, even if the result set is empty).

Пример 1. How to handle the returned value

<?php
$link   = dbx_connect(DBX_ODBC, "", "db", "username", "password")
    or die("Could not connect");

$result = dbx_query($link, 'SELECT id, parentid, description FROM table');

if (is_object($result) ) {
    // ... do some stuff here, see detailed examples below ...
    // first, print out field names and types
    // then, draw a table filled with the returned field values
} else {
    exit("Query failed");
}

dbx_close($link);
?>

The flags parameter is used to control the amount of information that is returned. It may be any combination of the following constants with the bitwise OR operator (|). The DBX_COLNAMES_* flags override the dbx.colnames_case setting from php.ini.

DBX_RESULT_INDEX

It is always set, that is, the returned object has a data property which is a 2 dimensional array indexed numerically. For example, in the expression data[2][3] 2 stands for the row (or record) number and 3 stands for the column (or field) number. The first row and column are indexed at 0.

If DBX_RESULT_ASSOC is also specified, the returning object contains the information related to DBX_RESULT_INFO too, even if it was not specified.

DBX_RESULT_INFO

It provides info about columns, such as field names and field types.

DBX_RESULT_ASSOC

It effects that the field values can be accessed with the respective column names used as keys to the returned object's data property.

Associated results are actually references to the numerically indexed data, so modifying data[0][0] causes that data[0]['field_name_for_first_column'] is modified as well.

DBX_RESULT_UNBUFFERED (PHP 5)

This flag will not create the data property, and the rows property will initially be 0. Use this flag for large datasets, and use dbx_fetch_row() to retrieve the results row by row.

The dbx_fetch_row() function will return rows that are conformant to the flags set with this query. Incidentally, it will also update the rows each time it is called.

DBX_COLNAMES_UNCHANGED (available from PHP 4.3.0)

The case of the returned column names will not be changed.

DBX_COLNAMES_UPPERCASE (available from PHP 4.3.0)

The case of the returned column names will be changed to uppercase.

DBX_COLNAMES_LOWERCASE (available from PHP 4.3.0)

The case of the returned column names will be changed to lowercase.

Note that DBX_RESULT_INDEX is always used, regardless of the actual value of flags parameter. This means that only the following combinations are effective:

  • DBX_RESULT_INDEX

  • DBX_RESULT_INDEX | DBX_RESULT_INFO

  • DBX_RESULT_INDEX | DBX_RESULT_INFO | DBX_RESULT_ASSOC - this is the default, if flags is not specified.

The returned object has four or five properties depending on flags:

handle

It is a valid handle for the connected database, and as such it can be used in module specific functions (if required).

<?php
$result = dbx_query($link, "SELECT id FROM table");
mysql_field_len($result->handle, 0);
?>

cols and rows

These contain the number of columns (or fields) and rows (or records) respectively.

<?php
$result = dbx_query($link, 'SELECT id FROM table');
echo $result->rows; // number of records
echo $result->cols; // number of fields
?>

info (optional)

It is returned only if either DBX_RESULT_INFO or DBX_RESULT_ASSOC is specified in the flags parameter. It is a 2 dimensional array, that has two named rows (name and type) to retrieve column information.

Пример 2. lists each field's name and type

<?php
$result = dbx_query($link, 'SELECT id FROM table',
                     DBX_RESULT_INDEX | DBX_RESULT_INFO);

for ($i = 0; $i < $result->cols; $i++ ) {
    echo $result->info['name'][$i] . "\n";
    echo $result->info['type'][$i] . "\n";
}
?>
data

This property contains the actual resulting data, possibly associated with column names as well depending on flags. If DBX_RESULT_ASSOC is set, it is possible to use $result->data[2]["field_name"].

Пример 3. outputs the content of data property into HTML table

<?php
$result = dbx_query($link, 'SELECT id, parentid, description FROM table');

echo "<table>\n";
foreach ($result->data as $row) {
    echo "<tr>\n";
    foreach ($row as $field) {
        echo "<td>$field</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";
?>

Пример 4. How to handle UNBUFFERED queries

<?php

$result = dbx_query ($link, 'SELECT id, parentid, description FROM table', DBX_RESULT_UNBUFFERED);

echo "<table>\n";
while ($row = dbx_fetch_row($result)) {
    echo "<tr>\n";
    foreach ($row as $field) {
        echo "<td>$field</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Замечание: Always refer to the module-specific documentation as well.

Column names for queries on an Oracle database are returned in lowercase.

See also dbx_escape_string(),
dbx_fetch_row() and
dbx_connect().

Пред. | Начало | След.
dbx_fetch_row | Уровень выше | dbx_sort


dbx_sort

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

dbx_sort -- Sort a result from a dbx_query by a custom sort function

Description

bool dbx_sort ( object result, string user_compare_function )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: It is always better to use ORDER BY SQL clause instead of dbx_sort(), if possible.

Пример 1. dbx_sort() example

<?php
function user_re_order($a, $b)
{
    $rv = dbx_compare($a, $b, "parentid", DBX_CMP_DESC);
    if (!$rv) {
        $rv = dbx_compare($a, $b, "id", DBX_CMP_NUMBER);
    }
    return $rv;
}

$link   = dbx_connect(DBX_ODBC, "", "db", "username", "password")
    or die("Could not connect");

$result = dbx_query($link, "SELECT id, parentid, description FROM tbl ORDER BY id");
    // data in $result is now ordered by id

dbx_sort($result, "user_re_order");
    // data in $result is now ordered by parentid (descending), then by id

dbx_close($link);
?>

See also dbx_compare().

Пред. | Начало | След.
dbx_query | Уровень выше | Direct IO Functions


Direct IO Functions

Руководство по PHP
Пред. След.

XXVIII. Direct IO Functions

Введение

PHP supports the direct io functions as described in the Posix Standard (Section 6) for performing I/O functions at a lower level than the C-Language stream I/O functions (fopen(), fread(),..). The use of the DIO functions should be considered only when direct control of a device is needed. In all other cases, the standard filesystem functions are more than adequate.

Замечание: This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 5.1.0.

This extension is only available on Windows Platforms as of PHP 5.0.0

Требования

Эти функции всегда доступны.

Установка

To get these functions to work, you have to configure PHP with --enable-dio.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

c (integer)

F_DUPFD (integer)

F_GETFD (integer)

F_GETFL (integer)

F_GETLK (integer)

F_GETOWN (integer)

F_RDLCK (integer)

F_SETFL (integer)

F_SETLK (integer)

F_SETLKW (integer)

F_SETOWN (integer)

F_UNLCK (integer)

F_WRLCK (integer)

O_APPEND (integer)

O_ASYNC (integer)

O_CREAT (integer)

O_EXCL (integer)

O_NDELAY (integer)

O_NOCTTY (integer)

O_NONBLOCK (integer)

O_RDONLY (integer)

O_RDWR (integer)

O_SYNC (integer)

O_TRUNC (integer)

O_WRONLY (integer)

S_IRGRP (integer)

S_IROTH (integer)

S_IRUSR (integer)

S_IRWXG (integer)

S_IRWXO (integer)

S_IRWXU (integer)

S_IWGRP (integer)

S_IWOTH (integer)

S_IWUSR (integer)

S_IXGRP (integer)

S_IXOTH (integer)

S_IXUSR (integer)

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

One resource type is defined by this extension: a file descriptor returned by dio_open().

Содержание
dio_close -- Closes the file descriptor given by fd
dio_fcntl -- Performs a c library fcntl on fd
dio_open -- Opens a new filename with specified permissions of flags and creation permissions of mode
dio_read -- Reads bytes from a file descriptor
dio_seek -- Seeks to pos on fd from whence
dio_stat -- Gets stat information about the file descriptor fd
dio_tcsetattr -- Sets terminal attributes and baud rate for a serial port
dio_truncate -- Truncates file descriptor fd to offset bytes
dio_write -- Writes data to fd with optional truncation at length

Пред. | Начало | След.
dbx_sort | Уровень выше | dio_close


dio_close

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.4)

dio_close -- Closes the file descriptor given by fd

Описание

void dio_close ( resource fd )

The function dio_close() closes the file descriptor fd.

Список параметров

fd

The file descriptor returned by dio_open().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример 1. Closing an open file descriptor

<?php
$fd = dio_open('/dev/ttyS0', O_RDWR);

dio_close($fd);
?>

Смотрите также

dio_open()

Пред. | Начало | След.
Direct IO Functions | Уровень выше | dio_fcntl


dio_fcntl

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.4)

dio_fcntl -- Performs a c library fcntl on fd

Описание

mixed dio_fcntl ( resource fd, int cmd [, mixed args] )

The dio_fcntl() function performs the operation specified by cmd on the file descriptor fd. Some commands require additional arguments args to be supplied.

Замечание: Для Windows-платформ эта функция не реализована.

Список параметров

fd

The file descriptor returned by dio_open().

cmd

Can be one of the following operations:

  • F_SETLK - Lock is set or cleared. If the lock is held by someone else dio_fcntl() returns -1.

  • F_SETLKW - like F_SETLK, but in case the lock is held by someone else, dio_fcntl() waits until the lock is released.

  • F_GETLK - dio_fcntl() returns an associative array (as described above) if someone else prevents lock. If there is no obstruction key "type" will set to F_UNLCK.

  • F_DUPFD - finds the lowest numbered available file descriptor greater than or equal to args and returns them.

  • F_SETFL - Sets the file descriptors flags to the value specified by args, which can be O_APPEND, O_NONBLOCK or O_ASYNC. To use O_ASYNC you will need to use the PCNTL extension.

args

args is an associative array, when cmd is F_SETLK or F_SETLLW, with the following keys:

  • "start" - offset where lock begins

  • "length" - size of locked area. zero means to end of file

  • "wenth" - Where l_start is relative to: can be SEEK_SET, SEEK_END and SEEK_CUR

  • "type" - type of lock: can be F_RDLCK (read lock), F_WRLCK (write lock) or F_UNLCK (unlock)

Возвращаемые значения

Returns the result of the C call.

Примеры

Пример 1. Setting and clearing a lock

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR);

if (dio_fcntl($fd, F_SETLK, Array("type"=>F_WRLCK)) == -1) {
   // the file descriptor appears locked
   echo "The lock can not be cleared. It is held by someone else.";
} else {
   echo "Lock succesfully set/cleared";
}

dio_close($fd);
?>

Пред. | Начало | След.
dio_close | Уровень выше | dio_open


dio_open

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.4)

dio_open -- Opens a new filename with specified permissions of flags and creation permissions of mode

Описание

resource dio_open ( string filename, int flags [, int mode] )

dio_open() opens a file and returns a new file descriptor for it.

Список параметров

filename

The opened file.

flags

The flags parameter can also include any combination of the following flags:

  • O_CREAT - creates the file, if it doesn't already exist.

  • O_EXCL - if both, O_CREAT and O_EXCL are set, dio_open() fails, if the file already exists.

  • O_TRUNC - if the file exists, and its opened for write access, the file will be truncated to zero length.

  • O_APPEND - write operations write data at the end of the file.

  • O_NONBLOCK - sets non blocking mode.

mode

If flags is O_CREAT, mode will set the mode of the file (creation permissions).

  • O_RDONLY - opens the file for read access.

  • O_WRONLY - opens the file for write access.

  • O_RDWR - opens the file for both reading and writing.

Возвращаемые значения

A file descriptor or FALSE on error.

Примеры

Пример 1. Opening a file descriptor

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR | O_NOCTTY | O_NONBLOCK);

dio_close($fd);
?>

Смотрите также

dio_close()

Пред. | Начало | След.
dio_fcntl | Уровень выше | dio_read


dio_read

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.4)

dio_read -- Reads bytes from a file descriptor

Описание

string dio_read ( resource fd [, int len] )

The function dio_read() reads and returns len bytes from file with descriptor fd.

Список параметров

fd

The file descriptor returned by dio_open().

len

The number of bytes to read. If not specified, dio_read() reads 1K sized block.

Возвращаемые значения

The bytes read from fd.

Смотрите также

dio_write()

Пред. | Начало | След.
dio_open | Уровень выше | dio_seek


dio_seek

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.4)

dio_seek -- Seeks to pos on fd from whence

Описание

int dio_seek ( resource fd, int pos [, int whence] )

The function dio_seek() is used to change the file position of the given file descriptor.

Список параметров

fd

The file descriptor returned by dio_open().

pos

The new position.

whence

Specifies how the position pos should be interpreted:

  • SEEK_SET (default) - specifies that pos is specified from the beginning of the file.

  • SEEK_CUR - Specifies that pos is a count of characters from the current file position. This count may be positive or negative.

  • SEEK_END - Specifies that pos is a count of characters from the end of the file. A negative count specifies a position within the current extent of the file; a positive count specifies a position past the current end. If you set the position past the current end, and actually write data, you will extend the file with zeros up to that position.

Возвращаемые значения

Примеры

Пример 1. Positioning in a file

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR);

dio_seek($fd, 10, SEEK_SET);
// position is now at 10 characters from the start of the file

dio_seek($fd, -2, SEEK_CUR);
// position is now at 8 characters from the start of the file

dio_seek($fd, -5, SEEK_END);
// position is now at 5 characters from the end of the file

dio_seek($fd, 10, SEEK_END);
// position is now at 10 characters past the end of the file.
// The 10 characters between the end of the file and the current
// position are filled with zeros.

dio_close($fd);
?>

Пред. | Начало | След.
dio_read | Уровень выше | dio_stat


dio_stat

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.4)

dio_stat -- Gets stat information about the file descriptor fd

Описание

array dio_stat ( resource fd )

dio_stat() returns information about the given file descriptor.

Список параметров

fd

The file descriptor returned by dio_open().

Возвращаемые значения

Returns an associative array with the following keys:

  • "device" - device

  • "inode" - inode

  • "mode" - mode

  • "nlink" - number of hard links

  • "uid" - user id

  • "gid" - group id

  • "device_type" - device type (if inode device)

  • "size" - total size in bytes

  • "blocksize" - blocksize

  • "blocks" - number of blocks allocated

  • "atime" - time of last access

  • "mtime" - time of last modification

  • "ctime" - time of last change

On error dio_stat() returns NULL.

Пред. | Начало | След.
dio_seek | Уровень выше | dio_tcsetattr


dio_tcsetattr

(PHP 4 >= 4.3.0, PHP 5 <= 5.0.4)

dio_tcsetattr -- Sets terminal attributes and baud rate for a serial port

Описание

bool dio_tcsetattr ( resource fd, array options )

dio_tcsetattr() sets the terminal attributes and baud rate of the open fd.

Замечание: Для Windows-платформ эта функция не реализована.

Список параметров

fd

The file descriptor returned by dio_open().

options

The currently available options are:

  • 'baud' - baud rate of the port - can be 38400,19200,9600,4800,2400,1800, 1200,600,300,200,150,134,110,75 or 50, default value is 9600.

  • 'bits' - data bits - can be 8,7,6 or 5. Default value is 8.

  • 'stop' - stop bits - can be 1 or 2. Default value is 1.

  • 'parity' - can be 0,1 or 2. Default value is 0.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример 1. Setting the baud rate on a serial port

<?php

$fd = dio_open('/dev/ttyS0', O_RDWR | O_NOCTTY | O_NONBLOCK);

dio_fcntl($fd, F_SETFL, O_SYNC);

dio_tcsetattr($fd, array(
  'baud' => 9600,
  'bits' => 8,
  'stop'  => 1,
  'parity' => 0
));

while (1) {

  $data = dio_read($fd, 256);

  if ($data) {
      echo $data;
  }
}

?>

Пред. | Начало | След.
dio_stat | Уровень выше | dio_truncate


dio_truncate

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.4)

dio_truncate -- Truncates file descriptor fd to offset bytes

Описание

bool dio_truncate ( resource fd, int offset )

dio_truncate() truncates a file to at most offset bytes in size.

If the file previously was larger than this size, the extra data is lost. If the file previously was shorter, it is unspecified whether the file is left unchanged or is extended. In the latter case the extended part reads as zero bytes.

Замечание: Для Windows-платформ эта функция не реализована.

Список параметров

fd

The file descriptor returned by dio_open().

offset

The offset in bytes.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
dio_tcsetattr | Уровень выше | dio_write


dio_write

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.4)

dio_write -- Writes data to fd with optional truncation at length

Описание

int dio_write ( resource fd, string data [, int len] )

dio_write() writes up to len bytes from data to file fd.

Список параметров

fd

The file descriptor returned by dio_open().

data

The written data.

len

The length of data to write in bytes. If not specified, the function writes all the data to the specified file.

Возвращаемые значения

Returns the number of bytes written to fd.

Смотрите также

dio_read()

Пред. | Начало | След.
dio_truncate | Уровень выше | Функции для работы с каталогами


Функции для работы с каталогами

Руководство по PHP
Пред. След.

XXIX. Функции для работы с каталогами

Введение

Требования

Эти функции всегда доступны.

Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

DIRECTORY_SEPARATOR (строка)

PATH_SEPARATOR (строка)

Смотрите также

За описанием сопутствующих функций, таких, как dirname(), is_dir(), mkdir() и rmdir(), обратитесь к главе Файловая система.

Содержание
chdir -- Сменить каталог
chroot -- Сменить корневой каталог
dir -- Класс directory
closedir -- Освободить дескриптор каталога
getcwd -- Получить имя текущего рабочего каталога
opendir -- Открыть каталог
readdir -- Получить элемент каталога по его дескриптору
rewinddir -- Сбросить дескриптор каталога
scandir -- Получить список файлов и каталогов, расположенных по указанному пути

Пред. | Начало | След.
dio_write | Уровень выше | chdir


chdir

(PHP 3, PHP 4, PHP 5)

chdir -- Сменить каталог

Описание

bool chdir ( string directory )

Изменяет текущий каталог PHP на указанный в качестве параметра каталог. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки..

См.также описание функции getcwd().

Пред. | Начало | След.
Функции для работы с каталогами | Уровень выше | chroot


chroot

(PHP 4 >= 4.0.5, PHP 5)

chroot -- Сменить корневой каталог

Описание

bool chroot ( string directory )

Изменяет корневой каталог текущего процесса на переданный в качестве параметра каталог. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки..

Данная функция доступна только в том случае, если ее поддерживает ваша операционная система и вы используете методы вызова CLI, CGI или Embed SAPI.

Замечание: Для Windows-платформ эта функция не реализована.

Пред. | Начало | След.
chdir | Уровень выше | dir


dir

(PHP 3, PHP 4, PHP 5)

dir -- Класс directory

Описание

class dir {

dir ( string каталог )

string path

resource handle

string read ( void )

void rewind ( void )

void close ( void )

}

Псевдо-объектно-ориентированный механизм для чтения каталога, переданного в параметре каталог. С момента открытия каталога становятся доступными два свойства класса. Свойство "handle" может быть использовано с другими функциями для работы с каталогами, например, с функциями readdir(), rewinddir() и closedir(). Свойство "path" содержит путь к открытому каталогу. Доступны три метода: read, rewind and close.

Пожалуйста, обратите внимание на способ, которым осуществляется проверка значения, возвращаемого методами класса dir() в примере, приведенном ниже. В этом примере проводится проверка значения на идентичность (выражения идентичны, когда они равны и являются одного типа - за более подробной информацией обратитесь к главе Операторы сравнения) значению FALSE, поскольку в ином случае, любой элемент каталога, чье имя может быть выражено как FALSE, остановит цикл.

Пример 1. Пример использования класса dir()

<?php
$d = dir("/etc");
echo "Дескриптор: ".$d->handle."<br>\n";
echo "Путь: ".$d->path."<br>\n";
while (false !== ($entry = $d->read())) {
    echo $entry."<br>\n";
}
$d->close();
?>

Замечание: Порядок, в котором метод "read" возвращает элементы каталога, зависит от операционной системы.

Замечание: Также, PHP автоматически определяет внутренний класс Directory, что означает, что вы не сможете определять собственные классы с таким же именем. За полным списком предопределенных классов обратитесь к главе Предопределенные классы.

Пред. | Начало | След.
chroot | Уровень выше | closedir


closedir

(PHP 3, PHP 4, PHP 5)

closedir -- Освободить дескриптор каталога

Описание

void closedir ( resource dir_handle )

Закрывает поток, связанный с каталогом и переданный в качестве параметра дескриптор_каталога. Перед использованием данной функции, поток должен быть открыт с помощью функции opendir().

Пред. | Начало | След.
dir | Уровень выше | getcwd


getcwd

(PHP 4, PHP 5)

getcwd -- Получить имя текущего рабочего каталога

Описание

string getcwd ( void )

Возвращает имя текущего рабочего каталога.

См.также описание функции chdir().

Пред. | Начало | След.
closedir | Уровень выше | opendir


opendir

(PHP 3, PHP 4, PHP 5)

opendir -- Открыть каталог

Описание

resource opendir ( string path )

Возвращает дескриптор каталога для последующего использования с функциями closedir(), readdir() и rewinddir().

Если путь не существует или каталог, расположенный по указанному пути, не может быть открыт вследствие правовых ограничений или ошибок файловой системы, функция opendir() возвращает значение FALSE и генерирует сообщение PHP об ошибке уровня E_WARNING. Вы можете запретить вывод сообщения об ошибке, предварив имя функции opendir() символом '@'.

Пример 1. Пример использования функции opendir()

<?php
$dir = "/tmp/";

// Открыть заведомо существующий каталог и начать считывать его содержимое
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            print "Файл: $file : тип: " . filetype($dir . $file) . "\n";
        }
        closedir($dh);
    }
}
?>

Начиная с версии PHP 4.3.0, параметр путь может также являться любым URL'ом, обращение к которому приводит к получению списка его файлов и каталогов. Однако, данный способ работает только при использовании url-упаковщика file://. В версии PHP 5.0.0 была добавлена поддержка url-упаковщика ftp://.

См.также описания функций is_dir(), readdir() и класса Dir

Пред. | Начало | След.
getcwd | Уровень выше | readdir


readdir

(PHP 3, PHP 4, PHP 5)

readdir -- Получить элемент каталога по его дескриптору

Описание

string readdir ( resource dir_handle )

Возвращает имя следующего по порядку элемента каталога. Имена элементов возвращаются в порядке, зависящем от файловой системы.

Обратите внимание на способ проверки значения, возвращаемого функцией readdir() в приведенном ниже примере. В этом примере осуществляется проверка значения на идентичность (выражения идентичны, когда они равны и являются значениями одного типа - за более подробной информацией обратитесь к главе Операторы сравнения) значению FALSE, поскольку в ином случае, любой элемент каталога, чье имя может быть выражено как FALSE, остановит цикл (например, элемент с именем "0").

Пример 1. Вывести список всех файлов в каталоге

<?php
// Обратите внимание, что оператор !== не существовал до версии 4.0.0-RC2

if ($handle = opendir('/path/to/files')) {
    echo "Дескриптор каталога: $handle\n";
    echo "Файлы:\n";

    /* Именно этот способ чтения элементов каталога является правильным. */
    while (false !== ($file = readdir($handle))) {
        echo "$file\n";
    }

    /* Этот способ НЕВЕРЕН. */
    while ($file = readdir($handle)) {
        echo "$file\n";
    }

    closedir($handle);
}
?>

Обратите внимание, что функция readdir() также возвращает элементы с именами . и ... Если вы не хотите получать эти значения, просто отбрасывайте их:

Пример 2. Получить список файлов в текущем каталоге и отбросить элементы с именами . и ..

<?php
if ($handle = opendir('.')) {
    while (false !== ($file = readdir($handle))) {
        if ($file != "." && $file != "..") {
            echo "$file\n";
        }
    }
    closedir($handle);
}
?>

См.также описания функций is_dir() и glob().

Пред. | Начало | След.
opendir | Уровень выше | rewinddir


rewinddir

(PHP 3, PHP 4, PHP 5)

rewinddir -- Сбросить дескриптор каталога

Описание

void rewinddir ( resource dir_handle )

Сбрасывает поток каталога, переданный в параметре дескриптор_каталога таким образом, чтобы тот указывал на начало каталога.

Пред. | Начало | След.
readdir | Уровень выше | scandir


scandir

(PHP 5)

scandir -- Получить список файлов и каталогов, расположенных по указанному пути

Описание

array scandir ( string directory [, integer sorting_order] )

Возвращает array, содержащий имена файлов и каталогов, расположенных по пути, переданном в параметре directory. Если directory не является таковым, функция возвращает логическое значение FALSE и генерирует сообщение об ошибке уровня E_WARNING.

По умолчанию, сортировка производится в алфавитном порядке по возрастанию. Если указан необязательный параметр sorting_order (равен 1), сортировка производится в алфавитном порядке по убыванию.

Пример 1. Простой пример использования функции scandir()

<?php
$dir    = '/tmp';
$files1 = scandir($dir);
$files2 = scandir($dir, 1);

print_r($files1);
print_r($files2);

/* Результатом будет нечто вроде:
Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)
*/
?>

Пример 2. Альтернативный вариант функции scandir() для PHP 4

<?php
$dir = "/tmp";
$dh  = opendir($dir);
while (false !== ($filename = readdir($dh))) {
    $files[] = $filename;
}

sort($files);

print_r($files);

rsort($files);

print_r($files);

/* Результат будет примерно таким:
Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)
*/
?>

См.также описания функций opendir(),
readdir(),
glob(),
is_dir() и
sort().

Пред. | Начало | След.
rewinddir | Уровень выше | DOM Functions


DOM Functions

Руководство по PHP
Пред. След.

XXX. DOM Functions

Введение

The DOM extension is the replacement for the DOM XML extension from PHP 4. The extension still contains many old functions, but they should no longer be used. In particular, functions that are not object-oriented should be avoided.

The extension allows you to operate on an XML document with the DOM API.

Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Предопределенные классы

The API of the module follows the DOM Level 2 standard as closely as possible. Consequently, the API is fully object-oriented. It is a good idea to have the DOM standard available when using this module.

This module defines a number of classes, which are explained in the following tables. Classes with an equivalent in the DOM standard are named DOMxxx.

DOMAttr

Extends DOMNode. The DOMAttr interface represents an attribute in an DOMElement object.

Конструктор

  • DOMAttr->__construct() - construct a new DOMAttr object

Методы

  • DOMAttr->isId() - Checks if attribute is a defined ID

Свойства

Таблица 1.

Name | Type | Read-only | Description
name | string | yes | The name of the attribute
ownerElement | DOMElement | yes | The element which contains the attribute
schemaTypeInfo | bool | yes | Not implemented yet, always return NULL
specified | bool | yes | Not implemented yet, always return NULL
value | string | no | The value of the attribute

DOMCharacterData

Extends DOMNode.

Методы

  • DOMCharacterData->appendData() - Append a string to the end of the character data of the node

  • DOMCharacterData->deleteData() - Remove a range of characters from the node

  • DOMCharacterData->insertData() - Insert a string at the specified 16-bit unit offset

  • DOMCharacterData->replaceData() - Replace a substring within the DOMCharacterData node

  • DOMCharacterData->substringData() - Extracts a range of data from the node

Свойства

Таблица 2.

Name | Type | Read-only | Description
data | string | no | The contents of the node
length | int | yes | The length of the contents

DOMComment

Extends DOMCharacterData.

Конструктор

  • DOMComment->__construct() - construct a new DOMComment object

DOMDocument

Extends DOMNode.

Конструктор

  • DOMDocument->__construct() - construct a new DOMDocument object

Методы

  • DOMDocument->createAttribute() - Create new attribute

  • DOMDocument->createAttributeNS() - Create new attribute node with an associated namespace

  • DOMDocument->createCDATASection() - Create new cdata node

  • DOMDocument->createComment() - Create new comment node

  • DOMDocument->createDocumentFragment() - Create new document fragment

  • DOMDocument->createElement() - Create new element node

  • DOMDocument->createElementNS() - Create new element node with an associated namespace

  • DOMDocument->createEntityReference() - Create new entity reference node

  • DOMDocument->createProcessingInstruction() - Creates new PI node

  • DOMDocument->createTextNode() - Create new text node

  • DOMDocument->getElementById() - Searches for an element with a certain id

  • DOMDocument->getElementsByTagName() - Searches for all elements with given tag name

  • DOMDocument->getElementsByTagNameNS() - Searches for all elements with given tag name in specified namespace

  • DOMDocument->importNode() - Import node into current document

  • DOMDocument->load() - Load XML from a file

  • DOMDocument->loadHTML() - Load HTML from a string

  • DOMDocument->loadHTMLFile() - Load HTML from a file

  • DOMDocument->loadXML() - Load XML from a string

  • DOMDocument->normalize() - Normalizes document

  • DOMDocument->relaxNGValidate() - Performs relaxNG validation on the document

  • DOMDocument->relaxNGValidateSource() - Performs relaxNG validation on the document

  • DOMDocument->save() - Dumps the internal XML tree back into a file

  • DOMDocument->saveHTML() - Dumps the internal document into a string using HTML formatting

  • DOMDocument->saveHTMLFile() - Dumps the internal document back into a file using HTML formatting

  • DOMDocument->saveXML() - Dumps the internal XML tree back into a string

  • DOMDocument->schemaValidate() - Validates a document based on a schema

  • DOMDocument->schemaValidateSource() - Validates a document based on a schema

  • DOMDocument->validate() - Validates the document based on its DTD

  • DOMDocument->xinclude() - Substitutes XIncludes in a DOMDocument Object

Свойства

Таблица 3.

Name | Type | Read-only | Description
actualEncoding | string | yes |
config | DOMConfiguration | yes |
doctype | DOMDocumentType | yes | The Document Type Declaration associated with this document.
documentElement | DOMElement | yes | This is a convenience attribute that allows direct access to the child node that is the document element of the document.
documentURI | string | no | The location of the document or NULL if undefined.
encoding | string | no |
formatOutput | bool | no |
implementation | DOMImplementation | yes | The DOMImplementation object that handles this document.
preserveWhiteSpace | bool | no | Do not remove redundant white space. Default to TRUE.
recover | bool | no |
resolveExternals | bool | no | Set it to TRUE to load external entities from a doctype declaration. This is useful for including character entities in your XML document.
standalone | bool | no |
strictErrorChecking | bool | no | Throws DOMException on errors. Default to TRUE.
substituteEntities | bool | no |
validateOnParse | bool | no | Loads and validates against the DTD. Default to FALSE.
version | string | no |
xmlEncoding | string | yes | An attribute specifying, as part of the XML declaration, the encoding of this document. This is NULL when unspecified or when it is not known, such as when the Document was created in memory.
xmlStandalone | bool | no | An attribute specifying, as part of the XML declaration, whether this document is standalone. This is FALSE when unspecified.
xmlVersion | string | no | An attribute specifying, as part of the XML declaration, the version number of this document. If there is no declaration and if this document supports the "XML" feature, the value is "1.0".

DOMDocumentType

Extends DOMNode

Each DOMDocument has a doctype attribute whose value is either NULL or a DOMDocumentType object.

Свойства

Таблица 4.

Name | Type | Read-only | Description
publicId | string | yes | The public identifier of the external subset.
systemId | string | yes | The system identifier of the external subset. This may be an absolute URI or not.
name | string | yes | The name of DTD; i.e., the name immediately following the DOCTYPE keyword.
entities | DOMNamedNodeMap | yes | A DOMNamedNodeMap containing the general entities, both external and internal, declared in the DTD.
notations | DOMNamedNodeMap | yes | A DOMNamedNodeMap containing the notations declared in the DTD.
internalSubset | string | yes | The internal subset as a string, or null if there is none. This is does not contain the delimiting square brackets.

DOMElement

Extends DOMNode.

Конструктор

  • DOMElement->__construct() - construct a new DOMElement object

Методы

  • DOMElement->getAttribute() - Returns value of attribute

  • DOMElement->getAttributeNode() - Returns attribute node

  • DOMElement->getAttributeNodeNS() - Returns attribute node

  • DOMElement->getAttributeNS() - Returns value of attribute

  • DOMElement->getElementsByTagName() - Gets elements by tagname

  • DOMElement->getElementsByTagNameNS() - Get elements by namespaceURI and localName

  • DOMElement->hasAttribute() - Checks to see if attribute exists

  • DOMElement->hasAttributeNS() - Checks to see if attribute exists

  • DOMElement->removeAttribute() - Removes attribute

  • DOMElement->removeAttributeNode() - Removes attribute

  • DOMElement->removeAttributeNS() - Removes attribute

  • DOMElement->setAttribute() - Adds new attribute

  • DOMElement->setAttributeNode() - Adds new attribute node to element

  • DOMElement->setAttributeNodeNS() - Adds new attribute node to element

  • DOMElement->setAttributeNS() - Adds new attribute

Свойства

Таблица 5.

Name | Type | Read-only | Description
schemaTypeInfo | bool | yes | Not implemented yet, always return NULL
tagName | string | yes | The element name

DOMEntity

Extends DOMNode

This interface represents a known entity, either parsed or unparsed, in an XML document.

Свойства

Таблица 6.

Name | Type | Read-only | Description
publicId | string | yes | The public identifier associated with the entity if specified, and NULL otherwise.
systemId | string | yes | The system identifier associated with the entity if specified, and NULL otherwise. This may be an absolute URI or not.
notationName | string | yes | For unparsed entities, the name of the notation for the entity. For parsed entities, this is NULL.
actualEncoding | string | no | An attribute specifying the encoding used for this entity at the time of parsing, when it is an external parsed entity. This is NULL if it an entity from the internal subset or if it is not known.
encoding | string | yes | An attribute specifying, as part of the text declaration, the encoding of this entity, when it is an external parsed entity. This is NULL otherwise.
version | string | yes | An attribute specifying, as part of the text declaration, the version number of this entity, when it is an external parsed entity. This is NULL otherwise.

DOMEntityReference

Extends DOMNode.

Конструктор

  • DOMAttr->__construct() - construct a new DOMEntityReference object

DOMException

DOM operations raise exceptions under particular circumstances, i.e., when an operation is impossible to perform for logical reasons.

See also Гл. 20.

Свойства

Таблица 7.

Name | Type | Read-only | Description
code | int | yes | An integer indicating the type of error generated

DOMImplementation

The DOMImplementation interface provides a number of methods for performing operations that are independent of any particular instance of the document object model.

Конструктор

  • DOMImplementation->__construct() - construct a new DOMImplementation object

Методы

  • DOMImplementation->createDocument() - Creates a DOM Document object of the specified type with its document element

  • DOMImplementation->createDocumentType() - Creates an empty DOMDocumentType object

  • DOMImplementation->hasFeature() - Test if the DOM implementation implements a specific feature

DOMNode

Методы

  • DOMNode->appendChild() - Adds new child at the end of the children

  • DOMNode->cloneNode() - Clones a node

  • DOMNode->hasAttributes() - Checks if node has attributes

  • DOMNode->hasChildNodes() - Checks if node has children

  • DOMNode->insertBefore() - Adds a new child before a reference node

  • DOMNode->isSameNode() - Indicates if two nodes are the same node

  • DOMNode->isSupported() - Checks if feature is supported for specified version

  • DOMNode->lookupNamespaceURI() - Returns namespace URI of the node based on the prefix

  • DOMNode->lookupPrefix() - Returns name space prefix of the node based on namespaceURI

  • DOMNode->normalize() - Normalizes the node

  • DOMNode->removeChild() - Removes child from list of children

  • DOMNode->replaceChild() - Replaces a child

Свойства

Таблица 8.

Name | Type | Read-only | Description
nodeName | string | yes | Returns the more accurate name for the current node type
nodeValue | string | no | The value of this node, depending on its type.
nodeType | int | yes | Gets the type of the node. One of the predefined XML_xxx_NODE constants
parentNode | DOMNode | yes | The parent of this node.
childNodes | DOMNodeList | yes | A DOMNodeList that contains all children of this node. If there are no children, this is an empty DOMNodeList.
firstChild | DOMNode | yes | The first child of this node. If there is no such node, this returns NULL.
lastChild | DOMNode | yes | The last child of this node. If there is no such node, this returns NULL.
previousSibling | DOMNode | yes | The node immediately preceding this node. If there is no such node, this returns NULL.
nextSibling | DOMNode | yes | The node immediately following this node. If there is no such node, this returns NULL.
attributes | DOMNamedNodeMap | yes | A DOMNamedNodeMap containing the attributes of this node (if it is a DOMElement) or NULL otherwise.
ownerDocument | DOMDocument | yes | The DOMDocument object associated with this node.
namespaceURI | string | yes | The namespace URI of this node, or NULL if it is unspecified.
prefix | string | no | The namespace prefix of this node, or NULL if it is unspecified.
localName | string | yes | Returns the local part of the qualified name of this node.
baseURI | string | yes | The absolute base URI of this node or NULL if the implementation wasn't able to obtain an absolute URI.
textContent | string | no | This attribute returns the text content of this node and its descendants.

DOMNodeList

Методы

  • DOMNodelist->item() - Retrieves a node specified by index

Свойства

Таблица 9.

Name | Type | Read-only | Description
length | int | yes | The number of nodes in the list. The range of valid child node indices is 0 to length - 1 inclusive.

DOMNotation

Extends DOMNode

Свойства

Таблица 10.

Name | Type | Read-only | Description
publicId | string | yes |
systemId | string | yes |

DOMProcessingInstruction

Extends DOMNode.

Конструктор

  • DOMProcessingInstruction->__construct() - construct a new DOMProcessingInstruction object

Свойства

Таблица 11.

Name | Type | Read-only | Description
target | string | yes |
data | string | no |

DOMText

Extends DOMCharacterData.

Конструктор

  • DOMText->__construct() - construct a new DOMText object

Методы

  • DOMText->isWhitespaceInElementContent() - Indicates whether this text node contains whitespace

  • DOMText->splitText() - Breaks the node into two nodes at the specified offset

Свойства

Таблица 12.

Name | Type | Read-only | Description
wholeText | string | yes |

DOMXPath

Конструктор

  • DOMXPath->__construct() - construct a new DOMXPath object

Методы

  • DOMXPath->registerNamespace() - Registers the namespace with the DOMXpath object

  • DOMXPath->evaluate() - Evaluates the given XPath expression and returns a typed result if possible

  • DOMXPath->query() - Evaluates the given XPath expression

Свойства

Таблица 13.

Name | Type | Read-only | Description
document | DOMDocument |  |

Примеры

Many examples in this reference require an XML file. We will use book.xml that contains the following:

Пример 1. chapter.xml

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
 "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
]>
<book id="listing">
 <title>My lists</title>
 <chapter id="books">
  <title>My books</title>
  <para>
   <informaltable>
    <tgroup cols="4">
     <thead>
      <row>
       <entry>Title</entry>
       <entry>Author</entry>
       <entry>Language</entry>
       <entry>ISBN</entry>
      </row>
     </thead>
     <tbody>
      <row>
       <entry>The Grapes of Wrath</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>0140186409</entry>
      </row>
      <row>
       <entry>The Pearl</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>014017737X</entry>
      </row>
      <row>
       <entry>Samarcande</entry>
       <entry>Amine Maalouf</entry>
       <entry>fr</entry>
       <entry>2253051209</entry>
      </row>
      <!-- TODO: I have a lot of remaining books to add.. -->
     </tbody>
    </tgroup>
   </informaltable>
  </para>
 </chapter>
</book>

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

Таблица 14. XML constants

Constant | Value | Description
XML_ELEMENT_NODE (integer) | 1 | Node is a DOMElement
XML_ATTRIBUTE_NODE (integer) | 2 | Node is a DOMAttr
XML_TEXT_NODE (integer) | 3 | Node is a DOMText
XML_CDATA_SECTION_NODE (integer) | 4 | Node is a DOMCharacterData
XML_ENTITY_REF_NODE (integer) | 5 | Node is a DOMEntityReference
XML_ENTITY_NODE (integer) | 6 | Node is a DOMEntity
XML_PI_NODE (integer) | 7 | Node is a DOMProcessingInstruction
XML_COMMENT_NODE (integer) | 8 | Node is a DOMComment
XML_DOCUMENT_NODE (integer) | 9 | Node is a DOMDocument
XML_DOCUMENT_TYPE_NODE (integer) | 10 | Node is a DOMDocumentType
XML_DOCUMENT_FRAG_NODE (integer) | 11 | Node is a DOMDocumentFragment
XML_NOTATION_NODE (integer) | 12 | Node is a DOMNotation
XML_HTML_DOCUMENT_NODE (integer) | 13 |
XML_DTD_NODE (integer) | 14 |
XML_ELEMENT_DECL_NODE (integer) | 15 |
XML_ATTRIBUTE_DECL_NODE (integer) | 16 |
XML_ENTITY_DECL_NODE (integer) | 17 |
XML_NAMESPACE_DECL_NODE (integer) | 18 |
XML_ATTRIBUTE_CDATA (integer) | 1 |
XML_ATTRIBUTE_ID (integer) | 2 |
XML_ATTRIBUTE_IDREF (integer) | 3 |
XML_ATTRIBUTE_IDREFS (integer) | 4 |
XML_ATTRIBUTE_ENTITY (integer) | 5 |
XML_ATTRIBUTE_NMTOKEN (integer) | 7 |
XML_ATTRIBUTE_NMTOKENS (integer) | 8 |
XML_ATTRIBUTE_ENUMERATION (integer) | 9 |
XML_ATTRIBUTE_NOTATION (integer) | 10 |

Таблица 15. DOMException constants

Constant | Value | Description
DOM_INDEX_SIZE_ERR (integer) | 1 | If index or size is negative, or greater than the allowed value.
DOMSTRING_SIZE_ERR (integer) | 2 | If the specified range of text does not fit into a DOMString.
DOM_HIERARCHY_REQUEST_ERR (integer) | 3 | If any node is inserted somewhere it doesn't belong
DOM_WRONG_DOCUMENT_ERR (integer) | 4 | If a node is used in a different document than the one that created it.
DOM_INVALID_CHARACTER_ERR (integer) | 5 | If an invalid or illegal character is specified, such as in a name.
DOM_NO_DATA_ALLOWED_ERR (integer) | 6 | If data is specified for a node which does not support data.
DOM_NO_MODIFICATION_ALLOWED_ERR (integer) | 7 | If an attempt is made to modify an object where modifications are not allowed.
DOM_NOT_FOUND_ERR (integer) | 8 | If an attempt is made to reference a node in a context where it does not exist.
DOM_NOT_SUPPORTED_ERR (integer) | 9 | If the implementation does not support the requested type of object or operation.
DOM_INUSE_ATTRIBUTE_ERR (integer) | 10 | If an attempt is made to add an attribute that is already in use elsewhere.
DOM_INVALID_STATE_ERR (integer) | 11 | If an attempt is made to use an object that is not, or is no longer, usable.
DOM_SYNTAX_ERR (integer) | 12 | If an invalid or illegal string is specified.
DOM_INVALID_MODIFICATION_ERR (integer) | 13 | If an attempt is made to modify the type of the underlying object.
DOM_NAMESPACE_ERR (integer) | 14 | If an attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
DOM_INVALID_ACCESS_ERR (integer) | 15 | If a parameter or an operation is not supported by the underlying object.
DOM_VALIDATION_ERR (integer) | 16 | If a call to a method such as insertBefore or removeChild would make the Node invalid with respect to "partial validity", this exception would be raised and the operation would not be done.
Содержание
DOMAttr->__construct() -- Creates a new DOMAttr object
DOMAttr->isId() -- Checks if attribute is a defined ID
DOMCharacterData->appendData() -- Append the string to the end of the character data of the node
DOMCharacterData->deleteData() -- Remove a range of characters from the node
DOMCharacterData->insertData() -- Insert a string at the specified 16-bit unit offset
DOMCharacterData->replaceData() -- Replace a substring within the DOMCharacterData node
DOMCharacterData->substringData() -- Extracts a range of data from the node
DOMComment->__construct() -- Creates a new DOMComment object
DOMDocument->__construct() -- Creates a new DOMDocument object
DOMDocument->createAttribute() -- Create new attribute
DOMDocument->createAttributeNS() -- Create new attribute node with an associated namespace
DOMDocument->createCDATASection() -- Create new cdata node
DOMDocument->createComment() -- Create new comment node
DOMDocument->createDocumentFragment() -- Create new document fragment
DOMDocument->createElement() -- Create new element node
DOMDocument->createElementNS() -- Create new element node with an associated namespace
DOMDocument->createEntityReference() -- Create new entity reference node
DOMDocument->createProcessingInstruction() -- Creates new PI node
DOMDocument->createTextNode() -- Create new text node
DOMDocument->getElementById() -- Searches for an element with a certain id
DOMDocument->getElementsByTagName() -- Searches for all elements with given tag name
DOMDocument->getElementsByTagNameNS() -- Searches for all elements with given tag name in specified namespace
DOMDocument->importNode() -- Import node into current document
DOMDocument->load() -- Load XML from a file
DOMDocument->loadHTML() -- Load HTML from a string
DOMDocument->loadHTMLFile() -- Load HTML from a file
DOMDocument->loadXML() -- Load XML from a string
DOMDocument->normalize() -- Normalizes the document
DOMDocument->relaxNGValidate() -- Performs relaxNG validation on the document
DOMDocument->relaxNGValidateSource() -- Performs relaxNG validation on the document
DOMDocument->save() -- Dumps the internal XML tree back into a file
DOMDocument->saveHTML() -- Dumps the internal document into a string using HTML formatting
DOMDocument->saveHTMLFile() -- Dumps the internal document into a file using HTML formatting
DOMDocument->saveXML() -- Dumps the internal XML tree back into a string
DOMDocument->schemaValidate() -- Validates a document based on a schema
DOMDocument->schemaValidateSource() -- Validates a document based on a schema
DOMDocument->validate() -- Validates the document based on its DTD
DOMDocument->xinclude() -- Substitutes XIncludes in a DOMDocument Object
DOMElement->__construct() -- Creates a new DOMElement object
DOMElement->getAttribute() -- Returns value of attribute
DOMElement->getAttributeNode() -- Returns attribute node
DOMElement->getAttributeNodeNS() -- Returns attribute node
DOMElement->getAttributeNS() -- Returns value of attribute
DOMElement->getElementsByTagName() -- Gets elements by tagname
DOMElement->getElementsByTagNameNS() -- Get elements by namespaceURI and localName
DOMElement->hasAttribute() -- Checks to see if attribute exists
DOMElement->hasAttributeNS() -- Checks to see if attribute exists
DOMElement->removeAttribute() -- Removes attribute
DOMElement->removeAttributeNode() -- Removes attribute
DOMElement->removeAttributeNS() -- Removes attribute
DOMElement->setAttribute() -- Adds new attribute
DOMElement->setAttributeNode() -- Adds new attribute node to element
DOMElement->setAttributeNodeNS() -- Adds new attribute node to element
DOMElement->setAttributeNS() -- Adds new attribute
DOMAttr->__construct() -- Creates a new DOMEntityReference object
DOMImplementation->__construct() -- Creates a new DOMImplementation object
DOMImplementation->createDocument() -- Creates a DOMDocument object of the specified type with its document element
DOMImplementation->createDocumentType() -- Creates an empty DOMDocumentType object
DOMImplementation->hasFeature() -- Test if the DOM implementation implements a specific feature
DOMNamedNodeMap->getNamedItem() -- Retrieves a node specified by name
DOMNamedNodeMap->getNamedItemNS() -- Retrieves a node specified by local name and namespace URI
DOMNamedNodeMap->item() -- Retrieves a node specified by index
DOMNode->appendChild() -- Adds new child at the end of the children
DOMNode->cloneNode() -- Clones a node
DOMNode->hasAttributes() -- Checks if node has attributes
DOMNode->hasChildNodes() -- Checks if node has children
DOMNode->insertBefore() -- Adds a new child before a reference node
DOMNode->isSameNode() -- Indicates if two nodes are the same node
DOMNode->isSupported() -- Checks if feature is supported for specified version
DOMNode->lookupNamespaceURI() -- Gets the namespace URI of the node based on the prefix
DOMNode->lookupPrefix() -- Gets the namespace prefix of the node based on the namespace URI
DOMNode->normalize() -- Normalizes the node
DOMNode->removeChild() -- Removes child from list of children
DOMNode->replaceChild() -- Replaces a child
DOMNodelist->item() -- Retrieves a node specified by index
DOMProcessingInstruction->__construct() -- Creates a new DOMProcessingInstruction object
DOMText->__construct() -- Creates a new DOMText object
DOMText->isWhitespaceInElementContent() -- Indicates whether this text node contains whitespace
DOMText->splitText() -- Breaks this node into two nodes at the specified offset
DOMXPath->__construct() -- Creates a new DOMXPath object
DOMXPath->evaluate() -- Evaluates the given XPath expression and returns a typed result if possible.
DOMXPath->query() -- Evaluates the given XPath expression
DOMXPath->registerNamespace() -- Registers the namespace with the DOMXPath object
dom_import_simplexml -- Gets a DOMElement object from a SimpleXMLElement object

Пред. | Начало | След.
scandir | Уровень выше | DOMAttr->__construct()


DOMAttr->__construct()

(no version information, might be only in CVS)

DOMAttr->__construct() -- Creates a new DOMAttr object

Описание

class DOMAttr {

__construct ( string name [, string value] )

}

Creates a new DOMAttr object. This object is read only. It may be appended to a document, but additional nodes may not be appended to this node until the node is associated with a document. To create a writeable node, use DOMDocument->createAttribute().

Список параметров

name

The tag name of the attribute.

value

The value of the attribute.

Примеры

Пример 1. Creating a new DOMAttr

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$attr = $element->setAttributeNode(new DOMAttr('attr', 'attrvalue'));
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root attr="attrvalue" /> */

?>

Смотрите также

DOMDocument->createAttribute()

Пред. | Начало | След.
DOM Functions | Уровень выше | DOMAttr->isId()


DOMAttr->isId()

(no version information, might be only in CVS)

DOMAttr->isId() -- Checks if attribute is a defined ID

Описание

class DOMAttr {

bool isId ( void )

}

This function checks if the attribute is a defined ID.

According to the DOM standard this requires a DTD which defines the attribute ID to be of type ID. You need to validate your document with DOMDocument->validate() or DOMDocument::validateOnParse before using this function.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. DOMAttr->isId() Example

<?php

$doc = new DomDocument;

// We need to validate our document before refering to the id
$doc->validateOnParse = true;
$doc->Load('book.xml');

// We retrieve the attribute named id of the chapter element
$attr = $doc->getElementsByTagName('chapter')->item(0)->getAttributeNode('id');

var_dump($attr->isId()); // bool(true)

?>

Пред. | Начало | След.
DOMAttr->__construct() | Уровень выше | DOMCharacterData->appendData()


DOMCharacterData->appendData()

(no version information, might be only in CVS)

DOMCharacterData->appendData() -- Append the string to the end of the character data of the node

Описание

class DOMCharacterData {

void appendData ( string data )

}

Append the string data to the end of the character data of the node.

Список параметров

data

The string to append.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

DOMCharacterData->deleteData()
DOMCharacterData->insertData()
DOMCharacterData->replaceData()
DOMCharacterData->substringData()

Пред. | Начало | След.
DOMAttr->isId() | Уровень выше | DOMCharacterData->deleteData()


DOMCharacterData->deleteData()

(no version information, might be only in CVS)

DOMCharacterData->deleteData() -- Remove a range of characters from the node

Описание

class DOMCharacterData {

void deleteData ( int offset, int count )

}

Deletes count characters starting from position offset.

Список параметров

offset

The offset from which to start removing.

count

The number of characters to delete. If the sum of offset and count exceeds the length, then all characters to the end of the data are deleted.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Исключения

DOM_INDEX_SIZE_ERR

Raised if offset is negative or greater than the number of 16-bit units in data, or if count is negative.

Смотрите также

DOMCharacterData->appendData()
DOMCharacterData->insertData()
DOMCharacterData->replaceData()
DOMCharacterData->substringData()

Пред. | Начало | След.
DOMCharacterData->appendData() | Уровень выше | DOMCharacterData->insertData()


DOMCharacterData->insertData()

(no version information, might be only in CVS)

DOMCharacterData->insertData() -- Insert a string at the specified 16-bit unit offset

Описание

class DOMCharacterData {

void insertData ( int offset, string data )

}

Inserts string data at position offset.

Список параметров

offset

The character offset at which to insert.

data

The string to insert.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Исключения

DOM_INDEX_SIZE_ERR

Raised if offset is negative or greater than the number of 16-bit units in data.

Смотрите также

DOMCharacterData->appendData()
DOMCharacterData->deleteData()
DOMCharacterData->replaceData()
DOMCharacterData->substringData()

Пред. | Начало | След.
DOMCharacterData->deleteData() | Уровень выше | DOMCharacterData->replaceData()


DOMCharacterData->replaceData()

(no version information, might be only in CVS)

DOMCharacterData->replaceData() -- Replace a substring within the DOMCharacterData node

Описание

class DOMCharacterData {

void replaceData ( int offset, int count, string data )

}

Replace count characters starting from position offset with data.

Список параметров

offset

The offset from which to start replacing.

count

The number of characters to replace. If the sum of offset and count exceeds the length, then all characters to the end of the data are replaced.

data

The string with which the range must be replaced.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Исключения

DOM_INDEX_SIZE_ERR

Raised if offset is negative or greater than the number of 16-bit units in data, or if count is negative.

Смотрите также

DOMCharacterData->appendData()
DOMCharacterData->deleteData()
DOMCharacterData->insertData()
DOMCharacterData->substringData()

Пред. | Начало | След.
DOMCharacterData->insertData() | Уровень выше | DOMCharacterData->substringData()


DOMCharacterData->substringData()

(no version information, might be only in CVS)

DOMCharacterData->substringData() -- Extracts a range of data from the node

Описание

class DOMCharacterData {

string substringData ( int offset, int count )

}

Returns the specified substring.

Список параметров

offset

Start offset of substring to extract.

count

The number of characters to extract.

Возвращаемые значения

The specified substring. If the sum of offset and count exceeds the length, then all 16-bit units to the end of the data are returned.

Исключения

DOM_INDEX_SIZE_ERR

Raised if offset is negative or greater than the number of 16-bit units in data, or if count is negative.

Смотрите также

DOMCharacterData->appendData()
DOMCharacterData->deleteData()
DOMCharacterData->insertData()
DOMCharacterData->replaceData()

Пред. | Начало | След.
DOMCharacterData->replaceData() | Уровень выше | DOMComment->__construct()


DOMComment->__construct()

(no version information, might be only in CVS)

DOMComment->__construct() -- Creates a new DOMComment object

Описание

class DOMComment {

__construct ( [string value] )

}

Creates a new DOMComment object. This object is read only. It may be appended to a document, but additional nodes may not be appended to this node until the node is associated with a document. To create a writeable node, use DOMDocument->createComment().

Список параметров

value

The value of the comment.

Примеры

Пример 1. Creating a new DOMComment

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$comment = $element->appendChild(new DOMComment('root comment'));
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root><!--root comment--></root> */

?>

Смотрите также

DOMDocument->createComment()

Пред. | Начало | След.
DOMCharacterData->substringData() | Уровень выше | DOMDocument->__construct()


DOMDocument->__construct()

(no version information, might be only in CVS)

DOMDocument->__construct() -- Creates a new DOMDocument object

Описание

class DOMDocument {

__construct ( [string version [, string encoding]] )

}

Creates a new DOMDocument object.

Список параметров

version

The version number of the document as part of the XML declaration.

encoding

The encoding of the document as part of the XML declaration.

Примеры

Пример 1. Creating a new DOMDocument

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');

echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?> */

?>

Смотрите также

DOMImplementation->createDocument()

Пред. | Начало | След.
DOMComment->__construct() | Уровень выше | DOMDocument->createAttribute()


DOMDocument->createAttribute()

(no version information, might be only in CVS)

DOMDocument->createAttribute() -- Create new attribute

Описание

class DOMDocument {

DOMAttr createAttribute ( string name )

}

This function creates a new instance of class DOMAttr. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, к пример функцией DOMNode->appendChild().

Список параметров

name

The name of the attribute.

Возвращаемые значения

The new DOMAttr or FALSE if an error occured.

Исключения

DOM_INVALID_CHARACTER_ERR

Raised if name contains an invalid character.

Смотрите также

DOMNode->appendChild()
DOMDocument->createAttributeNS()
DOMDocument->createCDATASection()
DOMDocument->createComment()
DOMDocument->createDocumentFragment()
DOMDocument->createElement()
DOMDocument->createElementNS()
DOMDocument->createEntityReference()
DOMDocument->createProcessingInstruction()
DOMDocument->createTextNode()

Пред. | Начало | След.
DOMDocument->__construct() | Уровень выше | DOMDocument->createAttributeNS()


DOMDocument->createAttributeNS()

(no version information, might be only in CVS)

DOMDocument->createAttributeNS() -- Create new attribute node with an associated namespace

Описание

class DOMDocument {

DOMAttr createAttributeNS ( string namespaceURI, string qualifiedName )

}

This function creates a new instance of class DOMAttr. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, к пример функцией DOMNode->appendChild().

Список параметров

namespaceURI

The URI of the namespace.

qualifiedName

The tag name and prefix of the attribute, as prefix:tagname.

Возвращаемые значения

The new DOMAttr or FALSE if an error occured.

Исключения

DOM_INVALID_CHARACTER_ERR

Raised if qualifiedName contains an invalid character.

DOM_NAMESPACE_ERR

Raised if qualifiedName is a malformed qualified name, or if qualifiedName has a prefix and namespaceURI is NULL.

Смотрите также

DOMNode->appendChild()
DOMDocument->createAttribute()
DOMDocument->createCDATASection()
DOMDocument->createComment()
DOMDocument->createDocumentFragment()
DOMDocument->createElement()
DOMDocument->createElementNS()
DOMDocument->createEntityReference()
DOMDocument->createProcessingInstruction()
DOMDocument->createTextNode()

Пред. | Начало | След.
DOMDocument->createAttribute() | Уровень выше | DOMDocument->createCDATASection()


DOMDocument->createCDATASection()

(no version information, might be only in CVS)

DOMDocument->createCDATASection() -- Create new cdata node

Описание

class DOMDocument {

DOMCDATASection createCDATASection ( string data )

}

This function creates a new instance of class DOMCDATASection. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, к пример функцией DOMNode->appendChild().

Список параметров

data

The content of the cdata.

Возвращаемые значения

The new DOMCDATASection or FALSE if an error occured.

Смотрите также

DOMNode->appendChild()
DOMDocument->createAttribute()
DOMDocument->createAttributeNS()
DOMDocument->createComment()
DOMDocument->createDocumentFragment()
DOMDocument->createElement()
DOMDocument->createElementNS()
DOMDocument->createEntityReference()
DOMDocument->createProcessingInstruction()
DOMDocument->createTextNode()

Пред. | Начало | След.
DOMDocument->createAttributeNS() | Уровень выше | DOMDocument->createComment()


DOMDocument->createComment()

(no version information, might be only in CVS)

DOMDocument->createComment() -- Create new comment node

Описание

class DOMDocument {

DOMComment createComment ( string data )

}

This function creates a new instance of class DOMComment. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, к пример функцией DOMNode->appendChild().

Список параметров

data

The content of the comment.

Возвращаемые значения

The new DOMComment or FALSE if an error occured.

Смотрите также

DOMNode->appendChild()
DOMDocument->createAttribute()
DOMDocument->createAttributeNS()
DOMDocument->createCDATASection()
DOMDocument->createDocumentFragment()
DOMDocument->createElement()
DOMDocument->createElementNS()
DOMDocument->createEntityReference()
DOMDocument->createProcessingInstruction()
DOMDocument->createTextNode()

Пред. | Начало | След.
DOMDocument->createCDATASection() | Уровень выше | DOMDocument->createDocumentFragment()


DOMDocument->createDocumentFragment()

(no version information, might be only in CVS)

DOMDocument->createDocumentFragment() -- Create new document fragment

Описание

class DOMDocument {

DOMDocumentFragment createDocumentFragment ( void )

}

This function creates a new instance of class DOMDocumentFragment. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, к пример функцией DOMNode->appendChild().

Возвращаемые значения

The new DOMDocumentFragment or FALSE if an error occured.

Смотрите также

DOMNode->appendChild()
DOMDocument->createAttribute()
DOMDocument->createAttributeNS()
DOMDocument->createCDATASection()
DOMDocument->createComment()
DOMDocument->createElement()
DOMDocument->createElementNS()
DOMDocument->createEntityReference()
DOMDocument->createProcessingInstruction()
DOMDocument->createTextNode()

Пред. | Начало | След.
DOMDocument->createComment() | Уровень выше | DOMDocument->createElement()


DOMDocument->createElement()

(no version information, might be only in CVS)

DOMDocument->createElement() -- Create new element node

Описание

class DOMDocument {

DOMElement createElement ( string name [, string value] )

}

This function creates a new instance of class DOMElement. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, к пример функцией DOMNode->appendChild().

Список параметров

name

The tag name of the element.

value

The value of the element. By default, an empty element will be created. You can also set the value later with DOMElement->nodeValue.

Возвращаемые значения

Returns a new instance of class DOMElement or FALSE if an error occured.

Исключения

DOM_INVALID_CHARACTER_ERR

Raised if name contains an invalid character.

Примеры

Пример 1. Creating a new element and inserting it as root

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');

$element = $dom->createElement('test', 'This is the root element!');

// We insert the new element as root (child of the document)
$dom->appendChild($element);

echo $dom->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0" encoding="iso-8859-1"?>
<test>This is the root element!</test>

Смотрите также

DOMNode->appendChild()
DOMDocument->createAttribute()
DOMDocument->createAttributeNS()
DOMDocument->createCDATASection()
DOMDocument->createComment()
DOMDocument->createDocumentFragment()
DOMDocument->createElementNS()
DOMDocument->createEntityReference()
DOMDocument->createProcessingInstruction()
DOMDocument->createTextNode()

Пред. | Начало | След.
DOMDocument->createDocumentFragment() | Уровень выше | DOMDocument->createElementNS()


DOMDocument->createElementNS()

(no version information, might be only in CVS)

DOMDocument->createElementNS() -- Create new element node with an associated namespace

Описание

class DOMDocument {

DOMElement createElementNS ( string namespaceURI, string qualifiedName [, string value] )

}

This function creates a new element node with an associated namespace. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, к пример функцией DOMNode->appendChild().

Список параметров

namespaceURI

The URI of the namespace.

qualifiedName

The qualified name of the element, as prefix:tagname.

value

The value of the element. By default, an empty element will be created. You can also set the value later with DOMElement->nodeValue.

Возвращаемые значения

The new DOMElement or FALSE if an error occured.

Исключения

DOM_INVALID_CHARACTER_ERR

Raised if qualifiedName contains an invalid character.

DOM_NAMESPACE_ERR

Raised if qualifiedName is a maformed qualified name.

Примеры

Пример 1. Creating a new element and inserting it as root

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');

$element = $dom->createElementNS('http://www.example.com/XFoo', 'xfoo:test', 'This is the root element!');

// We insert the new element as root (child of the document)
$dom->appendChild($element);

echo $dom->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0" encoding="iso-8859-1"?>
<xfoo:test xmlns:xfoo="http://www.example.com/XFoo">This is the root element!</xfoo:test>

Смотрите также

DOMNode->appendChild()
DOMDocument->createAttribute()
DOMDocument->createAttributeNS()
DOMDocument->createCDATASection()
DOMDocument->createComment()
DOMDocument->createDocumentFragment()
DOMDocument->createElement()
DOMDocument->createEntityReference()
DOMDocument->createProcessingInstruction()
DOMDocument->createTextNode()

Пред. | Начало | След.
DOMDocument->createElement() | Уровень выше | DOMDocument->createEntityReference()


DOMDocument->createEntityReference()

(no version information, might be only in CVS)

DOMDocument->createEntityReference() -- Create new entity reference node

Описание

class DOMDocument {

DOMEntityReference createEntityReference ( string name )

}

This function creates a new instance of class DOMEntityReference. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, к пример функцией DOMNode->appendChild().

Список параметров

name

The content of the entity reference, e.g. the entity reference minus the leading & and the trailing ; characters.

Возвращаемые значения

The new DOMEntityReference or FALSE if an error occured.

Исключения

DOM_INVALID_CHARACTER_ERR

Raised if name contains an invalid character.

Смотрите также

DOMNode->appendChild()
DOMDocument->createAttribute()
DOMDocument->createAttributeNS()
DOMDocument->createCDATASection()
DOMDocument->createComment()
DOMDocument->createDocumentFragment()
DOMDocument->createElement()
DOMDocument->createElementNS()
DOMDocument->createProcessingInstruction()
DOMDocument->createTextNode()

Пред. | Начало | След.
DOMDocument->createElementNS() | Уровень выше | DOMDocument->createProcessingInstruction()


DOMDocument->createProcessingInstruction()

(no version information, might be only in CVS)

DOMDocument->createProcessingInstruction() -- Creates new PI node

Описание

class DOMDocument {

DOMProcessingInstruction createProcessingInstruction ( string target [, string data] )

}

This function creates a new instance of class DOMProcessingInstruction. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, к пример функцией DOMNode->appendChild().

Список параметров

target

The target of the processing instruction.

data

The content of the processing instruction.

Возвращаемые значения

The new DOMProcessingInstruction or FALSE if an error occured.

Исключения

DOM_INVALID_CHARACTER_ERR

Raised if target contains an invalid character.

Смотрите также

DOMNode->appendChild()
DOMDocument->createAttribute()
DOMDocument->createAttributeNS()
DOMDocument->createCDATASection()
DOMDocument->createComment()
DOMDocument->createDocumentFragment()
DOMDocument->createElement()
DOMDocument->createElementNS()
DOMDocument->createEntityReference()
DOMDocument->createTextNode()

Пред. | Начало | След.
DOMDocument->createEntityReference() | Уровень выше | DOMDocument->createTextNode()


DOMDocument->createTextNode()

(no version information, might be only in CVS)

DOMDocument->createTextNode() -- Create new text node

Описание

class DOMDocument {

DOMText createTextNode ( string content )

}

This function creates a new instance of class DOMText. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, к пример функцией DOMNode->appendChild().

Список параметров

content

The content of the text.

Возвращаемые значения

The new DOMText or FALSE if an error occured.

Смотрите также

DOMNode->appendChild()
DOMDocument->createAttribute()
DOMDocument->createAttributeNS()
DOMDocument->createCDATASection()
DOMDocument->createComment()
DOMDocument->createDocumentFragment()
DOMDocument->createElement()
DOMDocument->createElementNS()
DOMDocument->createEntityReference()
DOMDocument->createProcessingInstruction()

Пред. | Начало | След.
DOMDocument->createProcessingInstruction() | Уровень выше | DOMDocument->getElementById()


DOMDocument->getElementById()

(no version information, might be only in CVS)

DOMDocument->getElementById() -- Searches for an element with a certain id

Описание

class DOMDocument {

DOMElement getElementById ( string elementId )

}

This function is similar to DOMDocument->getElementsByTagName() but searches for an element with a given id.

According to the DOM standard this requires a DTD which defines the attribute ID to be of type ID. You need to validate your document with DOMDocument->validate() or DOMDocument->validateOnParse before using this function.

Список параметров

elementId

The unique id value for an element.

Возвращаемые значения

Returns the DOMElement or NULL if the element is not found.

Примеры

Пример 1. DOMDocument->getElementById() Example

<?php

$doc = new DomDocument;

// We need to validate our document before refering to the id
$doc->validateOnParse = true;
$doc->Load('book.xml');

echo "The element whose id is books is: " . $doc->getElementById('books')->tagName . "\n";

?>

Результат выполнения данного примера:

The element whose id is books is: chapter

Смотрите также

DOMDocument->getElementsByTagName()

Пред. | Начало | След.
DOMDocument->createTextNode() | Уровень выше | DOMDocument->getElementsByTagName()


DOMDocument->getElementsByTagName()

(no version information, might be only in CVS)

DOMDocument->getElementsByTagName() -- Searches for all elements with given tag name

Описание

class DOMDocument {

DOMNodeList getElementsByTagName ( string name )

}

This function returns a new instance of class DOMNodeList containing the elements with a given tag name.

Список параметров

name

The name of the tag to match on. The special value * matches all tags.

Возвращаемые значения

A new DOMNodeList object containing all the matched elements.

Смотрите также

DOMDocument->getElementsByTagNameNS()

Пред. | Начало | След.
DOMDocument->getElementById() | Уровень выше | DOMDocument->getElementsByTagNameNS()


DOMDocument->getElementsByTagNameNS()

(no version information, might be only in CVS)

DOMDocument->getElementsByTagNameNS() -- Searches for all elements with given tag name in specified namespace

Описание

class DOMDocument {

DOMNodeList getElementsByTagNameNS ( string namespaceURI, string localName )

}

Returns a DOMNodeList of all elements with a given local name and a namespace URI.

Список параметров

namespaceURI

The namespace URI of the elements to match on. The special value * matches all namespaces.

localName

The local name of the elements to match on. The special value * matches all local names.

Возвращаемые значения

A new DOMNodeList object containing all the matched elements.

Примеры

Пример 1. Get all the XInclude elements

<?php

$xml = <<<EOD
<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Books of the other guy..</title>
<para>
 <xi:include href="book.xml">
  <xi:fallback>
   <error>xinclude: book.xml not found</error>
  </xi:fallback>
 </xi:include>
 <include>
  This is another namespace
 </include>
</para>
</chapter>
EOD;
$dom = new DOMDocument;

// load the XML string defined above
$dom->loadXML($xml);

foreach ($dom->getElementsByTagNameNS('http://www.w3.org/2001/XInclude', '*') as $element) {
    echo 'local name: ', $element->localName, ', prefix: ', $element->prefix, "\n";
}
?>

Результат выполнения данного примера:

local name: include, prefix: xi
local name: fallback, prefix: xi

Смотрите также

DOMDocument->getElementsByTagName()

Пред. | Начало | След.
DOMDocument->getElementsByTagName() | Уровень выше | DOMDocument->importNode()


DOMDocument->importNode()

(no version information, might be only in CVS)

DOMDocument->importNode() -- Import node into current document

Описание

class DOMDocument {

DOMNode importNode ( DOMNode importedNode [, bool deep] )

}

This function returns a copy of the node to import and associates it with the current document.

Список параметров

importedNode

The node to import.

deep

If set to TRUE, this method will recursively import the subtree under the importedNode.

Возвращаемые значения

The copied node.

Исключения

DOMException is thrown if node cannot be imported.

Пред. | Начало | След.
DOMDocument->getElementsByTagNameNS() | Уровень выше | DOMDocument->load()


DOMDocument->load()

(no version information, might be only in CVS)

DOMDocument->load() -- Load XML from a file

Описание

class DOMDocument {

bool load ( string filename [, int options] )

}

Loads an XML document from a file.

This method may also be called statically to load and create a DOMDocument object. The static invocation may be used when no DOMDocument properties need to be set prior to loading.

Список параметров

filename

The path to the XML document.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Creating a Document

<?php
$doc = DOMDocument::load('book.xml');
echo $doc->saveXML();

$doc = new DOMDocument();
$doc->load('book.xml');
echo $doc->saveXML();
?>

Смотрите также

DOMDocument->loadXML()
DOMDocument->save()
DOMDocument->saveXML()

Пред. | Начало | След.
DOMDocument->importNode() | Уровень выше | DOMDocument->loadHTML()


DOMDocument->loadHTML()

(no version information, might be only in CVS)

DOMDocument->loadHTML() -- Load HTML from a string

Описание

class DOMDocument {

bool loadHTML ( string source )

}

The function parses the HTML contained in the string source. Unlike loading XML, HTML does not have to be well-formed to load. This function may also be called statically to load and create a DOMDocument object. The static invocation may be used when no DOMDocument properties need to be set prior to loading.

Список параметров

source

The HTML string.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Creating a Document

<?php
$doc = DOMDocument::loadHTML("<html><body>Test<br></body></html>");
echo $doc->saveHTML();

$doc = new DOMDocument();
$doc->loadHTML("<html><body>Test<br></body></html>");
echo $doc->saveHTML();
?>

Смотрите также

DOMDocument->loadHTMLFile()
DOMDocument->saveHTML()
DOMDocument->saveHTMLFile()

Пред. | Начало | След.
DOMDocument->load() | Уровень выше | DOMDocument->loadHTMLFile()


DOMDocument->loadHTMLFile()

(no version information, might be only in CVS)

DOMDocument->loadHTMLFile() -- Load HTML from a file

Описание

class DOMDocument {

bool loadHTMLFile ( string filename )

}

The function parses the HTML document in the file named filename. Unlike loading XML, HTML does not have to be well-formed to load.

This function may also be called statically to load and create a DOMDocument object. The static invocation may be used when no DOMDocument properties need to be set prior to loading.

Список параметров

filename

The path to the HTML file.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Creating a Document

<?php
$doc = DOMDocument::loadHTMLFile("filename.html");
print $doc->saveHTML();

$doc = new DOMDocument();
$doc->loadHTMLFile("filename.html");
print $doc->saveHTML();
?>

Смотрите также

DOMDocument->loadHTML()
DOMDocument->saveHTML()
DOMDocument->saveHTMLFile()

Пред. | Начало | След.
DOMDocument->loadHTML() | Уровень выше | DOMDocument->loadXML()


DOMDocument->loadXML()

(no version information, might be only in CVS)

DOMDocument->loadXML() -- Load XML from a string

Описание

class DOMDocument {

bool loadXML ( string source [, int options] )

}

Loads an XML document from a string.

This method may also be called statically to load and create a DOMDocument object. The static invocation may be used when no DOMDocument properties need to be set prior to loading.

Список параметров

source

The string containing the XML.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Creating a Document

<?php
$doc = DOMDocument::loadXML('<root><node/></root>');
echo $doc->saveXML();

$doc = new DOMDocument();
$doc->loadXML('<root><node/></root>');
echo $doc->saveXML();
?>

Смотрите также

DOMDocument->load()
DOMDocument->save()
DOMDocument->saveXML()

Пред. | Начало | След.
DOMDocument->loadHTMLFile() | Уровень выше | DOMDocument->normalize()


DOMDocument->normalize()

(no version information, might be only in CVS)

DOMDocument->normalize() -- Normalizes the document

Описание

class DOMDocument {

void normalize ( void )

}

Normalizes the document.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

DOMNode->normalize()

Пред. | Начало | След.
DOMDocument->loadXML() | Уровень выше | DOMDocument->relaxNGValidate()


DOMDocument->relaxNGValidate()

(no version information, might be only in CVS)

DOMDocument->relaxNGValidate() -- Performs relaxNG validation on the document

Описание

class DOMDocument {

bool relaxNGValidate ( string filename )

}

Performs relaxNG validation on the document based on the given RNG schema.

Список параметров

filename

The RNG file.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

DOMDocument->relaxNGValidateSource()
DOMDocument->schemaValidate()
DOMDocument->schemaValidateSource()
DOMDocument->validate()

Пред. | Начало | След.
DOMDocument->normalize() | Уровень выше | DOMDocument->relaxNGValidateSource()


DOMDocument->relaxNGValidateSource()

(no version information, might be only in CVS)

DOMDocument->relaxNGValidateSource() -- Performs relaxNG validation on the document

Описание

class DOMDocument {

bool relaxNGValidateSource ( string source )

}

Performs relaxNG validation on the document based on the given RNG source.

Список параметров

source

A string containing the RNG schema.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

DOMDocument->relaxNGValidate()
DOMDocument->schemaValidate()
DOMDocument->schemaValidateSource()
DOMDocument->validate()

Пред. | Начало | След.
DOMDocument->relaxNGValidate() | Уровень выше | DOMDocument->save()


DOMDocument->save()

(no version information, might be only in CVS)

DOMDocument->save() -- Dumps the internal XML tree back into a file

Описание

class DOMDocument {

mixed save ( string filename [, integer options] )

}

Creates an XML document from the DOM representation. This function is usually called after building a new dom document from scratch as in the example below.

Список параметров

filename

The path to the saved XML document.

options

Additional Options. Currently only LIBXML_NOEMPTYTAG is supported.

Возвращаемые значения

Returns the number of bytes written or FALSE if an error occurred.

Список изменений

Версия | Описание
5.1.0 | Added the options parameter

Примеры

Пример 1. Saving a DOM tree into a file

<?php

$doc = new DOMDocument('1.0');
// we want a nice output
$doc->formatOutput = true;

$root = $doc->createElement('book');
$root = $doc->appendChild($root);

$title = $doc->createElement('title');
$title = $root->appendChild($title);

$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);

echo 'Wrote: ' . $doc->save("/tmp/test.xml") . ' bytes'; // Wrote: 72 bytes

?>

Смотрите также

DOMDocument->saveXML()
DOMDocument->load()
DOMDocument->loadXML()

Пред. | Начало | След.
DOMDocument->relaxNGValidateSource() | Уровень выше | DOMDocument->saveHTML()


DOMDocument->saveHTML()

(no version information, might be only in CVS)

DOMDocument->saveHTML() -- Dumps the internal document into a string using HTML formatting

Описание

class DOMDocument {

string saveHTML ( void )

}

Creates an HTML document from the DOM representation. This function is usually called after building a new dom document from scratch as in the example below.

Возвращаемые значения

Returns the HTML, or FALSE if an error occurred.

Примеры

Пример 1. Saving a HTML tree into a string

<?php

$doc = new DOMDocument('1.0');
// we want a nice output
$doc->formatOutput = true;

$root = $doc->createElement('html');
$root = $doc->appendChild($root);

$head = $doc->createElement('head');
$head = $root->appendChild($head);

$title = $doc->createElement('title');
$title = $head->appendChild($title);

$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);

echo $doc->saveHTML();

?>

Смотрите также

DOMDocument->saveHTMLFile()
DOMDocument->loadHTML()
DOMDocument->loadHTMLFile()

Пред. | Начало | След.
DOMDocument->save() | Уровень выше | DOMDocument->saveHTMLFile()


DOMDocument->saveHTMLFile()

(no version information, might be only in CVS)

DOMDocument->saveHTMLFile() -- Dumps the internal document into a file using HTML formatting

Описание

class DOMDocument {

int saveHTMLFile ( string filename )

}

Creates an HTML document from the DOM representation. This function is usually called after building a new dom document from scratch as in the example below.

Список параметров

filename

The path to the saved HTML document.

Возвращаемые значения

Returns the number of bytes written or FALSE if an error occurred.

Примеры

Пример 1. Saving a HTML tree into a file

<?php

$doc = new DOMDocument('1.0');
// we want a nice output
$doc->formatOutput = true;

$root = $doc->createElement('html');
$root = $doc->appendChild($root);

$head = $doc->createElement('head');
$head = $root->appendChild($head);

$title = $doc->createElement('title');
$title = $head->appendChild($title);

$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);

echo 'Wrote: ' . $doc->saveHTMLFile("/tmp/test.html") . ' bytes'; // Wrote: 129 bytes

?>

Смотрите также

DOMDocument->saveHTML()
DOMDocument->loadHTML()
DOMDocument->loadHTMLFile()

Пред. | Начало | След.
DOMDocument->saveHTML() | Уровень выше | DOMDocument->saveXML()


DOMDocument->saveXML()

(no version information, might be only in CVS)

DOMDocument->saveXML() -- Dumps the internal XML tree back into a string

Описание

class DOMDocument {

string saveXML ( [DOMNode node [, integer options]] )

}

Creates an XML document from the DOM representation. This function is usually called after building a new dom document from scratch as in the example below.

Список параметров

node

Use this parameter to output only a specific node without XML declaration rather than the entire document.

options

Additional Options. Currently only LIBXML_NOEMPTYTAG is supported.

Возвращаемые значения

Returns the XML, or FALSE if an error occurred.

Исключения

DOM_WRONG_DOCUMENT_ERR

Raised if node is from another document.

Список изменений

Версия | Описание
5.1.0 | Added the options parameter

Примеры

Пример 1. Saving a DOM tree into a string

<?php

$doc = new DOMDocument('1.0');
// we want a nice output
$doc->formatOutput = true;

$root = $doc->createElement('book');
$root = $doc->appendChild($root);

$title = $doc->createElement('title');
$title = $root->appendChild($title);

$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);

echo "Retrieving all the document:\n";
echo $doc->saveXML() . "\n";

echo "Retrieving only the title part:\n";
echo $doc->saveXML($title);

?>

Результат выполнения данного примера:

Retrieving all the document:
<?xml version="1.0"?>
<book>
  <title>This is the title</title>
</book>

Retrieving only the title part:
<title>This is the title</title>

Смотрите также

DOMDocument->save()
DOMDocument->load()
DOMDocument->loadXML()

Пред. | Начало | След.
DOMDocument->saveHTMLFile() | Уровень выше | DOMDocument->schemaValidate()


DOMDocument->schemaValidate()

(no version information, might be only in CVS)

DOMDocument->schemaValidate() -- Validates a document based on a schema

Описание

class DOMDocument {

bool schemaValidate ( string filename )

}

Validates a document based on the given schema file.

Список параметров

filename

The path to the schema.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

DOMDocument->schemaValidateSource()
DOMDocument->relaxNGValidate()
DOMDocument->relaxNGValidateSource()
DOMDocument->validate()

Пред. | Начало | След.
DOMDocument->saveXML() | Уровень выше | DOMDocument->schemaValidateSource()


DOMDocument->schemaValidateSource()

(no version information, might be only in CVS)

DOMDocument->schemaValidateSource() -- Validates a document based on a schema

Описание

class DOMDocument {

bool schemaValidateSource ( string source )

}

Validates a document based on a schema defined in the given string.

Список параметров

source

A string containing the schema.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

DOMDocument->schemaValidate()
DOMDocument->relaxNGValidate()
DOMDocument->relaxNGValidateSource()
DOMDocument->validate()

Пред. | Начало | След.
DOMDocument->schemaValidate() | Уровень выше | DOMDocument->validate()


DOMDocument->validate()

(no version information, might be only in CVS)

DOMDocument->validate() -- Validates the document based on its DTD

Описание

class DOMDocument {

bool validate ( void )

}

Validates the document based on its DTD.

You can also use the validateOnParse property of DOMDocument to make a DTD validation.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. If the document have no DTD attached, this method will return FALSE.

Примеры

Пример 1. Example of DTD validation

<?php
$dom = new DOMDocument;
$dom->Load('book.xml');
if ($dom->validate()) {
    echo "This document is valid!\n";
}
?>

You can also validate your XML file while loading it:

<?php
$dom = new DOMDocument;
$dom->validateOnParse = true;
$dom->Load('book.xml');
?>

Смотрите также

DOMDocument->schemaValidate()
DOMDocument->schemaValidateSource()
DOMDocument->relaxNGValidate()
DOMDocument->relaxNGValidateSource()

Пред. | Начало | След.
DOMDocument->schemaValidateSource() | Уровень выше | DOMDocument->xinclude()


DOMDocument->xinclude()

(no version information, might be only in CVS)

DOMDocument->xinclude() -- Substitutes XIncludes in a DOMDocument Object

Описание

class DOMDocument {

int xinclude ( [int options] )

}

This method substitutes XIncludes in a DOMDocument object.

Замечание: Due to libxml2 automatically resolving entities, this method will produce unexpected results if the included XML file have an attached DTD.

Список параметров

options

libxml parameters. Available since PHP 5.1.0 and Libxml 2.6.7.

Возвращаемые значения

Returns the number of XIncludes in the document.

Примеры

Пример 1. DOMDocument->xinclude() example

<?php

$xml = <<<EOD
<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
 <title>Books of the other guy..</title>
 <para>
  <xi:include href="book.xml">
   <xi:fallback>
    <error>xinclude: book.xml not found</error>
   </xi:fallback>
  </xi:include>
 </para>
</chapter>
EOD;

$dom = new DOMDocument;

// let's have a nice output
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;

// load the XML string defined above
$dom->loadXML($xml);

// substitute xincludes
$dom->xinclude();

echo $dom->saveXML();

?>

Результатом выполнения данного примера будет что-то подобное:

<?xml version="1.0"?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
  <title>Books of the other guy..</title>
  <para>
    <row xml:base="/home/didou/book.xml">
       <entry>The Grapes of Wrath</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>0140186409</entry>
      </row>
    <row xml:base="/home/didou/book.xml">
       <entry>The Pearl</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>014017737X</entry>
      </row>
    <row xml:base="/home/didou/book.xml">
       <entry>Samarcande</entry>
       <entry>Amine Maalouf</entry>
       <entry>fr</entry>
       <entry>2253051209</entry>
      </row>
  </para>
</chapter>

Пред. | Начало | След.
DOMDocument->validate() | Уровень выше | DOMElement->__construct()


DOMElement->__construct()

(no version information, might be only in CVS)

DOMElement->__construct() -- Creates a new DOMElement object

Описание

class DOMElement {

__construct ( string name [, string value [, string namespaceURI]] )

}

Creates a new DOMElement object. This object is read only. It may be appended to a document, but additional nodes may not be appended to this node until the node is associated with a document. To create a writeable node, use DOMDocument->createElement() or DOMDocument->createElementNS().

Список параметров

name

The tag name of the element. When also passing in namespaceURI, the element name may take a prefix to be associated with the URI.

value

The value of the element.

namespaceURI

A namespace URI to create the element within a specific namespace.

Примеры

Пример 1. Creating a new DOMElement

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$element_ns = new DOMElement('pr:node1', 'thisvalue', 'http://xyz');
$element->appendChild($element_ns);
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?>
<root><pr:node1 xmlns:pr="http://xyz">thisvalue</pr:node1></root> */

?>

Смотрите также

DOMDocument->createElement()
DOMDocument->createElementNS()

Пред. | Начало | След.
DOMDocument->xinclude() | Уровень выше | DOMElement->getAttribute()


DOMElement->getAttribute()

(no version information, might be only in CVS)

DOMElement->getAttribute() -- Returns value of attribute

Описание

class DOMElement {

string getAttribute ( string name )

}

Gets the value of the attribute with name name for the current node.

Список параметров

name

The name of the attribute.

Возвращаемые значения

The value of the attribute, or an empty string if no attribute with the given name is found.

Смотрите также

DOMElement->hasAttribute()
DOMElement->setAttribute()
DOMElement->removeAttribute()

Пред. | Начало | След.
DOMElement->__construct() | Уровень выше | DOMElement->getAttributeNode()


DOMElement->getAttributeNode()

(no version information, might be only in CVS)

DOMElement->getAttributeNode() -- Returns attribute node

Описание

class DOMElement {

DOMAttr getAttributeNode ( string name )

}

Returns the attribute node with name name for the current element.

Список параметров

name

The name of the attribute.

Возвращаемые значения

The attribute node.

Смотрите также

DOMElement->hasAttribute()
DOMElement->setAttributeNode()
DOMElement->removeAttributeNode()

Пред. | Начало | След.
DOMElement->getAttribute() | Уровень выше | DOMElement->getAttributeNodeNS()


DOMElement->getAttributeNodeNS()

(no version information, might be only in CVS)

DOMElement->getAttributeNodeNS() -- Returns attribute node

Описание

class DOMElement {

DOMAttr getAttributeNodeNS ( string namespaceURI, string localName )

}

Returns the attribute node in namespace namespaceURI with local name localName for the current node.

Список параметров

namespaceURI

The namespace URI.

localName

The local name.

Возвращаемые значения

The attribute node.

Смотрите также

DOMElement->hasAttributeNS()
DOMElement->setAttributeNodeNS()
DOMElement->removeAttributeNode()

Пред. | Начало | След.
DOMElement->getAttributeNode() | Уровень выше | DOMElement->getAttributeNS()


DOMElement->getAttributeNS()

(no version information, might be only in CVS)

DOMElement->getAttributeNS() -- Returns value of attribute

Описание

class DOMElement {

string getAttributeNS ( string namespaceURI, string localName )

}

Gets the value of the attribute in namespace namespaceURI with local name localName for the current node.

Список параметров

namespaceURI

The namespace URI.

localName

The local name.

Возвращаемые значения

The value of the attribute, or an empty string if no attribute with the given localName and namespaceURI is found.

Смотрите также

DOMElement->hasAttributeNS()
DOMElement->setAttributeNS()
DOMElement->removeAttributeNS()

Пред. | Начало | След.
DOMElement->getAttributeNodeNS() | Уровень выше | DOMElement->getElementsByTagName()


DOMElement->getElementsByTagName()

(no version information, might be only in CVS)

DOMElement->getElementsByTagName() -- Gets elements by tagname

Описание

class DOMElement {

DOMNodeList getElementsByTagName ( string name )

}

This function returns a new instance of the class DOMNodeList of all descendant elements with a given tag name, in the order in which they are encountered in a preorder traversal of this element tree.

Список параметров

name

The tag name. Use * to return all elements within the element tree.

Возвращаемые значения

This function returns a new instance of the class DOMNodeList of all matched elements.

Смотрите также

DOMElement->getElementsByTagNameNS()

Пред. | Начало | След.
DOMElement->getAttributeNS() | Уровень выше | DOMElement->getElementsByTagNameNS()


DOMElement->getElementsByTagNameNS()

(no version information, might be only in CVS)

DOMElement->getElementsByTagNameNS() -- Get elements by namespaceURI and localName

Описание

class DOMElement {

DOMNodeList getElementsByTagNameNS ( string namespaceURI, string localName )

}

This function fetch all the descendant elements with a given localName and namespaceURI.

Список параметров

namespaceURI

The namespace URI.

localName

The local name. Use * to return all elements within the element tree.

Возвращаемые значения

This function returns a new instance of the class DOMNodeList of all matched elements in the order in which they are encountered in a preorder traversal of this element tree.

Смотрите также

DOMElement->getElementsByTagName()

Пред. | Начало | След.
DOMElement->getElementsByTagName() | Уровень выше | DOMElement->hasAttribute()


DOMElement->hasAttribute()

(no version information, might be only in CVS)

DOMElement->hasAttribute() -- Checks to see if attribute exists

Описание

class DOMElement {

bool hasAttribute ( string name )

}

Indicates whether attribute named name exists as a member of the element.

Список параметров

name

The attribute name.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

DOMElement->hasAttributeNS()
DOMElement->getAttribute()
DOMElement->setAttribute()
DOMElement->removeAttribute()

Пред. | Начало | След.
DOMElement->getElementsByTagNameNS() | Уровень выше | DOMElement->hasAttributeNS()


DOMElement->hasAttributeNS()

(no version information, might be only in CVS)

DOMElement->hasAttributeNS() -- Checks to see if attribute exists

Описание

class DOMElement {

bool hasAttributeNS ( string namespaceURI, string localName )

}

Indicates whether attribute in namespace namespaceURI named localName exists as a member of the element.

Список параметров

namespaceURI

The namespace URI.

localName

The local name.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

DOMElement->hasAttribute()
DOMElement->getAttributeNS()
DOMElement->setAttributeNS()
DOMElement->removeAttributeNS()

Пред. | Начало | След.
DOMElement->hasAttribute() | Уровень выше | DOMElement->removeAttribute()


DOMElement->removeAttribute()

(no version information, might be only in CVS)

DOMElement->removeAttribute() -- Removes attribute

Описание

class DOMElement {

bool removeAttribute ( string name )

}

Removes attribute named name from the element.

Список параметров

name

The name of the attribute.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Исключения

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

Смотрите также

DOMElement->hasAttribute()
DOMElement->getAttribute()
DOMElement->setAttribute()

Пред. | Начало | След.
DOMElement->hasAttributeNS() | Уровень выше | DOMElement->removeAttributeNode()


DOMElement->removeAttributeNode()

(no version information, might be only in CVS)

DOMElement->removeAttributeNode() -- Removes attribute

Описание

class DOMElement {

bool removeAttributeNode ( DOMAttr oldnode )

}

Removes attribute oldnode from the element.

Список параметров

oldnode

The attribute node.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Исключения

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

DOM_NOT_FOUND_ERROR

Raised if oldnode is not an attribute of the element.

Смотрите также

DOMElement->hasAttribute()
DOMElement->getAttributeNode()
DOMElement->setAttributeNode()

Пред. | Начало | След.
DOMElement->removeAttribute() | Уровень выше | DOMElement->removeAttributeNS()


DOMElement->removeAttributeNS()

(no version information, might be only in CVS)

DOMElement->removeAttributeNS() -- Removes attribute

Описание

class DOMElement {

bool removeAttributeNS ( string namespaceURI, string localName )

}

Removes attribute is namespace namespaceURI named localName from the element.

Список параметров

namespaceURI

The namespace URI.

localName

The local name.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Исключения

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

Смотрите также

DOMElement->hasAttributeNS()
DOMElement->getAttributeNS()
DOMElement->setAttributeNS()

Пред. | Начало | След.
DOMElement->removeAttributeNode() | Уровень выше | DOMElement->setAttribute()


DOMElement->setAttribute()

(no version information, might be only in CVS)

DOMElement->setAttribute() -- Adds new attribute

Описание

class DOMElement {

bool setAttribute ( string name, string value )

}

Sets an attribute with name name to the given value. If the attribute does not exist, it will be created.

Список параметров

name

The name of the attribute.

value

The value of the attribute.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Исключения

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

Примеры

Пример 1. Setting an attribute

<?php
$doc = new DOMDocument("1.0");
$node = $doc->createElement("para");
$newnode = $doc->appendChild($node);
$newnode->setAttribute("align", "left");
?>

Смотрите также

DOMElement->hasAttribute()
DOMElement->getAttribute()
DOMElement->removeAttribute()

Пред. | Начало | След.
DOMElement->removeAttributeNS() | Уровень выше | DOMElement->setAttributeNode()


DOMElement->setAttributeNode()

(no version information, might be only in CVS)

DOMElement->setAttributeNode() -- Adds new attribute node to element

Описание

class DOMElement {

DOMAttr setAttributeNode ( DOMAttr attr )

}

Adds new attribute node attr to element.

Список параметров

attr

The attribute node.

Возвращаемые значения

Returns old node if the attribute has been replaced or NULL.

Исключения

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

Смотрите также

DOMElement->hasAttribute()
DOMElement->getAttributeNode()
DOMElement->removeAttributeNode()

Пред. | Начало | След.
DOMElement->setAttribute() | Уровень выше | DOMElement->setAttributeNodeNS()


DOMElement->setAttributeNodeNS()

(no version information, might be only in CVS)

DOMElement->setAttributeNodeNS() -- Adds new attribute node to element

Описание

class DOMElement {

DOMAttr setAttributeNodeNS ( DOMAttr attr )

}

Adds new attribute node attr to element.

Список параметров

name

The attribute node.

Возвращаемые значения

Returns the old node if the attribute has been replaced.

Исключения

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

Смотрите также

DOMElement->hasAttributeNS()
DOMElement->getAttributeNodeNS()
DOMElement->removeAttributeNode()

Пред. | Начало | След.
DOMElement->setAttributeNode() | Уровень выше | DOMElement->setAttributeNS()


DOMElement->setAttributeNS()

(no version information, might be only in CVS)

DOMElement->setAttributeNS() -- Adds new attribute

Описание

class DOMElement {

void setAttributeNS ( string namespaceURI, string qualifiedName, string value )

}

Sets an attribute with namespace namespaceURI and name name to the given value. If the attribute does not exist, it will be created.

Список параметров

namespaceURI

The namespace URI.

qualifiedName

The qualified name of the attribute, as prefix:tagname.

value

The value of the attribute.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Исключения

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if the node is readonly.

DOM_NAMESPACE_ERR

Raised if qualifiedName is a malformed qualified name, or if qualifiedName has a prefix and namespaceURI is NULL.

Смотрите также

DOMElement->hasAttributeNS()
DOMElement->getAttributeNS()
DOMElement->removeAttributeNS()

Пред. | Начало | След.
DOMElement->setAttributeNodeNS() | Уровень выше | DOMAttr->__construct()


DOMAttr->__construct()

(no version information, might be only in CVS)

DOMAttr->__construct() -- Creates a new DOMEntityReference object

Описание

class DOMEntityReference {

__construct ( string name )

}

Creates a new DOMEntityReference object.

Список параметров

name

The name of the entity reference.

Примеры

Пример 1. Creating a new DOMEntityReference

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$entity = $element->appendChild(new DOMEntityReference('nbsp'));
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root>&nbsp;</root> */

?>

Смотрите также

DOMDocument->createEntityReference()

Пред. | Начало | След.
DOMElement->setAttributeNS() | Уровень выше | DOMImplementation->__construct()


DOMImplementation->__construct()

(no version information, might be only in CVS)

DOMImplementation->__construct() -- Creates a new DOMImplementation object

Описание

class DOMImplementation {

__construct ( (void); )

}

Creates a new DOMImplementation object.

Пред. | Начало | След.
DOMAttr->__construct() | Уровень выше | DOMImplementation->createDocument()


DOMImplementation->createDocument()

(no version information, might be only in CVS)

DOMImplementation->createDocument() -- Creates a DOMDocument object of the specified type with its document element

Описание

class DOMImplementation {

DOMDocument createDocument ( [string namespaceURI [, string qualifiedName [, DOMDocumentType doctype]]] )

}

Creates a DOMDocument object of the specified type with its document element.

Список параметров

namespaceURI

The namespace URI of the document element to create.

qualifiedName

The qualified name of the document element to create.

doctype

The type of document to create or NULL.

Возвращаемые значения

A new DOMDocument object. If namespaceURI, qualifiedName, and doctype are null, the returned DOMDocument is empty with no document element

Исключения

DOM_WRONG_DOCUMENT_ERR

Raised if doctype has already been used with a different document or was created from a different implementation.

DOM_NAMESPACE_ERR

Raised if there is an error with the namespace, as determined by namespaceURI and qualifiedName.

Смотрите также

DOMDocument->__construct()
DOMImplementation->createDocumentType()

Пред. | Начало | След.
DOMImplementation->__construct() | Уровень выше | DOMImplementation->createDocumentType()


DOMImplementation->createDocumentType()

(no version information, might be only in CVS)

DOMImplementation->createDocumentType() -- Creates an empty DOMDocumentType object

Описание

class DOMImplementation {

DOMDocumentType createDocumentType ( [string qualifiedName [, string publicId [, string systemId]]] )

}

Creates an empty DOMDocumentType object. Entity declarations and notations are not made available. Entity reference expansions and default attribute additions do not occur.

Список параметров

qualifiedName

The qualified name of the document type to create.

publicId

The external subset public identifier.

systemId

The external subset system identifier.

Возвращаемые значения

A new DOMDocumentType node with its ownerDocument set to NULL.

Примеры

Пример 1. Creating a document with an attached DTD

<?php

// Creates an instance of the DOMImplementation class
$imp = new DOMImplementation;

// Creates a DOMDocumentType instance
$dtd = $imp->createDocumentType('graph', '', 'graph.dtd');

// Creates a DOMDocument instance
$dom = $imp->createDocument("", "", $dtd);

// Set other properties
$dom->encoding = 'UTF-8';
$dom->standalone = false;

// Create an empty element
$element = $dom->createElement('graph');

// Append the element
$dom->appendChild($element);

// Retrieve and print the document
echo $dom->saveXML();

?>

Результат выполнения данного примера:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE graph SYSTEM "graph.dtd">
<graph/>

Исключения

DOM_NAMESPACE_ERR

Raised if there is an error with the namespace, as determined by qualifiedName.

Смотрите также

DOMImplementation->createDocument()

Пред. | Начало | След.
DOMImplementation->createDocument() | Уровень выше | DOMImplementation->hasFeature()


DOMImplementation->hasFeature()

(no version information, might be only in CVS)

DOMImplementation->hasFeature() -- Test if the DOM implementation implements a specific feature

Описание

class DOMImplementation {

bool hasFeature ( string feature, string version )

}

Test if the DOM implementation implements a specific feature.

You can find a list of all features in the Conformance section of the DOM specification.

Список параметров

feature

The feature to test.

version

The version number of the feature to test. In level 2, this can be either 2.0 or 1.0.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Testing your DOM Implementation

<?php

$features = array(
  'Core'           => 'Core module',
  'XML'            => 'XML module',
  'HTML'           => 'HTML module',
  'Views'          => 'Views module',
  'Stylesheets'    => 'Style Sheets module',
  'CSS'            => 'CSS module',
  'CSS2'           => 'CSS2 module',
  'Events'         => 'Events module',
  'UIEvents'       => 'User interface Events module',
  'MouseEvents'    => 'Mouse Events module',
  'MutationEvents' => 'Mutation Events module',
  'HTMLEvents'     => 'HTML Events module',
  'Range'          => 'Range module',
  'Traversal'      => 'Traversal module'
);

foreach ($features as $key => $name) {
  if (DOMImplementation::hasFeature($key, '2.0')) {
    echo "Has feature $name\n";
  } else {
    echo "Missing feature $name\n";
  }
}

?>

Смотрите также

DOMNode->isSupported()

Пред. | Начало | След.
DOMImplementation->createDocumentType() | Уровень выше | DOMNamedNodeMap->getNamedItem()


DOMNamedNodeMap->getNamedItem()

(no version information, might be only in CVS)

DOMNamedNodeMap->getNamedItem() -- Retrieves a node specified by name

Описание

class DOMNamedNodeMap {

DOMNode getNamedItem ( string name )

}

Retrieves a node specified by its nodeName.

Список параметров

name

The nodeName of the node to retrieve.

Возвращаемые значения

A node (of any type) with the specified nodeName, or NULL if no node is found.

Смотрите также

DOMNamedNodeMap->getNamedItemNS()

Пред. | Начало | След.
DOMImplementation->hasFeature() | Уровень выше | DOMNamedNodeMap->getNamedItemNS()


DOMNamedNodeMap->getNamedItemNS()

(no version information, might be only in CVS)

DOMNamedNodeMap->getNamedItemNS() -- Retrieves a node specified by local name and namespace URI

Описание

class DOMNamedNodeMap {

DOMNode getNamedItemNS ( string namespaceURI, string localName )

}

Retrieves a node specified by localName and namespaceURI.

Список параметров

namespaceURI

The namespace URI of the node to retrieve.

localName

The local name of the node to retrieve.

Возвращаемые значения

A node (of any type) with the specified local name and namespace URI, or NULL if no node is found.

Смотрите также

DOMNamedNodeMap->getNamedItem()

Пред. | Начало | След.
DOMNamedNodeMap->getNamedItem() | Уровень выше | DOMNamedNodeMap->item()


DOMNamedNodeMap->item()

(no version information, might be only in CVS)

DOMNamedNodeMap->item() -- Retrieves a node specified by index

Описание

class DOMNamedNodeMap {

DOMNode item ( int index )

}

Retrieves a node specified by index within the DOMNamedNodeMap object.

Список параметров

index

Index into this map.

Возвращаемые значения

The node at the indexth position in the map, or NULL if that is not a valid index (greater than or equal to the number of nodes in this map).

Пред. | Начало | След.
DOMNamedNodeMap->getNamedItemNS() | Уровень выше | DOMNode->appendChild()


DOMNode->appendChild()

(no version information, might be only in CVS)

DOMNode->appendChild() -- Adds new child at the end of the children

Описание

class DOMNode {

DOMNode appendChild ( DOMNode newnode )

}

This functions appends a child to an existing list of children or creates a new list of children. The child can be created with e.g. DOMDocument->createElement(), DOMDocument->createTextNode() etc. or simply by using any other node.

Список параметров

newnode

The appended child.

Возвращаемые значения

The node added.

Исключения

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if this node is readonly or if the previous parent of the node being inserted is readonly.

DOM_HIERARCHY_REQUEST_ERR

Raised if this node is of a type that does not allow children of the type of the newnode node, or if the node to append is one of this node's ancestors or this node itself.

DOM_WRONG_DOCUMENT_ERR

Raised if newnode was created from a different document than the one that created this node.

Примеры

The following example will add a new element node to a fresh document.

Пример 1. Adding a child

<?php

$doc = new DOMDocument;

$node = $doc->createElement("para");
$newnode = $doc->appendChild($node);

echo $doc->saveXML();
?>

Смотрите также

DOMNode->removeChild()
DOMNode->replaceChild()

Пред. | Начало | След.
DOMNamedNodeMap->item() | Уровень выше | DOMNode->cloneNode()


DOMNode->cloneNode()

(no version information, might be only in CVS)

DOMNode->cloneNode() -- Clones a node

Описание

class DOMNode {

DOMNode cloneNode ( [bool deep] )

}

Creates a copy of the node.

Список параметров

deep

Indicates whether to copy all descendant nodes. This parameter is defaulted to FALSE.

Возвращаемые значения

The cloned node.

Пред. | Начало | След.
DOMNode->appendChild() | Уровень выше | DOMNode->hasAttributes()


DOMNode->hasAttributes()

(no version information, might be only in CVS)

DOMNode->hasAttributes() -- Checks if node has attributes

Описание

class DOMNode {

bool hasAttributes ( void )

}

This method checks if the node has attributes. The tested node have to be an XML_ELEMENT_NODE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

DOMNode->hasChildNodes()

Пред. | Начало | След.
DOMNode->cloneNode() | Уровень выше | DOMNode->hasChildNodes()


DOMNode->hasChildNodes()

(no version information, might be only in CVS)

DOMNode->hasChildNodes() -- Checks if node has children

Описание

class DOMNode {

bool hasChildNodes ( void )

}

This function checks if the node has children.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

DOMNode->hasAttributes()

Пред. | Начало | След.
DOMNode->hasAttributes() | Уровень выше | DOMNode->insertBefore()


DOMNode->insertBefore()

(no version information, might be only in CVS)

DOMNode->insertBefore() -- Adds a new child before a reference node

Описание

class DOMNode {

DOMNode insertBefore ( DOMNode newnode [, DOMNode refnode] )

}

This function inserts a new node right before the reference node. If you plan to do further modifications on the appended child you must use the returned node.

Список параметров

newnode

The new node.

refnode

The reference node. If not supplied, newnode is appended to the children.

Возвращаемые значения

The inserted node.

Исключения

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if this node is readonly or if the previous parent of the node being inserted is readonly.

DOM_HIERARCHY_REQUEST_ERR

Raised if this node is of a type that does not allow children of the type of the newnode node, or if the node to append is one of this node's ancestors or this node itself.

DOM_WRONG_DOCUMENT_ERR

Raised if newnode was created from a different document than the one that created this node.

DOM_NOT_FOUND

Raised if refnode is not a child of this node.

Пред. | Начало | След.
DOMNode->hasChildNodes() | Уровень выше | DOMNode->isSameNode()


DOMNode->isSameNode()

(no version information, might be only in CVS)

DOMNode->isSameNode() -- Indicates if two nodes are the same node

Описание

class DOMNode {

bool isSameNode ( DOMNode node )

}

This function indicates if two nodes are the same node. The comparison is not based on content

Список параметров

node

The compared node.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
DOMNode->insertBefore() | Уровень выше | DOMNode->isSupported()


DOMNode->isSupported()

(no version information, might be only in CVS)

DOMNode->isSupported() -- Checks if feature is supported for specified version

Описание

class DOMNode {

bool isSupported ( string feature, string version )

}

Checks if the asked feature is supported for the specified version.

Список параметров

feature

The feature to test. See the example of DOMImplementation->hasFeature() for a list of features.

version

The version number of the feature to test.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

DOMImplementation->hasFeature()

Пред. | Начало | След.
DOMNode->isSameNode() | Уровень выше | DOMNode->lookupNamespaceURI()


DOMNode->lookupNamespaceURI()

(no version information, might be only in CVS)

DOMNode->lookupNamespaceURI() -- Gets the namespace URI of the node based on the prefix

Описание

class DOMNode {

string lookupNamespaceURI ( string prefix )

}

Gets the namespace URI of the node based on the prefix.

Список параметров

prefix

The prefix of the namespace.

Возвращаемые значения

The namespace URI of the node.

Смотрите также

DOMNode->lookupPrefix()

Пред. | Начало | След.
DOMNode->isSupported() | Уровень выше | DOMNode->lookupPrefix()


DOMNode->lookupPrefix()

(no version information, might be only in CVS)

DOMNode->lookupPrefix() -- Gets the namespace prefix of the node based on the namespace URI

Описание

class DOMNode {

string lookupPrefix ( string namespaceURI )

}

Gets the namespace prefix of the node based on the namespace URI.

Список параметров

namespaceURI

The namespace URI.

Возвращаемые значения

The prefix of the namespace.

Смотрите также

DOMNode->lookupNamespaceURI()

Пред. | Начало | След.
DOMNode->lookupNamespaceURI() | Уровень выше | DOMNode->normalize()


DOMNode->normalize()

(no version information, might be only in CVS)

DOMNode->normalize() -- Normalizes the node

Описание

class DOMNode {

void normalize ( void )

}

Normalizes the node.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

DOMDocument->normalize()

Пред. | Начало | След.
DOMNode->lookupPrefix() | Уровень выше | DOMNode->removeChild()


DOMNode->removeChild()

(no version information, might be only in CVS)

DOMNode->removeChild() -- Removes child from list of children

Описание

class DOMNode {

DOMNode removeChild ( DOMNode oldnode )

}

This functions removes a child from a list of children.

Список параметров

oldnode

The removed child.

Возвращаемые значения

If the child could be removed the functions returns the old child.

Исключения

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if this node is readonly.

DOM_NOT_FOUND

Raised if oldnode is not a child of this node.

Примеры

The following example will delete the chapter element of our XML document.

Пример 1. Removing a child

<?php

$doc = new DOMDocument;
$doc->load('book.xml');

$book = $doc->documentElement;

// we retrieve the chapter and remove it from the book
$chapter = $book->getElementsByTagName('chapter')->item(0);
$oldchapter = $book->removeChild($chapter);

echo $doc->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
          "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<book id="listing">
 <title>My lists</title>

</book>

Смотрите также

DOMNode->appendChild()
DOMNode->replaceChild()

Пред. | Начало | След.
DOMNode->normalize() | Уровень выше | DOMNode->replaceChild()


DOMNode->replaceChild()

(no version information, might be only in CVS)

DOMNode->replaceChild() -- Replaces a child

Описание

class DOMNode {

DOMNode replaceChild ( DOMNode newnode, DOMNode oldnode )

}

This function replaces the child oldnode with the passed new node. If the new node is already a child it will not be added a second time. If the replacement succeeds the old node is returned.

Список параметров

newnode

The new node. It must be a member of the target document, i.e. created by one of the DOMDocument->createXXX() methods or imported in the document by DOMDocument->importNode().

oldnode

The old node.

Возвращаемые значения

The old node or FALSE if an error occur.

Исключения

DOM_NO_MODIFICATION_ALLOWED_ERR

Raised if this node is readonly or if the previous parent of the node being inserted is readonly.

DOM_HIERARCHY_REQUEST_ERR

Raised if this node is of a type that does not allow children of the type of the newnode node, or if the node to put in is one of this node's ancestors or this node itself.

DOM_WRONG_DOCUMENT_ERR

Raised if newnode was created from a different document than the one that created this node.

DOM_NOT_FOUND

Raised if oldnode is not a child of this node.

Смотрите также

DOMNode->appendChild()
DOMNode->removeChild()

Пред. | Начало | След.
DOMNode->removeChild() | Уровень выше | DOMNodelist->item()


DOMNodelist->item()

(no version information, might be only in CVS)

DOMNodelist->item() -- Retrieves a node specified by index

Описание

class DOMNodeList {

DOMNode item ( int index )

}

Retrieves a node specified by index within the DOMNodeList object.

Подсказка: If you need to know the number of nodes in the collection, use the length property of the DOMNodeList object.

Список параметров

index

Index of the node into the collection.

Возвращаемые значения

The node at the indexth position in the DOMNodeList, or NULL if that is not a valid index.

Примеры

Пример 1. Traversing all the entries of the table

<?php

$doc = new DOMDocument;
$doc->load('book.xml');

$items = $doc->getElementsByTagName('entry');

for ($i = 0; $i < $items->length; $i++) {
    echo $items->item($i)->nodeValue . "\n";
}

?>

Alternatively, you can use foreach, which is a much more convenient way:

<?php

foreach ($items as $item) {
    echo $item->nodeValue . "\n";
}

?>

Результат выполнения данного примера:

Title
Author
Language
ISBN
The Grapes of Wrath
John Steinbeck
en
0140186409
The Pearl
John Steinbeck
en
014017737X
Samarcande
Amine Maalouf
fr
2253051209

Пред. | Начало | След.
DOMNode->replaceChild() | Уровень выше | DOMProcessingInstruction->__construct()


DOMProcessingInstruction->__construct()

(no version information, might be only in CVS)

DOMProcessingInstruction->__construct() -- Creates a new DOMProcessingInstruction object

Описание

class DOMProcessingInstruction {

__construct ( string name [, string value] )

}

Creates a new DOMProcessingInstruction object. This object is read only. It may be appended to a document, but additional nodes may not be appended to this node until the node is associated with a document. To create a writeable node, use DOMDocument->createProcessingInstruction().

Список параметров

name

The tag name of the processing instruction.

value

The value of the processing instruction.

Примеры

Пример 1. Creating a new DOMProcessingInstruction

<?php

$dom = new DOMDocument('1.0', 'UTF-8');
$html = $dom->appendChild(new DOMElement('html'));
$body = $html->appendChild(new DOMElement('body'));
$pinode = new DOMProcessingInstruction('php', 'echo "Hello World"; ');
$body->appendChild($pinode);
echo $dom->saveXML();

?>

Результат выполнения данного примера:

<?xml version="1.0" encoding="UTF-8"?>
<html><body><?php echo "Hello World"; ?></body></html>

Смотрите также

DOMDocument->createProcessingInstruction()

Пред. | Начало | След.
DOMNodelist->item() | Уровень выше | DOMText->__construct()


DOMText->__construct()

(no version information, might be only in CVS)

DOMText->__construct() -- Creates a new DOMText object

Описание

class DOMText {

__construct ( [string value] )

}

Creates a new DOMText object.

Список параметров

value

The value of the text node. If not supplied an empty text node is created.

Примеры

Пример 1. Creating a new DOMText

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$text = $element->appendChild(new DOMText('root value'));
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root>root value</root> */

?>

Смотрите также

DOMDocument->createTextNode()

Пред. | Начало | След.
DOMProcessingInstruction->__construct() | Уровень выше | DOMText->isWhitespaceInElementContent()


DOMText->isWhitespaceInElementContent()

(no version information, might be only in CVS)

DOMText->isWhitespaceInElementContent() -- Indicates whether this text node contains whitespace

Описание

class DOMText {

bool isWhitespaceInElementContent ( void )

}

Indicates whether this text node contains whitespace. The text node is determined to contain whitespace in element content during the load of the document.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
DOMText->__construct() | Уровень выше | DOMText->splitText()


DOMText->splitText()

(no version information, might be only in CVS)

DOMText->splitText() -- Breaks this node into two nodes at the specified offset

Описание

class DOMText {

DOMText splitText ( int offset )

}

Breaks this node into two nodes at the specified offset, keeping both in the tree as siblings.

After being split, this node will contain all the content up to the offset. If the original node had a parent node, the new node is inserted as the next sibling of the original node. When the offset is equal to the length of this node, the new node has no data.

Список параметров

offset

The offset at which to split, starting from 0.

Возвращаемые значения

The new node of the same type, which contains all the content at and after the offset.

Пред. | Начало | След.
DOMText->isWhitespaceInElementContent() | Уровень выше | DOMXPath->__construct()


DOMXPath->__construct()

(no version information, might be only in CVS)

DOMXPath->__construct() -- Creates a new DOMXPath object

Описание

class DOMXPath {

__construct ( DOMDocument doc )

}

Creates a new DOMXPath object.

Список параметров

doc

The DOMDocument associated with the DOMXPath.

Пред. | Начало | След.
DOMText->splitText() | Уровень выше | DOMXPath->evaluate()


DOMXPath->evaluate()

(no version information, might be only in CVS)

DOMXPath->evaluate() -- Evaluates the given XPath expression and returns a typed result if possible.

Описание

class DOMXPath {

mixed evaluate ( string expression [, DOMNode contextnode] )

}

Executes the given XPath expression and returns a typed result if possible.

Список параметров

expression

The XPath expression to execute.

contextnode

The optional contextnode can be specified for doing relative XPath queries. By default, the queries are relative to the root element.

Возвращаемые значения

Returns a typed result if possible or a DOMNodeList containing all nodes matching the given XPath expression.

Примеры

Пример 1. Getting the count of all the english books

<?php

$doc = new DOMDocument;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

$tbody = $doc->getElementsByTagName('tbody')->item(0);

// our query is relative to the tbody node
$query = 'count(row/entry[. = "en"])';

$entries = $xpath->evaluate($query, $tbody);
echo "There are $entries english books\n";

?>

Результат выполнения данного примера:

There are 2 english books

Смотрите также

DOMXPath->query()

Пред. | Начало | След.
DOMXPath->__construct() | Уровень выше | DOMXPath->query()


DOMXPath->query()

(no version information, might be only in CVS)

DOMXPath->query() -- Evaluates the given XPath expression

Описание

class DOMXPath {

DOMNodeList query ( string expression [, DOMNode contextnode] )

}

Executes the given XPath expression.

Список параметров

expression

The XPath expression to execute.

contextnode

The optional contextnode can be specified for doing relative XPath queries. By default, the queries are relative to the root element.

Возвращаемые значения

Returns a DOMNodeList containing all nodes matching the given XPath expression. Any expression which do not return nodes will return an empty DOMNodeList.

Примеры

Пример 1. Getting all the english books

<?php

$doc = new DOMDocument;

// We don't want to bother with white spaces
$doc->preserveWhiteSpace = false;

$doc->Load('book.xml');

$xpath = new DOMXPath($doc);

// We starts from the root element
$query = '//book/chapter/para/informaltable/tgroup/tbody/row/entry[. = "en"]';

$entries = $xpath->query($query);

foreach ($entries as $entry) {
    echo "Found {$entry->previousSibling->previousSibling->nodeValue}," .
         " by {$entry->previousSibling->nodeValue}\n";
}
?>

Результат выполнения данного примера:

Found The Grapes of Wrath, by John Steinbeck
Found The Pearl, by John Steinbeck

We can also use the contextnode parameter to shorten our expression:

<?php

$doc = new DOMDocument;
$doc->preserveWhiteSpace = false;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

$tbody = $doc->getElementsByTagName('tbody')->item(0);

// our query is relative to the tbody node
$query = 'row/entry[. = "en"]';

$entries = $xpath->query($query, $tbody);

foreach ($entries as $entry) {
    echo "Found {$entry->previousSibling->previousSibling->nodeValue}," .
         " by {$entry->previousSibling->nodeValue}\n";
}
?>

Смотрите также

DOMXPath->evaluate()

Пред. | Начало | След.
DOMXPath->evaluate() | Уровень выше | DOMXPath->registerNamespace()


DOMXPath->registerNamespace()

(no version information, might be only in CVS)

DOMXPath->registerNamespace() -- Registers the namespace with the DOMXPath object

Описание

class DOMXPath {

bool registerNamespace ( string prefix, string namespaceURI )

}

Registers the namespaceURI and prefix with the DOMXPath object.

Список параметров

prefix

The prefix.

namespaceURI

The URI of the namespace.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
DOMXPath->query() | Уровень выше | dom_import_simplexml


dom_import_simplexml

(PHP 5)

dom_import_simplexml -- Gets a DOMElement object from a SimpleXMLElement object

Описание

DOMElement dom_import_simplexml ( SimpleXMLElement node )

This function takes the node node of class SimpleXML and makes it into a DOMElement node. This new object can then be used as a native DOMElement node.

Список параметров

node

The SimpleXMLElement node.

Возвращаемые значения

The DOMElement node added or FALSE if any errors occur.

Примеры

Пример 1. Import SimpleXML into DOM with dom_import_simplexml()

<?php

$sxe = simplexml_load_string('<books><book><title>blah</title></book></books>');

if ($sxe === false) {
    echo 'Error while parsing the document';
    exit;
}

$dom_sxe = dom_import_simplexml($sxe);
if (!$dom_sxe) {
    echo 'Error while converting XML';
    exit;
}

$dom = new DOMDocument('1.0');
$dom_sxe = $dom->importNode($dom_sxe, true);
$dom_sxe = $dom->appendChild($dom_sxe);

echo $dom->saveXML();

?>

Смотрите также

simplexml_import_dom()

Пред. | Начало | След.
DOMXPath->registerNamespace() | Уровень выше | DOM XML Functions


DOM XML Functions

Руководство по PHP
Пред. След.

XXXI. DOM XML Functions

Введение

The DOM XML extension has been overhauled in PHP 4.3.0 to better comply with the DOM standard. The extension still contains many old functions, but they should no longer be used. In particular, functions that are not object-oriented should be avoided.

The extension allows you to operate on an XML document with the DOM API. It also provides a function domxml_xmltree() to turn the complete XML document into a tree of PHP objects. Currently, this tree should be considered read-only - you can modify it, but this would not make any sense since DomDocument_dump_mem() cannot be applied to it. Therefore, if you want to read an XML file and write a modified version, use DomDocument_create_element(), DomDocument_create_text_node(), set_attribute(), etc. and finally the DomDocument_dump_mem() function.

Замечание: This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 5.0.0.

Замечание: This extension is no longer marked experimental. It will, however, never be released with PHP 5, and will only be distributed with PHP 4. If you need DOM XML support with PHP 5 you can use the DOM extension. This domxml extension is not compatible with the DOM extension.

Требования

This extension makes use of the GNOME XML library. Download and install this library. You will need at least libxml-2.4.14. To use DOM XSLT features you can use the libxslt library and EXSLT enhancements from http://www.exslt.org/. Download and install these libraries if you plan to use (enhanced) XSLT features. You will need at least libxslt-1.0.18.

Установка

Это расширение PECL не поставляется вместе с PHP. Дополнительная информация, такая как новый версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, могут быть найдены здесь: http://pecl.php.net/package/domxml.

В PHP 4 исходные файлы этого расширения PECL могут быть найдены в директории ext/ внутри исходных файлов PHP или по ссылке PECL выше. This extension is only available if PHP was configured with --with-dom[=DIR]. Add --with-dom-xslt[=DIR] to include DOM XSLT support. DIR is the libxslt install directory. Add --with-dom-exslt[=DIR] to include DOM EXSLT support, where DIR is the libexslt install directory.

Windows users will enable php_domxml.dll inside of php.ini in order to use these functions. В PHP 4 этот DLL находится в директории extensions/ внутри директории бинарного дистрибутива PHP для Windows. Вы можете скачать DLL этого расширения PECL со страницы PHP Downloads или http://snaps.php.net/. Also, there is one additional DLL that must be made available to your system's PATH in order for this extension to work. In PHP 4 this is in the dlls/ directory. It's name: For PHP <= 4.2.0, it's libxml2.dll. For PHP >= 4.3.0, it's iconv.dll. And as of PHP 5.0.0, iconv is compiled into your Windows PHP binaries by default so no extra DLL is needed.

Deprecated functions

There are quite a few functions that do not fit into the DOM standard and should no longer be used. These functions are listed in the following table. The function DomNode_append_child() has changed its behaviour. It now adds a child and not a sibling. If this breaks your application, use the non-DOM function DomNode_append_sibling().

Таблица 1. Deprecated functions and their replacements

Old function | New function
xmldoc | domxml_open_mem()
xmldocfile | domxml_open_file()
domxml_new_xmldoc | domxml_new_doc()
domxml_dump_mem | DomDocument_dump_mem()
domxml_dump_mem_file | DomDocument_dump_file()
DomDocument_dump_mem_file | DomDocument_dump_file()
DomDocument_add_root | DomDocument_create_element() followed by DomNode_append_child()
DomDocument_dtd | DomDocument_doctype()
DomDocument_root | DomDocument_document_element()
DomDocument_children | DomNode_child_nodes()
DomDocument_imported_node | No replacement.
DomNode_add_child | Create a new node with e.g. DomDocument_create_element() and add it with DomNode_append_child().
DomNode_children | DomNode_child_nodes()
DomNode_parent | DomNode_parent_node()
DomNode_new_child | Create a new node with e.g. DomDocument_create_element() and add it with DomNode_append_child().
DomNode_set_content | Create a new node with e.g. DomDocument_create_text_node() and add it with DomNode_append_child().
DomNode_get_content | Content is just a text node and can be accessed with DomNode_child_nodes().
DomNode_set_content | Content is just a text node and can be added with DomNode_append_child().

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

Таблица 2. XML constants

Constant | Value | Description
XML_ELEMENT_NODE (integer) | 1 | Node is an element
XML_ATTRIBUTE_NODE (integer) | 2 | Node is an attribute
XML_TEXT_NODE (integer) | 3 | Node is a piece of text
XML_CDATA_SECTION_NODE (integer) | 4 |
XML_ENTITY_REF_NODE (integer) | 5 |
XML_ENTITY_NODE (integer) | 6 | Node is an entity like &nbsp;
XML_PI_NODE (integer) | 7 | Node is a processing instruction
XML_COMMENT_NODE (integer) | 8 | Node is a comment
XML_DOCUMENT_NODE (integer) | 9 | Node is a document
XML_DOCUMENT_TYPE_NODE (integer) | 10 |
XML_DOCUMENT_FRAG_NODE (integer) | 11 |
XML_NOTATION_NODE (integer) | 12 |
XML_GLOBAL_NAMESPACE (integer) | 1 |
XML_LOCAL_NAMESPACE (integer) | 2 |
XML_HTML_DOCUMENT_NODE (integer) |  |
XML_DTD_NODE (integer) |  |
XML_ELEMENT_DECL_NODE (integer) |  |
XML_ATTRIBUTE_DECL_NODE (integer) |  |
XML_ENTITY_DECL_NODE (integer) |  |
XML_NAMESPACE_DECL_NODE (integer) |  |
XML_ATTRIBUTE_CDATA (integer) |  |
XML_ATTRIBUTE_ID (integer) |  |
XML_ATTRIBUTE_IDREF (integer) |  |
XML_ATTRIBUTE_IDREFS (integer) |  |
XML_ATTRIBUTE_ENTITY (integer) |  |
XML_ATTRIBUTE_NMTOKEN (integer) |  |
XML_ATTRIBUTE_NMTOKENS (integer) |  |
XML_ATTRIBUTE_ENUMERATION (integer) |  |
XML_ATTRIBUTE_NOTATION (integer) |  |
XPATH_UNDEFINED (integer) |  |
XPATH_NODESET (integer) |  |
XPATH_BOOLEAN (integer) |  |
XPATH_NUMBER (integer) |  |
XPATH_STRING (integer) |  |
XPATH_POINT (integer) |  |
XPATH_RANGE (integer) |  |
XPATH_LOCATIONSET (integer) |  |
XPATH_USERS (integer) |  |
XPATH_NUMBER (integer) |  |

Classes

The API of the module follows the DOM Level 2 standard as closely as possible. Consequently, the API is fully object-oriented. It is a good idea to have the DOM standard available when using this module. Though the API is object-oriented, there are many functions which can be called in a non-object-oriented way by passing the object to operate on as the first argument. These functions are mainly to retain compatibility to older versions of the extension, and should not be used when creating new scripts.

This API differs from the official DOM API in two ways. First, all class attributes are implemented as functions with the same name. Secondly, the function names follow the PHP naming convention. This means that a DOM function lastChild() will be written as last_child().

This module defines a number of classes, which are listed - including their method - in the following tables. Classes with an equivalent in the DOM standard are named DOMxxx.

Таблица 3. List of classes

Class name | Parent classes
DomAttribute | DomNode
DomCData | DomNode
DomComment | DomCData : DomNode
DomDocument | DomNode
DomDocumentType | DomNode
DomElement | DomNode
DomEntity | DomNode
DomEntityReference | DomNode
DomProcessingInstruction | DomNode
DomText | DomCData : DomNode
Parser | Currently still called DomParser
XPathContext |

Таблица 4. DomDocument class (DomDocument : DomNode)

Method name | Function name | Remark
doctype | DomDocument_doctype() |
document_element | DomDocument_document_element() |
create_element | DomDocument_create_element() |
create_text_node | DomDocument_create_text_node() |
create_comment | DomDocument_create_comment() |
create_cdata_section | DomDocument_create_cdata_section() |
create_processing_instruction | DomDocument_create_processing_instruction() |
create_attribute | DomDocument_create_attribute() |
create_entity_reference | DomDocument_create_entity_reference() |
get_elements_by_tagname | DomDocument_get_elements_by_tagname() |
get_element_by_id | DomDocument_get_element_by_id() |
dump_mem | DomDocument_dump_mem() | not DOM standard
dump_file | DomDocument_dump_file() | not DOM standard
html_dump_mem | DomDocument_html_dump_mem() | not DOM standard
xpath_init | xpath_init | not DOM standard
xpath_new_context | xpath_new_context | not DOM standard
xptr_new_context | xptr_new_context | not DOM standard

Таблица 5. DomElement class (DomElement : DomNode)

Method name | Function name | Remark
tagname | DomElement_tagname() |
get_attribute | DomElement_get_attribute() |
set_attribute | DomElement_set_attribute() |
remove_attribute | DomElement_remove_attribute() |
get_attribute_node | DomElement_get_attribute_node() |
get_elements_by_tagname | DomElement_get_elements_by_tagname() |
has_attribute | DomElement_has_attribute() |

Таблица 6. DomNode class

Method name | Remark
DomNode_node_name() |
DomNode_node_value() |
DomNode_node_type() |
DomNode_last_child() |
DomNode_first_child() |
DomNode_child_nodes() |
DomNode_previous_sibling() |
DomNode_next_sibling() |
DomNode_parent_node() |
DomNode_owner_document() |
DomNode_insert_before() |
DomNode_append_child() |
DomNode_append_sibling() | Not in DOM standard. This function emulates the former behaviour of DomNode_append_child().
DomNode_remove_child() |
DomNode_has_child_nodes() |
DomNode_has_attributes() |
DomNode_clone_node() |
DomNode_attributes() |
DomNode_unlink_node() | Not in DOM standard
DomNode_replace_node() | Not in DOM standard
DomNode_set_content() | Not in DOM standard, deprecated
DomNode_get_content() | Not in DOM standard, deprecated
DomNode_dump_node() | Not in DOM standard
DomNode_is_blank_node() | Not in DOM standard

Таблица 7. DomAttribute class (DomAttribute : DomNode)

Method name |  | Remark
name | DomAttribute_name() |
value | DomAttribute_value() |
specified | DomAttribute_specified() |

Таблица 8. DomProcessingInstruction class (DomProcessingInstruction : DomNode)

Method name | Function name | Remark
target | DomProcessingInstruction_target() |
data | DomProcessingInstruction_data() |

Таблица 9. Parser class

Method name | Function name | Remark
add_chunk | Parser_add_chunk() |
end | Parser_end() |

Таблица 10. XPathContext class

Method name | Function name | Remark
eval | XPathContext_eval() |
eval_expression | XPathContext_eval_expression() |
register_ns | XPathContext_register_ns() |

Таблица 11. DomDocumentType class (DomDocumentType : DomNode)

Method name | Function name | Remark
name | DomDocumentType_name() |
entities | DomDocumentType_entities() |
notations | DomDocumentType_notations() |
public_id | DomDocumentType_public_id() |
system_id | DomDocumentType_system_id() |
internal_subset | DomDocumentType_internal_subset() |

The classes DomDtd is derived from DomNode. DomComment is derived from DomCData.

Примеры

Many examples in this reference require an XML string. Instead of repeating this string in every example, it will be put into a file which will be included by each example. This include file is shown in the following example section. Alternatively, you could create an XML document and read it with DomDocument_open_file().

Пример 1. Include file example.inc with XML string

<?php
$xmlstr = "<?xml version='1.0' standalone='yes'?>
<!DOCTYPE chapter SYSTEM '/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd'
[ <!ENTITY sp \"spanish\">
]>
<!-- lsfj  -->
<chapter language='en'><title language='en'>Title</title>
 <para language='ge'>
  &sp;
  <!-- comment -->
  <informaltable ID='findme' language='&sp;'>
   <tgroup cols='3'>
    <tbody>
     <row><entry>a1</entry><entry
morerows='1'>b1</entry><entry>c1</entry></row>
<row><entry>a2</entry><entry>c2</entry></row>
     <row><entry>a3</entry><entry>b3</entry><entry>c3</entry></row>
    </tbody>
   </tgroup>
  </informaltable>
 </para>
</chapter>";
?>

Содержание
DomAttribute->name -- Returns the name of attribute
DomAttribute->set_value -- Sets the value of an attribute
DomAttribute->specified -- Checks if attribute is specified
DomAttribute->value -- Returns value of attribute
DomDocument->add_root -- Adds a root node [deprecated]
DomDocument->create_attribute -- Create new attribute
DomDocument->create_cdata_section -- Create new cdata node
DomDocument->create_comment -- Create new comment node
DomDocument->create_element_ns -- Create new element node with an associated namespace
DomDocument->create_element -- Create new element node
DomDocument->create_entity_reference -- Create an entity reference
DomDocument->create_processing_instruction -- Creates new PI node
DomDocument->create_text_node -- Create new text node
DomDocument->doctype -- Returns the document type
DomDocument->document_element -- Returns root element node
DomDocument->dump_file -- Dumps the internal XML tree back into a file
DomDocument->dump_mem -- Dumps the internal XML tree back into a string
DomDocument->get_element_by_id -- Searches for an element with a certain id
DomDocument->get_elements_by_tagname -- Returns array with nodes with given tagname in document or empty array, if not found
DomDocument->html_dump_mem -- Dumps the internal XML tree back into a string as HTML
DomDocument->xinclude -- Substitutes XIncludes in a DomDocument Object
DomDocumentType->entities() -- Returns list of entities
DomDocumentType->internal_subset() -- Returns internal subset
DomDocumentType->name() -- Returns name of document type
DomDocumentType->notations() -- Returns list of notations
DomDocumentType->public_id() -- Returns public id of document type
DomDocumentType->system_id() -- Returns the system id of document type
DomElement->get_attribute_node() -- Returns the node of the given attribute
DomElement->get_attribute() -- Returns the value of the given attribute
DomElement->get_elements_by_tagname() -- Gets elements by tagname
DomElement->has_attribute() -- Checks to see if an attribute exists in the current node
DomElement->remove_attribute() -- Removes attribute
DomElement->set_attribute() -- Sets the value of an attribute
DomElement->tagname() -- Returns the name of the current element
DomNode->add_namespace -- Adds a namespace declaration to a node
DomNode->append_child -- Adds a new child at the end of the children
DomNode->append_sibling -- Adds new sibling to a node
DomNode->attributes -- Returns list of attributes
DomNode->child_nodes -- Returns children of node
DomNode->clone_node -- Clones a node
DomNode->dump_node -- Dumps a single node
DomNode->first_child -- Returns first child of node
DomNode->get_content -- Gets content of node
DomNode->has_attributes -- Checks if node has attributes
DomNode->has_child_nodes -- Checks if node has children
DomNode->insert_before -- Inserts new node as child
DomNode->is_blank_node -- Checks if node is blank
DomNode->last_child -- Returns last child of node
DomNode->next_sibling -- Returns the next sibling of node
DomNode->node_name -- Returns name of node
DomNode->node_type -- Returns type of node
DomNode->node_value -- Returns value of a node
DomNode->owner_document -- Returns the document this node belongs to
DomNode->parent_node -- Returns the parent of the node
DomNode->prefix -- Returns name space prefix of node
DomNode->previous_sibling -- Returns the previous sibling of node
DomNode->remove_child -- Removes child from list of children
DomNode->replace_child -- Replaces a child
DomNode->replace_node -- Replaces node
DomNode->set_content -- Sets content of node
DomNode->set_name -- Sets name of node
DomNode->set_namespace -- Sets namespace of a node
DomNode->unlink_node -- Deletes node
DomProcessingInstruction->data -- Returns the data of ProcessingInstruction node
DomProcessingInstruction->target -- Returns the target of a ProcessingInstruction node
DomXsltStylesheet->process() -- Applies the XSLT-Transformation on a DomDocument Object
DomXsltStylesheet->result_dump_file() -- Dumps the result from a XSLT-Transformation into a file
DomXsltStylesheet->result_dump_mem() -- Dumps the result from a XSLT-Transformation back into a string
domxml_new_doc -- Creates new empty XML document
domxml_open_file -- Creates a DOM object from an XML file
domxml_open_mem -- Creates a DOM object of an XML document
domxml_version -- Gets the XML library version
domxml_xmltree -- Creates a tree of PHP objects from an XML document
domxml_xslt_stylesheet_doc -- Creates a DomXsltStylesheet Object from a DomDocument Object
domxml_xslt_stylesheet_file -- Creates a DomXsltStylesheet Object from an XSL document in a file
domxml_xslt_stylesheet -- Creates a DomXsltStylesheet object from an XSL document in a string
domxml_xslt_version -- Gets the XSLT library version
xpath_eval_expression -- Evaluates the XPath Location Path in the given string
xpath_eval -- Evaluates the XPath Location Path in the given string
xpath_new_context -- Creates new xpath context
xpath_register_ns_auto -- Register the given namespace in the passed XPath context
xpath_register_ns -- Register the given namespace in the passed XPath context
xptr_eval -- Evaluate the XPtr Location Path in the given string
xptr_new_context -- Create new XPath Context

Пред. | Начало | След.
dom_import_simplexml | Уровень выше | DomAttribute->name


DomAttribute->name

(no version information, might be only in CVS)

DomAttribute->name -- Returns the name of attribute

Описание

class DomAttribute {

string name ( void )

}

Gets the name of the attribute.

Возвращаемые значения

Returns the name of the attribute.

Migrating to PHP 5

Use the name property of DOMAttr.

Смотрите также

DomAttribute->value for an example

Пред. | Начало | След.
DOM XML Functions | Уровень выше | DomAttribute->set_value


DomAttribute->specified

(no version information, might be only in CVS)

DomAttribute->specified -- Checks if attribute is specified

Описание

class DomAttribute {

bool specified ( void )

}

Checks if the attribute was explicitly given a value in the original document.

Замечание: This method is not implemented yet.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

The definition of specified in the DOM Recommendations

Пред. | Начало | След.
DomAttribute->set_value | Уровень выше | DomAttribute->value


DomAttribute->value

(no version information, might be only in CVS)

DomAttribute->value -- Returns value of attribute

Описание

class DomAttribute {

string value ( void )

}

This function returns the value of the attribute.

Примеры

Пример 1. Getting all the attributes of a node

<?php

include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
     echo "Error while parsing the document\n";
     exit;
}

$root = $dom->document_element();
$attrs = $root->attributes();

echo 'Attributes of ' . $root->node_name() . "\n";
foreach ($attrs as $attribute) {
     echo ' - ' . $attribute->name . ' : ' . $attribute->value . "\n";
}

?>

Результат выполнения данного примера:

Attributes of chapter
 - language : en

Возвращаемые значения

Returns the value of the attribute.

Migrating to PHP 5

Use the value property of DOMAttr.

Смотрите также

DomAttribute->set_value
DomAttribute->name

Пред. | Начало | След.
DomAttribute->specified | Уровень выше | DomDocument->add_root


DomDocument->add_root

(no version information, might be only in CVS)

DomDocument->add_root -- Adds a root node [deprecated]

Описание

domelement DomDocument->add_root ( string name )

Adds a root element node to a dom document and returns the new node. The element name is given in the passed parameter.

Пример 1. Creating a simple HTML document header

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->add_root("html");
$head = $root->new_child("head", "");
$head->new_child("title", "Hier der Titel");
echo htmlentities($doc->dump_mem());
?>

Пред. | Начало | След.
DomAttribute->value | Уровень выше | DomDocument->create_attribute


DomDocument->create_attribute

(no version information, might be only in CVS)

DomDocument->create_attribute -- Create new attribute

Описание

domattribute DomDocument->create_attribute ( string name, string value )

This function returns a new instance of class DomAttribute. The name of the attribute is the value of the first parameter. The value of the attribute is the value of the second parameter. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, к примеру функцией domnode_append_child().

The return value is FALSE if an error occurred.

See also domnode_append_child(),
domdocument_create_element(),
domdocument_create_text(),
domdocument_create_cdata_section(),
domdocument_create_processing_instruction(),
domdocument_create_entity_reference(), and
domnode_insert_before().

Пред. | Начало | След.
DomDocument->add_root | Уровень выше | DomDocument->create_cdata_section


DomDocument->create_cdata_section

(no version information, might be only in CVS)

DomDocument->create_cdata_section -- Create new cdata node

Описание

domcdata DomDocument->create_cdata_section ( string content )

This function returns a new instance of class DomCData. The content of the cdata is the value of the passed parameter. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, к примеру функцией domnode_append_child().

The return value is FALSE if an error occurred.

See also domnode_append_child(),
domdocument_create_element(),
domdocument_create_text(),
domdocument_create_attribute(),
domdocument_create_processing_instruction(),
domdocument_create_entity_reference(), and
domnode_insert_before().

Пред. | Начало | След.
DomDocument->create_attribute | Уровень выше | DomDocument->create_comment


DomDocument->create_comment

(no version information, might be only in CVS)

DomDocument->create_comment -- Create new comment node

Описание

domcomment DomDocument->create_comment ( string content )

This function returns a new instance of class DomComment. The content of the comment is the value of the passed parameter. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, к примеру функцией domnode_append_child().

The return value is FALSE if an error occurred.

See also domnode_append_child(),
domdocument_create_element(),
domdocument_create_text(),
domdocument_create_attribute(),
domdocument_create_processing_instruction(),
domdocument_create_entity_reference(), and
domnode_insert_before().

Пред. | Начало | След.
DomDocument->create_cdata_section | Уровень выше | DomDocument->create_element_ns


DomDocument->create_element_ns

(no version information, might be only in CVS)

DomDocument->create_element_ns -- Create new element node with an associated namespace

Описание

domelement DomDocument->create_element_ns ( string uri, string name [, string prefix] )

This function returns a new instance of class DomElement. The tag name of the element is the value of the passed parameter name. The URI of the namespace is the value of the passed parameter uri. If there is already a namespace declaration with the same uri in the root-node of the document, the prefix of this is taken, otherwise it will take the one provided in the optional parameter prefix or generate a random one. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, к примеру функцией domnode_append_child().

The return value is FALSE if an error occurred.

See also domdocument_create_element_ns(),
domnode_add_namespace(),
domnode_set_namespace(),
domnode_append_child(),
domdocument_create_text(),
domdocument_create_comment(),
domdocument_create_attribute(),
domdocument_create_processing_instruction(),
domdocument_create_entity_reference(), and
domnode_insert_before().

Пред. | Начало | След.
DomDocument->create_comment | Уровень выше | DomDocument->create_element


DomDocument->create_element

(no version information, might be only in CVS)

DomDocument->create_element -- Create new element node

Описание

domelement DomDocument->create_element ( string name )

This function returns a new instance of class DomElement. The tag name of the element is the value of the passed parameter. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, к примеру функцией domnode_append_child().

The return value is FALSE if an error occurred.

See also domdocument_create_element_ns(),
domnode_append_child(),
domdocument_create_text(),
domdocument_create_comment(),
domdocument_create_attribute(),
domdocument_create_processing_instruction(),
domdocument_create_entity_reference(), and
domnode_insert_before().

Пред. | Начало | След.
DomDocument->create_element_ns | Уровень выше | DomDocument->create_entity_reference


DomDocument->create_entity_reference

(no version information, might be only in CVS)

DomDocument->create_entity_reference -- Create an entity reference

Описание

domentityreference DomDocument->create_entity_reference ( string content )

This function returns a new instance of class DomEntityReference. The content of the entity reference is the value of the passed parameter. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, к примеру функцией domnode_append_child().

The return value is FALSE if an error occurred.

See also domnode_append_child(),
domdocument_create_element(),
domdocument_create_text(),
domdocument_create_cdata_section(),
domdocument_create_processing_instruction(),
domdocument_create_attribute(), and
domnode_insert_before().

Пред. | Начало | След.
DomDocument->create_element | Уровень выше | DomDocument->create_processing_instruction


DomDocument->create_processing_instruction

(no version information, might be only in CVS)

DomDocument->create_processing_instruction -- Creates new PI node

Описание

domprocessinginstruction DomDocument->create_processing_instruction ( string content )

This function returns a new instance of class DomCData. The content of the pi is the value of the passed parameter. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, к примеру функцией domnode_append_child().

The return value is FALSE if an error occurred.

See also domnode_append_child(),
domdocument_create_element(),
domdocument_create_text(),
domdocument_create_cdata_section(),
domdocument_create_attribute(),
domdocument_create_entity_reference(), and
domnode_insert_before().

Пред. | Начало | След.
DomDocument->create_entity_reference | Уровень выше | DomDocument->create_text_node


DomDocument->create_text_node

(no version information, might be only in CVS)

DomDocument->create_text_node -- Create new text node

Описание

domtext DomDocument->create_text_node ( string content )

This function returns a new instance of class DomText. The content of the text is the value of the passed parameter. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, к примеру функцией domnode_append_child().

The return value is FALSE if an error occurred.

See also domnode_append_child(),
domdocument_create_element(),
domdocument_create_comment(),
domdocument_create_text(),
domdocument_create_attribute(),
domdocument_create_processing_instruction(),
domdocument_create_entity_reference(), and
domnode_insert_before().

Пред. | Начало | След.
DomDocument->create_processing_instruction | Уровень выше | DomDocument->doctype


DomDocument->doctype

(no version information, might be only in CVS)

DomDocument->doctype -- Returns the document type

Описание

domdocumenttype DomDocument->doctype ( void )

This function returns an object of class DomDocumentType. In versions of PHP before 4.3 this has been the class Dtd, but the DOM Standard does not know such a class.

See also the methods of class DomDocumentType.

Пред. | Начало | След.
DomDocument->create_text_node | Уровень выше | DomDocument->document_element


DomDocument->document_element

(no version information, might be only in CVS)

DomDocument->document_element -- Returns root element node

Описание

domelement DomDocument->document_element ( void )

This function returns the root element node of a document.

The following example returns just the element with name CHAPTER and prints it. The other node -- the comment -- is not returned.

Пример 1. Retrieving root element

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();
print_r($root);
?>

Результат выполнения данного примера:

domelement Object
(
    [type] => 1
    [tagname] => chapter
    [0] => 6
    [1] => 137960648
)

Пред. | Начало | След.
DomDocument->doctype | Уровень выше | DomDocument->dump_file


DomDocument->dump_file

(no version information, might be only in CVS)

DomDocument->dump_file -- Dumps the internal XML tree back into a file

Описание

string DomDocument->dump_file ( string filename [, bool compressionmode [, bool format]] )

Creates an XML document from the dom representation. This function usually is called after building a new dom document from scratch as in the example below. The format specifies whether the output should be neatly formatted, or not. The first parameter specifies the name of the filename and the second parameter, whether it should be compressed or not.

Пример 1. Creating a simple HTML document header

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->create_element("HTML");
$root = $doc->append_child($root);
$head = $doc->create_element("HEAD");
$head = $root->append_child($head);
$title = $doc->create_element("TITLE");
$title = $head->append_child($title);
$text = $doc->create_text_node("This is the title");
$text = $title->append_child($text);
$doc->dump_file("/tmp/test.xml", false, true);
?>

See also domdocument_dump_mem(), and domdocument_html_dump_mem().

Пред. | Начало | След.
DomDocument->document_element | Уровень выше | DomDocument->dump_mem


DomDocument->dump_mem

(no version information, might be only in CVS)

DomDocument->dump_mem -- Dumps the internal XML tree back into a string

Описание

string DomDocument->dump_mem ( [bool format [, string encoding]] )

Creates an XML document from the dom representation. This function usually is called after building a new dom document from scratch as in the example below. The format specifies whether the output should be neatly formatted, or not.

Пример 1. Creating a simple HTML document header

<?php
$doc = domxml_new_doc("1.0");
$root = $doc->create_element("HTML");
$root = $doc->append_child($root);
$head = $doc->create_element("HEAD");
$head = $root->append_child($head);
$title = $doc->create_element("TITLE");
$title = $head->append_child($title);
$text = $doc->create_text_node("This is the title");
$text = $title->append_child($text);
echo "<PRE>";
echo htmlentities($doc->dump_mem(true));
echo "</PRE>";
?>

Замечание: The first parameter was added in PHP 4.3.0.

See also domdocument_dump_file(), and domdocument_html_dump_mem().

Пред. | Начало | След.
DomDocument->dump_file | Уровень выше | DomDocument->get_element_by_id


DomDocument->get_element_by_id

(no version information, might be only in CVS)

DomDocument->get_element_by_id -- Searches for an element with a certain id

Описание

domelement DomDocument->get_element_by_id ( string id )

This function is similar to domdocument_get_elements_by_tagname() but searches for an element with a given id. According to the DOM standard this requires a DTD which defines the attribute ID to be of type ID, though the current implementation simply does an xpath search for "//*[@ID = '%s']". This does not comply to the DOM standard which requires to return null if it is not known which attribute is of type id. This behaviour is likely to be fixed, so do not rely on the current behaviour.

See also domdocument_get_elements_by_tagname()

Пред. | Начало | След.
DomDocument->dump_mem | Уровень выше | DomDocument->get_elements_by_tagname


DomDocument->get_elements_by_tagname

(no version information, might be only in CVS)

DomDocument->get_elements_by_tagname -- Returns array with nodes with given tagname in document or empty array, if not found

Описание

array DomDocument->get_elements_by_tagname ( string name )

See also domdocument_add_root()

Пред. | Начало | След.
DomDocument->get_element_by_id | Уровень выше | DomDocument->html_dump_mem


DomDocument->html_dump_mem

(no version information, might be only in CVS)

DomDocument->html_dump_mem -- Dumps the internal XML tree back into a string as HTML

Описание

string DomDocument->html_dump_mem ( void )

Creates an HTML document from the dom representation. This function usually is called after building a new dom document from scratch as in the example below.

Пример 1. Creating a simple HTML document header

<?php

// Creates the document
$doc = domxml_new_doc("1.0");

$root = $doc->create_element("html");
$root = $doc->append_child($root);

$head = $doc->create_element("head");
$head = $root->append_child($head);

$title = $doc->create_element("title");
$title = $head->append_child($title);

$text = $doc->create_text_node("This is the title");
$text = $title->append_child($text);

echo $doc->html_dump_mem();
?>

Результат выполнения данного примера:

<html><head><title>This is the title</title></head></html>

See also domdocument_dump_file(), and domdocument_html_dump_mem().

Пред. | Начало | След.
DomDocument->get_elements_by_tagname | Уровень выше | DomDocument->xinclude


DomDocument->xinclude

(no version information, might be only in CVS)

DomDocument->xinclude -- Substitutes XIncludes in a DomDocument Object

Описание

int DomDocument->xinclude ( void )

This function substitutes XIncludes in a DomDocument object.

Пример 1. Substituting Xincludes

<?php

// include.xml contains :
// <child>test</child>

$xml = '<?xml version="1.0"?>
<root xmlns:xi="http://www.w3.org/2001/XInclude">
  <xi:include href="include.xml">
    <xi:fallback>
      <error>xinclude: include.xml not found</error>
    </xi:fallback>
  </xi:include>
</root>';

$domxml = domxml_open_mem($xml);
$domxml->xinclude();

echo $domxml->dump_mem();

?>

Результат выполнения данного примера:

<?xml version="1.0"?>
<root xmlns:xi="http://www.w3.org/2001/XInclude">
  <child>test</child>
</root>

If include.xml doesn't exist, you'll see:

<?xml version="1.0"?>
<root xmlns:xi="http://www.w3.org/2001/XInclude">
  <error>xinclude:dom.xml not found</error>
</root>

Пред. | Начало | След.
DomDocument->html_dump_mem | Уровень выше | DomDocumentType->entities()


DomDocumentType->entities()

(no version information, might be only in CVS)

DomDocumentType->entities() -- Returns list of entities

Описание

class DomDocumentType {

array entities ( void )

}

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Migrating to PHP 5

Use the entities property of the DOMDocumentType object.

Пред. | Начало | След.
DomDocument->xinclude | Уровень выше | DomDocumentType->internal_subset()


DomDocumentType->internal_subset()

(no version information, might be only in CVS)

DomDocumentType->internal_subset() -- Returns internal subset

Описание

class DomDocumentType {

bool internal_subset ( void )

}

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Migrating to PHP 5

Use the internalSubset property of the DOMDocumentType object.

Пред. | Начало | След.
DomDocumentType->entities() | Уровень выше | DomDocumentType->name()


DomDocumentType->name()

(no version information, might be only in CVS)

DomDocumentType->name() -- Returns name of document type

Описание

class DomDocumentType {

string name ( void )

}

This function returns the name of the document type.

Возвращаемые значения

Returns the name of the DomDocumentType, as a string.

Примеры

Пример 1. Getting the document type's name

<?php

include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
    echo "Error while parsing the document\n";
    exit;
}

$doctype = $dom->doctype();
echo $doctype->name(); // chapter

?>

Migrating to PHP 5

Use the name property of the DOMDocumentType object.

Пред. | Начало | След.
DomDocumentType->internal_subset() | Уровень выше | DomDocumentType->notations()


DomDocumentType->notations()

(no version information, might be only in CVS)

DomDocumentType->notations() -- Returns list of notations

Описание

class DomDocumentType {

array notations ( void )

}

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Migrating to PHP 5

Use the notations property of the DOMDocumentType object.

Пред. | Начало | След.
DomDocumentType->name() | Уровень выше | DomDocumentType->public_id()


DomDocumentType->public_id()

(no version information, might be only in CVS)

DomDocumentType->public_id() -- Returns public id of document type

Описание

class DomDocumentType {

string public_id ( void )

}

This function returns the public id of the document type.

Возвращаемые значения

Returns the public id of the DomDocumentType, as a string.

Примеры

The following example echos nothing.

Пример 1. Retrieving the public id

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$doctype = $dom->doctype();
echo $doctype->public_id();
?>

Migrating to PHP 5

Use the publicId property of the DOMDocumentType object.

Пред. | Начало | След.
DomDocumentType->notations() | Уровень выше | DomDocumentType->system_id()


DomDocumentType->system_id()

(no version information, might be only in CVS)

DomDocumentType->system_id() -- Returns the system id of document type

Описание

class DomDocumentType {

string system_id ( void )

}

Returns the system id of the document type.

Возвращаемые значения

Returns the system id of the DomDocumentType, as a string.

Примеры

Пример 1. Retrieving the system id

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$doctype = $dom->doctype();
echo $doctype->system_id();
?>

Результат выполнения данного примера:

/share/sgml/Norman_Walsh/db3xml10/db3xml10.dtd

Migrating to PHP 5

Use the systemId property of the DOMDocumentType object.

Пред. | Начало | След.
DomDocumentType->public_id() | Уровень выше | DomElement->get_attribute_node()


DomElement->get_attribute_node()

(no version information, might be only in CVS)

DomElement->get_attribute_node() -- Returns the node of the given attribute

Описание

class DomElement {

DomAttribute get_attribute_node ( string name )

}

Returns the node of the given attribute in the current element.

Список параметров

name

The name of the seeked attribute. This parameter is case sensitive.

Возвращаемые значения

Returns the node of the attribute as a DomAttribute or FALSE if no attribute with the given name is found.

Примеры

Пример 1. Getting an attribute node

<?php

include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
    echo "Error while parsing the document\n";
    exit;
}

$root = $dom->document_element();
if ($attribute = $root->get_attribute_node('language')) {
    echo 'Language is: ' . $attribute->value() . "\n";
}

?>

Migrating to PHP 5

Use DOMElement->getAttributeNode().

Смотрите также

DomElement->get_attribute()
DomElement->set_attribute()

Пред. | Начало | След.
DomDocumentType->system_id() | Уровень выше | DomElement->get_attribute()


DomElement->get_attribute()

(no version information, might be only in CVS)

DomElement->get_attribute() -- Returns the value of the given attribute

Описание

class DomElement {

string get_attribute ( string name )

}

Returns the value of the given attribute in the current element.

Since PHP 4.3, if no attribute with given name is found, an empty string is returned.

Список параметров

name

The name of the seeked attribute. This parameter is case sensitive.

Возвращаемые значения

Returns the name of the attribute as a string or an empty string if no attribute with the given name is found.

Примеры

Пример 1. Getting the value of an attribute

<?php

include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
    echo "Error while parsing the document\n";
    exit;
}

// get chapter
$root = $dom->document_element();
echo $root->get_attribute('language'); // en

?>

Migrating to PHP 5

Use DOMElement->getAttribute().

Смотрите также

DomElement->get_attribute_node()
DomElement->set_attribute()

Пред. | Начало | След.
DomElement->get_attribute_node() | Уровень выше | DomElement->get_elements_by_tagname()


DomElement->get_elements_by_tagname()

(no version information, might be only in CVS)

DomElement->get_elements_by_tagname() -- Gets elements by tagname

Описание

class DomElement {

array get_elements_by_tagname ( string name )

}

Gets all the sub elements with the specific name within the current element.

Список параметров

name

The name of the seeked element.

Возвращаемые значения

Returns an array of DomElement objects.

Примеры

Пример 1. Getting a content

<?php
if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();

$node_array = $root->get_elements_by_tagname('element');

foreach ($node_array as $node) {
    echo ' - ' . $node->get_content() . "\n";
}

?>

Migrating to PHP 5

Use DOMElement->getElementsByTagName().

Пред. | Начало | След.
DomElement->get_attribute() | Уровень выше | DomElement->has_attribute()


DomElement->has_attribute()

(no version information, might be only in CVS)

DomElement->has_attribute() -- Checks to see if an attribute exists in the current node

Описание

class DomElement {

bool has_attribute ( string name )

}

This functions checks to see if an attribute named name exists in the current node.

Список параметров

name

The name of the tested attribute.

Возвращаемые значения

Returns TRUE if the asked attribute exists, FALSE otherwise.

Примеры

Пример 1. Testing the existence of an attribute

<?php

include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
    echo "Error while parsing the document\n";
    exit;
}

$root = $dom->document_element();

$buffer = '<html';
if ($root->has_attribute('language')) {
    $buffer .= 'lang="' . $root->get_attribute('language') . '"';
}
$buffer .= '>';

?>

Migrating to PHP 5

Use DOMElement->hasAttribute().

Пред. | Начало | След.
DomElement->get_elements_by_tagname() | Уровень выше | DomElement->remove_attribute()


DomElement->remove_attribute()

(no version information, might be only in CVS)

DomElement->remove_attribute() -- Removes attribute

Описание

class DomElement {

bool remove_attribute ( string name )

}

Removes an attribute from the current DomElement node.

Список параметров

name

The name of the attribute to remove.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Migrating to PHP 5

Use DOMElement->removeAttribute().

Пред. | Начало | След.
DomElement->has_attribute() | Уровень выше | DomElement->set_attribute()


DomElement->set_attribute()

(no version information, might be only in CVS)

DomElement->set_attribute() -- Sets the value of an attribute

Описание

class DomElement {

DomAttribute set_attribute ( string name, string value )

}

Sets an attribute with name name to the given value.

Список параметров

name

The name of the attribute. If this attribute doesn't exist, it will be created.

value

The value of the attribute.

Возвращаемые значения

Returns the old DomAttribute node, or the new one if you are creating the attribute for the first time.

Примеры

Пример 1. Setting an attribute

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$newnode = $doc->append_child($node);
$newnode->set_attribute("align", "left");
?>

Migrating to PHP 5

Use DOMElement->setAttribute().

Смотрите также

DomElement->get_attribute_node()
DomElement->get_attribute()

Пред. | Начало | След.
DomElement->remove_attribute() | Уровень выше | DomElement->tagname()


DomElement->tagname()

(no version information, might be only in CVS)

DomElement->tagname() -- Returns the name of the current element

Описание

class DomElement {

string tagname ( void )

}

Returns the name of the current node. Calling this function is the same as accessing the tagname property, or calling DomNode->node_name on the current node.

Возвращаемые значения

Returns the name of the current DomElement node.

Примеры

Пример 1. Getting the node name

<?php

include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
    echo "Error while parsing the document\n";
    exit;
}

$root = $dom->document_element();
echo $root->tagname();   // chapter
echo $root->tagname;     // chapter
echo $root->node_name(); // chapter

?>

Migrating to PHP 5

Use the tagName property of the DOMElement object.

Пред. | Начало | След.
DomElement->set_attribute() | Уровень выше | DomNode->add_namespace


DomNode->add_namespace

(no version information, might be only in CVS)

DomNode->add_namespace -- Adds a namespace declaration to a node

Описание

class DOMNode {

bool add_namespace ( string uri, string prefix )

}

This method adds a namespace declaration to a node.

Замечание: This method is not part of the DOM specification.

Список параметров

uri

The namespace URI of the node.

prefix

The namespace prefix of the node.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Migrating to PHP 5

You can set the namespace URI and prefix of a DOMElement or a DOMAttr at creation time by using DOMDocument->createElementNS() or DOMDocument->createAttributeNS().

Замечание: Remember the an attribute does not inherit its namespace from the element it is attached to.

Смотрите также

DomDocument->create_element_ns
DomNode->set_namespace

Пред. | Начало | След.
DomElement->tagname() | Уровень выше | DomNode->append_child


DomNode->append_child

(no version information, might be only in CVS)

DomNode->append_child -- Adds a new child at the end of the children

Описание

class DOMNode {

DOMNode append_child ( DOMNode newnode )

}

This functions appends a child to an existing list of children or creates a new list of children.

Список параметров

newnode

The node being appended. It can be created with e.g. DomDocument->create_element, DomDocument->create_text_node etc. or simply by using any other node.

Замечание: You can not append a DOMAttribute using this method. Use DomElement->set_attribute() instead.

Возвращаемые значения

Returns the appended node on success or FALSE on failure.

Список изменений

Версия | Описание
4.3.0 | You are not allowed anymore to insert a node from another document.
4.3.0 | Prior to PHP 4.3.0, the new child is duplicated before being appended. Therefore the new child is a completely new copy which can be modified without changing the node which was passed to this function. If the node passed has children itself, they will be duplicated as well, which makes it quite easy to duplicate large parts of an XML document. The return value is the appended child. If you plan to do further modifications on the appended child you must use the returned node.
4.3.0 and 4.3.1 | The new child newnode is first unlinked from its existing context, if it's already a child of DomNode. Therefore the newnode is moved and not copies anymore. This is the behaviour according to the W3C specifications. If you need the old behaviour, use DomNode->clone_node before appending.
4.3.2 | The new child newnode is first unlinked from its existing context, if it's already in the tree. Same rules apply.

Примеры

The following example adds a new element node to a fresh document and sets the attribute align to left.

Пример 1. Adding a child

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$newnode = $doc->append_child($node);
$newnode->set_attribute("align", "left");
?>

The above example could also be written as the following:

Пример 2. Adding a child

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node->set_attribute("align", "left");
$newnode = $doc->append_child($node);
?>

A more complex example is the one below. It first searches for a certain element, duplicates it including its children and adds it as a sibling. Finally a new attribute is added to one of the children of the new sibling and the whole document is dumped.

Пример 3. Adding a child

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("informaltable");
print_r($elements);
$element = $elements[0];

$parent = $element->parent_node();
$newnode = $parent->append_child($element);
$children = $newnode->children();
$attr = $children[1]->set_attribute("align", "left");

$xmlfile = $dom->dump_mem();
echo htmlentities($xmlfile);
?>

The above example could also be done with DomNode->insert_before instead of DomNode->append_child.

Migrating to PHP 5

You should use DOMNode->appendChild().

Смотрите также

DomNode->insert_before
DomNode->clone_node

Пред. | Начало | След.
DomNode->add_namespace | Уровень выше | DomNode->append_sibling


DomNode->append_sibling

(no version information, might be only in CVS)

DomNode->append_sibling -- Adds new sibling to a node

Описание

domelement DomNode->append_sibling ( domelement newnode )

This functions appends a sibling to an existing node. The child can be created with e.g. domdocument_create_element(), domdocument_create_text() etc. or simply by using any other node.

Before a new sibling is added it is first duplicated. Therefore the new child is a completely new copy which can be modified without changing the node which was passed to this function. If the node passed has children itself, they will be duplicated as well, which makes it quite easy to duplicate large parts of an XML document. The return value is the added sibling. If you plan to do further modifications on the added sibling you must use the returned node.

This function has been added to provide the behaviour of domnode_append_child() as it works till PHP 4.2.

See also domnode_append_before().

Пред. | Начало | След.
DomNode->append_child | Уровень выше | DomNode->attributes


DomNode->attributes

(no version information, might be only in CVS)

DomNode->attributes -- Returns list of attributes

Описание

array DomNode->attributes ( void )

This function only returns an array of attributes if the node is of type XML_ELEMENT_NODE.

(PHP >= 4.3 only) If no attributes are found, NULL is returned.

Пред. | Начало | След.
DomNode->append_sibling | Уровень выше | DomNode->child_nodes


DomNode->child_nodes

(no version information, might be only in CVS)

DomNode->child_nodes -- Returns children of node

Описание

array DomNode->child_nodes ( void )

Returns all children of the node.

See also domnode_next_sibling(), and domnode_previous_sibling().

Пред. | Начало | След.
DomNode->attributes | Уровень выше | DomNode->clone_node


DomNode->clone_node

(no version information, might be only in CVS)

DomNode->clone_node -- Clones a node

Описание

domelement DomNode->clone_node ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DomNode->child_nodes | Уровень выше | DomNode->dump_node


DomNode->dump_node

(no version information, might be only in CVS)

DomNode->dump_node -- Dumps a single node

Описание

string DomNode->dump_node ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

See also domdocument_dump_mem().

Пред. | Начало | След.
DomNode->clone_node | Уровень выше | DomNode->first_child


DomNode->first_child

(no version information, might be only in CVS)

DomNode->first_child -- Returns first child of node

Описание

domelement DomNode->first_child ( void )

Returns the first child of the node.

(PHP >= 4.3 only) If no first child is found, NULL is returned.

See also domnode_last_child(), and
domnode_next_sibling(),
domnode_previous_sibling().

Пред. | Начало | След.
DomNode->dump_node | Уровень выше | DomNode->get_content


DomNode->get_content

(no version information, might be only in CVS)

DomNode->get_content -- Gets content of node

Описание

string DomNode->get_content ( void )

This function returns the content of the actual node.

Пример 1. Getting a content

<?php
if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();

$node_array = $root->get_elements_by_tagname("element");

for ($i = 0; $i<count($node_array); $i++) {
    $node = $node_array[$i];
    echo "The element[$i] is: " . $node->get_content();
}

?>

Пред. | Начало | След.
DomNode->first_child | Уровень выше | DomNode->has_attributes


DomNode->has_attributes

(no version information, might be only in CVS)

DomNode->has_attributes -- Checks if node has attributes

Описание

bool DomNode->has_attributes ( void )

This function checks if the node has attributes.

See also domnode_has_child_nodes().

Пред. | Начало | След.
DomNode->get_content | Уровень выше | DomNode->has_child_nodes


DomNode->has_child_nodes

(no version information, might be only in CVS)

DomNode->has_child_nodes -- Checks if node has children

Описание

bool DomNode->has_child_nodes ( void )

This function checks if the node has children.

See also domnode_child_nodes().

Пред. | Начало | След.
DomNode->has_attributes | Уровень выше | DomNode->insert_before


DomNode->insert_before

(no version information, might be only in CVS)

DomNode->insert_before -- Inserts new node as child

Описание

domelement DomNode->insert_before ( domelement newnode, domelement refnode )

This function inserts the new node newnode right before the node refnode. The return value is the inserted node. If you plan to do further modifications on the appended child you must use the returned node.

(PHP >= 4.3 only) If newnode already is part of a document, it will be first unlinked from its existing context. If refnode is NULL, then newnode will be inserted at the end of the list of children.

domnode_insert_before() is very similar to domnode_append_child() as the following example shows which does the same as the example at domnode_append_child().

Пример 1. Adding a child

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("informaltable");
print_r($elements);
$element = $elements[0];

$newnode = $element->insert_before($element, $element);
$children = $newnode->children();
$attr = $children[1]->set_attribute("align", "left");

echo "<pre>";
$xmlfile = $dom->dump_mem();
echo htmlentities($xmlfile);
echo "</pre>";
?>

See also domnode_append_child().

Пред. | Начало | След.
DomNode->has_child_nodes | Уровень выше | DomNode->is_blank_node


DomNode->is_blank_node

(no version information, might be only in CVS)

DomNode->is_blank_node -- Checks if node is blank

Описание

bool DomNode->is_blank_node ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DomNode->insert_before | Уровень выше | DomNode->last_child


DomNode->last_child

(no version information, might be only in CVS)

DomNode->last_child -- Returns last child of node

Описание

domelement DomNode->last_child ( void )

Returns the last child of the node.

(PHP >= 4.3 only) If no last child is found, NULL is returned.

See also domnode_first_child(), and
domnode_next_sibling(),
domnode_previous_sibling().

Пред. | Начало | След.
DomNode->is_blank_node | Уровень выше | DomNode->next_sibling


DomNode->next_sibling

(no version information, might be only in CVS)

DomNode->next_sibling -- Returns the next sibling of node

Описание

domelement DomNode->next_sibling ( void )

This function returns the next sibling of the current node. If there is no next sibling it returns FALSE (< 4.3) or null (>= 4.3). You can use this function to iterate over all children of a node as shown in the example.

Пример 1. Iterate over children

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("tbody");
$element = $elements[0];
$child = $element->first_child();

while ($child) {
   print_r($child);
   $child = $child->next_sibling();
}
?>

See also domnode_previous_sibling().

Пред. | Начало | След.
DomNode->last_child | Уровень выше | DomNode->node_name


DomNode->node_name

(no version information, might be only in CVS)

DomNode->node_name -- Returns name of node

Описание

string DomNode->node_name ( void )

Returns name of the node. The name has different meanings for the different types of nodes as illustrated in the following table.

Таблица 1. Meaning of value

Type | Meaning
DomAttribute | value of attribute
DomAttribute |
DomCDataSection | #cdata-section
DomComment | #comment
DomDocument | #document
DomDocumentType | document type name
DomElement | tag name
DomEntity | name of entity
DomEntityReference | name of entity reference
DomNotation | notation name
DomProcessingInstruction | target
DomText | #text

Пред. | Начало | След.
DomNode->next_sibling | Уровень выше | DomNode->node_type


DomNode->node_type

(no version information, might be only in CVS)

DomNode->node_type -- Returns type of node

Описание

int DomNode->node_type ( void )

Returns the type of the node. All possible types are listed in the table in the introduction.

Пример 1.

<?php

include 'example.inc';

$dom = domxml_open_mem($xmlstr);

$chapter = $dom->document_element();

// Let's see the elements contained in chapter
foreach($chapter->child_nodes() as $node) {
  if ($node->node_type() == XML_ELEMENT_NODE) {
    echo $node->node_name() . "\n";
  }
}

?>

Результат выполнения данного примера:

title
para

Пред. | Начало | След.
DomNode->node_name | Уровень выше | DomNode->node_value


DomNode->node_value

(no version information, might be only in CVS)

DomNode->node_value -- Returns value of a node

Описание

string DomNode->node_value ( void )

Returns value of the node. The value has different meanings for the different types of nodes as illustrated in the following table.

Таблица 1. Meaning of value

Type | Meaning
DomAttribute | value of attribute
DomAttribute |
DomCDataSection | content
DomComment | content of comment
DomDocument | null
DomDocumentType | null
DomElement | null
DomEntity | null
DomEntityReference | null
DomNotation | null
DomProcessingInstruction | entire content without target
DomText | content of text

Пред. | Начало | След.
DomNode->node_type | Уровень выше | DomNode->owner_document


DomNode->owner_document

(no version information, might be only in CVS)

DomNode->owner_document -- Returns the document this node belongs to

Описание

domdocument DomNode->owner_document ( void )

This function returns the document the current node belongs to.

The following example will create two identical lists of children.

Пример 1. Finding the document of a node

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node = $doc->append_child($node);
$children = $doc->children();
print_r($children);

$doc2 = $node->owner_document();
$children = $doc2->children();
print_r($children);
?>

See also domnode_insert_before().

Пред. | Начало | След.
DomNode->node_value | Уровень выше | DomNode->parent_node


DomNode->parent_node

(no version information, might be only in CVS)

DomNode->parent_node -- Returns the parent of the node

Описание

domnode DomNode->parent_node ( void )

This function returns the parent node.

(PHP >= 4.3 only) If no parent is found, NULL is returned.

The following example will show two identical lists of children.

Пример 1. Finding the document of a node

<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node = $doc->append_child($node);
$children = $doc->children();
print_r($children);

$doc2 = $node->parent_node();
$children = $doc2->children();
print_r($children);
?>

Пред. | Начало | След.
DomNode->owner_document | Уровень выше | DomNode->prefix


DomNode->prefix

(no version information, might be only in CVS)

DomNode->prefix -- Returns name space prefix of node

Описание

string DomNode->prefix ( void )

Returns the name space prefix of the node.

Пред. | Начало | След.
DomNode->parent_node | Уровень выше | DomNode->previous_sibling


DomNode->previous_sibling

(no version information, might be only in CVS)

DomNode->previous_sibling -- Returns the previous sibling of node

Описание

domelement DomNode->previous_sibling ( void )

This function returns the previous sibling of the current node. If there is no previous sibling it returns FALSE (< 4.3) or NULL (>= 4.3). You can use this function to iterate over all children of a node as shown in the example.

See also domnode_next_sibling().

Пред. | Начало | След.
DomNode->prefix | Уровень выше | DomNode->remove_child


DomNode->remove_child

(no version information, might be only in CVS)

DomNode->remove_child -- Removes child from list of children

Описание

domtext DomNode->remove_child ( domtext oldchild )

This functions removes a child from a list of children. If child cannot be removed or is not a child the function will return FALSE. If the child could be removed the functions returns the old child.

Пример 1. Removing a child

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("tbody");
$element = $elements[0];
$children = $element->child_nodes();
$child = $element->remove_child($children[0]);

echo "<PRE>";
$xmlfile = $dom->dump_mem(true);
echo htmlentities($xmlfile);
echo "</PRE>";
?>

See also domnode_append_child().

Пред. | Начало | След.
DomNode->previous_sibling | Уровень выше | DomNode->replace_child


DomNode->replace_child

(no version information, might be only in CVS)

DomNode->replace_child -- Replaces a child

Описание

domelement DomNode->replace_child ( domelement oldnode, domelement newnode )

(PHP 4.2) This function replaces the child oldnode with the passed new node. If the new node is already a child it will not be added a second time. If the old node cannot be found the function returns FALSE. If the replacement succeeds the old node is returned.

(PHP 4.3) This function replaces the child oldnode with the passed newnode, even if the new node already is a child of the DomNode. If newnode was already inserted in the document it is first unlinked from its existing context. If the old node cannot be found the function returns FALSE. If the replacement succeeds the old node is returned. (This behaviour is according to the W3C specs).

See also domnode_append_child()

Пред. | Начало | След.
DomNode->remove_child | Уровень выше | DomNode->replace_node


DomNode->replace_node

(no version information, might be only in CVS)

DomNode->replace_node -- Replaces node

Описание

domelement DomNode->replace_node ( domelement newnode )

(PHP 4.2) This function replaces an existing node with the passed new node. Before the replacement newnode is copied if it has a parent to make sure a node which is already in the document will not be inserted a second time. This behaviour enforces doing all modifications on the node before the replacement or to refetch the inserted node afterwards with functions like domnode_first_child(), domnode_child_nodes() etc..

(PHP 4.3) This function replaces an existing node with the passed new node. It is not copied anymore. If newnode was already inserted in the document it is first unlinked from its existing context. If the replacement succeeds the old node is returned.

See also domnode_append_child()

Пред. | Начало | След.
DomNode->replace_child | Уровень выше | DomNode->set_content


DomNode->set_content

(no version information, might be only in CVS)

DomNode->set_content -- Sets content of node

Описание

bool DomNode->set_content ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DomNode->replace_node | Уровень выше | DomNode->set_name


DomNode->set_name

(no version information, might be only in CVS)

DomNode->set_name -- Sets name of node

Описание

bool DomNode->set_name ( void )

Sets name of node.

See also domnode_node_name().

Пред. | Начало | След.
DomNode->set_content | Уровень выше | DomNode->set_namespace


DomNode->set_namespace

(no version information, might be only in CVS)

DomNode->set_namespace -- Sets namespace of a node

Описание

void DomNode->set_namespace ( string uri [, string prefix] )

Sets the namespace of a node to uri. If there is already a namespace declaration with the same uri in one of the parent nodes of the node, the prefix of this is taken, otherwise it will take the one provided in the optional parameter prefix or generate a random one.

See also domdocument_create_element_ns(), and domnode_add_namespace()

Пред. | Начало | След.
DomNode->set_name | Уровень выше | DomNode->unlink_node


DomNode->unlink_node

(no version information, might be only in CVS)

DomNode->unlink_node -- Deletes node

Описание

void DomNode->unlink_node ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DomNode->set_namespace | Уровень выше | DomProcessingInstruction->data


DomProcessingInstruction->data

(no version information, might be only in CVS)

DomProcessingInstruction->data -- Returns the data of ProcessingInstruction node

Описание

class DomProcessingInstruction {

string data ( void )

}

This method gets the data of the ProcessingInstruction node.

Возвращаемые значения

Returns the data of the Processing Instruction.

Migrating to PHP 5

Use the data property of DOMProcessingInstruction.

Пред. | Начало | След.
DomNode->unlink_node | Уровень выше | DomProcessingInstruction->target


DomProcessingInstruction->target

(no version information, might be only in CVS)

DomProcessingInstruction->target -- Returns the target of a ProcessingInstruction node

Описание

class DomProcessingInstruction {

string target ( void )

}

This method gets the target of the ProcessingInstruction node.

Возвращаемые значения

Returns the target of the Processing Instruction.

Migrating to PHP 5

Use the target property of DOMProcessingInstruction.

Пред. | Начало | След.
DomProcessingInstruction->data | Уровень выше | DomXsltStylesheet->process()


DomXsltStylesheet->process()

(no version information, might be only in CVS)

DomXsltStylesheet->process() -- Applies the XSLT-Transformation on a DomDocument Object

Описание

class DomXsltStylesheet {

DomDocument process ( DomDocument xml_doc [, array xslt_params [, bool is_xpath_param [, string profile_filename]]] )

}

Applies an XSLT Transformation on the given DomDocument object.

Список параметров

xml_doc

The XML document being transformed, as a DomDocument object.

xslt_params

An associative array that takes pairs of parameter names and values.

is_xpath_param

If set to FALSE the values of the xslt_params will be quoted. This is the default behavior. It allows you to pass the values as PHP strings.

Замечание: If your strings contains both single and double quotes, you must take care of quoting all the values by yourself and set this parameter to TRUE.

profile_filename

Set this to the path of a filename, if you want profiling information.

Возвращаемые значения

Returns the result of the processing, as a DomDocument object.

Migrating to PHP 5

Use XSLTProcessor->setParameter() and XSLTProcessor->transformToDoc().

Список изменений

Версия | Описание
4.3.0 | The profile_filename parameter was added.

Смотрите также

domxml_xslt_stylesheet()
domxml_xslt_stylesheet_file()
domxml_xslt_stylesheet_doc()

Пред. | Начало | След.
DomProcessingInstruction->target | Уровень выше | DomXsltStylesheet->result_dump_file()


DomXsltStylesheet->result_dump_file()

(no version information, might be only in CVS)

DomXsltStylesheet->result_dump_file() -- Dumps the result from a XSLT-Transformation into a file

Описание

class DomXsltStylesheet {

string result_dump_file ( DomDocument xmldoc, string filename )

}

Since DomXsltStylesheet->process() always returns a well-formed XML DomDocument, no matter what output method was declared in <xsl:output> and similar attributes/elements, it's of not much use, if you want to output HTML 4 or text data.

This function on the contrary honors <xsl:output method="html|text"> and other output control directives. See the example for instruction on how to use it.

Примеры

Пример 1. Saving the result of a XSLT transformation in a file

<?php
$filename = "stylesheet.xsl";
$xmldoc = domxml_open_file("data.xml");
$xsldoc = domxml_xslt_stylesheet_file($filename);
$result =  $xsldoc->process($xmldoc);
echo $xsldoc->result_dump_file($result, "filename");
?>

Смотрите также

DomXsltStylesheet->result_dump_mem()
DomXsltStylesheet->process()

Пред. | Начало | След.
DomXsltStylesheet->process() | Уровень выше | DomXsltStylesheet->result_dump_mem()


DomXsltStylesheet->result_dump_mem()

(no version information, might be only in CVS)

DomXsltStylesheet->result_dump_mem() -- Dumps the result from a XSLT-Transformation back into a string

Описание

class DomXsltStylesheet {

string result_dump_mem ( DomDocument xmldoc )

}

Since DomXsltStylesheet->process() always returns a well-formed XML DomDocument, no matter what output method was declared in <xsl:output> and similar attributes/elements, it's of not much use, if you want to output HTML 4 or text data.

This function on the contrary honors <xsl:output method="html|text"> and other output control directives. See the example for instruction on how to use it.

Примеры

Пример 1. Outputting the result of a XSLT transformation

<?php
$filename = "stylesheet.xsl";
$xmldoc = domxml_open_file("data.xml");
$xsldoc = domxml_xslt_stylesheet_file($filename);
$result =  $xsldoc->process($xmldoc);
echo $xsldoc->result_dump_mem($result);
?>

Смотрите также

DomXsltStylesheet->result_dump_file()
DomXsltStylesheet->process()

Пред. | Начало | След.
DomXsltStylesheet->result_dump_file() | Уровень выше | domxml_new_doc


domxml_new_doc

(PHP 4 >= 4.2.1, PECL)

domxml_new_doc -- Creates new empty XML document

Описание

DomDocument domxml_new_doc ( string version )

Creates a new Dom document from scratch and returns it.

Список параметров

version

The XML version number of the document.

Возвращаемые значения

Returns a new DomDocument instance.

Пред. | Начало | След.
DomXsltStylesheet->result_dump_mem() | Уровень выше | domxml_open_file


domxml_open_file

(PHP 4 >= 4.2.1, PECL)

domxml_open_file -- Creates a DOM object from an XML file

Описание

DomDocument domxml_open_file ( string filename [, int mode [, array &error]] )

The function parses the XML document in the given file.

Список параметров

filename

The path to the XML file. The file is accessed in read-only mode.

mode

This optional parameter can be used to change the behavior of this function.

You can use one of the following constants for it: DOMXML_LOAD_PARSING (default), DOMXML_LOAD_VALIDATING or DOMXML_LOAD_RECOVERING. You can add to it also DOMXML_LOAD_DONT_KEEP_BLANKS, DOMXML_LOAD_SUBSTITUTE_ENTITIES and DOMXML_LOAD_COMPLETE_ATTRS by bitwise or.

error

If used, it will contain the error messages. error must be passed in by reference.

Возвращаемые значения

Returns a DomDocument instance of the given file.

Примеры

Пример 1. Opening an XML document from a file

<?php

if (!$dom = domxml_open_file("example.xml")) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();
?>

Список изменений

Версия | Описание
4.3.0 | The parameters mode and error were added.

Смотрите также

domxml_open_mem()
domxml_new_doc()

Пред. | Начало | След.
domxml_new_doc | Уровень выше | domxml_open_mem


domxml_open_mem

(PHP 4 >= 4.2.1, PECL)

domxml_open_mem -- Creates a DOM object of an XML document

Описание

DomDocument domxml_open_mem ( string str [, int mode [, array &error]] )

The function parses the XML document in the given string.

Список параметров

str

The contents of the XML file.

mode

This optional parameter can be used to change the behavior of this function.

You can use one of the following constants for it: DOMXML_LOAD_PARSING (default), DOMXML_LOAD_VALIDATING or DOMXML_LOAD_RECOVERING. You can add to it also DOMXML_LOAD_DONT_KEEP_BLANKS, DOMXML_LOAD_SUBSTITUTE_ENTITIES and DOMXML_LOAD_COMPLETE_ATTRS by bitwise or.

error

If used, it will contain the error messages. error must be passed in by reference.

Возвращаемые значения

Returns a DomDocument instance of the given XML contents.

Примеры

Пример 1. Opening an XML document in a string

<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$root = $dom->document_element();
?>

Смотрите также

domxml_open_file()
domxml_new_doc()

Пред. | Начало | След.
domxml_open_file | Уровень выше | domxml_version


domxml_version

(PHP 4 >= 4.1.0, PECL)

domxml_version -- Gets the XML library version

Описание

string domxml_version ( void )

Gets the version of the XML library currently used.

Возвращаемые значения

The version of the XML library, as a string.

Примеры

Пример 1. domxml_version() Example

<?php

echo domxml_version();

?>

Результатом выполнения данного примера будет что-то подобное:

20607

Пред. | Начало | След.
domxml_open_mem | Уровень выше | domxml_xmltree


domxml_xmltree

(PHP 4 >= 4.2.1, PECL)

domxml_xmltree -- Creates a tree of PHP objects from an XML document

Описание

DomDocument domxml_xmltree ( string str )

The function parses the XML document in str and returns a tree PHP objects as the parsed document.

This function is isolated from the other functions, which means you cannot access the tree with any of the other functions. Modifying it, for example by adding nodes, makes no sense since there is currently no way to dump it as an XML file.

However this function may be valuable if you want to read a file and investigate the content.

Список параметров

str

The contents of the XML file.

Возвращаемые значения

Returns a tree of Dom objects starting by a DomDocument.

Пред. | Начало | След.
domxml_version | Уровень выше | domxml_xslt_stylesheet_doc


domxml_xslt_stylesheet_doc

(PHP 4 >= 4.2.0, PECL)

domxml_xslt_stylesheet_doc -- Creates a DomXsltStylesheet Object from a DomDocument Object

Описание

DomXsltStylesheet domxml_xslt_stylesheet_doc ( DomDocument xsl_doc )

Creates a DomXsltStylesheet object from the given XSL document.

Список параметров

xsl_doc

The XSL document, as a DomDocument object.

Возвращаемые значения

Returns a new instance of DomXsltStylesheet.

Migrating to PHP 5

Call XSLTProcessor->importStylesheet() with the xsl_doc parameter.

Смотрите также

DomXsltStylesheet->process()
domxml_xslt_stylesheet()
domxml_xslt_stylesheet_file()

Пред. | Начало | След.
domxml_xmltree | Уровень выше | domxml_xslt_stylesheet_file


domxml_xslt_stylesheet_file

(PHP 4 >= 4.2.0, PECL)

domxml_xslt_stylesheet_file -- Creates a DomXsltStylesheet Object from an XSL document in a file

Описание

DomXsltStylesheet domxml_xslt_stylesheet_file ( string xsl_file )

Creates a DomXsltStylesheet object from the given XSL file.

Список параметров

xsl_file

The path to the XSL document, as a string.

Возвращаемые значения

Returns a new instance of DomXsltStylesheet.

Migrating to PHP 5

Call XSLTProcessor->importStylesheet() with DOMDocument::load($xsl_file) as parameter.

Смотрите также

DomXsltStylesheet->process()
domxml_xslt_stylesheet()
domxml_xslt_stylesheet_doc()

Пред. | Начало | След.
domxml_xslt_stylesheet_doc | Уровень выше | domxml_xslt_stylesheet


domxml_xslt_stylesheet

(PHP 4 >= 4.2.0, PECL)

domxml_xslt_stylesheet -- Creates a DomXsltStylesheet object from an XSL document in a string

Описание

DomXsltStylesheet domxml_xslt_stylesheet ( string xsl_buf )

Creates a DomXsltStylesheet object from the given XSL buffer.

Список параметров

xsl_buf

The XSL document, as a string.

Возвращаемые значения

Returns a new instance of DomXsltStylesheet.

Migrating to PHP 5

Call XSLTProcessor->importStylesheet() with DOMDocument::loadXML($xsl_buf) as parameter.

Смотрите также

DomXsltStylesheet->process()
domxml_xslt_stylesheet_file()
domxml_xslt_stylesheet_doc()

Пред. | Начало | След.
domxml_xslt_stylesheet_file | Уровень выше | domxml_xslt_version


xpath_eval_expression

(PHP 4 >= 4.0.4, PECL)

xpath_eval_expression -- Evaluates the XPath Location Path in the given string

Описание

class XPathContext {

XPathObject xpath_eval_expression ( string expression [, domnode contextnode] )

}XPathObject xpath_eval_expression ( XPathContext xpath_context, string expression [, domnode contextnode] )

Пример 1. xpath_eval_expression() Example

<?php

include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
    echo "Error while parsing the document\n";
    exit;
}

$xpath = xpath_new_context($dom);
var_dump(xpath_eval_expression($xpath, '/chapter/@language'));

?>

Результат выполнения данного примера:

object(XPathObject)(2) {
   ["type"]=>
   int(1)
   ["nodeset"]=>
   array(1) {
     [0]=>
     object(domattribute)(5) {
       ["type"]=>
       int(2)
       ["name"]=>
       string(8) "language"
       ["value"]=>
       string(2) "en"
       [0]=>
       int(7)
       [1]=>
       int(138004256)
     }
  }
}

See also xpath_eval().

Пред. | Начало | След.
domxml_xslt_version | Уровень выше | xpath_eval


xpath_eval

(PHP 4 >= 4.0.4, PECL)

xpath_eval -- Evaluates the XPath Location Path in the given string

Описание

class XPathContext {

XPathObject xpath_eval ( string xpath_expression [, domnode contextnode] )

}XPathObject xpath_eval ( XPathContext xpath_context, string xpath_expression [, domnode contextnode] )

The optional contextnode can be specified for doing relative XPath queries.

See also xpath_new_context().

Пред. | Начало | След.
xpath_eval_expression | Уровень выше | xpath_new_context


xpath_new_context

(PHP 4 >= 4.0.4, PECL)

xpath_new_context -- Creates new xpath context

Описание

XPathContext xpath_new_context ( domdocument dom_document )

See also xpath_eval().

Пред. | Начало | След.
xpath_eval | Уровень выше | xpath_register_ns_auto


xptr_eval

(PHP 4 >= 4.0.4, PECL)

xptr_eval -- Evaluate the XPtr Location Path in the given string

Описание

class XPathContext {

int xptr_eval ( string eval_str [, domnode contextnode] )

}int xptr_eval ( XPathContext xpath_context, string eval_str [, domnode contextnode] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
xpath_register_ns | Уровень выше | xptr_new_context


xptr_new_context

(PHP 4 >= 4.0.4, PECL)

xptr_new_context -- Create new XPath Context

Описание

XPathContext xptr_new_context ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
xptr_eval | Уровень выше | Error Handling and Logging Functions


.NET Functions

Руководство по PHP
Пред. След.

I. .NET Functions

Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

Содержание
dotnet_load -- Loads a DOTNET module

Пред. | Начало | След.
Справочник функций | Уровень выше | dotnet_load


dotnet_load

(no version information, might be only in CVS)

dotnet_load -- Loads a DOTNET module

Description

int dotnet_load ( string assembly_name [, string datatype_name [, int codepage]] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
.NET Functions | Уровень выше | Функции для работы с сервером Apache


Error Handling and Logging Functions

Руководство по PHP
Пред. След.

XXXII. Error Handling and Logging Functions

Введение

These are functions dealing with error handling and logging. They allow you to define your own error handling rules, as well as modify the way the errors can be logged. This allows you to change and enhance error reporting to suit your needs.

With the logging functions, you can send messages directly to other machines, to an email (or email to pager gateway!), to system logs, etc., so you can selectively log and monitor the most important parts of your applications and websites.

The error reporting functions allow you to customize what level and kind of error feedback is given, ranging from simple notices to customized functions returned during errors.

Требования

Эти функции всегда доступны.

Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Errors and Logging Configuration Options

Name | Default | Changeable | Changelog
error_reporting | NULL | PHP_INI_ALL |
display_errors | "1" | PHP_INI_ALL |
display_startup_errors | "0" | PHP_INI_ALL | Available since PHP 4.0.3.
log_errors | "0" | PHP_INI_ALL |
log_errors_max_len | "1024" | PHP_INI_ALL | Available since PHP 4.3.0.
ignore_repeated_errors | "0" | PHP_INI_ALL | Available since PHP 4.3.0.
ignore_repeated_source | "0" | PHP_INI_ALL | Available since PHP 4.3.0.
report_memleaks | "1" | PHP_INI_ALL | Available since PHP 4.3.0.
track_errors | "0" | PHP_INI_ALL |
html_errors | "1" | PHP_INI_ALL | PHP_INI_SYSTEM in PHP <= 4.2.3. Available since PHP 4.0.2.
docref_root | "" | PHP_INI_ALL | Available since PHP 4.3.0.
docref_ext | "" | PHP_INI_ALL | Available since PHP 4.3.2.
error_prepend_string | NULL | PHP_INI_ALL |
error_append_string | NULL | PHP_INI_ALL |
error_log | NULL | PHP_INI_ALL |
warn_plus_overloading | NULL | PHP_INI?? |
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

error_reporting integer

Set the error reporting level. The parameter is either an integer representing a bit field, or named constants. The error_reporting levels and constants are described in Predefined Constants, and in php.ini. To set at runtime, use the error_reporting() function. See also the display_errors directive.

In PHP 4 and PHP 5 the default value is E_ALL & ~E_NOTICE. This setting does not show E_NOTICE level errors. You may want to show them during development.

Замечание: Enabling E_NOTICE during development has some benefits. For debugging purposes: NOTICE messages will warn you about possible bugs in your code. For example, use of unassigned values is warned. It is extremely useful to find typos and to save time for debugging. NOTICE messages will warn you about bad style. For example, $arr[item] is better to be written as $arr['item'] since PHP tries to treat "item" as constant. If it is not a constant, PHP assumes it is a string index for the array.

Замечание: In PHP 5 a new error level E_STRICT is available. As E_STRICT is not included within E_ALL you have to explicitly enable this kind of error level. Enabling E_STRICT during development has some benefits. STRICT messages will help you to use the latest and greatest suggested method of coding, for example warn you about using deprecated functions.

In PHP 3, the default setting is (E_ERROR | E_WARNING | E_PARSE), meaning the same thing. Note, however, that since constants are not supported in PHP 3's php3.ini, the error_reporting setting there must be numeric; hence, it is 7.

display_errors boolean

This determines whether errors should be printed to the screen as part of the output or if they should be hidden from the user.

Замечание: This is a feature to support your development and should never be used on production systems (e.g. systems connected to the internet).

Замечание: Although display_errors may be set at runtime (with ini_set()), it won't have any affect if the script has fatal errors. This is because the desired runtime action does not get executed.

display_startup_errors boolean

Even when display_errors is on, errors that occur during PHP's startup sequence are not displayed. It's strongly recommended to keep display_startup_errors off, except for debugging.

log_errors boolean

Tells whether script error messages should be logged to the server's error log or error_log. This option is thus server-specific.

Замечание: You're strongly advised to use error logging in place of error displaying on production web sites.

log_errors_max_len integer

Set the maximum length of log_errors in bytes. In error_log information about the source is added. The default is 1024 and 0 allows to not apply any maximum length at all. This length is applied to logged errors, displayed errors and also to $php_errormsg.

Если используется integer, значение измеряется байтами. Вы также можете использовать сокращённую запись, которая описана в этом разделе FAQ.

ignore_repeated_errors boolean

Do not log repeated messages. Repeated errors must occur in the same file on the same line until ignore_repeated_source is set true.

ignore_repeated_source boolean

Ignore source of message when ignoring repeated messages. When this setting is On you will not log errors with repeated messages from different files or sourcelines.

report_memleaks boolean

If this parameter is set to Off, then memory leaks will not be shown (on stdout or in the log). This has only effect in a debug compile, and if error_reporting includes E_WARNING in the allowed list

track_errors boolean

If enabled, the last error message will always be present in the variable $php_errormsg.

html_errors boolean

Turn off HTML tags in error messages. The new format for HTML errors produces clickable messages that direct the user to a page describing the error or function in causing the error. These references are affected by docref_root and docref_ext.

docref_root string

The new error format contains a reference to a page describing the error or function causing the error. In case of manual pages you can download the manual in your language and set this ini directive to the URL of your local copy. If your local copy of the manual can be reached by '/manual/' you can simply use docref_root=/manual/. Additional you have to set docref_ext to match the fileextensions of your copy docref_ext=.html. It is possible to use external references. For example you can use docref_root=http://manual/en/ or docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon &url=http%3A%2F%2Fwww.php.net%2F"

Most of the time you want the docref_root value to end with a slash '/'. But see the second example above which does not have nor need it.

Замечание: This is a feature to support your development since it makes it easy to lookup a function description. However it should never be used on production systems (e.g. systems connected to the internet).

docref_ext string

See docref_root.

Замечание: The value of docref_ext must begin with a dot '.'.

error_prepend_string string

String to output before an error message.

error_append_string string

String to output after an error message.

error_log string

Name of the file where script errors should be logged. The file should be writable by the web server's user. If the special value syslog is used, the errors are sent to the system logger instead. On Unix, this means syslog(3) and on Windows NT it means the event log. The system logger is not supported on Windows 95. See also: syslog().

warn_plus_overloading boolean

If enabled, this option makes PHP output a warning when the plus (+) operator is used on strings. This is to make it easier to find scripts that need to be rewritten to using the string concatenator instead (.).

Предопределенные константы

Перечисленные ниже константы всегда доступны как часть ядра PHP.

Замечание: You may use these constant names in php.ini but not outside of PHP, like in httpd.conf, where you'd use the bitmask values instead.

Таблица 2. Errors and Logging

Value | Constant | Description | Note
1 | E_ERROR (integer) | Fatal run-time errors. These indicate errors that can not be recovered from, such as a memory allocation problem. Execution of the script is halted. |
2 | E_WARNING (integer) | Run-time warnings (non-fatal errors). Execution of the script is not halted. |
4 | E_PARSE (integer) | Compile-time parse errors. Parse errors should only be generated by the parser. |
8 | E_NOTICE (integer) | Run-time notices. Indicate that the script encountered something that could indicate an error, but could also happen in the normal course of running a script. |
16 | E_CORE_ERROR (integer) | Fatal errors that occur during PHP's initial startup. This is like an E_ERROR, except it is generated by the core of PHP. | since PHP 4
32 | E_CORE_WARNING (integer) | Warnings (non-fatal errors) that occur during PHP's initial startup. This is like an E_WARNING, except it is generated by the core of PHP. | since PHP 4
64 | E_COMPILE_ERROR (integer) | Fatal compile-time errors. This is like an E_ERROR, except it is generated by the Zend Scripting Engine. | since PHP 4
128 | E_COMPILE_WARNING (integer) | Compile-time warnings (non-fatal errors). This is like an E_WARNING, except it is generated by the Zend Scripting Engine. | since PHP 4
256 | E_USER_ERROR (integer) | User-generated error message. This is like an E_ERROR, except it is generated in PHP code by using the PHP function trigger_error(). | since PHP 4
512 | E_USER_WARNING (integer) | User-generated warning message. This is like an E_WARNING, except it is generated in PHP code by using the PHP function trigger_error(). | since PHP 4
1024 | E_USER_NOTICE (integer) | User-generated notice message. This is like an E_NOTICE, except it is generated in PHP code by using the PHP function trigger_error(). | since PHP 4
2047 | E_ALL (integer) | All errors and warnings, as supported, except of level E_STRICT. |
2048 | E_STRICT (integer) | Run-time notices. Enable to have PHP suggest changes to your code which will ensure the best interoperability and forward compatibility of your code. | since PHP 5

The above values (either numerical or symbolic) are used to build up a bitmask that specifies which errors to report. You can use the bitwise operators to combine these values or mask out certain types of errors. Note that only '|', '~', '!', '^' and '&' will be understood within php.ini, however, and that no bitwise operators will be understood within php3.ini.

Примеры

Below we can see an example of using the error handling capabilities in PHP. We define an error handling function which logs the information into a file (using an XML format), and e-mails the developer in case a critical error in the logic happens.

Пример 1. Using error handling in a script

<?php
// we will do our own error handling
error_reporting(0);

// user defined error handling function
function userErrorHandler($errno, $errmsg, $filename, $linenum, $vars)
{
    // timestamp for the error entry
    $dt = date("Y-m-d H:i:s (T)");

    // define an assoc array of error string
    // in reality the only entries we should
    // consider are E_WARNING, E_NOTICE, E_USER_ERROR,
    // E_USER_WARNING and E_USER_NOTICE
    $errortype = array (
                E_ERROR           => "Error",
                E_WARNING         => "Warning",
                E_PARSE           => "Parsing Error",
                E_NOTICE          => "Notice",
                E_CORE_ERROR      => "Core Error",
                E_CORE_WARNING    => "Core Warning",
                E_COMPILE_ERROR   => "Compile Error",
                E_COMPILE_WARNING => "Compile Warning",
                E_USER_ERROR      => "User Error",
                E_USER_WARNING    => "User Warning",
                E_USER_NOTICE     => "User Notice",
                E_STRICT          => "Runtime Notice"
                );
    // set of errors for which a var trace will be saved
    $user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE);

    $err = "<errorentry>\n";
    $err .= "\t<datetime>" . $dt . "</datetime>\n";
    $err .= "\t<errornum>" . $errno . "</errornum>\n";
    $err .= "\t<errortype>" . $errortype[$errno] . "</errortype>\n";
    $err .= "\t<errormsg>" . $errmsg . "</errormsg>\n";
    $err .= "\t<scriptname>" . $filename . "</scriptname>\n";
    $err .= "\t<scriptlinenum>" . $linenum . "</scriptlinenum>\n";

    if (in_array($errno, $user_errors)) {
        $err .= "\t<vartrace>" . wddx_serialize_value($vars, "Variables") . "</vartrace>\n";
    }
    $err .= "</errorentry>\n\n";

    // for testing
    // echo $err;

    // save to the error log, and e-mail me if there is a critical user error
    error_log($err, 3, "/usr/local/php4/error.log");
    if ($errno == E_USER_ERROR) {
        mail("phpdev@example.com", "Critical User Error", $err);
    }
}

function distance($vect1, $vect2)
{
    if (!is_array($vect1) || !is_array($vect2)) {
        trigger_error("Incorrect parameters, arrays expected", E_USER_ERROR);
        return NULL;
    }

    if (count($vect1) != count($vect2)) {
        trigger_error("Vectors need to be of the same size", E_USER_ERROR);
        return NULL;
    }

    for ($i=0; $i<count($vect1); $i++) {
        $c1 = $vect1[$i]; $c2 = $vect2[$i];
        $d = 0.0;
        if (!is_numeric($c1)) {
            trigger_error("Coordinate $i in vector 1 is not a number, using zero",
                            E_USER_WARNING);
            $c1 = 0.0;
        }
        if (!is_numeric($c2)) {
            trigger_error("Coordinate $i in vector 2 is not a number, using zero",
                            E_USER_WARNING);
            $c2 = 0.0;
        }
        $d += $c2*$c2 - $c1*$c1;
    }
    return sqrt($d);
}

$old_error_handler = set_error_handler("userErrorHandler");

// undefined constant, generates a warning
$t = I_AM_NOT_DEFINED;

// define some "vectors"
$a = array(2, 3, "foo");
$b = array(5.5, 4.3, -1.6);
$c = array(1, -3);

// generate a user error
$t1 = distance($c, $b) . "\n";

// generate another user error
$t2 = distance($b, "i am not an array") . "\n";

// generate a warning
$t3 = distance($a, $b) . "\n";

?>

Смотрите также

See also syslog().

Содержание
debug_backtrace -- Generates a backtrace
debug_print_backtrace -- Prints a backtrace
error_log -- Send an error message somewhere
error_reporting -- Sets which PHP errors are reported
restore_error_handler -- Restores the previous error handler function
restore_exception_handler -- Restores the previously defined exception handler function
set_error_handler -- Sets a user-defined error handler function
set_exception_handler -- Sets a user-defined exception handler function
trigger_error -- Generates a user-level error/warning/notice message
user_error -- Alias of trigger_error()

Пред. | Начало | След.
xptr_new_context | Уровень выше | debug_backtrace


debug_backtrace

(PHP 4 >= 4.3.0, PHP 5)

debug_backtrace -- Generates a backtrace

Описание

array debug_backtrace ( void )

debug_backtrace() generates a PHP backtrace.

Возвращаемые значения

Returns an associative array. The possible returned elements are as follows:

Таблица 1. Possible returned elements from debug_backtrace()

Name | Type | Description
function | string | The current function name. See also __FUNCTION__.
line | integer | The current line number. See also __LINE__.
file | string | The current file name. See also __FILE__.
class | string | The current class name. See also __CLASS__
type | string | The current call type. If a method call, "->" is returned. If a static method call, "::" is returned. If a function call, nothing is returned.
args | array | If inside a function, this lists the functions arguments. If inside an included file, this lists the included file name(s).

Примеры

Пример 1. debug_backtrace() example

<?php
// filename: a.php

function a_test($str)
{
    echo "\nHi: $str";
    var_dump(debug_backtrace());
}

a_test('friend');
?>

<?php
// filename: b.php
include_once '/tmp/a.php';
?>

Results similar to the following when executing /tmp/b.php:

Hi: friend
array(2) {
[0]=>
array(4) {
    ["file"] => string(10) "/tmp/a.php"
    ["line"] => int(10)
    ["function"] => string(6) "a_test"
    ["args"]=>
    array(1) {
      [0] => &string(6) "friend"
    }
}
[1]=>
array(4) {
    ["file"] => string(10) "/tmp/b.php"
    ["line"] => int(2)
    ["args"] =>
    array(1) {
      [0] => string(10) "/tmp/a.php"
    }
    ["function"] => string(12) "include_once"
  }
}

Смотрите также

trigger_error()
debug_print_backtrace()

Пред. | Начало | След.
Error Handling and Logging Functions | Уровень выше | debug_print_backtrace


debug_print_backtrace

(PHP 5)

debug_print_backtrace -- Prints a backtrace

Описание

void debug_print_backtrace ( void )

debug_print_backtrace() prints a PHP backtrace. It prints the function calls, included/required files and eval()ed stuff.

Список параметров

This function has no parameters.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример 1. debug_print_backtrace() example

<?php
// include.php file

function a() {
    b();
}

function b() {
    c();
}

function c(){
    debug_print_backtrace();
}

a();

?>

<?php
// test.php file
// this is the file you should run

include 'include.php';
?>

Результатом выполнения данного примера будет что-то подобное:

#0  eval() called at [/tmp/include.php:5]
#1  a() called at [/tmp/include.php:17]
#2  include(/tmp/include.php) called at [/tmp/test.php:3]

#0  c() called at [/tmp/include.php:10]
#1  b() called at [/tmp/include.php:6]
#2  a() called at [/tmp/include.php:17]
#3  include(/tmp/include.php) called at [/tmp/test.php:3]

Смотрите также

debug_backtrace()

Пред. | Начало | След.
debug_backtrace | Уровень выше | error_log


error_log

(PHP 3, PHP 4, PHP 5)

error_log -- Send an error message somewhere

Описание

bool error_log ( string message [, int message_type [, string destination [, string extra_headers]]] )

Sends an error message to the web server's error log, a TCP port or to a file.

Список параметров

message

The error message that should be logged.

message_type

Says where the error should go. The possible message types are as follows:

Таблица 1. error_log() log types

0 | message is sent to PHP's system logger, using the Operating System's system logging mechanism or a file, depending on what the error_log configuration directive is set to. This is the default option.
1 | message is sent by email to the address in the destination parameter. This is the only message type where the fourth parameter, extra_headers is used.
2 | message is sent through the PHP debugging connection. This option is only available if remote debugging has been enabled. In this case, the destination parameter specifies the host name or IP address and optionally, port number, of the socket receiving the debug information. This option is only available in PHP 3.
3 | message is appended to the file destination. A newline is not automatically added to the end of the message string.

destination

The destination. Its meaning depends on the message parameter as described above.

extra_headers

The extra headers. It's used when the message parameter is set to 1. This message type uses the same internal function as mail() does.

Примеры

Пример 1. error_log() examples

<?php
// Send notification through the server log if we can not
// connect to the database.
if (!Ora_Logon($username, $password)) {
    error_log("Oracle database not available!", 0);
}

// Notify administrator by email if we run out of FOO
if (!($foo = allocate_new_foo())) {
    error_log("Big trouble, we're all out of FOOs!", 1,
               "operator@example.com");
}

// other ways of calling error_log():
error_log("You messed up!", 2, "127.0.0.1:7000");
error_log("You messed up!", 2, "loghost");
error_log("You messed up!", 3, "/var/tmp/my-errors.log");
?>

Пред. | Начало | След.
debug_print_backtrace | Уровень выше | error_reporting


error_reporting

(PHP 3, PHP 4, PHP 5)

error_reporting -- Sets which PHP errors are reported

Описание

int error_reporting ( [int level] )

The error_reporting() function sets the error_reporting directive at runtime. PHP has many levels of errors, using this function sets that level for the duration (runtime) of your script.

Список параметров

level

The new error_reporting level. It takes on either a bitmask, or named constants. Using named constants is strongly encouraged to ensure compatibility for future versions. As error levels are added, the range of integers increases, so older integer-based error levels will not always behave as expected.

The available error level constants are listed below. The actual meanings of these error levels are described in the predefined constants.

Таблица 1. error_reporting() level constants and bit values

value | constant
1 | E_ERROR
2 | E_WARNING
4 | E_PARSE
8 | E_NOTICE
16 | E_CORE_ERROR
32 | E_CORE_WARNING
64 | E_COMPILE_ERROR
128 | E_COMPILE_WARNING
256 | E_USER_ERROR
512 | E_USER_WARNING
1024 | E_USER_NOTICE
2047 | E_ALL
2048 | E_STRICT

Возвращаемые значения

Returns the old error_reporting level.

Примеры

Пример 1. error_reporting() examples

<?php

// Turn off all error reporting
error_reporting(0);

// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL ^ E_NOTICE);

// Report all PHP errors (bitwise 63 may be used in PHP 3)
error_reporting(E_ALL);

// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

?>

Примечания

Внимание

With PHP > 5.0.0 E_STRICT with value 2048 is available. E_ALL does NOT include error level E_STRICT. Most of E_STRICT errors are evaluated at the compile time thus such errors are not reported in the file where error_reporting is enhanced to include E_STRICT errors.

Смотрите также

The display_errors directive
ini_set()

Пред. | Начало | След.
error_log | Уровень выше | restore_error_handler


restore_error_handler

(PHP 4 >= 4.0.1, PHP 5)

restore_error_handler -- Restores the previous error handler function

Описание

bool restore_error_handler ( void )

Used after changing the error handler function using set_error_handler(), to revert to the previous error handler (which could be the built-in or a user defined function).

Возвращаемые значения

This function always returns TRUE

Примеры

Пример 1. restore_error_handler() example

Decide if unserialize() caused an error, then restore the original error handler.

<?php
function unserialize_handler($errno, $errstr)
{
    echo "Invalid serialized value.\n";
}

$serialized = 'foo';
set_error_handler('unserialize_handler');
$original = unserialize($serialized);
restore_error_handler();
?>

Результат выполнения данного примера:

Invalid serialized value.

Примечания

Замечание: Calling restore_error_handler() from the error_handler function is ignored.

Смотрите также

error_reporting()
set_error_handler()
restore_exception_handler()
trigger_error()

Пред. | Начало | След.
error_reporting | Уровень выше | restore_exception_handler


restore_exception_handler

(PHP 5)

restore_exception_handler -- Restores the previously defined exception handler function

Описание

bool restore_exception_handler ( void )

Used after changing the exception handler function using set_exception_handler(), to revert to the previous exception handler (which could be the built-in or a user defined function).

Возвращаемые значения

This function always returns TRUE

Смотрите также

set_exception_handler()
set_error_handler()
restore_error_handler()
error_reporting()

Пред. | Начало | След.
restore_error_handler | Уровень выше | set_error_handler


set_error_handler

(PHP 4 >= 4.0.1, PHP 5)

set_error_handler -- Sets a user-defined error handler function

Описание

mixed set_error_handler ( callback error_handler [, int error_types] )

Sets a user function (error_handler) to handle errors in a script.

This function can be used for defining your own way of handling errors during runtime, for example in applications in which you need to do cleanup of data/files when a critical error happens, or when you need to trigger an error under certain conditions (using trigger_error()).

It is important to remember that the standard PHP error handler is completely bypassed. error_reporting() settings will have no effect and your error handler will be called regardless - however you are still able to read the current value of error_reporting and act appropriately. Of particular note is that this value will be 0 if the statement that caused the error was prepended by the @ error-control operator.

Also note that it is your responsibility to die() if necessary. If the error-handler function returns, script execution will continue with the next statement after the one that caused an error.

The following error types cannot be handled with a user defined function: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, and most of E_STRICT raised in the file where set_error_handler() is called.

If errors occur before the script is executed (e.g. on file uploads) the custom error handler cannot be called since it is not registered at that time.

Список параметров

error_handler

The user function needs to accept two parameters: the error code, and a string describing the error. Then there are three optional parameters that may be supplied: the filename in which the error occurred, the line number in which the error occurred, and the context in which the error occurred (an array that points to the active symbol table at the point the error occurred). The function can be shown as:

handler ( int errno, string errstr [, string errfile [, int errline [, array errcontext]]] )

errno

The first parameter, errno, contains the level of the error raised, as an integer.

errstr

The second parameter, errstr, contains the error message, as a string.

errfile

The third parameter is optional, errfile, which contains the filename that the error was raised in, as a string.

errline

The fourth parameter is optional, errline, which contains the line number the error was raised at, as an integer.

errcontext

The fifth parameter is optional, errcontext, which is an array that points to the active symbol table at the point the error occurred. In other words, errcontext will contain an array of every variable that existed in the scope the error was triggered in.

error_types

Can be used to mask the triggering of the error_handler function just like the error_reporting ini setting controls which errors are shown. Without this mask set the error_handler will be called for every error regardless to the setting of the error_reporting setting.

Возвращаемые значения

Returns a string containing the previously defined error handler (if any), or NULL on error. If the previous handler was a class method, this function will return an indexed array with the class and the method name.

Список изменений

Версия | Описание
5.0.0 | The error_types parameter was introduced.
4.3.0 | Instead of a function name, an array containing an object reference and a method name can also be supplied as the error_handler.
4.0.2 | Three optional parameters for the error_handler user function was introduced. These are the filename, the line number, and the context.

Примеры

Пример 1. Error handling with set_error_handler() and trigger_error()

The example below shows the handling of internal exceptions by triggering errors and handling them with a user defined function:

<?php
// set the error reporting level for this script
error_reporting(E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE);

// error handler function
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
  switch ($errno) {
  case E_USER_ERROR:
    echo "<b>My ERROR</b> [$errno] $errstr<br />\n";
    echo "  Fatal error in line $errline of file $errfile";
    echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
    echo "Aborting...<br />\n";
    exit(1);
    break;
  case E_USER_WARNING:
    echo "<b>My WARNING</b> [$errno] $errstr<br />\n";
    break;
  case E_USER_NOTICE:
    echo "<b>My NOTICE</b> [$errno] $errstr<br />\n";
    break;
  default:
    echo "Unkown error type: [$errno] $errstr<br />\n";
    break;
  }
}

// function to test the error handling
function scale_by_log($vect, $scale)
{
  if (!is_numeric($scale) || $scale <= 0) {
    trigger_error("log(x) for x <= 0 is undefined, you used: scale = $scale", E_USER_ERROR);
  }

  if (!is_array($vect)) {
    trigger_error("Incorrect input vector, array of values expected", E_USER_WARNING);
    return null;
  }

  for ($i=0; $i<count($vect); $i++) {
    if (!is_numeric($vect[$i]))
      trigger_error("Value at position $i is not a number, using 0 (zero)", E_USER_NOTICE);
      $temp[$i] = log($scale) * $vect[$i];
    }
    return $temp;
  }

// set to the user defined error handler
$old_error_handler = set_error_handler("myErrorHandler");

// trigger some errors, first define a mixed array with a non-numeric item
echo "vector a\n";
$a = array(2,3, "foo", 5.5, 43.3, 21.11);
print_r($a);

// now generate second array, generating a warning
echo "----\nvector b - a warning (b = log(PI) * a)\n";
$b = scale_by_log($a, M_PI);
print_r($b);

// this is trouble, we pass a string instead of an array
echo "----\nvector c - an error\n";
$c = scale_by_log("not array", 2.3);
var_dump($c);

// this is a critical error, log of zero or negative number is undefined
echo "----\nvector d - fatal error\n";
$d = scale_by_log($a, -2.5);

?>

Результатом выполнения данного примера будет что-то подобное:

vector a
Array
(
    [0] => 2
    [1] => 3
    [2] => foo
    [3] => 5.5
    [4] => 43.3
    [5] => 21.11
)
----
vector b - a warning (b = log(PI) * a)
<b>WARNING</b> [1024] Value at position 2 is not a number, using 0 (zero)<br />
Array
(
    [0] => 2.2894597716988
    [1] => 3.4341896575482
    [2] => 0
    [3] => 6.2960143721717
    [4] => 49.566804057279
    [5] => 24.165247890281
)
----
vector c - an error
<b>ERROR</b> [512] Incorrect input vector, array of values expected<br />
NULL
----
vector d - fatal error
<b>FATAL</b> [256] log(x) for x <= 0 is undefined, you used: scale = -2.5<br />
Fatal error in line 36 of file trigger_error.php, PHP 4.0.2 (Linux)<br />
Aborting...<br />

Смотрите также

error_reporting()
restore_error_handler()
trigger_error()
error level constants
информация о типе callback

Пред. | Начало | След.
restore_exception_handler | Уровень выше | set_exception_handler


set_exception_handler

(PHP 5)

set_exception_handler -- Sets a user-defined exception handler function

Описание

string set_exception_handler ( callback exception_handler )

Sets the default exception handler if an exception is not caught within a try/catch block. Execution will stop after the exception_handler is called.

The exception_handler must be defined before calling set_exception_handler(). This handler function needs to accept one parameter, which will be the exception object that was thrown.

Список параметров

exception_handler

Name of the function to be called when an uncaught exception occurs.

Возвращаемые значения

Returns the name of the previously defined exception handler, or NULL on error. If no previous handler was defined, NULL is also returned.

Примеры

Пример 1. set_exception_handler() example

<?php
function exception_handler($exception) {
  echo "Uncaught exception: " , $exception->getMessage(), "\n";
}

set_exception_handler('exception_handler');

throw new Exception('Uncaught Exception');
echo "Not Executed\n";
?>

Смотрите также

restore_exception_handler(),
restore_error_handler(),
error_reporting(),
информация о типе callback,  и
PHP 5 Exceptions.

Пред. | Начало | След.
set_error_handler | Уровень выше | trigger_error


trigger_error

(PHP 4 >= 4.0.1, PHP 5)

trigger_error -- Generates a user-level error/warning/notice message

Описание

bool trigger_error ( string error_msg [, int error_type] )

Used to trigger a user error condition, it can be used by in conjunction with the built-in error handler, or with a user defined function that has been set as the new error handler (set_error_handler()).

This function is useful when you need to generate a particular response to an exception at runtime.

Список параметров

error_msg

The designated error message for this error. It's limited to 1024 characters in length. Any additional characters beyond 1024 will be truncated.

error_type

The designated error type for this error. It only works with the E_USER family of constants, and will default to E_USER_NOTICE.

Возвращаемые значения

This function returns FALSE if wrong error_type is specified, TRUE otherwise.

Примеры

Пример 1. trigger_error() example

See set_error_handler() for a more extensive example.

<?php
if (assert($divisor == 0)) {
    trigger_error("Cannot divide by zero", E_USER_ERROR);
}
?>

Смотрите также

error_reporting()
set_error_handler()
restore_error_handler()
The error level constants

Пред. | Начало | След.
set_exception_handler | Уровень выше | user_error


user_error

(PHP 4, PHP 5)

user_error -- Alias of trigger_error()

Описание

This function is an alias of: trigger_error().

Пред. | Начало | След.
trigger_error | Уровень выше | Exif Functions


Program Execution Functions

Руководство по PHP
Пред. След.

CXVIII. Program Execution Functions

Введение

Those functions provide means to execute commands on the system itself, and means to secure such commands.

Требования

Эти функции всегда доступны.

Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Смотрите также

These functions are also closely related to the backtick operator. Also, while in безопасный режим you must consider the safe_mode_exec_dir directive.

Содержание
escapeshellarg -- Escape a string to be used as a shell argument
escapeshellcmd -- Escape shell metacharacters
exec -- Execute an external program
passthru -- Execute an external program and display raw output
proc_close -- Close a process opened by proc_open() and return the exit code of that process.
proc_get_status -- Get information about a process opened by proc_open()
proc_nice -- Change the priority of the current process
proc_open -- Execute a command and open file pointers for input/output
proc_terminate -- kills a process opened by proc_open
shell_exec -- Execute command via shell and return the complete output as a string
system -- Execute an external program and display the output

Пред. | Начало | След.
printer_write | Уровень выше | escapeshellarg


escapeshellarg

(PHP 4 >= 4.0.3, PHP 5)

escapeshellarg -- Escape a string to be used as a shell argument

Описание

string escapeshellarg ( string arg )

escapeshellarg() adds single quotes around a string and quotes/escapes any existing single quotes allowing you to pass a string directly to a shell function and having it be treated as a single safe argument. This function should be used to escape individual arguments to shell functions coming from user input. The shell functions include exec(), system() and the backtick operator.

Список параметров

arg

The argument that will be escaped.

Возвращаемые значения

The escaped string.

Примеры

Пример 1. escapeshellarg() example

<?php
system('ls '.escapeshellarg($dir));
?>

Смотрите также

escapeshellcmd()
exec()
popen()
system()
backtick operator

Пред. | Начало | След.
Program Execution Functions | Уровень выше | escapeshellcmd


escapeshellcmd

(PHP 3, PHP 4, PHP 5)

escapeshellcmd -- Escape shell metacharacters

Описание

string escapeshellcmd ( string command )

escapeshellcmd() escapes any characters in a string that might be used to trick a shell command into executing arbitrary commands. This function should be used to make sure that any data coming from user input is escaped before this data is passed to the exec() or system() functions, or to the backtick operator.

Following characters are preceded by a backslash: #&;`|*?~<>^()[]{}$\, \x0A and \xFF. ' and " are escaped only if they are not paired. In Windows, all these characters plus % are replaced by a space instead.

Список параметров

command

The command that will be escaped.

Возвращаемые значения

The escaped string.

Примеры

Пример 1. escapeshellcmd() example

<?php
$e = escapeshellcmd($userinput);

// here we don't care if $e has spaces
system("echo $e");
$f = escapeshellcmd($filename);

// and here we do, so we use quotes
system("touch \"/tmp/$f\"; ls -l \"/tmp/$f\"");
?>

Смотрите также

escapeshellarg()
exec()
popen()
system()
backtick operator

Пред. | Начало | След.
escapeshellarg | Уровень выше | exec


exec

(PHP 3, PHP 4, PHP 5)

exec -- Execute an external program

Описание

string exec ( string command [, array &output [, int &return_var]] )

exec() executes the given command.

Список параметров

command

The command that will be executed.

output

If the output argument is present, then the specified array will be filled with every line of output from the command. Trailing whitespace, such as \n, is not included in this array. Note that if the array already contains some elements, exec() will append to the end of the array. If you do not want the function to append elements, call unset() on the array before passing it to exec().

return_var

If the return_var argument is present along with the output argument, then the return status of the executed command will be written to this variable.

Возвращаемые значения

The last line from the result of the command. If you need to execute a command and have all the data from the command passed directly back without any interference, use the passthru() function.

To get the output of the executed command, be sure to set and use the output parameter.

Примеры

Пример 1. An exec() example

<?php
// outputs the username that owns the running php/httpd process
// (on a system with the "whoami" executable in the path)
echo exec('whoami');
?>

Примечания

Внимание

Если вы собираетесь передавать функции данные, отправленные пользователем, вы должны использовать функции escapeshellarg() или escapeshellcmd() для того, чтобы обезопасить исполнение команд.

Замечание: Если вы собираетесь использовать эту функцию в программе, работающей в качестве демона, убедитесь, что стандартный вывод функции направлен в файл или другой поток, в противном случае PHP зависнет вплоть до конца выполнения программы.

Замечание: В случае работы в безопасном режиме, вы можете запускать что-либо только в пределах safe_mode_exec_dir. В настоящее время, использование .. в пути запрещено

Внимание

В случае работы в безопасном режиме, все слова, следующие за начальной командой, рассматриваются как единый аргумент. То есть echo y | echo x будет работать как echo "y | echo x".

Смотрите также

system()
passthru()
escapeshellcmd()
pcntl_exec()
system()
backtick operator

Пред. | Начало | След.
escapeshellcmd | Уровень выше | passthru


passthru

(PHP 3, PHP 4, PHP 5)

passthru -- Execute an external program and display raw output

Описание

void passthru ( string command [, int &return_var] )

The passthru() function is similar to the exec() function in that it executes a command. This function should be used in place of exec() or system() when the output from the Unix command is binary data which needs to be passed directly back to the browser. A common use for this is to execute something like the pbmplus utilities that can output an image stream directly. By setting the Content-type to image/gif and then calling a pbmplus program to output a gif, you can create PHP scripts that output images directly.

Список параметров

command

The command that will be executed.

return_var

If the return_var argument is present, the return status of the Unix command will be placed here.

Примечания

Внимание

Если вы собираетесь передавать функции данные, отправленные пользователем, вы должны использовать функции escapeshellarg() или escapeshellcmd() для того, чтобы обезопасить исполнение команд.

Замечание: Если вы собираетесь использовать эту функцию в программе, работающей в качестве демона, убедитесь, что стандартный вывод функции направлен в файл или другой поток, в противном случае PHP зависнет вплоть до конца выполнения программы.

Замечание: В случае работы в безопасном режиме, вы можете запускать что-либо только в пределах safe_mode_exec_dir. В настоящее время, использование .. в пути запрещено

Внимание

В случае работы в безопасном режиме, все слова, следующие за начальной командой, рассматриваются как единый аргумент. То есть echo y | echo x будет работать как echo "y | echo x".

Смотрите также

exec()
system()
popen()
escapeshellcmd()
backtick operator

Пред. | Начало | След.
exec | Уровень выше | proc_close


proc_close

(PHP 4 >= 4.3.0, PHP 5)

proc_close -- Close a process opened by proc_open() and return the exit code of that process.

Описание

int proc_close ( resource process )

proc_close() is similar to pclose() except that it only works on processes opened by proc_open(). proc_close() waits for the process to terminate, and returns its exit code. If you have open pipes to that process, you should fclose() them prior to calling this function in order to avoid a deadlock - the child process may not be able to exit while the pipes are open.

Список параметров

process

The proc_open() resource that will be closed.

Пред. | Начало | След.
passthru | Уровень выше | proc_get_status


proc_get_status

(PHP 5)

proc_get_status -- Get information about a process opened by proc_open()

Описание

array proc_get_status ( resource process )

proc_get_status() fetches data about a process opened using proc_open().

Список параметров

process

The proc_open() resource that will be evaluated.

Возвращаемые значения

An array of collected information on success, and FALSE on failure. The returned array contains the following elements:

element | type | description
command | string | The command string that was passed to proc_open()
pid | int | process id
running | bool | TRUE if the process is still running, FALSE if it has terminated
signaled | bool | TRUE if the child process has been terminated by an uncaught signal. Always set to FALSE on Windows.
stopped | bool | TRUE if the child process has been stopped by a signal. Always set to FALSE on Windows.
exitcode | int | the exit code returned by the process (which is only meaningful if running is FALSE)
termsig | int | the number of the signal that caused the child process to terminate its execution (only meaningful if signaled is TRUE)
stopsig | int | the number of the signal that caused the child process to stop its execution (only meaningful if stopped is TRUE)

Смотрите также

proc_open()

Пред. | Начало | След.
proc_close | Уровень выше | proc_nice


proc_nice

(PHP 5)

proc_nice -- Change the priority of the current process

Описание

bool proc_nice ( int increment )

proc_nice() changes the priority of the current process by the amount specified in increment. A positive increment will lower the priority of the current process, whereas a negative increment will raise the priority.

proc_nice() is not related to proc_open() and its associated functions in any way.

Список параметров

increment

The increment value of the priority change.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. If an error occurs, like the user lacks permission to change the priority, an error of level E_WARNING is also generated.

Примечания

Availability: proc_nice() will only exist if your system has 'nice' capabilities. 'nice' conforms to: SVr4, SVID EXT, AT&T, X/OPEN, BSD 4.3. This means that proc_nice() is not available on Windows.

Пред. | Начало | След.
proc_get_status | Уровень выше | proc_open


proc_open

(PHP 4 >= 4.3.0, PHP 5)

proc_open -- Execute a command and open file pointers for input/output

Описание

resource proc_open ( string cmd, array descriptorspec, array &pipes [, string cwd [, array env [, array other_options]]] )

proc_open() is similar to popen() but provides a much greater degree of control over the program execution.

PHP 5 introduces pty support for systems with Unix98 ptys. This allows your script to interact with applications that expect to be talking to a terminal. A pty works like a pipe, but is bi-directional, so there is no need to specify a read/write mode. The example below shows how to use a pty; note that you don't have to have all descriptors talking to a pty. Also note that only one pty is created, even though pty is specified 3 times. In a future version of PHP, it might be possible to do more than just read and write to the pty.

Список параметров

cmd

The command to execute

descriptorspec

An indexed array where the key represents the descriptor number and the value represents how PHP will pass that descriptor to the child process. 0 is stdin, 1 is stdout, while 2 is stderr.

The currently supported pipe types are file, pipe and pty.

The file descriptor numbers are not limited to 0, 1 and 2 - you may specify any valid file descriptor number and it will be passed to the child process. This allows your script to interoperate with other scripts that run as "co-processes". In particular, this is useful for passing passphrases to programs like PGP, GPG and openssl in a more secure manner. It is also useful for reading status information provided by those programs on auxiliary file descriptors.

pipes

Will be set to an indexed array of file pointers that correspond to PHP's end of any pipes that are created.

cwd

The initial working dir for the command. This must be an absolute directory path, or NULL if you want to use the default value (the working dir of the current PHP process)

env

An array with the environment variables for the command that will be run, or NULL to use the same environment as the current PHP process

other_options

Allows you to specify additional options. Currently only suppress_errors is supported, which suppresses errors generated by this function when it's set to TRUE

Возвращаемые значения

Returns a resource representing the process, which should be freed using proc_close() when you are finished with it. On failure returns FALSE.

Список изменений

Версия | Описание
5.0.0. | Added the cwd, env and other_options parameters. Added support for Unix98 ptys.

Примеры

Пример 1. A proc_open() example

<?php
$descriptorspec = array(
   0 => array("pipe", "r"),  // stdin is a pipe that the child will read from
   1 => array("pipe", "w"),  // stdout is a pipe that the child will write to
   2 => array("file", "/tmp/error-output.txt", "a") // stderr is a file to write to
);

$cwd = '/tmp';
$env = array('some_option' => 'aeiou');

$process = proc_open('php', $descriptorspec, $pipes, $cwd, $env);

if (is_resource($process)) {
    // $pipes now looks like this:
    // 0 => writeable handle connected to child stdin
    // 1 => readable handle connected to child stdout
    // Any error output will be appended to /tmp/error-output.txt

    fwrite($pipes[0], '<?php print_r($_ENV); ?>');
    fclose($pipes[0]);

    echo stream_get_contents($pipes[1]);
    fclose($pipes[1]);

    // It is important that you close any pipes before calling
    // proc_close in order to avoid a deadlock
    $return_value = proc_close($process);

    echo "command returned $return_value\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [some_option] => aeiou
    [PWD] => /tmp
    [SHLVL] => 1
    [_] => /usr/local/bin/php
)
command returned 0

Пример 2. ptys usage

<?php
// Create a pseudo terminal for the child process
$descriptorspec = array(
   0 => array("pty"),
   1 => array("pty"),
   2 => array("pty")
);
$process = proc_open("cvs -d:pserver:cvsread@cvs.php.net:/repository login", $descriptorspec, $pipes);
if (is_resource($process)) {
   // work with it here
}
?>

Примечания

Замечание: Windows compatibility: Descriptors beyond 2 (stderr) are made available to the child process as inheritable handles, but since the Windows architecture does not associate file descriptor numbers with low-level handles, the child process does not (yet) have a means of accessing those handles. Stdin, stdout and stderr work as expected.

Замечание: If you only need a uni-directional (one-way) process pipe, use popen() instead, as it is much easier to use.

Смотрите также

popen()
exec()
system()
passthru()
stream_select()
The backtick operator

Пред. | Начало | След.
proc_nice | Уровень выше | proc_terminate


proc_terminate

(PHP 5)

proc_terminate -- kills a process opened by proc_open

Описание

int proc_terminate ( resource process [, int signal] )

Signals a process (created using proc_open()) that it should terminate. proc_terminate() returns immediately and does not wait for the process to terminate.

The optional signal is only useful on POSIX operating systems; you may specify a signal to send to the process using the kill(2) system call. The default is SIGTERM.

proc_terminate() allows you terminate the process and continue with other tasks. You may poll the process (to see if it has stopped yet) by using the proc_get_status() function.

Смотрите также

proc_open()
proc_close()
proc_get_status()

Пред. | Начало | След.
proc_open | Уровень выше | shell_exec


shell_exec

(PHP 4, PHP 5)

shell_exec -- Execute command via shell and return the complete output as a string

Описание

string shell_exec ( string cmd )

This function is identical to the backtick operator.

Список параметров

cmd

The command that will be executed.

Возвращаемые значения

The output from the executed command.

Примеры

Пример 1. A shell_exec() example

<?php
$output = shell_exec('ls -lart');
echo "<pre>$output</pre>";
?>

Примечания

Замечание: Эта функция недоступна в безопасном режиме.

Смотрите также

exec()
escapeshellcmd()

Пред. | Начало | След.
proc_terminate | Уровень выше | system


system

(PHP 3, PHP 4, PHP 5)

system -- Execute an external program and display the output

Описание

string system ( string command [, int &return_var] )

system() is just like the C version of the function in that it executes the given command and outputs the result.

The system() call also tries to automatically flush the web server's output buffer after each line of output if PHP is running as a server module.

If you need to execute a command and have all the data from the command passed directly back without any interference, use the passthru() function.

Список параметров

command

The command that will be executed.

return_var

If the return_var argument is present, then the return status of the executed command will be written to this variable.

Возвращаемые значения

Returns the last line of the command output on success, and FALSE on failure.

Примеры

Пример 1. system() example

<?php
echo '<pre>';

// Outputs all the result of shellcommand "ls", and returns
// the last output line into $last_line. Stores the return value
// of the shell command in $retval.
$last_line = system('ls', $retval);

// Printing additional info
echo '
</pre>
<hr />Last line of the output: ' . $last_line . '
<hr />Return value: ' . $retval;
?>

Примечания

Внимание

Если вы собираетесь передавать функции данные, отправленные пользователем, вы должны использовать функции escapeshellarg() или escapeshellcmd() для того, чтобы обезопасить исполнение команд.

Замечание: Если вы собираетесь использовать эту функцию в программе, работающей в качестве демона, убедитесь, что стандартный вывод функции направлен в файл или другой поток, в противном случае PHP зависнет вплоть до конца выполнения программы.

Замечание: В случае работы в безопасном режиме, вы можете запускать что-либо только в пределах safe_mode_exec_dir. В настоящее время, использование .. в пути запрещено

Внимание

В случае работы в безопасном режиме, все слова, следующие за начальной командой, рассматриваются как единый аргумент. То есть echo y | echo x будет работать как echo "y | echo x".

Смотрите также

exec()
passthru()
popen()
escapeshellcmd()
pcntl_exec()
backtick operator

Пред. | Начало | След.
shell_exec | Уровень выше | PostScript document creation


Exif Functions

Руководство по PHP
Пред. След.

XXXIII. Exif Functions

Введение

With the exif extension you are able to work with image meta data. For example, you may use exif functions to read meta data of pictures taken from digital cameras by working with information stored in the headers of the JPEG and TIFF images.

Требования

Your PHP must be compiled in with --enable-exif. PHP does not require any additional library for the exif module. Windows users must also have the mbstring extension enabled.

Установка

To enable exif-support configure PHP with --enable-exif

Windows users must enable both the php_mbstring.dll and php_exif.dll DLL's in php.ini. The php_mbstring.dll DLL must be loaded before the php_exif.dll DLL so adjust your php.ini accordingly.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Exif supports automatically conversion for Unicode and JIS character encodings of user comments when module mbstring is available. This is done by first decoding the comment using the specified characterset. The result is then encoded with another characterset which should match your HTTP output.

Таблица 1. Exif configuration options

Name | Default | Changeable | Changelog
exif.encode_unicode | "ISO-8859-15" | PHP_INI_ALL | Available since PHP 4.3.0.
exif.decode_unicode_motorola | "UCS-2BE" | PHP_INI_ALL | Available since PHP 4.3.0.
exif.decode_unicode_intel | "UCS-2LE" | PHP_INI_ALL | Available since PHP 4.3.0.
exif.encode_jis | "" | PHP_INI_ALL | Available since PHP 4.3.0.
exif.decode_jis_motorola | "JIS" | PHP_INI_ALL | Available since PHP 4.3.0.
exif.decode_jis_intel | "JIS" | PHP_INI_ALL | Available since PHP 4.3.0.
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

exif.encode_unicode string

exif.encode_unicode defines the characterset UNICODE user comments are handled. This defaults to ISO-8859-15 which should work for most non Asian countries. The setting can be empty or must be an encoding supported by mbstring. If it is empty the current internal encoding of mbstring is used.

exif.decode_unicode_motorola string

exif.decode_unicode_motorola defines the image internal characterset for Unicode encoded user comments if image is in motorola byte order (big-endian). This setting cannot be empty but you can specify a list of encodings supported by mbstring. The default is UCS-2BE.

exif.decode_unicode_intel string

exif.decode_unicode_intel defines the image internal characterset for Unicode encoded user comments if image is in intel byte order (little-endian). This setting cannot be empty but you can specify a list of encodings supported by mbstring. The default is UCS-2LE.

exif.encode_jis string

exif.encode_jis defines the characterset JIS user comments are handled. This defaults to an empty value which forces the functions to use the current internal encoding of mbstring.

exif.decode_jis_motorola string

exif.decode_jis_motorola defines the image internal characterset for JIS encoded user comments if image is in motorola byte order (big-endian). This setting cannot be empty but you can specify a list of encodings supported by mbstring. The default is JIS.

exif.decode_jis_intel string

exif.decode_jis_intel defines the image internal characterset for JIS encoded user comments if image is in intel byte order (little-endian). This setting cannot be empty but you can specify a list of encodings supported by mbstring. The default is JIS.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

EXIF_USE_MBSTRING (integer)

The exif_imagetype() lists several related built-in constants.

Содержание
exif_imagetype -- Determine the type of an image
exif_read_data -- Reads the EXIF headers from JPEG or TIFF
exif_tagname -- Get the header name for an index
exif_thumbnail -- Retrieve the embedded thumbnail of a TIFF or JPEG image
read_exif_data -- Alias of exif_read_data()

Пред. | Начало | След.
user_error | Уровень выше | exif_imagetype


exif_imagetype

(PHP 4 >= 4.3.0, PHP 5)

exif_imagetype -- Determine the type of an image

Описание

int exif_imagetype ( string filename )

exif_imagetype() reads the first bytes of an image and checks its signature.

exif_imagetype() can be used to avoid calls to other exif functions with unsupported file types or in conjunction with $_SERVER['HTTP_ACCEPT'] to check whether or not the viewer is able to see a specific image in the browser.

Список параметров

filename

The image being checked.

Возвращаемые значения

When a correct signature is found, the appropriate constant value will be returned otherwise the return value is FALSE. The return value is the same value that getimagesize() returns in index 2 but exif_imagetype() is much faster.

Список изменений

Версия | Описание
4.3.2 | Support for JPC, JP2, JPX, JB2, XBM, and WBMP
4.3.0 | Support for SWC

Предопределенные константы

The following constants are defined, and represent possible exif_imagetype() return values:

Таблица 1. Imagetype Constants

Value | Constant
1 | IMAGETYPE_GIF
2 | IMAGETYPE_JPEG
3 | IMAGETYPE_PNG
4 | IMAGETYPE_SWF
5 | IMAGETYPE_PSD
6 | IMAGETYPE_BMP
7 | IMAGETYPE_TIFF_II (intel byte order)
8 | IMAGETYPE_TIFF_MM (motorola byte order)
9 | IMAGETYPE_JPC
10 | IMAGETYPE_JP2
11 | IMAGETYPE_JPX
12 | IMAGETYPE_JB2
13 | IMAGETYPE_SWC
14 | IMAGETYPE_IFF
15 | IMAGETYPE_WBMP
16 | IMAGETYPE_XBM

Примеры

Пример 1. exif_imagetype() example

<?php
if (exif_imagetype('image.gif') != IMAGETYPE_GIF) {
    echo 'The picture is not a gif';
}
?>

Смотрите также

getimagesize()

Пред. | Начало | След.
Exif Functions | Уровень выше | exif_read_data


exif_read_data

(PHP 4 >= 4.2.0, PHP 5)

exif_read_data -- Reads the EXIF headers from JPEG or TIFF

Описание

array exif_read_data ( string filename [, string sections [, bool arrays [, bool thumbnail]]] )

exif_read_data() reads the EXIF headers from a JPEG or TIFF image file. This way you can read meta data generated by digital cameras.

Exif headers tend to be present in JPEG/TIFF images generated by digital cameras, but unfortunately each digital camera maker has a different idea of how to actually tag their images, so you can't always rely on a specific Exif header being present.

Height and Width are computed the same way getimagesize() does so their values must not be part of any header returned. Also, html is a height/width text string to be used inside normal HTML.

When an Exif header contains a Copyright note, this itself can contain two values. As the solution is inconsistent in the Exif 2.10 standard, the COMPUTED section will return both entries Copyright.Photographer and Copyright.Editor while the IFD0 sections contains the byte array with the NULL character that splits both entries. Or just the first entry if the datatype was wrong (normal behaviour of Exif). The COMPUTED will also contain the entry Copyright which is either the original copyright string, or a comma separated list of the photo and editor copyright.

The tag UserComment has the same problem as the Copyright tag. It can store two values. First the encoding used, and second the value itself. If so the IFD section only contains the encoding or a byte array. The COMPUTED section will store both in the entries UserCommentEncoding and UserComment. The entry UserComment is available in both cases so it should be used in preference to the value in IFD0 section.

exif_read_data() also validates EXIF data tags according to the EXIF specification (http://exif.org/Exif2-2.PDF, page 20).

Замечание: Windows ME/XP can both wipe the Exif headers when connecting to a camera. More information available at http://www.canon.co.jp/Imaging/NOTICE/011214-e.html.

Список параметров

filename

The name of the image file being read. This cannot be an URL.

sections

Is a comma separated list of sections that need to be present in file to produce a result array. If none of the requested sections could be found the return value is FALSE.

FILE | FileName, FileSize, FileDateTime, SectionsFound
COMPUTED | html, Width, Height, IsColor, and more if available. Height and Width are computed the same way getimagesize() does so their values must not be part of any header returned. Also, html is a height/width text string to be used inside normal HTML.
ANY_TAG | Any information that has a Tag e.g. IFD0, EXIF, ...
IFD0 | All tagged data of IFD0. In normal imagefiles this contains image size and so forth.
THUMBNAIL | A file is supposed to contain a thumbnail if it has a second IFD. All tagged information about the embedded thumbnail is stored in this section.
COMMENT | Comment headers of JPEG images.
EXIF | The EXIF section is a sub section of IFD0. It contains more detailed information about an image. Most of these entries are digital camera related.

arrays

Specifies whether or not each section becomes an array. The sections COMPUTED, THUMBNAIL, and COMMENT always become arrays as they may contain values whose names conflict with other sections.

thumbnail

When set to TRUE the thumbnail itself is read. Otherwise, only the tagged data is read.

Возвращаемые значения

It returns an associative array where the array indexes are the header names and the array values are the values associated with those headers. If no data can be returned, exif_read_data() will return FALSE.

Список изменений

Версия | Описание
4.3.0 | Can read all embedded IFD data including arrays (returned as such). Also the size of an embedded thumbnail is returned in a THUMBNAIL subarray, and can return thumbnails in TIFF format. Also, there is no longer a maximum length for returned values (not until the memory limit has been reached)
4.3.0 | If PHP has mbstring support, the user comment can automatically change encoding. Also, if the user comment uses Unicode or JIS encoding this encoding will automatically be changed according to the exif ini settings in php.ini
4.3.0 | If the image contains any IFD0 data then COMPUTED contains the entry ByteOrderMotorola which is 0 for little-endian (intel) and 1 for big-endian (motorola) byte order. Also, COMPUTED and UserComment no longer only contain the first copyright entry if the datatype was wrong.

Примеры

Пример 1. exif_read_data() example

<?php
echo "test1.jpg:<br />\n";
$exif = exif_read_data('tests/test1.jpg', 'IFD0');
echo $exif===false ? "No header data found.<br />\n" : "Image contains headers<br />\n";

$exif = exif_read_data('tests/test2.jpg', 0, true);
echo "test2.jpg:<br />\n";
foreach ($exif as $key => $section) {
    foreach ($section as $name => $val) {
        echo "$key.$name: $val<br />\n";
    }
}
?>

The first call fails because the image has no header information.

Результатом выполнения данного примера будет что-то подобное:

test1.jpg:
No header data found.
test2.jpg:
FILE.FileName: test2.jpg
FILE.FileDateTime: 1017666176
FILE.FileSize: 1240
FILE.FileType: 2
FILE.SectionsFound: ANY_TAG, IFD0, THUMBNAIL, COMMENT
COMPUTED.html: width="1" height="1"
COMPUTED.Height: 1
COMPUTED.Width: 1
COMPUTED.IsColor: 1
COMPUTED.ByteOrderMotorola: 1
COMPUTED.UserComment: Exif test image.
COMPUTED.UserCommentEncoding: ASCII
COMPUTED.Copyright: Photo (c) M.Boerger, Edited by M.Boerger.
COMPUTED.Copyright.Photographer: Photo (c) M.Boerger
COMPUTED.Copyright.Editor: Edited by M.Boerger.
IFD0.Copyright: Photo (c) M.Boerger
IFD0.UserComment: ASCII
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.JPEGInterchangeFormatLength: 523
COMMENT.0: Comment #1.
COMMENT.1: Comment #2.
COMMENT.2: Comment #3end
THUMBNAIL.JPEGInterchangeFormat: 134
THUMBNAIL.Thumbnail.Height: 1
THUMBNAIL.Thumbnail.Height: 1

Смотрите также

exif_thumbnail()
getimagesize()

Пред. | Начало | След.
exif_imagetype | Уровень выше | exif_tagname


exif_tagname

(PHP 4 >= 4.2.0, PHP 5)

exif_tagname -- Get the header name for an index

Описание

string exif_tagname ( string index )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

index

The image index

Возвращаемые значения

Returns the header name, or FALSE if index is undefined.

Смотрите также

exif_imagetype()

Пред. | Начало | След.
exif_read_data | Уровень выше | exif_thumbnail


exif_thumbnail

(PHP 4 >= 4.2.0, PHP 5)

exif_thumbnail -- Retrieve the embedded thumbnail of a TIFF or JPEG image

Описание

string exif_thumbnail ( string filename [, int &width [, int &height [, int &imagetype]]] )

exif_thumbnail() reads the embedded thumbnail of a TIFF or JPEG image.

If you want to deliver thumbnails through this function, you should send the mimetype information using the header() function.

It is possible that exif_thumbnail() cannot create an image but can determine its size. In this case, the return value is FALSE but width and height are set.

Список параметров

filename

The name of the image file being read. This image contains an embedded thumbnail.

width

The return width of the returned thumbnail.

height

The returned height of the returned thumbnail.

imagetype

The returned image type of the returned thumbnail. This is either TIFF or JPEG.

Возвращаемые значения

Returns the embedded thumbnail, or FALSE if the image contains no thumbnail.

Список изменений

Версия | Описание
4.3.0 | The optional parameters width, height, and imagetype all became available.
4.3.0 | May return thumbnails in the TIFF format.

Примеры

Пример 1. exif_thumbnail() example

<?php
if (array_key_exists('file', $_REQUEST)) {
    $image = exif_thumbnail($_REQUEST['file'], $width, $height, $type);
} else {
    $image = false;
}
if ($image!==false) {
    header('Content-type: ' .image_type_to_mime_type($type));
    echo $image;
    exit;
} else {
    // no thumbnail available, handle the error here
    echo 'No thumbnail available';
}
?>

Смотрите также

exif_read_data()
image_type_to_mime_type()

Пред. | Начало | След.
exif_tagname | Уровень выше | read_exif_data


read_exif_data

(PHP 4 >= 4.0.1, PHP 5)

read_exif_data -- Alias of exif_read_data()

Описание

This function is an alias of: exif_read_data().

Пред. | Начало | След.
exif_thumbnail | Уровень выше | Expect Functions


File Alteration Monitor Functions

Руководство по PHP
Пред. След.

XXXV. File Alteration Monitor Functions

Введение

FAM monitors files and directories, notifying interested applications of changes. More information about FAM is available at http://oss.sgi.com/projects/fam/.

A PHP script may specify a list of files for FAM to monitor using the functions provided by this extension.

The FAM process is started when the first connection from any application to it is opened. It exits after all connections to it have been closed.

Замечание: This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 5.1.0.

Замечание: Для Windows-платформ это расширение недоступно.

Требования

This extension uses the functions of the FAM library, developed by SGI. Therefore you have to download and install the FAM library.

Установка

To use PHP's FAM support you must compile PHP --with-fam[=DIR] where DIR is the location of the directory containing the lib and include directories.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

FAM resource

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

Таблица 1. FAM event constants

Constant | Description
FAMChanged (integer) | Some value which can be obtained with fstat(1) changed for a file or directory.
FAMDeleted (integer) | A file or directory was deleted or renamed.
FAMStartExecuting (integer) | An executable file started executing.
FAMStopExecuting (integer) | An executable file that was running finished.
FAMCreated (integer) | A file was created in a directory.
FAMMoved (integer) | This event never occurs.
FAMAcknowledge (integer) | An event in response to fam_cancel_monitor().
FAMExists (integer) | An event upon request to monitor a file or directory. When a directory is monitored, an event for that directory and every file contained in that directory is issued.
FAMEndExist (integer) | Event after the last FAMEExists event.
Содержание
fam_cancel_monitor -- Terminate monitoring
fam_close -- Close FAM connection
fam_monitor_collection -- Monitor a collection of files in a directory for changes
fam_monitor_directory -- Monitor a directory for changes
fam_monitor_file -- Monitor a regular file for changes
fam_next_event -- Get next pending FAM event
fam_open -- Open connection to FAM daemon
fam_pending -- Check for pending FAM events
fam_resume_monitor -- Resume suspended monitoring
fam_suspend_monitor -- Temporarily suspend monitoring

Пред. | Начало | След.
expect_popen | Уровень выше | fam_cancel_monitor


fam_cancel_monitor

(PHP 5 <= 5.0.4)

fam_cancel_monitor -- Terminate monitoring

Описание

bool fam_cancel_monitor ( resource fam, resource fam_monitor )

fam_cancel_monitor() terminates monitoring on a resource previously requested using one of the fam_monitor_ functions. In addition an FAMAcknowledge event occurs.

See also fam_monitor_file(),
fam_monitor_directory(),
fam_monitor_collection(), and
fam_suspend_monitor()

Пред. | Начало | След.
File Alteration Monitor Functions | Уровень выше | fam_close


fam_close

(PHP 5 <= 5.0.4)

fam_close -- Close FAM connection

Описание

void fam_close ( resource fam )

fam_close() closes a connection to the FAM service previously opened using fam_open().

Пред. | Начало | След.
fam_cancel_monitor | Уровень выше | fam_monitor_collection


fam_monitor_collection

(PHP 5 <= 5.0.4)

fam_monitor_collection -- Monitor a collection of files in a directory for changes

Описание

resource fam_monitor_collection ( resource fam, string dirname, int depth, string mask )

fam_monitor_collection() requests monitoring for a collection of files within a directory. The actual files to be monitored are specified by a directory path in dirname, the maximum search depth starting from this directory and a shell pattern mask restricting the file names to look for.

A FAM event will be generated whenever the status of the files change. The possible event codes are described in detail in the constants part of this section.

See also fam_monitor_file(),
fam_monitor_directory(),
fam_cancel_monitor(),
fam_suspend_monitor(), and
fam_resume_monitor().

Пред. | Начало | След.
fam_close | Уровень выше | fam_monitor_directory


fam_monitor_directory

(PHP 5 <= 5.0.4)

fam_monitor_directory -- Monitor a directory for changes

Описание

resource fam_monitor_directory ( resource fam, string dirname )

fam_monitor_directory() requests monitoring for a directory and all contained files. A FAM event will be generated whenever the status of the directory (i.e. the result of function stat() on that directory) or its content (i.e. the results of readdir()) change.

The possible event codes are described in detail in the constants part of this section.

See also fam_monitor_file(),
fam_monitor_collection(),
fam_cancel_monitor(),
fam_suspend_monitor(), and
fam_resume_monitor().

Пред. | Начало | След.
fam_monitor_collection | Уровень выше | fam_monitor_file


fam_monitor_file

(PHP 5 <= 5.0.4)

fam_monitor_file -- Monitor a regular file for changes

Описание

resource fam_monitor_file ( resource fam, string filename )

fam_monitor_file() requests monitoring for a single file. A FAM event will be generated whenever the file status (i.e. the result of function stat() on that file) changes.

The possible event codes are described in detail in the constants part of this section.

See also fam_monitor_directory(),
fam_monitor_collection(),
fam_cancel_monitor(),
fam_suspend_monitor(), and
fam_resume_monitor().

Пред. | Начало | След.
fam_monitor_directory | Уровень выше | fam_next_event


fam_next_event

(PHP 5 <= 5.0.4)

fam_next_event -- Get next pending FAM event

Описание

array fam_next_event ( resource fam )

fam_next_event() returns the next pending FAM event. The function will block until an event is available which can be checked for using fam_pending().

fam_next_event() will return an array that contains a FAM event code in element 'code', the path of the file this event applies to in element 'filename' and optionally a hostname in element 'hostname'.

The possible event codes are described in detail in the constants part of this section.

See also fam_pending().

Пред. | Начало | След.
fam_monitor_file | Уровень выше | fam_open


fam_open

(PHP 5 <= 5.0.4)

fam_open -- Open connection to FAM daemon

Описание

resource fam_open ( [string appname] )

fam_open() opens a connection to the FAM service daemon. The optional parameter appname should be set to a string identifying the application for logging reasons.

See also fam_close().

Пред. | Начало | След.
fam_next_event | Уровень выше | fam_pending


fam_pending

(PHP 5 <= 5.0.4)

fam_pending -- Check for pending FAM events

Описание

int fam_pending ( resource fam )

fam_pending() returns non-zero if events are available to be fetched using fam_next_event().

See also fam_next_event().

Пред. | Начало | След.
fam_open | Уровень выше | fam_resume_monitor


fam_resume_monitor

(PHP 5 <= 5.0.4)

fam_resume_monitor -- Resume suspended monitoring

Описание

bool fam_resume_monitor ( resource fam, resource fam_monitor )

fam_resume_monitor() resumes monitoring of a resource previously suspend using fam_suspend_monitor().

See also fam_suspend_monitor().

Пред. | Начало | След.
fam_pending | Уровень выше | fam_suspend_monitor


fam_suspend_monitor

(PHP 5 <= 5.0.4)

fam_suspend_monitor -- Temporarily suspend monitoring

Описание

bool fam_suspend_monitor ( resource fam, resource fam_monitor )

fam_suspend_monitor() temporarily suspend monitoring of a resource previously requested using one of the fam_monitor_ functions. Monitoring can later be continued using fam_resume_monitor() without the need of requesting a complete new monitor.

See also fam_resume_monitor(), and fam_cancel_monitor().

Пред. | Начало | След.
fam_resume_monitor | Уровень выше | Forms Data Format Functions


FrontBase Functions

Руководство по PHP
Пред. След.

XLII. FrontBase Functions

Введение

These functions allow you to access FrontBase database servers. More information about FrontBase can be found at http://www.frontbase.com/.

Documentation for FrontBase can be found at http://www.frontbase.com/cgi-bin/WebObjects/FrontBase.woa/wa/productsPage?currentPage=Documentation.

Frontbase support has been added to PHP 4.0.6.

Требования

You must install the FrontBase database server or at least the fbsql client libraries to use this functions. You can get FrontBase from http://www.frontbase.com/.

Установка

In order to have these functions available, you must compile PHP with fbsql support by using the --with-fbsql[=DIR] option. If you use this option without specifying the path to fbsql, PHP will search for the fbsql client libraries in the default installation location for the platform. Users who installed FrontBase in a non standard directory should always specify the path to fbsql: --with-fbsql=/path/to/fbsql. This will force PHP to use the client libraries installed by FrontBase, avoiding any conflicts.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. FrontBase configuration options

Name | Default | Changeable | Changelog
fbsql.allow_persistent | "1" | PHP_INI_SYSTEM | Available since PHP 4.2.0.
fbsql.generate_warnings | "0" | PHP_INI_SYSTEM | Available since PHP 4.0.6.
fbsql.autocommit | "1" | PHP_INI_SYSTEM | Available since PHP 4.0.6.
fbsql.max_persistent | "-1" | PHP_INI_SYSTEM | Available since PHP 4.0.6.
fbsql.max_links | "128" | PHP_INI_SYSTEM | Available since PHP 4.0.6.
fbsql.max_connections | "128" | PHP_INI_SYSTEM | Available since PHP 4.0.6.
fbsql.max_results | "128" | PHP_INI_SYSTEM | Available since PHP 4.0.6.
fbsql.batchSize | "1000" | PHP_INI_SYSTEM |
fbsql.default_host | NULL | PHP_INI_SYSTEM | Available since PHP 4.0.6.
fbsql.default_user | "_SYSTEM" | PHP_INI_SYSTEM | Available since PHP 4.0.6.
fbsql.default_password | "" | PHP_INI_SYSTEM | Available since PHP 4.0.6.
fbsql.default_database | "" | PHP_INI_SYSTEM | Available since PHP 4.0.6.
fbsql.default_database_password | "" | PHP_INI_SYSTEM | Available since PHP 4.0.6.
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Типы ресурсов

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

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 -- Get number of affected rows in previous FrontBase operation
fbsql_autocommit -- Enable or disable autocommit
fbsql_blob_size -- Get the size of a BLOB
fbsql_change_user -- Change logged in user of the active connection
fbsql_clob_size -- Get the size of a CLOB
fbsql_close -- Close FrontBase connection
fbsql_commit -- Commits a transaction to the database
fbsql_connect -- Open a connection to a FrontBase Server
fbsql_create_blob -- Create a BLOB
fbsql_create_clob -- Create a CLOB
fbsql_create_db -- Create a FrontBase database
fbsql_data_seek -- Move internal result pointer
fbsql_database_password -- Sets or retrieves the password for a FrontBase database
fbsql_database -- Get or set the database name used with a connection
fbsql_db_query -- Send a FrontBase query
fbsql_db_status -- Get the status for a given database
fbsql_drop_db -- Drop (delete) a FrontBase database
fbsql_errno -- Returns the numerical value of the error message from previous FrontBase operation
fbsql_error -- Returns the text of the error message from previous FrontBase operation
fbsql_fetch_array -- Fetch a result row as an associative array, a numeric array, or both
fbsql_fetch_assoc -- Fetch a result row as an associative array
fbsql_fetch_field -- Get column information from a result and return as an object
fbsql_fetch_lengths -- Get the length of each output in a result
fbsql_fetch_object -- Fetch a result row as an object
fbsql_fetch_row -- Get a result row as an enumerated array
fbsql_field_flags -- Get the flags associated with the specified field in a result
fbsql_field_len -- Returns the length of the specified field
fbsql_field_name -- Get the name of the specified field in a result
fbsql_field_seek -- Set result pointer to a specified field offset
fbsql_field_table -- Get name of the table the specified field is in
fbsql_field_type -- Get the type of the specified field in a result
fbsql_free_result -- Free result memory
fbsql_get_autostart_info -- No description given yet
fbsql_hostname -- Get or set the host name used with a connection
fbsql_insert_id -- Get the id generated from the previous INSERT operation
fbsql_list_dbs -- List databases available on a FrontBase server
fbsql_list_fields -- List FrontBase result fields
fbsql_list_tables -- List tables in a FrontBase database
fbsql_next_result -- Move the internal result pointer to the next result
fbsql_num_fields -- Get number of fields in result
fbsql_num_rows -- Get number of rows in result
fbsql_password -- Get or set the user password used with a connection
fbsql_pconnect -- Open a persistent connection to a FrontBase Server
fbsql_query -- Send a FrontBase query
fbsql_read_blob -- Read a BLOB from the database
fbsql_read_clob -- Read a CLOB from the database
fbsql_result -- Get result data
fbsql_rollback -- Rollback a transaction to the database
fbsql_select_db -- Select a FrontBase database
fbsql_set_lob_mode -- Set the LOB retrieve mode for a FrontBase result set
fbsql_set_password -- Change the password for a given user
fbsql_set_transaction -- Set the transaction locking and isolation
fbsql_start_db -- Start a database on local or remote server
fbsql_stop_db -- Stop a database on local or remote server
fbsql_tablename -- Get table name of field
fbsql_username -- Get or set the host user used with a connection
fbsql_warnings -- Enable or disable FrontBase warnings

Пред. | Начало | След.
fribidi_log2vis | Уровень выше | fbsql_affected_rows


fbsql_affected_rows

(PHP 4 >= 4.0.6, PHP 5)

fbsql_affected_rows -- Get number of affected rows in previous FrontBase operation

Описание

int fbsql_affected_rows ( [resource link_identifier] )

fbsql_affected_rows() returns the number of rows affected by the last INSERT, UPDATE or DELETE query associated with link_identifier. If the link identifier isn't specified, the last link opened by fbsql_connect() is assumed.

Замечание: If you are using transactions, you need to call fbsql_affected_rows() after your INSERT, UPDATE, or DELETE query, not after the commit.

If the last query was a DELETE query with no WHERE clause, all of the records will have been deleted from the table but this function will return zero.

Замечание: When using UPDATE, FrontBase will not update columns where the new value is the same as the old value. This creates the possibility that fbsql_affected_rows() may not actually equal the number of rows matched, only the number of rows that were literally affected by the query.

If the last query failed, this function will return -1.

See also: fbsql_num_rows().

Пред. | Начало | След.
FrontBase Functions | Уровень выше | fbsql_autocommit


fbsql_autocommit

(PHP 4 >= 4.0.6, PHP 5)

fbsql_autocommit -- Enable or disable autocommit

Описание

bool fbsql_autocommit ( resource link_identifier [, bool OnOff] )

fbsql_autocommit() returns the current autocommit status. If the optional OnOff parameter is given the auto commit status will be changed. With OnOff set to TRUE each statement will be committed automatically, if no errors was found. With OnOff set to FALSE the user must commit or rollback the transaction using either fbsql_commit() or fbsql_rollback().

See also: fbsql_commit() and fbsql_rollback()

Пред. | Начало | След.
fbsql_affected_rows | Уровень выше | fbsql_blob_size


fbsql_blob_size

(PHP 4 >= 4.2.0, PHP 5)

fbsql_blob_size -- Get the size of a BLOB

Описание

int fbsql_blob_size ( string blob_handle [, resource link_identifier] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
fbsql_autocommit | Уровень выше | fbsql_change_user


fbsql_change_user

(no version information, might be only in CVS)

fbsql_change_user -- Change logged in user of the active connection

Описание

resource fbsql_change_user ( string user, string password [, string database [, resource link_identifier]] )

fbsql_change_user() changes the logged in user of the current active connection, or the connection given by the optional parameter link_identifier. If a database is specified, this will default or current database after the user has been changed. If the new user and password authorization fails, the current connected user stays active.

Пред. | Начало | След.
fbsql_blob_size | Уровень выше | fbsql_clob_size


fbsql_clob_size

(PHP 4 >= 4.2.0, PHP 5)

fbsql_clob_size -- Get the size of a CLOB

Описание

int fbsql_clob_size ( string clob_handle [, resource link_identifier] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
fbsql_change_user | Уровень выше | fbsql_close


fbsql_close

(PHP 4 >= 4.0.6, PHP 5)

fbsql_close -- Close FrontBase connection

Описание

bool fbsql_close ( [resource link_identifier] )

Returns: TRUE on success, FALSE on error.

fbsql_close() closes the connection to the FrontBase server that's associated with the specified link identifier. If link_identifier isn't specified, the last opened link is used.

Using fbsql_close() isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.

Пример 1. fbsql_close() example

<?php
    $link = fbsql_connect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    echo "Connected successfully";
    fbsql_close($link);
?>

See also: fbsql_connect() and fbsql_pconnect().

Пред. | Начало | След.
fbsql_clob_size | Уровень выше | fbsql_commit


fbsql_commit

(PHP 4 >= 4.0.6, PHP 5)

fbsql_commit -- Commits a transaction to the database

Описание

bool fbsql_commit ( [resource link_identifier] )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

fbsql_commit() ends the current transaction by writing all inserts, updates and deletes to the disk and unlocking all row and table locks held by the transaction. This command is only needed if autocommit is set to false.

See also: fbsql_autocommit() and fbsql_rollback()

Пред. | Начало | След.
fbsql_close | Уровень выше | fbsql_connect


fbsql_connect

(PHP 4 >= 4.0.6, PHP 5)

fbsql_connect -- Open a connection to a FrontBase Server

Описание

resource fbsql_connect ( [string hostname [, string username [, string password]]] )

Returns a positive FrontBase link identifier on success, or an error message on failure.

fbsql_connect() establishes a connection to a
FrontBase server.  The following defaults are assumed for missing
optional parameters: hostname = 'NULL',
username = '_SYSTEM' and
password = empty password.

If a second call is made to fbsql_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned.

The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling fbsql_close().

Пример 1. fbsql_connect() example

<?php

    $link = fbsql_connect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    echo "Connected successfully";
    fbsql_close($link);

?>

See also fbsql_pconnect() and fbsql_close().

Пред. | Начало | След.
fbsql_commit | Уровень выше | fbsql_create_blob


fbsql_create_blob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_create_blob -- Create a BLOB

Описание

string fbsql_create_blob ( string blob_data [, resource link_identifier] )

Returns: A resource handle to the newly created blob.

fbsql_create_blob() creates a blob from blob_data. The returned resource handle can be used with insert and update commands to store the blob in the database.

Пример 1. fbsql_create_blob() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    $filename = "blobfile.bin";
    $fp = fopen($filename, "rb");
    $blobdata = fread($fp, filesize($filename));
    fclose($fp);

    $blobHandle = fbsql_create_blob($blobdata, $link);

    $sql = "INSERT INTO BLOB_TABLE (BLOB_COLUMN) VALUES ($blobHandle);";
    $rs = fbsql_query($sql, $link);
?>

See also: fbsql_create_clob(),
fbsql_read_blob(),
fbsql_read_clob(), and
fbsql_set_lob_mode().

Пред. | Начало | След.
fbsql_connect | Уровень выше | fbsql_create_clob


fbsql_create_clob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_create_clob -- Create a CLOB

Описание

string fbsql_create_clob ( string clob_data [, resource link_identifier] )

Returns: A resource handle to the newly created CLOB.

fbsql_create_clob() creates a clob from clob_data. The returned resource handle can be used with insert and update commands to store the clob in the database.

Пример 1. fbsql_create_clob() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    $filename = "clob_file.txt";
    $fp = fopen($filename, "rb");
    $clobdata = fread($fp, filesize($filename));
    fclose($fp);

    $clobHandle = fbsql_create_clob($clobdata, $link);

    $sql = "INSERT INTO CLOB_TABLE (CLOB_COLUMN) VALUES ($clobHandle);";
    $rs = fbsql_query($sql, $link);
?>

See also: fbsql_create_blob(),
fbsql_read_blob(),
fbsql_read_clob(), and
fbsql_set_lob_mode().

Пред. | Начало | След.
fbsql_create_blob | Уровень выше | fbsql_create_db


fbsql_create_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_create_db -- Create a FrontBase database

Описание

bool fbsql_create_db ( string database_name [, resource link_identifier [, string database_options]] )

fbsql_create_db() attempts to create a new database named database_name on the server associated with the specified connection link_identifier.

Пример 1. fbsql_create_db() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    if (fbsql_create_db("my_db")) {
        echo "Database created successfully\n";
    } else {
        printf("Error creating database: %s\n", fbsql_error());
    }
?>

See also: fbsql_drop_db().

Пред. | Начало | След.
fbsql_create_clob | Уровень выше | fbsql_data_seek


fbsql_data_seek

(PHP 4 >= 4.0.6, PHP 5)

fbsql_data_seek -- Move internal result pointer

Описание

bool fbsql_data_seek ( resource result_identifier, int row_number )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

fbsql_data_seek() moves the internal row pointer of the FrontBase result associated with the specified result identifier to point to the specified row number. The next call to fbsql_fetch_row() would return that row.

Row_number starts at 0.

Пример 1. fbsql_data_seek() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");

    fbsql_select_db("samp_db")
        or die("Could not select database");

    $query = "SELECT last_name, first_name FROM friends;";
    $result = fbsql_query($query)
        or die("Query failed");

    // fetch rows in reverse order

    for ($i = fbsql_num_rows($result) - 1; $i >=0; $i--) {
        if (!fbsql_data_seek($result, $i)) {
            printf("Cannot seek to row %d\n", $i);
            continue;
        }

        if (!($row = fbsql_fetch_object($result)))
            continue;

        echo $row->last_name . $row->first_name . "<br />\n";
    }

    fbsql_free_result($result);
?>

Пред. | Начало | След.
fbsql_create_db | Уровень выше | fbsql_database_password


fbsql_database_password

(PHP 4 >= 4.0.6, PHP 5)

fbsql_database_password -- Sets or retrieves the password for a FrontBase database

Описание

string fbsql_database_password ( resource link_identifier [, string database_password] )

Returns: The database password associated with the link identifier.

fbsql_database_password() sets and retrieves the database password used by the connection. if a database is protected by a database password, the user must call this function before calling fbsql_select_db(). if the second optional parameter is given the function sets the database password for the specified link identifier. If no link identifier is specified, the last opened link is assumed. If no link is open, the function will try to establish a link as if fbsql_connect() was called, and use it.

This function does not change the database password in the database nor can it be used to retrieve the database password for a database.

Пример 1. fbsql_create_clob() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    fbsql_database_password($link, "secret db password");
    fbsql_select_db($database, $link);
?>

See also: fbsql_connect(),
fbsql_pconnect() and
fbsql_select_db().

Пред. | Начало | След.
fbsql_data_seek | Уровень выше | fbsql_database


fbsql_database

(PHP 4 >= 4.0.6, PHP 5)

fbsql_database -- Get or set the database name used with a connection

Описание

string fbsql_database ( resource link_identifier [, string database] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
fbsql_database_password | Уровень выше | fbsql_db_query


fbsql_db_query

(PHP 4 >= 4.0.6, PHP 5)

fbsql_db_query -- Send a FrontBase query

Описание

resource fbsql_db_query ( string database, string query [, resource link_identifier] )

Returns: A positive FrontBase result identifier to the query result, or FALSE on error.

fbsql_db_query() selects a database and executes a query on it. If the optional link identifier isn't specified, the function will try to find an open link to the FrontBase server and if no such link is found it'll try to create one as if fbsql_connect() was called with no arguments

See also fbsql_connect().

Пред. | Начало | След.
fbsql_database | Уровень выше | fbsql_db_status


fbsql_db_status

(PHP 4 >= 4.1.0, PHP 5)

fbsql_db_status -- Get the status for a given database

Описание

int fbsql_db_status ( string database_name [, resource link_identifier] )

Returns: An integer value with the current status.

fbsql_db_status() requests the current status of the database specified by database_name. If the link_identifier is omitted the default link_identifier will be used.

The return value can be one of the following constants:

  • FALSE - The exec handler for the host was invalid. This error will occur when the link_identifier connects directly to a database by using a port number. FBExec can be available on the server but no connection has been made for it.

  • FBSQL_UNKNOWN - The Status is unknown.

  • FBSQL_STOPPED - The database is not running. Use fbsql_start_db() to start the database.

  • FBSQL_STARTING - The database is starting.

  • FBSQL_RUNNING - The database is running and can be used to perform SQL operations.

  • FBSQL_STOPPING - The database is stopping.

  • FBSQL_NOEXEC - FBExec is not running on the server and it is not possible to get the status of the database.

See also: fbsql_start_db() and fbsql_stop_db().

Пред. | Начало | След.
fbsql_db_query | Уровень выше | fbsql_drop_db


fbsql_drop_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_drop_db -- Drop (delete) a FrontBase database

Описание

bool fbsql_drop_db ( string database_name [, resource link_identifier] )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

fbsql_drop_db() attempts to drop (remove) an entire database from the server associated with the specified link identifier.

Пред. | Начало | След.
fbsql_db_status | Уровень выше | fbsql_errno


fbsql_errno

(PHP 4 >= 4.0.6, PHP 5)

fbsql_errno -- Returns the numerical value of the error message from previous FrontBase operation

Описание

int fbsql_errno ( [resource link_identifier] )

Returns the error number from the last fbsql function, or 0 (zero) if no error occurred.

Errors coming back from the fbsql database backend don't issue warnings. Instead, use fbsql_errno() to retrieve the error code. Note that this function only returns the error code from the most recently executed fbsql function (not including fbsql_error() and fbsql_errno()), so if you want to use it, make sure you check the value before calling another fbsql function.

<?php
fbsql_connect("marliesle");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
fbsql_select_db("nonexistentdb");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
$conn = fbsql_query("SELECT * FROM nonexistenttable;");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
?>

See also: fbsql_error() and fbsql_warnings().

Пред. | Начало | След.
fbsql_drop_db | Уровень выше | fbsql_error


fbsql_error

(PHP 4 >= 4.0.6, PHP 5)

fbsql_error -- Returns the text of the error message from previous FrontBase operation

Описание

string fbsql_error ( [resource link_identifier] )

Returns the error text from the last fbsql function, or '' (the empty string) if no error occurred.

Errors coming back from the fbsql database backend don't issue warnings. Instead, use fbsql_error() to retrieve the error text. Note that this function only returns the error text from the most recently executed fbsql function (not including fbsql_error() and fbsql_errno()), so if you want to use it, make sure you check the value before calling another fbsql function.

<?php
fbsql_connect("marliesle");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
fbsql_select_db("nonexistentdb");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
$conn = fbsql_query("SELECT * FROM nonexistenttable;");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
?>

See also: fbsql_errno() and fbsql_warnings().

Пред. | Начало | След.
fbsql_errno | Уровень выше | fbsql_fetch_array


fbsql_fetch_array

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_array -- Fetch a result row as an associative array, a numeric array, or both

Описание

array fbsql_fetch_array ( resource result [, int result_type] )

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

fbsql_fetch_array() is an extended version of fbsql_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you must the numeric index of the column or make an alias for the column.

select t1.f1 as foo t2.f1 as bar from t1, t2

An important thing to note is that using fbsql_fetch_array() is NOT significantly slower than using fbsql_fetch_row(), while it provides a significant added value.

The optional second argument result_type in fbsql_fetch_array() is a constant and can take the following values: FBSQL_ASSOC, FBSQL_NUM, and FBSQL_BOTH.

For further details, see also fbsql_fetch_row() and fbsql_fetch_assoc().

Пример 1. fbsql_fetch_array() example

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select user_id, fullname from table");
while ($row = fbsql_fetch_array($result)) {
    echo "user_id: " . $row["user_id"] . "<br />\n";
    echo "user_id: " . $row[0] . "<br />\n";
    echo "fullname: " . $row["fullname"] . "<br />\n";
    echo "fullname: " . $row[1] . "<br />\n";
}
fbsql_free_result($result);
?>

Пред. | Начало | След.
fbsql_error | Уровень выше | fbsql_fetch_assoc


fbsql_fetch_assoc

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_assoc -- Fetch a result row as an associative array

Описание

array fbsql_fetch_assoc ( resource result )

Returns an associative array that corresponds to the fetched row, or FALSE if there are no more rows.

fbsql_fetch_assoc() is equivalent to calling fbsql_fetch_array() with FBSQL_ASSOC for the optional second parameter. It only returns an associative array. This is the way fbsql_fetch_array() originally worked. If you need the numeric indices as well as the associative, use fbsql_fetch_array().

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you must use fbsql_fetch_array() and have it return the numeric indices as well.

An important thing to note is that using fbsql_fetch_assoc() is NOT significantly slower than using fbsql_fetch_row(), while it provides a significant added value.

For further details, see also fbsql_fetch_row() and fbsql_fetch_array().

Пример 1. fbsql_fetch_assoc() example

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select * from table");
while ($row = fbsql_fetch_assoc($result)) {
    echo $row["user_id"];
    echo $row["fullname"];
}
fbsql_free_result($result);
?>

Пред. | Начало | След.
fbsql_fetch_array | Уровень выше | fbsql_fetch_field


fbsql_fetch_field

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_field -- Get column information from a result and return as an object

Описание

object fbsql_fetch_field ( resource result [, int field_offset] )

Returns an object containing field information.

fbsql_fetch_field() can be used in order to obtain information about fields in a certain query result. If the field offset isn't specified, the next field that wasn't yet retrieved by fbsql_fetch_field() is retrieved.

The properties of the object are:

  • name - column name

  • table - name of the table the column belongs to

  • max_length - maximum length of the column

  • not_null - 1 if the column cannot be NULL

  • type - the type of the column

Пример 1. fbsql_fetch_field() example

<?php
fbsql_connect($host, $user, $password)
    or die("Could not connect");
$result = fbsql_db_query("database", "select * from table")
    or die("Query failed");
# get column metadata
$i = 0;
while ($i < fbsql_num_fields($result)) {
    echo "Information for column $i:<br />\n";
    $meta = fbsql_fetch_field($result);
    if (!$meta) {
        echo "No information available<br />\n";
    }
    echo "<pre>
max_length:   $meta->max_length
name:         $meta->name
not_null:     $meta->not_null
table:        $meta->table
type:         $meta->type
</pre>";
    $i++;
}
fbsql_free_result($result);
?>

See also fbsql_field_seek().

Пред. | Начало | След.
fbsql_fetch_assoc | Уровень выше | fbsql_fetch_lengths


fbsql_fetch_lengths

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_lengths -- Get the length of each output in a result

Описание

array fbsql_fetch_lengths ( resource result )

Returns: An array that corresponds to the lengths of each field in the last row fetched by fbsql_fetch_row(), or FALSE on error.

fbsql_fetch_lengths() stores the lengths of
each result column in the last row returned by
fbsql_fetch_row(),
fbsql_fetch_array() and
fbsql_fetch_object() in an array, starting at
offset 0.

See also: fbsql_fetch_row().

Пред. | Начало | След.
fbsql_fetch_field | Уровень выше | fbsql_fetch_object


fbsql_fetch_object

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_object -- Fetch a result row as an object

Описание

object fbsql_fetch_object ( resource result [, int result_type] )

Returns an object with properties that correspond to the fetched row, or FALSE if there are no more rows.

fbsql_fetch_object() is similar to fbsql_fetch_array(), with one difference - an object is returned, instead of an array. Indirectly, that means that you can only access the data by the field names, and not by their offsets (numbers are illegal property names).

The optional argument result_type is a constant and can take the following values: FBSQL_ASSOC, FBSQL_NUM, and FBSQL_BOTH.

Speed-wise, the function is identical to fbsql_fetch_array(), and almost as quick as fbsql_fetch_row() (the difference is insignificant).

Пример 1. fbsql_fetch_object() example

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select * from table");
while ($row = fbsql_fetch_object($result)) {
    echo $row->user_id;
    echo $row->fullname;
}
fbsql_free_result($result);
?>

See also: fbsql_fetch_array() and fbsql_fetch_row().

Пред. | Начало | След.
fbsql_fetch_lengths | Уровень выше | fbsql_fetch_row


fbsql_fetch_row

(PHP 4 >= 4.0.6, PHP 5)

fbsql_fetch_row -- Get a result row as an enumerated array

Описание

array fbsql_fetch_row ( resource result )

Returns: An array that corresponds to the fetched row, or FALSE if there are no more rows.

fbsql_fetch_row() fetches one row of data from the result associated with the specified result identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0.

Subsequent call to fbsql_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

See also: fbsql_fetch_array(),
fbsql_fetch_object(),
fbsql_data_seek(),
fbsql_fetch_lengths(), and
fbsql_result().

Пред. | Начало | След.
fbsql_fetch_object | Уровень выше | fbsql_field_flags


fbsql_field_flags

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_flags -- Get the flags associated with the specified field in a result

Описание

string fbsql_field_flags ( resource result [, int field_offset] )

fbsql_field_flags() returns the field flags of the specified field. The flags are reported as a single word per flag separated by a single space, so that you can split the returned value using explode().

Пред. | Начало | След.
fbsql_fetch_row | Уровень выше | fbsql_field_len


fbsql_field_len

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_len -- Returns the length of the specified field

Описание

int fbsql_field_len ( resource result [, int field_offset] )

fbsql_field_len() returns the length of the specified field.

Пред. | Начало | След.
fbsql_field_flags | Уровень выше | fbsql_field_name


fbsql_field_name

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_name -- Get the name of the specified field in a result

Описание

string fbsql_field_name ( resource result [, int field_index] )

fbsql_field_name() returns the name of the specified field index. result must be a valid result identifier and field_index is the numerical offset of the field.

Замечание: field_index starts at 0.

e.g. The index of the third field would actually be 2, the index of the fourth field would be 3 and so on.

Пример 1. fbsql_field_name() example

<?php
// The users table consists of three fields:
//   user_id
//   username
//   password.

$res = fbsql_db_query("users", "select * from users", $link);

echo fbsql_field_name($res, 0) . "\n";
echo fbsql_field_name($res, 2);
?>

Результат выполнения данного примера:

user_id
password

Пред. | Начало | След.
fbsql_field_len | Уровень выше | fbsql_field_seek


fbsql_field_seek

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_seek -- Set result pointer to a specified field offset

Описание

bool fbsql_field_seek ( resource result [, int field_offset] )

Seeks to the specified field offset. If the next call to fbsql_fetch_field() doesn't include a field offset, the field offset specified in fbsql_field_seek() will be returned.

See also: fbsql_fetch_field().

Пред. | Начало | След.
fbsql_field_name | Уровень выше | fbsql_field_table


fbsql_field_table

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_table -- Get name of the table the specified field is in

Описание

string fbsql_field_table ( resource result [, int field_offset] )

Returns the name of the table that the specified field is in.

Пред. | Начало | След.
fbsql_field_seek | Уровень выше | fbsql_field_type


fbsql_field_type

(PHP 4 >= 4.0.6, PHP 5)

fbsql_field_type -- Get the type of the specified field in a result

Описание

string fbsql_field_type ( resource result [, int field_offset] )

fbsql_field_type() is similar to the fbsql_field_name() function. The arguments are identical, but the field type is returned instead. The field type will be one of "int", "real", "string", "blob", and others as detailed in the FrontBase documentation.

Пример 1. fbsql_field_type() example

<?php

fbsql_connect("localhost", "_SYSTEM", "");
fbsql_select_db("wisconsin");
$result = fbsql_query("SELECT * FROM onek;");
$fields = fbsql_num_fields($result);
$rows   = fbsql_num_rows($result);
$i = 0;
$table = fbsql_field_table($result, $i);
echo "Your '" . $table . "' table has " . $fields . " fields and " . $rows . " records <br />";
echo "The table has the following fields <br />";
while ($i < $fields) {
    $type  = fbsql_field_type($result, $i);
    $name  = fbsql_field_name($result, $i);
    $len   = fbsql_field_len($result, $i);
    $flags = fbsql_field_flags($result, $i);
    echo $type . " " . $name . " " . $len . " " . $flags . "<br />";
    $i++;
}
fbsql_close();

?>

Пред. | Начало | След.
fbsql_field_table | Уровень выше | fbsql_free_result


fbsql_free_result

(PHP 4 >= 4.0.6, PHP 5)

fbsql_free_result -- Free result memory

Описание

bool fbsql_free_result ( resource result )

fbsql_free_result() will free all memory associated with the result identifier result.

fbsql_free_result() only needs to be called if you are concerned about how much memory is being used for queries that return large result sets. All associated result memory is automatically freed at the end of the script's execution.

Пред. | Начало | След.
fbsql_field_type | Уровень выше | fbsql_get_autostart_info


fbsql_get_autostart_info

(PHP 4 >= 4.1.0, PHP 5)

fbsql_get_autostart_info -- No description given yet

Описание

array fbsql_get_autostart_info ( [resource link_identifier] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
fbsql_free_result | Уровень выше | fbsql_hostname


fbsql_hostname

(PHP 4 >= 4.0.6, PHP 5)

fbsql_hostname -- Get or set the host name used with a connection

Описание

string fbsql_hostname ( resource link_identifier [, string host_name] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
fbsql_get_autostart_info | Уровень выше | fbsql_insert_id


fbsql_insert_id

(PHP 4 >= 4.0.6, PHP 5)

fbsql_insert_id -- Get the id generated from the previous INSERT operation

Описание

int fbsql_insert_id ( [resource link_identifier] )

fbsql_insert_id() returns the ID generated for an column defined as DEFAULT UNIQUE by the previous INSERT query using the given link_identifier. If link_identifier isn't specified, the last opened link is assumed.

fbsql_insert_id() returns 0 if the previous query does not generate an DEFAULT UNIQUE value. If you need to save the value for later, be sure to call fbsql_insert_id() immediately after the query that generates the value.

Замечание: The value of the FrontBase SQL function fbsql_insert_id() always contains the most recently generated DEFAULT UNIQUE value, and is not reset between queries.

Пред. | Начало | След.
fbsql_hostname | Уровень выше | fbsql_list_dbs


fbsql_list_dbs

(PHP 4 >= 4.0.6, PHP 5)

fbsql_list_dbs -- List databases available on a FrontBase server

Описание

resource fbsql_list_dbs ( [resource link_identifier] )

fbsql_list_dbs() will return a result pointer containing the databases available from the current fbsql daemon. Use the fbsql_tablename() function to traverse this result pointer.

Пример 1. fbsql_list_dbs() example

$link = fbsql_connect('localhost', 'myname', 'secret');
$db_list = fbsql_list_dbs($link);

while ($row = fbsql_fetch_object($db_list)) {
    echo $row->Database . "\n";
}

Результат выполнения данного примера:

database1
database2
database3
...

Замечание: The above code would just as easily work with fbsql_fetch_row() or other similar functions.

Пред. | Начало | След.
fbsql_insert_id | Уровень выше | fbsql_list_fields


fbsql_list_fields

(PHP 4 >= 4.0.6, PHP 5)

fbsql_list_fields -- List FrontBase result fields

Описание

resource fbsql_list_fields ( string database_name, string table_name [, resource link_identifier] )

fbsql_list_fields() retrieves information
about the given tablename. Arguments are the database name and
the table name. A result pointer is returned which can be used
with fbsql_field_flags(),
fbsql_field_len(),
fbsql_field_name(), and
fbsql_field_type().

A result identifier is a positive integer. The function returns FALSE if an error occurs. A string describing the error will be placed in $phperrmsg, and unless the function was called as @fbsql() then this error string will also be printed out.

Пример 1. fbsql_list_fields() example

<?php
$link = fbsql_connect('localhost', 'myname', 'secret');

$fields = fbsql_list_fields("database1", "table1", $link);
$columns = fbsql_num_fields($fields);

for ($i = 0; $i < $columns; $i++) {
    echo fbsql_field_name($fields, $i) . "\n";;
}
?>

Результат выполнения данного примера:

field1
field2
field3
...

Пред. | Начало | След.
fbsql_list_dbs | Уровень выше | fbsql_list_tables


fbsql_list_tables

(PHP 4 >= 4.0.6, PHP 5)

fbsql_list_tables -- List tables in a FrontBase database

Описание

resource fbsql_list_tables ( string database [, resource link_identifier] )

fbsql_list_tables() takes a database name and returns a result pointer much like the fbsql_db_query() function. The fbsql_tablename() function should be used to extract the actual table names from the result pointer.

Пред. | Начало | След.
fbsql_list_fields | Уровень выше | fbsql_next_result


fbsql_next_result

(PHP 4 >= 4.0.6, PHP 5)

fbsql_next_result -- Move the internal result pointer to the next result

Описание

bool fbsql_next_result ( resource result_id )

When sending more than one SQL statement to the server or executing a stored procedure with multiple results will cause the server to return multiple result sets. This function will test for additional results available form the server. If an additional result set exists it will free the existing result set and prepare to fetch the words from the new result set. The function will return TRUE if an additional result set was available or FALSE otherwise.

Пример 1. fbsql_next_result() example

<?php
    $link = fbsql_connect("localhost", "_SYSTEM", "secret");
    fbsql_select_db("MyDB", $link);
    $SQL = "Select * from table1; select * from table2;";
    $rs = fbsql_query($SQL, $link);
    do {
        while ($row = fbsql_fetch_row($rs)) {
        }
    } while (fbsql_next_result($rs));
    fbsql_free_result($rs);
    fbsql_close($link);
?>

Пред. | Начало | След.
fbsql_list_tables | Уровень выше | fbsql_num_fields


fbsql_num_fields

(PHP 4 >= 4.0.6, PHP 5)

fbsql_num_fields -- Get number of fields in result

Описание

int fbsql_num_fields ( resource result )

fbsql_num_fields() returns the number of fields in a result set.

See also:
fbsql_db_query(),
fbsql_query(),
fbsql_fetch_field(), and
fbsql_num_rows().

Пред. | Начало | След.
fbsql_next_result | Уровень выше | fbsql_num_rows


fbsql_num_rows

(PHP 4 >= 4.0.6, PHP 5)

fbsql_num_rows -- Get number of rows in result

Описание

int fbsql_num_rows ( resource result )

fbsql_num_rows() returns the number of rows in a result set. This command is only valid for SELECT statements. To retrieve the number of rows returned from a INSERT, UPDATE or DELETE query, use fbsql_affected_rows().

Пример 1. fbsql_num_rows() example

<?php

$link = fbsql_connect("localhost", "username", "password");
fbsql_select_db("database", $link);

$result = fbsql_query("SELECT * FROM table1;", $link);
$num_rows = fbsql_num_rows($result);

echo "$num_rows Rows\n";

?>

See also: fbsql_affected_rows(),
fbsql_connect(),
fbsql_select_db(), and
fbsql_query().

Пред. | Начало | След.
fbsql_num_fields | Уровень выше | fbsql_password


fbsql_password

(PHP 4 >= 4.0.6, PHP 5)

fbsql_password -- Get or set the user password used with a connection

Описание

string fbsql_password ( resource link_identifier [, string password] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
fbsql_num_rows | Уровень выше | fbsql_pconnect


fbsql_pconnect

(PHP 4 >= 4.0.6, PHP 5)

fbsql_pconnect -- Open a persistent connection to a FrontBase Server

Описание

resource fbsql_pconnect ( [string hostname [, string username [, string password]]] )

Returns: A positive FrontBase persistent link identifier on success, or FALSE on error.

fbsql_pconnect() establishes a connection to a FrontBase server. The following defaults are assumed for missing optional parameters: host = 'localhost', username = "_SYSTEM" and password = empty password.

To set Frontbase server port number, use fbsql_select_db().

fbsql_pconnect() acts very much like fbsql_connect() with two major differences.

First, when connecting, the function would first try to find a (persistent) link that's already open with the same host, username and password. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use.

This type of links is therefore called 'persistent'.

Пред. | Начало | След.
fbsql_password | Уровень выше | fbsql_query


fbsql_query

(PHP 4 >= 4.0.6, PHP 5)

fbsql_query -- Send a FrontBase query

Описание

resource fbsql_query ( string query [, resource link_identifier [, int batch_size]] )

fbsql_query() sends a query to the currently active database on the server that's associated with the specified link identifier. If link_identifier isn't specified, the last opened link is assumed. If no link is open, the function tries to establish a link as if fbsql_connect() was called with no arguments, and use it.

Замечание: The query string shall always end with a semicolon.

fbsql_query() returns TRUE (non-zero) or FALSE to indicate whether or not the query succeeded. A return value of TRUE means that the query was legal and could be executed by the server. It does not indicate anything about the number of rows affected or returned. It is perfectly possible for a query to succeed but affect no rows or return no rows.

The following query is syntactically invalid, so fbsql_query() fails and returns FALSE:

Пример 1. fbsql_query() example

<?php
$result = fbsql_query("SELECT * WHERE 1=1")
    or die ("Invalid query");
?>

The following query is semantically invalid if my_col is not a column in the table my_tbl, so fbsql_query() fails and returns FALSE:

Пример 2. fbsql_query() example

<?php
$result = fbsql_query ("SELECT my_col FROM my_tbl")
    or die ("Invalid query");
?>

fbsql_query() will also fail and return FALSE if you don't have permission to access the table(s) referenced by the query.

Assuming the query succeeds, you can call fbsql_num_rows() to find out how many rows were returned for a SELECT statement or fbsql_affected_rows() to find out how many rows were affected by a DELETE, INSERT, REPLACE, or UPDATE statement.

For SELECT statements, fbsql_query() returns a new result identifier that you can pass to fbsql_result(). When you are done with the result set, you can free the resources associated with it by calling fbsql_free_result(). Although, the memory will automatically be freed at the end of the script's execution.

See also: fbsql_affected_rows(),
fbsql_db_query(),
fbsql_free_result(),
fbsql_result(),
fbsql_select_db(), and
fbsql_connect().

Пред. | Начало | След.
fbsql_pconnect | Уровень выше | fbsql_read_blob


fbsql_read_blob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_read_blob -- Read a BLOB from the database

Описание

string fbsql_read_blob ( string blob_handle [, resource link_identifier] )

Returns: A string containing the BLOB specified by blob_handle.

fbsql_read_blob() reads BLOB data from the database. If a select statement contains BLOB and/or CLOB columns FrontBase will return the data directly when data is fetched. This default behavior can be changed with fbsql_set_lob_mode() so the fetch functions will return handles to BLOB and CLOB data. If a handle is fetched a user must call fbsql_read_blob() to get the actual BLOB data from the database.

Пример 1. fbsql_read_blob() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    $sql = "SELECT BLOB_COLUMN FROM BLOB_TABLE;";
    $rs = fbsql_query($sql, $link);
    $row_data = fbsql_fetch_row($rs);
    // $row_data[0] will now contain the blob data for the first row
    fbsql_free_result($rs);

    $rs = fbsql_query($sql, $link);
    fbsql_set_lob_mode($rs, FBSQL_LOB_HANDLE);
    $row_data = fbsql_fetch_row($rs);
    // $row_data[0] will now contain a handle to the BLOB data in the first row
    $blob_data = fbsql_read_blob($row_data[0]);
    fbsql_free_result($rs);

?>

See also: fbsql_create_blob(),
fbsql_read_clob(), and
fbsql_set_lob_mode().

Пред. | Начало | След.
fbsql_query | Уровень выше | fbsql_read_clob


fbsql_read_clob

(PHP 4 >= 4.2.0, PHP 5)

fbsql_read_clob -- Read a CLOB from the database

Описание

string fbsql_read_clob ( string clob_handle [, resource link_identifier] )

Returns: A string containing the CLOB specified by clob_handle.

fbsql_read_clob() reads CLOB data from the database. If a select statement contains BLOB and/or CLOB columns FrontBase will return the data directly when data is fetched. This default behavior can be changed with fbsql_set_lob_mode() so the fetch functions will return handles to BLOB and CLOB data. If a handle is fetched a user must call fbsql_read_clob() to get the actual CLOB data from the database.

Пример 1. fbsql_read_clob() example

<?php
    $link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
        or die("Could not connect");
    $sql = "SELECT CLOB_COLUMN FROM CLOB_TABLE;";
    $rs = fbsql_query($sql, $link);
    $row_data = fbsql_fetch_row($rs);
    // $row_data[0] will now contain the clob data for the first row
    fbsql_free_result($rs);

    $rs = fbsql_query($sql, $link);
    fbsql_set_lob_mode($rs, FBSQL_LOB_HANDLE);
    $row_data = fbsql_fetch_row($rs);
    // $row_data[0] will now contain a handle to the CLOB data in the first row
    $clob_data = fbsql_read_clob($row_data[0]);
    fbsql_free_result($rs);

?>

See also: fbsql_create_blob(),
fbsql_read_blob(), and
fbsql_set_lob_mode().

Пред. | Начало | След.
fbsql_read_blob | Уровень выше | fbsql_result


fbsql_result

(PHP 4 >= 4.0.6, PHP 5)

fbsql_result -- Get result data

Описание

mixed fbsql_result ( resource result [, int row [, mixed field]] )

fbsql_result() returns the contents of one cell from a FrontBase result set. The field argument can be the field's offset, or the field's name, or the field's table dot field's name (tabledname.fieldname). If the column name has been aliased ('select foo as bar from...'), use the alias instead of the column name.

When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they're MUCH quicker than fbsql_result(). Also, note that specifying a numeric offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname argument.

Calls to fbsql_result() should not be mixed with calls to other functions that deal with the result set.

Recommended high-performance alternatives:
fbsql_fetch_row(),
fbsql_fetch_array(), and
fbsql_fetch_object().

Пред. | Начало | След.
fbsql_read_clob | Уровень выше | fbsql_rollback


fbsql_rollback

(PHP 4 >= 4.0.6, PHP 5)

fbsql_rollback -- Rollback a transaction to the database

Описание

bool fbsql_rollback ( [resource link_identifier] )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

fbsql_rollback() ends the current transaction by rolling back all statements issued since last commit. This command is only needed if autocommit is set to false.

See also: fbsql_autocommit() and fbsql_commit()

Пред. | Начало | След.
fbsql_result | Уровень выше | fbsql_select_db


fbsql_select_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_select_db -- Select a FrontBase database

Описание

bool fbsql_select_db ( [string database_name [, resource link_identifier]] )

fbsql_select_db() sets the current active database on the server that's associated with the specified link identifier. If no link identifier is specified, the last opened link is assumed. If no link is open, the function will try to establish a link as if fbsql_connect() was called, and use it.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

The client contacts FBExec to obtain the port number to use for the connection to the database. If the database name is a number the system will use that as a port number and it will not ask FBExec for the port number. The FrontBase server can be stared as FRontBase -FBExec=No -port=<port number> <database name>.

Every subsequent call to fbsql_query() will be made on the active database.

if the database is protected with a database password, the user must call fbsql_database_password() before selecting the database.

See also
fbsql_connect(),
fbsql_pconnect(),
fbsql_database_password(), and
fbsql_query().

Пред. | Начало | След.
fbsql_rollback | Уровень выше | fbsql_set_lob_mode


fbsql_set_lob_mode

(PHP 4 >= 4.2.0, PHP 5)

fbsql_set_lob_mode -- Set the LOB retrieve mode for a FrontBase result set

Описание

bool fbsql_set_lob_mode ( resource result, string database_name )

Returns: TRUE on success, FALSE on error.

fbsql_set_lob_mode() sets the mode for retrieving LOB data from the database. When BLOB and CLOB data is stored in FrontBase it can be stored direct or indirect. Direct stored LOB data will always be fetched no matter the setting of the lob mode. If the LOB data is less than 512 bytes it will always be stored directly.

  • FBSQL_LOB_DIRECT - LOB data is retrieved directly. When data is fetched from the database with fbsql_fetch_row(), and other fetch functions, all CLOB and BLOB columns will be returned as ordinary columns. This is the default value on a new FrontBase result.

  • FBSQL_LOB_HANDLE - LOB data is retrieved as handles to the data. When data is fetched from the database with fbsql_fetch_row(), and other fetch functions, LOB data will be returned as a handle to the data if the data is stored indirect or the data if it is stored direct. If a handle is returned it will be a 27 byte string formatted as "@'000000000000000000000000'".

See also:
    fbsql_create_blob(),
    fbsql_create_clob(),
    fbsql_read_blob(), and
    fbsql_read_clob().

Пред. | Начало | След.
fbsql_select_db | Уровень выше | fbsql_set_password


fbsql_set_password

(PHP 5)

fbsql_set_password -- Change the password for a given user

Описание

bool fbsql_set_password ( resource link_identifier, string user, string password, string old_password )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
fbsql_set_lob_mode | Уровень выше | fbsql_set_transaction


fbsql_set_transaction

(PHP 4 >= 4.2.0, PHP 5)

fbsql_set_transaction -- Set the transaction locking and isolation

Описание

void fbsql_set_transaction ( resource link_identifier, int Locking, int Isolation )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
fbsql_set_password | Уровень выше | fbsql_start_db


fbsql_start_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_start_db -- Start a database on local or remote server

Описание

bool fbsql_start_db ( string database_name [, resource link_identifier [, string database_options]] )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

fbsql_start_db()

See also: fbsql_db_status() and fbsql_stop_db().

Пред. | Начало | След.
fbsql_set_transaction | Уровень выше | fbsql_stop_db


fbsql_stop_db

(PHP 4 >= 4.0.6, PHP 5)

fbsql_stop_db -- Stop a database on local or remote server

Описание

bool fbsql_stop_db ( string database_name [, resource link_identifier] )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

fbsql_stop_db()

See also: fbsql_db_status() and fbsql_start_db().

Пред. | Начало | След.
fbsql_start_db | Уровень выше | fbsql_tablename


fbsql_tablename

(PHP 4 >= 4.2.0, PHP 5)

fbsql_tablename -- Get table name of field

Описание

string fbsql_tablename ( resource result, int i )

fbsql_tablename() takes a result pointer returned by the fbsql_list_tables() function as well as an integer index and returns the name of a table. The fbsql_num_rows() function may be used to determine the number of tables in the result pointer.

Пример 1. fbsql_tablename() example

<?php
fbsql_connect("localhost", "_SYSTEM", "");
$result = fbsql_list_tables("wisconsin");
$i = 0;
while ($i < fbsql_num_rows($result)) {
    $tb_names[$i] = fbsql_tablename($result, $i);
    echo $tb_names[$i] . "<br />";
    $i++;
}
?>

Пред. | Начало | След.
fbsql_stop_db | Уровень выше | fbsql_username


fbsql_username

(PHP 4 >= 4.0.6, PHP 5)

fbsql_username -- Get or set the host user used with a connection

Описание

string fbsql_username ( resource link_identifier [, string username] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
fbsql_tablename | Уровень выше | fbsql_warnings


fbsql_warnings

(PHP 4 >= 4.0.6, PHP 5)

fbsql_warnings -- Enable or disable FrontBase warnings

Описание

bool fbsql_warnings ( [bool OnOff] )

Returns TRUE if warnings is turned on otherwise FALSE.

fbsql_warnings() enables or disables FrontBase warnings.

Пред. | Начало | След.
fbsql_username | Уровень выше | Функции для работы с FTP


Forms Data Format Functions

Руководство по PHP
Пред. След.

XXXVI. Forms Data Format Functions

Введение

Forms Data Format (FDF) is a format for handling forms within PDF documents. You should read the documentation at http://partners.adobe.com/asn/acrobat/forms.jsp for more information on what FDF is and how it is used in general.

The general idea of FDF is similar to HTML forms. The difference is basically the format how data is transmitted to the server when the submit button is pressed (this is actually the Form Data Format) and the format of the form itself (which is the Portable Document Format, PDF). Processing the FDF data is one of the features provided by the fdf functions. But there is more. One may as well take an existing PDF form and populated the input fields with data without modifying the form itself. In such a case one would create a FDF document (fdf_create()) set the values of each input field (fdf_set_value()) and associate it with a PDF form (fdf_set_file()). Finally it has to be sent to the browser with MimeType application/vnd.fdf. The Acrobat reader plugin of your browser recognizes the MimeType, reads the associated PDF form and fills in the data from the FDF document.

If you look at an FDF-document with a text editor you will find a catalogue object with the name FDF. Such an object may contain a number of entries like Fields, F, Status etc.. The most commonly used entries are Fields which points to a list of input fields, and F which contains the filename of the PDF-document this data belongs to. Those entries are referred to in the FDF documentation as /F-Key or /Status-Key. Modifying this entries is done by functions like fdf_set_file() and fdf_set_status(). Fields are modified with fdf_set_value(), fdf_set_opt() etc..

Требования

You need the FDF toolkit SDK available from http://partners.adobe.com/asn/acrobat/forms.jsp. As of PHP 4.3 you need at least SDK version 5.0. The FDF toolkit library is available in binary form only, platforms supported by Adobe are Win32, Linux, Solaris and AIX.

Установка

You must compile PHP with --with-fdftk[=DIR].

Замечание: If you run into problems configuring PHP with fdftk support, check whether the header file fdftk.h and the library libfdftk.so are at the right place. The configure script supports both the directory structure of the FDF SDK distribution and the usual DIR/include / DIR/lib layout, so you can point it either directly to the unpacked distribution directory or put the header file and the appropriate library for your platform into e.g. /usr/local/include and /usr/local/lib and configure with --with-fdftk=/usr/local.

Note to Win32 Users: In order to enable this module on a Windows environment, you must copy fdftk.dll from the DLL folder of the PHP/Win32 binary package to the SYSTEM32 folder of your windows machine. (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM32)

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

fdf

Most fdf functions require a fdf resource as their first parameter. A fdf resource is a handle to an opened fdf file. fdf resources may be obtained using fdf_create(), fdf_open() and fdf_open_string().

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

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)

FDFNormalAP (integer)

FDFRolloverAP (integer)

FDFDownAP (integer)

Примеры

The following examples shows just the evaluation of form data.

Пример 1. Evaluating a FDF document

<?php
// Open fdf from input string provided by the extension
// The pdf form contained several input text fields with the names
// volume, date, comment, publisher, preparer, and two checkboxes
// show_publisher and show_preparer.
$fdf = fdf_open_string($HTTP_FDF_DATA);
$volume = fdf_get_value($fdf, "volume");
echo "The volume field has the value '<b>$volume</b>'<br />";

$date = fdf_get_value($fdf, "date");
echo "The date field has the value '<b>$date</b>'<br />";

$comment = fdf_get_value($fdf, "comment");
echo "The comment field has the value '<b>$comment</b>'<br />";

if (fdf_get_value($fdf, "show_publisher") == "On") {
  $publisher = fdf_get_value($fdf, "publisher");
  echo "The publisher field has the value '<b>$publisher</b>'<br />";
} else
  echo "Publisher shall not be shown.<br />";

if (fdf_get_value($fdf, "show_preparer") == "On") {
  $preparer = fdf_get_value($fdf, "preparer");
  echo "The preparer field has the value '<b>$preparer</b>'<br />";
} else
  echo "Preparer shall not be shown.<br />";
fdf_close($fdf);
?>

Содержание
fdf_add_doc_javascript -- Adds javascript code to the FDF document
fdf_add_template -- Adds a template into the FDF document
fdf_close -- Close an FDF document
fdf_create -- Create a new FDF document
fdf_enum_values -- Call a user defined function for each document value
fdf_errno -- Return error code for last fdf operation
fdf_error -- Return error description for fdf error code
fdf_get_ap -- Get the appearance of a field
fdf_get_attachment -- Extracts uploaded file embedded in the FDF
fdf_get_encoding -- Get the value of the /Encoding key
fdf_get_file -- Get the value of the /F key
fdf_get_flags -- Gets the flags of a field
fdf_get_opt -- Gets a value from the opt array of a field
fdf_get_status -- Get the value of the /STATUS key
fdf_get_value -- Get the value of a field
fdf_get_version -- Gets version number for FDF API or file
fdf_header -- Sets FDF-specific output headers
fdf_next_field_name -- Get the next field name
fdf_open_string -- Read a FDF document from a string
fdf_open -- Open a FDF document
fdf_remove_item -- Sets target frame for form
fdf_save_string -- Returns the FDF document as a string
fdf_save -- Save a FDF document
fdf_set_ap -- Set the appearance of a field
fdf_set_encoding -- Sets FDF character encoding
fdf_set_file -- Set PDF document to display FDF data in
fdf_set_flags -- Sets a flag of a field
fdf_set_javascript_action -- Sets an javascript action of a field
fdf_set_on_import_javascript -- Adds javascript code to be executed when Acrobat opens the FDF
fdf_set_opt -- Sets an option of a field
fdf_set_status -- Set the value of the /STATUS key
fdf_set_submit_form_action -- Sets a submit form action of a field
fdf_set_target_frame -- Set target frame for form display
fdf_set_value -- Set the value of a field
fdf_set_version -- Sets version number for a FDF file

Пред. | Начало | След.
fam_suspend_monitor | Уровень выше | fdf_add_doc_javascript


fdf_add_doc_javascript

(PHP 4 >= 4.3.0, PHP 5)

fdf_add_doc_javascript -- Adds javascript code to the FDF document

Description

bool fdf_add_doc_javascript ( resource fdfdoc, string script_name, string script_code )

Adds a script to the FDF, which Acrobat then adds to the doc-level scripts of a document, once the FDF is imported into it. It is strongly suggested to use '\r' for linebreaks within script_code.

Пример 1. Adding JavaScript code to a FDF

<?php
$fdf = fdf_create();
fdf_add_doc_javascript($fdf, "PlusOne", "function PlusOne(x)\r{\r  return x+1;\r}\r");
fdf_save($fdf);
?>

will create a FDF like this:

%FDF-1.2
%????
1 0 obj
<<
/FDF << /JavaScript << /Doc [ (PlusOne)(function PlusOne\(x\)\r{\r  return x+1;\r}\r)] >> >>
>>
endobj
trailer
<<
/Root 1 0 R

>>
%%EOF

Пред. | Начало | След.
Forms Data Format Functions | Уровень выше | fdf_add_template


fdf_add_template

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

fdf_add_template -- Adds a template into the FDF document

Description

bool fdf_add_template ( resource fdfdoc, int newpage, string filename, string template, int rename )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
fdf_add_doc_javascript | Уровень выше | fdf_close


fdf_close

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

fdf_close -- Close an FDF document

Description

void fdf_close ( resource fdf_document )

The fdf_close() function closes the FDF document.

See also fdf_open().

Пред. | Начало | След.
fdf_add_template | Уровень выше | fdf_create


fdf_create

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

fdf_create -- Create a new FDF document

Description

resource fdf_create ( void )

The fdf_create() creates a new FDF document. This function is needed if one would like to populate input fields in a PDF document with data.

Пример 1. Populating a PDF document

<?php
$outfdf = fdf_create();
fdf_set_value($outfdf, "volume", $volume, 0);

fdf_set_file($outfdf, "http:/testfdf/resultlabel.pdf");
fdf_save($outfdf, "outtest.fdf");
fdf_close($outfdf);
Header("Content-type: application/vnd.fdf");
$fp = fopen("outtest.fdf", "r");
fpassthru($fp);
unlink("outtest.fdf");
?>

See also fdf_close(),
         fdf_save(),
         fdf_open().

Пред. | Начало | След.
fdf_close | Уровень выше | fdf_enum_values


fdf_enum_values

(PHP 4 >= 4.3.0, PHP 5)

fdf_enum_values -- Call a user defined function for each document value

Description

bool fdf_enum_values ( resource fdfdoc, callback function [, mixed userdata] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
fdf_create | Уровень выше | fdf_errno


fdf_errno

(PHP 4 >= 4.3.0, PHP 5)

fdf_errno -- Return error code for last fdf operation

Description

int fdf_errno ( void )

fdf_errno() returns the error code set by the last FDF function call. This is zero for a successfull operation or a non-zero error code on failure. A textual description may be obtained using the fdf_error() function.

See also fdf_error().

Пред. | Начало | След.
fdf_enum_values | Уровень выше | fdf_error


fdf_error

(PHP 4 >= 4.3.0, PHP 5)

fdf_error -- Return error description for fdf error code

Description

string fdf_error ( [int error_code] )

fdf_error() returns a textual description for the fdf error code given in error_code. The function uses the internal error code set by the last operation if no error_code is given, so fdf_error() is a convenient shortcut for fdf_error(fdf_errno()).

See also fdf_errno().

Пред. | Начало | След.
fdf_errno | Уровень выше | fdf_get_ap


fdf_get_ap

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_ap -- Get the appearance of a field

Description

bool fdf_get_ap ( resource fdf_document, string field, int face, string filename )

The fdf_get_ap() function gets the appearance of a field (i.e. the value of the /AP key) and stores it in a file. The possible values of face are FDFNormalAP, FDFRolloverAP and FDFDownAP. The appearance is stored in filename.

Пред. | Начало | След.
fdf_error | Уровень выше | fdf_get_attachment


fdf_get_attachment

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_attachment -- Extracts uploaded file embedded in the FDF

Description

array fdf_get_attachment ( resource fdf_document, string fieldname, string savepath )

Extracts a file uploaded by means of the "file selection" field fieldname and stores it under savepath. savepath may be the name of a plain file or an existing directory in which the file is to be created under its original name. Any existing file under the same name will be overwritten.

Замечание: There seems to be no other way to find out the original filename but to store the file using a directory as savepath and check for the basename it was stored under.

The returned array contains the following fields:

  • path - path were the file got stored

    size - size of the stored file in bytes

    type - mimetype if given in the FDF

Пример 1. Storing an uploaded file

<?php
  $fdf = fdf_open_string($HTTP_FDF_DATA);
  $data = fdf_get_attachment($fdf, "filename", "/tmpdir");
  echo "The uploaded file is stored in $data[path]";
?>

Пред. | Начало | След.
fdf_get_ap | Уровень выше | fdf_get_encoding


fdf_get_encoding

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_encoding -- Get the value of the /Encoding key

Description

string fdf_get_encoding ( resource fdf_document )

The fdf_get_encoding() returns the value of the /Encoding key. An empty string is returned if the default PDFDocEncoding/Unicode scheme is used.

See also fdf_set_encoding().

Пред. | Начало | След.
fdf_get_attachment | Уровень выше | fdf_get_file


fdf_get_file

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

fdf_get_file -- Get the value of the /F key

Description

string fdf_get_file ( resource fdf_document )

The fdf_set_file() returns the value of the /F key.

See also fdf_set_file().

Пред. | Начало | След.
fdf_get_encoding | Уровень выше | fdf_get_flags


fdf_get_flags

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_flags -- Gets the flags of a field

Description

int fdf_get_flags ( resource fdfdoc, string fieldname, int whichflags )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
fdf_get_file | Уровень выше | fdf_get_opt


fdf_get_opt

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_opt -- Gets a value from the opt array of a field

Description

mixed fdf_get_opt ( resource fdfdof, string fieldname [, int element] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
fdf_get_flags | Уровень выше | fdf_get_status


fdf_get_status

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

fdf_get_status -- Get the value of the /STATUS key

Description

string fdf_get_status ( resource fdf_document )

The fdf_get_status() returns the value of the /STATUS key.

See also fdf_set_status().

Пред. | Начало | След.
fdf_get_opt | Уровень выше | fdf_get_value


fdf_get_value

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

fdf_get_value -- Get the value of a field

Description

mixed fdf_get_value ( resource fdf_document, string fieldname [, int which] )

The fdf_get_value() function returns the value for the requested fieldname.

Elements of an array field can be retrieved by passing the optional which, starting at zero. For non-array fields the optional parameter which will be ignored.

Замечание: Array support and optional which parameter were added in PHP 4.3.

See also fdf_set_value().

Пред. | Начало | След.
fdf_get_status | Уровень выше | fdf_get_version


fdf_get_version

(PHP 4 >= 4.3.0, PHP 5)

fdf_get_version -- Gets version number for FDF API or file

Description

string fdf_get_version ( [resource fdf_document] )

This function will return the fdf version for the given fdf_document, or the toolkit API version number if no parameter is given.

For the current FDF toolkit 5.0 the API version number is '5.0' and the document version number is either '1.2', '1.3' or '1.4'.

See also fdf_set_version().

Пред. | Начало | След.
fdf_get_value | Уровень выше | fdf_header


fdf_header

(PHP 4 >= 4.3.0, PHP 5)

fdf_header -- Sets FDF-specific output headers

Description

void fdf_header ( void )

This is a convenience function to set appropriate HTTP headers for FDF output. It sets the Content-type: to application/vnd.fdf.

Пред. | Начало | След.
fdf_get_version | Уровень выше | fdf_next_field_name


fdf_next_field_name

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

fdf_next_field_name -- Get the next field name

Description

string fdf_next_field_name ( resource fdf_document [, string fieldname] )

The fdf_next_field_name() function returns the name of the field after the field in fieldname or the field name of the first field if the second parameter is NULL.

Пример 1. Detecting all fieldnames in a FDF

<?php
$fdf = fdf_open($HTTP_FDF_DATA);
for ($field = fdf_next_field_name($fdf);
    $field != "";
    $field = fdf_next_field_name($fdf, $field)) {
  echo "field: $field\n";
}
?>

See also fdf_enum_fields() and fdf_get_value().

Пред. | Начало | След.
fdf_header | Уровень выше | fdf_open_string


fdf_open_string

(PHP 4 >= 4.3.0, PHP 5)

fdf_open_string -- Read a FDF document from a string

Description

resource fdf_open_string ( string fdf_data )

The fdf_open_string() function reads form data from a string. fdf_data must contain the data as returned from a PDF form or created using fdf_create() and fdf_save_string().

You can fdf_open_string() together with $HTTP_FDF_DATA to process fdf form input from a remote client.

Пример 1. Accessing the form data

<?php
$fdf = fdf_open_string($HTTP_FDF_DATA);
/* ... */
fdf_close($fdf);
?>

See also
fdf_open(),
fdf_close(),
fdf_create() and
fdf_save_string().

Пред. | Начало | След.
fdf_next_field_name | Уровень выше | fdf_open


fdf_open

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

fdf_open -- Open a FDF document

Description

resource fdf_open ( string filename )

The fdf_open() function opens a file with form data. This file must contain the data as returned from a PDF form or created using fdf_create() and fdf_save().

You can process the results of a PDF form POST request by writing the data received in $HTTP_FDF_DATA to a file and open it using fdf_open(). Starting with PHP 4.3 you can also use fdf_open_string() which handles temporary file creation and cleanup for you.

Пример 1. Accessing the form data

<?php
// Save the FDF data into a temp file
$fdffp = fopen("test.fdf", "w");
fwrite($fdffp, $HTTP_FDF_DATA, strlen($HTTP_FDF_DATA));
fclose($fdffp);

// Open temp file and evaluate data
$fdf = fdf_open("test.fdf");
/* ... */
fdf_close($fdf);
?>

See also
fdf_open_string(),
fdf_close(),
fdf_create() and
fdf_save().

Пред. | Начало | След.
fdf_open_string | Уровень выше | fdf_remove_item


fdf_remove_item

(PHP 4 >= 4.3.0, PHP 5)

fdf_remove_item -- Sets target frame for form

Description

bool fdf_remove_item ( resource fdfdoc, string fieldname, int item )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
fdf_open | Уровень выше | fdf_save_string


fdf_save_string

(PHP 4 >= 4.3.0, PHP 5)

fdf_save_string -- Returns the FDF document as a string

Description

string fdf_save_string ( resource fdf_document )

The fdf_save_string() function returns the FDF document as a string.

Пример 1. Retrieving FDF as a string

<?php
$fdf = fdf_create();
fdf_set_value($fdf, "foo", "bar");
$str = fdf_save_string($fdf);
fdf_close($fdf);
echo $str;
?>

will output something like

%FDF-1.2
%????
1 0 obj
<<
/FDF << /Fields 2 0 R >>
>>
endobj
2 0 obj
[
<< /T (foo)/V (bar)>>
]
endobj
trailer
<<
/Root 1 0 R

>>
%%EOF

See also fdf_save(),
fdf_open_string(),
fdf_create() and
fdf_close().

Пред. | Начало | След.
fdf_remove_item | Уровень выше | fdf_save


fdf_save

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

fdf_save -- Save a FDF document

Description

bool fdf_save ( resource fdf_document [, string filename] )

The fdf_save() function saves a FDF document. The resulting FDF will be written to filename. Without a filename fdf_save() will write the FDF to the default PHP output stream.

See also fdf_save_string(),
fdf_create() and
fdf_close().

Пред. | Начало | След.
fdf_save_string | Уровень выше | fdf_set_ap


fdf_set_ap

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

fdf_set_ap -- Set the appearance of a field

Description

bool fdf_set_ap ( resource fdf_document, string field_name, int face, string filename, int page_number )

The fdf_set_ap() function sets the appearance of a field (i.e. the value of the /AP key). The possible values of face are FDFNormalAP, FDFRolloverAP and FDFDownAP.

Пред. | Начало | След.
fdf_save | Уровень выше | fdf_set_encoding


fdf_set_encoding

(PHP 4 >= 4.1.0, PHP 5)

fdf_set_encoding -- Sets FDF character encoding

Description

bool fdf_set_encoding ( resource fdf_document, string encoding )

fdf_set_encoding() sets the character encoding in FDF document fdf_document. encoding should be the valid encoding name. Currently the following values are supported: "Shift-JIS", "UHC", "GBK","BigFive". An empty string resets the encoding to the default PDFDocEncoding/Unicode scheme.

Пред. | Начало | След.
fdf_set_ap | Уровень выше | fdf_set_file


fdf_set_file

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

fdf_set_file -- Set PDF document to display FDF data in

Description

bool fdf_set_file ( resource fdf_document, string url [, string target_frame] )

The fdf_set_file() selects a different PDF document to display the form results in then the form it originated from. The url needs to be given as an absolute URL.

The frame to display the document in may be selected using the optional parameter target_frame or the function fdf_set_target_frame().

Пример 1. Passing FDF data to a second form

<?php
  /* set content type for Adobe FDF */
  fdf_header();

  /* start new fdf */
  $fdf = fdf_create();

  /* set field "foo" to value "bar" */
  $fdf_set_value($fdf, "foo", "bar");

  /* tell client to display FDF data using "fdf_form.pdf" */
  fdf_set_file($fdf, "http://www.example.com/fdf_form.pdf");

  /* output fdf */
  fdf_save();

  /* clean up */
  fdf_close();
?>

See also fdf_get_file() and fdf_set_target_frame().

Пред. | Начало | След.
fdf_set_encoding | Уровень выше | fdf_set_flags


fdf_set_flags

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_flags -- Sets a flag of a field

Description

bool fdf_set_flags ( resource fdf_document, string fieldname, int whichFlags, int newFlags )

The fdf_set_flags() sets certain flags of the given field fieldname.

See also fdf_set_opt().

Пред. | Начало | След.
fdf_set_file | Уровень выше | fdf_set_javascript_action


fdf_set_javascript_action

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_javascript_action -- Sets an javascript action of a field

Description

bool fdf_set_javascript_action ( resource fdf_document, string fieldname, int trigger, string script )

fdf_set_javascript_action() sets a javascript action for the given field fieldname.

See also fdf_set_submit_form_action().

Пред. | Начало | След.
fdf_set_flags | Уровень выше | fdf_set_on_import_javascript


fdf_set_on_import_javascript

(PHP 4 >= 4.3.0, PHP 5)

fdf_set_on_import_javascript -- Adds javascript code to be executed when Acrobat opens the FDF

Description

bool fdf_set_on_import_javascript ( resource fdfdoc, string script, bool before_data_import )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

See also fdf_add_doc_javascript() и fdf_set_javascript_action().

Пред. | Начало | След.
fdf_set_javascript_action | Уровень выше | fdf_set_opt


fdf_set_opt

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_opt -- Sets an option of a field

Description

bool fdf_set_opt ( resource fdf_document, string fieldname, int element, string str1, string str2 )

The fdf_set_opt() sets options of the given field fieldname.

See also fdf_set_flags().

Пред. | Начало | След.
fdf_set_on_import_javascript | Уровень выше | fdf_set_status


fdf_set_status

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

fdf_set_status -- Set the value of the /STATUS key

Description

bool fdf_set_status ( resource fdf_document, string status )

The fdf_set_status() sets the value of the /STATUS key. When a client receives a FDF with a status set it will present the value in an alert box.

See also fdf_get_status().

Пред. | Начало | След.
fdf_set_opt | Уровень выше | fdf_set_submit_form_action


fdf_set_submit_form_action

(PHP 4 >= 4.0.2, PHP 5)

fdf_set_submit_form_action -- Sets a submit form action of a field

Description

bool fdf_set_submit_form_action ( resource fdf_document, string fieldname, int trigger, string script, int flags )

The fdf_set_submit_form_action() sets a submit form action for the given field fieldname.

See also fdf_set_javascript_action().

Пред. | Начало | След.
fdf_set_status | Уровень выше | fdf_set_target_frame


fdf_set_target_frame

(PHP 4 >= 4.3.0, PHP 5)

fdf_set_target_frame -- Set target frame for form display

Description

bool fdf_set_target_frame ( resource fdf_document, string frame_name )

Sets the target frame to display a result PDF defined with fdf_save_file() in.

See also fdf_save_file().

Пред. | Начало | След.
fdf_set_submit_form_action | Уровень выше | fdf_set_value


fdf_set_value

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

fdf_set_value -- Set the value of a field

Description

bool fdf_set_value ( resource fdf_document, string fieldname, mixed value [, int isName] )

The fdf_set_value() function sets the value for a field named fieldname. The value will be stored as a string unless it is an array. In this case all array elements will be stored as a value array.

Замечание: In older versions of the fdf toolkit last parameter determined if the field value was to be converted to a PDF Name (isName = 1) or set to a PDF String (isName = 0). The value is no longer used in the current toolkit version 5.0. For compatibility reasons it is still supported as an optional parameter beginning with PHP 4.3, but ignored internally.

Support for value arrays was added in PHP 4.3.

See also fdf_get_value() and fdf_remove_item().

Пред. | Начало | След.
fdf_set_target_frame | Уровень выше | fdf_set_version


fdf_set_version

(PHP 4 >= 4.3.0, PHP 5)

fdf_set_version -- Sets version number for a FDF file

Description

bool fdf_set_version ( resource fdf_document, string version )

This function will set the fdf version for the given fdf_document. Some features supported by this extension are only available in newer fdf versions. For the current FDF toolkit 5.0 version may be either '1.2', '1.3' or '1.4'.

See also fdf_get_version().

Пред. | Начало | След.
fdf_set_value | Уровень выше | filePro Functions


filePro Functions

Руководство по PHP
Пред. След.

XXXVII. filePro Functions

Введение

These functions allow read-only access to data stored in filePro databases.

filePro is a registered trademark of fP Technologies, Inc. You can find more information about filePro at http://www.fptech.com/.

Установка

filePro support in PHP is not enabled by default. To enable the bundled read-only filePro support you need to use the--enable-filepro configuration option when compiling PHP.

Содержание
filepro_fieldcount -- Find out how many fields are in a filePro database
filepro_fieldname -- Gets the name of a field
filepro_fieldtype -- Gets the type of a field
filepro_fieldwidth -- Gets the width of a field
filepro_retrieve -- Retrieves data from a filePro database
filepro_rowcount -- Find out how many rows are in a filePro database
filepro -- Read and verify the map file

Пред. | Начало | След.
fdf_set_version | Уровень выше | filepro_fieldcount


filepro_fieldcount

(PHP 3, PHP 4, PHP 5)

filepro_fieldcount -- Find out how many fields are in a filePro database

Description

int filepro_fieldcount ( void )

Returns the number of fields (columns) in the opened filePro database.

See also filepro().

Пред. | Начало | След.
filePro Functions | Уровень выше | filepro_fieldname


filepro_fieldname

(PHP 3, PHP 4, PHP 5)

filepro_fieldname -- Gets the name of a field

Description

string filepro_fieldname ( int field_number )

Returns the name of the field corresponding to field_number.

Пред. | Начало | След.
filepro_fieldcount | Уровень выше | filepro_fieldtype


filepro_fieldtype

(PHP 3, PHP 4, PHP 5)

filepro_fieldtype -- Gets the type of a field

Description

string filepro_fieldtype ( int field_number )

Returns the edit type of the field corresponding to field_number.

Пред. | Начало | След.
filepro_fieldname | Уровень выше | filepro_fieldwidth


filepro_fieldwidth

(PHP 3, PHP 4, PHP 5)

filepro_fieldwidth -- Gets the width of a field

Description

int filepro_fieldwidth ( int field_number )

Returns the width of the field corresponding to field_number.

Пред. | Начало | След.
filepro_fieldtype | Уровень выше | filepro_retrieve


filepro_retrieve

(PHP 3, PHP 4, PHP 5)

filepro_retrieve -- Retrieves data from a filePro database

Description

string filepro_retrieve ( int row_number, int field_number )

Returns the data from the specified location in the database. The row_number parameter must be between zero and the total number of rows minus one (0..filepro_rowcount() - 1). Likewise, field_number accepts values between zero and the total number of fields minus one (0..filepro_fieldcount() - 1)

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Пред. | Начало | След.
filepro_fieldwidth | Уровень выше | filepro_rowcount


filepro_rowcount

(PHP 3, PHP 4, PHP 5)

filepro_rowcount -- Find out how many rows are in a filePro database

Description

int filepro_rowcount ( void )

Returns the number of rows in the opened filePro database.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

See also filepro().

Пред. | Начало | След.
filepro_retrieve | Уровень выше | filepro


filepro

(PHP 3, PHP 4, PHP 5)

filepro -- Read and verify the map file

Description

bool filepro ( string directory )

This reads and verifies the map file, storing the field count and info.

No locking is done, so you should avoid modifying your filePro database while it may be opened in PHP.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Пред. | Начало | След.
filepro_rowcount | Уровень выше | Функции для работы с файловой системой


Функции для работы с файловой системой

Руководство по PHP
Пред. След.

XXXVIII. Функции для работы с файловой системой

Введение

Требования

Никакие внешние библиотеки не требуются для сборки этого расширения, но если вы хотите, чтобы PHP поддерживал LFS (large files, большие файлы) в Linux, вам нужно иметь последнюю версию glibc и скомпилировать PHP со следующими флагами компилятора: -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64.

Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Директивы конфигурации для файловых систем и потоков

Имя | Значение по умолчанию | Область изменения
allow_url_fopen | "1" | PHP_INI_SYSTEM
user_agent | NULL | PHP_INI_ALL
default_socket_timeout | "60" | PHP_INI_ALL
from | NULL | ??
auto_detect_line_endings | "Off" | PHP_INI_ALL

Краткое разъяснение конфигурационных директив.

allow_url_fopen boolean

Данная директива включает поддержку упаковщиков URL (URL wrappers), которые позволяют работать с объектами URL, как с обычными файлами. Упаковщики, доступные по умолчанию, служат для работы с удаленными файлами с использованием протокола ftp или http. Некоторые расширения, например, zlib, могут регистрировать собственные упаковщики.

Замечание: Эта настройка может быть установлена только в php.ini из соображений безопасности.

Замечание: Эта директива была представлена сразу же после выхода PHP версии 4.0.3. В этой и в последующих версиях эта функциональность может быть отключена только во время компиляции PHP с помощью ключа --disable-url-fopen-wrapper.

Внимание

В версиях PHP, более ранних, чем 4.3.0, для платформ Windows, поддержка работы с удаленными файлами отсутствует для следующих функций: include(), include_once(), require(), require_once() и функции imagecreatefromXXX расширения Ссылка LVII, Image Functions.

user_agent string

Устанавливает строку "User-Agent" для использования ее PHP при запросах к удаленным серверам.

default_socket_timeout integer

Значение таймаута (в секундах) для потоков, использующих сокеты.

Замечание: Данная директива стала доступна с версии PHP 4.3.0

from="joe@example.com" string

Устанавливает пароль для анонимного доступа к серверу ftp (ваш адрес электронной почты).

auto_detect_line_endings boolean

Когда данная директива включена, PHP проверяет данные, получаемые функциями fgets() и file() с тем, чтобы определить способ завершения строк (Unix, MS-Dos или Macintosh).

Данная директива позволяет PHP взаимодействовать с системами Macintosh, однако, по умолчанию эта директива выключена, поскольку при ее использовании возникает (несущественная) потребность в дополнительных ресурсах для определения символа окончания первой строки, а также потому, что программисты, использующие в системах Unix символы перевода строки в качестве разделителей, столкнутся с обратно-несовместимым поведением PHP.

Замечание: Эта директива стала доступна с версии PHP 4.3.0

Типы ресурсов

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

GLOB_BRACE (integer)

GLOB_ONLYDIR (integer)

GLOB_MARK (integer)

GLOB_NOSORT (integer)

GLOB_NOCHECK (integer)

GLOB_NOESCAPE (integer)

PATHINFO_DIRNAME (integer)

PATHINFO_BASENAME (integer)

PATHINFO_EXTENSION (integer)

FILE_USE_INCLUDE_PATH (integer)

FILE_APPEND (integer)

FILE_IGNORE_NEW_LINES (integer)

FILE_SKIP_EMPTY_LINES (integer)

Смотрите также

Описания родственных функций вы сможете найти в главах Каталог и Выполнение программ.

За списком упаковщиков URL и пояснениями обращайтесь к главе Прил. M.

Содержание
basename -- Возвращает имя файла из указанного пути
chgrp -- Изменяет группу владельцев файла
chmod -- Изменяет режим доступа к файлу или каталогу
chown -- Изменяет владельца файла
clearstatcache -- Очищает кэш состояния файлов
copy -- Копирует файл
delete -- См.описание функции unlink() или unset()
dirname -- Возвращает имя каталога из указанного пути
disk_free_space -- Получить размер доступного пространства в каталоге
disk_total_space -- Возвращает объем каталога
diskfreespace -- Псевдоним функции disk_free_space()
fclose -- Закрывает дескриптор файла
feof -- Проверяет, достигнут ли конец файла
fflush -- Сброс буфера вывода в файл
fgetc -- Считывает символ из файла
fgetcsv -- Читает строку из файла и производит разбор данных CSV
fgets -- Читает строку из файла
fgetss -- Прочитать строку из файла и отбросить HTML-теги
file_exists -- Проверить наличие указанного файла или каталога
file_get_contents -- Получить содержимое файла в виде одной строки
file_put_contents -- Записать строку в файл
file -- Читает содержимое файла и помещает его в массив
fileatime -- Получить время последнего доступа к файлу
filectime -- Получить время последнего изменения i-узла
filegroup -- Получить идентификатор группы файла
fileinode -- Получить номер inode файла
filemtime -- Получить время последнего изменения файла
fileowner -- Получить идентификатор владельца файла
fileperms -- Получить информацию о правах на файл
filesize -- Получить размер файла
filetype -- Получить тип файла
flock -- Портируемое рекомендательное запирание файлов
fnmatch -- Совпадает ли имя файла с шаблоном
fopen -- Открывает файл или URL
fpassthru -- Выводит все оставшиеся данные из файлового указателя
fputcsv -- Форматирует строку в виде CSV и записывает её в файловый указатель
fputs -- Псевдоним функции fwrite()
fread -- Бинарно-безопасное чтение файла
fscanf -- Обрабатывает данные из файла в соответствии с форматом
fseek -- Устанавливает смещение в файловом указателе
fstat -- Получает информацию о файле используя открытый файловый указатель
ftell -- Сообщает текущее смещение чтения/записи файла
ftruncate -- Урезает файл до указанной длинны
fwrite -- Бинарно-безопасная запись в файл
glob -- Находит файловые пути, совпадающие с шаблоном
is_dir -- Определает, является ли файл директорией
is_executable -- Определяет, является ли файл исполняемым
is_file -- Определяет, является ли файл обычным файлом
is_link -- Определяет, является ли файл символической ссылкой
is_readable -- Определяет, доступен ли файл для чтения
is_uploaded_file -- Определяет, был ли файл загружен при помощи HTTP POST
is_writable -- Определяет, доступен ли файл для записи
is_writeable -- Псевдоним функции is_writable()
link -- Создаёт жёсткую ссылку
linkinfo -- Получает информацию о ссылке
lstat -- Получает информацию о файле или символической ссылке
mkdir -- Создаёт директорию
move_uploaded_file -- Перемещает загруженный файл в новое место
parse_ini_file -- Обрабатывает конфигурационный файл
pathinfo -- Возвращает информацию о пути к файлу
pclose -- Закрывает файловый указатель процесса
popen -- Открывает файловый указатель процесса
readfile -- Выводит файл
readlink -- Возвращает файл, на который указывает символическая ссылка
realpath -- Возвращает канонизированный абсолютный путь к файлу
rename -- Переименовывает файл или директорию
rewind -- Сбрасывает курсор у файлового указателя
rmdir -- Удаляет директорию
set_file_buffer -- Псевдоним функции stream_set_write_buffer()
stat -- Получает информацию о файле
symlink -- Создаёт символическую ссылку
tempnam -- Создаёт файл с уникальным именем
tmpfile -- Создаёт временный файл
touch -- Устанавливает время доступа и модификации файла
umask -- Изменяет текущую umask
unlink -- Удаляет файл

Пред. | Начало | След.
filepro | Уровень выше | basename


basename

(PHP 3, PHP 4, PHP 5)

basename -- Возвращает имя файла из указанного пути

Описание

string basename ( string path [, string suffix] )

Эта функция вернет имя файла, чей путь был передан в качестве параметра. Если имя файла оканчивается на suffix, он также будет отброшен.

На платформах Windows в качестве разделителей имен директорий используются оба слэша (прямой / и обратный \). В других операционных системах разделителем служит прямой слэш (/).

Пример 1. Пример использования функции basename()

<?php
$path = "/home/httpd/html/index.php";
$file = basename($path);         // $file содержит "index.php"
$file = basename($path, ".php"); // $file содержит "index"
?>

Замечание: Параметр suffix был добавлен в версии PHP 4.1.0.

См.также описание функции dirname()

Пред. | Начало | След.
Функции для работы с файловой системой | Уровень выше | chgrp


chgrp

(PHP 3, PHP 4, PHP 5)

chgrp -- Изменяет группу владельцев файла

Описание

bool chgrp ( string filename, mixed group )

Функция осуществляет попытку смены группы владельцев файла с именем filename на группу, указанную в параметре group (в качестве имени или числа). Только суперпользователь способен произвольно изменять группу файла, обычный пользователь может изменять группу файла на любую из групп, к которой принадлежит данный пользователь.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: Эта функция не применима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

См.также описание функций chown() и chmod().

Пред. | Начало | След.
basename | Уровень выше | chmod


chmod

(PHP 3, PHP 4, PHP 5)

chmod -- Изменяет режим доступа к файлу или каталогу

Описание

bool chmod ( string filename, int mode )

Осуществляет попытку изменения режима доступа файла или каталога, переданного в параметре filename на режим, переданный в параметре mode.

Обратите внимание, что значение параметра mode не переводится автоматически в восьмеричную систему счисления, поэтому строки (такие, как, например, "g+w") не будут работать должным образом. Чтобы удостовериться в том, что режим был установлен верно, предваряйте значение, передаваемое в параметре mode, нулем (0):

<?php
chmod("/somedir/somefile", 755);   // десятичное, неверный способ
chmod("/somedir/somefile", "u+rwx,go+rx"); // строка, неверный способ
chmod("/somedir/somefile", 0755);  // восьмеричное, верный способ
?>

Значение параметра mode состоит из трех восьмеричных чисел, определяющих уровень доступа для владельца файла, для группы, в которую входит владелец, и для других пользователей, соответственно. Число, определяющее уровень пользователя, может быть вычислено путем суммирования значений, определяющих права: 1 - доступ на чтение, 2 - доступ на запись, 4 - доступ на выполнения. Более подробно о назначении прав в системах Unix вы можете узнать с помощью команд 'man 1 chmod' and 'man 2 chmod'.

<?php
// Доступ на запись и чтение для владельца, нет доступа для других
chmod("/somedir/somefile", 0600);

// Доступ на запись и чтение для владельца, доступ на чтение для других
chmod("/somedir/somefile", 0644);

// Полный доступ для владельца, доступ на чтение и выполнение для других
chmod("/somedir/somefile", 0755);

// Полный доступ для владельца, доступ на чтение и выполнение для группы владельца
chmod("/somedir/somefile", 0750);
?>

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: Текущим пользователем является пользователь, от имени которого выполняется PHP. Возможно, что этот пользователь будет отличаться от пользователя, под именем которого вы получаете доступ к командной оболочке или учетной записи FTP.

Замечание: Эта функция не применима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Замечание: Когда безопасный режим включён, PHP проверяет, имеет ли файл или директория, с которой вы работаете, такой же UID (владелеца), как и выполняемый скрипт. Кроме того, вы не можете устанавливать SUID, SGID и "липкие" биты.

См.также описание функций chown() и chgrp().

Пред. | Начало | След.
chgrp | Уровень выше | chown


chown

(PHP 3, PHP 4, PHP 5)

chown -- Изменяет владельца файла

Описание

bool chown ( string filename, mixed user )

Осуществляет попытку изменения владельца файла с именем filename на владельца, чье имя передано в параметре user (в виде числа или строки). Только суперпользователь может изменять владельца файла.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: Эта функция не применима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

См.также описание функции chmod().

Пред. | Начало | След.
chmod | Уровень выше | clearstatcache


clearstatcache

(PHP 3, PHP 4, PHP 5)

clearstatcache -- Очищает кэш состояния файлов

Описание

void clearstatcache ( void )

Когда вы используете функции stat(), lstat() или любую из функций, перечисленных в приведенном ниже списке, PHP кеширует результаты их выполнения для обеспечения большей производительности. Однако, в некоторых случаях вам может потребоваться очистка этого кэша. Например, когда ваш скрипт несколько раз проверяет состояние одного и того же файла, который может быть изменен или удален во время выполнения скрипта.

Обратите внимание, что PHP не кэширует информацию о несуществующих файлах. Так что если вы вызовите file_exists() на несуществующем файле, она будет возвращать FALSE до тех пор, пока вы не создадите этот файл. Если же вы создадите файл, она будет возвращать TRUE даже если затем вы его удалите.

Замечание: Результаты выполнения приведенных ниже функций кешируются PHP, поэтому, если вы не хотите, чтобы информация о файле или каталоге, с которым вы работаете, кешировалась, используйте функцию clearstatcache().

Список функций, результаты выполнения которых кешируются: stat(),
lstat(),
file_exists(),
is_writable(),
is_readable(),
is_executable(),
is_file(),
is_dir(),
is_link(),
filectime(),
fileatime(),
filemtime(),
fileinode(),
filegroup(),
fileowner(),
filesize(),
filetype() и
fileperms().

Пред. | Начало | След.
chown | Уровень выше | copy


copy

(PHP 3, PHP 4, PHP 5)

copy -- Копирует файл

Описание

bool copy ( string source, string dest )

Создает копию файла, чье имя передано в параметре source, в файле с именем dest. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. Пример использования функции copy()

<?php
$file = 'example.txt';
$newfile = 'example.txt.bak';

if (!copy($file, $newfile)) {
    echo "не удалось скопировать $file...\n";
}
?>

Если вы хотите переместить файл, воспользуйтесь функцией rename().

Замечание: Начиная с PHP версии 4.3.0, оба параметра, source и dest, могут быть URL'ами, если были включены "упаковщики fopen". За более подробной информацией обратитесь к описанию функции fopen(). Если параметр dest является URL, выполнение функции может завершиться ошибкой, если упаковщик не поддерживает перезапись существующих файлов.

Внимание

Если файл-назначение существует, он будет перезаписан.

Замечание: Замечание отностильно совместимости Windows: Если вы копируете пустой файл, copy() вернёт FALSE, но файл будет нормально скопирован.

См.также описание функций move_uploaded_file(), rename(), а также главу руководства Обработка загрузки файлов.

Пред. | Начало | След.
clearstatcache | Уровень выше | delete


delete

(no version information, might be only in CVS)

delete -- См.описание функции unlink() или unset()

Описание

void delete ( string file )

Это фиктивная секция руководства, которая помогает программистам, ищущим описание unlink() или unset() в неверном месте.

См.также описания функции unlink(), служащей для удаления файлов или unset() - для удаления переменных.

Пред. | Начало | След.
copy | Уровень выше | dirname


dirname

(PHP 3, PHP 4, PHP 5)

dirname -- Возвращает имя каталога из указанного пути

Описание

string dirname ( string path )

Данная функция возвращает имя каталога, содержащегося в параметре path.

На платформах Windows в качестве разделителей имен директорий используются оба слэша (прямой / и обратный \). В других операционных системах разделителем служит прямой слэш (/).

Пример 1. Пример использования функции dirname()

<?php
$path = "/etc/passwd";
$file = dirname($path); // $file содержит "/etc"
?>

Замечание: Начиная с PHP версии 4.0.3, функция dirname() стала совместима со стандартом POSIX. Это, по существу, означает, что, если в path отсутствуют слэши, функция вернет точку ('.'), обозначающую текущий каталог. Иначе результатом выполнения функции будет являться значение параметра path с отброшенным завершающим /компонентом. Обратите внимание, что вы будете часто получать точку или слэш в ситуациях, в которых прежняя фунциональность dirname() возвращала бы пустую строку.

dirname() изменила своё поведение в PHP 4.3.0. Примеры:

<?php

//до PHP 4.3.0
dirname('c:/'); // returned '.'

//после PHP 4.3.0
dirname('c:/'); // returns 'c:'

?>

dirname() стала правильно обрабатывать двоичные данные начиная с версии PHP 5.0.0

См.также описание функций basename(), pathinfo() и realpath().

Пред. | Начало | След.
delete | Уровень выше | disk_free_space


disk_free_space

(PHP 4 >= 4.1.0, PHP 5)

disk_free_space -- Получить размер доступного пространства в каталоге

Описание

float disk_free_space ( string directory )

Функция возвращает размер свободного пространства в байтах, доступного для использования в указанном разделе диска.

Пример 1. Пример использования функции disk_free_space()

<?php
$df = disk_free_space("/");
// $df содержит размер свободного места в каталоге "/"

// Под Windows:
disk_free_space("C:");
disk_free_space("D:");
?>

Замечание: Эта функция не применима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

См.также описание функции disk_total_space()

Пред. | Начало | След.
dirname | Уровень выше | disk_total_space


disk_total_space

(PHP 4 >= 4.1.0, PHP 5)

disk_total_space -- Возвращает объем каталога

Описание

float disk_total_space ( string directory )

Функция возвращает размер в байтах указанного раздела диска.

Пример 1. Пример использования disk_total_space()

<?php
// $df содержит размер "/"
$df = disk_total_space("/");

// Под Windows:
disk_total_space("C:");
disk_total_space("D:");
?>

Замечание: Эта функция не применима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

См.также описание функции disk_free_space()

Пред. | Начало | След.
disk_free_space | Уровень выше | diskfreespace


diskfreespace

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

diskfreespace -- Псевдоним функции disk_free_space()

Описание

Эта функция является псевдонимом для фукнции disk_free_space().

Пред. | Начало | След.
disk_total_space | Уровень выше | fclose


fclose

(PHP 3, PHP 4, PHP 5)

fclose -- Закрывает дескриптор файла

Описание

bool fclose ( resource handle )

Функция закрывает файл, на который указывает handle.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Дескриптор должен указывать на файл, открытый ранее с помощью функции fopen() или fsockopen().

Пример 1. Простой пример использования функции fclose()

<?php

  $handle = fopen('somefile.txt', 'r');

  fclose($handle);

?>

Пред. | Начало | След.
diskfreespace | Уровень выше | feof


feof

(PHP 3, PHP 4, PHP 5)

feof -- Проверяет, достигнут ли конец файла

Описание

bool feof ( resource handle )

Функция возвращает TRUE в случае, когда дескриптор указывает на достижение конца файла или же если произошла ошибка (включая таймаут сокета), иначе возвращает FALSE.

Внимание

Если подключение, открытое при помощи fsockopen() не было закрыто сервером, feof() будет ждать достижения таймаута прежде чем вернуть TRUE. Время таймаута по умолчанию равно 60 секундам. Вы можете использовать stream_set_timeout() для того, чтобы изменить это значение.

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen().

Пред. | Начало | След.
fclose | Уровень выше | fflush


fflush

(PHP 4 >= 4.0.1, PHP 5)

fflush -- Сброс буфера вывода в файл

Описание

bool fflush ( resource handle )

Данная функция осуществляет сброс буферизованных данных в файл, на который указывает handle. Возвращает TRUE в случае успешного завершения, FALSE - в противном случае. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen().

Пред. | Начало | След.
feof | Уровень выше | fgetc


fgetc

(PHP 3, PHP 4, PHP 5)

fgetc -- Считывает символ из файла

Описание

string fgetc ( resource handle )

Функция возвращает строку, содержащую один символ, прочитанный из файла, на который указывает handle. Возвращает FALSE по достижению конца файла (EOF).

Дескриптор должен указывать на файл, открытый ранее с помощью функции fopen(), popen() или fsockopen().

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen().

Внимание

Эта функция может возвращать как логическое значение FALSE, так и не относящееся к логическому типу значение, которое приводится к FALSE, например, 0 или "". За более подробной информации обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Пример 1. Пример использования функции fgetc()

<?php
$fp = fopen('somefile.txt', 'r');
if (!$fp) {
    echo 'Ошибка при открытии файла somefile.txt';
}
while (false !== ($char = fgetc($fp))) {
    echo "$char\n";
}
?>

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

См.также описания функций
fread(), fopen(),
popen(), fsockopen() и
fgets().

Пред. | Начало | След.
fflush | Уровень выше | fgetcsv


fgetcsv

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

fgetcsv -- Читает строку из файла и производит разбор данных CSV

Описание

array fgetcsv ( resource handle [, int length [, string delimiter [, string enclosure]]] )

handle

Корректный файловый указатель на файл, успешно открытый при помощи fopen(), popen(), или fsockopen().

length (Необязательный)

Должен быть больше самой длинной строки (в символах), найденной в CSV-файле (включая завершающий символ конца строки). Он стал необязательным в PHP 5. Если этот аргумент не указан (или равен 0 в версиях PHP 5.0.4 и выше), максимальная длинна строки не ограничена, но функция работает немного медленнее.

delimiter (Необязательный)

Устанавливает разделитель поля (только один символ). По умолчанию это запятая.

enclosure (Необязательный)

Устанавливает символ ограничителя поля (только один символ). По умолчанию это двойная кавычка. Добавлен в PHP 4.3.0.

Данная функция похожа на функцию fgets(), с той разницей, что она производит анализ строки на наличие записей в формате CSV и возвращает найденные поля в качестве массива.

Функция fgetcsv() возвращает FALSE в случае ошибки, а также по достижению конца файла.

Замечание: Пустая строка CSV-файла будет возвращена в качестве массива, содержащего единственный элемент null, ошибки в данном случае не возникнет.

Пример 1. Чтение и вывод на экран содержания CSV-файла

<?php
$row = 1;
$handle = fopen("test.csv", "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    $num = count($data);
    echo "<p> $num полей в строке $row: <br /></p>\n";
    $row++;
    for ($c=0; $c < $num; $c++) {
        echo $data[$c] . "<br />\n";
    }
}
fclose($handle);
?>

fgetcsv() стала правильно обрабатывать двоичные данные начиная с версии PHP 4.3.5

Замечание: Эта функция принимает во внимание настройки локали. К примеру, если LANG установлен в en_US.UTF-8, то файлы в однобайтовой кодировке будут неправильно прочитаны этой функцией.

Замечание: Если у вас возникают проблемы с распознаванием PHP окончания строк при чтении файлов на Macintosh-совместимом компьютере или при чтении файлов, созданных на Macintosh-совместимом компьютере, необходимо включить опцию auto_detect_line_endings.

См.также описание функций explode(), file(), pack() и fputcsv().

Пред. | Начало | След.
fgetc | Уровень выше | fgets


fgets

(PHP 3, PHP 4, PHP 5)

fgets -- Читает строку из файла

Описание

string fgets ( resource handle [, int length] )

Возвращает строку размером в length - 1 байт, прочитанную из дескриптора файла, на который указывает параметр handle. Чтение заканчивается, когда количество прочитанных байтов достигает length - 1, по достижении конца строки (который включается в возвращаемое значение) или по достижении конца файла (что бы ни встретилось первым). Если длина не указана, по умолчанию ее значение равно 1 килобайту или 1024 байтам.

В случае возникновения ошибки функция возвращает FALSE.

Наиболее распространенные ошибки:

Программисты, привыкшие к семантике 'C' функции fgets(), должны принимать во внимание разницу в том, каким образом возвращается признак достижения конца файла (EOF).

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen().

Ниже приведен простой пример:

Пример 1. Построчное чтение файла

<?php
$handle = fopen("/tmp/inputfile.txt", "r");
while (!feof($handle)) {
    $buffer = fgets($handle, 4096);
    echo $buffer;
}
fclose($handle);
?>

Замечание: Параметр length стал необязательным, начиная с PHP версии 4.2.0. Если этот параметр опущен, длина строки принимается за 1024. С версии PHP 4.3, отсутствие параметра length будет приводить к чтению потока до конца строки. Если длина большинства строк в файле превышает 8 килобайт, наиболее эффективным решением в отношении ресурсов, используемых скриптом, будет указание максимальной длины строки.

Замечание: Данная функция может корректно обрабатывать двоичные данные, начиная с версии PHP 4.3. Более ранние версии не обладали этой функциональностью.

Замечание: Если у вас возникают проблемы с распознаванием PHP окончания строк при чтении файлов на Macintosh-совместимом компьютере или при чтении файлов, созданных на Macintosh-совместимом компьютере, необходимо включить опцию auto_detect_line_endings.

См. также fread(),
fgetc(),
stream_get_line(),
fopen(),
popen(),
fsockopen() и
stream_set_timeout().

Пред. | Начало | След.
fgetcsv | Уровень выше | fgetss


fgetss

(PHP 3, PHP 4, PHP 5)

fgetss -- Прочитать строку из файла и отбросить HTML-теги

Описание

string fgetss ( resource handle [, int length [, string allowable_tags]] )

Данная функция идентична функции fgets() с той только разницей, что осуществляет отбрасывание любых HTML и PHP-тегов из прочитанной строки.

Необязательный третий параметр может содержать строку со списком тегов, которые не должны быть отброшены.

Замечание: Параметр allowable_tags был добавлен в версиях PHP 3.0.13 и PHP 4.0.0.

Параметр length является необязательным начиная с версии PHP 5.

Замечание: Если у вас возникают проблемы с распознаванием PHP окончания строк при чтении файлов на Macintosh-совместимом компьютере или при чтении файлов, созданных на Macintosh-совместимом компьютере, необходимо включить опцию auto_detect_line_endings.

См.также описание функций fgets(), fopen(),
fsockopen(), popen() и
strip_tags().

Пред. | Начало | След.
fgets | Уровень выше | file_exists


file_exists

(PHP 3, PHP 4, PHP 5)

file_exists -- Проверить наличие указанного файла или каталога

Описание

bool file_exists ( string filename )

Возвращзает TRUE, если файл или каталог с именем, указанным в параметре filename, существует; возвращает FALSE в обратном случае.

На платформах Windows, для проверки наличия файлов на сетевых ресурсах, используйте имена, подобные //computername/share/filename или \\computername\share\filename.

Пример 1. Проверка существования файла

<?php
$filename = '/path/to/foo.txt';

if (file_exists($filename)) {
    echo "The file $filename exists";
} else {
    echo "The file $filename does not exist";
}
?>

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка: Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat(), смотрите в Прил. M.

См.также описания функций is_readable(), is_writable(), is_file() и file().

Пред. | Начало | След.
fgetss | Уровень выше | file_get_contents


file_get_contents

(PHP 4 >= 4.3.0, PHP 5)

file_get_contents -- Получить содержимое файла в виде одной строки

Описание

string file_get_contents ( string filename [, bool use_include_path [, resource context [, int offset [, int maxlen]]]] )

Данная функция идентична функции file() с той только разницей, что содержимое файла возвращается в строке, начиная с указанного смещения offset и до maxlen байтов. В случае неудачи, file_get_contents() вернёт FALSE.

Использование функции file_get_contents() наиболее предпочтительно в случае необходимости получить содержимое файла целиком, поскольку для улучшения производительности функция использует алгоритм 'memory mapping' (если поддерживается операционной системой).

Замечание: Если вы открываете URI содержащий спецсимволы, такие как пробел, вам нужно закодировать URI при помощи urlencode().

Список изменений

Версия | Описание
5.0.0 | Добавлена поддержка контекста.
5.1.0 | Добавлены аргументы offset и maxlen.

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Подсказка: Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция "fopen wrappers". Смотрите более подробную информацию об определении имени файла в описании функции fopen(), а также список поддерживаемых протоколов URL в Прил. M.

Внимание

При использовании SSL, Microsoft IIS нарушает протокол, закрывая соединение без отправки индикатора close_notify. PHP сообщит об этом как о "SSL: Fatal Protocol Error" в тот момент, когда вы достигнете конца данных. Чтобы обойти это, вы должны установить error_reporting на уровень, исключающий E_WARNING. PHP версий 4.3.7 и старше умеет определять, что на стороне сервера находится проблемный IIS и не выводит предупреждение. Если вы используете fsockopen() для создания ssl:// сокета, вы сами отвечаете за определение и подавление этого предупреждения.

Смотрите также

file()
fgets()
fread()
readfile()
file_put_contents()

Пред. | Начало | След.
file_exists | Уровень выше | file_put_contents


file_put_contents

(PHP 5)

file_put_contents -- Записать строку в файл

Описание

int file_put_contents ( string filename, mixed data [, int flags [, resource context]] )

Функция идентична последовательному вызову функций fopen(), fwrite() и fclose(). Возвращаемым функцией значением является количество записанных в файл байтов.

Параметр flags может принимать значение FILE_USE_INCLUDE_PATH и/или FILE_APPEND. Используйте FILE_USE_INCLUDE_PATH с осторожностью.

Также вы можете передать (одномерный) массив в качестве параметра data. Это будет эквивалентно вызову file_put_contents($filename, join('', $array)).

Начиная с версии PHP 5.1.0, вы также можете передавать ресурс потока в качестве аргумента data. В результате оставшийся буфер этого потока будет скопирован в указанный файл. Это похоже на использование stream_copy_to_stream().

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Подсказка: Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция "fopen wrappers". Смотрите более подробную информацию об определении имени файла в описании функции fopen(), а также список поддерживаемых протоколов URL в Прил. M.

См.также описания функций
fopen(),
fwrite(),
fclose() и
file_get_contents().

Пред. | Начало | След.
file_get_contents | Уровень выше | file


file

(PHP 3, PHP 4, PHP 5)

file -- Читает содержимое файла и помещает его в массив

Описание

array file ( string filename [, int use_include_path [, resource context]] )

Данная функция идентична функций readfile() с той разницей, что file() возвращает содержимое прочитанного файла в виде массива. Каждый элемент возвращенного массива содержит соответствующую строку с символами конца строки. В случае ошибки, функция file() возвращает FALSE.

Вы можете указать необязательный параметр use_include_path, равный "1", если хотите, чтобы поиск файла также производился в каталогах, указанных директивой include_path.

<?php
// Получить содержимое файла в виде массива. В данном примере мы используем
// обращение по протоколу HTTP для получения HTML-кода с удаленного сервера.
$lines = file('http://www.example.com/');

// Осуществим проход массива и выведем номера строк и их содержимое в виде HTML-кода.
foreach ($lines as $line_num => $line) {
    echo "Строка #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}

// Второй пример. Получим содержание web-страницы в виде одной строки.
// См.также описание функции file_get_contents().
$html = implode('', file ('http://www.example.com/'));
?>

Подсказка: Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция "fopen wrappers". Смотрите более подробную информацию об определении имени файла в описании функции fopen(), а также список поддерживаемых протоколов URL в Прил. M.

Замечание: Каждая строка в полученном массиве будет завершаться символами конца строки, поэтому, если вам будет нужно избавиться от этих символов, вы будете должны использовать функцию rtrim().

Замечание: Если у вас возникают проблемы с распознаванием PHP окончания строк при чтении файлов на Macintosh-совместимом компьютере или при чтении файлов, созданных на Macintosh-совместимом компьютере, необходимо включить опцию auto_detect_line_endings.

Замечание: Начиная с PHP 4.3.0, вы можете использовать функцию file_get_contents() для получения содержимого файла в виде строки.

Начиная с PHP 4.3.0, функция file() корректно обрабатывает двоичные данные.

Замечание: Поддержка контекста была добавлена в PHP 5.0.0.

Внимание

При использовании SSL, Microsoft IIS нарушает протокол, закрывая соединение без отправки индикатора close_notify. PHP сообщит об этом как о "SSL: Fatal Protocol Error" в тот момент, когда вы достигнете конца данных. Чтобы обойти это, вы должны установить error_reporting на уровень, исключающий E_WARNING. PHP версий 4.3.7 и старше умеет определять, что на стороне сервера находится проблемный IIS и не выводит предупреждение. Если вы используете fsockopen() для создания ssl:// сокета, вы сами отвечаете за определение и подавление этого предупреждения.

См.также описания функций readfile(),
fopen(), fsockopen(),
popen(), file_get_contents()
и include().

Пред. | Начало | След.
file_put_contents | Уровень выше | fileatime


fileatime

(PHP 3, PHP 4, PHP 5)

fileatime -- Получить время последнего доступа к файлу

Описание

int fileatime ( string filename )

Возвращает время, когда в последний раз был осуществлен доступ к указанному файлу, или FALSE в случае ошибки. Время возвращается в формате 'Unix timestamp'.

Примечание: Проедполагается, что время последнего доступа файла изменяется во время чтения блоков файла. Это может потребовать значительного количества системных ресурсов, особенно когда приложение обращается к большому числу файлов или каталогов. С целью увеличения производительности, некоторые файловые системы на платформах Unix могут быть примонтированы с отключенной возможностью обновления времени последнего доступа к файлам, примером этого могут служить каталоги для хранения сообщений USENET. В подобных случаях использование данной функции бессмысленно.

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка: Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat(), смотрите в Прил. M.

Пример 1. Пример использования функции fileatime()

<?php

// Пример вывода: В последний раз обращение к файлу somefile.txt было произведено: December 29 2002 22:16:23.

$filename = 'somefile.txt';
if (file_exists($filename)) {
    echo "В последний раз обращение к файлу $filename было произведено: " . date("F d Y H:i:s.", fileatime($filename));
}

?>

См.также описания функций filemtime(),
fileinode() и
date().

Пред. | Начало | След.
file | Уровень выше | filectime


filectime

(PHP 3, PHP 4, PHP 5)

filectime -- Получить время последнего изменения i-узла

Описание

int filectime ( string filename )

Возвращает время последнего изменения файла или FALSE в случае ошибки. Время возвращается в формате 'Unix timestamp'.

Примечание. На большинстве платформ Unix, файл считается измененным, если изменены данные его i-узла, что включает информацию о правах на файл, о его владельце и группе и любую другую информацию, содержащуюся в i-узле. Обратитесь также к описаниям функций filemtime() (данная функция полезна для создания сообщений, как-то: "Последнее обновление от..." на web-страницах) и fileatime().

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка: Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat(), смотрите в Прил. M.

Пример 1. Пример использования функции filectime()

<?php

// Пример вывода: Файл somefile.txt в последний раз был изменен: December 29 2002 22:16:23.

$filename = 'somefile.txt';
if (file_exists($filename)) {
    echo "Файл $filename в последний раз был изменен: " . date("F d Y H:i:s.", filectime($filename));
}

?>

См.также описание функции filemtime().

Пред. | Начало | След.
fileatime | Уровень выше | filegroup


filegroup

(PHP 3, PHP 4, PHP 5)

filegroup -- Получить идентификатор группы файла

Описание

int filegroup ( string filename )

Функция возвращает идентификатор группы файла в виде числа. Для получения имени группы в виде строки используйте функцию posix_getgrgid(). В случае возникновения ошибки функция возвращает FALSE и генерируется сообщение об ошибке уровня E_WARNING.

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка: Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat(), смотрите в Прил. M.

См.также описания функций fileowner() и safe_mode_gid.

Пред. | Начало | След.
filectime | Уровень выше | fileinode


fileinode

(PHP 3, PHP 4, PHP 5)

fileinode -- Получить номер inode файла

Описание

int fileinode ( string filename )

Функция возвращает номер inode файла или FALSE в случае возникновения ошибки.

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка: Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat(), смотрите в Прил. M.

См.также описание функции stat()

Пред. | Начало | След.
filegroup | Уровень выше | filemtime


filemtime

(PHP 3, PHP 4, PHP 5)

filemtime -- Получить время последнего изменения файла

Описание

int filemtime ( string filename )

Функция возвращает время последнего изменения указанного файла или FALSE в случае возникновения ошибки. Время возвращается в формате 'Unix timestamp', который подходит для передачи в качестве аргумента функции date().

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка: Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat(), смотрите в Прил. M.

Данная функция возвращает время последней записи блоков файла, иначе говоря, изменения содержания файла.

Пример 1. Пример использования функции filemtime()

<?php
// Пример вывода: в последний раз файл somefile.txt был изменен: December 29 2002 22:16:23.

$filename = 'somefile.txt';
if (file_exists($filename)) {
    echo "в последний раз файл $filename был изменен: " . date ("F d Y H:i:s.", filemtime($filename));
}
?>

См.также описание функций filectime(), stat(), touch() и getlastmod().

Пред. | Начало | След.
fileinode | Уровень выше | fileowner


fileowner

(PHP 3, PHP 4, PHP 5)

fileowner -- Получить идентификатор владельца файла

Описание

int fileowner ( string filename )

Функция возвращает числовой идентификатор владельца указанного файла или FALSE в случае возникновения ошибки. Чтобы получить имя владельца в виде строки, используйте функцию posix_getpwuid().

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка: Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat(), смотрите в Прил. M.

См.также описание функции stat().

Пред. | Начало | След.
filemtime | Уровень выше | fileperms


fileperms

(PHP 3, PHP 4, PHP 5)

fileperms -- Получить информацию о правах на файл

Описание

int fileperms ( string filename )

Функция возвращает информацию о правах на указанный файл или FALSE в случае возникновения ошибки.

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка: Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat(), смотрите в Прил. M.

Пример 1. Display permissions as an octal value

<?php
echo substr(sprintf('%o', fileperms('/tmp')), -4);
echo substr(sprintf('%o', fileperms('/etc/passwd')), -4);
?>

This would produce the output:

1777
0644

Пример 2. Display full permissions

<?php
$perms = fileperms('/etc/passwd');

if (($perms & 0xC000) == 0xC000) {
    // Сокет
    $info = 's';
} elseif (($perms & 0xA000) == 0xA000) {
    // Символическая ссылка
    $info = 'l';
} elseif (($perms & 0x8000) == 0x8000) {
    // Обычный
    $info = '-';
} elseif (($perms & 0x6000) == 0x6000) {
    // Специальный блок
    $info = 'b';
} elseif (($perms & 0x4000) == 0x4000) {
    // Директория
    $info = 'd';
} elseif (($perms & 0x2000) == 0x2000) {
    // Специальный символ
    $info = 'c';
} elseif (($perms & 0x1000) == 0x1000) {
    // Поток FIFO
    $info = 'p';
} else {
    // Неизвестный
    $info = 'u';
}

// Владелец
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ?
            (($perms & 0x0800) ? 's' : 'x' ) :
            (($perms & 0x0800) ? 'S' : '-'));

// Группа
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ?
            (($perms & 0x0400) ? 's' : 'x' ) :
            (($perms & 0x0400) ? 'S' : '-'));

// Мир
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ?
            (($perms & 0x0200) ? 't' : 'x' ) :
            (($perms & 0x0200) ? 'T' : '-'));

echo $info;
?>

Результат:

-r--r--r--

См.также описания функций is_readable() и stat()

Пред. | Начало | След.
fileowner | Уровень выше | filesize


filesize

(PHP 3, PHP 4, PHP 5)

filesize -- Получить размер файла

Описание

int filesize ( string filename )

Возвращает размер указанного файла в байтах или FALSE в случае возникновения ошибки.

Замечание: Поскольку PHP использует знаковое представления для чисел целого типа, а многие платформы используют 32-битные целые числа, функция filesize() может возвращать неожиданные значения для файлов, чей размер превосходит 2 Гб. Если размер файла находится в пределах 2 - 4 Гб, корректное значение можно получить, используя конструкцию sprintf("%u", filesize($file)).

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка: Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat(), смотрите в Прил. M.

Пример 1. Пример использования функции filesize()

<?php

// Пример вывода: Размер файла somefile.txt: 1024 байтов

$filename = 'somefile.txt';
echo 'Размер файла ' . $filename . ': ' . filesize($filename) . ' байтов';

?>

См.также описание функции file_exists()

Пред. | Начало | След.
fileperms | Уровень выше | filetype


filetype

(PHP 3, PHP 4, PHP 5)

filetype -- Получить тип файла

Описание

string filetype ( string filename )

Возвращает тип файла. Возможными значениями являются fifo, char, dir, block, link, file и unknown.

Возвращает FALSE в случае возникновения ошибки. filetype() также вызовет сообщение E_NOTICE при неудачной попытке получения информации о файле или если тип файла неизвестен.

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка: Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat(), смотрите в Прил. M.

Пример 1. Пример использования функции filetype()

<?php

echo filetype('/etc/passwd');  // file
echo filetype('/etc/');        // dir

?>

См. также описание функций is_dir(),
is_file(), is_link(),
file_exists(), stat() и
mime_content_type().

Пред. | Начало | След.
filesize | Уровень выше | flock


flock

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

flock -- Портируемое рекомендательное запирание файлов

Описание

bool flock ( resource handle, int operation [, int &wouldblock] )

PHP поддерживает портируемый механизм запирания файлов целиком, который имеет рекомендательный характер (это означает, что все обращающиеся к файлу программы должны использовать такой же способ запирания файла, иначе запирание не сработает).

Замечание: flock() является обязательным под Windows.

flock() применяется к handle, который должен быть указателем на открытый файл. Параметр operation может принимать следующие значения:

  • Чтобы установить общее запирание (чтение), установите operation в значение LOCK_SH (или 1, в случае версии PHP ниже 4.0.1).

  • Чтобы установить эксклюзивное запирание (запись), установите operation в значение LOCK_EX (или 2, в случае версии PHP ниже 4.0.1).

  • Чтобы отпереть файл (после общего или эксклюзивного запирания), установите operation в значение LOCK_UN (или 3, в случае версии PHP ниже 4.0.1).

  • Если вы не хотите, чтобы flock() блокировал файл при запирании, добавьте LOCK_NB (или 4, при использовании версии PHP ниже 4.0.1) к параметру operation.

flock() позволяет вам реализовывать простую модель чтения/записи, которая может быть использована практически на любой платформе (включая большинство проивзодных от Unix платформ, и даже Windows). Необязательный третий аргумент устанавливается в TRUE, если запирание также блокирует (код ошибки EWOULDBLOCK). Блокировка снимается при помощи этой же функции fclose() (которая также автоматически вызывается при завершении выполнения скрипта).

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. Пример использования функции flock()

<?php

$fp = fopen("/tmp/lock.txt", "w+");

if (flock($fp, LOCK_EX)) { // выполнить эксплюзивное запирание
    fwrite($fp, "Что-нибудь пишем\n");
    flock($fp, LOCK_UN); // отпираем файл
} else {
    echo "Не могу запереть файл !";
}

fclose($fp);

?>

Замечание: Из-за того, что функции flock() необходим указатель на файл, вам может понадобиться воспользоваться специальным запирающим файлом для того, чтобы ограничить доступ к файлу, который вы намерены очищать путём открытыя его в режиме записи (используя "w" или "w+" в качестве аргумента функции fopen()).

Внимание

flock() не будет работать на NFS и многих других сетевых файловых системах. Обратитесь к документации вашей операционной системы для получения дополнительной информации.

В некоторых операционных системах flock() реализован на уровне процессов. При использовании многопоточных серверных API, таких как ISAPI, вы не можете полагаться на flock() для защиты ваших файлов от дугих PHP-скриптов, которые работают в параллельном потоке на том же сервере!

flock() не поддерживается на старых файловых системах вроде FAT и его производных, так что всегда будет возвращать FALSE в этом окружении (это особенно касается пользователей Windows 98).

Пред. | Начало | След.
filetype | Уровень выше | fnmatch


fnmatch

(PHP 4 >= 4.3.0, PHP 5)

fnmatch -- Совпадает ли имя файла с шаблоном

Описание

bool fnmatch ( string pattern, string string [, int flags] )

fnmatch() проверяет, совпадает ли переданный параметр string с указанным шаблоном подстановок оболочки (shell wildcard) pattern.

Эта функция полезна при рабоде с именами файлов, хотя может быть использована и на обычной строке. Среднестатистический пользователь знаком с подстановками оболочки, как минимум в их простейшей форме из подстановок '?' и '*', так что использование fnmatch() вместо ereg() или preg_match() для поиска в пользовательской части сайта может быть намного удобнее для пользователей, не знакомых с регулярными выражениями.

Пример 1. Проверяет, соответствует ли цвет шаблону подстановок оболочки.

<?php
if (fnmatch("*gr[ae]y", $color)) {
  echo "some form of gray ...";
}
?>

Внимание

На данный момент эта функция недоступна в Windows и других POSIX-несовместимых системах.

См. также описание функций glob(), ereg(), preg_match() и Unix manpage по теме fnmatch(3) для получения информации относительно названий флагов (до тех пор, пока они не задокументированы здесь ).

Пред. | Начало | След.
flock | Уровень выше | fopen


fopen

(PHP 3, PHP 4, PHP 5)

fopen -- Открывает файл или URL

Описание

resource fopen ( string filename, string mode [, bool use_include_path [, resource zcontext]] )

fopen() закрепляет именованый ресурс, указанный в аргументе filename, за потоком. Если filename передан в форме "scheme://...", он считается URL'ом и PHP проведёт поиск обработчика протокола (также известного как "обвёртка") для этой схемы. Если ни одна обвёртка не закреплена за протоколом, PHP выдаст замечание чтобы помочь вам отследить потенциальную проблему в вашем скрипте и продолжит выполнение, будто filename указывает на обыкновенный файл.

Если PHP решил, что filename указывает на локальный файл, тогда он попытается открыть поток к этому файлу. Файл должен быть доступен PHP, так что вам следует убедиться, что права доступа на файл разрешают это. Если вы вкдючили безопасный режим или open_basedir, накладываются дальнейшие ограничения.

Если PHP решил, что filename указывает на зарегистрированный протокол и этот протокол зарегистрирован как сетевой URL, PHP проверит состояние директивы allow_url_fopen. Если она выключена, PHP выдаст предупреждение и вызов fopen закончится неудачей.

Замечание: Список поддерживаемых протоколов доступен в разделе Прил. M. Некоторые протоколы (обвёртки) поддерживают context и/или опции php.ini. Обратитесь к соответствующей странице с описанием используемого протокола для получения списка опций, которые могут быть установлены. (например, значение php.ini user_agent используется обвёрткой http). Для получения описания параметров contexts и zcontext, обратитесь к разделу Ссылка CXLV, Stream Functions.

Замечание: Поддержка контекста была добавлена в PHP 5.0.0.

Замечание: Начиная с версии PHP 4.3.2, бинарный режим является режимом по умолчанию для всех платформ, которые различают бинарный и текстовый, режимы. Если у вас возникли проблемы после обновления, попробуйте использовать флаг 't' в качестве обходного пути до тех пор, пока вы не измените свои скрипты для достижения большей портируемости, как отмечено выше.

Параметр mode указывает тип доступа, который вы запрашиваете у потока. Он может быть одним из следующих:

Таблица 1. Список возможных режимов для fopen() используя mode

mode | Описание
'r' | Открывает файл только для чтения; помещает указатель в начало файла.
'r+' | Окрывает файл для чтения и записи; помещяет указатель в начало файла.
'w' | Открывает файл только для записи; помещает указатель в начало файла и обрезает файл до нулевой длинны. Если файл не существует - пробует его создать.
'w+' | Открывает файл для чтения и записи; помещает указатель в начало файла и обрезает файл до нулевой длинны. Если файл не существует - пробует его создать.
'a' | Открывает файл только для записи; помещает указатель в конец файла. Если файл не существует - пытается его создать.
'a+' | Открывает файл для чтения и записи; помещает указатель в конец файла. Если файл не существует - пытается его создать.
'x' | Создаёт и открывает только для записи; помещает указатель в начало файла. Если файл уже существует, вызов fopen() закончится неудачей, вернёт FALSE и выдаст предупреждение уровня E_WARNING. Если файл не существует, попытается его создать. Это эквивалентно указанию флагов O_EXCL|O_CREAT для внутреннего системного вызова open(2). Эта опция поддерживается начиная с версии PHP 4.3.2 и выше, и работает только для локальных файлов.
'x+' | Создаёт и открывает для чтения и записи; помещает указатель в начало файла. Если файл уже существует, вызов fopen() закончится неудачей, вернёт FALSE и выдаст предупреждение уровня E_WARNING. Если файл не существует, попытается его создать. Это эквивалентно указанию флагов O_EXCL|O_CREAT для внутреннего системного вызова open(2). Эта опция поддерживается начиная с версии PHP 4.3.2 и выше, и работает только для локальных файлов.

Замечание: Разные семейства операционных систем имеют разные соглашения относительно окончанийя строк. Когда вы пишете текст и хотите вставить разрыв строки, вы должны использовать правильный(-ые) символ(ы) для вашей операционной системы. Системы семейства Unix используют \n в качестве символа конца строки, системы семейства Windows используют \r\n в качестве символов окончания строки и системы семейства Macintosh используют \r в качестве символа конца строки.

Если вы используете неверный символ конца строки при редактировании файлов, вы можете обнаружить, что при открытии эти файлы "смешно выглядят".

Windows предлагает флаг режима текстовой трансляции ('t'), который автоматически переведёт \n во время работы с файлом. И наоборот - также вы можете использовать 'b' чтобы принудительно включить бинарный (двоичный) режим, в котором ваши данные не будут преобразовываться. Чтобы использовать эти режимы, укажите 'b' или 't' в качестве последней буквы параметра mode.

Так как установка флага трансляции по умолчанию зависит от SAPI и версии PHP, которую вы используете, рекомендуем явно задавать указанный флаг из соображений портируемости. Вы должны использовать режим 't' если вы работаете с текстовым файлом и использовать \n для разделения для обозначения конца строки в вашем скрипте, при этом не беспокоясь за читаемость ваших файлов в других приложениях типа "Блокнота". В противном случае вам следует использовать флаг 'b'.

Если вы явно не укажете флаг 'b' во время работы с бинарными файлами, вы можете столкнуться со странной порчей ваших данных, включая испорченные файлы изображений и странные проблемы с символами \r\n.

Замечание: Из соображений портируемости, настоятельно рекомендуется всегда использовать флаг 'b' при открытии файлов с помощью fopen().

Замечание: Кроме того, из соображений портируемости, также настойчиво рекомендуется переписать старый код, который полагается на режим 't', чтобы вместо этого он использовал правильные окончания строк и режим 'b'.

Необязательный третий параметр use_include_path может быть установлен в '1' или TRUE, если вы также хотите провести поиск файла в include_path.

Если открыть файл не удалось, функция вернёт FALSE и сгенерирует ошибку уровня E_WARNING. Вы можете использовать @ для того, чтобы подавить это предупреждение.

Пример 1. Примеры использования функции fopen()

<?php
$handle = fopen("/home/rasmus/file.txt", "r");
$handle = fopen("/home/rasmus/file.gif", "wb");
$handle = fopen("http://www.example.com/", "r");
$handle = fopen("ftp://user:password@example.com/somefile.txt", "w");
?>

Если вы сталкиваетесь с проблемами во время чтения или записи файлов, и вы используете PHP в виде серверного модуля, убедитесь в том, что процесс сервера имеет доступ к файлам и директориям, которые вы используете.

На платформе Windows, вам необходимо не забывать экранировать все обратные слеши в пути к файлу или использовать прямые слеши.

<?php
$handle = fopen("c:\\data\\info.txt", "r");
?>

Внимание

При использовании SSL, Microsoft IIS нарушает протокол, закрывая соединение без отправки индикатора close_notify. PHP сообщит об этом как о "SSL: Fatal Protocol Error" в тот момент, когда вы достигнете конца данных. Чтобы обойти это, вы должны установить error_reporting на уровень, исключающий E_WARNING. PHP версий 4.3.7 и старше умеет определять, что на стороне сервера находится проблемный IIS и не выводит предупреждение. Если вы используете fsockopen() для создания ssl:// сокета, вы сами отвечаете за определение и подавление этого предупреждения.

Замечание: Когда опция safe mode включена, PHP проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

См. также раздел Прил. M,
описание функций fclose(),
fgets(),
fread(),
fwrite(),
fsockopen(),
file(),
file_exists(),
is_readable(),
stream_set_timeout() и
popen().

Пред. | Начало | След.
fnmatch | Уровень выше | fpassthru


fpassthru

(PHP 3, PHP 4, PHP 5)

fpassthru -- Выводит все оставшиеся данные из файлового указателя

Описание

int fpassthru ( resource handle )

Читает указанный файловый указатель с текущей позиции до EOF (конца файла) и записывает результат в буфер вывода.

Если происходит ошибка, fpassthru() возвращает FALSE. В ином случае, fpassthru() возвращает количество символов, прочтнных из handle и переданных на вывод.

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen().

Вам может понадобиться вызвать rewind() чтобы сбросить файловый указатель на начало файла, если вы уже записывали данные в файл.

Если вы хотите просто сбросить содержимое файла в буфер вывода, предварительно не модифицируя его и не начиная с определённого смещения, вы можете пожелать использовать readfile(), которая избавит вас от лишнего вызова fopen().

Замечание: Во время использования fpassthru() на бинарном файле в сисиемах Windows, вы должны убедиться в том, что открыли файл в бинарном режиме при помощи добавления b к режиму открытия файла, использованному в fopen().

Рекомендуется использовать флаг b при работе с бинарными файлам даже если ваша система этого не требует, чтобы обеспечить более высокую портируемость скриптов.

Пример 1. Использование fpassthru() с бинарными файлами

<?php

// открываем файл в бинарном режиме
$name = ".\public\dev\img\ok.png";
$fp = fopen($name, 'rb');

// отправляем нужные заголовки
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));

// скидываем картинку и останавливаем выполнение скрипта
fpassthru($fp);
exit;

?>

См. также описание функций readfile(),
fopen(), popen() и
fsockopen()

Пред. | Начало | След.
fopen | Уровень выше | fputcsv


fputcsv

(PHP 5 >= 5.1.0RC1)

fputcsv -- Форматирует строку в виде CSV и записывает её в файловый указатель

Описание

int fputcsv ( resource handle [, array fields [, string delimiter [, string enclosure]]] )

fputcsv() форматирует строку (переданную в виде массива fields) в виде CSV и записывает её в указанный файл handle. Возвращает длинну записанной строки или FALSE в случае неудачи.

Дополнительный параметр delimiter устанавливает разделитель полей (только один символ). По умолчанию это запятая: ,.

Дополнительный параметр enclosure устанавливает ограничитель полей (только один символ). По умолчанию это двойная кавычка: ".

Пример 1. Пример использования функции fputcsv()

<?php

$list = array (
    'aaa,bbb,ccc,dddd',
    '123,456,789',
    '"aaa","bbb"'
);

$fp = fopen('file.csv', 'w');

foreach ($list as $line) {
    fputcsv($fp, split(',', $line));
}

fclose($fp);
?>

Замечание: Если у вас возникают проблемы с распознаванием PHP окончания строк при чтении файлов на Macintosh-совместимом компьютере или при чтении файлов, созданных на Macintosh-совместимом компьютере, необходимо включить опцию auto_detect_line_endings.

См. также описание функции fgetcsv().

Пред. | Начало | След.
fpassthru | Уровень выше | fputs


fputs

(PHP 3, PHP 4, PHP 5)

fputs -- Псевдоним функции fwrite()

Описание

Эта функция является псевдонимом для фукнции fwrite().

Пред. | Начало | След.
fputcsv | Уровень выше | fread


fread

(PHP 3, PHP 4, PHP 5)

fread -- Бинарно-безопасное чтение файла

Описание

string fread ( resource handle, int length )

fread() читает до length байтов из файлового указателя handle. Чтение останавливается при достижении length байтов, EOF (конца файла) или (для сетевых потоков) когда пакет становится доступным, что бы не произошло первым.

<?php
// получает содержимое файла в строку
$filename = "/usr/local/something.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>

Внимание

На системах, которые различают бинарные и текстовые файлы (к примеру Windows), файл должен быть открыт с использованием буквы 'b' в параметре mode функции fopen().

<?php
$filename = "c:\\files\\somepic.gif";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>

Внимание

При чтении из сетевых потоков или конвееров, таких как те, что возвращаются при чтении удаленных файлов или из popen() и fsockopen(), чтение остановится после того, как пакет станет доступным. Это означает, что вы должны собирать данные вместе по кусочкам, как показано на примере ниже.

<?php
$handle = fopen("http://www.example.com/", "rb");
$contents = '';
while (!feof($handle)) {
  $contents .= fread($handle, 8192);
}
fclose($handle);
?>

Замечание: Если вы просто хотите получить содержимое файла в виде строки, используйте file_get_contents() в качестве более предпочтительного метода, чем описанный выше.

См. также описания функций fwrite(), fopen(),
fsockopen(), popen(),
fgets(), fgetss(),
fscanf(), file() и
fpassthru().

Пред. | Начало | След.
fputs | Уровень выше | fscanf


fscanf

(PHP 4 >= 4.0.1, PHP 5)

fscanf -- Обрабатывает данные из файла в соответствии с форматом

Описание

mixed fscanf ( resource handle, string format [, mixed &...] )

Функция fscanf() похожа на sscanf(), но берёт данные для обработки из файла, ассоциируемого с handle, и интерпретирует их согласно формату format, который описан в документации функции sprintf(). Если в функцию переданы только два аргумента, обработанные значения будут возвращены в виде массива. В ином случае, если были переданы необязательные аргументы, функция вернёт количество присвоенных значений. Необязательные аргументы должны быть переданы по ссылке.

Любое пустое пространство в строке формата эквивалентно любому пустому пространству во входящем потоке. Это означает, что даже табуляция \t в строке формата может быть сопоставлена одному символу пробела во входящем потоке данных.

Пример 1. Пример использования функции fscanf()

<?php
$handle = fopen("users.txt", "r");
while ($userinfo = fscanf($handle, "%s\t%s\t%s\n")) {
    list ($name, $profession, $countrycode) = $userinfo;
    //... совершаем какие-либо действия над значениями
}
fclose($handle);
?>

Пример 2. Содержимое файла users.txt

javier  argonaut        pe
hiroshi sculptor        jp
robert  slacker us
luigi   florist it

Замечание: В версиях PHP ниже 4.3.0, максимальное количество символов, которые считывались из файла, составляло 512 (или до первого символа \n - смотря что встретится первым). Начиная с версии PHP 4.3.0, длинна строк не ограничена.

См. также описание функций fread(), fgets(),
fgetss(), sscanf(),
printf() и sprintf().

Пред. | Начало | След.
fread | Уровень выше | fseek


fseek

(PHP 3, PHP 4, PHP 5)

fseek -- Устанавливает смещение в файловом указателе

Описание

int fseek ( resource handle, int offset [, int whence] )

Устанавливает смещение в файле, на который ссылается handle. Новое смещение, измеряемое в байтах от начала файла, получается путём прибавления параметра offset к позиции, указанной в параметре whence, значения которого определяются следующим образом:

SEEK_SET - Устанавливает смещение в offset байт.
SEEK_CUR - Устанавливает смещение в текущее плюс offset.
SEEK_END - Устанавливает смещение в размер файла плюс offset. (Чтобы перейти к смещению перед концом файла, вы должны передать отрицательное значение в параметр offset.)

Если whence не указан, по умолчанию он устанавливается в SEEK_SET.

В случае успеха возвращает 0; в противном сучае возвращает -1. Обратите внимание, что переход к смещению за концом файла не считается ошибкой.

Пример 1. Пример использования функции fseek()

<?php

$fp = fopen('somefile.txt');

// читаем немного данных
$data = fgets($fp, 4096);

// перемещаемся назад к началу файла
// то же самое, что и rewind($fp);
fseek($fp, 0);

?>

Не может использоваться на файловых указателях, возвращённых функцией fopen(), если они используют форматы "http://" или "ftp://". fseek() также возвращает неопределённый результат для потоков "дописать в конец" (открытых с флагом "a").

Замечание: Параметр whence был добавлен в версии PHP 4.0.0.

См. также описание функций ftell() и rewind().

Пред. | Начало | След.
fscanf | Уровень выше | fstat


fstat

(PHP 4, PHP 5)

fstat -- Получает информацию о файле используя открытый файловый указатель

Описание

array fstat ( resource handle )

Собирает статистическую информацию о открытом файле по файловому указателю handle. Эта функция похожа на stat(), за исключением того, что она работает с открытым файловым указателем, а не именем файла.

Возвращает массив со статистической информацией на файл; формат массива подробно описан на странице описания функции stat().

Пример 1. Пример использования функции fstat()

<?php

// открываем файл
$fp = fopen("/etc/passwd", "r");

// собираем статистику
$fstat = fstat($fp);

// закрываем файл
fclose($fp);

// отображаем только ассоциативную часть
print_r(array_slice($fstat, 13));

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [dev] => 771
    [ino] => 488704
    [mode] => 33188
    [nlink] => 1
    [uid] => 0
    [gid] => 0
    [rdev] => 0
    [size] => 1114
    [atime] => 1061067181
    [mtime] => 1056136526
    [ctime] => 1056136526
    [blksize] => 4096
    [blocks] => 8
)

Замечание: Эта функция не применима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Пред. | Начало | След.
fseek | Уровень выше | ftell


ftell

(PHP 3, PHP 4, PHP 5)

ftell -- Сообщает текущее смещение чтения/записи файла

Описание

int ftell ( resource handle )

Возвращает смещение файлового указателя, ассоциируемого с handle.

При возникновении ошибки, возвращает FALSE.

Файловый указатель должен быть действующим указателем
на поток, открытый функциями fopen() или
popen().
ftell() возвращает неопределённые результаты для
потоков "дописать в конец" (открытых с флагом "a" flag).

Пример 1. Пример использования функции ftell()

<?php

// открываем файл и читаем немного данных
$fp = fopen("/etc/passwd", "r");
$data = fgets($fp, 12);

// где же мы ?
echo ftell($fp); // 11

fclose($fp);

?>

См. также описание функций fopen(), popen(), fseek() и rewind().

Пред. | Начало | След.
fstat | Уровень выше | ftruncate


ftruncate

(PHP 4, PHP 5)

ftruncate -- Урезает файл до указанной длинны

Описание

bool ftruncate ( resource handle, int size )

Принимает файловый указатель handle и урезает соответствующий файл до размера size. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: В версиях PHP ниже 4.3.3, ftruncate() возвращает значение integer 1 в случае успеха, вместо boolean TRUE.

См. также описание функций fopen() и fseek().

Пред. | Начало | След.
ftell | Уровень выше | fwrite


fwrite

(PHP 3, PHP 4, PHP 5)

fwrite -- Бинарно-безопасная запись в файл

Описание

int fwrite ( resource handle, string string [, int length] )

fwrite() записывает содержимое string в файловый поток handle. Если передан аргумент length, запись остановится после того, как length байтов будут записаны или будет достигнут конец строки string, смотря что произойдёт первым.

fwrite() возвращает количество записанных байтов или FALSE в случае ошибки.

Обратите внимание, что если аргумент length указан, то конфигурационная опция magic_quotes_runtime будет проигнорирована и строка string не будет очищена от слешей.

Замечание: В системах, различающих двоичные и текстовые файлы (к примеру, Windows), файл должен быть открыт используя флаг 'b' в конце аргумента mode функции fopen().

Пример 1. Простой пример использования fwrite

<?php
$filename = 'test.txt';
$somecontent = "Добавить это к файлу\n";

// Вначале давайте убедимся, что файл существует и доступен для записи.
if (is_writable($filename)) {

    // В нашем примере мы открываем $filename в режиме "дописать в конец".
    // Таким образом, смещение установлено в конец файла и
    // наш $somecontent допишется в конец при использовании fwrite().
    if (!$handle = fopen($filename, 'a')) {
         echo "Не могу открыть файл ($filename)";
         exit;
    }

    // Записываем $somecontent в наш открытый файл.
    if (fwrite($handle, $somecontent) === FALSE) {
        echo "Не могу произвести запись в файл ($filename)";
        exit;
    }

    echo "Ура! Записали ($somecontent) в файл ($filename)";

    fclose($handle);

} else {
    echo "Файл $filename недоступен для записи";
}
?>

См. также описание функций fread(),
fopen(),
fsockopen(),
popen() и
file_put_contents().

Пред. | Начало | След.
ftruncate | Уровень выше | glob


glob

(PHP 4 >= 4.3.0, PHP 5)

glob -- Находит файловые пути, совпадающие с шаблоном

Описание

array glob ( string pattern [, int flags] )

Функция glob() ищет все пути, совпадающие с шаблоном pattern согласно правилам, используемым в функции glob() библиотеки libc, которые похожи на правила, используемые большинством распространённых оболочек. Раскрытие тильды или подстановки параметров не совершаются.

Возвращает массив, который содержит совпадающие файлы/директории или FALSE в случае ошибки.

Допустимые флаги:

  • GLOB_MARK - Добавляет слеш к каждому возвращаемому предмету

  • GLOB_NOSORT - Возвращает файлы в таком виде, в котором они содержатся в директории (без сортировки)

  • GLOB_NOCHECK - Возвращает шаблон поиска, если с его помощью не был найден ни один файл.

  • GLOB_NOESCAPE - Обратные слеши не экранируют метасимволы

  • GLOB_BRACE - Раскрывает {a,b,c} для совпадения с 'a', 'b' или 'c'

  • GLOB_ONLYDIR - Возвращает только директории, совпадающие с шаблоном

Замечание: В версиях ниже PHP ниже 4.3.3 GLOB_ONLYDIR был не доступен в Windows и других системах, не использующих библиотеку GNU C.

Пример 1. Удобный способ, как при помощи glob() можно заменить opendir() и её друзей.

<?php
foreach (glob("*.txt") as $filename) {
    echo "$filename size " . filesize($filename) . "\n";
}
?>

Результат будет примерно таким:

funclist.txt size 44686
funcsummary.txt size 267625
quickref.txt size 137820

Замечание: Эта функция не применима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

См. также описание функций opendir(),
readdir(),
closedir() и fnmatch().

Пред. | Начало | След.
fwrite | Уровень выше | is_dir


is_dir

(PHP 3, PHP 4, PHP 5)

is_dir -- Определает, является ли файл директорией

Описание

bool is_dir ( string filename )

Возвращает TRUE, если файл существует и является директорией. Если filename - это относительное имя файла, оно будет проверено относительно текущей рабочей директории.

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Пример 1. Пример использования функции is_dir()

<?
var_dump(is_dir('a_file.txt')) . "\n";
var_dump(is_dir('bogus_dir/abc')) . "\n";

var_dump(is_dir('..')); //на одну директорию выше
?>

Результат выполнения данного примера:

bool(false)
bool(false)
bool(true)

Подсказка: Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat(), смотрите в Прил. M.

См. также описание функций chdir(), dir,
opendir(), is_file() и
is_link().

Пред. | Начало | След.
glob | Уровень выше | is_executable


is_executable

(PHP 3, PHP 4, PHP 5)

is_executable -- Определяет, является ли файл исполняемым

Описание

bool is_executable ( string filename )

Возвращает TRUE, если файл существует и является исполняемым.

is_executable() стала доступна в Windows начиная с версии PHP 5.0.0.

Пример 1. Пример использования функции is_executable()

<?php

$file = '/home/vincent/somefile.sh';

if (is_executable($file)) {
    echo $file.' является исполняемым';
} else {
    echo $file.' не является исполняемым';
}

?>

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка: Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat(), смотрите в Прил. M.

См. также описание функций is_file() и is_link().

Пред. | Начало | След.
is_dir | Уровень выше | is_file


is_file

(PHP 3, PHP 4, PHP 5)

is_file -- Определяет, является ли файл обычным файлом

Описание

bool is_file ( string filename )

Возвращает TRUE, если файл существует и является обычным файлом.

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка: Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat(), смотрите в Прил. M.

См. также описание функций is_dir() и is_link().

Пред. | Начало | След.
is_executable | Уровень выше | is_link


is_link

(PHP 3, PHP 4, PHP 5)

is_link -- Определяет, является ли файл символической ссылкой

Описание

bool is_link ( string filename )

Возвращает TRUE, если файл существует и является символической ссылкой.

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка: Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat(), смотрите в Прил. M.

См. также описание функций is_dir(), is_file() и readlink().

Пред. | Начало | След.
is_file | Уровень выше | is_readable


is_readable

(PHP 3, PHP 4, PHP 5)

is_readable -- Определяет, доступен ли файл для чтения

Описание

bool is_readable ( string filename )

Возвращает TRUE, если файл существует и доступен для чтения.

Не забывайте, что PHP может обращаться к файлам от имени пользователя, от которого запущен веб-сервер (часто 'nobody'). Ограничения безопасного режима не беруться во внимание.

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка: Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat(), смотрите в Прил. M.

См. также описание функций is_writable(),
file_exists() и
fgets().

Пред. | Начало | След.
is_link | Уровень выше | is_uploaded_file


is_uploaded_file

(PHP 3 >= 3.0.17, PHP 4 >= 4.0.3, PHP 5)

is_uploaded_file -- Определяет, был ли файл загружен при помощи HTTP POST

Описание

bool is_uploaded_file ( string filename )

Возвращает TRUE, если файл filename был загружен при помощи HTTP POST. Это полезно, чтобы убедиться в том, что злонамеренный пользователь не пытается обмануть скрипт так, чтобы он работал с файлами, с которыми работать не должен -- к примеру, /etc/passwd.

Такие проверки особенно полезны, если существует вероятность того, что операции над файлом могут показать его содержимое пользователю или даже другим пользователям той же системы.

Для правильной работы, функции is_uploaded_file() нужен аргумент вида $_FILES['userfile']['tmp_name'], - имя закачиваемого файла на клиентской машине $_FILES['userfile']['name'] не подходит.

Пример 1. Пример использования функции is_uploaded_file()

<?php

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
   echo "File ". $_FILES['userfile']['name'] ." uploaded successfully.\n";
   echo "Displaying contents\n";
   readfile($_FILES['userfile']['tmp_name']);
} else {
   echo "Possible file upload attack: ";
   echo "filename '". $_FILES['userfile']['tmp_name'] . "'.";
}

?>

Функция is_uploaded_file() доступна только начиная с версии PHP 3.0.16 и PHP 4.0.2 для третьей и четвёртой линеек соответственно. Если вам необходимо использовать более ранние версии, вы можете использовать такую функцию, чтобы обезопасить себя:

Замечание: Следующий пример не работает в версиях PHP выше 4.0.2. Он полагается на внутреннюю функциональность PHP, которая изменилась после этой версии.

Пример 2. Пример использования функции is_uploaded_file()

<?php
/* Самодельная проверка на то, является ли файл загруженным. */
function is_uploaded_file($filename)
{
    if (!$tmp_file = get_cfg_var('upload_tmp_dir')) {
        $tmp_file = dirname(tempnam('', ''));
    }
    $tmp_file .= '/' . basename($filename);
    /* У пользователя может быть завершающий слеш в php.ini... */
    return (ereg_replace('/+', '/', $tmp_file) == $filename);
}

/* Вот пример использования, так как функция move_uploaded_file()
 * также отсутствует в ранних версиях: */
if (is_uploaded_file($HTTP_POST_FILES['userfile'])) {
    copy($HTTP_POST_FILES['userfile'], "/place/to/put/uploaded/file");
} else {
    echo "Возможна атака загрузки файла: имя файла - '$HTTP_POST_FILES[userfile]'.";
}
?>

См. также описание функции move_uploaded_file() и раздел Загрузка файлов на сервер для получения простых примеров использования.

Пред. | Начало | След.
is_readable | Уровень выше | is_writable


is_writable

(PHP 4, PHP 5)

is_writable -- Определяет, доступен ли файл для записи

Описание

bool is_writable ( string filename )

Возвращает TRUE, если файл filename существует и доступен для записи. Аргумент filename может быть именем директории, что позволяет вам проверять директории на доступность для записи.

Не забывайте, что PHP может обращаться к файлу от имени того пользователя, от которого запущен веб-сервер (обычно 'nobody'). Ограничения безопасного режима не принимаются во внимание.

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка: Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat(), смотрите в Прил. M.

См. также описание функций is_readable(),
file_exists() и
fwrite().

Пред. | Начало | След.
is_uploaded_file | Уровень выше | is_writeable


is_writeable

(PHP 3, PHP 4, PHP 5)

is_writeable -- Псевдоним функции is_writable()

Описание

Эта функция является псевдонимом для фукнции is_writable().

Пред. | Начало | След.
is_writable | Уровень выше | link


link

(PHP 3, PHP 4, PHP 5)

link -- Создаёт жёсткую ссылку

Описание

bool link ( string target, string link )

link() создаёт жесткую ссылку. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: Эта функция не применима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Замечание: Для Windows-платформ эта функция не реализована.

См. также описание функции symlink() для создания мягких ссылок, а также readlink() и linkinfo().

Пред. | Начало | След.
is_writeable | Уровень выше | linkinfo


linkinfo

(PHP 3, PHP 4, PHP 5)

linkinfo -- Получает информацию о ссылке

Описание

int linkinfo ( string path )

linkinfo() возвращает поле st_dev структуры stat из Unix C, которую возвращает системный вызов lstat. Эта функция используется для определения, существует ли ссылка (на которую указывает path) на самом деле (используя тот же метод, что и макро S_ISLNK, определённый в stat.h). Возвращает 0 или FALSE в случае ошибки.

Пример 1. Пример использования функции linkinfo()

<?php

echo linkinfo('/vmlinuz'); // 835

?>

Замечание: Для Windows-платформ эта функция не реализована.

См. также описание функций symlink(), link() и readlink().

Пред. | Начало | След.
link | Уровень выше | lstat


lstat

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

lstat -- Получает информацию о файле или символической ссылке

Описание

array lstat ( string filename )

Собирает статистику на файл или символическую ссылку с именем filename. Эта функция идентична функции stat(), за исключением того, что если filename является символической ссылкой, возвращается статус символической ссылки, а не того файла, на который она указывает.

Обратитесь к странице руководства функции stat() для получения информации о структуре массива, который возвращает lstat().

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка: Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat(), смотрите в Прил. M.

См. также описание функции stat().

Пред. | Начало | След.
linkinfo | Уровень выше | mkdir


mkdir

(PHP 3, PHP 4, PHP 5)

mkdir -- Создаёт директорию

Описание

bool mkdir ( string pathname [, int mode [, bool recursive [, resource context]]] )

Пытается создать директорию, заданную в pathname.

Обратите внимание, что аргумент mode необходимо задавать в виде восьмиричного числа (первой цифрой должен быть ноль). На аргумент mode также влияет текущее значение umask, которое можно изменить при помощи umask().

Замечание: Аргумент mode игнорируется в Windows и стал необязательным начиная с версии PHP 4.2.0.

По умолчанию mode равен 0777, что является самыми широкими правами доступа. Для получения информации о режимах, обратитесь к странице chmod().

Пример 1. Пример использования функции mkdir()

<?php
mkdir("/path/to/my/dir", 0700);
?>

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: Начиная с версии PHP 5.0.0 mkdir() также может использоваться с некоторыми URL-обвёртками. Обратитесь к Прил. M для получения списка обвёрток, которые поддерживает mkdir().

Замечание: Аргументы recursive и context доступны начиная с версии PHP 5.0.0.

Замечание: Когда опция safe mode включена, PHP проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

См. также описание функции rmdir().

Пред. | Начало | След.
lstat | Уровень выше | move_uploaded_file


move_uploaded_file

(PHP 4 >= 4.0.3, PHP 5)

move_uploaded_file -- Перемещает загруженный файл в новое место

Описание

bool move_uploaded_file ( string filename, string destination )

Эта функция проверяет, является ли файл filename загруженным на сервер (переданным по протоколу HTTP POST). Если файл действительно загружен на сервер, он будет перемещён в место, указанное в аргументе destination.

Если filename не является загруженным файлов, никаких действий не предпринимается и move_uploaded_file() возвращает FALSE.

Если filename является загруженным файлом, но не может быть перемещён по каким-либо причинам, никакие действия не предпринимаются и move_uploaded_file() возвращает FALSE. Кроме того, отображается предупреждение.

Такая проверка особенно важна в том случае, если существует шанс того, что какие-либо действия, производимые над загруженным файлом, могут открыть его содержимое пользователю или даже другим пользователям системы.

Замечание: На move_uploaded_file() не распространяются нормальные UID-ограничения режима безопасный режим. Это не является нарушением безопасности, потому что move_uploaded_file() оперирует лишь теми файлами, которые загружены на сервер через PHP. Функция move_uploaded_file() принимает во внимание как безопасный режим, так и open_basedir. Тем не менее, ограничения накладываются лишь на параметр destination, чтобы разрешить перемещенеи загруженных файлов, так как параметр filename может конфликтовать с этими ограничениями. move_uploaded_file() гарантирует безопасность этой операции, работая лишь с теми файлами, которые были загружены через PHP.

Внимание

Если файл destination уже существует, он будет перезаписан.

См. также описание функции is_uploaded_file() и раздел Загрузка файлов на сервер для примеров использования этих функций.

Пред. | Начало | След.
mkdir | Уровень выше | parse_ini_file


parse_ini_file

(PHP 4, PHP 5)

parse_ini_file -- Обрабатывает конфигурационный файл

Описание

array parse_ini_file ( string filename [, bool process_sections] )

parse_ini_file() загружает ini-файл, указанный в аргументе filename, и возвращает его настройки в виде ассоциативного массива. Установив последний аргумент process_sections в TRUE, вы получаете многомерный массив, который включает как название отдельных настроек, так и секции. По умолчанию process_sections равен FALSE

Замечание: Эта функция не имеет никакого отношения к файлу php.ini. К моменту выполнения вашего скрипта, он уже обработан. Эта функция может быть использована для загрузки настроек вашего собственного приложения.

Замечание: Если значение в ini-файле содержит прочие символы, кроме букв и цифр, оно должно заключаться в двойные кавычки (").

Замечание: Начиная с версии PHP 4.2.1, на поведение этой функции влияет безопасный режим и open_basedir.

Замечание: Начиная с версии PHP 5.0, эта функция также обрабатывает переводы строк в значениях.

Замечание: Существует зарезервированные слова, которые вы не можете использовать в качестве ключей в ini-файлах. Такими словами являются следующие: null, yes, no, true и false.

Структура ini-файла похожа на структуру php.ini.

Константы также могут быть обработаны в ini-файле, так что если вы объявите константу в виде значения для ini-файла до вызова parse_ini_file(), она (константа) будет правильно обработана. Таким образом обрабатываются только значения. Например:

Пример 1. Содержимое sample.ini

; Это пример файла настроек
; Комментарии начинаются с ';', как в php.ini

[first_section]
one = 1
five = 5
animal = BIRD

[second_section]
path = /usr/local/bin
URL = "http://www.example.com/~username"

Пример 2. Пример использования функции parse_ini_file()

<?php

define('BIRD', 'Dodo bird');

// Обрабатываем без секций
$ini_array = parse_ini_file("sample.ini");
print_r($ini_array);

// Обрабатываем с секциями
$ini_array = parse_ini_file("sample.ini", true);
print_r($ini_array);

?>

Результат:

Array
(
    [one] => 1
    [five] => 5
    [animal] => Dodo bird
    [path] => /usr/local/bin
    [URL] => http://www.example.com/~username
)
Array
(
    [first_section] => Array
        (
            [one] => 1
            [five] => 5
            [animal] = Dodo bird
        )

    [second_section] => Array
        (
            [path] => /usr/local/bin
            [URL] => http://www.example.com/~username
        )

)

Ключи и имена секций, состоящие из цифр, будут обработаны как целые числа в PHP, поэтому числа, начинающиеся с 0 будут считаться восьмиричными, а начинающиеся с 0x - шестнадцатиричными.

Пред. | Начало | След.
move_uploaded_file | Уровень выше | pathinfo


pathinfo

(PHP 4 >= 4.0.3, PHP 5)

pathinfo -- Возвращает информацию о пути к файлу

Описание

array pathinfo ( string path [, int options] )

pathinfo() возвращает ассоциативный массив, который содержит информацию о пути path. Возвращаемый массив состоит из следующих элементов: dirname, basename и extension.

Вы можете указать, какие элементы будут возвращены при помощи необязательного параметра options. Он состоит из PATHINFO_DIRNAME, PATHINFO_BASENAME и PATHINFO_EXTENSION. По умолчанию возвращаются все элементы.

Пример 1. Пример использования функции pathinfo()

<?php
$path_parts = pathinfo('/www/htdocs/index.html');

echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
?>

Результат:

/www/htdocs
index.html
html

Замечание: Для дополнительной информации о получении текущей информации о пути, обратитесь к секции Предопределенные зарезервированные переменные.

См. также описание функций dirname(),
basename(),
parse_url()
и realpath().

Пред. | Начало | След.
parse_ini_file | Уровень выше | pclose


pclose

(PHP 3, PHP 4, PHP 5)

pclose -- Закрывает файловый указатель процесса

Описание

int pclose ( resource handle )

Закрывает файловый указатель на канал, открытый при помощи popen().

Файловый указатель должен быть действующим и должен быть возвращён успешным вызовом функции popen().

Возвращает статус выхода завершающегося процесса.

См. также описание функции popen().

Пред. | Начало | След.
pathinfo | Уровень выше | popen


popen

(PHP 3, PHP 4, PHP 5)

popen -- Открывает файловый указатель процесса

Описание

resource popen ( string command, string mode )

Открывает поток к процессу, выполняемую при помощи форкинга (forking) команды, заданной в command.

Возвращает файловый указатель, идентичный возвращаемому функцией fopen(), за исключением того, что он односторонний (может быть использован только для чтения или записи) и должен быть закрыт при помощи pclose(). Этот указатель может быть использован с fgets(), fgetss() и fwrite().

В случае возникновения ошибки, возвращает FALSE.

Замечание: Если вы ищите двустороннюю связь, используйте proc_open().

Пример 1. Пример использования функции popen()

<?php
$handle = popen("/bin/ls", "r");
?>

Если команда для выполнения не может быть найдена, будет возвращён действующий ресурс. Это может выглядить странно, но имеет смысл; это даёт вам возможность получить доступ к любому сообщению об ошибке, которое вернёт оболочка:

<?php
error_reporting(E_ALL);

/* Добавляем перенаправление чтобы прочитать stderr. */
$handle = popen('/path/to/spooge 2>&1', 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
?>

Замечание: В случае работы в безопасном режиме, вы можете запускать что-либо только в пределах safe_mode_exec_dir. В настоящее время, использование .. в пути запрещено

Внимание

В случае работы в безопасном режиме, все слова, следующие за начальной командой, рассматриваются как единый аргумент. То есть echo y | echo x будет работать как echo "y | echo x".

См. также описание функций pclose(), fopen() и proc_open().

Пред. | Начало | След.
pclose | Уровень выше | readfile


readfile

(PHP 3, PHP 4, PHP 5)

readfile -- Выводит файл

Описание

int readfile ( string filename [, bool use_include_path [, resource context]] )

Читает файл и записывает его в буфер вывода.

Возвращает количество прочитанных из файла байт. В случае возникновения ошибки вернёт FALSE, если только функция не была вызвана как @readfile(), и выведет сообщение об ошибке.

Подсказка: Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция "fopen wrappers". Смотрите более подробную информацию об определении имени файла в описании функции fopen(), а также список поддерживаемых протоколов URL в Прил. M.

Вы можете установить в TRUE необязательный второй аргумент, если вы также хотите попытаться найти файл в include_path.

См. также описание функций fpassthru(),
file(), fopen(),
include(), require(),
virtual(), file_get_contents()
и Прил. M.

Пред. | Начало | След.
popen | Уровень выше | readlink


readlink

(PHP 3, PHP 4, PHP 5)

readlink -- Возвращает файл, на который указывает символическая ссылка

Описание

string readlink ( string path )

readlink() делает то же самое, что и функция C readlink - возвращает содержимое пути символической ссылки или FALSE в случае ошибки.

Пример 1. Пример использования функции readlink()

<?php

// output e.g. /boot/vmlinux-2.4.20-xfs
echo readlink('/vmlinuz');

?>

Замечание: Для Windows-платформ эта функция не реализована.

См. также описание функций is_link(),
symlink() и
linkinfo().

Пред. | Начало | След.
readfile | Уровень выше | realpath


realpath

(PHP 4, PHP 5)

realpath -- Возвращает канонизированный абсолютный путь к файлу

Описание

string realpath ( string path )

realpath() раскрывает все символические ссылки, переходы типа '/./', '/../' и лишние символы '/' в пути path, возвращая канонизированный абсолютный путь к файлу. В этом пути не будет символических ссылок и компонентов типа '/./' или '/../'.

realpath() возвращает FALSE при неудаче, например если файл не существует.

Пример 1. Пример использования функции realpath()

<?php
$real_path = realpath("../../index.php");
?>

См. также описание функций basename(),
dirname() и
pathinfo().

Пред. | Начало | След.
readlink | Уровень выше | rename


rename

(PHP 3, PHP 4, PHP 5)

rename -- Переименовывает файл или директорию

Описание

bool rename ( string oldname, string newname [, resource context] )

Пытается переименовать oldname в newname.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. Пример использования функции rename()

<?php
rename("/tmp/tmp_file.txt", "/home/user/login/docs/my_file.txt");
?>

Замечание: В версиях PHP ниже 4.3.3, функция rename() не могла переименовать файлы, находящиеся на другом разделе в ОС, основанных на *nix.

Замечание: Начиная с версии PHP 5.0.0, функция rename() также может быть использована с некоторыми обвёртками URL. Обратитесь к Прил. M для получения списка обвёрток, которые поддерживают rename().

Замечание: Обвёртка, используемая в oldname ОБЯЗАНА совпадать с обвёрткой, используемой в newname.

Замечание: Аттрибут context был добавлен начиная с версии PHP 5.0.0.

См. также описание функций copy(),
unlink() и
move_uploaded_file().

Пред. | Начало | След.
realpath | Уровень выше | rewind


rewind

(PHP 3, PHP 4, PHP 5)

rewind -- Сбрасывает курсор у файлового указателя

Описание

bool rewind ( resource handle )

Сбрасывает курсор файлового указателя handle на начало файлового потока.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Файловый указатель должен быть доступным и ссылаться на файл, успешно открытый при помощи fopen().

Замечание: Если вы открыли файл в режиме "дописать в конец" ("a"), любые данные, которые вы записываете, будут дописаны в конец файла, независимо от положения курсора.

См. также описание функций fseek() и ftell().

Пред. | Начало | След.
rename | Уровень выше | rmdir


rmdir

(PHP 3, PHP 4, PHP 5)

rmdir -- Удаляет директорию

Описание

bool rmdir ( string dirname [, resource context] )

Пытается удалить директорию с именем dirname. Директория должна быть пустой и должны иметься необходимые для этого права. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: Начиная с версии PHP 5.0.0, функция rmdir() также может быть использована с некоторыми обвёртками URL. Обратитесь к Прил. M для получения списка обвёрток, которые поддерживают rmdir().

Замечание: Аргумент context был добавлен начиная с версии PHP 5.0.0.

Замечание: Когда опция safe mode включена, PHP проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

См. также описание функций mkdir() и unlink().

Пред. | Начало | След.
rewind | Уровень выше | set_file_buffer


set_file_buffer

(PHP 3 >= 3.0.8, PHP 4 >= 4.0.1, PHP 5)

set_file_buffer -- Псевдоним функции stream_set_write_buffer()

Описание

Эта функция является псевдонимом для фукнции stream_set_write_buffer().

Пред. | Начало | След.
rmdir | Уровень выше | stat


stat

(PHP 3, PHP 4, PHP 5)

stat -- Получает информацию о файле

Описание

array stat ( string filename )

Собирает статистическую информацию о файле filename. Если filename является символической ссылкой, информация собирается о самом файле, а не ссылке. Функция lstat() индентична функции stat() за исключением того, что в данном случае она вернёт информацию о самой символической ссылке.

В случае ошибки, stat() вернёт FALSE. Также она выдаст предупреждение.

Возвращает массив статистической информации о файле. Массив включает следующие элементы. Индексация начинается с нуля. Также доступ к любому аттрибуту можно получить по ассоциативному ключу, который указан напротив каждого параметра; эта возможность появилась начиная с версии PHP 4.0.6:

Таблица 1. Формат результата работы функций stat() и fstat()

Числовой | Ассоциативный (начиная с PHP 4.0.6) | Описание
0 | dev | номер устройства
1 | ino | номер inode
2 | mode | режим защиты inode
3 | nlink | количество ссылок
4 | uid | userid владельца
5 | gid | groupid владельца
6 | rdev | тип устройства, если устройство inode *
7 | size | размер в байтах
8 | atime | время последнего доступа (Unix timestamp)
9 | mtime | время последней модификации (Unix timestamp)
10 | ctime | время последнего изменения inode (Unix timestamp)
11 | blksize | размер блока ввода-вывода файловой системы *
12 | blocks | количество используемых блоков
* - доступен только на системах, поддерживающих тип st_blksize -- другие системы (например Windows) вернут -1.

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка: Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat(), смотрите в Прил. M.

См. также описание функций lstat(),
fstat(),
filemtime() и
filegroup().

Пред. | Начало | След.
set_file_buffer | Уровень выше | symlink


symlink

(PHP 3, PHP 4, PHP 5)

symlink -- Создаёт символическую ссылку

Описание

bool symlink ( string target, string link )

symlink() создаёт символическую ссылку с именем link на существующий файл target.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: Для Windows-платформ эта функция не реализована.

См. также описание фукции link() для создания жёсткой ссылки, а также readlink() и linkinfo().

Пред. | Начало | След.
stat | Уровень выше | tempnam


tempnam

(PHP 3, PHP 4, PHP 5)

tempnam -- Создаёт файл с уникальным именем

Описание

string tempnam ( string dir, string prefix )

Создаёт файл с уникальным именем в определённой директории. Если эта директория не существует, tempnam() попытается создать файл во временной директории системы и вернуть его имя.

В версиях PHP ниже 4.0.6, поведение функции tempnam() было платформозависимым. В Windows переменная окружения TMP была приоритетнее аргумента dir, в Linux приоритетнее была переменная окружения TMPDIR, а SVR4 всегда использовал ваш аргумент dir, если указанная директория существовала. Обратитесь к вашей документации по функции tempnam(3), если у вас возникнут сомнения.

Замечание: Если PHP не может создать файл в указанной директории dir, он возвращается к директории по умолчанию вашей системы.

Возвращает имя нового временного файла или FALSE в случае неудачи.

Пример 1. Пример использования функции tempnam()

<?php
$tmpfname = tempnam("/tmp", "FOO");

$handle = fopen($tmpfname, "w");
fwrite($handle, "записываем в во временный файх");
fclose($handle);

// здесь мы чего-нибудь делаем

unlink($tmpfname);
?>

Замечание: Повидение функции изменилось начиная с версии PHP 4.0.3. Временный файл также создаётся чтобы избежать состояния гонки, когда файл может появится в файловой системе между моментом генерации строки и моментом, когда скрипт начнёт его создавать. Обратите внимание, что вы должны удалить файл вручную, если он больше вам не нужен; этот процесс не автоматизирован.

См. также описание функий tmpfile() и unlink().

Пред. | Начало | След.
symlink | Уровень выше | tmpfile


tmpfile

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

tmpfile -- Создаёт временный файл

Описание

resource tmpfile ( void )

Создаёт временный файл с уникальным именем, открывая его в режиме чтения и записи (w+), и возвращает файловый указатель таким же образом, как это делает fopen(). Этот файл автоматически удаляется после закрытия (использования fclose()) или после завершения работы скрипта).

Для дополнительной информации, обратитесь к документации вашей системы по функции tmpfile(3), а также к заголовочному файлу stdio.h.

Пример 1. Пример использования функции tmpfile()

<?php
$temp = tmpfile();
fwrite($temp, "записываем во временный файл");
fseek($temp, 0);
echo fread($temp, 1024);
fclose($temp); // происходит удаление файла
?>

Результат выполнения данного примера:

записываем во временный файл

См. также описание функции tempnam().

Пред. | Начало | След.
tempnam | Уровень выше | touch


touch

(PHP 3, PHP 4, PHP 5)

touch -- Устанавливает время доступа и модификации файла

Description

bool touch ( string filename [, int time [, int atime]] )

Пытается установить время доступа и модификации файла с именем filename в значение time. Если аргумент time не указан, используется текущее время. Это эквивалентно тому, что делает функция utime (иногда её называют utimes). Если третий аргумент atime передан, время доступа указанного файла будет установлено в значение atime. Обратите внимание, что время доступа изменяется всегда, независимо от количества аргументов.

Если файл не существует, он будет создан. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. Пример использования функции touch()

<?php
if (touch($FileName)) {
    echo "Время модификации файла $FileName было изменено на текущее";
} else {
    echo "Простите, не удалось изменить время модификации файла $FileName";
}
?>

Пред. | Начало | След.
tmpfile | Уровень выше | umask


umask

(PHP 3, PHP 4, PHP 5)

umask -- Изменяет текущую umask

Описание

int umask ( [int mask] )

Устанавливает umask() PHP в значение mask & 0777 и возвращает старую umask. Если PHP используется как модуль сервера, umask восстанавливается после завершения каждого запроса.

Вызов umask() без аргументов вернёт текущую umask.

Пред. | Начало | След.
touch | Уровень выше | unlink


unlink

(PHP 3, PHP 4, PHP 5)

unlink -- Удаляет файл

Описание

bool unlink ( string filename [, resource context] )

Удаляет файл filename. Функция похожа на функцию unlink() Unix C. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: Начиная с версии PHP 5.0.0, функция unlink() также может быть использована с некоторыми обвёртками URL. Обратитесь к Прил. M для получения списка обвёрток, которые поддерживают unlink().

Замечание: Аргумент context был добавлен начиная с версии PHP 5.0.0.

См. также описание функции rmdir() для удаления директорий.

Пред. | Начало | След.
umask | Уровень выше | Firebird/InterBase Functions


FriBiDi Functions

Руководство по PHP
Пред. След.

XLI. FriBiDi Functions

Введение

FriBiDi is a free implementation of the Unicode Bidirectional Algorithm.

Требования

You must download and install the FriBiDi package.

Установка

Это расширение PECL не поставляется вместе с PHP. Дополнительная информация, такая как новый версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, могут быть найдены здесь: http://pecl.php.net/package/fribidi.

In order to use these functions you must compile PHP with Fribidi support by using the --with-fribidi[=DIR] configure option.

Windows users will enable php_fribidi.dll inside of php.ini in order to use these functions. Вы можете скачать DLL этого расширения PECL со страницы PHP Downloads или http://snaps.php.net/.

Настройка во время выполнения

Типы ресурсов

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

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 -- Convert a logical string to a visual one

Пред. | Начало | След.
PDO_FIREBIRD DSN | Уровень выше | fribidi_log2vis


fribidi_log2vis

(PHP 4 >= 4.0.4, PECL)

fribidi_log2vis -- Convert a logical string to a visual one

Description

string fribidi_log2vis ( string str, string direction, int charset )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
FriBiDi Functions | Уровень выше | FrontBase Functions


Функции для работы с FTP

Руководство по PHP
Пред. След.

XLIII. Функции для работы с FTP

Введение

Функции этого модуля обеспечивают доступ к серверам по протоколу FTP (File Transfer Protocol), определенному в http://www.faqs.org/rfcs/rfc959. Модуль позволяет выполнять множество довольно сложных операций. Если требуется лишь прочитать или записать файл на сервере FTP, можно воспользоваться ftp:// ссылками и функциями для работы с файловой системой, которые более просты в использовании.

Требования

Эти функции всегда доступны.

Установка

Для использования FTP функций, вы должны указать директиву --enable-ftp во время установки PHP 4 или --with-ftp при использовании PHP 3.

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Этот модуль использует один тип ресурса - идентификатор соединения с FTP сервером, возвращаемый функцией ftp_connect() или ftp_ssl_connect().

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

FTP_ASCII (integer)

FTP_TEXT (integer)

FTP_BINARY (integer)

FTP_IMAGE (integer)

FTP_TIMEOUT_SEC (integer)

Дополнительная информация доступна в описании функции ftp_set_option().

Следующие константы появились в PHP 4.3.0.

FTP_AUTOSEEK (integer)

Дополнительная информация доступна в описании функции ftp_set_option().

FTP_AUTORESUME (integer)

Автоматически определять позицию в файле, с которой начинается докачка при использовании команд GET и PUT (имеет смысл только совместно с FTP_AUTOSEEK)

FTP_FAILED (integer)

Асинхронная операция завершилась неудачно

FTP_FINISHED (integer)

Асинхронная операция окончена

FTP_MOREDATA (integer)

Асинхронная операция еще не завершена

Примеры

Пример 1. Пример использования функций FTP

<?php
// установка соединения
$conn_id = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// проверка соединения
if ((!$conn_id) || (!$login_result)) {
        echo "Не удалось установить соединение с FTP сервером!";
        echo "Попытка подключения к серверу $ftp_server под именем $ftp_user_name!";
        exit;
    } else {
        echo "Установлено соединение с FTP сервером $ftp_server под именем $ftp_user_name";
    }

// закачивание файла
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);

// проверка результата
if (!$upload) {
        echo "Не удалось закачать файл!";
    } else {
        echo "Файл $source_file закачен на $ftp_server под именем $destination_file";
    }

// закрытие соединения
ftp_close($conn_id);
?>

Содержание
ftp_alloc -- Резервирует место на диске для закачиваемого файла
ftp_cdup -- Переходит в родительскую директорию
ftp_chdir -- Изменяет текущую директорию на FTP сервере
ftp_chmod -- Устанавливает права доступа к файлу
ftp_close -- Закрывает соединение с FTP сервером
ftp_connect -- Устанавливает соединение с FTP сервером
ftp_delete -- Удаляет файл на FTP сервере
ftp_exec -- Выполняет программу на FTP сервере
ftp_fget -- Загружает файл с FTP сервера и сохраняет его в предварительно открытом файле
ftp_fput -- Загружает предварительно открытый файл на FTP сервер
ftp_get_option -- Получает текущие параметры FTP соединения
ftp_get -- Загружает файл с FTP сервера
ftp_login -- Выполняет вход на FTP сервер
ftp_mdtm -- Возвращает время последней модификации файла
ftp_mkdir -- Создаёт директорию
ftp_nb_continue -- Продолжает асинхронную операцию
ftp_nb_fget -- Скачивает файл с FTP сервера в асинхронном режиме и сохраняет его в предварительно открытом файле
ftp_nb_fput -- Загружает предварительно открытый файл на FTP сервер в асинхронном режиме
ftp_nb_get -- Скачивает файл с FTP сервера в асинхронном режиме и сохраняет его в локальный файл
ftp_nb_put -- Загружает файл на FTP сервер в асинхронном режиме
ftp_nlist -- Возвращает список файлов в заданной директории
ftp_pasv -- Включает или выключает пассивный режим
ftp_put -- Загружает файл на FTP сервер
ftp_pwd -- Возвращает имя текущей директории
ftp_quit -- Псевдоним функции ftp_close()
ftp_raw -- Отправляет произвольную команду FTP серверу
ftp_rawlist -- Возвращает список файлов в заданной директории
ftp_rename -- Переименовывает файл на FTP сервере
ftp_rmdir -- Удаляет директорию
ftp_set_option -- Устанавливает параметры соединения с FTP сервером
ftp_site -- Отправляет команду SITE серверу
ftp_size -- Возвращает размер файла
ftp_ssl_connect -- Устанавливает соединение с FTP сервером через SSL
ftp_systype -- Возвращает тип операционной системы FTP сервера

Пред. | Начало | След.
fbsql_warnings | Уровень выше | ftp_alloc


ftp_alloc

(PHP 5)

ftp_alloc -- Резервирует место на диске для закачиваемого файла

Описание

bool ftp_alloc ( resource ftp_stream, int filesize [, string &result] )

Посылает команду ALLO FTP серверу для резервирования места под отгружаемый файл.

Замечание: Многие FTP серверы не поддерживают эту команду. Такие серверы возвращают код неудачи (FALSE), что означает отсутствие поддержки этой команды, или код успешного выполнения (TRUE), означающий, что в резервировании нет необходимости и клиенту следует продолжать, будто операция была выполнена успешно. По этой причине эту функцию следует использовать с серверами, которые требуют обязательного резервирования.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

filezise

Количество байтов для резервирования.

result

Текстовое представление ответа сервера будет возвращено по ссылке в аргумент result, если он указан.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Пример использования ftp_alloc()

<?php

$file = "/home/user/myfile";

/* соединение с сервером */
$conn_id = ftp_connect('ftp.example.com');
$login_result = ftp_login($conn_id, 'anonymous', 'user@example.com');

if (ftp_alloc($conn_id, filesize($file), $result)) {
  echo "Место на сервере успешно зарезервировано.  Отправляю $file.\n";
  ftp_put($conn_id, '/incomming/myfile', $file, FTP_BINARY);
} else {
  echo "Не удалось зарезервировать место на сервере. Ответ сервера: $result\n";
}

ftp_close($conn_id);

?>

Смотрите также

ftp_put()
ftp_fput()

Пред. | Начало | След.
Функции для работы с FTP | Уровень выше | ftp_cdup


ftp_cdup

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_cdup -- Переходит в родительскую директорию

Описание

bool ftp_cdup ( resource ftp_stream )

Переходит в родительскую директорию.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Пример использования функции ftp_cdup()

<?php
// установка соединения
$conn_id = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// изменение текущей директории на html
ftp_chdir($conn_id, 'html');

echo ftp_pwd($conn_id); // /html

// возврат в родительскую директорию
if (ftp_cdup($conn_id)) {
  echo "команда cdup выполнена успешно\n";
} else {
  echo "команда cdup завершилась неудачно\n";
}

echo ftp_pwd($conn_id); // /

ftp_close($conn_id);
?>

Смотрите также

ftp_chdir()
ftp_pwd()

Пред. | Начало | След.
ftp_alloc | Уровень выше | ftp_chdir


ftp_chdir

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_chdir -- Изменяет текущую директорию на FTP сервере

Описание

bool ftp_chdir ( resource ftp_stream, string directory )

Делает текущей директорию, заданную аргументом

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

directory

Целевая директория.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Если изменение директории завершилось неудачей, PHP вызовет предупреждение.

Примеры

Пример 1. Пример использования ftp_chdir()

<?php

// установка соединения
$conn_id = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// проверка соединения
if ((!$conn_id) || (!$login_result)) {
    die("Не удалось подключиться к FTP серверу!");
}

echo "Текущая директория: " . ftp_pwd($conn_id) . "\n";

// попытка сделать somedir текущей
if (ftp_chdir($conn_id, "somedir")) {
    echo "Новая текущая директория: " . ftp_pwd($conn_id) . "\n";
} else {
    echo "Не удалось сменить директорию\n";
}

// закрытие соединения
ftp_close($conn_id);
?>

Смотрите также

ftp_cdup()
ftp_pwd()

Пред. | Начало | След.
ftp_cdup | Уровень выше | ftp_chmod


ftp_chmod

(PHP 5)

ftp_chmod -- Устанавливает права доступа к файлу

Описание

int ftp_chmod ( resource ftp_stream, int mode, string filename )

Устанавливает права доступа к указанному удалённому файлу в значение mode.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

mode

Новые права доступа, указанные в виде восьмиричного значения.

filename

Удалённый файл.

Возвращаемые значения

Возвращает новые права доступа к файлу в случае успеха или FALSE в случае ошибки.

Примеры

Пример 1. Пример использования ftp_chmod()

<?php
$file = 'public_html/index.php';

// установка соединения
$conn_id = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// попытка изменить права доступа к файлу $file на 644
if (ftp_chmod($conn_id, 0644, $file) !== false) {
 echo "Права доступа к файлу $file изменены на 644\n";
} else {
 echo "Не удалось изменить права доступа к файлу $file\n";
}

// закрытие соединения
ftp_close($conn_id);
?>

Смотрите также

chmod()

Пред. | Начало | След.
ftp_chdir | Уровень выше | ftp_close


ftp_close

(PHP 4 >= 4.2.0, PHP 5)

ftp_close -- Закрывает соединение с FTP сервером

Описание

bool ftp_close ( resource ftp_stream )

ftp_close() закрывает указанный идентификатор соединения с сервером и освобождает resource.

Замечание: После вызова этой функции, соединение больше не может быть использовано, и при необходимости должно быть установлено заново при помощи функции ftp_connect().

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Пример использования ftp_close()

<?php

// установка соединения
$conn_id = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// вывод текущей директории
echo ftp_pwd($conn_id); // /

// закрытие соединения
ftp_close($conn_id);
?>

Смотрите также

ftp_connect()

Пред. | Начало | След.
ftp_chmod | Уровень выше | ftp_connect


ftp_connect

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_connect -- Устанавливает соединение с FTP сервером

Описание

resource ftp_connect ( string host [, int port [, int timeout]] )

ftp_connect() устанавливает FTP соединение с указанным сервером host.

Список параметров

host

Адрес FTP сервера. Этот аргумент не должен содержать слешей в конце и префикса ftp:// в начале.

port

Этот аргумент указывает альтернативный порт для подключения. Если он опущен или установлен в ноль, то будет использован FTP порт по умолчанию - 21.

timeout

Этот аргумент указывает таймаут для всех последующих сетевых операций. Если опущен, используется значение по умолчанию, равное 90 секундам. Таймаут может быть изменён и получен в любой момент при помощи функций ftp_set_option() и ftp_get_option() соответственно.

Возвращаемые значения

Возвращает поток FTP в случае успешного выполнение или FALSE в случае ошибки.

Примеры

Пример 1. Пример использования ftp_connect()

<?php

$ftp_server = "ftp.example.com";

// установить соединение или выйти
$conn_id = ftp_connect($ftp_server) or die("Не удалось установить соединение с $ftp_server");

?>

Список изменений

Версия | Описание
4.2.0 | добавлен аргумент timeout.

Смотрите также

ftp_close()
ftp_ssl_connect()

Пред. | Начало | След.
ftp_close | Уровень выше | ftp_delete


ftp_delete

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_delete -- Удаляет файл на FTP сервере

Описание

bool ftp_delete ( resource ftp_stream, string path )

ftp_delete() удаляет файл, заданный аргументом path, с FTP сервера.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

path

Файл, который нужно удалить.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Пример использования ftp_delete()

<?php
$file = 'public_html/old.txt';

// установка соединения
$conn_id = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// попытка удалить файл
if (ftp_delete($conn_id, $file)) {
 echo "Файл $file удален\n";
} else {
 echo "Не удалось удалить $file\n";
}

// закрытие соединения
ftp_close($conn_id);
?>

Пред. | Начало | След.
ftp_connect | Уровень выше | ftp_exec


ftp_exec

(PHP 4 >= 4.0.3, PHP 5)

ftp_exec -- Выполняет программу на FTP сервере

Описание

bool ftp_exec ( resource ftp_stream, string command )

Посылает команду SITE EXEC command на FTP сервер.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

command

Команда для выполнения.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения команды (сервер отправляет код ответа: 200); в противном случае возвращает FALSE.

Примеры

Пример 1. Пример использования ftp_exec()

<?php$command = 'ls -al >files.txt';$conn_id = ftp_connect($ftp_server);$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);if (ftp_exec($conn_id, $command)) {    echo "Команда $command выполнена успешно<br />\n";} else {    echo 'Не удалось выполнить ' . $command;}?>

Смотрите также

ftp_raw()

Пред. | Начало | След.
ftp_delete | Уровень выше | ftp_fget


ftp_fget

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_fget -- Загружает файл с FTP сервера и сохраняет его в предварительно открытом файле

Описание

bool ftp_fget ( resource ftp_stream, resource handle, string remote_file, int mode [, int resumepos] )

ftp_fget() загружает файл remote_file с FTP сервера и записывает его в переданный файловый дескриптор.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

handle

Открытый файловый дескриптор, в который будут сохранены данные.

remote_file

Путь к удалённому файлу.

mode

Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.

resumepos

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Пример использования ftp_fget()

<?php

// открыть файл для записи
$remote_file = 'somefile.txt';
$handle = fopen('localfile.txt', 'w');

// установка соединения
$conn_id = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// попытка скачивания файла
if (ftp_fget($conn_id, $handle, $remote_file, FTP_ASCII, 1)) {
 echo "Произведена запись в $file\n";
} else {
 echo "Проблема записи в $file\n";
}

// закрытие соединения и локального файла
ftp_close($conn_id);
fclose($handle);
?>

Список изменений

Версия | Описание
4.3.0 | добавлен аргумент resumepos.

Смотрите также

ftp_get()
ftp_nb_get()
ftp_nb_fget()

Пред. | Начало | След.
ftp_exec | Уровень выше | ftp_fput


ftp_fput

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_fput -- Загружает предварительно открытый файл на FTP сервер

Описание

bool ftp_fput ( resource ftp_stream, string remote_file, resource handle, int mode [, int startpos] )

ftp_fget() отгружает данные из файлового дескриптора в удалённый файл на FTP сервере.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

remote_file

Путь к удалённому файлу.

handle

Открытый файловый дескриптор локального файла. Чтение прекращается при достижении конца файла.

mode

Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.

startpos

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Пример использования ftp_fput()

<?php

// открыть файл для чтения
$file = 'somefile.txt';
$fp = fopen($file, 'r');

// установка соединения
$conn_id = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// попытка закачивания файла
if (ftp_fput($conn_id, $file, $fp, FTP_ASCII)) {
    echo "Загружен файл $file\n";
} else {
    echo "Проблема закачивания $file\n";
}

// close the connection and the file handler
ftp_close($conn_id);
fclose($fp);

?>

Список изменений

Версия | Описание
4.3.0 | добавлен аргумент startpos.

Смотрите также

ftp_put()
ftp_nb_fput()
ftp_nb_put()

Пред. | Начало | След.
ftp_fget | Уровень выше | ftp_get_option


ftp_get_option

(PHP 4 >= 4.2.0, PHP 5)

ftp_get_option -- Получает текущие параметры FTP соединения

Описание

mixed ftp_get_option ( resource ftp_stream, int option )

Эта функция возвращает значение запрошенной опции option для указанного FTP соединения.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

option

На текущий момент, поддежриваются следующие опции:

Таблица 1. Поддерживаемые текущие опции FTP

FTP_TIMEOUT_SEC | Возвращает текущий таймаут, используемый в сетевых операциях.
FTP_AUTOSEEK | Возвращает TRUE, если эта опция включена, иначе FALSE.

Возвращаемые значения

Возвращает значение в случае успешного выполнения, или FALSE, если указанная опция option не поддерживается. В последнем случае так же вызывается предупреждение.

Примеры

Пример 1. Пример использования ftp_get_option()

<?php
// Получаем таймаут соединения
$timeout = ftp_get_option($conn_id, FTP_TIMEOUT_SEC);
?>

Смотрите также

ftp_set_option()

Пред. | Начало | След.
ftp_fput | Уровень выше | ftp_get


ftp_get

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_get -- Загружает файл с FTP сервера

Описание

bool ftp_get ( resource ftp_stream, string local_file, string remote_file, int mode [, int resumepos] )

ftp_get() загружает файл удалённый файл с FTP сервера и сохраняет его в локальный файл.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

local_file

Путь к локальному файлу (файл будет перезаписан, если уже существует).

remote_file

Путь к удалённому файлу.

mode

Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.

resumepos

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Пример использования ftp_get()

<?php

// объявление переменных
$local_file = 'local.zip';
$server_file = 'server.zip';

// установка соединения
$conn_id = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// попытка скачать $server_file и сохранить в $local_file
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
    echo "Произведена запись в $local_file\n";
} else {
    echo "Не удалось завершить операцию\n";
}

// закрытие соединения
ftp_close($conn_id);

?>

Список изменений

Версия | Описание
4.3.0 | добавлен аргумент resumepos.

Смотрите также

ftp_fget()
ftp_nb_get()
ftp_nb_fget()

Пред. | Начало | След.
ftp_get_option | Уровень выше | ftp_login


ftp_login

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_login -- Выполняет вход на FTP сервер

Описание

bool ftp_login ( resource ftp_stream, string username, string password )

Выполняет вход на FTP сервер.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

username

Имя пользователя (USER).

password

Пароль (PASS).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Если войти на сервер не удалось, PHP вызовет предупреждение.

Примеры

Пример 1. Пример использования ftp_login()

<?php

$ftp_server = "ftp.example.com";
$ftp_user = "foo";
$ftp_pass = "bar";

// установить соединение или выйти
$conn_id = ftp_connect($ftp_server) or die("Не удалось установить соединение с $ftp_server");

// попытка входа
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) {
    echo "Произведен вход на $ftp_server под именем $ftp_user\n";
} else {
    echo "Не удалось войти под именем $ftp_user\n";
}

// close the connection
ftp_close($conn_id);
?>

Пред. | Начало | След.
ftp_get | Уровень выше | ftp_mdtm


ftp_mdtm

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_mdtm -- Возвращает время последней модификации файла

Описание

int ftp_mdtm ( resource ftp_stream, string remote_file )

ftp_mdtm() возвращает время последней модификации удалённого файла.

Замечание: Не все серверы поддерживают эту функцию!

Замечание: ftp_mdtm() не работает с директориями.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

remote_file

Файл, время модификации которого надо получить.

Возвращаемые значения

Возвращает время последней модификации виде временной метки Unix или -1 в случае ошибки.

Примеры

Пример 1. Пример использования ftp_mdtm()

<?php

$file = 'somefile.txt';

// установка соединения
$conn_id = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

//  получение времени модификации файла
$buff = ftp_mdtm($conn_id, $file);

if ($buff != -1) {
    // дата последней модификации somefile.txt : March 26 2003 14:16:41.
    echo "дата последней модификации $file : " . date("F d Y H:i:s.", $buff);
} else {
    echo "Не удалось выполнить mdtime";
}

// закрытие соединения
ftp_close($conn_id);

?>

Пред. | Начало | След.
ftp_login | Уровень выше | ftp_mkdir


ftp_mkdir

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_mkdir -- Создаёт директорию

Описание

string ftp_mkdir ( resource ftp_stream, string directory )

Создает директорию directory на FTP сервере.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

directory

Имя создаваемой директории.

Возвращаемые значения

Возвращает имя только что созданной директории в случае успеха или FALSE в противном случае.

Примеры

Пример 1. Пример использования ftp_mkdir()

<?php

$dir = 'www';

// установка соединения
$conn_id = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// попытка создания директории $dir
if (ftp_mkdir($conn_id, $dir)) {
 echo "Создана директория $dir\n";
} else {
 echo "Не удалось создать директорию $dir\n";
}

// закрытие соединения
ftp_close($conn_id);
?>

Смотрите также

ftp_rmdir()

Пред. | Начало | След.
ftp_mdtm | Уровень выше | ftp_nb_continue


ftp_nb_continue

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_continue -- Продолжает асинхронную операцию

Описание

int ftp_nb_continue ( resource ftp_stream )

Продолжает отправку или получение файла в асинхронном режиме.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

Возвращаемые значения

Возвращает FTP_FAILED, FTP_FINISHED или FTP_MOREDATA.

Примеры

Пример 1. Пример использования ftp_nb_continue()

<?php

// Начало скачивания
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // продолжение скачивания  ...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "При скачивании файла произолшла ошибка...";
   exit(1);
}
?>

Пред. | Начало | След.
ftp_mkdir | Уровень выше | ftp_nb_fget


ftp_nb_fget

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_fget -- Скачивает файл с FTP сервера в асинхронном режиме и сохраняет его в предварительно открытом файле

Описание

int ftp_nb_fget ( resource ftp_stream, resource handle, string remote_file, int mode [, int resumepos] )

ftp_nb_fget() скачивает удалённый файл с FTP сервера.

Разница между этой функцией и ftp_fget() заключается в том, что эта функция получает файл асинхронно, так что ваша программа может совершать другие операции, пока файл скачивается.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

handle

Открытый файловый дескриптор для сохранения данных.

remote_file

Путь к удалённому файлу.

mode

Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.

resumepos

Возвращаемые значения

Возвращает FTP_FAILED, FTP_FINISHED или FTP_MOREDATA.

Примеры

Пример 1. Пример использования ftp_nb_fget()

<?php

// открыть файл для записи
$file = 'index.php';
$fp = fopen($file, 'w');

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Начало скачивания
$ret = ftp_nb_fget($conn_id, $fp, $file, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // производим какие-то дествия ...
   echo ".";

   // продолжение скачивания ...
   $ret = ftp_nb_continue($conn_id);
}
if ($ret != FTP_FINISHED) {
   echo "При скачивании файла произолшла ошибка...";
   exit(1);
}

// закрытие файла
fclose($fp);
?>

Смотрите также

ftp_nb_get()
ftp_nb_continue()
ftp_fget()
ftp_get()

Пред. | Начало | След.
ftp_nb_continue | Уровень выше | ftp_nb_fput


ftp_nb_fput

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_fput -- Загружает предварительно открытый файл на FTP сервер в асинхронном режиме

Описание

int ftp_nb_fput ( resource ftp_stream, string remote_file, resource handle, int mode [, int startpos] )

ftp_nb_fput() закачивает данные из дескриптора файла в удалённый файл на FTP сервере.

Разница между это функцией и ftp_fput() заключается в том, что эта функция получает файл асинхронно, так что ваша программа может совершать другие операции, пока файл закачивается.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

remote_file

Путь к удалённому файлу.

handle

Открытый файловый дескриптор локального файла. Чтение прекращается при достижении конца файла.

mode

Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.

startpos

Возвращаемые значения

Возвращает FTP_FAILED, FTP_FINISHED или FTP_MOREDATA.

Примеры

Пример 1. Пример использования ftp_nb_fput()

<?php

$file = 'index.php';

$fp = fopen($file, 'r');

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Начало закачивания
$ret = ftp_nb_fput($conn_id, $file, $fp, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // производим какие-то дествия ...
   echo ".";

   // продолжение закачивания ...
   $ret = ftp_nb_continue($conn_id);
}
if ($ret != FTP_FINISHED) {
   echo "При закачивании файла произолшла ошибка...";
   exit(1);
}

fclose($fp);
?>

Смотрите также

ftp_nb_put()
ftp_nb_continue()
ftp_put()
ftp_fput()

Пред. | Начало | След.
ftp_nb_fget | Уровень выше | ftp_nb_get


ftp_nb_get

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_get -- Скачивает файл с FTP сервера в асинхронном режиме и сохраняет его в локальный файл

Описание

int ftp_nb_get ( resource ftp_stream, string local_file, string remote_file, int mode [, int resumepos] )

ftp_nb_get() скачивает удалённый файл с FTP сервера и сохраняет его в локальный файл.

Разница между это функцией и ftp_get() заключается в том, что эта функция получает файл асинхронно, так что ваша программа может совершать другие операции, пока файл cкачивается.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

local_file

Путь к локальному файлу (файл будет перезаписан, если уже существует).

remote_file

Путь к удалённому файлу.

mode

Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.

resumepos

Возвращаемые значения

Возвращает FTP_FAILED, FTP_FINISHED или FTP_MOREDATA.

Примеры

Пример 1. Пример использования ftp_nb_get()

<?php

// Начало скачивания
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // производим какие-то дествия ...
   echo ".";

   // продолжение скачивания ...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "При скачивании файла произолшла ошибка...";
   exit(1);
}
?>

Пример 2. Возобновление скачивания файла с помощью ftp_nb_get()

<?php

// Начало скачивания
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY,
                      filesize("test"));
// ИЛИ: $ret = ftp_nb_get($my_connection, "test", "README",
//                           FTP_BINARY, FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {

   // производим какие-то дествия ...
   echo ".";

   // продолжение скачивания ...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "При скачивании файла произолшла ошибка...";
   exit(1);
}
?>

Пример 3. Скачивание файла начиная с позиции 100 в новый файл с помощью ftp_nb_get()

<?php

// Запрет FTP_AUTOSEEK
ftp_set_option($my_connection, FTP_AUTOSEEK, false);

// Начало скачивания
$ret = ftp_nb_get($my_connection, "newfile", "README", FTP_BINARY, 100);
while ($ret == FTP_MOREDATA) {

   /* ... */

   // продолжение скачивания ...
   $ret = ftp_nb_continue($my_connection);
}
?>

В последнем примере, "newfile" будет на 100 байт меньше, чем "README" на FTP сервере, потому что скачивание начинается со смещения 100. Если не запретить FTP_AUTOSEEK, первые 100 байт файла "newfile" будут содержать '\0'.

Смотрите также

ftp_nb_fget()
ftp_nb_continue()
ftp_fget()
ftp_get()

Пред. | Начало | След.
ftp_nb_fput | Уровень выше | ftp_nb_put


ftp_nb_put

(PHP 4 >= 4.3.0, PHP 5)

ftp_nb_put -- Загружает файл на FTP сервер в асинхронном режиме

Описание

int ftp_nb_put ( resource ftp_stream, string remote_file, string local_file, int mode [, int startpos] )

ftp_nb_put() загружает локальный файл на FTP сервер.

Отличие этой функции от ftp_put() состоит в том, что загрузка файла происходит в асинхронном режиме, что позволяет программе выполнять другие операции во время загрузки.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

remote_file

Путь к файлу на сервере

local_file

Путь к локальному файлу

mode

Режим передачи. Может принимать значения FTP_ASCII или FTP_BINARY

startpos

Позиция в файле, с которой начинается загрузка

Возвращаемые значения

Возвращает FTP_FAILED, FTP_FINISHED или FTP_MOREDATA.

Примеры

Пример 1. Пример использования ftp_nb_put() example

<?php

// Начало загрузки
$ret = ftp_nb_put($my_connection, "test.remote", "test.local", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // производим какие-то дествия ...
   echo ".";

   // продолжение загрузки ...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "При загрузке файла произолшла ошибка...";
   exit(1);
}
?>

Пример 2. Возобновление загрузки файла с помощью ftp_nb_put()

<?php

// Начало загрузки
$ret = ftp_nb_put($my_connection, "test.remote", "test.local",
                      FTP_BINARY, ftp_size("test.remote"));
// ИЛИ: $ret = ftp_nb_put($my_connection, "test.remote", "test.local",
//                           FTP_BINARY, FTP_AUTORESUME);

while ($ret == FTP_MOREDATA) {

   // производим какие-то дествия ...
   echo ".";

   // продолжение загрузки ...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "При загрузке файла произолшла ошибка...";
   exit(1);
}
?>

Смотрите также

ftp_nb_fput()
ftp_nb_continue()
ftp_put()
ftp_fput()

Пред. | Начало | След.
ftp_nb_get | Уровень выше | ftp_nlist


ftp_nlist

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_nlist -- Возвращает список файлов в заданной директории

Описание

array ftp_nlist ( resource ftp_stream, string directory )

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

directory

Имя директории для получения списка файлов. Этот параметр также может включать аргументы, например ftp_nlist($conn_id, "-la /your/dir"); Обратите внимание, что этот параметр не проходит экранирование спецсимволов, так что могут возникнуть проблемы с именами, содержащими пробелы и прочие подобные символы.

Возвращаемые значения

Возвращает массив имён файлов в директории или FALSE при возникновении ошибки.

Примеры

Пример 1. Пример использования ftp_nlist()

<?php

// установка соединения
$conn_id = ftp_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// получить содержимое текущей директории
$contents = ftp_nlist($conn_id, ".");

// вывод $contents
var_dump($contents);

?>

Приведенный выше пример выведет :

array(3) {
  [0]=>
  string(11) "public_html"
  [1]=>
  string(10) "public_ftp"
  [2]=>
  string(3) "www"

Смотрите также

ftp_rawlist()

Пред. | Начало | След.
ftp_nb_put | Уровень выше | ftp_pasv


ftp_pasv

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_pasv -- Включает или выключает пассивный режим

Описание

bool ftp_pasv ( resource ftp_stream, bool pasv )

ftp_pasv() включает или выключает пассивный режим. В пассивном передача данных инициируется клиентом, а не сервером.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

pasv

Если TRUE, пассивный режим будет включен, иначе выключен.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Пример использования ftp_pasv()

<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';

// установка соединения
$conn_id = ftp_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// включение пассивного режима
ftp_pasv($conn_id, true);

// загрузка файла
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
 echo "$file загружен на сервер\n";
} else {
 echo "Не удалось загрузить $file на сервер\n";
}

// закрытие соединения
ftp_close($conn_id);
?>

Пред. | Начало | След.
ftp_nlist | Уровень выше | ftp_put


ftp_put

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_put -- Загружает файл на FTP сервер

Описание

bool ftp_put ( resource ftp_stream, string remote_file, string local_file, int mode [, int startpos] )

ftp_put() загружает локальный файл на FTP сервер.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

remote_file

Путь к файлу на FTP сервере

local_file

Путь к локальному файлу

mode

Задает режим передачи. Может принимать значения FTP_ASCII или FTP_BINARY

startpos

Задает позицию в файле, с которой начинается загрузка

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Пример использования ftp_put()

<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';

// установка соединения
$conn_id = ftp_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// загрузка файла
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
 echo "$file загружен на сервер\n";
} else {
 echo "Не удалось загрузить $file на сервер\n";
}

// закрытие соединения
ftp_close($conn_id);
?>

Смотрите также

ftp_fput()
ftp_nb_fput()
ftp_nb_put()

Пред. | Начало | След.
ftp_pasv | Уровень выше | ftp_pwd


ftp_pwd

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_pwd -- Возвращает имя текущей директории

Описание

string ftp_pwd ( resource ftp_stream )

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

Возвращаемые значения

Возвращает имя текущей директории, или FALSE при возникновении ошибки.

Примеры

Пример 1. Пример использования ftp_pwd()

<?php

// установка соединения
$conn_id = ftp_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// смена текущей директории на public_html
ftp_chdir($conn_id, 'public_html');

// вывод имени текущей директории
echo ftp_pwd($conn_id); // /public_html

// закрытие соединения
ftp_close($conn_id);
?>

Пред. | Начало | След.
ftp_put | Уровень выше | ftp_quit


ftp_quit

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_quit -- Псевдоним функции ftp_close()

Описание

Эта функция является псевдонимом функции ftp_close().

Пред. | Начало | След.
ftp_pwd | Уровень выше | ftp_raw


ftp_raw

(PHP 5)

ftp_raw -- Отправляет произвольную команду FTP серверу

Описание

array ftp_raw ( resource ftp_stream, string command )

Отправляет произвольную команду command FTP серверу.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

command

Команда

Возвращаемые значения

Возвращает ответ сервера в виде массива строк. Функция ftp_raw() не интерпретирует ответ сервера и не определяет, успешно ли выполнена команда.

Примеры

Пример 1. Использование ftp_raw() для входа на FTP сервер

<?php
$fp = ftp_connect("ftp.example.com");

/* То же самое, что:
   ftp_login($fp, "joeblow", "secret"); */
ftp_raw($fp, "USER joeblow");
ftp_raw($fp, "PASS secret");
?>

Смотрите также

ftp_exec()

Пред. | Начало | След.
ftp_quit | Уровень выше | ftp_rawlist


ftp_rawlist

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_rawlist -- Возвращает список файлов в заданной директории

Описание

array ftp_rawlist ( resource ftp_stream, string directory [, bool recursive] )

ftp_rawlist() отправляет FTP серверу команду LIST и возвращает результат в виде массива.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

directory

Имя директории на сервере

recursive

Если передано значение TRUE, серверу будет отправлена команда LIST -R

Возвращаемые значения

Возвращает массив, каждый элемент которого содержит одну строку ответа сервера. Ответ сервера не интерпретируется. Для определения того, как следует интерпретировать результат, можно использовать результат функции ftp_systype().

Примеры

Пример 1. Пример использования ftp_rawlist()

<?php

// установка соединения
$conn_id = ftp_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// получение списка файлов директори /
$buff = ftp_rawlist($conn_id, '/');

// закрытие соединения
ftp_close($conn_id);

// вывод буфера
var_dump($buff);
?>

Вывод вышеприведенного примера будет подобен следующему:

array(3) {
  [0]=>
  string(65) "drwxr-x---   3 vincent  vincent      4096 Jul 12 12:16 public_ftp"
  [1]=>
  string(66) "drwxr-x---  15 vincent  vincent      4096 Nov  3 21:31 public_html"
  [2]=>
  string(73) "lrwxrwxrwx   1 vincent  vincent        11 Jul 12 12:16 www -> public_html"
}

Список изменений

Версия | Описание
4.3.0 | Добавлен аргумент recursive.

Смотрите также

ftp_nlist()

Пред. | Начало | След.
ftp_raw | Уровень выше | ftp_rename


ftp_rename

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_rename -- Переименовывает файл на FTP сервере

Описание

bool ftp_rename ( resource ftp_stream, string oldname, string newname )

ftp_rename() переименовывает файл или директорию на FTP сервере. ftp_rename() переименовывает файл или директорию from в to.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

oldname

Старое имя файла/директории

newname

Новое имя файла/директории

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Пример использования ftp_rename()

<?php
$old_file = 'somefile.txt.bak';
$new_file = 'somefile.txt';

// установка соединения
$conn_id = ftp_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// попытка переименовать $olf_file в $new_file
if (ftp_rename($conn_id, $old_file, $new_file)) {
 echo "Файл $old_file переименован в $new_file\n";
} else {
 echo "Не удалось переименовать $old_file в $new_file\n";
}

// закрытие соединения
ftp_close($conn_id);
?>

Пред. | Начало | След.
ftp_rawlist | Уровень выше | ftp_rmdir


ftp_rmdir

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_rmdir -- Удаляет директорию

Описание

bool ftp_rmdir ( resource ftp_stream, string directory )

Удаляет директорию directory.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

directory

Имя директории. Должен содержать относительный или абсолютный путь к пустой директории

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Пример использования ftp_rmdir()

<?php

$dir = 'www/';

// установка соединения
$conn_id = ftp_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// попытка удаления директории $dir
if (ftp_rmdir($conn_id, $dir)) {
    echo "Директория $dir удалена\n";
} else {
    echo "Не удалось удалить директорию $dir\n";
}

ftp_close($conn_id);

?>

Смотрите также

ftp_mkdir()

Пред. | Начало | След.
ftp_rename | Уровень выше | ftp_set_option


ftp_set_option

(PHP 4 >= 4.2.0, PHP 5)

ftp_set_option -- Устанавливает параметры соединения с FTP сервером

Описание

bool ftp_set_option ( resource ftp_stream, int option, mixed value )

Эта функция устанавливает параметры соединения с FTP сервером.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

option

В настоящее время поддерживаются следующие параметры:

Таблица 1. Поддерживаемые параметры

FTP_TIMEOUT_SEC | Устанавливает таймаут сетевых операций, в секундах. Аргумент value должен быть целым, больше 0. По умолчанию таймаут равен 90 секунд.
FTP_AUTOSEEK | При установке этого параметра, перед выполнением запросов GET или PUT с параметром resumepos или startpos указатель файла будет установлен на запрошенную позицию. Этот параметр установлен по умолчанию.

value

Назначение этого аргумента зависит от значения параметра option.

Возвращаемые значения

Возвращает TRUE если параметр был установлен; FALSE в противном случае. Если значение аргумента option не поддерживается или значение аргумента value не соответствует значению аргумента option, будет выведено предупреждение.

Примеры

Пример 1. Пример использования ftp_set_option()

<?php
// установка таймаута в 10 секунд
ftp_set_option($conn_id, FTP_TIMEOUT_SEC, 10);
?>

Смотрите также

ftp_get_option()

Пред. | Начало | След.
ftp_rmdir | Уровень выше | ftp_site


ftp_site

(PHP 3 >= 3.0.15, PHP 4, PHP 5)

ftp_site -- Отправляет команду SITE серверу

Описание

bool ftp_site ( resource ftp_stream, string command )

ftp_site() отправляет команду, заданную аргументом command, FTP серверу.

Команда SITE не стандартизирована, и зависит от FTP сервера. Она может быть полезна для изменения прав доступа к файлам или смены владельца или группы.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

command

Команда SITE. Обратите внимание, что этот параметр не проходит экранирование спецсимволов, так что могут возникнуть проблемы с именами, содержащими пробелы и прочие подобные символы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Отправка команды SITE FTP серверу

<?php
/* Соединение с FTP сервером */
$conn = ftp_connect('ftp.example.com');
if (!$conn) die('Не удалось подключиться к ftp.example.com');

/* Вход под именем "user" с паролем "pass" */
if (!ftp_login($conn, 'user', 'pass')) die('Не удалось войти на ftp.example.com');

/* Отправка "SITE CHMOD 0600 /home/user/privatefile" FTP серверу */
if (ftp_site($conn, 'CHMOD 0600 /home/user/privatefile')) {
   echo "Команда выполнена.\n";
} else {
   die('Команда не выполнена.');
}
?>

Смотрите также

ftp_raw()

Пред. | Начало | След.
ftp_set_option | Уровень выше | ftp_size


ftp_size

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_size -- Возвращает размер файла

Описание

int ftp_size ( resource ftp_stream, string remote_file )

ftp_size() возвращает размер заданного файла в байтах.

Замечание: Не все FTP серверы поддерживают эту возможность.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

remote_file

Имя файла на сервере

Возвращаемые значения

Возвращает размер файла, или -1 при возникновении ошибки.

Примеры

Пример 1. Пример использования ftp_size()

<?php

$file = 'somefile.txt';

// установка соединения
$conn_id = ftp_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// получение размера файла $file
$res = ftp_size($conn_id, $file);

if ($res != -1) {
    echo "Рамер файла $file  $res байт";
} else {
    echo "Не удалось определить размер файла $file";
}

// закрытие соединения
ftp_close($conn_id);

?>

Смотрите также

ftp_rawlist()

Пред. | Начало | След.
ftp_site | Уровень выше | ftp_ssl_connect


ftp_ssl_connect

(PHP 4 >= 4.3.0, PHP 5)

ftp_ssl_connect -- Устанавливает соединение с FTP сервером через SSL

Описание

resource ftp_ssl_connect ( string host [, int port [, int timeout]] )

ftp_ssl_connect() устанавливает соединение с FTP сервером, заданным аргументом host, через SSL.

Почему эта функция может быть не определена: Функция ftp_ssl_connect() доступна только если PHP был собран с поддержкой OpenSSL. Под Windows, вам придется собрать PHP самостоятельно для включения поддержки OpenSSL.

Список параметров

host

Имя хоста или IP адрес, без слэшей или ftp://

port

Задает порт, на котором устанавливается соединение. Если равен нулю или опущен, по умолчанию используется стандартный для протокола FTP порт 21

timeout

Задает таймаут для всех операций с этим соединением. По умолчанию таймаут устанавливается в 90 секунд. Получить и установить значение таймаута можно также с помощью функций ftp_get_option() и ftp_set_option()

Возвращаемые значения

Возвращает дескриптор соединения, или FALSE при возникновении ошибки.

Примеры

Пример 1. Пример использования функции ftp_ssl_connect()

<?php

// установка соединения
$conn_id = ftp_ssl_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

echo ftp_pwd($conn_id); // /

// закрытие соединения
ftp_close($conn_id);
?>

Смотрите также

ftp_connect()

Пред. | Начало | След.
ftp_size | Уровень выше | ftp_systype


ftp_systype

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ftp_systype -- Возвращает тип операционной системы FTP сервера

Описание

string ftp_systype ( resource ftp_stream )

Возвращает тип операционной системы FTP сервера.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

Возвращаемые значения

Возвращает тип операционной системы FTP сервера, или FALSE при возникновении ошибки.

Примеры

Пример 1. Пример использования ftp_systype()

<?php

// установка соединения
$ftp = ftp_connect('ftp.example.com');
ftp_login($ftp, 'user', 'password');

// получение типа системы
if ($type = ftp_systype($ftp)) {
    echo "example.com использует $type\n";
} else {
    echo "Не удалось определить тип системы";
}

?>

Вышеприведенный пример выведет (например):

example.com использует UNIX

Пред. | Начало | След.
ftp_ssl_connect | Уровень выше | Управление функциями


Управление функциями

Руководство по PHP
Пред. След.

XLIV. Управление функциями

Введение

Эти функции позволяют вам различными способами оперировать функциями.

Требования

Эти функции всегда доступны.

Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Предопределенные константы

Данное расширение не определяет никакие константы.

Содержание
call_user_func_array -- Вызывает пользовательскую функцию с массивом параметров
call_user_func -- Вызывает пользовательскую функцию
create_function -- Создаёт анонимную (lambda-style) функцию
func_get_arg -- Возвращает элемент из списка аргументов
func_get_args -- Возвращает массив аргументов функции
func_num_args -- Возвращает количество аргументов, переданных функции
function_exists -- Возвращает TRUE, если данная функция определена
get_defined_functions -- Возвращает массив всех определённых функций
register_shutdown_function -- Регистрирует функцию, которая выполняется по завершению работы скрипта
register_tick_function -- Регистрирует функцию для выполнения при каждом тике
unregister_tick_function -- Удаляет функцию из списка зарегистрированных для выполнения при каждом тике

Пред. | Начало | След.
ftp_systype | Уровень выше | call_user_func_array


call_user_func_array

(PHP 4 >= 4.0.4, PHP 5)

call_user_func_array -- Вызывает пользовательскую функцию с массивом параметров

Описание

mixed call_user_func_array ( callback function [, array param_arr] )

Вызывает пользовательскую функцию function, с параметрами из массива param_arr. Например:

Пример 1. Использование call_user_func_array()

<?php
function debug($var, $val)
{
    echo "***DEBUGGING\nVARIABLE: $var\nVALUE:";
    if (is_array($val) || is_object($val) || is_resource($val)) {
        print_r($val);
    } else {
        echo "\n$val\n";
    }
    echo "***\n";
}

$c = mysql_connect();
$host = $_SERVER["SERVER_NAME"];

call_user_func_array('debug', array("host", $host));
call_user_func_array('debug', array("c", $c));
call_user_func_array('debug', array("_POST", $_POST));
?>

См. также call_user_func().

Пред. | Начало | След.
Управление функциями | Уровень выше | call_user_func


call_user_func

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

call_user_func -- Вызывает пользовательскую функцию

Описание

mixed call_user_func ( callback function [, mixed parameter [, mixed ...]] )

Вызывает пользовательскую функцию function со следующими параметрами:

<?php
function barber($type)
{
    echo "You wanted a $type haircut, no problem";
}
call_user_func('barber', "mushroom");
call_user_func('barber', "shave");
?>

Методы класса также могут быть вызваны статически при передаче array($classname, $methodname) в качестве параметра function.

<?php
class myclass {
  function say_hello()
  {
    echo "Hello!\n";
  }
}

$classname = "myclass";

call_user_func(array($classname, 'say_hello'));
?>

Замечание: Обратите внимание, что параметры для call_user_func() не могут передаваться по ссылке.

<?php
function increment(&$var)
{
    $var++;
}

$a = 0;
call_user_func('increment', $a);
echo $a; // 0

call_user_func_array('increment', array(&$a)); // You can use this instead
echo $a; // 1
?>

См. также: is_callable(), и call_user_func_array()

Пред. | Начало | След.
call_user_func_array | Уровень выше | create_function


create_function

(PHP 4 >= 4.0.1, PHP 5)

create_function -- Создаёт анонимную (lambda-style) функцию

Описание

string create_function ( string args, string code )

Создаёт анонимную функцию из переданных параметров и возвращает её уникальное имя. Обычно args передаются строкой в апострофах, что также рекомендуется для параметра code. Основанием для использования строк в апострофах является защита имён переменных от обработки, другими словами, если вы будете использовать кавычки, вам будет нужно экранировать все имена переменных вот так: \$avar.

Вы можете использовать эту функцию (к примеру) для создания функций на основании информации, полученной во время выполнения программы:

Пример 1. Создание анонимной функции с помощью create_function()

<?php
$newfunc = create_function('$a,$b', 'return "ln($a) + ln($b) = " . log($a * $b);');
echo "New anonymous function: $newfunc\n";
echo $newfunc(2, M_E) . "\n";
// outputs
// New anonymous function: lambda_1
// ln(2) + ln(2.718281828459) = 1.6931471805599
?>

Или, возможно, чтобы иметь общий обработчик для применения набора функций к списку параметров:

Пример 2. Создание функции-обработчика с помощью create_function()

<?php
function process($var1, $var2, $farr)
{
    for ($f=0; $f < count($farr); $f++) {
        echo $farr[$f]($var1, $var2) . "\n";
    }
}

// create a bunch of math functions
$f1 = 'if ($a >=0) {return "b*a^2 = ".$b*sqrt($a);} else {return false;}';
$f2 = "return \"min(b^2+a, a^2,b) = \".min(\$a*\$a+\$b,\$b*\$b+\$a);";
$f3 = 'if ($a > 0 && $b != 0) {return "ln(a)/b = ".log($a)/$b; } else { return false; }';
$farr = array(
    create_function('$x,$y', 'return "some trig: ".(sin($x) + $x*cos($y));'),
    create_function('$x,$y', 'return "a hypotenuse: ".sqrt($x*$x + $y*$y);'),
    create_function('$a,$b', $f1),
    create_function('$a,$b', $f2),
    create_function('$a,$b', $f3)
    );

echo "\nUsing the first array of anonymous functions\n";
echo "parameters: 2.3445, M_PI\n";
process(2.3445, M_PI, $farr);

// now make a bunch of string processing functions
$garr = array(
    create_function('$b,$a', 'if (strncmp($a, $b, 3) == 0) return "** \"$a\" '.
    'and \"$b\"\n** Look the same to me! (looking at the first 3 chars)";'),
    create_function('$a,$b', '; return "CRCs: " . crc32($a) . " , ".crc32(b);'),
    create_function('$a,$b', '; return "similar(a,b) = " . similar_text($a, $b, &$p) . "($p%)";')
    );
echo "\nUsing the second array of anonymous functions\n";
process("Twas brilling and the slithy toves", "Twas the night", $garr);
?>

Вышеприведённый код выводит следующее:

Using the first array of anonymous functions
parameters: 2.3445, M_PI
some trig: -1.6291725057799
a hypotenuse: 3.9199852871011
b*a^2 = 4.8103313314525
min(b^2+a, a^2,b) = 8.6382729035898
ln(a/b) = 0.27122299212594

Using the second array of anonymous functions
** "Twas the night" and "Twas brilling and the slithy toves"
** Look the same to me! (looking at the first 3 chars)
CRCs: -725381282 , 1908338681
similar(a,b) = 11(45.833333333333%)

Однако, вероятно, наиболее обоснованное использование lambda-style (анонимных) функций - это создание функций-обработчиков, например, при использовании array_walk() или usort()

Пример 3. Использование анонимной функции как функции-обработчика

<?php
$av = array("the ", "a ", "that ", "this ");
array_walk($av, create_function('&$v,$k', '$v = $v . "mango";'));
print_r($av);
?>

выводит:

Array
(
  [0] => the mango
  [1] => a mango
  [2] => that mango
  [3] => this mango
)

Сортировка строк по их длине

<?php

$sv = array("small", "larger", "a big string", "it is a string thing");
print_r($sv);

?>

результат:

Array
(
  [0] => small
  [1] => larger
  [2] => a big string
  [3] => it is a string thing
)

Теперь отсортируем их в обратном порядке:

<?php

usort($sv, create_function('$a,$b','return strlen($b) - strlen($a);'));
print_r($sv);

?>

результат:

Array
(
  [0] => it is a string thing
  [1] => a big string
  [2] => larger
  [3] => small
)

Пред. | Начало | След.
call_user_func | Уровень выше | func_get_arg


func_get_arg

(PHP 4, PHP 5)

func_get_arg -- Возвращает элемент из списка аргументов

Описание

mixed func_get_arg ( int arg_num )

Возвращает arg_num-ый аргумент из списка аргументов пользовательской функции. Нумерация аргументов функции начинается с нуля. func_get_arg() генерирует предупреждение при вызове вне определения функции.

Если arg_num больше количества переданных аргументов, будет сгенерировано предупреждение и func_get_arg() вернет FALSE.

<?php
function foo()
{
     $numargs = func_num_args();
     echo "Number of arguments: $numargs<br />\n";
     if ($numargs >= 2) {
     echo "Second argument is: " . func_get_arg(1) . "<br />\n";
     }
}

foo (1, 2, 3);
?>

func_get_arg() может быть использована совместно с func_num_args() и func_get_args() для создания функций с переменным количеством аргументов.

Пред. | Начало | След.
create_function | Уровень выше | func_get_args


func_get_args

(PHP 4, PHP 5)

func_get_args -- Возвращает массив аргументов функции

Описание

array func_get_args ( void )

Возвращает массив, в котором каждый элемент является соответствующим членом списка аргументов пользовательской функции. func_get_args() генерирует предупреждение при вызове вне определения функции.

<?php
function foo()
{
    $numargs = func_num_args();
    echo "Number of arguments: $numargs<br />\n";
    if ($numargs >= 2) {
        echo "Second argument is: " . func_get_arg(1) . "<br />\n";
    }
    $arg_list = func_get_args();
    for ($i = 0; $i < $numargs; $i++) {
        echo "Argument $i is: " . $arg_list[$i] . "<br />\n";
    }
}

foo(1, 2, 3);
?>

func_get_args() может быть использована совместно с func_num_args() и func_get_arg() для создания функций с переменным количеством аргументов.

Пред. | Начало | След.
func_get_arg | Уровень выше | func_num_args


func_num_args

(PHP 4, PHP 5)

func_num_args -- Возвращает количество аргументов, переданных функции

Описание

int func_num_args ( void )

Возвращает количество аргументов, переданных текущей пользовательской функции. func_num_args() генерирует предупреждение при вызове вне определения функции.

<?php
function foo()
{
    $numargs = func_num_args();
    echo "Number of arguments: $numargs\n";
}

foo(1, 2, 3);    // Prints 'Number of arguments: 3'
?>

func_num_args() может быть использована совместно с with func_get_arg() и func_get_args() для создания функций с переменным количеством аргументов.

Пред. | Начало | След.
func_get_args | Уровень выше | function_exists


function_exists

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

function_exists -- Возвращает TRUE, если данная функция определена

Описание

bool function_exists ( string function_name )

Проверяет, есть ли в списке определённых функций, встроенных и пользовательских, функция function_name. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

<?php
if (function_exists('imap_open')) {
    echo "IMAP functions are available.<br />\n";
} else {
    echo "IMAP functions are not available.<br />\n";
}
?>

Обратите внимание, что название функции может присутствовать, даже если саму функцию невозможно использовать из-за настроек конфигурации или опций компиляции (например, как для image функций). Также заметьте, что function_exists() возвращает FALSE для таких конструкций, как include_once() и echo().

См. также method_exists() и get_defined_functions().

Пред. | Начало | След.
func_num_args | Уровень выше | get_defined_functions


get_defined_functions

(PHP 4 >= 4.0.4, PHP 5)

get_defined_functions -- Возвращает массив всех определённых функций

Описание

array get_defined_functions ( void )

Эта функция возвращает многомерный массив, содержащий список всех определённых функций, встроенных и пользовательских. Встроенные функции перечислены в элементе массива $arr["internal"], а определенные пользователем - в элементе $arr["user"] (см. пример ниже).

<?php
function myrow($id, $data)
{
    return "<tr><th>$id</th><td>$data</td></tr>\n";
}

$arr = get_defined_functions();

print_r($arr);
?>

Выведет что-то подобное следующему:

Array
(
    [internal] => Array
        (
            [0] => zend_version
            [1] => func_num_args
            [2] => func_get_arg
            [3] => func_get_args
            [4] => strlen
            [5] => strcmp
            [6] => strncmp
            ...
            [750] => bcscale
            [751] => bccomp
        )

    [user] => Array
        (
            [0] => myrow
        )

)

См. также
function_exists(),
get_defined_vars() и
get_defined_constants().

Пред. | Начало | След.
function_exists | Уровень выше | register_shutdown_function


register_shutdown_function

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

register_shutdown_function -- Регистрирует функцию, которая выполняется по завершению работы скрипта

Описание

void register_shutdown_function ( callback function )

Регистрирует функцию function, которая выполнится после завершения работы скрипта.

Возможна регистрация нескольких подобных функций с помощью register_shutdown_function(), при этом функции будут выполняться в том порядке, в каком они были зарегистрированы. Если вы вызовете exit() в одной из зарегистрированных register_shutdown_function() функций, процесс будет остановлен окончательно и последующие зарегистрированные с помощью register_shutdown_function() функции не будут вызваны.

Зарегистрированные register_shutdown_function() функции будут вызваны после того, как запрос выполнен окончательно (включая отсылку любых буферов вывода), соответственно вы не сможете из этих функций вывести что-либо в броузер, используя echo() или print(), или возвратить содержимое какого-либо буфера вывода, используя ob_get_contents().

Замечание: Обычно неопределённые функции вызывают фатальные ошибки в PHP, но когда function, вызванная при помощи register_shutdown_function(), неопределена, уровень ошибки изменяется на E_WARNING. Также, из-за внутренних причин, эта ошибка будет ссылаться на Unknown() at line #0.

См. также auto_append_file, exit() и секцию connection handling.

Пред. | Начало | След.
get_defined_functions | Уровень выше | register_tick_function


register_tick_function

(PHP 4 >= 4.0.3, PHP 5)

register_tick_function -- Регистрирует функцию для выполнения при каждом тике

Описание

void register_tick_function ( callback function [, mixed arg [, mixed ...]] )

Регистрирует функцию func, которая должна вызываться при каждом тике (см. tick). Также, вы можете передать в качестве параметра func массив, состоящий из объекта и метода.

Пример 1. Использование register_tick_function()

<?php
// using a function as the callback
register_tick_function('my_function', true);

// using an object->method
$object = new my_class();
register_tick_function(array(&$object, 'my_method'), true);
?>

См. также declare() и unregister_tick_function().

Пред. | Начало | След.
register_shutdown_function | Уровень выше | unregister_tick_function


unregister_tick_function

(PHP 4 >= 4.0.3, PHP 5)

unregister_tick_function -- Удаляет функцию из списка зарегистрированных для выполнения при каждом тике

Описание

void unregister_tick_function ( string function_name )

Удаляет function_name из списка функций, зарегистрированных для выполнения при каждом тике (см. tick).

См. также declare() и register_tick_function().

Пред. | Начало | След.
register_tick_function | Уровень выше | Gettext


Gettext

Руководство по PHP
Пред. След.

XLV. Gettext

Введение

Функции gettext реализуют NLS (Native Language Support) API, который может использоваться для интернационализации ваших PHP-приложений. Обратитесь к документации gettext вашей системы, или откройте её по адресу http://www.gnu.org/software/gettext/manual/gettext.html.

Требования

Пакет GNU gettext входит в состав всех дистрибутивов, его домашняя страничка: http://www.gnu.org/software/gettext/gettext.html

Установка

Чтобы включить поддержку GNU gettext в сборку PHP, добавьте в конфигурацию ключ --with-gettext[=DIR], где DIR - папка установки gettext, обычно это /usr.

Примечание для тех, кто использует Win32: Скопируйте библиотеку gnu_gettext.dll из папки DLL пакета PHP/Win32 в папку SYSTEM32. (например: C:\WINNT\SYSTEM32 или C:\WINDOWS\SYSTEM32). Начиная с PHP 4.2.3 имя изменилось на libintl-1.dll, также нужно скопировать iconv.dll. libintl-1.dll не требуется начиная с PHP 4.3.8, iconv.dll не требуется начиная с PHP 5.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Содержание
bind_textdomain_codeset -- Устанавливает кодировку, в которой будут возвращаться сообщения
bindtextdomain -- Указать путь к каталогу сообщений
dcgettext -- Запрашивает сообщение из другого каталога сообщений
dcngettext -- Версия dcgettext для множественного числа
dgettext -- Запрашивает сообщение из другого каталога сообщений
dngettext -- Версия dgettext для множественного числа
gettext -- Возвращает перевод сообщения
ngettext -- Версия gettext для множественного числа
textdomain -- устанавливает каталог сообщений по уммолчанию

Пред. | Начало | След.
unregister_tick_function | Уровень выше | bind_textdomain_codeset


bind_textdomain_codeset

(PHP 4 >= 4.2.0, PHP 5)

bind_textdomain_codeset -- Устанавливает кодировку, в которой будут возвращаться сообщения

Description

string bind_textdomain_codeset ( string domain, string codeset )

Функция bind_textdomain_codeset() устанавливает кодировку, в которой будут возвращаться сообщения из domain, такими функциями как gettext().

Пред. | Начало | След.
Gettext | Уровень выше | bindtextdomain


bindtextdomain

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

bindtextdomain -- Указать путь к каталогу сообщений

Описание

string bindtextdomain ( string domain, string directory )

Возвращает текущий путь.

Пример 1. Пример

<?php

$domain = 'myapp';
echo bindtextdomain($domain, '/usr/share/myapp/locale');

?>

Вывод:

/usr/share/myapp/locale

Пред. | Начало | След.
bind_textdomain_codeset | Уровень выше | dcgettext


dcgettext

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

dcgettext -- Запрашивает сообщение из другого каталога сообщений

Описание

string dcgettext ( string domain, string message, int category )

Запрашивает перевод из другого каталога сообщений. Также позволяет указать категорию.

См. также gettext().

Пред. | Начало | След.
bindtextdomain | Уровень выше | dcngettext


dcngettext

(PHP 4 >= 4.2.0, PHP 5)

dcngettext -- Версия dcgettext для множественного числа

Описание

string dcngettext ( string domain, string msgid1, string msgid2, int n, int category )

Запрашивает перевод с чиловым параметром из другого каталога сообщений. Также позволяет указать категорию.

См. также ngettext().

Пред. | Начало | След.
dcgettext | Уровень выше | dgettext


dgettext

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

dgettext -- Запрашивает сообщение из другого каталога сообщений

Описание

string dgettext ( string domain, string message )

Запрашивает перевод из другого каталога сообщений.

См. также gettext().

Пред. | Начало | След.
dcngettext | Уровень выше | dngettext


dngettext

(PHP 4 >= 4.2.0, PHP 5)

dngettext -- Версия dgettext для множественного числа

Описание

string dngettext ( string domain, string msgid1, string msgid2, int n )

Запрашивает перевод с чиловым параметром из другого каталога сообщений.

См. также ngettext().

Пред. | Начало | След.
dgettext | Уровень выше | gettext


gettext

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

gettext -- Возвращает перевод сообщения

Описание

string gettext ( string message )

Возвращает перевод сообщения, найденный в текущем каталоге сообщений, или оригинал, если перевод не найден. Псевдоним функции - '_'.

Пример 1. gettext()-check

<?php
// Установить язык в русский
setlocale(LC_ALL, 'ru_RU');

// Указать путь к каталогу сообщений
bindtextdomain("myPHPApp", "./locale");

// Выбрать домены
textdomain("myPHPApp");

// Теперь переводы будут искаться в ./locale/de_DE/LC_MESSAGES/myPHPApp.mo

// Вывести текстовое сообщение
echo gettext("Welcome to My PHP Application");

// То же самое
echo _("Have a nice day");
?>

См. также setlocale().

Пред. | Начало | След.
dngettext | Уровень выше | ngettext


ngettext

(PHP 4 >= 4.2.0, PHP 5)

ngettext -- Версия gettext для множественного числа

Описание

string ngettext ( string msgid1, string msgid2, int n )

Возвращает сообщение в соответствующей числу форме. В английском языке есть только два варианта - msgid1 и msgid2: первый только когда n=1. В русском языке множественых форм три (1, 21, 31, ...; 2, 3, 4, ...; 5, 6, 8, ...), следовательно в каталоге сообщений будет три строчки.

Пример 1. Пример

<?php

setlocale(LC_ALL, 'ru_RU');
printf(ngettext("%d window", "%d windows", 21), 21); // 21 окно
printf(ngettext("%d window", "%d windows", 22), 22); // 22 окна
printf(ngettext("%d window", "%d windows", 25), 25); // 25 окон

?>

Пред. | Начало | След.
gettext | Уровень выше | textdomain


textdomain

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

textdomain -- устанавливает каталог сообщений по уммолчанию

Описание

string textdomain ( string text_domain )

Устанавливает каталог сообщений, в котором будет искаться перевод строки, переданной функции gettext(), обычно называется имя_приложения.mo. Возвращается каталог сообщений, установленный по умолчанию до этого. Вызовите эту функцию с аргументом NULL, чтобы получить имя текущего каталога сообщений не меняя его.

Пред. | Начало | След.
ngettext | Уровень выше | GMP Functions


GMP Functions

Руководство по PHP
Пред. След.

XLVI. GMP Functions

Введение

These functions allow you to work with arbitrary-length integers using the GNU MP library.

These functions have been added in PHP 4.0.4.

Замечание: Most GMP functions accept GMP number arguments, defined as resource below. However, most of these functions will also accept numeric and string arguments, given that it is possible to convert the latter to a number. Also, if there is a faster function that can operate on integer arguments, it would be used instead of the slower function when the supplied arguments are integers. This is done transparently, so the bottom line is that you can use integers in every function that expects GMP number. See also the gmp_init() function.

Внимание

If you want to explicitly specify a large integer, specify it as a string. If you don't do that, PHP will interpret the integer-literal first, possibly resulting in loss of precision, even before GMP comes into play.

Замечание: This extension is available on Windows platforms since PHP 5.1.0.

Требования

You can download the GMP library from http://www.swox.com/gmp/. This site also has the GMP manual available.

You will need GMP version 2 or better to use these functions. Some functions may require more recent version of the GMP library.

Установка

In order to have these functions available, you must compile PHP with GMP support by using the --with-gmp option.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

GMP_ROUND_ZERO (integer)

GMP_ROUND_PLUSINF (integer)

GMP_ROUND_MINUSINF (integer)

Примеры

Пример 1. Factorial function using GMP

<?php
function fact($x)
{
    $return = 1;
    for ($i=2; $i < $x; $i++) {
        $return = gmp_mul($return, $i);
    }
    return $return;
}

echo gmp_strval(fact(1000)) . "\n";
?>

This will calculate factorial of 1000 (pretty big number) very fast.

Смотрите также

More mathematical functions can be found in the sections BCMath Arbitrary Precision Mathematics Functions and Mathematical Functions.

Содержание
gmp_abs -- Absolute value
gmp_add -- Add numbers
gmp_and -- Logical AND
gmp_clrbit -- Clear bit
gmp_cmp -- Compare numbers
gmp_com -- Calculates one's complement
gmp_div_q -- Divide numbers
gmp_div_qr -- Divide numbers and get quotient and remainder
gmp_div_r -- Remainder of the division of numbers
gmp_div -- Alias of gmp_div_q()
gmp_divexact -- Exact division of numbers
gmp_fact -- Factorial
gmp_gcd -- Calculate GCD
gmp_gcdext -- Calculate GCD and multipliers
gmp_hamdist -- Hamming distance
gmp_init -- Create GMP number
gmp_intval -- Convert GMP number to integer
gmp_invert -- Inverse by modulo
gmp_jacobi -- Jacobi symbol
gmp_legendre -- Legendre symbol
gmp_mod -- Modulo operation
gmp_mul -- Multiply numbers
gmp_neg -- Negate number
gmp_or -- Logical OR
gmp_perfect_square -- Perfect square check
gmp_popcount -- Population count
gmp_pow -- Raise number into power
gmp_powm -- Raise number into power with modulo
gmp_prob_prime -- Check if number is "probably prime"
gmp_random -- Random number
gmp_scan0 -- Scan for 0
gmp_scan1 -- Scan for 1
gmp_setbit -- Set bit
gmp_sign -- Sign of number
gmp_sqrt -- Calculate square root
gmp_sqrtrem -- Square root with remainder
gmp_strval -- Convert GMP number to string
gmp_sub -- Subtract numbers
gmp_xor -- Logical XOR

Пред. | Начало | След.
textdomain | Уровень выше | gmp_abs


gmp_abs

(PHP 4 >= 4.0.4, PHP 5)

gmp_abs -- Absolute value

Description

resource gmp_abs ( resource a )

Returns absolute value of a.

Пример 1. gmp_abs() example

<?php
$abs1 = gmp_abs("274982683358");
$abs2 = gmp_abs("-274982683358");

echo gmp_strval($abs1) . "\n";
echo gmp_strval($abs2) . "\n";
?>

The printout of the above program will be:

274982683358
274982683358

Пред. | Начало | След.
GMP Functions | Уровень выше | gmp_add


gmp_add

(PHP 4 >= 4.0.4, PHP 5)

gmp_add -- Add numbers

Description

resource gmp_add ( resource a, resource b )

Add two GMP numbers. The result will be a GMP number representing the sum of the arguments.

Пример 1. gmp_add() example

<?php
$sum = gmp_add("123456789012345", "76543210987655");
echo gmp_strval($sum) . "\n";
?>

The printout of the above program will be:

200000000000000

Пред. | Начало | След.
gmp_abs | Уровень выше | gmp_and


gmp_and

(PHP 4 >= 4.0.4, PHP 5)

gmp_and -- Logical AND

Description

resource gmp_and ( resource a, resource b )

Calculates logical AND of two GMP numbers.

Пример 1. gmp_and() example

<?php
$and1 = gmp_and("0xfffffffff4", "0x4");
$and2 = gmp_and("0xfffffffff4", "0x8");
echo gmp_strval($and1) . "\n";
echo gmp_strval($and2) . "\n";
?>

The printout of the above program will be:

4
0

Пред. | Начало | След.
gmp_add | Уровень выше | gmp_clrbit


gmp_clrbit

(PHP 4 >= 4.0.4, PHP 5)

gmp_clrbit -- Clear bit

Description

void gmp_clrbit ( resource &a, int index )

Clears (sets to 0) bit index in a. The index starts at 0.

Замечание: Unlike most of the other GMP functions, gmp_clrbit() must be called with a GMP resource that already exists (using gmp_init() for example). One will not be automatically created.

Пример 1. gmp_clrbit() example

<?php
$a = gmp_init("0xff");
gmp_clrbit($a, 0); // index starts at 0, least significant bit
echo gmp_strval($a) . "\n";
?>

The printout of the above program will be:

254

See also gmp_setbit().

Пред. | Начало | След.
gmp_and | Уровень выше | gmp_cmp


gmp_cmp

(PHP 4 >= 4.0.4, PHP 5)

gmp_cmp -- Compare numbers

Description

int gmp_cmp ( resource a, resource b )

Returns a positive value if a > b, zero if a = b and a negative value if a < b.

Пример 1. gmp_cmp() example

<?php
$cmp1 = gmp_cmp("1234", "1000"); // greater than
$cmp2 = gmp_cmp("1000", "1234"); // less than
$cmp3 = gmp_cmp("1234", "1234"); // equal to

echo "$cmp1 $cmp2 $cmp3\n";
?>

The printout of the above program will be:

1 -1 0

Пред. | Начало | След.
gmp_clrbit | Уровень выше | gmp_com


gmp_com

(PHP 4 >= 4.0.4, PHP 5)

gmp_com -- Calculates one's complement

Description

resource gmp_com ( resource a )

Returns the one's complement of a.

Пример 1. gmp_com() example

<?php
$com = gmp_com("1234");
echo gmp_strval($com) . "\n";
?>

The printout of the above program will be:

-1235

Пред. | Начало | След.
gmp_cmp | Уровень выше | gmp_div_q


gmp_div_q

(PHP 4 >= 4.0.4, PHP 5)

gmp_div_q -- Divide numbers

Description

resource gmp_div_q ( resource a, resource b [, int round] )

Divides a by b and returns the integer result. The result rounding is defined by the round, which can have the following values:

  • GMP_ROUND_ZERO: The result is truncated towards 0.

  • GMP_ROUND_PLUSINF: The result is rounded towards +infinity.

  • GMP_ROUND_MINUSINF: The result is rounded towards -infinity.

This function can also be called as gmp_div().

Пример 1. gmp_div_q() example

<?php
$div1 = gmp_div_q("100", "5");
echo gmp_strval($div1) . "\n";

$div2 = gmp_div_q("1", "3");
echo gmp_strval($div2) . "\n";

$div3 = gmp_div_q("1", "3", GMP_ROUND_PLUSINF);
echo gmp_strval($div3) . "\n";

$div4 = gmp_div_q("-1", "4", GMP_ROUND_PLUSINF);
echo gmp_strval($div4) . "\n";

$div5 = gmp_div_q("-1", "4", GMP_ROUND_MINUSINF);
echo gmp_strval($div5) . "\n";
?>

The printout of the above program will be:

20
0
1
0
1

See also gmp_div_r(), gmp_div_qr()

Пред. | Начало | След.
gmp_com | Уровень выше | gmp_div_qr


gmp_div_qr

(PHP 4 >= 4.0.4, PHP 5)

gmp_div_qr -- Divide numbers and get quotient and remainder

Description

array gmp_div_qr ( resource n, resource d [, int round] )

The function divides n by d and returns array, with the first element being [n/d] (the integer result of the division) and the second being (n - [n/d] * d) (the remainder of the division).

See the gmp_div_q() function for description of the round argument.

Пример 1. Division of GMP numbers

<?php
$a = gmp_init("0x41682179fbf5");
$res = gmp_div_qr($a, "0xDEFE75");
printf("Result is: q - %s, r - %s",
       gmp_strval($res[0]), gmp_strval($res[1]));
?>

See also gmp_div_q(), gmp_div_r().

Пред. | Начало | След.
gmp_div_q | Уровень выше | gmp_div_r


gmp_div_r

(PHP 4 >= 4.0.4, PHP 5)

gmp_div_r -- Remainder of the division of numbers

Description

resource gmp_div_r ( resource n, resource d [, int round] )

Calculates remainder of the integer division of n by d. The remainder has the sign of the n argument, if not zero.

Пример 1. gmp_div_r() example

<?php
$div = gmp_div_r("105", "20");
echo gmp_strval($div) . "\n";
?>

The printout of the above program will be:

5

See the gmp_div_q() function for description of the round argument.

See also gmp_div_q(), gmp_div_qr()

Пред. | Начало | След.
gmp_div_qr | Уровень выше | gmp_div


gmp_div

(PHP 4 >= 4.0.4, PHP 5)

gmp_div -- Alias of gmp_div_q()

Описание

This function is an alias of: gmp_div_q().

Пред. | Начало | След.
gmp_div_r | Уровень выше | gmp_divexact


gmp_divexact

(PHP 4 >= 4.0.4, PHP 5)

gmp_divexact -- Exact division of numbers

Description

resource gmp_divexact ( resource n, resource d )

Divides n by d, using fast "exact division" algorithm. This function produces correct results only when it is known in advance that d divides n.

Пример 1. gmp_divexact() example

<?php
$div1 = gmp_divexact("10", "2");
echo gmp_strval($div1) . "\n";

$div2 = gmp_divexact("10", "3"); // bogus result
echo gmp_strval($div2) . "\n";
?>

The printout of the above program will be:

5
2863311534

Пред. | Начало | След.
gmp_div | Уровень выше | gmp_fact


gmp_fact

(PHP 4 >= 4.0.4, PHP 5)

gmp_fact -- Factorial

Description

resource gmp_fact ( int a )

Calculates factorial (a!) of a.

Пример 1. gmp_fact() example

<?php
$fact1 = gmp_fact(5); // 5 * 4 * 3 * 2 * 1
echo gmp_strval($fact1) . "\n";

$fact2 = gmp_fact(50); // 50 * 49 * 48, ... etc
echo gmp_strval($fact2) . "\n";
?>

The printout of the above program will be:

120
30414093201713378043612608166064768844377641568960512000000000000

Пред. | Начало | След.
gmp_divexact | Уровень выше | gmp_gcd


gmp_gcd

(PHP 4 >= 4.0.4, PHP 5)

gmp_gcd -- Calculate GCD

Description

resource gmp_gcd ( resource a, resource b )

Calculate greatest common divisor of a and b. The result is always positive even if either of, or both, input operands are negative.

Пример 1. gmp_gcd() example

<?php
$gcd = gmp_gcd("12", "21");
echo gmp_strval($gcd) . "\n";
?>

The printout of the above program will be:

3

Пред. | Начало | След.
gmp_fact | Уровень выше | gmp_gcdext


gmp_gcdext

(PHP 4 >= 4.0.4, PHP 5)

gmp_gcdext -- Calculate GCD and multipliers

Description

array gmp_gcdext ( resource a, resource b )

Calculates g, s, and t, such that a*s + b*t = g = gcd(a,b), where gcd is the greatest common divisor. Returns an array with respective elements g, s and t.

This function can be used to solve linear Diophantine equations in two variables. These are equations that allow only integer solutions and have the form: a*x + b*y = c. For more information, go to the "Diophantine Equation" page at MathWorld

Пример 1. Solving a linear Diophantine equation

<?php
// Solve the equation a*s + b*t = g
// where a = 12, b = 21, g = gcd(12, 21) = 3
$a = gmp_init(12);
$b = gmp_init(21);
$g = gmp_gcd($a, $b);
$r = gmp_gcdext($a, $b);

$check_gcd = (gmp_strval($g) == gmp_strval($r['g']));
$eq_res = gmp_add(gmp_mul($a, $r['s']), gmp_mul($b, $r['t']));
$check_res = (gmp_strval($g) == gmp_strval($eq_res));

if ($check_gcd && $check_res) {
    $fmt = "Solution: %d*%d + %d*%d = %d\n";
    printf($fmt, gmp_strval($a), gmp_strval($r['s']), gmp_strval($b),
    gmp_strval($r['t']), gmp_strval($r['g']));
} else {
    echo "Error while solving the equation\n";
}

// output: Solution: 12*2 + 21*-1 = 3
?>

Пред. | Начало | След.
gmp_gcd | Уровень выше | gmp_hamdist


gmp_hamdist

(PHP 4 >= 4.0.4, PHP 5)

gmp_hamdist -- Hamming distance

Description

int gmp_hamdist ( resource a, resource b )

Returns the hamming distance between a and b. Both operands should be non-negative.

Пример 1. gmp_hamdist() example

<?php
$ham1 = gmp_init("1001010011", 2);
$ham2 = gmp_init("1011111100", 2);
echo gmp_hamdist($ham1, $ham2) . "\n";

/* hamdist is equivilent to: */
echo gmp_popcount(gmp_xor($ham1, $ham2)) . "\n";
?>

The printout of the above program will be:

6
6

See also gmp_popcount(), gmp_xor()

Пред. | Начало | След.
gmp_gcdext | Уровень выше | gmp_init


gmp_init

(PHP 4 >= 4.0.4, PHP 5)

gmp_init -- Create GMP number

Description

resource gmp_init ( mixed number [, int base] )

Creates a GMP number from an integer or string. String representation can be decimal or hexadecimal. In the latter case, the string should start with 0x. Optional parameter base is available since PHP 4.1.0.

Пример 1. Creating GMP number

<?php
$a = gmp_init(123456);
$b = gmp_init("0xFFFFDEBACDFEDF7200");
?>

Замечание: It is not necessary to call this function if you want to use integer or string in place of GMP number in GMP functions, like gmp_add(). Function arguments are automatically converted to GMP numbers, if such conversion is possible and needed, using the same rules as gmp_init().

Пред. | Начало | След.
gmp_hamdist | Уровень выше | gmp_intval


gmp_intval

(PHP 4 >= 4.0.4, PHP 5)

gmp_intval -- Convert GMP number to integer

Description

int gmp_intval ( resource gmpnumber )

This function allows to convert GMP number to integer.

Внимание

This function returns a useful result only if the number actually fits the PHP integer (i.e., signed long type). If you want just to print the GMP number, use gmp_strval().

Пример 1. gmp_intval() example

<?php
// displays correct result
echo gmp_intval("2147483647") . "\n";

// displays wrong result, above PHP integer limit
echo gmp_intval("2147483648") . "\n";

// displays correct result
echo gmp_strval("2147483648") . "\n";
?>

The printout of the above program will be:

2147483647
2147483647
2147483648

Пред. | Начало | След.
gmp_init | Уровень выше | gmp_invert


gmp_invert

(PHP 4 >= 4.0.4, PHP 5)

gmp_invert -- Inverse by modulo

Description

resource gmp_invert ( resource a, resource b )

Computes the inverse of a modulo b. Returns FALSE if an inverse does not exist.

Пример 1. gmp_invert() example

<?php
echo gmp_invert("5", "10"); // no inverse, outputs nothing, result is FALSE
$invert = gmp_invert("5", "11");
echo gmp_strval($invert) . "\n";
?>

The printout of the above program will be:

9

Пред. | Начало | След.
gmp_intval | Уровень выше | gmp_jacobi


gmp_jacobi

(PHP 4 >= 4.0.4, PHP 5)

gmp_jacobi -- Jacobi symbol

Description

int gmp_jacobi ( resource a, resource p )

Computes Jacobi symbol of a and p. p should be odd and must be positive.

Пример 1. gmp_jacobi() example

<?php
echo gmp_jacobi("1", "3") . "\n";
echo gmp_jacobi("2", "3") . "\n";
?>

The printout of the above program will be:

1
0

Пред. | Начало | След.
gmp_invert | Уровень выше | gmp_legendre


gmp_legendre

(PHP 4 >= 4.0.4, PHP 5)

gmp_legendre -- Legendre symbol

Description

int gmp_legendre ( resource a, resource p )

Compute the Legendre symbol of a and p. p should be odd and must be positive.

Пример 1. gmp_legendre() example

<?php
echo gmp_legendre("1", "3") . "\n";
echo gmp_legendre("2", "3") . "\n";
?>

The printout of the above program will be:

1
0

Пред. | Начало | След.
gmp_jacobi | Уровень выше | gmp_mod


gmp_mod

(PHP 4 >= 4.0.4, PHP 5)

gmp_mod -- Modulo operation

Description

resource gmp_mod ( resource n, resource d )

Calculates n modulo d. The result is always non-negative, the sign of d is ignored.

Пример 1. gmp_mod() example

<?php
$mod = gmp_mod("8", "3");
echo gmp_strval($mod) . "\n";
?>

The printout of the above program will be:

2

Пред. | Начало | След.
gmp_legendre | Уровень выше | gmp_mul


gmp_mul

(PHP 4 >= 4.0.4, PHP 5)

gmp_mul -- Multiply numbers

Description

resource gmp_mul ( resource a, resource b )

Multiplies a by b and returns the result.

Пример 1. gmp_mul() example

<?php
$mul = gmp_mul("12345678", "2000");
echo gmp_strval($mul) . "\n";
?>

The printout of the above program will be:

24691356000

Пред. | Начало | След.
gmp_mod | Уровень выше | gmp_neg


gmp_neg

(PHP 4 >= 4.0.4, PHP 5)

gmp_neg -- Negate number

Description

resource gmp_neg ( resource a )

Returns -a.

Пример 1. gmp_neg() example

<?php
$neg1 = gmp_neg("1");
echo gmp_strval($neg1) . "\n";
$neg2 = gmp_neg("-1");
echo gmp_strval($neg2) . "\n";
?>

The printout of the above program will be:

-1
1

Пред. | Начало | След.
gmp_mul | Уровень выше | gmp_or


gmp_or

(PHP 4 >= 4.0.4, PHP 5)

gmp_or -- Logical OR

Description

resource gmp_or ( resource a, resource b )

Calculates logical inclusive OR of two GMP numbers.

Пример 1. gmp_or() example

<?php
$or1 = gmp_or("0xfffffff2", "4");
echo gmp_strval($or1, 16) . "\n";
$or2 = gmp_or("0xfffffff2", "2");
echo gmp_strval($or2, 16) . "\n";
?>

The printout of the above program will be:

fffffff6
fffffff2

Пред. | Начало | След.
gmp_neg | Уровень выше | gmp_perfect_square


gmp_perfect_square

(PHP 4 >= 4.0.4, PHP 5)

gmp_perfect_square -- Perfect square check

Description

bool gmp_perfect_square ( resource a )

Returns TRUE if a is a perfect square, FALSE otherwise.

Пример 1. gmp_perfect_square() example

<?php
// 3 * 3, perfect square
var_dump(gmp_perfect_square("9"));

// not a perfect square
var_dump(gmp_perfect_square("7"));

// 1234567890 * 1234567890, perfect square
var_dump(gmp_perfect_square("1524157875019052100"));
?>

The printout of the above program will be:

bool(true)
bool(false)
bool(true)

See also: gmp_sqrt(), gmp_sqrtrem().

Пред. | Начало | След.
gmp_or | Уровень выше | gmp_popcount


gmp_popcount

(PHP 4 >= 4.0.4, PHP 5)

gmp_popcount -- Population count

Description

int gmp_popcount ( resource a )

Return the population count of a.

Пример 1. gmp_popcount() example

<?php
$pop1 = gmp_init("10000101", 2); // 3 1's
echo gmp_popcount($pop1) . "\n";
$pop2 = gmp_init("11111110", 2); // 7 1's
echo gmp_popcount($pop2) . "\n";
?>

The printout of the above program will be:

3
7

Пред. | Начало | След.
gmp_perfect_square | Уровень выше | gmp_pow


gmp_pow

(PHP 4 >= 4.0.4, PHP 5)

gmp_pow -- Raise number into power

Description

resource gmp_pow ( resource base, int exp )

Raise base into power exp. The case of 0^0 yields 1. exp cannot be negative.

Пример 1. gmp_pow() example

<?php
$pow1 = gmp_pow("2", 31);
echo gmp_strval($pow1) . "\n";
$pow2 = gmp_pow("0", 0);
echo gmp_strval($pow2) . "\n";
$pow3 = gmp_pow("2", -1); // Negative exp, generates warning
echo gmp_strval($pow3) . "\n";
?>

The printout of the above program will be:

2147483648
1

Пред. | Начало | След.
gmp_popcount | Уровень выше | gmp_powm


gmp_powm

(PHP 4 >= 4.0.4, PHP 5)

gmp_powm -- Raise number into power with modulo

Description

resource gmp_powm ( resource base, resource exp, resource mod )

Calculate (base raised into power exp) modulo mod. If exp is negative, result is undefined.

Пример 1. gmp_powm() example

<?php
$pow1 = gmp_powm("2", "31", "2147483649");
echo gmp_strval($pow1) . "\n";
?>

The printout of the above program will be:

2147483648

Пред. | Начало | След.
gmp_pow | Уровень выше | gmp_prob_prime


gmp_prob_prime

(PHP 4 >= 4.0.4, PHP 5)

gmp_prob_prime -- Check if number is "probably prime"

Description

int gmp_prob_prime ( resource a [, int reps] )

If this function returns 0, a is definitely not prime. If it returns 1, then a is "probably" prime. If it returns 2, then a is surely prime. Reasonable values of reps vary from 5 to 10 (default being 10); a higher value lowers the probability for a non-prime to pass as a "probable" prime.

The function uses Miller-Rabin's probabilistic test.

Пример 1. gmp_prob_prime() example

<?php
// definitely not a prime
echo gmp_prob_prime("6") . "\n";

// probably a prime
echo gmp_prob_prime("1111111111111111111") . "\n";

// definitely a prime
echo gmp_prob_prime("11") . "\n";
?>

The printout of the above program will be:

0
1
2

Пред. | Начало | След.
gmp_powm | Уровень выше | gmp_random


gmp_random

(PHP 4 >= 4.0.4, PHP 5)

gmp_random -- Random number

Description

resource gmp_random ( int limiter )

Generate a random number. The number will be between zero and the number of bits per limb multiplied by limiter. If limiter is negative, negative numbers are generated.

A limb is an internal GMP mechanism. The number of bits in a limb is not static, and can vary from system to system. Generally, the number of bits in a limb is either 16 or 32, but this is not guaranteed.

Пример 1. gmp_random() example

<?php
$rand1 = gmp_random(1); // random number from 0 to 1 * bits per limb
$rand2 = gmp_random(2); // random number from 0 to 2 * bits per limb

echo gmp_strval($rand1) . "\n";
echo gmp_strval($rand2) . "\n";
?>

The printout of the above program might be:

1915834968
8642564075890328087

Пред. | Начало | След.
gmp_prob_prime | Уровень выше | gmp_scan0


gmp_scan0

(PHP 4 >= 4.0.4, PHP 5)

gmp_scan0 -- Scan for 0

Description

int gmp_scan0 ( resource a, int start )

Scans a, starting with bit start, towards more significant bits, until the first clear bit is found. Returns the index of the found bit. The index starts from 0.

Пример 1. gmp_scan0() example

<?php
// "0" bit is found at position 3. index starts at 0
$s1 = gmp_init("10111", 2);
echo gmp_scan0($s1, 0) . "\n";

// "0" bit is found at position 7. index starts at 5
$s2 = gmp_init("101110000", 2);
echo gmp_scan0($s2, 5) . "\n";
?>

The printout of the above program will be:

3
7

Пред. | Начало | След.
gmp_random | Уровень выше | gmp_scan1


gmp_scan1

(PHP 4 >= 4.0.4, PHP 5)

gmp_scan1 -- Scan for 1

Description

int gmp_scan1 ( resource a, int start )

Scans a, starting with bit start, towards more significant bits, until the first set bit is found. Returns the index of the found bit. If no set bit is found, -1 is returned.

Пример 1. gmp_scan1() example

<?php
// "1" bit is found at position 3. index starts at 0
$s1 = gmp_init("01000", 2);
echo gmp_scan1($s1, 0) . "\n";

// "1" bit is found at position 9. index starts at 5
$s2 = gmp_init("01000001111", 2);
echo gmp_scan1($s2, 5) . "\n";
?>

The printout of the above program will be:

3
9

Пред. | Начало | След.
gmp_scan0 | Уровень выше | gmp_setbit


gmp_setbit

(PHP 4 >= 4.0.4, PHP 5)

gmp_setbit -- Set bit

Description

void gmp_setbit ( resource &a, int index [, bool set_clear] )

Sets bit index in a. set_clear defines if the bit is set to 0 or 1. By default the bit is set to 1. Index starts at 0.

Замечание: Unlike most of the other GMP functions, gmp_setbit() must be called with a GMP resource that already exists (using gmp_init() for example). One will not be automatically created.

Пример 1. gmp_setbit() example

<?php
$a = gmp_init("0xfd");
gmp_setbit($a, 1); // index starts at 0
echo gmp_strval($a) . "\n";
?>

The printout of the above program will be:

255

See also gmp_clrbit().

Пред. | Начало | След.
gmp_scan1 | Уровень выше | gmp_sign


gmp_sign

(PHP 4 >= 4.0.4, PHP 5)

gmp_sign -- Sign of number

Description

int gmp_sign ( resource a )

Returns 1 if a is positive, -1 if a is negative, and 0 if a is zero.

Пример 1. gmp_sign() example

<?php
// positive
echo gmp_sign("500") . "\n";

// negative
echo gmp_sign("-500") . "\n";

// zero
echo gmp_sign("0") . "\n";
?>

The printout of the above program will be:

1
-1
0

Пред. | Начало | След.
gmp_setbit | Уровень выше | gmp_sqrt


gmp_sqrt

(PHP 4 >= 4.0.4, PHP 5)

gmp_sqrt -- Calculate square root

Description

resource gmp_sqrt ( resource a )

Calculates square root of a and returns the integer portion of the result.

Пример 1. gmp_sqrt() example

<?php
$sqrt1 = gmp_sqrt("9");
$sqrt2 = gmp_sqrt("7");
$sqrt3 = gmp_sqrt("1524157875019052100");

echo gmp_strval($sqrt1) . "\n";
echo gmp_strval($sqrt2) . "\n";
echo gmp_strval($sqrt3) . "\n";
?>

The printout of the above program will be:

3
2
1234567890

Пред. | Начало | След.
gmp_sign | Уровень выше | gmp_sqrtrem


gmp_sqrtrem

(PHP 4 >= 4.0.4, PHP 5)

gmp_sqrtrem -- Square root with remainder

Description

array gmp_sqrtrem ( resource a )

Returns array where first element is the integer square root of a (see also gmp_sqrt()), and the second is the remainder (i.e., the difference between a and the first element squared).

Пример 1. gmp_sqrtrem() example

<?php
list($sqrt1, $sqrt1rem) = gmp_sqrtrem("9");
list($sqrt2, $sqrt2rem) = gmp_sqrtrem("7");
list($sqrt3, $sqrt3rem) = gmp_sqrtrem("1048576");

echo gmp_strval($sqrt1) . ", " . gmp_strval($sqrt1rem) . "\n";
echo gmp_strval($sqrt2) . ", " . gmp_strval($sqrt2rem) . "\n";
echo gmp_strval($sqrt3) . ", " . gmp_strval($sqrt3rem) . "\n";
?>

The printout of the above program will be:

3, 0
2, 3
1024, 0

Пред. | Начало | След.
gmp_sqrt | Уровень выше | gmp_strval


gmp_strval

(PHP 4 >= 4.0.4, PHP 5)

gmp_strval -- Convert GMP number to string

Description

string gmp_strval ( resource gmpnumber [, int base] )

Convert GMP number to string representation in base base. The default base is 10. Allowed values for the base are from 2 to 36.

Пример 1. Converting a GMP number to a string

<?php
$a = gmp_init("0x41682179fbf5");
printf("Decimal: %s, 36-based: %s", gmp_strval($a), gmp_strval($a,36));
?>

Пред. | Начало | След.
gmp_sqrtrem | Уровень выше | gmp_sub


gmp_sub

(PHP 4 >= 4.0.4, PHP 5)

gmp_sub -- Subtract numbers

Description

resource gmp_sub ( resource a, resource b )

Subtracts b from a and returns the result.

Пример 1. gmp_sub() example

<?php
$sub = gmp_sub("281474976710656", "4294967296"); // 2^48 - 2^32
echo gmp_strval($sub) . "\n";
?>

The printout of the above program will be:

281470681743360

Пред. | Начало | След.
gmp_strval | Уровень выше | gmp_xor


gmp_xor

(PHP 4 >= 4.0.4, PHP 5)

gmp_xor -- Logical XOR

Description

resource gmp_xor ( resource a, resource b )

Calculates logical exclusive OR (XOR) of two GMP numbers.

Пример 1. gmp_xor() example

<?php
$xor1 = gmp_init("1101101110011101", 2);
$xor2 = gmp_init("0110011001011001", 2);

$xor3 = gmp_xor($xor1, $xor2);

echo gmp_strval($xor3, 2) . "\n";
?>

The printout of the above program will be:

1011110111000100

Пред. | Начало | След.
gmp_sub | Уровень выше | gnupg Функции


Функции протокола HTTP

Руководство по PHP
Пред. След.

XLIX. Функции протокола HTTP

Введение

Эти функции позволяют вам работать с данными, которые отправляются броузеру удаленного пользователя, на уровне протокола HTTP.

Требования

Эти функции всегда доступны.

Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Содержание
header -- Send a raw HTTP header
headers_list -- Возвращает список отправленных HTTP-заголовков (или готовых к отправке)
headers_sent -- Проверяет отправлены ли HTTP-заголовки клиенту и, если отправлены, то где
setcookie -- Send a cookie
setrawcookie -- Устанавливает cookie без url-кодирования её значения

Пред. | Начало | След.
gopher_parsedir | Уровень выше | header


header

(PHP 3, PHP 4, PHP 5)

header -- Send a raw HTTP header

Description

void header ( string string [, bool replace [, int http_response_code]] )

header() is used to send raw HTTP headers. See the HTTP/1.1 specification for more information on HTTP headers.

The optional replace parameter indicates whether the header should replace a previous similar header, or add a second header of the same type. By default it will replace, but if you pass in FALSE as the second argument you can force multiple headers of the same type. For example:

<?php
header('WWW-Authenticate: Negotiate');
header('WWW-Authenticate: NTLM', false);
?>

The second optional http_response_code force the HTTP response code to the specified value. (This parameter is available in PHP 4.3.0 and higher.)

There are two special-case header calls. The first is a header that starts with the string "HTTP/" (case is not significant), which will be used to figure out the HTTP status code to send. For example, if you have configured Apache to use a PHP script to handle requests for missing files (using the ErrorDocument directive), you may want to make sure that your script generates the proper status code.

<?php
header("HTTP/1.0 404 Not Found");
?>

Замечание: The HTTP status header line will always be the first sent to the client, regardless of the actual header() call being the first or not. The status may be overridden by calling header() with a new status line at any time unless the HTTP headers have already been sent.

The second special case is the "Location:" header. Not only does it send this header back to the browser, but it also returns a REDIRECT (302) status code to the browser unless some 3xx status code has already been set.

<?php
header("Location: http://www.example.com/"); /* Redirect browser */

/* Make sure that code below does not get executed when we redirect. */
exit;
?>

Замечание: HTTP/1.1 requires an absolute URI as argument to Location: including the scheme, hostname and absolute path, but some clients accept relative URIs. You can usually use $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] and dirname() to make an absolute URI from a relative one yourself:

<?php
header("Location: http://" . $_SERVER['HTTP_HOST']
                      . rtrim(dirname($_SERVER['PHP_SELF']), '/\\')
                      . "/" . $relative_url);
?>

Замечание: Session ID is not passed with Location header even if session.use_trans_sid is enabled. It must by passed manually using SID constant.

PHP scripts often generate dynamic content that must not be cached by the client browser or any proxy caches between the server and the client browser. Many proxies and clients can be forced to disable caching with:

<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
?>

Замечание: You may find that your pages aren't cached even if you don't output all of the headers above. There are a number of options that users may be able to set for their browser that change its default caching behavior. By sending the headers above, you should override any settings that may otherwise cause the output of your script to be cached.

Additionally, session_cache_limiter() and the session.cache_limiter configuration setting can be used to automatically generate the correct caching-related headers when sessions are being used.

Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.

<html>
<?php
/* This will give an error. Note the output
 * above, which is before the header() call */
header('Location: http://www.example.com/');
?>

Замечание: As of PHP 4, you can use output buffering to get around this problem, with the overhead of all of your output to the browser being buffered in the server until you send it. You can do this by calling ob_start() and ob_end_flush() in your script, or setting the output_buffering configuration directive on in your php.ini or server configuration files.

If you want the user to be prompted to save the data you are sending, such as a generated PDF file, you can use the Content-Disposition header to supply a recommended filename and force the browser to display the save dialog.

<?php
// We'll be outputting a PDF
header('Content-type: application/pdf');

// It will be called downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');

// The PDF source is in original.pdf
readfile('original.pdf');
?>

Замечание: There is a bug in Microsoft Internet Explorer 4.01 that prevents this from working. There is no workaround. There is also a bug in Microsoft Internet Explorer 5.5 that interferes with this, which can be resolved by upgrading to Service Pack 2 or later.

Замечание: If safe mode is enabled the uid of the script is added to the realm part of the WWW-Authenticate header if you set this header (used for HTTP Authentication).

See also headers_sent(), setcookie(), and the section on HTTP authentication.

Пред. | Начало | След.
Функции протокола HTTP | Уровень выше | headers_list


headers_list

(PHP 5)

headers_list -- Возвращает список отправленных HTTP-заголовков (или готовых к отправке)

Описание

array headers_list ( void )

headers_list() возвращает нумерованный массив заголовков, готовых для отправки броузеру / клиенту. Чтобы узнать были ли они уже отправлены - используйте функцию headers_sent().

Пример 1. Пример использования headers_list()

<?php

/* setcookie() добавляет свой собственный заголовок */
setcookie('foo', 'bar');

/* Определяем собственный заголовок
   Большинство клиентов его проигнорируют. */
header("X-Sample-Test: foo");

/* Контент предоставлен в виде обычного текста */
header('Content-type: text/plain');

/* Какие заголовки будут отправлены? */
var_dump(headers_list());

?>

результат работы :

array(4) {
  [0]=>
  string(29) "X-Powered-By: PHP/5.0.0"
  [1]=>
  string(19) "Set-Cookie: foo=bar"
  [2]=>
  string(18) "X-Sample-Test: foo"
  [3]=>
  string(24) "Content-type: text/plain"
}

Смотрите также:
headers_sent(),
header(), и
setcookie().

Пред. | Начало | След.
header | Уровень выше | headers_sent


headers_sent

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

headers_sent -- Проверяет отправлены ли HTTP-заголовки клиенту и, если отправлены, то где

Описание

bool headers_sent ( [string &file [, int &line]] )

headers_sent() возвращает FALSE, если HTTP заголовки еще не были отправлены клиенту, и TRUE в противоположном случае. Если были указаны необязательные параметры file и line, headers_sent() вернет имя файла и номер строки, где был начат вывод данных в переменные file и line соответственно.

Вы не можете добавить новые заголовки при помощи функции header(), если заголовки уже были отправлены клиенту. Использование данной функции позволит вам лишь избежать сообщений об ошибках, связанных повторной отправкой HTTP-заголовков. Другой выход - использовать буферизацию вывода.

Замечание: Необязательные параметры file и line были добавлены в PHP 4.3.0.

Пример 1. Пример использования headers_sent()

<?php

// Если заголовки еще не отправлены, добавить
if (!headers_sent()) {
    header('Location: http://www.example.com/');
    exit;
}

// Пример использования опциональных параметров, добавленных в PHP 4.3.0
// Обратите внимание, что $filename и $linenum передаются для последующего
// использования. Не устанавливайте их предварительно!
if (!headers_sent($filename, $linenum)) {
    header('Location: http://www.example.com/');
    exit;

// Обычно здесь идет обработка ошибок.
} else {

    echo "Заголовки уже отправлены в $filename на строке $linenum\n" .
          "Редирект невозможен, пожалуйста нажмите <a " .
          "href=\"http://www.example.com\">Здесь</a> самостоятельно\n";
    exit;
}

?>

Смотрите также функции ob_start(), trigger_error(), и header() для более подробного обсуждения затронутых вопросов.

Пред. | Начало | След.
headers_list | Уровень выше | setcookie


setcookie

(PHP 3, PHP 4, PHP 5)

setcookie -- Send a cookie

Description

bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure]]]]] )

setcookie() defines a cookie to be sent along with the rest of the HTTP headers. Like other headers, cookies must be sent before any output from your script (this is a protocol restriction). This requires that you place calls to this function prior to any output, including <html> and <head> tags as well as any whitespace. If output exists prior to calling this function, setcookie() will fail and return FALSE. If setcookie() successfully runs, it will return TRUE. This does not indicate whether the user accepted the cookie.

Замечание: As of PHP 4, you can use output buffering to send output prior to the call of this function, with the overhead of all of your output to the browser being buffered in the server until you send it. You can do this by calling ob_start() and ob_end_flush() in your script, or setting the output_buffering configuration directive on in your php.ini or server configuration files.

All the arguments except the name argument are optional. You may also replace an argument with an empty string ("") in order to skip that argument. Because the expire argument is integer, it cannot be skipped with an empty string, use a zero (0) instead. The following table explains each parameter of the setcookie() function, be sure to read the Netscape cookie specification for specifics on how each setcookie() parameter works and RFC 2965 for additional information on how HTTP cookies work.

Таблица 1. setcookie() parameters explained

Parameter | Description | Examples
name | The name of the cookie. | 'cookiename' is called as $_COOKIE['cookiename']
value | The value of the cookie. This value is stored on the clients computer; do not store sensitive information. | Assuming the name is 'cookiename', this value is retrieved through $_COOKIE['cookiename']
expire | The time the cookie expires. This is a Unix timestamp so is in number of seconds since the epoch. In other words, you'll most likely set this with the time() function plus the number of seconds before you want it to expire. Or you might use mktime(). | time()+60*60*24*30 will set the cookie to expire in 30 days. If not set, the cookie will expire at the end of the session (when the browser closes).
path | The path on the server in which the cookie will be available on. | If set to '/', the cookie will be available within the entire domain. If set to '/foo/', the cookie will only be available within the /foo/ directory and all sub-directories such as /foo/bar/ of domain. The default value is the current directory that the cookie is being set in.
domain | The domain that the cookie is available. | To make the cookie available on all subdomains of example.com then you'd set it to '.example.com'. The . is not required but makes it compatible with more browsers. Setting it to www.example.com will make the cookie only available in the www subdomain. Refer to tail matching in the spec for details.
secure | Indicates that the cookie should only be transmitted over a secure HTTPS connection. When set to TRUE, the cookie will only be set if a secure connection exists. The default is FALSE. | 0 or 1

Once the cookies have been set, they can be accessed on the next page load with the $_COOKIE or $HTTP_COOKIE_VARS arrays. Note, autoglobals such as $_COOKIE became available in PHP 4.1.0. $HTTP_COOKIE_VARS has existed since PHP 3. Cookie values also exist in $_REQUEST.

Замечание: If the PHP directive register_globals is set to on then cookie values will also be made into variables. In our examples below, $TestCookie will exist. It's recommended to use $_COOKIE.

Common Pitfalls:

  • Cookies will not become visible until the next loading of a page that the cookie should be visible for. To test if a cookie was successfully set, check for the cookie on a next loading page before the cookie expires. Expire time is set via the expire parameter. A nice way to debug the existence of cookies is by simply calling print_r($_COOKIE);.

  • Cookies must be deleted with the same parameters as they were set with. If the value argument is an empty string, or FALSE, and all other arguments match a previous call to setcookie, then the cookie with the specified name will be deleted from the remote client.

  • Because setting a cookie with a value of FALSE will try to delete the cookie, you should not use boolean values. Instead, use 0 for FALSE and 1 for TRUE.

  • Cookies names can be set as array names and will be available to your PHP scripts as arrays but separate cookies are stored on the users system. Consider explode() to set one cookie with multiple names and values. It is not recommended to use serialize() for this purpose, because it can result in security holes.

In PHP 3, multiple calls to setcookie() in the same script will be performed in reverse order. If you are trying to delete one cookie before inserting another you should put the insert before the delete. As of PHP 4, multiple calls to setcookie() are performed in the order called.

Some examples follow how to send cookies:

Пример 1. setcookie() send example

<?php
$value = 'something from somewhere';

setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600);  /* expire in 1 hour */
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example.com", 1);
?>

Note that the value portion of the cookie will automatically be urlencoded when you send the cookie, and when it is received, it is automatically decoded and assigned to a variable by the same name as the cookie name. If you don't want this, you can use setrawcookie() instead if you are using PHP 5. To see the contents of our test cookie in a script, simply use one of the following examples:

<?php
// Print an individual cookie
echo $_COOKIE["TestCookie"];
echo $HTTP_COOKIE_VARS["TestCookie"];

// Another way to debug/test is to view all cookies
print_r($_COOKIE);
?>

When deleting a cookie you should assure that the expiration date is in the past, to trigger the removal mechanism in your browser. Examples follow how to delete cookies sent in previous example:

Пример 2. setcookie() delete example

<?php
// set the expiration date to one hour ago
setcookie ("TestCookie", "", time() - 3600);
setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", ".example.com", 1);
?>

You may also set array cookies by using array notation in the cookie name. This has the effect of setting as many cookies as you have array elements, but when the cookie is received by your script, the values are all placed in an array with the cookie's name:

Пример 3. setcookie() and arrays

<?php
// set the cookies
setcookie("cookie[three]", "cookiethree");
setcookie("cookie[two]", "cookietwo");
setcookie("cookie[one]", "cookieone");

// after the page reloads, print them out
if (isset($_COOKIE['cookie'])) {
    foreach ($_COOKIE['cookie'] as $name => $value) {
        echo "$name : $value <br />\n";
    }
}
?>

which prints

three : cookiethree
two : cookietwo
one : cookieone

Замечание: The following RFC's may also be useful: RFC 2109 and RFC 2695

You may notice the expire parameter takes on a Unix timestamp, as opposed to the date format Wdy, DD-Mon-YYYY HH:MM:SS GMT, this is because PHP does this conversion internally.

expire is compared to the client's time which can differ from server's time.

Замечание: Microsoft Internet Explorer 4 with Service Pack 1 applied does not correctly deal with cookies that have their path parameter set.

Netscape Communicator 4.05 and Microsoft Internet Explorer 3.x appear to handle cookies incorrectly when the path and time are not set.

See also header(), setrawcookie() and the cookies section.

Пред. | Начало | След.
headers_sent | Уровень выше | setrawcookie


setrawcookie

(PHP 5)

setrawcookie -- Устанавливает cookie без url-кодирования её значения

Описание

bool setrawcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]] )

setrawcookie() работчает точно так же, как и setcookie() за исключением того, что значение cookie не подвергается автоматической обработке функцией urlencode при отправке клиенту.

Смотрите также header(), setcookie() и раздел Cookies.

Пред. | Начало | След.
setcookie | Уровень выше | Hyperwave Functions


Hyperwave Functions

Руководство по PHP
Пред. След.

L. Hyperwave Functions

Введение

Hyperwave has been developed at IICM in Graz. It started with the name Hyper-G and changed to Hyperwave when it was commercialised (in 1996).

Hyperwave is not free software. The current version, 5.5 is available at http://www.hyperwave.com/. A time limited version can be ordered for free (30 days).

See also the Hyperwave API module.

Hyperwave is an information system similar to a database (HIS, Hyperwave Information Server). Its focus is the storage and management of documents. A document can be any possible piece of data that may as well be stored in file. Each document is accompanied by its object record. The object record contains meta data for the document. The meta data is a list of attributes which can be extended by the user. Certain attributes are always set by the Hyperwave server, other may be modified by the user. An attribute is a name/value pair of the form name=value. The complete object record contains as many of those pairs as the user likes. The name of an attribute does not have to be unique, e.g. a title may appear several times within an object record. This makes sense if you want to specify a title in several languages. In such a case there is a convention, that each title value is preceded by the two letter language abbreviation followed by a colon, e.g. 'en:Title in English' or 'ge:Titel in deutsch'. Other attributes like a description or keywords are potential candidates. You may also replace the language abbreviation by any other string as long as it separated by colon from the rest of the attribute value.

Each object record has native a string representation with each name/value pair separated by a newline. The Hyperwave extension also knows a second representation which is an associated array with the attribute name being the key. Multilingual attribute values itself form another associated array with the key being the language abbreviation. Actually any multiple attribute forms an associated array with the string left to the colon in the attribute value being the key. (This is not fully implemented. Only the attributes Title, Description and Keyword are treated properly yet.)

Besides the documents, all hyper links contained in a document are stored as object records as well. Hyper links which are in a document will be removed from it and stored as individual objects, when the document is inserted into the database. The object record of the link contains information about where it starts and where it ends. In order to gain the original document you will have to retrieve the plain document without the links and the list of links and reinsert them. The functions hw_pipedocument() and hw_gettext() do this for you. The advantage of separating links from the document is obvious. Once a document to which a link is pointing to changes its name, the link can easily be modified accordingly. The document containing the link is not affected at all. You may even add a link to a document without modifying the document itself.

Saying that hw_pipedocument() and hw_gettext() do the link insertion automatically is not as simple as it sounds. Inserting links implies a certain hierarchy of the documents. On a web server this is given by the file system, but Hyperwave has its own hierarchy and names do not reflect the position of an object in that hierarchy. Therefore creation of links first of all requires a mapping from the Hyperwave hierarchy and namespace into a web hierarchy respective web namespace. The fundamental difference between Hyperwave and the web is the clear distinction between names and hierarchy in Hyperwave. The name does not contain any information about the objects position in the hierarchy. In the web the name also contains the information on where the object is located in the hierarchy. This leads to two possibles ways of mapping. Either the Hyperwave hierarchy and name of the Hyperwave object is reflected in the URL or the name only. To make things simple the second approach is used. Hyperwave object with name my_object is mapped to http://host/my_object disregarding where it resides in the Hyperwave hierarchy. An object with name parent/my_object could be the child of my_object in the Hyperwave hierarchy, though in a web namespace it appears to be just the opposite and the user might get confused. This can only be prevented by selecting reasonable object names.

Having made this decision a second problem arises. How do you involve PHP? The URL http://host/my_object will not call any PHP script unless you tell your web server to rewrite it to e.g. http://host/php_script/my_object and the script php_script evaluates the $PATH_INFO variable and retrieves the object with name my_object from the Hyperwave server. Their is just one little drawback which can be fixed easily. Rewriting any URL would not allow any access to other document on the web server. A PHP script for searching in the Hyperwave server would be impossible. Therefore you will need at least a second rewriting rule to exclude certain URLs like all e.g. starting with http://host/Hyperwave This is basically sharing of a namespace by the web and Hyperwave server.

Based on the above mechanism links are insert into documents.

It gets more complicated if PHP is not run as a server module or CGI script but as a standalone application e.g. to dump the content of the Hyperwave server on a CD-ROM. In such a case it makes sense to retain the Hyperwave hierarchy and map in onto the file system. This conflicts with the object names if they reflect its own hierarchy (e.g. by choosing names including '/'). Therefore '/' has to be replaced by another character, e.g. '_'.

The network protocol to communicate with the Hyperwave server is called HG-CSP (Hyper-G Client/Server Protocol). It is based on messages to initiate certain actions, e.g. get object record. In early versions of the Hyperwave Server two native clients (Harmony, Amadeus) were provided for communication with the server. Those two disappeared when Hyperwave was commercialised. As a replacement a so called wavemaster was provided. The wavemaster is like a protocol converter from HTTP to HG-CSP. The idea is to do all the administration of the database and visualisation of documents by a web interface. The wavemaster implements a set of placeholders for certain actions to customise the interface. This set of placeholders is called the PLACE Language. PLACE lacks a lot of features of a real programming language and any extension to it only enlarges the list of placeholders. This has led to the use of JavaScript which IMO does not make life easier.

Adding Hyperwave support to PHP should fill in the gap of a missing programming language for interface customisation. It implements all the messages as defined by the HG-CSP but also provides more powerful commands to e.g. retrieve complete documents.

Hyperwave has its own terminology to name certain pieces of information. This has widely been taken over and extended. Almost all functions operate on one of the following data types.

  • object ID: A unique integer value for each object in the Hyperwave server. It is also one of the attributes of the object record (ObjectID). Object ids are often used as an input parameter to specify an object.

  • object record: A string with attribute-value pairs of the form attribute=value. The pairs are separated by a carriage return from each other. An object record can easily be converted into an object array with hw_object2array(). Several functions return object records. The names of those functions end with obj.

  • object array: An associative array with all attributes of an object. The keys are the attribute names. If an attribute occurs more than once in an object record it will result in another indexed or associative array. Attributes which are language depended (like the title, keyword, description) will form an associative array with the keys set to the language abbreviations. All other multiple attributes will form an indexed array. PHP functions never return object arrays.

  • hw_document: This is a complete new data type which holds the actual document, e.g. HTML, PDF etc. It is somewhat optimized for HTML documents but may be used for any format.

Several functions which return an array of object records do also return an associative array with statistical information about them. The array is the last element of the object record array. The statistical array contains the following entries:

Hidden

Number of object records with attribute PresentationHints set to Hidden.

CollectionHead

Number of object records with attribute PresentationHints set to CollectionHead.

FullCollectionHead

Number of object records with attribute PresentationHints set to FullCollectionHead.

CollectionHeadNr

Index in array of object records with attribute PresentationHints set to CollectionHead.

FullCollectionHeadNr

Index in array of object records with attribute PresentationHints set to FullCollectionHead.

Total

Total: Number of object records.

Требования

This extension needs a Hyperwave server downloadable from http://www.hyperwave.com/.

Установка

Это расширение PECL не поставляется вместе с PHP.

In order to use these functions you must compile PHP with Hyperwave support by using the --with-hyperwave[=DIR] configure option.

Windows users will enable php_hyperwave.dll inside of php.ini in order to use these functions. Вы можете скачать DLL этого расширения PECL со страницы PHP Downloads или http://snaps.php.net/.

Integration with Apache

The Hyperwave extension is best used when PHP is compiled as an Apache module. In such a case the underlying Hyperwave server can be hidden from users almost completely if Apache uses its rewriting engine. The following instructions will explain this.

Since PHP with Hyperwave support built into Apache is intended to replace the native Hyperwave solution based on Wavemaster, we will assume that the Apache server will only serve as a Hyperwave web interface for these examples. This is not necessary but it simplifies the configuration. The concept is quite simple. First of all you need a PHP script which evaluates the $_ENV['PATH_INFO'] variable and treats its value as the name of a Hyperwave object. Let's call this script 'Hyperwave'. The URL http://your.hostname/Hyperwave/name_of_object would than return the Hyperwave object with the name 'name_of_object'. Depending on the type of the object the script has to react accordingly. If it is a collection, it will probably return a list of children. If it is a document it will return the mime type and the content. A slight improvement can be achieved if the Apache rewriting engine is used. From the users point of view it would be more straight forward if the URL http://your.hostname/name_of_object would return the object. The rewriting rule is quite easy:

RewriteRule ^/(.*) /usr/local/apache/htdocs/HyperWave/$1 [L]

Now every URL relates to an object in the Hyperwave server. This causes a simple to solve problem. There is no way to execute a different script, e.g. for searching, than the 'Hyperwave' script. This can be fixed with another rewriting rule like the following:

RewriteRule ^/hw/(.*) /usr/local/apache/htdocs/hw/$1 [L]

This will reserve the directory /usr/local/apache/htdocs/hw for additional scripts and other files. Just make sure this rule is evaluated before the one above. There is just a little drawback: all Hyperwave objects whose name starts with 'hw/' will be shadowed. So, make sure you don't use such names. If you need more directories, e.g. for images just add more rules or place them all in one directory. Before you put those instructions, don't forget to turn on the rewriting engine with

RewriteEngine on

You will need scripts:

  • to return the object itself

  • to allow searching

  • to identify yourself

  • to set your profile

  • one for each additional function like to show the object attributes, to show information about users, to show the status of the server, etc.

As an alternative to the Rewrite Engine, you can also consider using the Apache ErrorDocument directive, but be aware, that ErrorDocument redirected pages cannot receive POST data.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Hyperwave configuration options

Name | Default | Changeable | Changelog
hyperwave.allow_persistent | "0" | PHP_INI_SYSTEM | Available since PHP 4.3.2.
hyperwave.default_port | "418" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

HW_ATTR_LANG (integer)

HW_ATTR_NR (integer)

HW_ATTR_NONE (integer)

Todo

There are still some things to do:

  • The hw_InsertDocument has to be split into hw_insertobject() and hw_putdocument().

  • The names of several functions are not fixed, yet.

  • Most functions require the current connection as its first parameter. This leads to a lot of typing, which is quite often not necessary if there is just one open connection. A default connection will improve this.

  • Conversion form object record into object array needs to handle any multiple attribute.

Содержание
hw_Array2Objrec -- Convert attributes from object array to object record
hw_changeobject -- Changes attributes of an object (obsolete)
hw_Children -- Object ids of children
hw_ChildrenObj -- Object records of children
hw_Close -- Closes the Hyperwave connection
hw_Connect -- Opens a connection
hw_connection_info -- Prints information about the connection to Hyperwave server
hw_cp -- Copies objects
hw_Deleteobject -- Deletes object
hw_DocByAnchor -- Object id object belonging to anchor
hw_DocByAnchorObj -- Object record object belonging to anchor
hw_Document_Attributes -- Object record of hw_document
hw_Document_BodyTag -- Body tag of hw_document
hw_Document_Content -- Returns content of hw_document
hw_Document_SetContent -- Sets/replaces content of hw_document
hw_Document_Size -- Size of hw_document
hw_dummy -- Hyperwave dummy function
hw_EditText -- Retrieve text document
hw_Error -- Error number
hw_ErrorMsg -- Returns error message
hw_Free_Document -- Frees hw_document
hw_GetAnchors -- Object ids of anchors of document
hw_GetAnchorsObj -- Object records of anchors of document
hw_GetAndLock -- Return object record and lock object
hw_GetChildColl -- Object ids of child collections
hw_GetChildCollObj -- Object records of child collections
hw_GetChildDocColl -- Object ids of child documents of collection
hw_GetChildDocCollObj -- Object records of child documents of collection
hw_GetObject -- Object record
hw_GetObjectByQuery -- Search object
hw_GetObjectByQueryColl -- Search object in collection
hw_GetObjectByQueryCollObj -- Search object in collection
hw_GetObjectByQueryObj -- Search object
hw_GetParents -- Object ids of parents
hw_GetParentsObj -- Object records of parents
hw_getrellink -- Get link from source to dest relative to rootid
hw_GetRemote -- Gets a remote document
hw_getremotechildren -- Gets children of remote document
hw_GetSrcByDestObj -- Returns anchors pointing at object
hw_GetText -- Retrieve text document
hw_getusername -- Name of currently logged in user
hw_Identify -- Identifies as user
hw_InCollections -- Check if object ids in collections
hw_Info -- Info about connection
hw_InsColl -- Insert collection
hw_InsDoc -- Insert document
hw_insertanchors -- Inserts only anchors into text
hw_InsertDocument -- Upload any document
hw_InsertObject -- Inserts an object record
hw_mapid -- Maps global id on virtual local id
hw_Modifyobject -- Modifies object record
hw_mv -- Moves objects
hw_New_Document -- Create new document
hw_objrec2array -- Convert attributes from object record to object array
hw_Output_Document -- Prints hw_document
hw_pConnect -- Make a persistent database connection
hw_PipeDocument -- Retrieve any document
hw_Root -- Root object id
hw_setlinkroot -- Set the id to which links are calculated
hw_stat -- Returns status string
hw_Unlock -- Unlock object
hw_Who -- List of currently logged in users

Пред. | Начало | След.
setrawcookie | Уровень выше | hw_Array2Objrec


hw_Array2Objrec

(PHP 3 >= 3.0.4, PHP 4, PECL)

hw_Array2Objrec -- Convert attributes from object array to object record

Description

string hw_array2objrec ( array object_array )

Converts an object_array into an object record. Multiple attributes like 'Title' in different languages are treated properly.

See also hw_objrec2array().

Пред. | Начало | След.
Hyperwave Functions | Уровень выше | hw_changeobject


hw_changeobject

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_changeobject -- Changes attributes of an object (obsolete)

Description

bool hw_changeobject ( int link, int objid, array attributes )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
hw_Array2Objrec | Уровень выше | hw_Children


hw_Children

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Children -- Object ids of children

Description

array hw_children ( int connection, int objectID )

Returns an array of object ids. Each id belongs to a child of the collection with ID objectID. The array contains all children both documents and collections.

Пред. | Начало | След.
hw_changeobject | Уровень выше | hw_ChildrenObj


hw_ChildrenObj

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_ChildrenObj -- Object records of children

Description

array hw_childrenobj ( int connection, int objectID )

Returns an array of object records. Each object record belongs to a child of the collection with ID objectID. The array contains all children both documents and collections.

Пред. | Начало | След.
hw_Children | Уровень выше | hw_Close


hw_Close

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Close -- Closes the Hyperwave connection

Description

bool hw_close ( int connection )

Returns FALSE if connection is not a valid connection index, otherwise TRUE. Closes down the connection to a Hyperwave server with the given connection index.

Пред. | Начало | След.
hw_ChildrenObj | Уровень выше | hw_Connect


hw_Connect

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Connect -- Opens a connection

Description

int hw_connect ( string host, int port [, string username, string password] )

Opens a connection to a Hyperwave server and returns a connection index on success, or FALSE if the connection could not be made. Each of the arguments should be a quoted string, except for the port number. The username and password arguments are optional and can be left out. In such a case no identification with the server will be done. It is similar to identify as user anonymous. This function returns a connection index that is needed by other Hyperwave functions. You can have multiple connections open at once. Keep in mind, that the password is not encrypted.

See also hw_pconnect().

Пред. | Начало | След.
hw_Close | Уровень выше | hw_connection_info


hw_connection_info

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_connection_info -- Prints information about the connection to Hyperwave server

Description

void hw_connection_info ( int link )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
hw_Connect | Уровень выше | hw_cp


hw_cp

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_cp -- Copies objects

Description

int hw_cp ( int connection, array object_id_array, int destination_id )

Copies the objects with object ids as specified in the second parameter to the collection with the id destination id.

The value return is the number of copied objects.

See also hw_mv().

Пред. | Начало | След.
hw_connection_info | Уровень выше | hw_Deleteobject


hw_Deleteobject

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Deleteobject -- Deletes object

Description

bool hw_deleteobject ( int connection, int object_to_delete )

Deletes the object with the given object id in the second parameter. It will delete all instances of the object.

Returns TRUE if no error occurs otherwise FALSE.

See also hw_mv().

Пред. | Начало | След.
hw_cp | Уровень выше | hw_DocByAnchor


hw_DocByAnchor

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_DocByAnchor -- Object id object belonging to anchor

Description

int hw_docbyanchor ( int connection, int anchorID )

Returns an th object id of the document to which anchorID belongs.

Пред. | Начало | След.
hw_Deleteobject | Уровень выше | hw_DocByAnchorObj


hw_DocByAnchorObj

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_DocByAnchorObj -- Object record object belonging to anchor

Description

string hw_docbyanchorobj ( int connection, int anchorID )

Returns an th object record of the document to which anchorID belongs.

Пред. | Начало | След.
hw_DocByAnchor | Уровень выше | hw_Document_Attributes


hw_Document_Attributes

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Document_Attributes -- Object record of hw_document

Description

string hw_document_attributes ( int hw_document )

Returns the object record of the document.

For backward compatibility, hw_documentattributes() is also accepted. This is deprecated, however.

See also hw_document_bodytag(), and hw_document_size().

Пред. | Начало | След.
hw_DocByAnchorObj | Уровень выше | hw_Document_BodyTag


hw_Document_BodyTag

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Document_BodyTag -- Body tag of hw_document

Description

string hw_document_bodytag ( int hw_document [, string prefix] )

Returns the BODY tag of the document. If the document is an HTML document the BODY tag should be printed before the document.

See also hw_document_attributes(), and hw_document_size().

For backward compatibility, hw_documentbodytag() is also accepted. This is deprecated, however.

Пред. | Начало | След.
hw_Document_Attributes | Уровень выше | hw_Document_Content


hw_Document_Content

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Document_Content -- Returns content of hw_document

Description

string hw_document_content ( int hw_document )

Returns the content of the document. If the document is an HTML document the content is everything after the BODY tag. Information from the HEAD and BODY tag is in the stored in the object record.

See also hw_document_attributes(),
hw_document_size(),
and hw_document_setcontent().

Пред. | Начало | След.
hw_Document_BodyTag | Уровень выше | hw_Document_SetContent


hw_Document_SetContent

(PHP 4, PECL)

hw_Document_SetContent -- Sets/replaces content of hw_document

Description

bool hw_document_setcontent ( int hw_document, string content )

Sets or replaces the content of the document. If the document is an HTML document the content is everything after the BODY tag. Information from the HEAD and BODY tag is in the stored in the object record. If you provide this information in the content of the document too, the Hyperwave server will change the object record accordingly when the document is inserted. Probably not a very good idea. If this functions fails the document will retain its old content.

See also hw_document_attributes(),
hw_document_size(),
and hw_document_content().

Пред. | Начало | След.
hw_Document_Content | Уровень выше | hw_Document_Size


hw_Document_Size

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Document_Size -- Size of hw_document

Description

int hw_document_size ( int hw_document )

Returns the size in bytes of the document.

See also hw_document_bodytag(), and hw_document_attributes().

For backward compatibility, hw_documentsize() is also accepted. This is deprecated, however.

Пред. | Начало | След.
hw_Document_SetContent | Уровень выше | hw_dummy


hw_dummy

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_dummy -- Hyperwave dummy function

Description

string hw_dummy ( int link, int id, int msgid )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
hw_Document_Size | Уровень выше | hw_EditText


hw_EditText

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_EditText -- Retrieve text document

Description

bool hw_edittext ( int connection, int hw_document )

Uploads the text document to the server. The object record of the document may not be modified while the document is edited. This function will only works for pure text documents. It will not open a special data connection and therefore blocks the control connection during the transfer.

See also hw_pipedocument(),
hw_free_document(),
hw_document_bodytag(),
hw_document_size(),
hw_output_document(), and
hw_gettext().

Пред. | Начало | След.
hw_dummy | Уровень выше | hw_Error


hw_Error

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Error -- Error number

Description

int hw_error ( int connection )

Returns the last error number. If the return value is 0 no error has occurred. The error relates to the last command.

Пред. | Начало | След.
hw_EditText | Уровень выше | hw_ErrorMsg


hw_ErrorMsg

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_ErrorMsg -- Returns error message

Description

string hw_errormsg ( int connection )

Returns a string containing the last error message or 'No Error'. If FALSE is returned, this function failed. The message relates to the last command.

Пред. | Начало | След.
hw_Error | Уровень выше | hw_Free_Document


hw_Free_Document

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Free_Document -- Frees hw_document

Description

bool hw_free_document ( int hw_document )

Frees the memory occupied by the Hyperwave document.

Пред. | Начало | След.
hw_ErrorMsg | Уровень выше | hw_GetAnchors


hw_GetAnchors

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetAnchors -- Object ids of anchors of document

Description

array hw_getanchors ( int connection, int objectID )

Returns an array of object ids with anchors of the document with object ID objectID.

Пред. | Начало | След.
hw_Free_Document | Уровень выше | hw_GetAnchorsObj


hw_GetAnchorsObj

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetAnchorsObj -- Object records of anchors of document

Description

array hw_getanchorsobj ( int connection, int objectID )

Returns an array of object records with anchors of the document with object ID objectID.

Пред. | Начало | След.
hw_GetAnchors | Уровень выше | hw_GetAndLock


hw_GetAndLock

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetAndLock -- Return object record and lock object

Description

string hw_getandlock ( int connection, int objectID )

Returns the object record for the object with ID objectID. It will also lock the object, so other users cannot access it until it is unlocked.

See also hw_unlock(), and hw_getobject().

Пред. | Начало | След.
hw_GetAnchorsObj | Уровень выше | hw_GetChildColl


hw_GetChildColl

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetChildColl -- Object ids of child collections

Description

array hw_getchildcoll ( int connection, int objectID )

Returns an array of object ids. Each object ID belongs to a child collection of the collection with ID objectID. The function will not return child documents.

See also hw_children(), and hw_getchilddoccoll().

Пред. | Начало | След.
hw_GetAndLock | Уровень выше | hw_GetChildCollObj


hw_GetChildCollObj

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetChildCollObj -- Object records of child collections

Description

array hw_getchildcollobj ( int connection, int objectID )

Returns an array of object records. Each object records belongs to a child collection of the collection with ID objectID. The function will not return child documents.

See also hw_childrenobj(), and hw_getchilddoccollobj().

Пред. | Начало | След.
hw_GetChildColl | Уровень выше | hw_GetChildDocColl


hw_GetChildDocColl

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetChildDocColl -- Object ids of child documents of collection

Description

array hw_getchilddoccoll ( int connection, int objectID )

Returns array of object ids for child documents of a collection.

See also hw_children(), and hw_getchildcoll().

Пред. | Начало | След.
hw_GetChildCollObj | Уровень выше | hw_GetChildDocCollObj


hw_GetChildDocCollObj

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetChildDocCollObj -- Object records of child documents of collection

Description

array hw_getchilddoccollobj ( int connection, int objectID )

Returns an array of object records for child documents of a collection.

See also hw_childrenobj(), and hw_getchildcollobj().

Пред. | Начало | След.
hw_GetChildDocColl | Уровень выше | hw_GetObject


hw_GetObject

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetObject -- Object record

Description

mixed hw_getobject ( int connection, mixed objectID [, string query] )

Returns the object record for the object with ID objectID if the second parameter is an integer. If the second parameter is an array of integer the function will return an array of object records. In such a case the last parameter is also evaluated which is a query string.

The query string has the following syntax:

<expr> ::= "(" <expr> ")" |

"!" <expr> | /* NOT */

<expr> "||" <expr> | /* OR */

<expr> "&&" <expr> | /* AND */

<attribute> <operator> <value>

<attribute> ::= /* any attribute name (Title, Author, DocumentType ...) */

<operator> ::= "=" | /* equal */

"<" | /* less than (string compare) */

">" | /* greater than (string compare) */

"~" /* regular expression matching */

The query allows to further select certain objects from the list of given objects. Unlike the other query functions, this query may use not indexed attributes. How many object records are returned depends on the query and if access to the object is allowed.

See also hw_getandlock(), and hw_getobjectbyquery().

Пред. | Начало | След.
hw_GetChildDocCollObj | Уровень выше | hw_GetObjectByQuery


hw_GetObjectByQuery

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetObjectByQuery -- Search object

Description

array hw_getobjectbyquery ( int connection, string query, int max_hits )

Searches for objects on the whole server and returns an array of object ids. The maximum number of matches is limited to max_hits. If max_hits is set to -1 the maximum number of matches is unlimited.

The query will only work with indexed attributes.

See also hw_getobjectbyqueryobj().

Пред. | Начало | След.
hw_GetObject | Уровень выше | hw_GetObjectByQueryColl


hw_GetObjectByQueryColl

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetObjectByQueryColl -- Search object in collection

Description

array hw_getobjectbyquerycoll ( int connection, int objectID, string query, int max_hits )

Searches for objects in collection with ID objectID and returns an array of object ids. The maximum number of matches is limited to max_hits. If max_hits is set to -1 the maximum number of matches is unlimited.

The query will only work with indexed attributes.

See also hw_getobjectbyquerycollobj().

Пред. | Начало | След.
hw_GetObjectByQuery | Уровень выше | hw_GetObjectByQueryCollObj


hw_GetObjectByQueryCollObj

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetObjectByQueryCollObj -- Search object in collection

Description

array hw_getobjectbyquerycollobj ( int connection, int objectID, string query, int max_hits )

Searches for objects in collection with ID objectID and returns an array of object records. The maximum number of matches is limited to max_hits. If max_hits is set to -1 the maximum number of matches is unlimited.

The query will only work with indexed attributes.

See also hw_getobjectbyquerycoll().

Пред. | Начало | След.
hw_GetObjectByQueryColl | Уровень выше | hw_GetObjectByQueryObj


hw_GetObjectByQueryObj

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetObjectByQueryObj -- Search object

Description

array hw_getobjectbyqueryobj ( int connection, string query, int max_hits )

Searches for objects on the whole server and returns an array of object records. The maximum number of matches is limited to max_hits. If max_hits is set to -1 the maximum number of matches is unlimited.

The query will only work with indexed attributes.

See also hw_getobjectbyquery().

Пред. | Начало | След.
hw_GetObjectByQueryCollObj | Уровень выше | hw_GetParents


hw_GetParents

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetParents -- Object ids of parents

Description

array hw_getparents ( int connection, int objectID )

Returns an indexed array of object ids. Each object id belongs to a parent of the object with ID objectID.

Пред. | Начало | След.
hw_GetObjectByQueryObj | Уровень выше | hw_GetParentsObj


hw_GetParentsObj

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetParentsObj -- Object records of parents

Description

array hw_getparentsobj ( int connection, int objectID )

Returns an indexed array of object records plus an associated array with statistical information about the object records. The associated array is the last entry of the returned array. Each object record belongs to a parent of the object with ID objectID.

Пред. | Начало | След.
hw_GetParents | Уровень выше | hw_getrellink


hw_getrellink

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_getrellink -- Get link from source to dest relative to rootid

Description

string hw_getrellink ( int link, int rootid, int sourceid, int destid )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
hw_GetParentsObj | Уровень выше | hw_GetRemote


hw_GetRemote

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetRemote -- Gets a remote document

Description

int hw_getremote ( int connection, int objectID )

Returns a remote document. Remote documents in Hyperwave notation are documents retrieved from an external source. Common remote documents are for example external web pages or queries in a database. In order to be able to access external sources through remote documents Hyperwave introduces the HGI (Hyperwave Gateway Interface) which is similar to the CGI. Currently, only ftp, http-servers and some databases can be accessed by the HGI. Calling hw_getremote() returns the document from the external source. If you want to use this function you should be very familiar with HGIs. You should also consider to use PHP instead of Hyperwave to access external sources. Adding database support by a Hyperwave gateway should be more difficult than doing it in PHP.

See also hw_getremotechildren().

Пред. | Начало | След.
hw_getrellink | Уровень выше | hw_getremotechildren


hw_getremotechildren

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_getremotechildren -- Gets children of remote document

Description

mixed hw_getremotechildren ( int connection, string object_record )

Returns the children of a remote document. Children of a remote document are remote documents itself. This makes sense if a database query has to be narrowed and is explained in Hyperwave Programmers' Guide. If the number of children is 1 the function will return the document itself formatted by the Hyperwave Gateway Interface (HGI). If the number of children is greater than 1 it will return an array of object record with each maybe the input value for another call to hw_getremotechildren(). Those object records are virtual and do not exist in the Hyperwave server, therefore they do not have a valid object ID. How exactly such an object record looks like is up to the HGI. If you want to use this function you should be very familiar with HGIs. You should also consider to use PHP instead of Hyperwave to access external sources. Adding database support by a Hyperwave gateway should be more difficult than doing it in PHP.

See also hw_getremote().

Пред. | Начало | След.
hw_GetRemote | Уровень выше | hw_GetSrcByDestObj


hw_GetSrcByDestObj

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetSrcByDestObj -- Returns anchors pointing at object

Description

array hw_getsrcbydestobj ( int connection, int objectID )

Returns the object records of all anchors pointing to the object with ID objectID. The object can either be a document or an anchor of type destination.

See also hw_getanchors().

Пред. | Начало | След.
hw_getremotechildren | Уровень выше | hw_GetText


hw_GetText

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_GetText -- Retrieve text document

Description

int hw_gettext ( int connection, int objectID [, mixed rootID/prefix] )

Returns the document with object ID objectID. If the document has anchors which can be inserted, they will be inserted already. The optional parameter rootID/prefix can be a string or an integer. If it is an integer it determines how links are inserted into the document. The default is 0 and will result in links that are constructed from the name of the link's destination object. This is useful for web applications. If a link points to an object with name 'internet_movie' the HTML link will be <A HREF="/internet_movie">. The actual location of the source and destination object in the document hierarchy is disregarded. You will have to set up your web browser, to rewrite that URL to for example '/my_script.php3/internet_movie'. 'my_script.php3' will have to evaluate $PATH_INFO and retrieve the document. All links will have the prefix '/my_script.php3/'. If you do not want this you can set the optional parameter rootID/prefix to any prefix which is used instead. Is this case it has to be a string.

If rootID/prefix is an integer and unequal to 0 the link is constructed from all the names starting at the object with the id rootID/prefix separated by a slash relative to the current object. If for example the above document 'internet_movie' is located at 'a-b-c-internet_movie' with '-' being the separator between hierarchy levels on the Hyperwave server and the source document is located at 'a-b-d-source' the resulting HTML link would be: <A HREF="../c/internet_movie">. This is useful if you want to download the whole server content onto disk and map the document hierarchy onto the file system.

This function will only work for pure text documents. It will not open a special data connection and therefore blocks the control connection during the transfer.

See also hw_pipedocument(),
hw_free_document(),
hw_document_bodytag(),
hw_document_size(),
and hw_output_document().

Пред. | Начало | След.
hw_GetSrcByDestObj | Уровень выше | hw_getusername


hw_getusername

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_getusername -- Name of currently logged in user

Description

string hw_getusername ( int connection )

Returns the username of the connection.

Пред. | Начало | След.
hw_GetText | Уровень выше | hw_Identify


hw_Identify

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Identify -- Identifies as user

Description

string hw_identify ( int link, string username, string password )

Identifies as user with username and password. Identification is only valid for the current session. I do not think this function will be needed very often. In most cases it will be easier to identify with the opening of the connection.

See also hw_connect().

Пред. | Начало | След.
hw_getusername | Уровень выше | hw_InCollections


hw_InCollections

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_InCollections -- Check if object ids in collections

Description

array hw_incollections ( int connection, array object_id_array, array collection_id_array, int return_collections )

Checks whether a set of objects (documents or collections) specified by the object_id_array is part of the collections listed in collection_id_array. When the fourth parameter return_collections is 0, the subset of object ids that is part of the collections (i.e., the documents or collections that are children of one or more collections of collection ids or their subcollections, recursively) is returned as an array. When the fourth parameter is 1, however, the set of collections that have one or more objects of this subset as children are returned as an array. This option allows a client to, e.g., highlight the part of the collection hierarchy that contains the matches of a previous query, in a graphical overview.

Пред. | Начало | След.
hw_Identify | Уровень выше | hw_Info


hw_Info

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Info -- Info about connection

Description

string hw_info ( int connection )

Returns information about the current connection. The returned string has the following format: <Serverstring>, <Host>, <Port>, <Username>, <Port of Client>, <Byte swapping>

Пред. | Начало | След.
hw_InCollections | Уровень выше | hw_InsColl


hw_InsColl

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_InsColl -- Insert collection

Description

int hw_inscoll ( int connection, int objectID, array object_array )

Inserts a new collection with attributes as in object_array into collection with object ID objectID.

Пред. | Начало | След.
hw_Info | Уровень выше | hw_InsDoc


hw_InsDoc

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_InsDoc -- Insert document

Description

int hw_insdoc ( resource connection, int parentID, string object_record [, string text] )

Inserts a new document with attributes as in object_record into collection with object ID parentID. This function inserts either an object record only or an object record and a pure ascii text in text if text is given. If you want to insert a general document of any kind use hw_insertdocument() instead.

See also hw_insertdocument(), and hw_inscoll().

Пред. | Начало | След.
hw_InsColl | Уровень выше | hw_insertanchors


hw_insertanchors

(PHP 4 >= 4.0.4, PECL)

hw_insertanchors -- Inserts only anchors into text

Description

bool hw_insertanchors ( int hwdoc, array anchorecs, array dest [, array urlprefixes] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
hw_InsDoc | Уровень выше | hw_InsertDocument


hw_InsertDocument

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_InsertDocument -- Upload any document

Description

int hw_insertdocument ( int connection, int parent_id, int hw_document )

Uploads a document into the collection with parent_id. The document has to be created before with hw_new_document(). Make sure that the object record of the new document contains at least the attributes: Type, DocumentType, Title and Name. Possibly you also want to set the MimeType. The functions returns the object id of the new document or FALSE.

See also hw_pipedocument().

Пред. | Начало | След.
hw_insertanchors | Уровень выше | hw_InsertObject


hw_InsertObject

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_InsertObject -- Inserts an object record

Description

int hw_insertobject ( int connection, string object_rec, string parameter )

Inserts an object into the server. The object can be any valid hyperwave object. See the HG-CSP documentation for a detailed information on how the parameters have to be.

Note: If you want to insert an Anchor, the attribute Position has always been set either to a start/end value or to 'invisible'. Invisible positions are needed if the annotation has no corresponding link in the annotation text.

See also hw_pipedocument(),
hw_insertdocument(),
hw_insdoc(),
and hw_inscoll().

Пред. | Начало | След.
hw_InsertDocument | Уровень выше | hw_mapid


hw_mapid

(PHP 3 >= 3.0.13, PHP 4, PECL)

hw_mapid -- Maps global id on virtual local id

Description

int hw_mapid ( int connection, int server_id, int object_id )

Maps a global object id on any hyperwave server, even those you did not connect to with hw_connect(), onto a virtual object id. This virtual object id can then be used as any other object id, e.g. to obtain the object record with hw_getobject(). The server id is the first part of the global object id (GOid) of the object which is actually the IP number as an integer.

Note: In order to use this function you will have to set the F_DISTRIBUTED flag, which can currently only be set at compile time in hg_comm.c. It is not set by default. Read the comment at the beginning of hg_comm.c

Пред. | Начало | След.
hw_InsertObject | Уровень выше | hw_Modifyobject


hw_Modifyobject

(PHP 3 >= 3.0.7, PHP 4, PECL)

hw_Modifyobject -- Modifies object record

Description

bool hw_modifyobject ( int connection, int object_to_change, array remove, array add [, int mode] )

This command allows to remove, add, or modify individual attributes of an object record. The object is specified by the Object ID object_to_change. The first array remove is a list of attributes to remove. The second array add is a list of attributes to add. In order to modify an attribute one will have to remove the old one and add a new one. hw_modifyobject() will always remove the attributes before it adds attributes unless the value of the attribute to remove is not a string or array.

The last parameter determines if the modification is performed recursively. 1 means recursive modification. If some of the objects cannot be modified they will be skipped without notice. hw_error() may not indicate an error though some of the objects could not be modified.

The keys of both arrays are the attributes name. The value of each array element can either be an array, a string or anything else. If it is an array each attribute value is constructed by the key of each element plus a colon and the value of each element. If it is a string it is taken as the attribute value. An empty string will result in a complete removal of that attribute. If the value is neither a string nor an array but something else, e.g. an integer, no operation at all will be performed on the attribute. This is necessary if you want to add a completely new attribute not just a new value for an existing attribute. If the remove array contained an empty string for that attribute, the attribute would be tried to be removed which would fail since it doesn't exist. The following addition of a new value for that attribute would also fail. Setting the value for that attribute to e.g. 0 would not even try to remove it and the addition will work.

If you would like to change the attribute 'Name' with the current value 'books' into 'articles' you will have to create two arrays and call hw_modifyobject().

Пример 1. modifying an attribute

<?php
       // $connect is an existing connection to the Hyperwave server
       // $objid is the ID of the object to modify
       $remarr = array("Name" => "books");
       $addarr = array("Name" => "articles");
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>
In order to delete/add a name=value pair from/to the object record just pass the remove/add array and set the last/third parameter to an empty array. If the attribute is the first one with that name to add, set attribute value in the remove array to an integer.

Пример 2. adding a completely new attribute

<?php
       // $connect is an existing connection to the Hyperwave server
       // $objid is the ID of the object to modify
       $remarr = array("Name" => 0);
       $addarr = array("Name" => "articles");
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>

Замечание: Multilingual attributes, e.g. 'Title', can be modified in two ways. Either by providing the attributes value in its native form 'language':'title' or by providing an array with elements for each language as described above. The above example would than be:

Пример 3. modifying Title attribute

<?php
       $remarr = array("Title" => "en:Books");
       $addarr = array("Title" => "en:Articles");
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>
or

Пример 4. modifying Title attribute

<?php
       $remarr = array("Title" => array("en" => "Books"));
       $addarr = array("Title" => array("en" => "Articles", "ge"=>"Artikel"));
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>
This removes the English title 'Books' and adds the English title 'Articles' and the German title 'Artikel'.

Пример 5. removing attribute

<?php
       $remarr = array("Title" => "");
       $addarr = array("Title" => "en:Articles");
       $hw_modifyobject($connect, $objid, $remarr, $addarr);
?>

Замечание: This will remove all attributes with the name 'Title' and adds a new 'Title' attribute. This comes in handy if you want to remove attributes recursively.

Замечание: If you need to delete all attributes with a certain name you will have to pass an empty string as the attribute value.

Замечание: Only the attributes 'Title', 'Description' and 'Keyword' will properly handle the language prefix. If those attributes don't carry a language prefix, the prefix 'xx' will be assigned.

Замечание: The 'Name' attribute is somewhat special. In some cases it cannot be complete removed. You will get an error message 'Change of base attribute' (not clear when this happens). Therefore you will always have to add a new Name first and than remove the old one.

Замечание: You may not surround this function by calls to hw_getandlock() and hw_unlock(). hw_modifyobject() does this internally.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
hw_mapid | Уровень выше | hw_mv


hw_mv

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_mv -- Moves objects

Description

int hw_mv ( int connection, array object_id_array, int source_id, int destination_id )

Moves the objects with object ids as specified in the second parameter from the collection with id source_id to the collection with the id destination_id. If the destination id is 0 the objects will be unlinked from the source collection. If this is the last instance of that object it will be deleted. If you want to delete all instances at once, use hw_deleteobject().

The value returned is the number of moved objects.

See also hw_cp(), and hw_deleteobject().

Пред. | Начало | След.
hw_Modifyobject | Уровень выше | hw_New_Document


hw_New_Document

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_New_Document -- Create new document

Description

int hw_new_document ( string object_record, string document_data, int document_size )

Returns a new Hyperwave document with document data set to document_data and object record set to object_record. The length of the document_data has to passed in document_sizeThis function does not insert the document into the Hyperwave server.

See also hw_free_document(),
hw_document_size(),
hw_document_bodytag(),
hw_output_document(),
and hw_insertdocument().

Пред. | Начало | След.
hw_mv | Уровень выше | hw_objrec2array


hw_objrec2array

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_objrec2array -- Convert attributes from object record to object array

Description

array hw_objrec2array ( string object_record [, array format] )

Converts an object_record into an object array. The keys of the resulting array are the attributes names. Multi-value attributes like 'Title' in different languages form its own array. The keys of this array are the left part to the colon of the attribute value. This left part must be two characters long. Other multi-value attributes without a prefix form an indexed array. If the optional parameter is missing the attributes 'Title', 'Description' and 'Keyword' are treated as language attributes and the attributes 'Group', 'Parent' and 'HtmlAttr' as non-prefixed multi-value attributes. By passing an array holding the type for each attribute you can alter this behaviour. The array is an associated array with the attribute name as its key and the value being one of HW_ATTR_LANG or HW_ATTR_NONE.

See also hw_array2objrec().

Пред. | Начало | След.
hw_New_Document | Уровень выше | hw_Output_Document


hw_Output_Document

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Output_Document -- Prints hw_document

Description

bool hw_output_document ( int hw_document )

Prints the document without the BODY tag.

For backward compatibility, hw_outputdocument() is also accepted. This is deprecated, however.

Пред. | Начало | След.
hw_objrec2array | Уровень выше | hw_pConnect


hw_pConnect

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_pConnect -- Make a persistent database connection

Description

int hw_pconnect ( string host, int port [, string username, string password] )

Returns a connection index on success, or FALSE if the connection could not be made. Opens a persistent connection to a Hyperwave server. Each of the arguments should be a quoted string, except for the port number. The username and password arguments are optional and can be left out. In such a case no identification with the server will be done. It is similar to identify as user anonymous. This function returns a connection index that is needed by other Hyperwave functions. You can have multiple persistent connections open at once.

See also hw_connect().

Пред. | Начало | След.
hw_Output_Document | Уровень выше | hw_PipeDocument


hw_PipeDocument

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_PipeDocument -- Retrieve any document

Description

int hw_pipedocument ( int connection, int objectID [, array url_prefixes] )

Returns the Hyperwave document with object ID objectID. If the document has anchors which can be inserted, they will have been inserted already. The document will be transferred via a special data connection which does not block the control connection.

See also hw_gettext() for more on link insertion,
hw_free_document(),
hw_document_size(),
hw_document_bodytag(),
and hw_output_document().

Пред. | Начало | След.
hw_pConnect | Уровень выше | hw_Root


hw_Root

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Root -- Root object id

Description

int hw_root ( )

Returns the object ID of the hyperroot collection. Currently this is always 0. The child collection of the hyperroot is the root collection of the connected server.

Пред. | Начало | След.
hw_PipeDocument | Уровень выше | hw_setlinkroot


hw_setlinkroot

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_setlinkroot -- Set the id to which links are calculated

Description

int hw_setlinkroot ( int link, int rootid )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
hw_Root | Уровень выше | hw_stat


hw_stat

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_stat -- Returns status string

Description

string hw_stat ( int link )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
hw_setlinkroot | Уровень выше | hw_Unlock


hw_Unlock

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Unlock -- Unlock object

Description

bool hw_unlock ( int connection, int objectID )

Unlocks a document, so other users regain access.

See also hw_getandlock().

Пред. | Начало | След.
hw_stat | Уровень выше | hw_Who


hw_Who

(PHP 3 >= 3.0.3, PHP 4, PECL)

hw_Who -- List of currently logged in users

Description

array hw_who ( int connection )

Returns an array of users currently logged into the Hyperwave server. Each entry in this array is an array itself containing the elements id, name, system, onSinceDate, onSinceTime, TotalTime and self. 'self' is 1 if this entry belongs to the user who initiated the request.

Пред. | Начало | След.
hw_Unlock | Уровень выше | Hyperwave API Functions


Hyperwave API Functions

Руководство по PHP
Пред. След.

LI. Hyperwave API Functions

Введение

Hyperwave has been developed at IICM in Graz. It started with the name Hyper-G and changed to Hyperwave when it was commercialised (in 1996).

Hyperwave is not free software. The current version, 5.5, is available at http://www.hyperwave.com/. A time limited version can be ordered for free (30 days).

See also the Hyperwave module.

Hyperwave is an information system similar to a database (HIS, Hyperwave Information Server). Its focus is the storage and management of documents. A document can be any possible piece of data that may as well be stored in file. Each document is accompanied by its object record. The object record contains meta data for the document. The meta data is a list of attributes which can be extended by the user. Certain attributes are always set by the Hyperwave server, other may be modified by the user.

Требования

Since 2001 there is a Hyperwave SDK available. It supports Java, JavaScript and C++. This PHP Extension is based on the C++ interface. In order to activate the hwapi support in PHP you will have to install the Hyperwave SDK first.

Установка

After installing the Hyperwave SDK, configure PHP with --with-hwapi[=DIR].

Integration with Apache

The integration with Apache and possible other servers is already described in the Hyperwave module which has been the first extension to connect a Hyperwave Server.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Hyperwave API configuration options

Name | Default | Changeable | Changelog
hwapi.allow_persistent | "0" | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Classes

The API provided by the HW_API extension is fully object oriented. It is very similar to the C++ interface of the Hyperwave SDK. It consist of the following classes.

  • HW_API

  • HW_API_Object

  • HW_API_Attribute

  • HW_API_Error

  • HW_API_Content

  • HW_API_Reason

Some basic classes like HW_API_String, HW_API_String_Array, etc., which exist in the Hyperwave SDK have not been implemented since PHP has powerful replacements for them.

Each class has certain method, whose names are identical to its counterparts in the Hyperwave SDK. Passing arguments to this function differs from all the other PHP extensions but is close to the C++ API of the HW SDK. Instead of passing several parameters they are all put into an associated array and passed as one parameter. The names of the keys are identical to those documented in the HW SDK. The common parameters are listed below. If other parameters are required they will be documented if needed.

  • objectIdentifier The name or id of an object, e.g. "rootcollection", "0x873A8768 0x00000002".

  • parentIdentifier The name or id of an object which is considered to be a parent.

  • object An instance of class HW_API_Object.

  • parameters An instance of class HW_API_Object.

  • version The version of an object.

  • mode An integer value determine the way an operation is executed.

  • attributeSelector Any array of strings, each containing a name of an attribute. This is used if you retrieve the object record and want to include certain attributes.

  • objectQuery A query to select certain object out of a list of objects. This is used to reduce the number of objects which was delivered by a function like hw_api->children() or hw_api->find().

Замечание: Methods returning boolean can return TRUE, FALSE or HW_API_Error object.

Содержание
hw_api_attribute->key -- Returns key of the attribute
hw_api_attribute->langdepvalue -- Returns value for a given language
hw_api_attribute->value -- Returns value of the attribute
hw_api_attribute->values -- Returns all values of the attribute
hw_api_attribute -- Creates instance of class hw_api_attribute
hw_api->checkin -- Checks in an object
hw_api->checkout -- Checks out an object
hw_api->children -- Returns children of an object
hw_api_content->mimetype -- Returns mimetype
hw_api_content->read -- Read content
hw_api->content -- Returns content of an object
hw_api->copy -- Copies physically
hw_api->dbstat -- Returns statistics about database server
hw_api->dcstat -- Returns statistics about document cache server
hw_api->dstanchors -- Returns a list of all destination anchors
hw_api->dstofsrcanchor -- Returns destination of a source anchor
hw_api_error->count -- Returns number of reasons
hw_api_error->reason -- Returns reason of error
hw_api->find -- Search for objects
hw_api->ftstat -- Returns statistics about fulltext server
hwapi_hgcsp -- Returns object of class hw_api
hw_api->hwstat -- Returns statistics about Hyperwave server
hw_api->identify -- Log into Hyperwave Server
hw_api->info -- Returns information about server configuration
hw_api->insert -- Inserts a new object
hw_api->insertanchor -- Inserts a new object of type anchor
hw_api->insertcollection -- Inserts a new object of type collection
hw_api->insertdocument -- Inserts a new object of type document
hw_api->link -- Creates a link to an object
hw_api->lock -- Locks an object
hw_api->move -- Moves object between collections
hw_api_content -- Create new instance of class hw_api_content
hw_api_object->assign -- Clones object
hw_api_object->attreditable -- Checks whether an attribute is editable
hw_api_object->count -- Returns number of attributes
hw_api_object->insert -- Inserts new attribute
hw_api_object -- Creates a new instance of class hw_api_object
hw_api_object->remove -- Removes attribute
hw_api_object->title -- Returns the title attribute
hw_api_object->value -- Returns value of attribute
hw_api->object -- Retrieve attribute information
hw_api->objectbyanchor -- Returns the object an anchor belongs to
hw_api->parents -- Returns parents of an object
hw_api_reason->description -- Returns description of reason
hw_api_reason->type -- Returns type of reason
hw_api->remove -- Delete an object
hw_api->replace -- Replaces an object
hw_api->setcommittedversion -- Commits version other than last version
hw_api->srcanchors -- Returns a list of all source anchors
hw_api->srcsofdst -- Returns source of a destination object
hw_api->unlock -- Unlocks a locked object
hw_api->user -- Returns the own user object
hw_api->userlist -- Returns a list of all logged in users

Пред. | Начало | След.
hw_Who | Уровень выше | hw_api_attribute->key


hw_api_attribute->key

(no version information, might be only in CVS)

hw_api_attribute->key -- Returns key of the attribute

Description

string hw_api_attribute->key ( void )

Returns the name of the attribute.

See also hwapi_attribute_value().

Пред. | Начало | След.
Hyperwave API Functions | Уровень выше | hw_api_attribute->langdepvalue


hw_api_attribute->langdepvalue

(no version information, might be only in CVS)

hw_api_attribute->langdepvalue -- Returns value for a given language

Description

string hw_api_attribute->langdepvalue ( string language )

Returns the value in the given language of the attribute.

See also hwapi_attribute_value().

Пред. | Начало | След.
hw_api_attribute->key | Уровень выше | hw_api_attribute->value


hw_api_attribute->value

(no version information, might be only in CVS)

hw_api_attribute->value -- Returns value of the attribute

Description

string hw_api_attribute->value ( void )

Returns the value of the attribute.

See also hwapi_attribute_key(), hwapi_attribute_values().

Пред. | Начало | След.
hw_api_attribute->langdepvalue | Уровень выше | hw_api_attribute->values


hw_api_attribute->values

(no version information, might be only in CVS)

hw_api_attribute->values -- Returns all values of the attribute

Description

array hw_api_attribute->values ( void )

Returns all values of the attribute as an array of strings.

See also hwapi_attribute_value().

Пред. | Начало | След.
hw_api_attribute->value | Уровень выше | hw_api_attribute


hw_api_attribute

(no version information, might be only in CVS)

hw_api_attribute -- Creates instance of class hw_api_attribute

Description

HW_API_Attribute hw_api_attribute ( [string name [, string value]] )

Creates a new instance of hw_api_attribute with the given name and value.

Пред. | Начало | След.
hw_api_attribute->values | Уровень выше | hw_api->checkin


hw_api->checkin

(no version information, might be only in CVS)

hw_api->checkin -- Checks in an object

Description

bool hw_api->checkin ( array parameter )

This function checks in an object or a whole hierarchy of objects. The parameters array contains the required element 'objectIdentifier' and the optional element 'version', 'comment', 'mode' and 'objectQuery'. 'version' sets the version of the object. It consists of the major and minor version separated by a period. If the version is not set, the minor version is incremented. 'mode' can be one of the following values:

HW_API_CHECKIN_NORMAL

Checks in and commits the object. The object must be a document.

HW_API_CHECKIN_RECURSIVE

If the object to check in is a collection, all children will be checked in recursively if they are documents. Trying to check in a collection would result in an error.

HW_API_CHECKIN_FORCE_VERSION_CONTROL

Checks in an object even if it is not under version control.

HW_API_CHECKIN_REVERT_IF_NOT_CHANGED

Check if the new version is different from the last version. Unless this is the case the object will be checked in.

HW_API_CHECKIN_KEEP_TIME_MODIFIED

Keeps the time modified from the most recent object.

HW_API_CHECKIN_NO_AUTO_COMMIT

The object is not automatically committed on check-in.

See also hwapi_checkout().

Пред. | Начало | След.
hw_api_attribute | Уровень выше | hw_api->checkout


hw_api->checkout

(no version information, might be only in CVS)

hw_api->checkout -- Checks out an object

Description

bool hw_api->checkout ( array parameter )

This function checks out an object or a whole hierarchy of objects. The parameters array contains the required element 'objectIdentifier' and the optional element 'version', 'mode' and 'objectQuery'. 'mode' can be one of the following values:

HW_API_CHECKIN_NORMAL

Checks out an object. The object must be a document.

HW_API_CHECKIN_RECURSIVE

If the object to check out is a collection, all children will be checked out recursively if they are documents. Trying to check out a collection would result in an error.

See also hwapi_checkin().

Пред. | Начало | След.
hw_api->checkin | Уровень выше | hw_api->children


hw_api->children

(no version information, might be only in CVS)

hw_api->children -- Returns children of an object

Description

array hw_api->children ( array parameter )

Retrieves the children of a collection or the attributes of a document. The children can be further filtered by specifying an object query. The parameter array contains the required elements 'objectIdentifier' and the optional elements 'attributeSelector' and 'objectQuery'.

The return value is an array of objects of type HW_API_Object or HW_API_Error.

See also hwapi_parents().

Пред. | Начало | След.
hw_api->checkout | Уровень выше | hw_api_content->mimetype


hw_api_content->mimetype

(no version information, might be only in CVS)

hw_api_content->mimetype -- Returns mimetype

Description

string hw_api_content->mimetype ( void )

Returns the mimetype of the content.

Пред. | Начало | След.
hw_api->children | Уровень выше | hw_api_content->read


hw_api_content->read

(no version information, might be only in CVS)

hw_api_content->read -- Read content

Description

string hw_api_content->read ( string buffer, int len )

Reads len bytes from the content into the given buffer.

Пред. | Начало | След.
hw_api_content->mimetype | Уровень выше | hw_api->content


hw_api->content

(no version information, might be only in CVS)

hw_api->content -- Returns content of an object

Description

HW_API_Content hw_api->content ( array parameter )

This function returns the content of a document as an object of type hw_api_content. The parameter array contains the required elements 'objectidentifier' and the optional element 'mode'. The mode can be one of the constants HW_API_CONTENT_ALLLINKS, HW_API_CONTENT_REACHABLELINKS or HW_API_CONTENT_PLAIN. HW_API_CONTENT_ALLLINKS means to insert all anchors even if the destination is not reachable. HW_API_CONTENT_REACHABLELINKS tells hw_api_content() to insert only reachable links and HW_API_CONTENT_PLAIN will lead to document without any links.

Пред. | Начало | След.
hw_api_content->read | Уровень выше | hw_api->copy


hw_api->copy

(no version information, might be only in CVS)

hw_api->copy -- Copies physically

Description

hw_api_object hw_api->copy ( array parameter )

This function will make a physical copy including the content if it exists and returns the new object or an error object. The parameter array contains the required elements 'objectIdentifier' and 'destinationParentIdentifier'. The optional parameter is 'attributeSelector'`

See also hwapi_move(), hwapi_link().

Пред. | Начало | След.
hw_api->content | Уровень выше | hw_api->dbstat


hw_api->dbstat

(no version information, might be only in CVS)

hw_api->dbstat -- Returns statistics about database server

Description

hw_api_object hw_api->dbstat ( array parameter )

See also hwapi_dcstat(),
         hwapi_hwstat(),
         hwapi_ftstat().

Пред. | Начало | След.
hw_api->copy | Уровень выше | hw_api->dcstat


hw_api->dcstat

(no version information, might be only in CVS)

hw_api->dcstat -- Returns statistics about document cache server

Description

hw_api_object hw_api->dcstat ( array parameter )

See also hwapi_hwstat(),
         hwapi_dbstat(),
         hwapi_ftstat().

Пред. | Начало | След.
hw_api->dbstat | Уровень выше | hw_api->dstanchors


hw_api->dstanchors

(no version information, might be only in CVS)

hw_api->dstanchors -- Returns a list of all destination anchors

Description

array hw_api->dstanchors ( array parameter )

Retrieves all destination anchors of an object. The parameter array contains the required element 'objectIdentifier' and the optional elements 'attributeSelector' and 'objectQuery'.

See also hwapi_srcanchors().

Пред. | Начало | След.
hw_api->dcstat | Уровень выше | hw_api->dstofsrcanchor


hw_api->dstofsrcanchor

(no version information, might be only in CVS)

hw_api->dstofsrcanchor -- Returns destination of a source anchor

Description

hw_api_object hw_api->dstofsrcanchor ( array parameter )

Retrieves the destination object pointed by the specified source anchors. The destination object can either be a destination anchor or a whole document. The parameters array contains the required element 'objectIdentifier' and the optional element 'attributeSelector'.

See also hwapi_srcanchors(),
         hwapi_dstanchors(),
         hwapi_objectbyanchor().

Пред. | Начало | След.
hw_api->dstanchors | Уровень выше | hw_api_error->count


hw_api_error->count

(no version information, might be only in CVS)

hw_api_error->count -- Returns number of reasons

Description

int hw_api_error->count ( void )

Returns the number of error reasons.

See also hwapi_error_reason().

Пред. | Начало | След.
hw_api->dstofsrcanchor | Уровень выше | hw_api_error->reason


hw_api_error->reason

(no version information, might be only in CVS)

hw_api_error->reason -- Returns reason of error

Description

HW_API_Reason hw_api_error->reason ( void )

Returns the first error reason.

See also hwapi_error_count().

Пред. | Начало | След.
hw_api_error->count | Уровень выше | hw_api->find


hw_api->find

(no version information, might be only in CVS)

hw_api->find -- Search for objects

Description

array hw_api->find ( array parameter )

This functions searches for objects either by executing a key or/and full text query. The found objects can further be filtered by an optional object query. They are sorted by their importance. The second search operation is relatively slow and its result can be limited to a certain number of hits. This allows to perform an incremental search, each returning just a subset of all found documents, starting at a given index. The parameter array contains the 'keyquery' or/and 'fulltextquery' depending on who you would like to search. Optional parameters are 'objectquery', 'scope', 'languages' and 'attributeselector'. In case of an incremental search the optional parameters 'startIndex', numberOfObjectsToGet' and 'exactMatchUnit' can be passed.

Пред. | Начало | След.
hw_api_error->reason | Уровень выше | hw_api->ftstat


hw_api->ftstat

(no version information, might be only in CVS)

hw_api->ftstat -- Returns statistics about fulltext server

Description

hw_api_object hw_api->ftstat ( array parameter )

See also hwapi_dcstat(),
         hwapi_dbstat(),
         hwapi_hwstat().

Пред. | Начало | След.
hw_api->find | Уровень выше | hwapi_hgcsp


hwapi_hgcsp

(no version information, might be only in CVS)

hwapi_hgcsp -- Returns object of class hw_api

Description

HW_API hwapi_hgcsp ( string hostname [, int port] )

Opens a connection to the Hyperwave server on host hostname. The protocol used is HGCSP. If you do not pass a port number, 418 is used.

See also hwapi_hwtp().

Пред. | Начало | След.
hw_api->ftstat | Уровень выше | hw_api->hwstat


hw_api->hwstat

(no version information, might be only in CVS)

hw_api->hwstat -- Returns statistics about Hyperwave server

Description

hw_api_object hw_api->hwstat ( array parameter )

See also hwapi_dcstat(),
         hwapi_dbstat(),
         hwapi_ftstat().

Пред. | Начало | След.
hwapi_hgcsp | Уровень выше | hw_api->identify


hw_api->identify

(no version information, might be only in CVS)

hw_api->identify -- Log into Hyperwave Server

Description

bool hw_api->identify ( array parameter )

Logs into the Hyperwave Server. The parameter array must contain the elements 'username' and 'password'.

The return value will be an object of type HW_API_Error if identification failed or TRUE if it was successful.

Пред. | Начало | След.
hw_api->hwstat | Уровень выше | hw_api->info


hw_api->info

(no version information, might be only in CVS)

hw_api->info -- Returns information about server configuration

Description

array hw_api->info ( array parameter )

See also hwapi_dcstat(),
         hwapi_dbstat(),
         hwapi_ftstat(),
         hwapi_hwstat().

Пред. | Начало | След.
hw_api->identify | Уровень выше | hw_api->insert


hw_api->insert

(no version information, might be only in CVS)

hw_api->insert -- Inserts a new object

Description

hw_api_object hw_api->insert ( array parameter )

Insert a new object. The object type can be user, group, document or anchor. Depending on the type other object attributes has to be set. The parameter array contains the required elements 'object' and 'content' (if the object is a document) and the optional parameters 'parameters', 'mode' and 'attributeSelector'. The 'object' must contain all attributes of the object. 'parameters' is an object as well holding further attributes like the destination (attribute key is 'Parent'). 'content' is the content of the document. 'mode' can be a combination of the following flags:

HW_API_INSERT_NORMAL

The object in inserted into the server.

HW_API_INSERT_FORCE_VERSION_CONTROL

HW_API_INSERT_AUTOMATIC_CHECKOUT

HW_API_INSERT_PLAIN

HW_API_INSERT_KEEP_TIME_MODIFIED

HW_API_INSERT_DELAY_INDEXING

See also hwapi_replace().

Пред. | Начало | След.
hw_api->info | Уровень выше | hw_api->insertanchor


hw_api->insertanchor

(no version information, might be only in CVS)

hw_api->insertanchor -- Inserts a new object of type anchor

Description

hw_api_object hw_api->insertanchor ( array parameter )

This function is a shortcut for hwapi_insert(). It inserts an object of type anchor and sets some of the attributes required for an anchor. The parameter array contains the required elements 'object' and 'documentIdentifier' and the optional elements 'destinationIdentifier', 'parameter', 'hint' and 'attributeSelector'. The 'documentIdentifier' specifies the document where the anchor shall be inserted. The target of the anchor is set in 'destinationIdentifier' if it already exists. If the target does not exists the element 'hint' has to be set to the name of object which is supposed to be inserted later. Once it is inserted the anchor target is resolved automatically.

See also hwapi_insertdocument(),
         hwapi_insertcollection(),
         hwapi_insert().

Пред. | Начало | След.
hw_api->insert | Уровень выше | hw_api->insertcollection


hw_api->insertcollection

(no version information, might be only in CVS)

hw_api->insertcollection -- Inserts a new object of type collection

Description

hw_api_object hw_api->insertcollection ( array parameter )

This function is a shortcut for hwapi_insert(). It inserts an object of type collection and sets some of the attributes required for a collection. The parameter array contains the required elements 'object' and 'parentIdentifier' and the optional elements 'parameter' and 'attributeSelector'. See hwapi_insert() for the meaning of each element.

See also hwapi_insertdocument(),
         hwapi_insertanchor(),
         hwapi_insert().

Пред. | Начало | След.
hw_api->insertanchor | Уровень выше | hw_api->insertdocument


hw_api->insertdocument

(no version information, might be only in CVS)

hw_api->insertdocument -- Inserts a new object of type document

Description

hw_api_object hw_api->insertdocument ( array parameter )

This function is a shortcut for hwapi_insert(). It inserts an object with content and sets some of the attributes required for a document. The parameter array contains the required elements 'object', 'parentIdentifier' and 'content' and the optional elements 'mode', 'parameter' and 'attributeSelector'. See hwapi_insert() for the meaning of each element.

See also hwapi_insert()
         hwapi_insertanchor(),
         hwapi_insertcollection().

Пред. | Начало | След.
hw_api->insertcollection | Уровень выше | hw_api->link


hw_api->link

(no version information, might be only in CVS)

hw_api->link -- Creates a link to an object

Description

bool hw_api->link ( array parameter )

Creates a link to an object. Accessing this link is like accessing the object to links points to. The parameter array contains the required elements 'objectIdentifier' and 'destinationParentIdentifier'. 'destinationParentIdentifier' is the target collection.

The function returns TRUE on success or an error object.

See also hwapi_copy().

Пред. | Начало | След.
hw_api->insertdocument | Уровень выше | hw_api->lock


hw_api->lock

(no version information, might be only in CVS)

hw_api->lock -- Locks an object

Description

bool hw_api->lock ( array parameter )

Locks an object for exclusive editing by the user calling this function. The object can be only unlocked by this user or the system user. The parameter array contains the required element 'objectIdentifier' and the optional parameters 'mode' and 'objectquery'. 'mode' determines how an object is locked. HW_API_LOCK_NORMAL means, an object is locked until it is unlocked. HW_API_LOCK_RECURSIVE is only valid for collection and locks all objects within the collection and possible subcollections. HW_API_LOCK_SESSION means, an object is locked only as long as the session is valid.

See also hwapi_unlock().

Пред. | Начало | След.
hw_api->link | Уровень выше | hw_api->move


hw_api->move

(no version information, might be only in CVS)

hw_api->move -- Moves object between collections

Description

bool hw_api->move ( array parameter )

See also hw_objrec2array().

Пред. | Начало | След.
hw_api->lock | Уровень выше | hw_api_content


hw_api_content

(no version information, might be only in CVS)

hw_api_content -- Create new instance of class hw_api_content

Description

HW_API_Content hw_api_content ( string content, string mimetype )

Creates a new content object from the string content. The mimetype is set to mimetype.

Пред. | Начало | След.
hw_api->move | Уровень выше | hw_api_object->assign


hw_api_object->assign

(no version information, might be only in CVS)

hw_api_object->assign -- Clones object

Description

bool hw_api_object->assign ( array parameter )

Clones the attributes of an object.

Пред. | Начало | След.
hw_api_content | Уровень выше | hw_api_object->attreditable


hw_api_object->attreditable

(no version information, might be only in CVS)

hw_api_object->attreditable -- Checks whether an attribute is editable

Description

bool hw_api_object->attreditable ( array parameter )

Пред. | Начало | След.
hw_api_object->assign | Уровень выше | hw_api_object->count


hw_api_object->count

(no version information, might be only in CVS)

hw_api_object->count -- Returns number of attributes

Description

int hw_api_object->count ( array parameter )

Пред. | Начало | След.
hw_api_object->attreditable | Уровень выше | hw_api_object->insert


hw_api_object->insert

(no version information, might be only in CVS)

hw_api_object->insert -- Inserts new attribute

Description

bool hw_api_object->insert ( HW_API_Attribute attribute )

Adds an attribute to the object. Returns TRUE on success and otherwise FALSE.

See also hwapi_object_remove().

Пред. | Начало | След.
hw_api_object->count | Уровень выше | hw_api_object


hw_api_object

(no version information, might be only in CVS)

hw_api_object -- Creates a new instance of class hw_api_object

Description

hw_api_object hw_api_object ( array parameter )

See also hwapi_lock().

Пред. | Начало | След.
hw_api_object->insert | Уровень выше | hw_api_object->remove


hw_api_object->remove

(no version information, might be only in CVS)

hw_api_object->remove -- Removes attribute

Description

bool hw_api_object->remove ( string name )

Removes the attribute with the given name. Returns TRUE on success and otherwise FALSE.

See also hwapi_object_insert().

Пред. | Начало | След.
hw_api_object | Уровень выше | hw_api_object->title


hw_api_object->title

(no version information, might be only in CVS)

hw_api_object->title -- Returns the title attribute

Description

string hw_api_object->title ( array parameter )

Пред. | Начало | След.
hw_api_object->remove | Уровень выше | hw_api_object->value


hw_api_object->value

(no version information, might be only in CVS)

hw_api_object->value -- Returns value of attribute

Description

string hw_api_object->value ( string name )

Returns the value of the attribute with the given name or FALSE if an error occurred.

Пред. | Начало | След.
hw_api_object->title | Уровень выше | hw_api->object


hw_api->object

(no version information, might be only in CVS)

hw_api->object -- Retrieve attribute information

Description

hw_api_object hw_api->object ( array parameter )

This function retrieves the attribute information of an object of any version. It will not return the document content. The parameter array contains the required elements 'objectIdentifier' and the optional elements 'attributeSelector' and 'version'.

The returned object is an instance of class HW_API_Object on success or HW_API_Error if an error occurred.

This simple example retrieves an object and checks for errors.

Пример 1. Retrieve an object

<?php
function handle_error($error)
{
  $reason = $error->reason(0);
  echo "Type: <b>";
  switch ($reason->type()) {
    case 0:
      echo "Error";
      break;
    case 1:
      echo "Warning";
      break;
    case 2:
      echo "Message";
      break;
  }
  echo "</b><br />\n";
  echo "Description: " . $reason->description("en") . "<br />\n";
}

function list_attr($obj)
{
  echo "<table>\n";
  $count = $obj->count();
  for ($i=0; $i<$count; $i++) {
    $attr = $obj->attribute($i);
    printf("<tr><td align=\"right\" bgcolor=\"#c0c0c0\"><b>%s</b></td><td bgcolor=\"#F0F0F0\">%s</td></tr>\n",
             $attr->key(), $attr->value());
  }
  echo "</table>\n";
}

$hwapi = hwapi_hgcsp($g_config[HOSTNAME]);
$parms = array("objectIdentifier"=>"rootcollection", "attributeSelector"=>array("Title", "Name", "DocumentType"));
$root = $hwapi->object($parms);
if (get_class($root) == "HW_API_Error") {
  handle_error($root);
  exit;
}
list_attr($root);
?>

See also hwapi_content().

Пред. | Начало | След.
hw_api_object->value | Уровень выше | hw_api->objectbyanchor


hw_api->objectbyanchor

(no version information, might be only in CVS)

hw_api->objectbyanchor -- Returns the object an anchor belongs to

Description

hw_api_object hw_api->objectbyanchor ( array parameter )

This function retrieves an object the specified anchor belongs to. The parameter array contains the required element 'objectIdentifier' and the optional element 'attributeSelector'.

See also hwapi_dstofsrcanchor(),
         hwapi_srcanchors(),
         hwapi_dstanchors().

Пред. | Начало | След.
hw_api->object | Уровень выше | hw_api->parents


hw_api->parents

(no version information, might be only in CVS)

hw_api->parents -- Returns parents of an object

Description

array hw_api->parents ( array parameter )

Retrieves the parents of an object. The parents can be further filtered by specifying an object query. The parameter array contains the required elements 'objectidentifier' and the optional elements 'attributeselector' and 'objectquery'.

The return value is an array of objects of type HW_API_Object or HW_API_Error.

See also hwapi_children().

Пред. | Начало | След.
hw_api->objectbyanchor | Уровень выше | hw_api_reason->description


hw_api_reason->description

(no version information, might be only in CVS)

hw_api_reason->description -- Returns description of reason

Description

string hw_api_reason->description ( void )

Returns the description of a reason

Пред. | Начало | След.
hw_api->parents | Уровень выше | hw_api_reason->type


hw_api_reason->type

(no version information, might be only in CVS)

hw_api_reason->type -- Returns type of reason

Description

HW_API_Reason hw_api_reason->type ( void )

Returns the type of a reason.

Пред. | Начало | След.
hw_api_reason->description | Уровень выше | hw_api->remove


hw_api->remove

(no version information, might be only in CVS)

hw_api->remove -- Delete an object

Description

bool hw_api->remove ( array parameter )

Removes an object from the specified parent. Collections will be removed recursively. You can pass an optional object query to remove only those objects which match the query. An object will be deleted physically if it is the last instance. The parameter array contains the required elements 'objectidentifier' and 'parentidentifier'. If you want to remove a user or group 'parentidentifier' can be skipped. The optional parameter 'mode' determines how the deletion is performed. In normal mode the object will not be removed physically until all instances are removed. In physical mode all instances of the object will be deleted immediately. In removelinks mode all references to and from the objects will be deleted as well. In nonrecursive the deletion is not performed recursive. Removing a collection which is not empty will cause an error.

See also hwapi_move().

Пред. | Начало | След.
hw_api_reason->type | Уровень выше | hw_api->replace


hw_api->replace

(no version information, might be only in CVS)

hw_api->replace -- Replaces an object

Description

hw_api_object hw_api->replace ( array parameter )

Replaces the attributes and the content of an object The parameter array contains the required elements 'objectIdentifier' and 'object' and the optional parameters 'content', 'parameters', 'mode' and 'attributeSelector'. 'objectIdentifier' contains the object to be replaced. 'object' contains the new object. 'content' contains the new content. 'parameters' contain extra information for HTML documents. HTML_Language is the letter abbreviation of the language of the title. HTML_Base sets the base attribute of the HTML document. 'mode' can be a combination of the following flags:

HW_API_REPLACE_NORMAL

The object on the server is replace with the object passed.

HW_API_REPLACE_FORCE_VERSION_CONTROL

HW_API_REPLACE_AUTOMATIC_CHECKOUT

HW_API_REPLACE_AUTOMATIC_CHECKIN

HW_API_REPLACE_PLAIN

HW_API_REPLACE_REVERT_IF_NOT_CHANGED

HW_API_REPLACE_KEEP_TIME_MODIFIED

See also hwapi_insert().

Пред. | Начало | След.
hw_api->remove | Уровень выше | hw_api->setcommittedversion


hw_api->setcommittedversion

(no version information, might be only in CVS)

hw_api->setcommittedversion -- Commits version other than last version

Description

hw_api_object hw_api->setcommittedversion ( array parameter )

Commits a version of a document. The committed version is the one which is visible to users with read access. By default the last version is the committed version.

See also hwapi_checkin(),
         hwapi_checkout(),
         hwapi_revert().

Пред. | Начало | След.
hw_api->replace | Уровень выше | hw_api->srcanchors


hw_api->srcanchors

(no version information, might be only in CVS)

hw_api->srcanchors -- Returns a list of all source anchors

Description

array hw_api->srcanchors ( array parameter )

Retrieves all source anchors of an object. The parameter array contains the required element 'objectIdentifier' and the optional elements 'attributeSelector' and 'objectQuery'.

See also hwapi_dstanchors().

Пред. | Начало | След.
hw_api->setcommittedversion | Уровень выше | hw_api->srcsofdst


hw_api->srcsofdst

(no version information, might be only in CVS)

hw_api->srcsofdst -- Returns source of a destination object

Description

array hw_api->srcsofdst ( array parameter )

Retrieves all the source anchors pointing to the specified destination. The destination object can either be a destination anchor or a whole document. The parameters array contains the required element 'objectIdentifier' and the optional element 'attributeSelector' and 'objectQuery'. The function returns an array of objects or an error.

See also hwapi_dstofsrcanchor().

Пред. | Начало | След.
hw_api->srcanchors | Уровень выше | hw_api->unlock


hw_api->unlock

(no version information, might be only in CVS)

hw_api->unlock -- Unlocks a locked object

Description

bool hw_api->unlock ( array parameter )

Unlocks a locked object. Only the user who has locked the object and the system user may unlock an object. The parameter array contains the required element 'objectIdentifier' and the optional parameters 'mode' and 'objectquery'. The meaning of 'mode' is the same as in function hwapi_lock().

Returns TRUE on success or an object of class HW_API_Error.

See also hwapi_lock().

Пред. | Начало | След.
hw_api->srcsofdst | Уровень выше | hw_api->user


hw_api->user

(no version information, might be only in CVS)

hw_api->user -- Returns the own user object

Description

hw_api_object hw_api->user ( array parameter )

See also hwapi_userlist().

Пред. | Начало | След.
hw_api->unlock | Уровень выше | hw_api->userlist


hw_api->userlist

(no version information, might be only in CVS)

hw_api->userlist -- Returns a list of all logged in users

Description

array hw_api->userlist ( array parameter )

See also hwapi_user().

Пред. | Начало | След.
hw_api->user | Уровень выше | IBM DB2, Cloudscape and Apache Derby Functions


Firebird/InterBase Functions

Руководство по PHP
Пред. След.

XXXIX. Firebird/InterBase Functions

Введение

Firebird/InterBase is a relational database offering many ANSI SQL-92 features that runs on Linux, Windows, and a variety of Unix platforms. Firebird/InterBase offers excellent concurrency, high performance, and powerful language support for stored procedures and triggers. It has been used in production systems, under a variety of names since 1981.

InterBase is the name of the closed-source variant of this RDBMS that was developed by Borland/Inprise. More information about InterBase is available at http://www.borland.com/interbase/.

Firebird is a commercially independent project of C and C++ programmers, technical advisors and supporters developing and enhancing a multi-platform relational database management system based on the source code released by Inprise Corp (now known as Borland Software Corp) under the InterBase Public License v.1.0 on 25 July, 2000. More information about Firebird is available at http://www.firebirdsql.org/.

Замечание: This extension supports InterBase versions 5 and up and all versions of Firebird. Support for InterBase version 5.x will be dropped in PHP 5.

This database uses a single quote (') character for escaping, a behavior similar to the Sybase database, add to your php.ini the following directive:

magic_quotes_sybase = On

Требования

Установка

To enable InterBase support configure PHP --with-interbase[=DIR], where DIR is the InterBase base install directory, which defaults to /usr/interbase.

Note to Win32 Users: In order to enable this module on a Windows environment, you must copy gds32.dll from the DLL folder of the PHP/Win32 binary package to the SYSTEM32 folder of your windows machine. (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM32). In case you installed the InterBase database server on the same machine PHP is running on, you will have this DLL already. Therefore you don't need to copy gds32.dll from the DLL folder.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. InterBase configuration options

Name | Default | Changeable | Changelog
ibase.allow_persistent | "1" | PHP_INI_SYSTEM |
ibase.max_persistent | "-1" | PHP_INI_SYSTEM |
ibase.max_links | "-1" | PHP_INI_SYSTEM |
ibase.default_db | NULL | PHP_INI_SYSTEM | Available since PHP 5.0.0.
ibase.default_user | NULL | PHP_INI_ALL |
ibase.default_password | NULL | PHP_INI_ALL |
ibase.default_charset | NULL | PHP_INI_ALL | Available since PHP 5.0.0.
ibase.timestampformat | "%Y-%m-%d %H:%M:%S" | PHP_INI_ALL |
ibase.dateformat | "%Y-%m-%d" | PHP_INI_ALL |
ibase.timeformat | "%H:%M:%S" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

ibase.allow_persistent boolean

Whether to allow persistent connections to Firebird/InterBase.

ibase.max_persistent integer

The maximum number of persistent Firebird/InterBase connections per process. New connections created with ibase_pconnect() will be non-persistent if this number would be exceeded.

ibase.max_links integer

The maximum number of Firebird/InterBase connections per process, including persistent connections.

ibase.default_db string

The default database to connect to when ibase_[p]connect() is called without specifying a database name. If this value is set and SQL safe mode is enabled, no other connections than to this database will be allowed.

ibase.default_user string

The user name to use when connecting to a database if no user name is specified.

ibase.default_password string

The password to use when connecting to a database if no password is specified.

ibase.default_charset string

The character set to use when connecting to a database if no character set is specified.

ibase.timestampformat string

ibase.dateformat string

ibase.timeformat string

These directives are used to set the date and time formats that are used when returning dates and times from a result set, or when binding arguments to date and time parameters.

Типы ресурсов

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

The following constants can be passed to ibase_trans() to specify transaction behaviour.

Таблица 2. Firebird/InterBase transaction flags

Constant | Description
IBASE_DEFAULT | The default transaction settings are to be used. This default is determined by the client library, which defines it as IBASE_WRITE|IBASE_CONCURRENCY|IBASE_WAIT in most cases.
IBASE_READ | Starts a read-only transaction.
IBASE_WRITE | Starts a read-write transaction.
IBASE_CONSISTENCY | Starts a transaction with the isolation level set to 'consistency', which means the transaction cannot read from tables that are being modified by other concurrent transactions.
IBASE_CONCURRENCY | Starts a transaction with the isolation level set to 'concurrency' (or 'snapshot'), which means the transaction has access to all tables, but cannot see changes that were committed by other transactions after the transaction was started.
IBASE_COMMITTED | Starts a transaction with the isolation level set to 'read committed'. This flag should be combined with either IBASE_REC_VERSION or IBASE_REC_NO_VERSION. This isolation level allows access to changes that were committed after the transaction was started. If IBASE_REC_NO_VERSION was specified, only the latest version of a row can be read. If IBASE_REC_VERSION was specified, a row can even be read when a modification to it is pending in a concurrent transaction.
IBASE_WAIT | Indicated that a transaction should wait and retry when a conflict occurs.
IBASE_NOWAIT | Indicated that a transaction should fail immediately when a conflict occurs.

The following constants can be passed to ibase_fetch_row(), ibase_fetch_assoc() or ibase_fetch_object() to specify fetch behaviour.

Таблица 3. Firebird/InterBase fetch flags

Constant | Description
IBASE_FETCH_BLOBS | Also available as IBASE_TEXTfor backward compatibility. Causes BLOB contents to be fetched inline, instead of being fetched as BLOB identifiers.
IBASE_FETCH_ARRAYS | Causes arrays to be fetched inline. Otherwise, array identifiers are returned. Array identifiers can only be used as arguments to INSERT operations, as no functions to handle array identifiers are currently available.
IBASE_UNIXTIME | Causes date and time fields not to be returned as strings, but as UNIX timestamps (the number of seconds since the epoch, which is 1-Jan-1970 0:00 UTC). Might be problematic if used with dates before 1970 on some systems.

The following constants are used to pass requests and options to the service
API functions (ibase_server_info(), ibase_db_info(),
ibase_backup(), ibase_restore()
and ibase_maintain_db()). Please refer to
the Firebird/InterBase manuals for the meaning of these options.

IBASE_BKP_IGNORE_CHECKSUMS

IBASE_BKP_IGNORE_LIMBO

IBASE_BKP_METADATA_ONLY

IBASE_BKP_NO_GARBAGE_COLLECT

IBASE_BKP_OLD_DESCRIPTIONS

IBASE_BKP_NON_TRANSPORTABLE

IBASE_BKP_CONVERT

Options to ibase_backup()

IBASE_RES_DEACTIVATE_IDX

IBASE_RES_NO_SHADOW

IBASE_RES_NO_VALIDITY

IBASE_RES_ONE_AT_A_TIME

IBASE_RES_REPLACE

IBASE_RES_CREATE

IBASE_RES_USE_ALL_SPACE

Options to ibase_restore()

IBASE_PRP_PAGE_BUFFERS

IBASE_PRP_SWEEP_INTERVAL

IBASE_PRP_SHUTDOWN_DB

IBASE_PRP_DENY_NEW_TRANSACTIONS

IBASE_PRP_DENY_NEW_ATTACHMENTS

IBASE_PRP_RESERVE_SPACE

IBASE_PRP_RES_USE_FULL

IBASE_PRP_RES

IBASE_PRP_WRITE_MODE

IBASE_PRP_WM_ASYNC

IBASE_PRP_WM_SYNC

IBASE_PRP_ACCESS_MODE

IBASE_PRP_AM_READONLY

IBASE_PRP_AM_READWRITE

IBASE_PRP_SET_SQL_DIALECT

IBASE_PRP_ACTIVATE

IBASE_PRP_DB_ONLINE

IBASE_RPR_CHECK_DB

IBASE_RPR_IGNORE_CHECKSUM

IBASE_RPR_KILL_SHADOWS

IBASE_RPR_MEND_DB

IBASE_RPR_VALIDATE_DB

IBASE_RPR_FULL

IBASE_RPR_SWEEP_DB

Options to ibase_maintain_db()

IBASE_STS_DATA_PAGES

IBASE_STS_DB_LOG

IBASE_STS_HDR_PAGES

IBASE_STS_IDX_PAGES

IBASE_STS_SYS_RELATIONS

Options to ibase_db_info()

IBASE_SVC_SERVER_VERSION

IBASE_SVC_IMPLEMENTATION

IBASE_SVC_GET_ENV

IBASE_SVC_GET_ENV_LOCK

IBASE_SVC_GET_ENV_MSG

IBASE_SVC_USER_DBPATH

IBASE_SVC_SVR_DB_INFO

IBASE_SVC_GET_USERS

Options to ibase_server_info()

Содержание
ibase_add_user -- Add a user to a security database (only for IB6 or later)
ibase_affected_rows -- Return the number of rows that were affected by the previous query
ibase_backup -- Initiates a backup task in the service manager and returns immediately
ibase_blob_add -- Add data into a newly created blob
ibase_blob_cancel -- Cancel creating blob
ibase_blob_close -- Close blob
ibase_blob_create -- Create a new blob for adding data
ibase_blob_echo -- Output blob contents to browser
ibase_blob_get -- Get len bytes data from open blob
ibase_blob_import -- Create blob, copy file in it, and close it
ibase_blob_info -- Return blob length and other useful info
ibase_blob_open -- Open blob for retrieving data parts
ibase_close -- Close a connection to an InterBase database
ibase_commit_ret -- Commit a transaction without closing it
ibase_commit -- Commit a transaction
ibase_connect -- Open a connection to an InterBase database
ibase_db_info -- Request statistics about a database
ibase_delete_user -- Delete a user from a security database (only for IB6 or later)
ibase_drop_db -- Drops a database
ibase_errcode -- Return an error code
ibase_errmsg -- Return error messages
ibase_execute -- Execute a previously prepared query
ibase_fetch_assoc -- Fetch a result row from a query as an associative array
ibase_fetch_object -- Get an object from a InterBase database
ibase_fetch_row -- Fetch a row from an InterBase database
ibase_field_info -- Get information about a field
ibase_free_event_handler -- Cancels a registered event handler
ibase_free_query -- Free memory allocated by a prepared query
ibase_free_result -- Free a result set
ibase_gen_id -- Increments the named generator and returns its new value
ibase_maintain_db -- Execute a maintenance command on the database server
ibase_modify_user -- Modify a user to a security database (only for IB6 or later)
ibase_name_result -- Assigns a name to a result set
ibase_num_fields -- Get the number of fields in a result set
ibase_num_params -- Return the number of parameters in a prepared query
ibase_param_info -- Return information about a parameter in a prepared query
ibase_pconnect -- Open a persistent connection to an InterBase database
ibase_prepare -- Prepare a query for later binding of parameter placeholders and execution
ibase_query -- Execute a query on an InterBase database
ibase_restore -- Initiates a restore task in the service manager and returns immediately
ibase_rollback_ret -- Roll back a transaction without closing it
ibase_rollback -- Roll back a transaction
ibase_server_info -- Request information about a database server
ibase_service_attach -- Connect to the service manager
ibase_service_detach -- Disconnect from the service manager
ibase_set_event_handler -- Register a callback function to be called when events are posted
ibase_timefmt -- Sets the format of timestamp, date and time type columns returned from queries
ibase_trans -- Begin a transaction
ibase_wait_event -- Wait for an event to be posted by the database

Пред. | Начало | След.
unlink | Уровень выше | ibase_add_user


ibase_add_user

(PHP 4 >= 4.2.0, PHP 5)

ibase_add_user -- Add a user to a security database (only for IB6 or later)

Description

bool ibase_add_user ( resource service_handle, string user_name, string password [, string first_name [, string middle_name [, string last_name]]] )

PHP 4 uses server, dba_user_name and dba_user_password instead of service_handle parameter.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

See also ibase_modify_user() and ibase_delete_user().

Пред. | Начало | След.
Firebird/InterBase Functions | Уровень выше | ibase_affected_rows


ibase_affected_rows

(PHP 5)

ibase_affected_rows -- Return the number of rows that were affected by the previous query

Description

int ibase_affected_rows ( [resource link_identifier] )

This function returns the number of rows that were affected by the previous query (INSERT, UPDATE or DELETE) that was executed from within the transaction context specified by link_identifier. If link_identifier is a connection resource, its default transaction is used.

See also ibase_query() and ibase_execute().

Пред. | Начало | След.
ibase_add_user | Уровень выше | ibase_backup


ibase_backup

(PHP 5)

ibase_backup -- Initiates a backup task in the service manager and returns immediately

Description

mixed ibase_backup ( resource service_handle, string source_db, string dest_file [, int options [, bool verbose]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ibase_affected_rows | Уровень выше | ibase_blob_add


ibase_blob_add

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_blob_add -- Add data into a newly created blob

Description

void ibase_blob_add ( resource blob_handle, string data )

ibase_blob_add() adds data into a blob created with ibase_blob_create(). Returns NULL on success or FALSE on failure.

See also
ibase_blob_cancel(),
ibase_blob_close(),
ibase_blob_create() and
ibase_blob_import().

Пред. | Начало | След.
ibase_backup | Уровень выше | ibase_blob_cancel


ibase_blob_cancel

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_blob_cancel -- Cancel creating blob

Description

bool ibase_blob_cancel ( resource blob_handle )

This function will discard a BLOB created by ibase_create_blob() if it has not yet been closed by ibase_blob_close(). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also
ibase_blob_close(),
ibase_blob_create() and
ibase_blob_import().

Пред. | Начало | След.
ibase_blob_add | Уровень выше | ibase_blob_close


ibase_blob_close

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_blob_close -- Close blob

Description

mixed ibase_blob_close ( resource blob_handle )

This function closes a BLOB that has either been opened for reading by ibase_open_blob() or has been opened for writing by ibase_create_blob(). If the BLOB was being read, this function returns TRUE on success, if the BLOB was being written to, this function returns a string containing the BLOB id that has been assigned to it by the database. On failure, this function returns FALSE.

See also ibase_blob_cancel() and ibase_blob_open().

Пред. | Начало | След.
ibase_blob_cancel | Уровень выше | ibase_blob_create


ibase_blob_create

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_blob_create -- Create a new blob for adding data

Description

resource ibase_blob_create ( [resource link_identifier] )

ibase_blob_create() creates a new BLOB for filling with data. It returns a BLOB handle for later use with ibase_blob_add() or FALSE on failure.

See also
ibase_blob_add(),
ibase_blob_cancel(),
ibase_blob_close() and
ibase_blob_import().

Пред. | Начало | След.
ibase_blob_close | Уровень выше | ibase_blob_echo


ibase_blob_echo

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_blob_echo -- Output blob contents to browser

Description

bool ibase_blob_echo ( resource link_identifier, string blob_id )

bool ibase_blob_echo ( string blob_id )

This function opens a BLOB for reading and sends its contents directly to standard output (the browser, in most cases). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also
ibase_blob_open(),
ibase_blob_close() and
ibase_blob_get().

Пред. | Начало | След.
ibase_blob_create | Уровень выше | ibase_blob_get


ibase_blob_get

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_blob_get -- Get len bytes data from open blob

Description

string ibase_blob_get ( resource blob_handle, int len )

This function returns at most len bytes from a BLOB that has been opened for reading by ibase_blob_open(). Returns FALSE on failure.

<?php
    $sql       = "SELECT blob_value FROM table";
    $result    = ibase_query($sql);
    $data      = ibase_fetch_object($result);
    $blob_data = ibase_blob_info($data->BLOB_VALUE);
    $blob_hndl = ibase_blob_open($data->BLOB_VALUE);
    echo         ibase_blob_get($blob_hndl, $blob_data[0]);
?>

Whilst this example doesn't do much more than a 'ibase_blob_echo($data->BLOB_VALUE)' would do, it does show you how to get information into a $variable to manipulate as you please.

Замечание: It is not possible to read from a BLOB that has been opened for writing by ibase_blob_create().

See also
ibase_blob_open(),
ibase_blob_close() and
ibase_blob_echo().

Пред. | Начало | След.
ibase_blob_echo | Уровень выше | ibase_blob_import


ibase_blob_import

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_blob_import -- Create blob, copy file in it, and close it

Description

string ibase_blob_import ( resource link_identifier, resource file_handle )

string ibase_blob_import ( resource file_handle )

This function creates a BLOB, reads an entire file into it, closes it and returns the assigned BLOB id. The file handle is a handle returned by fopen(). Returns FALSE on failure.

Пример 1. ibase_blob_import() example

<?php
$dbh = ibase_connect($host, $username, $password);
$filename = '/tmp/bar';

$fd = fopen($filename, 'r');
if ($fd) {

    $blob = ibase_blob_import($dbh, $fd);
    fclose($fd);

    if (!is_string($blob)) {
        // import failed
    } else {
        $query = "INSERT INTO foo (name, data) VALUES ('$filename', ?)";
        $prepared = ibase_prepare($dbh, $query);
        if (!ibase_execute($prepared, $blob)) {
            // record insertion failed
        }
    }
} else {
    // unable to open the data file
}
?>

See also
ibase_blob_add(),
ibase_blob_cancel(),
ibase_blob_close() and
ibase_blob_create().

Пред. | Начало | След.
ibase_blob_get | Уровень выше | ibase_blob_info


ibase_blob_info

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_blob_info -- Return blob length and other useful info

Description

array ibase_blob_info ( resource link_identifier, string blob_id )

array ibase_blob_info ( string blob_id )

Returns an array containing information about a BLOB. The information returned consists of the length of the BLOB, the number of segments it contains, the size of the largest segment, and whether it is a stream BLOB or a segmented BLOB.

Пред. | Начало | След.
ibase_blob_import | Уровень выше | ibase_blob_open


ibase_blob_open

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_blob_open -- Open blob for retrieving data parts

Description

resource ibase_blob_open ( resource link_identifier, string blob_id )

resource ibase_blob_open ( string blob_id )

ibase_blob_open() opens an existing BLOB for reading. It returns a BLOB handle for later use with ibase_blob_get() or FALSE on failure.

See also
ibase_blob_close(),
ibase_blob_echo() and
ibase_blob_get().

Пред. | Начало | След.
ibase_blob_info | Уровень выше | ibase_close


ibase_close

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ibase_close -- Close a connection to an InterBase database

Description

bool ibase_close ( [resource connection_id] )

Closes the link to an InterBase database that's associated with a connection id returned from ibase_connect(). If the connection id is omitted, the last opened link is assumed. Default transaction on link is committed, other transactions are rolled back. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also ibase_connect() and ibase_pconnect().

Пред. | Начало | След.
ibase_blob_open | Уровень выше | ibase_commit_ret


ibase_commit_ret

(PHP 5)

ibase_commit_ret -- Commit a transaction without closing it

Description

bool ibase_commit_ret ( [resource link_or_trans_identifier] )

If called without an argument, this function commits the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be committed. If the argument is a transaction identifier, the corresponding transaction will be committed. The transaction context will be retained, so statements executed from within this transaction will not be invalidated. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
ibase_close | Уровень выше | ibase_commit


ibase_commit

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_commit -- Commit a transaction

Description

bool ibase_commit ( [resource link_or_trans_identifier] )

If called without an argument, this function commits the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be committed. If the argument is a transaction identifier, the corresponding transaction will be committed. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
ibase_commit_ret | Уровень выше | ibase_connect


ibase_connect

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ibase_connect -- Open a connection to an InterBase database

Description

resource ibase_connect ( [string database [, string username [, string password [, string charset [, int buffers [, int dialect [, string role [, int sync]]]]]]]] )

Establishes a connection to an InterBase server. The database argument has to be a valid path to database file on the server it resides on. If the server is not local, it must be prefixed with either 'hostname:' (TCP/IP), '//hostname/' (NetBEUI) or 'hostname@' (IPX/SPX), depending on the connection protocol used. username and password can also be specified with PHP configuration directives ibase.default_user and ibase.default_password. charset is the default character set for a database. buffers is the number of database buffers to allocate for the server-side cache. If 0 or omitted, server chooses its own default. dialect selects the default SQL dialect for any statement executed within a connection, and it defaults to the highest one supported by client libraries.

In case a second call is made to ibase_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned. The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling ibase_close().

Пример 1. ibase_connect() example

<?php
    $host = 'localhost:/path/to/your.gdb';

    $dbh = ibase_connect($host, $username, $password);
    $stmt = 'SELECT * FROM tblname';
    $sth = ibase_query($dbh, $stmt);
    while ($row = ibase_fetch_object($sth)) {
        echo $row->email, "\n";
    }
    ibase_free_result($sth);
    ibase_close($dbh);
?>

Замечание: The optional buffers parameter was added in PHP 4.0.0.

Замечание: The optional dialect parameter was added in PHP 4.0.0 and is functional only with InterBase 6 and up.

Замечание: The optional role parameter was added in PHP 4.0.0 and is functional only with InterBase 5 and up.

Замечание: If you get some error like "arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets" (this occurs when you try use some character with accents) when using this and after ibase_query() you must set the character set (i.e. ISO8859_1 or your current character set).

See also ibase_pconnect() and ibase_close().

Пред. | Начало | След.
ibase_commit | Уровень выше | ibase_db_info


ibase_db_info

(PHP 5)

ibase_db_info -- Request statistics about a database

Description

string ibase_db_info ( resource service_handle, string db, int action [, int argument] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ibase_connect | Уровень выше | ibase_delete_user


ibase_delete_user

(PHP 4 >= 4.2.0, PHP 5)

ibase_delete_user -- Delete a user from a security database (only for IB6 or later)

Description

bool ibase_delete_user ( resource service_handle, string user_name )

PHP 4 uses server, dba_user_name and dba_user_password instead of service_handle parameter.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

See also ibase_add_user() and ibase_modify_user().

Пред. | Начало | След.
ibase_db_info | Уровень выше | ibase_drop_db


ibase_drop_db

(PHP 5)

ibase_drop_db -- Drops a database

Description

bool ibase_drop_db ( [resource connection] )

This functions drops a database that was opened by either ibase_connect() or ibase_pconnect(). The database is closed and deleted from the server. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also ibase_connect() and ibase_pconnect().

Пред. | Начало | След.
ibase_delete_user | Уровень выше | ibase_errcode


ibase_errcode

(PHP 5)

ibase_errcode -- Return an error code

Description

int ibase_errcode ( void )

Returns the error code that resulted from the most recent InterBase function call. Returns FALSE if no error occurred.

See also ibase_errmsg().

Пред. | Начало | След.
ibase_drop_db | Уровень выше | ibase_errmsg


ibase_errmsg

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_errmsg -- Return error messages

Description

string ibase_errmsg ( void )

Returns the error message that resulted from the most recent InterBase function call. Returns FALSE if no error occurred.

See also ibase_errcode().

Пред. | Начало | След.
ibase_errcode | Уровень выше | ibase_execute


ibase_execute

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ibase_execute -- Execute a previously prepared query

Description

resource ibase_execute ( resource query [, mixed bind_arg [, mixed ...]] )

Execute a query prepared by ibase_prepare(). If the query raises an error, returns FALSE. If it is successful and there is a (possibly empty) result set (such as with a SELECT query), returns a result identifier. If the query was successful and there were no results, returns TRUE.

This is a lot more effective than using ibase_query() if you are repeating a same kind of query several times with only some parameters changing.

Пример 1. ibase_execute() example

<?php

$dbh = ibase_connect($host, $username, $password);

$updates = array(
    1 => 'Eric',
    5 => 'Filip',
    7 => 'Larry'
);

$query = ibase_prepare($dbh, "UPDATE FOO SET BAR = ? WHERE BAZ = ?");

foreach ($updates as $baz => $bar) {
    ibase_execute($query, $bar, $baz);
}

?>

Замечание: In PHP 5.0.0 and up, this function returns the number of rows affected by the query (if > 0 and applicable to the statement type). A query that succeeded, but did not affect any rows (e.g. an UPDATE of a non-existent record) will return TRUE.

See also ibase_query().

Пред. | Начало | След.
ibase_errmsg | Уровень выше | ibase_fetch_assoc


ibase_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

ibase_fetch_assoc -- Fetch a result row from a query as an associative array

Description

array ibase_fetch_assoc ( resource result [, int fetch_flag] )

ibase_fetch_assoc() returns an associative array that corresponds to the fetched row. Subsequent calls will return the next row in the result set, or FALSE if there are no more rows.

ibase_fetch_assoc() fetches one row of data from the result. If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you either need to access the result with numeric indices by using ibase_fetch_row() or use alias names in your query.

fetch_flag is a combination of the constants IBASE_TEXT and IBASE_UNIXTIME ORed together. Passing IBASE_TEXT will cause this function to return BLOB contents instead of BLOB ids. Passing IBASE_UNIXTIME will cause this function to return date/time values as Unix timestamps instead of as formatted strings.

See also ibase_fetch_row() and ibase_fetch_object().

Пред. | Начало | След.
ibase_execute | Уровень выше | ibase_fetch_object


ibase_fetch_object

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_fetch_object -- Get an object from a InterBase database

Description

object ibase_fetch_object ( resource result_id [, int fetch_flag] )

Fetches a row as a pseudo-object from a result_id obtained either by ibase_query() or ibase_execute().

<?php
    $dbh = ibase_connect($host, $username, $password);
    $stmt = 'SELECT * FROM tblname';
    $sth = ibase_query($dbh, $stmt);
    while ($row = ibase_fetch_object($sth)) {
        echo $row->email . "\n";
    }
    ibase_close($dbh);
?>

Subsequent calls to ibase_fetch_object() return the next row in the result set, or FALSE if there are no more rows.

fetch_flag is a combination of the constants IBASE_TEXT and IBASE_UNIXTIME ORed together. Passing IBASE_TEXT will cause this function to return BLOB contents instead of BLOB ids. Passing IBASE_UNIXTIME will cause this function to return date/time values as Unix timestamps instead of as formatted strings.

See also ibase_fetch_row() and ibase_fetch_assoc().

Пред. | Начало | След.
ibase_fetch_assoc | Уровень выше | ibase_fetch_row


ibase_fetch_row

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ibase_fetch_row -- Fetch a row from an InterBase database

Description

array ibase_fetch_row ( resource result_identifier [, int fetch_flag] )

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

ibase_fetch_row() fetches one row of data from the result associated with the specified result_identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0.

Subsequent calls to ibase_fetch_row() return the next row in the result set, or FALSE if there are no more rows.

fetch_flag is a combination of the constants IBASE_TEXT and IBASE_UNIXTIME ORed together. Passing IBASE_TEXT will cause this function to return BLOB contents instead of BLOB ids. Passing IBASE_UNIXTIME will cause this function to return date/time values as Unix timestamps instead of as formatted strings.

See also ibase_fetch_assoc() and ibase_fetch_object().

Пред. | Начало | След.
ibase_fetch_object | Уровень выше | ibase_field_info


ibase_field_info

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_field_info -- Get information about a field

Description

array ibase_field_info ( resource result, int field_number )

Returns an array with information about a field after a select query has been run. The array is in the form of name, alias, relation, length, type.

<?php
    $rs = ibase_query("SELECT * FROM tablename");
    $coln = ibase_num_fields($rs);
    for ($i = 0; $i < $coln; $i++) {
        $col_info = ibase_field_info($rs, $i);
        echo "name: ". $col_info['name']. "\n";
        echo "alias: ". $col_info['alias']. "\n";
        echo "relation: ". $col_info['relation']. "\n";
        echo "length: ". $col_info['length']. "\n";
        echo "type: ". $col_info['type']. "\n";
    }
?>

See also: ibase_num_fields().

Пред. | Начало | След.
ibase_fetch_row | Уровень выше | ibase_free_event_handler


ibase_free_event_handler

(PHP 5)

ibase_free_event_handler -- Cancels a registered event handler

Description

bool ibase_free_event_handler ( resource event )

This function causes the registered event handler specified by event to be cancelled. The callback function will no longer be called for the events it was registered to handle. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also ibase_set_event_handler().

Пред. | Начало | След.
ibase_field_info | Уровень выше | ibase_free_query


ibase_free_query

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ibase_free_query -- Free memory allocated by a prepared query

Description

bool ibase_free_query ( resource query )

Free a query prepared by ibase_prepare(). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
ibase_free_event_handler | Уровень выше | ibase_free_result


ibase_free_result

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ibase_free_result -- Free a result set

Description

bool ibase_free_result ( resource result_identifier )

Frees a result set that has been created by ibase_query() or ibase_execute(). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
ibase_free_query | Уровень выше | ibase_gen_id


ibase_gen_id

(PHP 5)

ibase_gen_id -- Increments the named generator and returns its new value

Description

mixed ibase_gen_id ( string generator [, int increment [, resource link_identifier]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns new generator value as integer, or as string if the value is too big.

Пред. | Начало | След.
ibase_free_result | Уровень выше | ibase_maintain_db


ibase_maintain_db

(PHP 5)

ibase_maintain_db -- Execute a maintenance command on the database server

Description

bool ibase_maintain_db ( resource service_handle, string db, int action [, int argument] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ibase_gen_id | Уровень выше | ibase_modify_user


ibase_modify_user

(PHP 4 >= 4.2.0, PHP 5)

ibase_modify_user -- Modify a user to a security database (only for IB6 or later)

Description

bool ibase_modify_user ( resource service_handle, string user_name, string password [, string first_name [, string middle_name [, string last_name]]] )

PHP 4 uses server, dba_user_name and dba_user_password instead of service_handle parameter.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

See also ibase_add_user() and ibase_delete_user().

Пред. | Начало | След.
ibase_maintain_db | Уровень выше | ibase_name_result


ibase_name_result

(PHP 5)

ibase_name_result -- Assigns a name to a result set

Description

bool ibase_name_result ( resource result, string name )

This function assigns a name to a result set. This name can be used later in UPDATE|DELETE ... WHERE CURRENT OF name statements. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

<?php
 $result = ibase_query("SELECT field1,field2 FROM table FOR UPDATE");
    ibase_name_result($result, "my_cursor");

    $updateqry = ibase_prepare("UPDATE table SET field2 = ? WHERE CURRENT OF my_cursor");

    for ($i = 0; ibase_fetch_row($result); ++$i) {
        ibase_execute($updateqry, $i);
    }
?>

See also ibase_prepare() and ibase_execute().

Пред. | Начало | След.
ibase_modify_user | Уровень выше | ibase_num_fields


ibase_num_fields

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_num_fields -- Get the number of fields in a result set

Description

int ibase_num_fields ( resource result_id )

Returns an integer containing the number of fields in a result set.

<?php
    $rs = ibase_query("SELECT * FROM tablename");
    $coln = ibase_num_fields($rs);
    for ($i = 0; $i < $coln; $i++) {
        $col_info = ibase_field_info($rs, $i);
        echo "name: " . $col_info['name'] . "\n";
        echo "alias: " . $col_info['alias'] . "\n";
        echo "relation: " . $col_info['relation'] . "\n";
        echo "length: " . $col_info['length'] . "\n";
        echo "type: " . $col_info['type'] . "\n";
    }
?>

See also: ibase_field_info().

Пред. | Начало | След.
ibase_name_result | Уровень выше | ibase_num_params


ibase_num_params

(PHP 5)

ibase_num_params -- Return the number of parameters in a prepared query

Description

int ibase_num_params ( resource query )

This function returns the number of parameters in the prepared query specified by query. This is the number of binding arguments that must be present when calling ibase_execute().

See also ibase_prepare() and ibase_param_info().

Пред. | Начало | След.
ibase_num_fields | Уровень выше | ibase_param_info


ibase_param_info

(PHP 5)

ibase_param_info -- Return information about a parameter in a prepared query

Description

array ibase_param_info ( resource query, int param_number )

Returns an array with information about a parameter after a query has been prepared. The array is in the form of name, alias, relation, length, type.

See also ibase_field_info() and ibase_num_params().

Пред. | Начало | След.
ibase_num_params | Уровень выше | ibase_pconnect


ibase_pconnect

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ibase_pconnect -- Open a persistent connection to an InterBase database

Description

resource ibase_pconnect ( [string database [, string username [, string password [, string charset [, int buffers [, int dialect [, string role [, int sync]]]]]]]] )

ibase_pconnect() acts very much like ibase_connect() with two major differences. First, when connecting, the function will first try to find a (persistent) link that's already opened with the same parameters. If one is found, an identifier for it will be returned instead of opening a new connection. Second, the connection to the InterBase server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (ibase_close() will not close links established by ibase_pconnect()). This type of link is therefore called 'persistent'.

Замечание: buffers was added in PHP 4.0.0.

Замечание: dialect was added in PHP 4.0.0. It is functional only with InterBase 6 and versions higher than that.

Замечание: role was added in PHP 4.0.0. It is functional only with InterBase 5 and versions higher than that.

See also ibase_close() and ibase_connect() for the meaning of parameters passed to this function. They are exactly the same.

Пред. | Начало | След.
ibase_param_info | Уровень выше | ibase_prepare


ibase_prepare

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ibase_prepare -- Prepare a query for later binding of parameter placeholders and execution

Description

resource ibase_prepare ( string query )

resource ibase_prepare ( resource link_identifier, string query )

resource ibase_prepare ( resource link_identifier, string trans, string query )

Prepare a query for later binding of parameter placeholders and execution (via ibase_execute()).

Пред. | Начало | След.
ibase_pconnect | Уровень выше | ibase_query


ibase_query

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ibase_query -- Execute a query on an InterBase database

Description

resource ibase_query ( [resource link_identifier, string query [, int bind_args]] )

Performs a query on an InterBase database. If the query raises an error, returns FALSE. If it is successful and there is a (possibly empty) result set (such as with a SELECT query), returns a result identifier. If the query was successful and there were no results, returns TRUE.

Пример 1. ibase_query() example

<?php

    $host = 'localhost:/path/to/your.gdb';

    $dbh = ibase_connect($host, $username, $password);
    $stmt = 'SELECT * FROM tblname';

    $sth = ibase_query($dbh, $stmt) or die(ibase_errmsg());

?>

Замечание: In PHP 5.0.0 and up, this function will return the number of rows affected by the query for INSERT, UPDATE and DELETE statements. In order to retain backward compatibility, it will return TRUE for these statements if the query succeeded without affecting any rows.

Замечание: If you get some error like "arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets" (this occurs when you try use some character with accents) when using this and after ibase_query() you must set the character set (i.e. ISO8859_1 or your current character set).

See also ibase_errmsg(),
ibase_fetch_row(),
ibase_fetch_object(), and
ibase_free_result().

Пред. | Начало | След.
ibase_prepare | Уровень выше | ibase_restore


ibase_restore

(PHP 5)

ibase_restore -- Initiates a restore task in the service manager and returns immediately

Description

mixed ibase_restore ( resource service_handle, string source_file, string dest_db [, int options [, bool verbose]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ibase_query | Уровень выше | ibase_rollback_ret


ibase_rollback_ret

(PHP 5)

ibase_rollback_ret -- Roll back a transaction without closing it

Description

bool ibase_rollback_ret ( [resource link_or_trans_identifier] )

If called without an argument, this function rolls back the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be rolled back. If the argument is a transaction identifier, the corresponding transaction will be rolled back. The transaction context will be retained, so statements executed from within this transaction will not be invalidated. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
ibase_restore | Уровень выше | ibase_rollback


ibase_rollback

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_rollback -- Roll back a transaction

Description

bool ibase_rollback ( [resource link_or_trans_identifier] )

If called without an argument, this function rolls back the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be rolled back. If the argument is a transaction identifier, the corresponding transaction will be rolled back. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
ibase_rollback_ret | Уровень выше | ibase_server_info


ibase_server_info

(PHP 5)

ibase_server_info -- Request information about a database server

Description

string ibase_server_info ( resource service_handle, int action )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ibase_rollback | Уровень выше | ibase_service_attach


ibase_service_attach

(PHP 5)

ibase_service_attach -- Connect to the service manager

Description

resource ibase_service_attach ( string host, string dba_username, string dba_password )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ibase_server_info | Уровень выше | ibase_service_detach


ibase_service_detach

(PHP 5)

ibase_service_detach -- Disconnect from the service manager

Description

bool ibase_service_detach ( resource service_handle )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ibase_service_attach | Уровень выше | ibase_set_event_handler


ibase_set_event_handler

(PHP 5)

ibase_set_event_handler -- Register a callback function to be called when events are posted

Description

resource ibase_set_event_handler ( callback event_handler, string event_name1 [, string event_name2 [, string ...]] )

resource ibase_set_event_handler ( resource connection, callback event_handler, string event_name1 [, string event_name2 [, string ...]] )

This function registers a PHP user function as event handler for the specified events. The callback is called with the event name and the link resource as arguments whenever one of the specified events is posted by the database. The callback must return FALSE if the event handler should be canceled. Any other return value is ignored. This function accepts up to 15 event arguments.

<?php

function event_handler($event_name, $link)
{
    if ($event_name=="NEW ORDER") {
        // process new order
        ibase_query($link, "UPDATE orders SET status='handled'");
    } else if ($event_name=="DB_SHUTDOWN") {
        // free event handler
        return false;
    }
}

ibase_set_event_handler($link, "event_handler", "NEW_ORDER", "DB_SHUTDOWN");
?>

The return value is an event resource. This resource can be used to free the event handler using ibase_free_event_handler().

See also ibase_free_event_handler() and ibase_wait_event().

Пред. | Начало | След.
ibase_service_detach | Уровень выше | ibase_timefmt


ibase_timefmt

(PHP 3 >= 3.0.6, PHP 4)

ibase_timefmt -- Sets the format of timestamp, date and time type columns returned from queries

Description

int ibase_timefmt ( string format [, int columntype] )

Sets the format of timestamp, date or time type columns returned from queries. Internally, the columns are formatted by c-function strftime(), so refer to its documentation regarding to the format of the string. columntype is one of the constants IBASE_TIMESTAMP, IBASE_DATE and IBASE_TIME. If omitted, defaults to IBASE_TIMESTAMP for backwards compatibility.

<?php
    /* InterBase 6 TIME-type columns will be returned in
     * the form '05 hours 37 minutes'. */
    ibase_timefmt("%H hours %M minutes", IBASE_TIME);
?>

You can set defaults for these formats with the PHP configuration directives ibase.timestampformat, ibase.dateformat and ibase.timeformat.

Замечание: This function has been removed from PHP 5, use ini_set() instead.

Пред. | Начало | След.
ibase_set_event_handler | Уровень выше | ibase_trans


ibase_trans

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ibase_trans -- Begin a transaction

Description

resource ibase_trans ( [int trans_args [, resource link_identifier]] )

Begins a transaction.

trans_args can be a combination of IBASE_READ, IBASE_WRITE, IBASE_COMMITTED, IBASE_CONSISTENCY, IBASE_CONCURRENCY, IBASE_REC_VERSION, IBASE_REC_NO_VERSION, IBASE_WAIT and IBASE_NOWAIT.

Замечание: The behaviour of this function has been changed in PHP 5.0.0. The first call to ibase_trans() will not return the default transaction of a connection. All transactions started by ibase_trans() will be rolled back at the end of the script if they were not committed or rolled back by either ibase_commit() or ibase_rollback().

Замечание: In PHP 5.0.0. and up, this function will accept multiple trans_args and link_identifier arguments. This allows transactions over multiple database connections, which are committed using a 2-phase commit algorithm. This means you can rely on the updates to either succeed in every database, or fail in every database. It does NOT mean you can use tables from different databases in the same query!

If you use transactions over multiple databases, you will have to specify both the link_id and transaction_id in calls to ibase_query() and ibase_prepare().

Пред. | Начало | След.
ibase_timefmt | Уровень выше | ibase_wait_event


ibase_wait_event

(PHP 5)

ibase_wait_event -- Wait for an event to be posted by the database

Description

string ibase_wait_event ( string event_name1 [, string event_name2 [, string ...]] )

string ibase_wait_event ( resource connection, string event_name1 [, string event_name2 [, string ...]] )

This function suspends execution of the script until one of the specified events is posted by the database. The name of the event that was posted is returned. This function accepts up to 15 event arguments.

See also ibase_set_event_handler() and ibase_free_event_handler().

Пред. | Начало | След.
ibase_trans | Уровень выше | Firebird/Interbase Functions (PDO_FIREBIRD)


db2_autocommit

(PECL)

db2_autocommit -- Returns or sets the AUTOCOMMIT state for a database connection

Описание

mixed db2_autocommit ( resource connection [, bool value] )

Sets or gets the AUTOCOMMIT behavior of the specified connection resource.

Список параметров

connection

A valid database connection resource variable as returned from db2_connect() or db2_pconnect().

value

One of the following constants:

DB2_AUTOCOMMIT_OFF

Turns AUTOCOMMIT off.

DB2_AUTOCOMMIT_ON

Turns AUTOCOMMIT on.

Возвращаемые значения

When db2_autocommit() receives only the connection parameter, it returns the current state of AUTOCOMMIT for the requested connection as an integer value. A value of 0 indicates that AUTOCOMMIT is off, while a value of 1 indicates that AUTOCOMMIT is on.

When db2_autocommit() receives both the connection parameter and autocommit parameter, it attempts to set the AUTOCOMMIT state of the requested connection to the corresponding state. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Retrieving the AUTOCOMMIT value for a connection

In the following example, a connection which has been created with AUTOCOMMIT turned off is tested with the db2_autocommit() function.

<?php
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF);
$conn = db2_connect($database, $user, $password, $options);
$ac = db2_autocommit($conn);
if ($ac == 0) {
    print "$ac -- AUTOCOMMIT is off.";
} else {
    print "$ac -- AUTOCOMMIT is on.";
}
?>

Результат выполнения данного примера:

0 -- AUTOCOMMIT is off.

Пример 2. Setting the AUTOCOMMIT value for a connection

In the following example, a connection which was initially created with AUTOCOMMIT turned off has its behavior changed to turn AUTOCOMMIT on.

<?php
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF);
$conn = db2_connect($database, $user, $password, $options);

// Turn AUTOCOMMIT on
$rc = db2_autocommit($conn, DB2_AUTOCOMMIT_ON);
if ($rc) {
    print "Turning AUTOCOMMIT on succeeded.\n";
}

// Check AUTOCOMMIT state
$ac = db2_autocommit($conn);
if ($ac == 0) {
    print "$ac -- AUTOCOMMIT is off.";
} else {
    print "$ac -- AUTOCOMMIT is on.";
}
?>

Результат выполнения данного примера:

Turning AUTOCOMMIT on succeeded.
1 -- AUTOCOMMIT is on.

Смотрите также

db2_connect()
db2_pconnect()

Пред. | Начало | След.
IBM DB2, Cloudscape and Apache Derby Functions | Уровень выше | db2_bind_param


db2_bind_param

(PECL)

db2_bind_param -- Binds a PHP variable to an SQL statement parameter

Описание

bool db2_bind_param ( resource stmt, int parameter-number, string variable-name [, int parameter-type [, int data-type [, int precision [, int scale]]]] )

Binds a PHP variable to an SQL statement parameter in a statement resource returned by db2_prepare(). This function gives you more control over the parameter type, data type, precision, and scale for the parameter than simply passing the variable as part of the optional input array to db2_execute().

Список параметров

stmt

A prepared statement returned from db2_prepare().

parameter-number

Specifies the 1-indexed position of the parameter in the prepared statement.

variable-name

A string specifying the name of the PHP variable to bind to the parameter specified by parameter-number.

parameter-type

A constant specifying whether the PHP variable should be bound to the SQL parameter as an input parameter (DB2_PARAM_IN), an output parameter (DB2_PARAM_OUT), or as a parameter that accepts input and returns output (DB2_PARAM_INOUT).

data-type

A constant specifying the SQL data type that the PHP variable should be bound as: one of DB2_BINARY, DB2_CHAR, DB2_DOUBLE, or DB2_LONG .

precision

Specifies the precision with which the variable should be bound to the database.

scale

Specifies the scale with which the variable should be bound to the database.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Binding PHP variables to a prepared statement

The SQL statement in the following example uses two input parameters in the WHERE clause. We call db2_bind_param() to bind two PHP variables to the corresponding SQL parameters. Notice that the PHP variables do not have to be declared or assigned before the call to db2_bind_param(); in the example, $lower_limit is assigned a value before the call to db2_bind_param(), but $upper_limit is assigned a value after the call to db2_bind_param(). The variables must be bound and, for parameters that accept input, must have any value assigned, before calling db2_execute().

<?php

$sql = 'SELECT name, breed, weight FROM animals
    WHERE weight > ? AND weight < ?';
$conn = db2_connect($database, $user, $password);
$stmt = db2_prepare($conn, $sql);

// We can declare the variable before calling db2_bind_param()
$lower_limit = 1;

db2_bind_param($stmt, 1, "lower_limit", DB2_PARAM_IN);
db2_bind_param($stmt, 2, "upper_limit", DB2_PARAM_IN);

// We can also declare the variable after calling db2_bind_param()
$upper_limit = 15.0;

if (db2_execute($stmt)) {
    while ($row = db2_fetch_array($stmt)) {
        print "{$row[0]}, {$row[1]}, {$row[2]}\n";
    }
}
?>

Результат выполнения данного примера:

Pook, cat, 3.2
Rickety Ride, goat, 9.7
Peaches, dog, 12.3

Пример 2. Calling stored procedures with IN and OUT parameters

The stored procedure match_animal in the following example accepts three different parameters:

  1. an input (IN) parameter that accepts the name of the first animal as input

  2. an input-output (INOUT) parameter that accepts the name of the second animal as input and returns the string TRUE if an animal in the database matches that name

  3. an output (OUT) parameter that returns the sum of the weight of the two identified animals

In addition, the stored procedure returns a result set consisting of the animals listed in alphabetic order starting at the animal corresponding to the input value of the first parameter and ending at the animal corresponding to the input value of the second parameter.

<?php

$sql = 'CALL match_animal(?, ?, ?)';
$conn = db2_connect($database, $user, $password);
$stmt = db2_prepare($conn, $sql);

$name = "Peaches";
$second_name = "Rickety Ride";
db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
db2_bind_param($stmt, 2, "second_name", DB2_PARAM_INOUT);
db2_bind_param($stmt, 3, "weight", DB2_PARAM_OUT);

print "Values of bound parameters _before_ CALL:\n";
print "  1: {$name} 2: {$second_name} 3: {$weight}\n\n";

if (db2_execute($stmt)) {
    print "Values of bound parameters _after_ CALL:\n";
    print "  1: {$name} 2: {$second_name} 3: {$weight}\n\n";

    print "Results:\n";
    while ($row = db2_fetch_array($stmt)) {
        print "  {$row[0]}, {$row[1]}, {$row[2]}\n";
    }
}
?>

Результат выполнения данного примера:

Values of bound parameters _before_ CALL:
  1: Peaches 2: Rickety Ride 3:

Values of bound parameters _after_ CALL:
  1: Peaches 2: TRUE 3: 22

Results:
  Peaches, dog, 12.3
  Pook, cat, 3.2
  Rickety Ride, goat, 9.7

Смотрите также

db2_execute()
db2_prepare()

Пред. | Начало | След.
db2_autocommit | Уровень выше | db2_client_info


db2_close

(PECL)

db2_close -- Closes a database connection

Описание

bool db2_close ( resource connection )

This function closes a DB2 client connection created with db2_connect() and returns the corresponding resources to the database server.

If you attempt to close a persistent DB2 client connection created with db2_pconnect(), the close request is ignored and the persistent DB2 client connection remains available for the next caller.

Список параметров

connection

Specifies an active DB2 client connection.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Closing a connection

The following example demonstrates a successful attempt to close a connection to an IBM DB2, Cloudscape, or Apache Derby database.

<?php
$conn = db2_connect('SAMPLE', 'db2inst1', 'ibmdb2');
$rc = db2_close($conn);
if ($rc) {
    echo "Connection was successfully closed.";
}
?>

Результат выполнения данного примера:

Connection was successfully closed.

Смотрите также

db2_connect()
db2_pconnect()

Пред. | Начало | След.
db2_client_info | Уровень выше | db2_column_privileges


db2_column_privileges

(PECL)

db2_column_privileges -- Returns a result set listing the columns and associated privileges for a table

Описание

resource db2_column_privileges ( resource connection [, string qualifier [, string schema [, string table-name [, string column-name]]]] )

Returns a result set listing the columns and associated privileges for a table.

Список параметров

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the tables. To match all schemas, pass NULL or an empty string.

table-name

The name of the table or view. To match all tables in the database, pass NULL or an empty string.

column-name

The name of the column. To match all columns in the table, pass NULL or an empty string.

Возвращаемые значения

Returns a statement resource with a result set containing rows describing the column privileges for columns matching the specified parameters. The rows are composed of the following columns:

Column name | Description
TABLE_CAT | Name of the catalog. The value is NULL if this table does not have catalogs.
TABLE_SCHEM | Name of the schema.
TABLE_NAME | Name of the table or view.
COLUMN_NAME | Name of the column.
GRANTOR | Authorization ID of the user who granted the privilege.
GRANTEE | Authorization ID of the user to whom the privilege was granted.
PRIVILEGE | The privilege for the column.
IS_GRANTABLE | Whether the GRANTEE is permitted to grant this privilege to other users.

Смотрите также

db2_columns()
db2_foreign_keys()
db2_primary_keys()
db2_procedure_columns()
db2_procedures()
db2_special_columns()
db2_statistics()
db2_table_privileges()
db2_tables()

Пред. | Начало | След.
db2_close | Уровень выше | db2_columns


db2_columns

(PECL)

db2_columns -- Returns a result set listing the columns and associated metadata for a table

Описание

resource db2_columns ( resource connection [, string qualifier [, string schema [, string table-name [, string column-name]]]] )

Returns a result set listing the columns and associated metadata for a table.

Список параметров

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the tables. To match all schemas, pass '%'.

table-name

The name of the table or view. To match all tables in the database, pass NULL or an empty string.

column-name

The name of the column. To match all columns in the table, pass NULL or an empty string.

Возвращаемые значения

Returns a statement resource with a result set containing rows describing the columns matching the specified parameters. The rows are composed of the following columns:

Column name | Description
TABLE_CAT | Name of the catalog. The value is NULL if this table does not have catalogs.
TABLE_SCHEM | Name of the schema.
TABLE_NAME | Name of the table or view.
COLUMN_NAME | Name of the column.
DATA_TYPE | The SQL data type for the column represented as an integer value.
TYPE_NAME | A string representing the data type for the column.
COLUMN_SIZE | An integer value representing the size of the column.
BUFFER_LENGTH | Maximum number of bytes necessary to store data from this column.
DECIMAL_DIGITS | The scale of the column, or NULL where scale is not applicable.
NUM_PREC_RADIX | An integer value of either 10 (representing an exact numeric data type), 2 (representing an approximate numeric data type), or NULL (representing a data type for which radix is not applicable).
NULLABLE | An integer value representing whether the column is nullable or not.
REMARKS | Description of the column.
COLUMN_DEF | Default value for the column.
SQL_DATA_TYPE | An integer value representing the size of the column.
SQL_DATETIME_SUB | Returns an integer value representing a datetime subtype code, or NULL for SQL data types to which this does not apply.
CHAR_OCTET_LENGTH | Maximum length in octets for a character data type column, which matches COLUMN_SIZE for single-byte character set data, or NULL for non-character data types.
ORDINAL_POSITION | The 1-indexed position of the column in the table.
IS_NULLABLE | A string value where 'YES' means that the column is nullable and 'NO' means that the column is not nullable.

Смотрите также

db2_column_privileges()
db2_foreign_keys()
db2_primary_keys()
db2_procedure_columns()
db2_procedures()
db2_special_columns()
db2_statistics()
db2_table_privileges()
db2_tables()

Пред. | Начало | След.
db2_column_privileges | Уровень выше | db2_commit


db2_commit

(PECL)

db2_commit -- Commits a transaction

Описание

bool db2_commit ( resource connection )

Commits an in-progress transaction on the specified connection resource and begins a new transaction. PHP applications normally default to AUTOCOMMIT mode, so db2_commit() is not necessary unless AUTOCOMMIT has been turned off for the connection resource.

Замечание: If the specified connection resource is a persistent connection, all transactions in progress for all applications using that persistent connection will be committed. For this reason, persistent connections are not recommended for use in applications that require transactions.

Список параметров

connection

A valid database connection resource variable as returned from db2_connect() or db2_pconnect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

db2_autocommit()
db2_rollback()

Пред. | Начало | След.
db2_columns | Уровень выше | db2_conn_error


db2_conn_error

(PECL)

db2_conn_error -- Returns a string containing the SQLSTATE returned by the last connection attempt

Описание

string db2_conn_error ( [resource connection] )

db2_conn_error() returns an SQLSTATE value representing the reason the last attempt to connect to a database failed. As db2_connect() returns FALSE in the event of a failed connection attempt, you do not pass any parameters to db2_conn_error() to retrieve the SQLSTATE value.

If, however, the connection was successful but becomes invalid over time, you can pass the connection parameter to retrieve the SQLSTATE value for a specific connection.

To learn what the SQLSTATE value means, you can issue the following command at a DB2 Command Line Processor prompt: db2 '? sqlstate-value'. You can also call db2_conn_errormsg() to retrieve an explicit error message and the associated SQLCODE value.

Список параметров

connection

A connection resource associated with a connection that initially succeeded, but which over time became invalid.

Возвращаемые значения

Returns the SQLSTATE value resulting from a failed connection attempt. Returns an empty string if there is no error associated with the last connection attempt.

Примеры

Пример 1. Retrieving an SQLSTATE value for a failed connection attempt

The following example demonstrates how to return an SQLSTATE value after deliberately passing invalid parameters to db2_connect().

<?php
$conn = db2_connect('badname', 'baduser', 'badpassword');
if (!$conn) {
    print "SQLSTATE value: " . db2_conn_error();
}
?>

Результат выполнения данного примера:

SQLSTATE value: 08001

Смотрите также

db2_conn_errormsg()
db2_connect()
db2_stmt_error()
db2_stmt_errormsg()

Пред. | Начало | След.
db2_commit | Уровень выше | db2_conn_errormsg


db2_conn_errormsg

(PECL)

db2_conn_errormsg -- Returns the last connection error message and SQLCODE value

Описание

string db2_conn_errormsg ( [resource connection] )

db2_conn_errormsg() returns an error message and SQLCODE value representing the reason the last database connection attempt failed. As db2_connect() returns FALSE in the event of a failed connection attempt, do not pass any parameters to db2_conn_errormsg() to retrieve the associated error message and SQLCODE value.

If, however, the connection was successful but becomes invalid over time, you can pass the connection parameter to retrieve the associated error message and SQLCODE value for a specific connection.

Список параметров

connection

A connection resource associated with a connection that initially succeeded, but which over time became invalid.

Возвращаемые значения

Returns a string containing the error message and SQLCODE value resulting from a failed connection attempt. If there is no error associated with the last connection attempt, db2_conn_errormsg() returns an empty string.

Примеры

Пример 1. Retrieving the error message returned by a failed connection attempt

The following example demonstrates how to return an error message and SQLCODE value after deliberately passing invalid parameters to db2_connect().

<?php
$conn = db2_connect('badname', 'baduser', 'badpassword');
if (!$conn) {
    print db2_conn_errormsg();
}
?>

Результат выполнения данного примера:

[IBM][CLI Driver] SQL1013N  The database alias name
or database name "BADNAME" could not be found.  SQLSTATE=42705
 SQLCODE=-1013

Смотрите также

db2_conn_error()
db2_connect()
db2_stmt_error()
db2_stmt_errormsg()

Пред. | Начало | След.
db2_conn_error | Уровень выше | db2_connect


db2_connect

(PECL)

db2_connect -- Returns a connection to a database

Описание

resource db2_connect ( string database, string username, string password [, array options] )

Creates a new connection to an IBM DB2 Universal Database, IBM Cloudscape, or Apache Derby database.

Список параметров

database

For a cataloged connection to a database, database represents the database alias in the DB2 client catalog.

For an uncataloged connection to a database, database represents a complete connection string in the following format: DRIVER={IBM DB2 ODBC DRIVER};DATABASE=database;HOSTNAME=hostname;PORT=port;PROTOCOL=TCPIP;UID=username;PWD=password; where the parameters represent the following values:

database

The name of the database.

hostname

The hostname or IP address of the database server.

port

The TCP/IP port on which the database is listening for requests.

username

The username with which you are connecting to the database.

password

The password with which you are connecting to the database.

username

The username with which you are connecting to the database.

For uncataloged connections, you must pass a NULL value or empty string.

password

The password with which you are connecting to the database.

For uncataloged connections, you must pass a NULL value or empty string.

options

An associative array of connection options that affect the behavior of the connection, where valid array keys include:

autocommit

Passing the DB2_AUTOCOMMIT_ON value turns autocommit on for this connection handle.

Passing the DB2_AUTOCOMMIT_OFF value turns autocommit off for this connection handle.

Возвращаемые значения

Returns a connection handle resource if the connection attempt is successful. If the connection attempt fails, db2_connect() returns FALSE.

Примеры

Пример 1. Creating a cataloged connection

Cataloged connections require you to have previously cataloged the target database through the DB2 Command Line Processor (CLP) or DB2 Configuration Assistant.

<?php
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';

$conn = db2_connect($database, $user, $password);

if ($conn) {
    echo "Connection succeeded.";
    db2_close($conn);
}
else {
    echo "Connection failed.";
}
?>

Результат выполнения данного примера:

Connection succeeded.

Пример 2. Creating an uncataloged connection

An uncataloged connection enables you to dynamically connect to a database.

<?php
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';
$hostname = 'localhost';
$port = 50000;

$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;" .
  "HOSTNAME=$hostname;PORT=$port;PROTOCOL=TCPIP;UID=$user;PWD=$password;";
$conn = db2_connect($conn_string, '', '');

if ($conn) {
    echo "Connection succeeded.";
    db2_close($conn);
}
else {
    echo "Connection failed.";
}
?>

Результат выполнения данного примера:

Connection succeeded.

Пример 3. Creating a connection with autocommit off by default

Passing an array of options to db2_connect() enables you to modify the default behavior of the connection handle.

<?php
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF);

$conn = db2_connect($database, $user, $password, $options);

if ($conn) {
    echo "Connection succeeded.\n";
    if (db2_autocommit($conn)) {
         echo "Autocommit is on.\n";
    }
    else {
         echo "Autocommit is off.\n";
    }
    db2_close($conn);
}
else {
    echo "Connection failed.";
}
?>

Результат выполнения данного примера:

Connection succeeded.
Autocommit is off.

Смотрите также

db2_close()
db2_pconnect()

Пред. | Начало | След.
db2_conn_errormsg | Уровень выше | db2_cursor_type


db2_cursor_type

(PECL)

db2_cursor_type -- Returns the cursor type used by a statement resource

Описание

int db2_cursor_type ( resource stmt )

Returns the cursor type used by a statement resource. Use this to determine if you are working with a forward-only cursor or scrollable cursor.

Список параметров

stmt

A valid statement resource.

Возвращаемые значения

Returns either DB2_FORWARD_ONLY if the statement resource uses a forward-only cursor or DB2_SCROLLABLE if the statement resource uses a scrollable cursor.

Смотрите также

db2_prepare()

Пред. | Начало | След.
db2_connect | Уровень выше | db2_exec


db2_exec

(PECL)

db2_exec -- Executes an SQL statement directly

Описание

resource db2_exec ( resource connection, string statement [, array options] )

Prepares and executes an SQL statement.

If you plan to interpolate PHP variables into the SQL statement, understand that this is one of the more common security exposures. Consider calling db2_prepare() to prepare an SQL statement with parameter markers for input values. Then you can call db2_execute() to pass in the input values and avoid SQL injection attacks.

If you plan to repeatedly issue the same SQL statement with different parameters, consider calling db2_prepare() and db2_execute() to enable the database server to reuse its access plan and increase the efficiency of your database access.

Список параметров

connection

A valid database connection resource variable as returned from db2_connect() or db2_pconnect().

statement

An SQL statement. The statement cannot contain any parameter markers.

options

An associative array containing statement options. You can use this parameter to request a scrollable cursor on database servers that support this functionality.

cursor

Passing the DB2_FORWARD_ONLY value requests a forward-only cursor for this SQL statement. This is the default type of cursor, and it is supported by all database servers. It is also much faster than a scrollable cursor.

Passing the DB2_SCROLLABLE value requests a scrollable cursor for this SQL statement. This type of cursor enables you to fetch rows non-sequentially from the database server. However, it is only supported by DB2 servers, and is much slower than forward-only cursors.

Возвращаемые значения

Returns a statement resource if the SQL statement was issued successfully, or FALSE if the database failed to execute the SQL statement.

Примеры

Пример 1. Creating a table with db2_exec()

The following example uses db2_exec() to issue a set of DDL statements in the process of creating a table.

<?php
$conn = db2_connect($database, $user, $password);

// Create the test table
$create = 'CREATE TABLE animals (id INTEGER, breed VARCHAR(32),
    name CHAR(16), weight DECIMAL(7,2))';
$result = db2_exec($conn, $create);
if ($result) {
    print "Successfully created the table.\n";
}

// Populate the test table
$animals = array(
    array(0, 'cat', 'Pook', 3.2),
    array(1, 'dog', 'Peaches', 12.3),
    array(2, 'horse', 'Smarty', 350.0),
    array(3, 'gold fish', 'Bubbles', 0.1),
    array(4, 'budgerigar', 'Gizmo', 0.2),
    array(5, 'goat', 'Rickety Ride', 9.7),
    array(6, 'llama', 'Sweater', 150)
);

foreach ($animals as $animal) {
    $rc = db2_exec($conn, "INSERT INTO animals (id, breed, name, weight)
      VALUES ({$animal[0]}, '{$animal[1]}', '{$animal[2]}', {$animal[3]})");
    if ($rc) {
        print "Insert... ";
    }
}
?>

Результат выполнения данного примера:

Successfully created the table.
Insert... Insert... Insert... Insert... Insert... Insert... Insert...

Пример 2. Executing a SELECT statement with a scrollable cursor

The following example demonstrates how to request a scrollable cursor for an SQL statement issued by db2_exec().

<?php
$conn = db2_connect($database, $user, $password);
$sql = "SELECT name FROM animals
    WHERE weight < 10.0
    ORDER BY name";
if ($conn) {
    require_once('prepare.inc');
    $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
    while ($row = db2_fetch_array($stmt)) {
        print "$row[0]\n";
    }
}
?>

Результат выполнения данного примера:

Bubbles
Gizmo
Pook
Rickety Ride

Смотрите также

db2_execute()
db2_prepare()

Пред. | Начало | След.
db2_cursor_type | Уровень выше | db2_execute


db2_execute

(PECL)

db2_execute -- Executes a prepared SQL statement

Описание

bool db2_execute ( resource stmt [, array parameters] )

db2_execute() executes an SQL statement that was prepared by db2_prepare().

If the SQL statement returns a result set, for example, a SELECT statement or a CALL to a stored procedure that returns one or more result sets, you can retrieve a row as an array from the stmt resource using db2_fetch_assoc(), db2_fetch_both(), or db2_fetch_array(). Alternatively, you can use db2_fetch_row() to move the result set pointer to the next row and fetch a column at a time from that row with db2_result().

Refer to db2_prepare() for a brief discussion of the advantages of using db2_prepare() and db2_execute() rather than db2_exec().

Список параметров

stmt

A prepared statement returned from db2_prepare().

parameters

An array of input parameters matching any parameter markers contained in the prepared statement.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Preparing and executing an SQL statement with parameter markers

The following example prepares an INSERT statement that accepts four parameter markers, then iterates over an array of arrays containing the input values to be passed to db2_execute().

<?php
$pet = array(0, 'cat', 'Pook', 3.2);

$insert = 'INSERT INTO animals (id, breed, name, weight)
    VALUES (?, ?, ?, ?)';

$stmt = db2_prepare($conn, $insert);
if ($stmt) {
    $result = db2_execute($stmt, $pet);
    if ($result) {
        print "Successfully added new pet.";
    }
}
?>

Результат выполнения данного примера:

Successfully added new pet.

Пример 2. Calling a stored procedure with an OUT parameter

The following example prepares a CALL statement that accepts one parameter marker representing an OUT parameter, binds the PHP variable $my_pets to the parameter using db2_bind_param(), then issues db2_execute() to execute the CALL statement. After the CALL to the stored procedure has been made, the value of $num_pets changes to reflect the value returned by the stored procedure for that OUT parameter.

<?php
$num_pets = 0;
$res = db2_prepare($conn, "CALL count_my_pets(?)");
$rc = db2_bind_param($res, 1, "num_pets", DB2_PARAM_OUT);
$rc = db2_execute($res);
print "I have $num_pets pets!";
?>

Результат выполнения данного примера:

I have 7 pets!

Смотрите также

db2_exec()
db2_fetch_array()
db2_fetch_assoc()
db2_fetch_both()
db2_fetch_row()
db2_prepare()
db2_result()

Пред. | Начало | След.
db2_exec | Уровень выше | db2_fetch_array


db2_fetch_assoc

(PECL)

db2_fetch_assoc -- Returns an array, indexed by column name, representing a row in a result set

Описание

array db2_fetch_assoc ( resource stmt [, int row_number] )

Returns an array, indexed by column name, representing a row in a result set.

Список параметров

stmt

A valid stmt resource containing a result set.

row_number

Requests a specific 1-indexed row from the result set. Passing this parameter results in a PHP warning if the result set uses a forward-only cursor.

Возвращаемые значения

Returns an associative array with column values indexed by the column name representing the next or requested row in the result set. Returns FALSE if there are no rows left in the result set, or if the row requested by row_number does not exist in the result set.

Примеры

Пример 1. Iterating through a forward-only cursor

If you call db2_fetch_assoc() without a specific row number, it automatically retrieves the next row in the result set.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$stmt = db2_prepare($conn, $sql);
$result = db2_execute($stmt);

while ($row = db2_fetch_assoc($stmt)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row['ID'], $row['NAME'], $row['BREED'], $row['WEIGHT']);
}
?>

Результат выполнения данного примера:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Пример 2. Retrieving specific rows with db2_fetch_assoc() from a scrollable cursor

If your result set uses a scrollable cursor, you can call db2_fetch_assoc() with a specific row number. The following example retrieves every other row in the result set, starting with the second row.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$result = db2_exec($stmt, $sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while ($row = db2_fetch_assoc($result, $i)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row['ID'], $row['NAME'], $row['BREED'], $row['WEIGHT']);
    $i = $i + 2;
}
?>

Результат выполнения данного примера:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Смотрите также

db2_fetch_array()
db2_fetch_both()
db2_fetch_object()
db2_fetch_row()
db2_result()

Пред. | Начало | След.
db2_fetch_array | Уровень выше | db2_fetch_both


db2_fetch_both

(PECL)

db2_fetch_both -- Returns an array, indexed by both column name and position, representing a row in a result set

Описание

array db2_fetch_both ( resource stmt [, int row_number] )

Returns an array, indexed by both column name and position, representing a
row in a result set. Note that the row returned by
db2_fetch_both() requires more memory than the
single-indexed arrays returned by db2_fetch_assoc() or
db2_fetch_array().

Список параметров

stmt

A valid stmt resource containing a result set.

row_number

Requests a specific 1-indexed row from the result set. Passing this parameter results in a PHP warning if the result set uses a forward-only cursor.

Возвращаемые значения

Returns an associative array with column values indexed by both the column name and 0-indexed column number. The array represents the next or requested row in the result set. Returns FALSE if there are no rows left in the result set, or if the row requested by row_number does not exist in the result set.

Примеры

Пример 1. Iterating through a forward-only cursor

If you call db2_fetch_both() without a specific row number, it automatically retrieves the next row in the result set. The following example accesses columns in the returned array by both column name and by numeric index.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$stmt = db2_prepare($conn, $sql);
$result = db2_execute($stmt);

while ($row = db2_fetch_both($stmt)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row['ID'], $row[0], $row['BREED'], $row[3]);
}
?>

Результат выполнения данного примера:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Пример 2. Retrieving specific rows with db2_fetch_both() from a scrollable cursor

If your result set uses a scrollable cursor, you can call db2_fetch_both() with a specific row number. The following example retrieves every other row in the result set, starting with the second row.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$result = db2_exec($stmt, $sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while ($row = db2_fetch_both($result, $i)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row[0], $row['NAME'], $row[2], $row['WEIGHT']);
    $i = $i + 2;
}
?>

Результат выполнения данного примера:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Смотрите также

db2_fetch_array()
db2_fetch_assoc()
db2_fetch_object()
db2_fetch_row()
db2_result()

Пред. | Начало | След.
db2_fetch_assoc | Уровень выше | db2_fetch_object


db2_fetch_row

(PECL)

db2_fetch_row -- Sets the result set pointer to the next row or requested row

Описание

bool db2_fetch_row ( resource stmt [, int row_number] )

Use db2_fetch_row() to iterate through a result set, or to point to a specific row in a result set if you requested a scrollable cursor.

To retrieve individual fields from the result set, call the db2_result() function.

Rather than calling db2_fetch_row() and db2_result(), most applications will call one of db2_fetch_assoc(), db2_fetch_both(), or db2_fetch_array() to advance the result set pointer and return a complete row as an array.

Список параметров

stmt

A valid stmt resource.

row_number

With scrollable cursors, you can request a specific row number in the result set. Row numbering is 1-indexed.

Возвращаемые значения

Returns TRUE if the requested row exists in the result set. Returns FALSE if the requested row does not exist in the result set.

Примеры

Пример 1. Iterating through a result set

The following example demonstrates how to iterate through a result set with db2_fetch_row() and retrieve columns from the result set with db2_result().

<?php
$sql = 'SELECT name, breed FROM animals WHERE weight < ?';
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, array(10));
while (db2_fetch_row($stmt)) {
    $name = db2_result($stmt, 0);
    $breed = db2_result($stmt, 1);
    print "$name $breed";
}
?>

Результат выполнения данного примера:

cat Pook
gold fish Bubbles
budgerigar Gizmo
goat Rickety Ride

Смотрите также

db2_fetch_array()
db2_fetch_assoc()
db2_fetch_both()
db2_fetch_object()
db2_result()

Пред. | Начало | След.
db2_fetch_object | Уровень выше | db2_field_display_size


db2_field_display_size

(PECL)

db2_field_display_size -- Returns the maximum number of bytes required to display a column

Описание

int db2_field_display_size ( resource stmt, mixed column )

Returns the maximum number of bytes required to display a column in a result set.

Список параметров

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Возвращаемые значения

Returns an integer value with the maximum number of bytes required to display the specified column. If the column does not exist in the result set, db2_field_display_size() returns FALSE.

Смотрите также

db2_field_name()
db2_field_num()
db2_field_precision()
db2_field_scale()
db2_field_type()
db2_field_width()

Пред. | Начало | След.
db2_fetch_row | Уровень выше | db2_field_name


db2_field_name

(PECL)

db2_field_name -- Returns the name of the column in the result set

Описание

string db2_field_name ( resource stmt, mixed column )

Returns the name of the specified column in the result set.

Список параметров

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Возвращаемые значения

Returns a string containing the name of the specified column. If the specified column does not exist in the result set, db2_field_name() returns FALSE.

Смотрите также

db2_field_display_size()
db2_field_num()
db2_field_precision()
db2_field_scale()
db2_field_type()
db2_field_width()

Пред. | Начало | След.
db2_field_display_size | Уровень выше | db2_field_num


db2_field_num

(PECL)

db2_field_num -- Returns the position of the named column in a result set

Описание

int db2_field_num ( resource stmt, mixed column )

Returns the position of the named column in a result set.

Список параметров

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Возвращаемые значения

Returns an integer containing the 0-indexed position of the named column in the result set. If the specified column does not exist in the result set, db2_field_num() returns FALSE.

Смотрите также

db2_field_display_size()
db2_field_name()
db2_field_precision()
db2_field_scale()
db2_field_type()
db2_field_width()

Пред. | Начало | След.
db2_field_name | Уровень выше | db2_field_precision


db2_field_precision

(PECL)

db2_field_precision -- Returns the precision of the indicated column in a result set

Описание

int db2_field_precision ( resource stmt, mixed column )

Returns the precision of the indicated column in a result set.

Список параметров

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Возвращаемые значения

Returns an integer containing the precision of the specified column. If the specified column does not exist in the result set, db2_field_precision() returns FALSE.

Смотрите также

db2_field_display_size()
db2_field_name()
db2_field_num()
db2_field_scale()
db2_field_type()
db2_field_width()

Пред. | Начало | След.
db2_field_num | Уровень выше | db2_field_scale


db2_field_scale

(PECL)

db2_field_scale -- Returns the scale of the indicated column in a result set

Описание

int db2_field_scale ( resource stmt, mixed column )

Returns the scale of the indicated column in a result set.

Список параметров

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Возвращаемые значения

Returns an integer containing the scale of the specified column. If the specified column does not exist in the result set, db2_field_scale() returns FALSE.

Смотрите также

db2_field_display_size()
db2_field_name()
db2_field_num()
db2_field_precision()
db2_field_type()
db2_field_width()

Пред. | Начало | След.
db2_field_precision | Уровень выше | db2_field_type


db2_field_type

(PECL)

db2_field_type -- Returns the data type of the indicated column in a result set

Описание

string db2_field_type ( resource stmt, mixed column )

Returns the data type of the indicated column in a result set.

Список параметров

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Возвращаемые значения

Returns a string containing the defined data type of the specified column. If the specified column does not exist in the result set, db2_field_type() returns FALSE.

Смотрите также

db2_field_display_size()
db2_field_name()
db2_field_num()
db2_field_precision()
db2_field_scale()
db2_field_width()

Пред. | Начало | След.
db2_field_scale | Уровень выше | db2_field_width


db2_field_width

(PECL)

db2_field_width -- Returns the width of the current value of the indicated column in a result set

Описание

int db2_field_width ( resource stmt, mixed column )

Returns the width of the current value of the indicated column in a result set. This is the maximum width of the column for a fixed-length data type, or the actual width of the column for a variable-length data type.

Список параметров

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Возвращаемые значения

Returns an integer containing the width of the specified character or binary data type column in a result set. If the specified column does not exist in the result set, db2_field_width() returns FALSE.

Смотрите также

db2_field_display_size()
db2_field_name()
db2_field_num()
db2_field_precision()
db2_field_scale()
db2_field_type()

Пред. | Начало | След.
db2_field_type | Уровень выше | db2_foreign_keys


db2_foreign_keys

(PECL)

db2_foreign_keys -- Returns a result set listing the foreign keys for a table

Описание

resource db2_foreign_keys ( resource connection, string qualifier, string schema, string table-name )

Returns a result set listing the foreign keys for a table.

Список параметров

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the tables. If schema is NULL, db2_foreign_keys() matches the schema for the current connection.

table-name

The name of the table.

Возвращаемые значения

Returns a statement resource with a result set containing rows describing the foreign keys for the specified table. The result set is composed of the following columns:

Column name | Description
PKTABLE_CAT | Name of the catalog for the table containing the primary key. The value is NULL if this table does not have catalogs.
PKTABLE_SCHEM | Name of the schema for the table containing the primary key.
PKTABLE_NAME | Name of the table containing the primary key.
PKCOLUMN_NAME | Name of the column containing the primary key.
FKTABLE_CAT | Name of the catalog for the table containing the foreign key. The value is NULL if this table does not have catalogs.
FKTABLE_SCHEM | Name of the schema for the table containing the foreign key.
FKTABLE_NAME | Name of the table containing the foreign key.
FKCOLUMN_NAME | Name of the column containing the foreign key.
KEY_SEQ | 1-indexed position of the column in the key.
UPDATE_RULE | Integer value representing the action applied to the foreign key when the SQL operation is UPDATE.
DELETE_RULE | Integer value representing the action applied to the foreign key when the SQL operation is DELETE.
FK_NAME | The name of the foreign key.
PK_NAME | The name of the primary key.
DEFERRABILITY | An integer value representing whether the foreign key deferrability is SQL_INITIALLY_DEFERRED, SQL_INITIALLY_IMMEDIATE, or SQL_NOT_DEFERRABLE.

Смотрите также

db2_column_privileges()
db2_columns()
db2_primary_keys()
db2_procedure_columns()
db2_procedures()
db2_special_columns()
db2_statistics()
db2_table_privileges()
db2_tables()

Пред. | Начало | След.
db2_field_width | Уровень выше | db2_free_result


db2_free_result

(PECL)

db2_free_result -- Frees resources associated with a result set

Описание

bool db2_free_result ( resource stmt )

Frees the system and database resources that are associated with a result set. These resources are freed implicitly when a script finishes, but you can call db2_free_result() to explicitly free the result set resources before the end of the script.

Список параметров

stmt

A valid statement resource.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

db2_free_stmt()

Пред. | Начало | След.
db2_foreign_keys | Уровень выше | db2_free_stmt


db2_free_stmt

(PECL)

db2_free_stmt -- Frees resources associated with the indicated statement resource

Описание

bool db2_free_stmt ( resource stmt )

Frees the system and database resources that are associated with a statement resource. These resources are freed implicitly when a script finishes, but you can call db2_free_stmt() to explicitly free the statement resources before the end of the script.

Список параметров

stmt

A valid statement resource.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

db2_free_result()

Пред. | Начало | След.
db2_free_result | Уровень выше | db2_next_result


db2_next_result

(PECL)

db2_next_result -- Requests the next result set from a stored procedure

Описание

resource db2_next_result ( resource stmt )

A stored procedure can return zero or more result sets. While you handle the first result set in exactly the same way you would handle the results returned by a simple SELECT statement, to fetch the second and subsequent result sets from a stored procedure you must call the db2_next_result() function and return the result to a uniquely named PHP variable.

Список параметров

stmt

A prepared statement returned from db2_exec() or db2_execute().

Возвращаемые значения

Returns a new statement resource containing the next result set if the stored procedure returned another result set. Returns FALSE if the stored procedure did not return another result set.

Примеры

Пример 1. Calling a stored procedure that returns multiple result sets

In the following example, we call a stored procedure that returns three result sets. The first result set is fetched directly from the same statement resource on which we invoked the CALL statement, while the second and third result sets are fetched from statement resources returned from our calls to the db2_next_result() function.

<?php
$conn = db2_connect($database, $user, $password);

if ($conn) {
  $stmt = db2_exec($conn, 'CALL multiResults()');

  print "Fetching first result set\n";
  while ($row = db2_fetch_array($stmt)) {
    var_dump($row);
  }

  print "\nFetching second result set\n";
  $res = db2_next_result($stmt);
  if ($res) {
    while ($row = db2_fetch_array($res)) {
      var_dump($row);
    }
  }

  print "\nFetching third result set\n";
  $res2 = db2_next_result($stmt);
  if ($res2) {
    while ($row = db2_fetch_array($res2)) {
      var_dump($row);
    }
  }

  db2_close($conn);
}
?>

Результат выполнения данного примера:

Fetching first result set
array(2) {
  [0]=>
  string(16) "Bubbles         "
  [1]=>
  int(3)
}
array(2) {
  [0]=>
  string(16) "Gizmo           "
  [1]=>
  int(4)
}

Fetching second result set
array(4) {
  [0]=>
  string(16) "Sweater         "
  [1]=>
  int(6)
  [2]=>
  string(5) "llama"
  [3]=>
  string(6) "150.00"
}
array(4) {
  [0]=>
  string(16) "Smarty          "
  [1]=>
  int(2)
  [2]=>
  string(5) "horse"
  [3]=>
  string(6) "350.00"
}

Fetching third result set
array(1) {
  [0]=>
  string(16) "Bubbles         "
}
array(1) {
  [0]=>
  string(16) "Gizmo           "
}

Пред. | Начало | След.
db2_free_stmt | Уровень выше | db2_num_fields


db2_num_fields

(PECL)

db2_num_fields -- Returns the number of fields contained in a result set

Описание

int db2_num_fields ( resource stmt )

Returns the number of fields contained in a result set. This is most useful for handling the result sets returned by dynamically generated queries, or for result sets returned by stored procedures, where your application cannot otherwise know how to retrieve and use the results.

Список параметров

stmt

A valid statement resource containing a result set.

Возвращаемые значения

Returns an integer value representing the number of fields in the result set associated with the specified statement resource. Returns FALSE if the statement resource is not a valid input value.

Примеры

Пример 1. Retrieving the number of fields in a result set

The following example demonstrates how to retrieve the number of fields returned in a result set.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, $sql);
$columns = db2_num_fields($stmt);

echo "There are {$columns} columns in the result set.";
?>

Результат выполнения данного примера:

There are 4 columns in the result set.

Смотрите также

db2_execute()
db2_field_display_size()
db2_field_name()
db2_field_num()
db2_field_precision()
db2_field_scale()
db2_field_type()
db2_field_width()

Пред. | Начало | След.
db2_next_result | Уровень выше | db2_num_rows


db2_num_rows

(PECL)

db2_num_rows -- Returns the number of rows affected by an SQL statement

Описание

int db2_num_rows ( resource stmt )

Returns the number of rows deleted, inserted, or updated by an SQL statement.

To determine the number of rows that will be returned by a SELECT statement, issue SELECT COUNT(*) with the same predicates as your intended SELECT statement and retrieve the value.

If your application logic checks the number of rows returned by a SELECT statement and branches if the number of rows is 0, consider modifying your application to attempt to return the first row with one of db2_fetch_assoc(), db2_fetch_both(), db2_fetch_array(), or db2_fetch_row(), and branch if the fetch function returns FALSE.

Замечание: If you issue a SELECT statement using a scrollable cursor, db2_num_rows() returns the number of rows returned by the SELECT statement. However, the overhead associated with scrollable cursors significantly degrades the performance of your application, so if this is the only reason you are considering using scrollable cursors, you should use a forward-only cursor and either call SELECT COUNT(*) or rely on the boolean return value of the fetch functions to achieve the equivalent functionality with much better performance.

Список параметров

stmt

A valid stmt resource containing a result set.

Возвращаемые значения

Returns the number of rows affected by the last SQL statement issued by the specified statement handle.

Пред. | Начало | След.
db2_num_fields | Уровень выше | db2_pconnect


db2_pconnect

(PECL)

db2_pconnect -- Returns a persistent connection to a database

Описание

resource db2_pconnect ( string database, string username, string password [, array options] )

Returns a persistent connection to an IBM DB2 Universal Database, IBM Cloudscape, or Apache Derby database. For more information on persistent connections, refer to Гл. 41.

Calling db2_close() on a persistent connection always returns TRUE, but the underlying DB2 client connection remains open and waiting to serve the next matching db2_pconnect() request.

Note that you are strongly urged to only use persistent connections on connections with autocommit turned on. If you attempt to combine transactions with persistent connections, issuing db2_commit() or db2_rollback() against a persistent connection will affect every persistent connection that is currently using the same underlying DB2 client connection. You may also rapidly experience locking escalation if you do not use autocommit for your persistent connections.

Список параметров

database

The database alias in the DB2 client catalog.

username

The username with which you are connecting to the database.

password

The password with which you are connecting to the database.

options

An associative array of connection options that affect the behavior of the connection, where valid array keys include:

autocommit

Passing the DB2_AUTOCOMMIT_ON value turns autocommit on for this connection handle.

Passing the DB2_AUTOCOMMIT_OFF value turns autocommit off for this connection handle.

Возвращаемые значения

Returns a connection handle resource if the connection attempt is successful. db2_pconnect() tries to reuse an existing connection resource that exactly matches the database, username, and password parameters. If the connection attempt fails, db2_pconnect() returns FALSE.

Примеры

Пример 1. A db2_pconnect() example

In the following example, the first call to db2_pconnect() returns a new persistent connection resource. The second call to db2_pconnect() returns a persistent connection resource that simply reuses the first persistent connection resource.

<?php
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';

$pconn = db2_pconnect($database, $user, $password);

if ($pconn) {
    echo "Persistent connection succeeded.";
}
else {
    echo "Persistent connection failed.";
}

$pconn2 = db2_pconnect($database, $user, $password);
if ($pconn) {
    echo "Second persistent connection succeeded.";
}
else {
    echo "Second persistent connection failed.";
}
?>

Результат выполнения данного примера:

Persistent connection succeeded.
Second persistent connection succeeded.

Смотрите также

db2_connect()

Пред. | Начало | След.
db2_num_rows | Уровень выше | db2_prepare


db2_prepare

(PECL)

db2_prepare -- Prepares an SQL statement to be executed

Описание

resource db2_prepare ( resource connection, string statement [, array options] )

db2_prepare() creates a prepared SQL statement which can include 0 or more parameter markers (? characters) representing parameters for input, output, or input/output. You can pass parameters to the prepared statement using db2_bind_param(), or for input values only, as an array passed to db2_execute().

There are three main advantages to using prepared statements in your application:

  • Performance: when you prepare a statement, the database server creates an optimized access plan for retrieving data with that statement. Subsequently issuing the prepared statement with db2_execute() enables the statements to reuse that access plan and avoids the overhead of dynamically creating a new access plan for every statement you issue.

  • Security: when you prepare a statement, you can include parameter markers for input values. When you execute a prepared statement with input values for placeholders, the database server checks each input value to ensure that the type matches the column definition or parameter definition.

  • Advanced functionality: Parameter markers not only enable you to pass input values to prepared SQL statements, they also enable you to retrieve OUT and INOUT parameters from stored procedures using db2_bind_param().

Список параметров

connection

A valid database connection resource variable as returned from db2_connect() or db2_pconnect().

statement

An SQL statement, optionally containing one or more parameter markers..

options

An associative array containing statement options. You can use this parameter to request a scrollable cursor on database servers that support this functionality.

cursor

Passing the DB2_FORWARD_ONLY value requests a forward-only cursor for this SQL statement. This is the default type of cursor, and it is supported by all database servers. It is also much faster than a scrollable cursor.

Passing the DB2_SCROLLABLE value requests a scrollable cursor for this SQL statement. This type of cursor enables you to fetch rows non-sequentially from the database server. However, it is only supported by DB2 servers, and is much slower than forward-only cursors.

Возвращаемые значения

Returns a statement resource if the SQL statement was successfully parsed and prepared by the database server. Returns FALSE if the database server returned an error. You can determine which error was returned by calling db2_stmt_error() or db2_stmt_errormsg().

Примеры

Пример 1. Preparing and executing an SQL statement with parameter markers

The following example prepares an INSERT statement that accepts four parameter markers, then iterates over an array of arrays containing the input values to be passed to db2_execute().

<?php
$animals = array(
    array(0, 'cat', 'Pook', 3.2),
    array(1, 'dog', 'Peaches', 12.3),
    array(2, 'horse', 'Smarty', 350.0),
);

$insert = 'INSERT INTO animals (id, breed, name, weight)
    VALUES (?, ?, ?, ?)';
$stmt = db2_prepare($conn, $insert);
if ($stmt) {
    foreach ($animals as $animal) {
        $result = db2_execute($stmt, $animal);
    }
}
?>

Смотрите также

db2_bind_param()
db2_execute()
db2_stmt_error()
db2_stmt_errormsg()

Пред. | Начало | След.
db2_pconnect | Уровень выше | db2_primary_keys


db2_primary_keys

(PECL)

db2_primary_keys -- Returns a result set listing primary keys for a table

Описание

resource db2_primary_keys ( resource connection, string qualifier, string schema, string table-name )

Returns a result set listing the primary keys for a table.

Список параметров

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the tables. If schema is NULL, db2_primary_keys() matches the schema for the current connection.

table-name

The name of the table.

Возвращаемые значения

Returns a statement resource with a result set containing rows describing the primary keys for the specified table. The result set is composed of the following columns:

Column name | Description
TABLE_CAT | Name of the catalog for the table containing the primary key. The value is NULL if this table does not have catalogs.
TABLE_SCHEM | Name of the schema for the table containing the primary key.
TABLE_NAME | Name of the table containing the primary key.
COLUMN_NAME | Name of the column containing the primary key.
KEY_SEQ | 1-indexed position of the column in the key.
PK_NAME | The name of the primary key.

Смотрите также

db2_column_privileges()
db2_columns()
db2_foreign_keys()
db2_procedure_columns()
db2_procedures()
db2_special_columns()
db2_statistics()
db2_table_privileges()
db2_tables()

Пред. | Начало | След.
db2_prepare | Уровень выше | db2_procedure_columns


db2_procedure_columns

(PECL)

db2_procedure_columns -- Returns a result set listing stored procedure parameters

Описание

resource db2_procedure_columns ( resource connection, string qualifier, string schema, string procedure, string parameter )

Returns a result set listing the parameters for one or more stored procedures.

Список параметров

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the procedures. This parameter accepts a search pattern containing _ and % as wildcards.

procedure

The name of the procedure. This parameter accepts a search pattern containing _ and % as wildcards.

parameter

The name of the parameter. This parameter accepts a search pattern containing _ and % as wildcards. If this parameter is NULL, all parameters for the specified stored procedures are returned.

Возвращаемые значения

Returns a statement resource with a result set containing rows describing the parameters for the stored procedures matching the specified parameters. The rows are composed of the following columns:

Column name | Description
PROCEDURE_CAT | The catalog that contains the procedure. The value is NULL if this table does not have catalogs.
PROCEDURE_SCHEM | Name of the schema that contains the stored procedure.
PROCEDURE_NAME | Name of the procedure.
COLUMN_NAME | Name of the parameter.
COLUMN_TYPE

An integer value representing the type of the parameter:

Return value | Parameter type
1 (SQL_PARAM_INPUT) | Input (IN) parameter.
2 (SQL_PARAM_INPUT_OUTPUT) | Input/output (INOUT) parameter.
3 (SQL_PARAM_OUTPUT) | Output (OUT) parameter.

DATA_TYPE | The SQL data type for the parameter represented as an integer value.
TYPE_NAME | A string representing the data type for the parameter.
COLUMN_SIZE | An integer value representing the size of the parameter.
BUFFER_LENGTH | Maximum number of bytes necessary to store data for this parameter.
DECIMAL_DIGITS | The scale of the parameter, or NULL where scale is not applicable.
NUM_PREC_RADIX | An integer value of either 10 (representing an exact numeric data type), 2 (representing an approximate numeric data type), or NULL (representing a data type for which radix is not applicable).
NULLABLE | An integer value representing whether the parameter is nullable or not.
REMARKS | Description of the parameter.
COLUMN_DEF | Default value for the parameter.
SQL_DATA_TYPE | An integer value representing the size of the parameter.
SQL_DATETIME_SUB | Returns an integer value representing a datetime subtype code, or NULL for SQL data types to which this does not apply.
CHAR_OCTET_LENGTH | Maximum length in octets for a character data type parameter, which matches COLUMN_SIZE for single-byte character set data, or NULL for non-character data types.
ORDINAL_POSITION | The 1-indexed position of the parameter in the CALL statement.
IS_NULLABLE | A string value where 'YES' means that the parameter accepts or returns NULL values and 'NO' means that the parameter does not accept or return NULL values.

Смотрите также

db2_column_privileges()
db2_columns()
db2_foreign_keys()
db2_primary_keys()
db2_procedures()
db2_special_columns()
db2_statistics()
db2_table_privileges()
db2_tables()

Пред. | Начало | След.
db2_primary_keys | Уровень выше | db2_procedures


db2_procedures

(PECL)

db2_procedures -- Returns a result set listing the stored procedures registered in a database

Описание

resource db2_procedures ( resource connection, string qualifier, string schema, string procedure )

Returns a result set listing the stored procedures registered in a database.

Список параметров

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the procedures. This parameter accepts a search pattern containing _ and % as wildcards.

procedure

The name of the procedure. This parameter accepts a search pattern containing _ and % as wildcards.

Возвращаемые значения

Returns a statement resource with a result set containing rows describing the stored procedures matching the specified parameters. The rows are composed of the following columns:

Column name | Description
PROCEDURE_CAT | The catalog that contains the procedure. The value is NULL if this table does not have catalogs.
PROCEDURE_SCHEM | Name of the schema that contains the stored procedure.
PROCEDURE_NAME | Name of the procedure.
NUM_INPUT_PARAMS | Number of input (IN) parameters for the stored procedure.
NUM_OUTPUT_PARAMS | Number of output (OUT) parameters for the stored procedure.
NUM_RESULT_SETS | Number of result sets returned by the stored procedure.
REMARKS | Any comments about the stored procedure.
PROCEDURE_TYPE | Always returns 1, indicating that the stored procedure does not return a return value.

Смотрите также

db2_column_privileges()
db2_columns()
db2_foreign_keys()
db2_primary_keys()
db2_procedure_columns()
db2_special_columns()
db2_statistics()
db2_table_privileges()
db2_tables()

Пред. | Начало | След.
db2_procedure_columns | Уровень выше | db2_result


db2_result

(PECL)

db2_result -- Returns a single column from a row in the result set

Описание

mixed db2_result ( resource stmt, mixed column )

Use db2_result() to return the value of a specified column in the current row of a result set. You must call db2_fetch_row() before calling db2_result() to set the location of the result set pointer.

Список параметров

stmt

A valid stmt resource.

column

Either an integer mapping to the 0-indexed field in the result set, or a string matching the name of the column.

Возвращаемые значения

Returns the value of the requested field if the field exists in the result set. Returns NULL if the field does not exist, and issues a warning.

Примеры

Пример 1. A db2_result() example

The following example demonstrates how to iterate through a result set with db2_fetch_row() and retrieve columns from the result set with db2_result().

<?php
$sql = 'SELECT name, breed FROM animals WHERE weight < ?';
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, array(10));
while (db2_fetch_row($stmt)) {
    $name = db2_result($stmt, 0);
    $breed = db2_result($stmt, 'BREED');
    print "$name $breed";
}
?>

Результат выполнения данного примера:

cat Pook
gold fish Bubbles
budgerigar Gizmo
goat Rickety Ride

Смотрите также

db2_fetch_array()
db2_fetch_assoc()
db2_fetch_both()
db2_fetch_object()
db2_fetch_row()

Пред. | Начало | След.
db2_procedures | Уровень выше | db2_rollback


db2_rollback

(PECL)

db2_rollback -- Rolls back a transaction

Описание

bool db2_rollback ( resource connection )

Rolls back an in-progress transaction on the specified connection resource and begins a new transaction. PHP applications normally default to AUTOCOMMIT mode, so db2_rollback() normally has no effect unless AUTOCOMMIT has been turned off for the connection resource.

Замечание: If the specified connection resource is a persistent connection, all transactions in progress for all applications using that persistent connection will be rolled back. For this reason, persistent connections are not recommended for use in applications that require transactions.

Список параметров

connection

A valid database connection resource variable as returned from db2_connect() or db2_pconnect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Rolling back a DELETE statement

In the following example, we count the number of rows in a table, turn off AUTOCOMMIT mode on a database connection, delete all of the rows in the table and return the count of 0 to prove that the rows have been removed. We then issue db2_rollback() and return the updated count of rows in the table to show that the number is the same as before we issued the DELETE statement. The return to the original state of the table demonstrates that the roll back of the transaction succeeded.

<?php
$conn = db2_connect($database, $user, $password);

if ($conn) {
    $stmt = db2_exec($conn, "SELECT count(*) FROM animals");
    $res = db2_fetch_array( $stmt );
    echo $res[0] . "\n";

    // Turn AUTOCOMMIT off
    db2_autocommit($conn, DB2_AUTOCOMMIT_OFF);

    // Delete all rows from ANIMALS
    db2_exec($conn, "DELETE FROM animals");

    $stmt = db2_exec($conn, "SELECT count(*) FROM animals");
    $res = db2_fetch_array( $stmt );
    echo $res[0] . "\n";

    // Roll back the DELETE statement
    db2_rollback( $conn );

    $stmt = db2_exec( $conn, "SELECT count(*) FROM animals" );
    $res = db2_fetch_array( $stmt );
    echo $res[0] . "\n";
    db2_close($conn);
}
?>

Результат выполнения данного примера:

7
0
7

Смотрите также

db2_autocommit()
db2_commit()

Пред. | Начало | След.
db2_result | Уровень выше | db2_server_info


db2_special_columns

(PECL)

db2_special_columns -- Returns a result set listing the unique row identifier columns for a table

Описание

resource db2_special_columns ( resource connection, string qualifier, string schema, string table_name, int scope )

Returns a result set listing the unique row identifier columns for a table.

Список параметров

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the tables.

table_name

The name of the table.

scope

Integer value representing the minimum duration for which the unique row identifier is valid. This can be one of the following values:

Integer value | SQL constant | Description
0 | SQL_SCOPE_CURROW | Row identifier is valid only while the cursor is positioned on the row.
1 | SQL_SCOPE_TRANSACTION | Row identifier is valid for the duration of the transaction.
2 | SQL_SCOPE_SESSION | Row identifier is valid for the duration of the connection.

Возвращаемые значения

Returns a statement resource with a result set containing rows with unique row identifier information for a table. The rows are composed of the following columns:

Column name | Description
SCOPE

Integer value | SQL constant | Description
0 | SQL_SCOPE_CURROW | Row identifier is valid only while the cursor is positioned on the row.
1 | SQL_SCOPE_TRANSACTION | Row identifier is valid for the duration of the transaction.
2 | SQL_SCOPE_SESSION | Row identifier is valid for the duration of the connection.

COLUMN_NAME | Name of the unique column.
DATA_TYPE | SQL data type for the column.
TYPE_NAME | Character string representation of the SQL data type for the column.
COLUMN_SIZE | An integer value representing the size of the column.
BUFFER_LENGTH | Maximum number of bytes necessary to store data from this column.
DECIMAL_DIGITS | The scale of the column, or NULL where scale is not applicable.
NUM_PREC_RADIX | An integer value of either 10 (representing an exact numeric data type), 2 (representing an approximate numeric data type), or NULL (representing a data type for which radix is not applicable).
PSEUDO_COLUMN | Always returns 1.

Смотрите также

db2_column_privileges()
db2_columns()
db2_foreign_keys()
db2_primary_keys()
db2_procedure_columns()
db2_procedures()
db2_statistics()
db2_table_privileges()
db2_tables()

Пред. | Начало | След.
db2_server_info | Уровень выше | db2_statistics


db2_statistics

(PECL)

db2_statistics -- Returns a result set listing the index and statistics for a table

Описание

resource db2_statistics ( resource connection, string qualifier, string schema, string table-name, bool unique )

Returns a result set listing the index and statistics for a table.

Список параметров

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema that contains the targeted table. If this parameter is NULL, the statistics and indexes are returned for the schema of the current user.

table_name

The name of the table.

unique

An integer value representing the type of index information to return.

0

Return only the information for unique indexes on the table.

1

Return the information for all indexes on the table.

Возвращаемые значения

Returns a statement resource with a result set containing rows describing the statistics and indexes for the base tables matching the specified parameters. The rows are composed of the following columns:

Column name | Description
TABLE_CAT | The catalog that contains the table. The value is NULL if this table does not have catalogs.
TABLE_SCHEM | Name of the schema that contains the table.
TABLE_NAME | Name of the table.
NON_UNIQUE

An integer value representing whether the index prohibits unique values, or whether the row represents statistics on the table itself:

Return value | Parameter type
0 (SQL_FALSE) | The index allows duplicate values.
1 (SQL_TRUE) | The index values must be unique.
NULL | This row is statistics information for the table itself.

INDEX_QUALIFIER | A string value representing the qualifier that would have to be prepended to INDEX_NAME to fully qualify the index.
INDEX_NAME | A string representing the name of the index.
TYPE

An integer value representing the type of information contained in this row of the result set:

Return value | Parameter type
0 (SQL_TABLE_STAT) | The row contains statistics about the table itself.
1 (SQL_INDEX_CLUSTERED) | The row contains information about a clustered index.
2 (SQL_INDEX_HASH) | The row contains information about a hashed index.
3 (SQL_INDEX_OTHER) | The row contains information about a type of index that is neither clustered nor hashed.

ORDINAL_POSITION | The 1-indexed position of the column in the index. NULL if the row contains statistics information about the table itself.
COLUMN_NAME | The name of the column in the index. NULL if the row contains statistics information about the table itself.
ASC_OR_DESC | A if the column is sorted in ascending order, D if the column is sorted in descending order, NULL if the row contains statistics information about the table itself.
CARDINALITY

If the row contains information about an index, this column contains an integer value representing the number of unique values in the index.

If the row contains information about the table itself, this column contains an integer value representing the number of rows in the table.

PAGES

If the row contains information about an index, this column contains an integer value representing the number of pages used to store the index.

If the row contains information about the table itself, this column contains an integer value representing the number of pages used to store the table.

FILTER_CONDITION | Always returns NULL.

Смотрите также

db2_column_privileges()
db2_columns()
db2_foreign_keys()
db2_primary_keys()
db2_procedure_columns()
db2_procedures()
db2_special_columns()
db2_table_privileges()
db2_tables()

Пред. | Начало | След.
db2_special_columns | Уровень выше | db2_stmt_error


db2_stmt_error

(PECL)

db2_stmt_error -- Returns a string containing the SQLSTATE returned by an SQL statement

Описание

string db2_stmt_error ( [resource stmt] )

Returns a string containing the SQLSTATE value returned by an SQL statement.

If you do not pass a statement resource as an argument to db2_stmt_error(), the driver returns the SQLSTATE value associated with the last attempt to return a statement resource, for example, from db2_prepare() or db2_exec().

To learn what the SQLSTATE value means, you can issue the following command at a DB2 Command Line Processor prompt: db2 '? sqlstate-value'. You can also call db2_stmt_errormsg() to retrieve an explicit error message and the associated SQLCODE value.

Список параметров

stmt

A valid statement resource.

Возвращаемые значения

Returns a string containing an SQLSTATE value.

Смотрите также

db2_conn_error()
db2_conn_errormsg()
db2_stmt_errormsg()

Пред. | Начало | След.
db2_statistics | Уровень выше | db2_stmt_errormsg


db2_stmt_errormsg

(PECL)

db2_stmt_errormsg -- Returns a string containing the last SQL statement error message

Описание

string db2_stmt_errormsg ( [resource stmt] )

Returns a string containing the last SQL statement error message.

If you do not pass a statement resource as an argument to db2_stmt_errormsg(), the driver returns the error message associated with the last attempt to return a statement resource, for example, from db2_prepare() or db2_exec().

Список параметров

stmt

A valid statement resource.

Возвращаемые значения

Returns a string containing the error message and SQLCODE value for the last error that occurred issuing an SQL statement.

Смотрите также

db2_conn_error()
db2_conn_errormsg()
db2_stmt_error()

Пред. | Начало | След.
db2_stmt_error | Уровень выше | db2_table_privileges


db2_table_privileges

(PECL)

db2_table_privileges -- Returns a result set listing the tables and associated privileges in a database

Описание

resource db2_table_privileges ( resource connection [, string qualifier [, string schema [, string table_name]]] )

Returns a result set listing the tables and associated privileges in a database.

Список параметров

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the tables. This parameter accepts a search pattern containing _ and % as wildcards.

table_name

The name of the table. This parameter accepts a search pattern containing _ and % as wildcards.

Возвращаемые значения

Returns a statement resource with a result set containing rows describing the privileges for the tables that match the specified parameters. The rows are composed of the following columns:

Column name | Description
TABLE_CAT | The catalog that contains the table. The value is NULL if this table does not have catalogs.
TABLE_SCHEM | Name of the schema that contains the table.
TABLE_NAME | Name of the table.
GRANTOR | Authorization ID of the user who granted the privilege.
GRANTEE | Authorization ID of the user to whom the privilege was granted.
PRIVILEGE | The privilege that has been granted. This can be one of ALTER, CONTROL, DELETE, INDEX, INSERT, REFERENCES, SELECT, or UPDATE.
IS_GRANTABLE | A string value of "YES" or "NO" indicating whether the grantee can grant the privilege to other users.

Смотрите также

db2_column_privileges()
db2_columns()
db2_foreign_keys()
db2_primary_keys()
db2_procedure_columns()
db2_procedures()
db2_special_columns()
db2_statistics()
db2_tables()

Пред. | Начало | След.
db2_stmt_errormsg | Уровень выше | db2_tables


db2_tables

(PECL)

db2_tables -- Returns a result set listing the tables and associated metadata in a database

Описание

resource db2_tables ( resource connection [, string qualifier [, string schema [, string table-name [, string table-type]]]] )

Returns a result set listing the tables and associated metadata in a database.

Список параметров

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the tables. This parameter accepts a search pattern containing _ and % as wildcards.

table-name

The name of the table. This parameter accepts a search pattern containing _ and % as wildcards.

table-type

A list of comma-delimited table type identifiers. To match all table types, pass NULL or an empty string. Valid table type identifiers include: ALIAS, HIERARCHY TABLE, INOPERATIVE VIEW, NICKNAME, MATERIALIZED QUERY TABLE, SYSTEM TABLE, TABLE, TYPED TABLE, TYPED VIEW, and VIEW.

Возвращаемые значения

Returns a statement resource with a result set containing rows describing the tables that match the specified parameters. The rows are composed of the following columns:

Column name | Description
TABLE_CAT | The catalog that contains the table. The value is NULL if this table does not have catalogs.
TABLE_SCHEM | Name of the schema that contains the table.
TABLE_NAME | Name of the table.
TABLE_TYPE | Table type identifier for the table.
REMARKS | Description of the table.

Смотрите также

db2_column_privileges()
db2_columns()
db2_foreign_keys()
db2_primary_keys()
db2_procedure_columns()
db2_procedures()
db2_special_columns()
db2_statistics()
db2_table_privileges()

Пред. | Начало | След.
db2_table_privileges | Уровень выше | ICAP Functions [deprecated]


ICAP Functions [deprecated]

Руководство по PHP
Пред. След.

LIII. ICAP Functions [deprecated]

Введение

Замечание: Icap will be removed in near future. Neither this module, nor those versions of icap library are supported any longer. If you want to use calendar capabilities in PHP, use mcal instead.

Требования

The icap library has to be installed, which is not longer supported and available.

Установка

To get these functions to work, you have to compile PHP with --with-icap.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Содержание
icap_close -- Close an ICAP stream
icap_create_calendar -- Create a new calendar
icap_delete_calendar -- Delete a calendar
icap_delete_event -- Delete an event from an ICAP calendar
icap_fetch_event -- Fetches an event from the calendar stream/
icap_list_alarms -- Return a list of events that has an alarm triggered at the given datetime
icap_list_events -- Return a list of events between two given datetimes
icap_open -- Opens up an ICAP connection
icap_rename_calendar -- Rename a calendar
icap_reopen -- Reopen ICAP stream to new calendar
icap_snooze -- Snooze an alarm
icap_store_event -- Store an event into an ICAP calendar

Пред. | Начало | След.
db2_tables | Уровень выше | icap_close


icap_close

(no version information, might be only in CVS)

icap_close -- Close an ICAP stream

Description

int icap_close ( int icap_stream [, int flags] )

Closes the given icap stream.

Пред. | Начало | След.
ICAP Functions [deprecated] | Уровень выше | icap_create_calendar


icap_create_calendar

(PHP 4 <= 4.2.3)

icap_create_calendar -- Create a new calendar

Description

string icap_create_calendar ( int stream_id, string calendar )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
icap_close | Уровень выше | icap_delete_calendar


icap_delete_calendar

(PHP 4 <= 4.2.3)

icap_delete_calendar -- Delete a calendar

Description

string icap_delete_calendar ( int stream_id, string calendar )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
icap_create_calendar | Уровень выше | icap_delete_event


icap_delete_event

(PHP 4 <= 4.2.3)

icap_delete_event -- Delete an event from an ICAP calendar

Description

string icap_delete_event ( int stream_id, int uid )

icap_delete_event() deletes the calendar event specified by the uid.

Returns TRUE.

Пред. | Начало | След.
icap_delete_calendar | Уровень выше | icap_fetch_event


icap_fetch_event

(PHP 4 <= 4.2.3)

icap_fetch_event -- Fetches an event from the calendar stream/

Description

int icap_fetch_event ( int stream_id, int event_id [, int options] )

icap_fetch_event() fetches an event from the calendar stream specified by event_id.

Returns an event object consisting of:

  • int id - ID of that event.

  • int public - TRUE if the event if public, FALSE if it is private.

  • string category - Category string of the event.

  • string title - Title string of the event.

  • string description - Description string of the event.

  • int alarm - number of minutes before the event to send an alarm/reminder.

  • object start - Object containing a datetime entry.

  • object end - Object containing a datetime entry.

All datetime entries consist of an object that contains:

  • int year - year

  • int month - month

  • int mday - day of month

  • int hour - hour

  • int min - minutes

  • int sec - seconds

Пред. | Начало | След.
icap_delete_event | Уровень выше | icap_list_alarms


icap_list_alarms

(PHP 4 <= 4.2.3)

icap_list_alarms -- Return a list of events that has an alarm triggered at the given datetime

Description

int icap_list_alarms ( int stream_id, array date, array time )

Returns an array of event ID's that has an alarm going off at the given datetime.

icap_list_alarms() function takes in a datetime for a calendar stream. An array of event id's that has an alarm should be going off at the datetime are returned.

All datetime entries consist of an object that contains:

  • int year - year

  • int month - month

  • int mday - day of month

  • int hour - hour

  • int min - minutes

  • int sec - seconds

Пред. | Начало | След.
icap_fetch_event | Уровень выше | icap_list_events


icap_list_events

(PHP 4 <= 4.2.3)

icap_list_events -- Return a list of events between two given datetimes

Description

array icap_list_events ( int stream_id, int begin_date [, int end_date] )

Returns an array of event ID's that are between the two given datetimes.

icap_list_events() function takes in a beginning datetime and an end datetime for a calendar stream. An array of event id's that are between the given datetimes are returned.

All datetime entries consist of an object that contains:

  • int year - year

  • int month - month

  • int mday - day of month

  • int hour - hour

  • int min - minutes

  • int sec - seconds

Пред. | Начало | След.
icap_list_alarms | Уровень выше | icap_open


icap_open

(PHP 4 <= 4.2.3)

icap_open -- Opens up an ICAP connection

Description

resource icap_open ( string calendar, string username, string password, string options )

Returns an ICAP stream on success, FALSE on error.

icap_open() opens up an ICAP connection to the specified calendar store. If the optional options is specified, passes the options to that mailbox also.

Пред. | Начало | След.
icap_list_events | Уровень выше | icap_rename_calendar


icap_rename_calendar

(PHP 4 <= 4.2.3)

icap_rename_calendar -- Rename a calendar

Description

string icap_rename_calendar ( int stream_id, string old_name, string new_name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
icap_open | Уровень выше | icap_reopen


icap_reopen

(PHP 4 <= 4.2.3)

icap_reopen -- Reopen ICAP stream to new calendar

Description

int icap_reopen ( int stream_id, string calendar [, int options] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
icap_rename_calendar | Уровень выше | icap_snooze


icap_snooze

(PHP 4 <= 4.2.3)

icap_snooze -- Snooze an alarm

Description

string icap_snooze ( int stream_id, int uid )

icap_snooze() turns on an alarm for a calendar event specified by the uid.

Returns TRUE.

Пред. | Начало | След.
icap_reopen | Уровень выше | icap_store_event


icap_store_event

(PHP 4 <= 4.2.3)

icap_store_event -- Store an event into an ICAP calendar

Description

string icap_store_event ( int stream_id, object event )

icap_store_event() Stores an event into an ICAP calendar. An event object consists of:

  • int public - 1 if public, 0 if private;

  • string category - Category string of the event.

  • string title - Title string of the event.

  • string description - Description string of the event.

  • int alarm - Number of minutes before the event to send out an alarm.

  • datetime start - datetime object of the start of the event.

  • datetime end - datetime object of the end of the event.

All datetime entries consist of an object that contains:

  • int year - year

  • int month - month

  • int mday - day of month

  • int hour - hour

  • int min - minutes

  • int sec - seconds

Returns TRUE on success and FALSE on error.

Пред. | Начало | След.
icap_snooze | Уровень выше | Функции iconv


Функции iconv

Руководство по PHP
Пред. След.

LIV. Функции iconv

Введение

Это расширение предоставляет интерфейс к библиотеке преобразования кодировок iconv. Набор поддерживаемых кодировок зависит от реализации iconv в вашей системе. На некоторых платформах iconv может работать ненормально, в таких случаях рекомендуется установить библиотеку GNU libiconv.

Начиная с PHP 5.0.0, это в расширение добавлены некоторые вспомогательные функции, помогающие при написании сценариев, работающих с несколькими языками.

Требования

Операционные системы, отвечающие стандартам POSIX, поставляются с C-библиотеками, предоставляющими функциональность iconv. Иначе, вам придётся установить библиотеку libiconv от GNU.

Установка

Чтобы расширение было доступно, нужно указать ключ --with-iconv[=DIR] при запуске сценария конфигурирования.

Примечание для пользователей Windows®: Чтобы расширение было доступно, поместите библиотеку с именем iconv.dll или iconv-1.3.dll (для версий до 4.2.1), которая входит в поставку PHP для Windows®, в одну из её системных папок.

Этот модуль является частью PHP начиная с версии 5, так что библиотеки iconv.dll и php_iconv.dll более не нужны.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Конфигурационные параметры, касающиеся Iconv

Параметр | Значение по умолчанию | Переменная окружения
iconv.input_encoding | ICONV_INPUT_ENCODING | PHP_INI_ALL
iconv.output_encoding | ICONV_OUTPUT_ENCODING | PHP_INI_ALL
iconv.internal_encoding | ICONV_INTERNAL_ENCODING | PHP_INI_ALL
Для подробностей о константах PHP_INI_* см. ini_set().

Замечание: На данный момент iconv.input_encoding никак не используется.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Начиная с PHP 4.3.0 возможно узнать во время выполнения, какая реализация iconv используется расширением.

Таблица 2. Константы iconv

Имя | Тип | Описание
ICONV_IMPL | string | Реализация
ICONV_VERSION | string | Версия реализации

Замечание: Используйте эти константы для написания сценариев, независимых от реализации.

Начиная с PHP 5.0.0, доступны также следующие константы:

Таблица 3. константы iconv, доступные начиная с PHP 5.0.0

Имя | Тип | Описание
ICONV_MIME_DECODE_STRICT | integer | Битовая маска, используемая для iconv_mime_decode()
ICONV_MIME_DECODE_CONTINUE_ON_ERROR | integer | Битовая маска, используемая для iconv_mime_decode()

Смотрите также

См. также Функции GNU Recode.

Содержание
iconv_get_encoding -- Возвращает значение внутренних переменных расширения
iconv_mime_decode_headers -- Декодирует несколько полей заголовка MIME
iconv_mime_decode -- Decodes a MIME header field
iconv_mime_encode -- Composes a MIME header field
iconv_set_encoding -- Устанавливает значение одной из внутренних переменных
iconv_strlen -- Возвращает количество символов в строке
iconv_strpos -- Возвращает позицию первого вхождения подстроки
iconv_strrpos -- Возвращает позицию последнего вхождения символа
iconv_substr -- Возвращает подстроку
iconv -- Преобразовывает символы строки в другую кодировку
ob_iconv_handler -- Convert character encoding as output buffer handler

Пред. | Начало | След.
icap_store_event | Уровень выше | iconv_get_encoding


iconv_get_encoding

(PHP 4 >= 4.0.5, PHP 5)

iconv_get_encoding -- Возвращает значение внутренних переменных расширения

Описание

mixed iconv_get_encoding ( [string type] )

Возвращает текущее значение указанной внутренней переменной, и FALSE в случае ошибки.

Возможные значения необязательного параметра type:

all
input_encoding
output_encoding
internal_encoding

Если type не указан, или равен "all", iconv_get_encoding() вернёт массив со сначениями всех переменных.

Пример 1. Пример использования iconv_get_encoding()

<pre>
<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("input_encoding", "WINDOWS-1251");
iconv_set_encoding("output_encoding", "KOI8-U");
var_dump(iconv_get_encoding('all'));
?>
</pre>

Результат выполнения приведенных выше команд:

Array
(
    [input_encoding] => WINDOWS-1251
    [output_encoding] => KOI8-U
    [internal_encoding] => UTF-8
)

См. также iconv_set_encoding() и ob_iconv_handler().

Пред. | Начало | След.
Функции iconv | Уровень выше | iconv_mime_decode_headers


iconv_mime_decode_headers

(PHP 5)

iconv_mime_decode_headers -- Декодирует несколько полей заголовка MIME

Описание

array iconv_mime_decode_headers ( string encoded_headers [, int mode [, string charset]] )

Возвращает ассоциативный массив с полями MIME-заголовка, переданного параметром encoded_headers, или FALSE в случае ошибки.

Каждый ключ элемента возвращаемого массива представляет отдельное имя поля, а сам элемент - его значение. если в заголовке несколько полей с одинаковым именем, они помещаются в подчинённый массив с числовыми индексами.

Параметр mode определяет поведение в случае обнаружения неправильного поля заголовка. можно указать любую комбинацию следующих битовых масок.

Таблица 1. Битовые маски iconv_mime_decode_headers()

Значение | Константа | Описание
1 | ICONV_MIME_DECODE_STRICT | Строго следовать стандартам, определённым в RFC2047. К сожалению, много проприетарных програм электронной почты не следуют стандартам, и, чтобы потокать им, этот режим по умолчанию отключён.
2 | ICONV_MIME_DECODE_CONTINUE_ON_ERROR | Попытаться продолжить обработку в случае обнаружения ошибки.

Если параметр charset опущен, предполагается, что кодировка строки string равна iconv.internal_charset.

Пример 1. Пример iconv_mime_decode_headers()

<?php
$headers_string = <<<EOF
Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=
To: example@example.com
Date: Thu, 1 Jan 1970 00:00:00 +0000
Message-Id: <example@example.com>
Received: from localhost (localhost [127.0.0.1]) by localhost
    with SMTP id example for <example@example.com>
    Thu, 1 Jan 1970 00:00:00 +0000 (UTC)
    (envelope-from example-return-0000-example=example.com@example.com)
Received: (qmail 0 invoked by uid 65534); 1 Thu 2003 00:00:00 +0000

EOF;

$headers =  iconv_mime_decode_headers($headers_string, 0, "ISO-8859-1");
print_r($headers);
?>

Результат выполнения данного примера:

Array
(
    [Subject] => Prьfung Prьfung
    [To] => example@example.com
    [Date] => Thu, 1 Jan 1970 00:00:00 +0000
    [Message-Id] => <example@example.com>
    [Received] => Array
        (
            [0] => from localhost (localhost [127.0.0.1]) by localhost with SMTP id example for <example@example.com>; Thu, 1 Jan 1970 00:00:00 +0000 (UTC) (envelope-from example-return-0000-example=example.com@example.com)
            [1] => (qmail 0 invoked by uid 65534); 1 Thu 2003 00:00:00 +0000
        )

)

См. также iconv_mime_decode(),
mb_decode_mimeheader(),
imap_mime_header_decode(),
imap_base64()
и imap_qprint().

Пред. | Начало | След.
iconv_get_encoding | Уровень выше | iconv_mime_decode


iconv_mime_decode

(PHP 5)

iconv_mime_decode -- Decodes a MIME header field

Description

string iconv_mime_decode ( string encoded_header [, int mode [, string charset]] )

Returns a decoded MIME field on success, or FALSE if an error occurs during the decoding.

mode determines the behaviour in the event iconv_mime_decode() encounters a malformed MIME header field. You can specify any combination of the following bitmasks.

Таблица 1. Bitmasks acceptable to iconv_mime_decode()

Value | Constant | Description
1 | ICONV_MIME_DECODE_STRICT | If set, the given header is decoded in full conformance with the standards defined in RFC2047. This option is disabled by default because there are a lot of broken mail user agents that don't follow the specification and don't produce correct MIME headers.
2 | ICONV_MIME_DECODE_CONTINUE_ON_ERROR | If set, iconv_mime_decode() attempts to continue to process the given header even though an error occurs.

The optional charset parameter specifies the character set to represent the result by. If omitted, iconv.internal_charset will be used.

Пример 1. iconv_mime_decode() example

<?php
// This yields "Subject: Pr?fung Pr?fung"
echo iconv_mime_decode("Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=",
                       0, "ISO-8859-1");
?>

See also iconv_mime_decode_headers(),
mb_decode_mimeheader(),
imap_mime_header_decode(),
imap_base64()
and imap_qprint().

Пред. | Начало | След.
iconv_mime_decode_headers | Уровень выше | iconv_mime_encode


iconv_mime_encode

(PHP 5)

iconv_mime_encode -- Composes a MIME header field

Description

string iconv_mime_encode ( string field_name, string field_value [, array preferences] )

Composes and returns a string that represents a valid MIME header field, which looks like the following:
Subject: =?ISO-8859-1?Q?Pr=FCfung_f=FCr?= Entwerfen von einer MIME kopfzeile
In the above example, "Subject" is the field name and the portion that begins with "=?ISO-8859-1?..." is the field value.

You can control the behaviour of iconv_mime_encode() by specifying an associative array that contains configuration items to the optional third parameter preferences. The items supported by iconv_mime_encode() are listed below. Note that item names are treated case-sensitive.

Таблица 1. Configuration items supported by iconv_mime_encode()

Item | Type | Description | Default value | Example
scheme | boolean | Specifies the method to encode a field value by. The value of this item may be either "B" or "Q", where "B" stands for base64 encoding scheme and "Q" stands for quoted-printable encoding scheme. | B | B
input-charset | string | Specifies the character set in which the first parameter field_name and the second parameter field_value are presented. If not given, iconv_mime_encode() assumes those parameters are presented to it in the iconv.internal_charset ini setting. | iconv.internal_charset | ISO-8859-1
output-charset | string | Specifies the character set to use to compose the MIME header. If not given, the same value as input-charset will be used. | the same value as input-charset | UTF-8
line-length | integer | Specifies the maximum length of the header lines. The resulting header is "folded" to a set of multiple lines in case the resulting header field would be longer than the value of this parameter, according to RFC2822 - Internet Message Format. If not given, the length will be limited to 76 characters. | 76 | 996
line-break-chars | string | Specifies the sequence of characters to append to each line as an end-of-line sign when "folding" is performed on a long header field. If not given, this defaults to "\r\n" (CR LF). Note that this parameter is always treated as an ASCII string regardless of the value of input-charset. | \r\n | \n

Пример 1. iconv_mime_encode() example:

<?php
$preferences = array(
    "input-charset" => "ISO-8859-1",
    "output-charset" => "UTF-8",
    "line-length" => 76,
    "line-break-chars" => "\n"
);
$preferences["scheme"] = "Q";
// This yields "Subject: =?UTF-8?Q?Pr=C3=BCfung_Pr=C3=BCfung?="
echo iconv_mime_encode("Subject", "Pr?fung Pr?fung", $preferences);

$preferences["scheme"] = "B";
// This yields "Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?="
echo iconv_mime_encode("Subject", "Pr?fung Pr?fung", $preferences);
?>

See also imap_binary(),
mb_encode_mimeheader()
and imap_8bit().

Пред. | Начало | След.
iconv_mime_decode | Уровень выше | iconv_set_encoding


iconv_set_encoding

(PHP 4 >= 4.0.5, PHP 5)

iconv_set_encoding -- Устанавливает значение одной из внутренних переменных

Описание

bool iconv_set_encoding ( string type, string charset )

Изменяет значение внутренней переменной, указанной параметром type, на charset. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Возможные значения параметра type:

input_encoding
output_encoding
internal_encoding

Пример 1. Пример использования iconv_set_encoding()

<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "WINDOWS-1251");
?>

См. также iconv_get_encoding() и ob_iconv_handler().

Пред. | Начало | След.
iconv_mime_encode | Уровень выше | iconv_strlen


iconv_strlen

(PHP 5)

iconv_strlen -- Возвращает количество символов в строке

Описание

int iconv_strlen ( string str [, string charset] )

Возвращает количество символов в str.

В отличие от strlen(), iconv_strlen() учитывает кодировку строки (например, юникод может быть и двух-, и четырёхбайтным).

Если параметр charset опущен, предполагается, что кодировка строки str равна iconv.internal_charset.

См. также strlen() и mb_strlen().

Пред. | Начало | След.
iconv_set_encoding | Уровень выше | iconv_strpos


iconv_strpos

(PHP 5)

iconv_strpos -- Возвращает позицию первого вхождения подстроки

Описание

int iconv_strpos ( string haystack, string needle [, int offset [, string charset]] )

Возвращает позицию первого вхождения подстроки needle в строку haystack.

Необязательный аргумент offset позволяет указать, с какого по счёту символа строки начинать поиск.

Если подстрока needle не найдена, iconv_strpos() возвращает FALSE.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и не относящееся к логическому типу значение, которое приводится к FALSE, например, 0 или "". За более подробной информации обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Если haystack или needle не является строкой, он приводится к целому и трактуется как код символа.

В отличие от strpos(), iconv_strpos() возвращает количество символов до подстроки, в не позицию вхождения в байтах. Символы считаются с учётом их кодировки charset.

Если параметр charset опущен, предполагается, что кодировка строки string равна iconv.internal_charset.

См. также strpos(), iconv_strrpos() и mb_strpos().

Пред. | Начало | След.
iconv_strlen | Уровень выше | iconv_strrpos


iconv_strrpos

(PHP 5)

iconv_strrpos -- Возвращает позицию последнего вхождения символа

Описание

string iconv_strrpos ( string haystack, string needle [, string charset] )

Возвращает позицию последнего вхождения needle в строку haystack.

Если подстрока needle не найдена, возвращает FALSE.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и не относящееся к логическому типу значение, которое приводится к FALSE, например, 0 или "". За более подробной информации обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Если haystack или needle не является строкой, он приводится к целому и трактуется как код символа.

В отличие от strpos(), iconv_strrpos() возвращает количество символов до подстроки, в не позицию вхождения в байтах. Символы считаются с учётом их кодировки charset.

См. также strrpos(), iconv_strpos() и mb_strrpos().

Пред. | Начало | След.
iconv_strpos | Уровень выше | iconv_substr


iconv_substr

(PHP 5)

iconv_substr -- Возвращает подстроку

Описание

string iconv_substr ( string str, int offset [, int length [, string charset]] )

Возвращает подстроку строки str длиной length, начинающуюся с позиции start.

Если start неотрицателен, возвращаемая подстрока начинается в позиции с индексом start от начала строки, считая от нуля.

Если start отрицательный, возвращаемая подстрока начинается с позиции start считая с конца строки str.

Если length положительный, возвращаемая строка будет не длиннее length символов. Если длина строки str меньше длины start, возвращается FALSE.

Если передан отрицательный length будет возвращено указанное этим аргументом число символов начиная с позиции start и заканчивая length в направлении от конца. Если start также отрицателен, начальная позиция считается относительно конца строки.

Обратите внмание, что параметры offset и length всегда представляют количество символов (в той или иной кодировке), а в substr() - количество байт. Если параметр charset опущен, предполагается, что кодировка строки str равна iconv.internal_charset.

См. также substr(), mb_substr() и mb_strcut().

Пред. | Начало | След.
iconv_strrpos | Уровень выше | iconv


iconv

(PHP 4 >= 4.0.5, PHP 5)

iconv -- Преобразовывает символы строки в другую кодировку

Описание

string iconv ( string in_charset, string out_charset, string str )

Производит преобразование кодировки символов строки str из начальной кодировки in_charset в конечную out_charset. Возвращает строку в новой кодировке, или FALSE в случае ошибки.

Если добавить //TRANSLIT к параметру out_charset будет включена транслитеризация. Это означает, что вслучае, когда символа нет в конечной кодировке, он заменяется одним или несколькими аналогами. Если добавить //IGNORE, то символы, которых нет в конечной кодировке, будут опущены. Иначе, будет возвращена строка str, обрезанная до первого недопустимого символа.

Пример 1. Пример использования iconv():

<?php
echo iconv("KOI8-U", "UTF-8", "Пора переходить на юникод.");
?>

Пред. | Начало | След.
iconv_substr | Уровень выше | ob_iconv_handler


ob_iconv_handler

(PHP 4 >= 4.0.5, PHP 5)

ob_iconv_handler -- Convert character encoding as output buffer handler

Description

string ob_iconv_handler ( string contents, int status )

It converts the string encoded in internal_encoding to output_encoding.

internal_encoding and output_encoding should be defined by iconv_set_encoding() or in the configuration file php.ini.

Пример 1. ob_iconv_handler() example:

<?php
ob_start("ob_iconv_handler"); // start output buffering
?>

See also iconv_get_encoding(), iconv_set_encoding() and output-control functions.

Пред. | Начало | След.
iconv | Уровень выше | ID3 Functions


ID3 Functions

Руководство по PHP
Пред. След.

LV. ID3 Functions

Введение

These functions let you read and manipulate ID3 tags. ID3 tags are used in MP3 files to store title of the song, as well as information about the artist, album, genre, year and track number.

Since version 0.2 it is also possible to extract text frames from ID3 v2.2+ tags.

Требования

Эти функции всегда доступны.

Установка

id3 is part of PECL and can be installed using the PEAR installer. To compile PHP with id3 support, download the sourcecode, put it in php-src/ext/id3 and compile PHP using --enable-id3.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Predefined Constants

Most of the id3 functions either let you specify or return a tag version. In order to specify the version please use on of these constants.

ID3_V1_0 (integer)

ID3_V1_0 is used if you are working with ID3 V1.0 tags. These tags may contain the fields title, artist, album, genre, year and comment.

ID3_V1_1 (integer)

ID3_V1_1 is used if you are working with ID3 V1.1 tags. These tags may all information contained in v1.0 tags plus the track number.

ID3_V2_1 (integer)

ID3_V2_1 is used if you are working with ID3 V2.1 tags.

ID3_V2_2 (integer)

ID3_V2_2 is used if you are working with ID3 V2.2 tags.

ID3_V2_3 (integer)

ID3_V2_3 is used if you are working with ID3 V2.3 tags.

ID3_V2_4 (integer)

ID3_V2_4 is used if you are working with ID3 V2.4 tags.

ID3_BEST (integer)

ID3_BEST is used if would like to let the id3 functions determine which tag version should be used.

Содержание
id3_get_frame_long_name -- Get the long name of an ID3v2 frame
id3_get_frame_short_name -- Get the short name of an ID3v2 frame
id3_get_genre_id -- Get the id for a genre
id3_get_genre_list -- Get all possible genre values
id3_get_genre_name -- Get the name for a genre id
id3_get_tag -- Get all information stored in an ID3 tag
id3_get_version -- Get version of an ID3 tag
id3_remove_tag -- Remove an existing ID3 tag
id3_set_tag -- Update information stored in an ID3 tag

Пред. | Начало | След.
ob_iconv_handler | Уровень выше | id3_get_frame_long_name


id3_get_frame_long_name

(PECL)

id3_get_frame_long_name -- Get the long name of an ID3v2 frame

Description

string id3_get_frame_long_name ( string frameId )

id3_get_frame_long_name() returns the long name for an ID3v2 frame.

Пример 1. id3_get_frame_long_name() example

<?php
$longName = id3_get_frame_long_name("TOLY");
echo $longName;
?>

This will output:

Original lyricist(s)/text writer(s)

See also id3_get_frame_short_name().

Пред. | Начало | След.
ID3 Functions | Уровень выше | id3_get_frame_short_name


id3_get_frame_short_name

(PECL)

id3_get_frame_short_name -- Get the short name of an ID3v2 frame

Description

string id3_get_frame_short_name ( string frameId )

id3_get_frame_short_name() returns the short name for an ID3v2 frame.

Пример 1. id3_get_frame_short_name() example

<?php
$shortName = id3_get_frame_short_name("TOLY");
echo $shortName;
?>

This will output:

originalLyricist

The values returned by id3_get_short_name() are used in the array returned by id3_get_tag().

See also id3_get_frame_long_name().

Пред. | Начало | След.
id3_get_frame_long_name | Уровень выше | id3_get_genre_id


id3_get_genre_id

(PECL)

id3_get_genre_id -- Get the id for a genre

Description

int id3_get_genre_id ( string genre )

id3_get_genre_id() returns the id for a genre. If the specified genre is not available in the genre list, id3_get_genre_id() will return FALSE

In an ID3 tag, the genre is stored using a integer ranging from 0 to 147.

Пример 1. id3_get_genre_id() example

<?php
$id = id3_get_genre_id("Alternative");
echo $id;
?>

This will output:

20

See also id3_get_genre_list() and id3_get_genre_name().

Пред. | Начало | След.
id3_get_frame_short_name | Уровень выше | id3_get_genre_list


id3_get_genre_list

(PECL)

id3_get_genre_list -- Get all possible genre values

Description

array id3_get_genre_list ( void )

id3_get_genre_list() returns an array containing all possible genres that may be stored in an ID3 tag. This list has been created by Eric Kemp and later extended by WinAmp.

This function is useful to provide you users a list of genres from which they may choose one. When updating the ID3 tag you will always have to specify the genre as an integer ranging from 0 to 147.

Пример 1. id3_get_genre_list() example

<?php
$genres = id3_get_genre_list();
print_r($genres);
?>

This will output:

Array
(
    [0] => Blues
    [1] => Classic Rock
    [2] => Country
    [3] => Dance
    [4] => Disco
    [5] => Funk
    [6] => Grunge
    [7] => Hip-Hop
    [8] => Jazz
    [9] => Metal
    [10] => New Age
    [11] => Oldies
    [12] => Other
    [13] => Pop
    [14] => R&B
    [15] => Rap
    [16] => Reggae
    [17] => Rock
    [18] => Techno
    [19] => Industrial
    [20] => Alternative
    [21] => Ska
    [22] => Death Metal
    [23] => Pranks
    [24] => Soundtrack
    [25] => Euro-Techno
    [26] => Ambient
    [27] => Trip-Hop
    [28] => Vocal
    [29] => Jazz+Funk
    [30] => Fusion
    [31] => Trance
    [32] => Classical
    [33] => Instrumental
    [34] => Acid
    [35] => House
    [36] => Game
    [37] => Sound Clip
    [38] => Gospel
    [39] => Noise
    [40] => Alternative Rock
    [41] => Bass
    [42] => Soul
    [43] => Punk
    [44] => Space
    [45] => Meditative
    [46] => Instrumental Pop
    [47] => Instrumental Rock
    [48] => Ethnic
    [49] => Gothic
    [50] => Darkwave
    [51] => Techno-Industrial
    [52] => Electronic
    [53] => Pop-Folk
    [54] => Eurodance
    [55] => Dream
    [56] => Southern Rock
    [57] => Comedy
    [58] => Cult
    [59] => Gangsta
    [60] => Top 40
    [61] => Christian Rap
    [62] => Pop/Funk
    [63] => Jungle
    [64] => Native US
    [65] => Cabaret
    [66] => New Wave
    [67] => Psychadelic
    [68] => Rave
    [69] => Showtunes
    [70] => Trailer
    [71] => Lo-Fi
    [72] => Tribal
    [73] => Acid Punk
    [74] => Acid Jazz
    [75] => Polka
    [76] => Retro
    [77] => Musical
    [78] => Rock & Roll
    [79] => Hard Rock
    [80] => Folk
    [81] => Folk-Rock
    [82] => National Folk
    [83] => Swing
    [84] => Fast Fusion
    [85] => Bebob
    [86] => Latin
    [87] => Revival
    [88] => Celtic
    [89] => Bluegrass
    [90] => Avantgarde
    [91] => Gothic Rock
    [92] => Progressive Rock
    [93] => Psychedelic Rock
    [94] => Symphonic Rock
    [95] => Slow Rock
    [96] => Big Band
    [97] => Chorus
    [98] => Easy Listening
    [99] => Acoustic
    [100] => Humour
    [101] => Speech
    [102] => Chanson
    [103] => Opera
    [104] => Chamber Music
    [105] => Sonata
    [106] => Symphony
    [107] => Booty Bass
    [108] => Primus
    [109] => Porn Groove
    [110] => Satire
    [111] => Slow Jam
    [112] => Club
    [113] => Tango
    [114] => Samba
    [115] => Folklore
    [116] => Ballad
    [117] => Power Ballad
    [118] => Rhytmic Soul
    [119] => Freestyle
    [120] => Duet
    [121] => Punk Rock
    [122] => Drum Solo
    [123] => Acapella
    [124] => Euro-House
    [125] => Dance Hall
    [126] => Goa
    [127] => Drum & Bass
    [128] => Club-House
    [129] => Hardcore
    [130] => Terror
    [131] => Indie
    [132] => BritPop
    [133] => Negerpunk
    [134] => Polsk Punk
    [135] => Beat
    [136] => Christian Gangsta
    [137] => Heavy Metal
    [138] => Black Metal
    [139] => Crossover
    [140] => Contemporary C
    [141] => Christian Rock
    [142] => Merengue
    [143] => Salsa
    [144] => Thrash Metal
    [145] => Anime
    [146] => JPop
    [147] => SynthPop
)

See also id3_get_genre_name() and id3_get_genre_id().

Пред. | Начало | След.
id3_get_genre_id | Уровень выше | id3_get_genre_name


id3_get_genre_name

(PECL)

id3_get_genre_name -- Get the name for a genre id

Description

string id3_get_genre_name ( int genre_id )

id3_get_genre_name() returns the name for a genre id.

In an ID3 tag, the genre is stored using a integer ranging from 0 to 147.

Пример 1. id3_get_genre_name() example

<?php
$genre = id3_get_genre_name(20);
echo $genre;
?>

This will output:

Alternative

See also id3_get_genre_list() and id3_get_genre_id().

Пред. | Начало | След.
id3_get_genre_list | Уровень выше | id3_get_tag


id3_get_tag

(PECL)

id3_get_tag -- Get all information stored in an ID3 tag

Description

array id3_get_tag ( string filename [, int version] )

id3_get_tag() is used to get all information stored in the id3 tag of the specified file.

Замечание: Instead of a filename you may also pass a valid stream resource.

The optional version parameter allows you to specify the version of the tag as MP3 files may contain both, version 1.x and version 2.x tags.

Пример 1. id3_get_tag() example

<?php
$tag = id3_get_tag( "path/to/example.mp3" );
print_r($tag);
?>

This will output something like:

Array
(
    [title] => DN-38416
    [artist] => Re:\Legion
    [album] => Reflections
    [year] => 2004
    [genre] => 19
)

The key genre will contain an integer between 0 and 147. You may use id3_get_genre_name() to convert it to a human readable string.

Since version 0.2 id3_get_tag() also supports ID3 tags of version 2.2, 2.3 and 2.4. To extract information from these tags, pass one of the constants ID3_V2_2, ID3_V2_3 or ID3_V2_4 as the second parameter.

Пример 2. id3_get_tag() example

<?php
$tag = id3_get_tag( "path/to/example2.mp3", ID3_V2_3 );
print_r($tag);
?>

This will output something like:

Array
(
    [copyright] => Dirty Mac
    [originalArtist] => Dirty Mac
    [composer] => Marcus G?tze
    [artist] => Dirty Mac
    [title] => Little Big Man
    [album] => Demo-Tape
    [track] => 5/12
    [genre] => (17)Rock
    [year] => 2001
)

ID3 v2.x tags can contain a lot more information about the MP3 file than ID3 v1.x tags.

See also id3_set_tag(), id3_remove_tag() and id3_get_version().

Пред. | Начало | След.
id3_get_genre_name | Уровень выше | id3_get_version


id3_get_version

(PECL)

id3_get_version -- Get version of an ID3 tag

Description

int id3_get_version ( string filename )

id3_get_version() retrieves the version(s) of the ID3 tag(s) in the MP3 file. As a tag can contain ID3 v1.x and v2.x tags, the return value of this function should be bitwise compared with the predefined constants ID3_V1_0, ID3_V1_1 and ID3_V2.

Замечание: Instead of a filename you may also pass a valid stream resource.

Пример 1. id3_get_version() example

<?php
$version = id3_get_version( "path/to/example.mp3" );
if ($version & ID3_V1_0) {
    echo "Contains a 1.x tag\n";
}
if ($version & ID3_V1_1) {
    echo "Contains a 1.1 tag\n";
}
if ($version & ID3_V2) {
    echo "Contains a 2.x tag\n";
}
?>

This will output something like:

Contains a 1.x tag
Contains a 1.1 tag

If a file contains an ID3 v1.1 tag, it always contains a 1.0 tag, as version 1.1 is just an extension of 1.0.

See also id3_get_tag(), id3_set_tag() and id3_remove_tag().

Пред. | Начало | След.
id3_get_tag | Уровень выше | id3_remove_tag


id3_remove_tag

(PECL)

id3_remove_tag -- Remove an existing ID3 tag

Description

bool id3_remove_tag ( string filename [, int version] )

id3_remove_tag() is used to remove the information stored of an ID3 tag. If no tag has been present, it will return FALSE and leave the file as it was.

Замечание: Instead of a filename you may also pass a valid stream resource.

The optional version parameter allows you to specify the version of the tag as MP3 files may contain both, version 1.x and version 2.x tags.

Пример 1. id3_remove_tag() example

<?php
$result = id3_remove_tag( "path/to/example.mp3", ID3_V1_0 );
if ($result === true) {
    echo "Tag succesfully removed\n";
}
?>

If the file is writable and contained a 1.0 tag, this will output:

Tag succesfully removed

Замечание: Currently id3_remove_tag() only supports version 1.0 and 1.1. If you choose to remove a 1.0 tag and the file contains a 1.1 tag, this tag will be removed, as v1.1 is only an extension of 1.0.

See also id3_get_tag(), id3_set_tag() and id3_get_version().

Пред. | Начало | След.
id3_get_version | Уровень выше | id3_set_tag


id3_set_tag

(PECL)

id3_set_tag -- Update information stored in an ID3 tag

Description

bool id3_set_tag ( string filename, array tag [, int version] )

id3_set_tag() is used to change the information stored of an ID3 tag. If no tag has been present, it will be added to the file.

Замечание: Instead of a filename you may also pass a valid stream resource.

The optional version parameter allows you to specify the version of the tag as MP3 files may contain both, version 1.x and version 2.x tags.

Пример 1. id3_set_tag() example

<?php
$data = array(
              "title" => "Re:Start",
              "artist" => "Re:\Legion",
              "comment" => "A nice track"
             );
$result = id3_set_tag( "path/to/example.mp3", $data, ID3_V1_0 );
if ($result === true) {
    echo "Tag succesfully updated\n";
}
?>

If the file is writable, this will output:

Tag succesfully updated

Замечание: Currently id3_set_tag() only supports version 1.0 and 1.1.

The following keys may be used in the associative array:

Таблица 1. Keys in the associative array

key | possible value | available in version
title | string with maximum of 30 characters | v1.0, v1.1
artist | string with maximum of 30 characters | v1.0, v1.1
album | string with maximum of 30 characters | v1.0, v1.1
year | 4 digits | v1.0, v1.1
genre | integer value between 0 and 147 | v1.0, v1.1
comment | string with maximum of 30 characters (28 in v1.1) | v1.0, v1.1
track | integer between 0 and 255 | v1.1

See also id3_get_tag(), id3_remove_tag() and id3_get_version().

Пред. | Начало | След.
id3_remove_tag | Уровень выше | IIS Administration Functions


Informix Functions

Руководство по PHP
Пред. След.

LIX. Informix Functions

Введение

The Informix driver for Informix (IDS) 7.x, SE 7.x, Universal Server (IUS) 9.x and IDS 2000 is implemented in "ifx.ec" and "php3_ifx.h" in the informix extension directory. IDS 7.x support is fairly complete, with full support for BYTE and TEXT columns. IUS 9.x support is partly finished: the new data types are there, but SLOB and CLOB support is still under construction.

Требования

Configuration notes: You need a version of ESQL/C to compile the PHP Informix driver. ESQL/C versions from 7.2x on should be OK. ESQL/C is now part of the Informix Client SDK.

Make sure that the "INFORMIXDIR" variable has been set, and that $INFORMIXDIR/bin is in your PATH before you run the "configure" script.

Установка

To be able to use the functions defined in this module you must compile your PHP interpreter using the configure line --with-informix[=DIR], where DIR is the Informix base install directory, defaults to nothing.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Замечание: Make sure that the Informix environment variables INFORMIXDIR and INFORMIXSERVER are available to the PHP ifx driver, and that the INFORMIX bin directory is in the PATH. Check this by running a script that contains a call to phpinfo() before you start testing. The phpinfo() output should list these environment variables. This is true for both CGI php and Apache mod_php. You may have to set these environment variables in your Apache startup script.

The Informix shared libraries should also be available to the loader (check LD_LIBRARY_PATH or ld.so.conf/ldconfig).

Some notes on the use of BLOBs (TEXT and BYTE columns): BLOBs are normally addressed by BLOB identifiers. Select queries return a "blob id" for every BYTE and TEXT column. You can get at the contents with "string_var = ifx_get_blob($blob_id);" if you choose to get the BLOBs in memory (with: "ifx_blobinfile(0);"). If you prefer to receive the content of BLOB columns in a file, use "ifx_blobinfile(1);", and "ifx_get_blob($blob_id);" will get you the filename. Use normal file I/O to get at the blob contents.

For insert/update queries you must create these "blob id's" yourself with "ifx_create_blob();". You then plug the blob id's into an array, and replace the blob columns with a question mark (?) in the query string. For updates/inserts, you are responsible for setting the blob contents with ifx_update_blob().

The behaviour of BLOB columns can be altered by configuration variables that also can be set at runtime:

configuration variable: ifx.textasvarchar

configuration variable: ifx.byteasvarchar

runtime functions:

ifx_textasvarchar(0): use blob id's for select queries with TEXT columns

ifx_byteasvarchar(0): use blob id's for select queries with BYTE columns

ifx_textasvarchar(1): return TEXT columns as if they were VARCHAR columns, so that you don't need to use blob id's for select queries.

ifx_byteasvarchar(1): return BYTE columns as if they were VARCHAR columns, so that you don't need to use blob id's for select queries.

configuration variable: ifx.blobinfile

runtime function:

ifx_blobinfile_mode(0): return BYTE columns in memory, the blob id lets you get at the contents.

ifx_blobinfile_mode(1): return BYTE columns in a file, the blob id lets you get at the file name.

If you set ifx_text/byteasvarchar to 1, you can use TEXT and BYTE columns in select queries just like normal (but rather long) VARCHAR fields. Since all strings are "counted" in PHP, this remains "binary safe". It is up to you to handle this correctly. The returned data can contain anything, you are responsible for the contents.

If you set ifx_blobinfile to 1, use the file name returned by ifx_get_blob(..) to get at the blob contents. Note that in this case YOU ARE RESPONSIBLE FOR DELETING THE TEMPORARY FILES CREATED BY INFORMIX when fetching the row. Every new row fetched will create new temporary files for every BYTE column.

The location of the temporary files can be influenced by the environment variable "blobdir", default is "." (the current directory). Something like: putenv(blobdir=tmpblob"); will ease the cleaning up of temp files accidentally left behind (their names all start with "blb").

Automatically trimming "char" (SQLCHAR and SQLNCHAR) data: This can be set with the configuration variable

ifx.charasvarchar: if set to 1 trailing spaces will be automatically trimmed, to save you some "chopping".

NULL values: The configuration variable ifx.nullformat (and the runtime function ifx_nullformat()) when set to TRUE will return NULL columns as the string "NULL", when set to FALSE they return the empty string. This allows you to discriminate between NULL columns and empty columns.

Таблица 1. Informix configuration options

Name | Default | Changeable | Changelog
ifx.allow_persistent | "1" | PHP_INI_SYSTEM |
ifx.max_persistent | "-1" | PHP_INI_SYSTEM |
ifx.max_links | "-1" | PHP_INI_SYSTEM |
ifx.default_host | NULL | PHP_INI_SYSTEM |
ifx.default_user | NULL | PHP_INI_SYSTEM |
ifx.default_password | NULL | PHP_INI_SYSTEM |
ifx.blobinfile | "1" | PHP_INI_ALL |
ifx.textasvarchar | "0" | PHP_INI_ALL |
ifx.byteasvarchar | "0" | PHP_INI_ALL |
ifx.charasvarchar | "0" | PHP_INI_ALL |
ifx.nullformat | "0" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

ifx.allow_persistent boolean

Whether to allow persistent Informix connections.

ifx.max_persistent integer

The maximum number of persistent Informix connections per process.

ifx.max_links integer

The maximum number of Informix connections per process, including persistent connections.

ifx.default_host string

The default host to connect to when no host is specified in ifx_connect() or ifx_pconnect(). Doesn't apply in безопасный режим.

ifx.default_user string

The default user id to use when none is specified in ifx_connect() or ifx_pconnect(). Doesn't apply in безопасный режим.

ifx.default_password string

The default password to use when none is specified in ifx_connect() or ifx_pconnect(). Doesn't apply in безопасный режим.

ifx.blobinfile boolean

Set to TRUE if you want to return blob columns in a file, FALSE if you want them in memory. You can override the setting at runtime with ifx_blobinfile_mode().

ifx.textasvarchar boolean

Set to TRUE if you want to return TEXT columns as normal strings in select statements, FALSE if you want to use blob id parameters. You can override the setting at runtime with ifx_textasvarchar().

ifx.byteasvarchar boolean

Set to TRUE if you want to return BYTE columns as normal strings in select queries, FALSE if you want to use blob id parameters. You can override the setting at runtime with ifx_textasvarchar().

ifx.charasvarchar boolean

Set to TRUE if you want to trim trailing spaces from CHAR columns when fetching them.

ifx.nullformat boolean

Set to TRUE if you want to return NULL columns as the literal string "NULL", FALSE if you want them returned as the empty string "". You can override this setting at runtime with ifx_nullformat().

Типы ресурсов

Предопределенные константы

Данное расширение не определяет никакие константы.

Содержание
ifx_affected_rows -- Get number of rows affected by a query
ifx_blobinfile_mode -- Set the default blob mode for all select queries
ifx_byteasvarchar -- Set the default byte mode
ifx_close -- Close Informix connection
ifx_connect -- Open Informix server connection
ifx_copy_blob -- Duplicates the given blob object
ifx_create_blob -- Creates an blob object
ifx_create_char -- Creates an char object
ifx_do -- Execute a previously prepared SQL-statement
ifx_error -- Returns error code of last Informix call
ifx_errormsg -- Returns error message of last Informix call
ifx_fetch_row -- Get row as enumerated array
ifx_fieldproperties -- List of SQL fieldproperties
ifx_fieldtypes -- List of Informix SQL fields
ifx_free_blob -- Deletes the blob object
ifx_free_char -- Deletes the char object
ifx_free_result -- Releases resources for the query
ifx_get_blob -- Return the content of a blob object
ifx_get_char -- Return the content of the char object
ifx_getsqlca -- Get the contents of sqlca.sqlerrd[0..5] after a query
ifx_htmltbl_result -- Formats all rows of a query into a HTML table
ifx_nullformat -- Sets the default return value on a fetch row
ifx_num_fields -- Returns the number of columns in the query
ifx_num_rows -- Count the rows already fetched from a query
ifx_pconnect -- Open persistent Informix connection
ifx_prepare -- Prepare an SQL-statement for execution
ifx_query -- Send Informix query
ifx_textasvarchar -- Set the default text mode
ifx_update_blob -- Updates the content of the blob object
ifx_update_char -- Updates the content of the char object
ifxus_close_slob -- Deletes the slob object
ifxus_create_slob -- Creates an slob object and opens it
ifxus_free_slob -- Deletes the slob object
ifxus_open_slob -- Opens an slob object
ifxus_read_slob -- Reads nbytes of the slob object
ifxus_seek_slob -- Sets the current file or seek position
ifxus_tell_slob -- Returns the current file or seek position
ifxus_write_slob -- Writes a string into the slob object

Пред. | Начало | След.
imap_utf8 | Уровень выше | ifx_affected_rows


ifx_affected_rows

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_affected_rows -- Get number of rows affected by a query

Description

int ifx_affected_rows ( int result_id )

result_id is a valid result id returned by ifx_query() or ifx_prepare().

Returns the number of rows affected by a query associated with result_id.

For inserts, updates and deletes the number is the real number (sqlerrd[2]) of affected rows. For selects it is an estimate (sqlerrd[0]). Don't rely on it. The database server can never return the actual number of rows that will be returned by a SELECT because it has not even begun fetching them at this stage (just after the "PREPARE" when the optimizer has determined the query plan).

Useful after ifx_prepare() to limit queries to reasonable result sets.

Пример 1. Informix affected rows

<?php
$rid = ifx_prepare("select * from emp
                     where name like " . $name, $connid);
if (! $rid) {
    /* ... error ... */
}
$rowcount = ifx_affected_rows($rid);
if ($rowcount > 1000) {
    printf ("Too many rows in result set (%d)\n<br />", $rowcount);
    die ("Please restrict your query<br />\n");
}
?>

See also ifx_num_rows().

Пред. | Начало | След.
Informix Functions | Уровень выше | ifx_blobinfile_mode


ifx_blobinfile_mode

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifx_blobinfile_mode -- Set the default blob mode for all select queries

Description

void ifx_blobinfile_mode ( int mode )

Set the default blob mode for all select queries. Mode "0" means save Byte-Blobs in memory, and mode "1" means save Byte-Blobs in a file.

Пред. | Начало | След.
ifx_affected_rows | Уровень выше | ifx_byteasvarchar


ifx_byteasvarchar

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifx_byteasvarchar -- Set the default byte mode

Description

void ifx_byteasvarchar ( int mode )

Sets the default byte mode for all select-queries. Mode "0" will return a blob id, and mode "1" will return a varchar with text content.

Пред. | Начало | След.
ifx_blobinfile_mode | Уровень выше | ifx_close


ifx_close

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_close -- Close Informix connection

Description

int ifx_close ( [int link_identifier] )

Returns: always TRUE.

ifx_close() closes the link to an Informix database that's associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed.

Note that this isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.

ifx_close() will not close persistent links generated by ifx_pconnect().

Пример 1. Closing a Informix connection

<?php
$conn_id = ifx_connect ("mydb@ol_srv", "itsme", "mypassword");
/* ... some queries and stuff ... */
ifx_close($conn_id);
?>

See also ifx_connect() and ifx_pconnect().

Пред. | Начало | След.
ifx_byteasvarchar | Уровень выше | ifx_connect


ifx_connect

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_connect -- Open Informix server connection

Description

int ifx_connect ( [string database [, string userid [, string password]]] )

Returns a connection identifier on success, or FALSE on error.

ifx_connect() establishes a connection to an Informix server. All of the arguments are optional, and if they're missing, defaults are taken from values supplied in configuration file (ifx.default_host for the host (Informix libraries will use INFORMIXSERVER environment value if not defined), ifx.default_user for user, ifx.default_password for the password (none if not defined).

In case a second call is made to ifx_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned.

The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling ifx_close().

Пример 1. Connect to a Informix database

<?php
$conn_id = ifx_connect ("mydb@ol_srv1", "imyself", "mypassword");
?>

See also ifx_pconnect() and ifx_close().

Пред. | Начало | След.
ifx_close | Уровень выше | ifx_copy_blob


ifx_copy_blob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifx_copy_blob -- Duplicates the given blob object

Description

int ifx_copy_blob ( int bid )

Duplicates the given blob object. bid is the ID of the blob object.

Returns FALSE on error otherwise the new blob object-id.

Пред. | Начало | След.
ifx_connect | Уровень выше | ifx_create_blob


ifx_create_blob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifx_create_blob -- Creates an blob object

Description

int ifx_create_blob ( int type, int mode, string param )

Creates an blob object.

type: 1 = TEXT, 0 = BYTE

mode: 0 = blob-object holds the content in memory, 1 = blob-object holds the content in file.

param: if mode = 0: pointer to the content, if mode = 1: pointer to the filestring.

Return FALSE on error, otherwise the new blob object-id.

Пред. | Начало | След.
ifx_copy_blob | Уровень выше | ifx_create_char


ifx_create_char

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ifx_create_char -- Creates an char object

Description

int ifx_create_char ( string param )

Creates an char object. param should be the char content.

Пред. | Начало | След.
ifx_create_blob | Уровень выше | ifx_do


ifx_do

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifx_do -- Execute a previously prepared SQL-statement

Description

int ifx_do ( int result_id )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Executes a previously prepared query or opens a cursor for it.

Does NOT free result_id on error.

Also sets the real number of ifx_affected_rows() for non-select statements for retrieval by ifx_affected_rows()

See also: ifx_prepare().

Пред. | Начало | След.
ifx_create_char | Уровень выше | ifx_error


ifx_error

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_error -- Returns error code of last Informix call

Description

string ifx_error ( void )

The Informix error codes (SQLSTATE & SQLCODE) formatted as follows :

x [SQLSTATE = aa bbb SQLCODE=cccc]

where x = space : no error

E : error

N : no more data

W : warning

? : undefined

If the "x" character is anything other than space, SQLSTATE and SQLCODE describe the error in more detail.

See the Informix manual for the description of SQLSTATE and SQLCODE

Returns in a string one character describing the general results of a statement and both SQLSTATE and SQLCODE associated with the most recent SQL statement executed. The format of the string is "(char) [SQLSTATE=(two digits) (three digits) SQLCODE=(one digit)]". The first character can be ' ' (space) (success), 'W' (the statement caused some warning), 'E' (an error happened when executing the statement) or 'N' (the statement didn't return any data).

See also: ifx_errormsg()

Пред. | Начало | След.
ifx_do | Уровень выше | ifx_errormsg


ifx_errormsg

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifx_errormsg -- Returns error message of last Informix call

Description

string ifx_errormsg ( [int errorcode] )

Returns the Informix error message associated with the most recent Informix error, or, when the optional "errorcode" parameter is present, the error message corresponding to "errorcode".

Пример 1. ifx_errormsg() example

printf("%s\n&lt;br>", ifx_errormsg(-201));

See also ifx_error().

Пред. | Начало | След.
ifx_error | Уровень выше | ifx_fetch_row


ifx_fetch_row

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_fetch_row -- Get row as enumerated array

Description

array ifx_fetch_row ( int result_id [, mixed position] )

Returns an associative array that corresponds to the fetched row, or FALSE if there are no more rows.

Blob columns are returned as integer blob id values for use in ifx_get_blob() unless you have used ifx_textasvarchar(1) or ifx_byteasvarchar(1), in which case blobs are returned as string values. Returns FALSE on error

result_id is a valid resultid returned by ifx_query() or ifx_prepare() (select type queries only!).

position is an optional parameter for a "fetch" operation on "scroll" cursors: "NEXT", "PREVIOUS", "CURRENT", "FIRST", "LAST" or a number. If you specify a number, an "absolute" row fetch is executed. This parameter is optional, and only valid for SCROLL cursors.

ifx_fetch_row() fetches one row of data from the result associated with the specified result identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0, with the column name as key.

Subsequent calls to ifx_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

Пример 1. Informix fetch rows

<?php
$rid = ifx_prepare ("select * from emp where name like " . $name,
                     $connid, IFX_SCROLL);
if (! $rid) {
    /* ... error ... */
}
$rowcount = ifx_affected_rows($rid);
if ($rowcount > 1000) {
    printf ("Too many rows in result set (%d)\n<br />", $rowcount);
    die ("Please restrict your query<br />\n");
}
if (! ifx_do ($rid)) {
   /* ... error ... */
}
$row = ifx_fetch_row ($rid, "NEXT");
while (is_array($row)) {
    for (reset($row); $fieldname=key($row); next($row)) {
        $fieldvalue = $row[$fieldname];
        printf ("%s = %s,", $fieldname, $fieldvalue);
    }
    printf("\n<br />");
    $row = ifx_fetch_row($rid, "NEXT");
}
ifx_free_result ($rid);
?>

Пред. | Начало | След.
ifx_errormsg | Уровень выше | ifx_fieldproperties


ifx_fieldproperties

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_fieldproperties -- List of SQL fieldproperties

Description

array ifx_fieldproperties ( int result_id )

Returns an associative array with fieldnames as key and the SQL fieldproperties as data for a query with result_id. Returns FALSE on error.

Returns the Informix SQL fieldproperties of every field in the query as an associative array. Properties are encoded as: "SQLTYPE;length;precision;scale;ISNULLABLE" where SQLTYPE = the Informix type like "SQLVCHAR" etc. and ISNULLABLE = "Y" or "N".

Пример 1. Informix SQL fieldproperties

<?php
$properties = ifx_fieldproperties($resultid);
if (!isset($properties)) {
    /* ... error ... */
}
foreach ($properties as $fname => $val) {
    echo "$fname:\t property = $val\n";
}
?>

Пред. | Начало | След.
ifx_fetch_row | Уровень выше | ifx_fieldtypes


ifx_fieldtypes

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_fieldtypes -- List of Informix SQL fields

Description

array ifx_fieldtypes ( int result_id )

Returns an associative array with fieldnames as key and the SQL fieldtypes as data for query with result_id. Returns FALSE on error.

Пример 1. Fieldnames and SQL fieldtypes

<?php
$types = ifx_fieldtypes($resultid);
if (!isset($types)) {
    /* ... error ... */
}
foreach ($types as $fname => $val) {
    echo "$fname:\t type = $val\n";
}
?>

Пред. | Начало | След.
ifx_fieldproperties | Уровень выше | ifx_free_blob


ifx_free_blob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifx_free_blob -- Deletes the blob object

Description

int ifx_free_blob ( int bid )

Deletes the blobobject for the given blob object-id bid. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
ifx_fieldtypes | Уровень выше | ifx_free_char


ifx_free_char

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ifx_free_char -- Deletes the char object

Description

int ifx_free_char ( int bid )

Deletes the charobject for the given char object-id bid. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
ifx_free_blob | Уровень выше | ifx_free_result


ifx_free_result

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_free_result -- Releases resources for the query

Description

int ifx_free_result ( int result_id )

Releases resources for the query associated with result_id. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
ifx_free_char | Уровень выше | ifx_get_blob


ifx_get_blob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifx_get_blob -- Return the content of a blob object

Description

int ifx_get_blob ( int bid )

Returns the content of the blob object for the given blob object-id bid.

Пред. | Начало | След.
ifx_free_result | Уровень выше | ifx_get_char


ifx_get_char

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ifx_get_char -- Return the content of the char object

Description

int ifx_get_char ( int bid )

Returns the content of the char object for the given char object-id bid.

Пред. | Начало | След.
ifx_get_blob | Уровень выше | ifx_getsqlca


ifx_getsqlca

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

ifx_getsqlca -- Get the contents of sqlca.sqlerrd[0..5] after a query

Description

array ifx_getsqlca ( int result_id )

result_id is a valid result id returned by ifx_query() or ifx_prepare().

Returns a pseudo-row (associative array) with sqlca.sqlerrd[0] ... sqlca.sqlerrd[5] after the query associated with result_id.

For inserts, updates and deletes the values returned are those as set by the server after executing the query. This gives access to the number of affected rows and the serial insert value. For SELECTs the values are those saved after the PREPARE statement. This gives access to the *estimated* number of affected rows. The use of this function saves the overhead of executing a "select dbinfo('sqlca.sqlerrdx')" query, as it retrieves the values that were saved by the ifx driver at the appropriate moment.

Пример 1. Retrieve Informix sqlca.sqlerrd[x] values

<?php
/* assume the first column of 'sometable' is a serial */
$qid = ifx_query("insert into sometable
                  values (0, '2nd column', 'another column') ", $connid);
if (!$qid) {
    /* ... error ... */
}
$sqlca = ifx_getsqlca($qid);
$serial_value = $sqlca["sqlerrd1"];
echo "The serial value of the inserted row is : $serial_value<br />\n";
?>

Пред. | Начало | След.
ifx_get_char | Уровень выше | ifx_htmltbl_result


ifx_htmltbl_result

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_htmltbl_result -- Formats all rows of a query into a HTML table

Description

int ifx_htmltbl_result ( int result_id [, string html_table_options] )

Returns the number of rows fetched or FALSE on error.

Formats all rows of the result_id query into a HTML table. The optional second argument is a string of <table> tag options

Пример 1. Informix results as HTML table

<?php
$rid = ifx_prepare ("select * from emp where name like " . $name,
                     $connid, IFX_SCROLL);
if (! $rid) {
    /* ... error ... */
}
$rowcount = ifx_affected_rows ($rid);
if ($rowcount > 1000) {
    printf ("Too many rows in result set (%d)\n<br />", $rowcount);
    die ("Please restrict your query<br />\n");
}
if (! ifx_do($rid)) {
    /* ... error ... */
}

ifx_htmltbl_result ($rid, "border=\"2\"");

ifx_free_result($rid);
?>

Пред. | Начало | След.
ifx_getsqlca | Уровень выше | ifx_nullformat


ifx_nullformat

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifx_nullformat -- Sets the default return value on a fetch row

Description

void ifx_nullformat ( int mode )

Sets the default return value of a NULL-value on a fetch row. Mode "0" returns "", and mode "1" returns "NULL".

Пред. | Начало | След.
ifx_htmltbl_result | Уровень выше | ifx_num_fields


ifx_num_fields

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_num_fields -- Returns the number of columns in the query

Description

int ifx_num_fields ( int result_id )

Returns the number of columns in query for result_id or FALSE on error

After preparing or executing a query, this call gives you the number of columns in the query.

Пред. | Начало | След.
ifx_nullformat | Уровень выше | ifx_num_rows


ifx_num_rows

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_num_rows -- Count the rows already fetched from a query

Description

int ifx_num_rows ( int result_id )

Gives the number of rows fetched so far for a query with result_id after a ifx_query() or ifx_do() query.

Пред. | Начало | След.
ifx_num_fields | Уровень выше | ifx_pconnect


ifx_pconnect

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_pconnect -- Open persistent Informix connection

Description

int ifx_pconnect ( [string database [, string userid [, string password]]] )

Returns: A positive Informix persistent link identifier on success, or FALSE on error

ifx_pconnect() acts very much like ifx_connect() with two major differences.

This function behaves exactly like ifx_connect() when PHP is not running as an Apache module. First, when connecting, the function would first try to find a (persistent) link that's already open with the same host, username and password. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (ifx_close() will not close links established by ifx_pconnect()).

This type of links is therefore called 'persistent'.

See also: ifx_connect().

Пред. | Начало | След.
ifx_num_rows | Уровень выше | ifx_prepare


ifx_prepare

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifx_prepare -- Prepare an SQL-statement for execution

Description

int ifx_prepare ( string query, int conn_id [, int cursor_def, mixed blobidarray] )

Returns an integer result_id for use by ifx_do(). Sets affected_rows for retrieval by the ifx_affected_rows() function.

Prepares query on connection conn_id. For "select-type" queries a cursor is declared and opened. The optional cursor_type parameter allows you to make this a "scroll" and/or "hold" cursor. It's a bitmask and can be either IFX_SCROLL, IFX_HOLD, or both or'ed together.

For either query type the estimated number of affected rows is saved for retrieval by ifx_affected_rows().

If you have BLOB (BYTE or TEXT) columns in the query, you can add a blobidarray parameter containing the corresponding "blob ids", and you should replace those columns with a "?" in the query text.

If the contents of the TEXT (or BYTE) column allow it, you can also use "ifx_textasvarchar(1)" and "ifx_byteasvarchar(1)". This allows you to treat TEXT (or BYTE) columns just as if they were ordinary (but long) VARCHAR columns for select queries, and you don't need to bother with blob id's.

With ifx_textasvarchar(0) or ifx_byteasvarchar(0) (the default situation), select queries will return BLOB columns as blob id's (integer value). You can get the value of the blob as a string or file with the blob functions (see below).

See also: ifx_do().

Пред. | Начало | След.
ifx_pconnect | Уровень выше | ifx_query


ifx_query

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ifx_query -- Send Informix query

Description

int ifx_query ( string query, int link_identifier [, int cursor_type [, mixed blobidarray]] )

Returns a positive Informix result identifier on success, or FALSE on error.

A "result_id" resource used by other functions to retrieve the query results. Sets "affected_rows" for retrieval by the ifx_affected_rows() function.

ifx_query() sends a query to the currently active database on the server that's associated with the specified link identifier.

Executes query on connection conn_id. For "select-type" queries a cursor is declared and opened. The optional cursor_type parameter allows you to make this a "scroll" and/or "hold" cursor. It's a bitmask and can be either IFX_SCROLL, IFX_HOLD, or both or'ed together. Non-select queries are "execute immediate". IFX_SCROLL and IFX_HOLD are symbolic constants and as such shouldn't be between quotes. I you omit this parameter the cursor is a normal sequential cursor.

For either query type the number of (estimated or real) affected rows is saved for retrieval by ifx_affected_rows().

If you have BLOB (BYTE or TEXT) columns in an update query, you can add a blobidarray parameter containing the corresponding "blob ids", and you should replace those columns with a "?" in the query text.

If the contents of the TEXT (or BYTE) column allow it, you can also use "ifx_textasvarchar(1)" and "ifx_byteasvarchar(1)". This allows you to treat TEXT (or BYTE) columns just as if they were ordinary (but long) VARCHAR columns for select queries, and you don't need to bother with blob id's.

With ifx_textasvarchar(0) or ifx_byteasvarchar(0) (the default situation), select queries will return BLOB columns as blob id's (integer value). You can get the value of the blob as a string or file with the blob functions (see below).

Пример 1. Show all rows of the "orders" table as a HTML table

<?php
ifx_textasvarchar(1);      // use "text mode" for blobs
$res_id = ifx_query("select * from orders", $conn_id);
if (! $res_id) {
    printf("Can't select orders : %s\n<br />%s<br />\n", ifx_error());
    ifx_errormsg();
    die;
}
ifx_htmltbl_result($res_id, "border=\"1\"");
ifx_free_result($res_id);
?>

Пример 2. Insert some values into the "catalog" table

<?php

// create blob id's for a byte and text column
$textid = ifx_create_blob(0, 0, "Text column in memory");
$byteid = ifx_create_blob(1, 0, "Byte column in memory");

// store blob id's in a blobid array
$blobidarray[] = $textid;
$blobidarray[] = $byteid;

// launch query
$query = "insert into catalog (stock_num, manu_code, " .
         "cat_descr,cat_picture) values(1,'HRO',?,?)";
$res_id = ifx_query($query, $conn_id, $blobidarray);
if (! $res_id) {
    /* ... error ... */
}

// free result id
ifx_free_result($res_id);
?>

See also ifx_connect().

Пред. | Начало | След.
ifx_prepare | Уровень выше | ifx_textasvarchar


ifx_textasvarchar

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifx_textasvarchar -- Set the default text mode

Description

void ifx_textasvarchar ( int mode )

Sets the default text mode for all select-queries. Mode "0" will return a blob id, and mode "1" will return a varchar with text content.

Пред. | Начало | След.
ifx_query | Уровень выше | ifx_update_blob


ifx_update_blob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifx_update_blob -- Updates the content of the blob object

Description

bool ifx_update_blob ( int bid, string content )

Updates the content of the blob object for the given blob object bid. content is a string with new data. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
ifx_textasvarchar | Уровень выше | ifx_update_char


ifx_update_char

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

ifx_update_char -- Updates the content of the char object

Description

int ifx_update_char ( int bid, string content )

Updates the content of the char object for the given char object bid. content is a string with new data. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
ifx_update_blob | Уровень выше | ifxus_close_slob


ifxus_close_slob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifxus_close_slob -- Deletes the slob object

Description

int ifxus_close_slob ( int bid )

Deletes the slob object on the given slob object-id bid. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
ifx_update_char | Уровень выше | ifxus_create_slob


ifxus_create_slob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifxus_create_slob -- Creates an slob object and opens it

Description

int ifxus_create_slob ( int mode )

Creates an slob object and opens it. Modes: 1 = LO_RDONLY, 2 = LO_WRONLY, 4 = LO_APPEND, 8 = LO_RDWR, 16 = LO_BUFFER, 32 = LO_NOBUFFER -> or-mask. You can also use constants named IFX_LO_RDONLY, IFX_LO_WRONLY etc. Return FALSE on error otherwise the new slob object-id.

Пред. | Начало | След.
ifxus_close_slob | Уровень выше | ifxus_free_slob


ifxus_free_slob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifxus_free_slob -- Deletes the slob object

Description

int ifxus_free_slob ( int bid )

Deletes the slob object. bid is the Id of the slob object. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
ifxus_create_slob | Уровень выше | ifxus_open_slob


ifxus_open_slob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifxus_open_slob -- Opens an slob object

Description

int ifxus_open_slob ( int bid, int mode )

Opens an slob object. bid should be an existing slob id. Modes: 1 = LO_RDONLY, 2 = LO_WRONLY, 4 = LO_APPEND, 8 = LO_RDWR, 16 = LO_BUFFER, 32 = LO_NOBUFFER -> or-mask. Returns FALSE on error otherwise the new slob object-id.

Пред. | Начало | След.
ifxus_free_slob | Уровень выше | ifxus_read_slob


ifxus_read_slob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifxus_read_slob -- Reads nbytes of the slob object

Description

int ifxus_read_slob ( int bid, int nbytes )

Reads nbytes of the slob object. bid is a existing slob id and nbytes is the number of bytes read. Return FALSE on error otherwise the string.

Пред. | Начало | След.
ifxus_open_slob | Уровень выше | ifxus_seek_slob


ifxus_seek_slob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifxus_seek_slob -- Sets the current file or seek position

Description

int ifxus_seek_slob ( int bid, int mode, int offset )

Sets the current file or seek position of an open slob object. bid should be an existing slob id. Modes: 0 = LO_SEEK_SET, 1 = LO_SEEK_CUR, 2 = LO_SEEK_END and offset is an byte offset. Return FALSE on error otherwise the seek position.

Пред. | Начало | След.
ifxus_read_slob | Уровень выше | ifxus_tell_slob


ifxus_tell_slob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifxus_tell_slob -- Returns the current file or seek position

Description

int ifxus_tell_slob ( int bid )

Returns the current file or seek position of an open slob object bid should be an existing slob id. Return FALSE on error otherwise the seek position.

Пред. | Начало | След.
ifxus_seek_slob | Уровень выше | ifxus_write_slob


ifxus_write_slob

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ifxus_write_slob -- Writes a string into the slob object

Description

int ifxus_write_slob ( int bid, string content )

Writes a string into the slob object. bid is an existing slob id and content the content to write. Return FALSE on error otherwise bytes written.

Пред. | Начало | След.
ifxus_tell_slob | Уровень выше | Ingres II Functions


IIS Administration Functions

Руководство по PHP
Пред. След.

LVI. IIS Administration Functions

Введение

Это расширение PECL не поставляется вместе с PHP. This extension is available for Win32 only. It provides functions to administrate Microsoft Internet Information Server (IIS). The extension includes function to create web sites and virtual directories as well as configuring security and script mapping. These functions have been added in PHP 4.

In order to use these functions you must enable the php_iisfunc.dll DLL inside of php.ini. Вы можете скачать DLL этого расширения PECL со страницы PHP Downloads или http://snaps.php.net/.

Требования

Эти функции всегда доступны.

Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Содержание
iis_add_server -- Creates a new virtual web server
iis_get_dir_security -- Gets Directory Security
iis_get_script_map -- Gets script mapping on a virtual directory for a specific extension
iis_get_server_by_comment -- Return the instance number associated with the Comment
iis_get_server_by_path -- Return the instance number associated with the Path
iis_get_server_rights -- Gets server rights
iis_get_service_state -- Returns the state for the service defined by ServiceId
iis_remove_server -- Removes the virtual web server indicated by ServerInstance
iis_set_app_settings -- Creates application scope for a virtual directory
iis_set_dir_security -- Sets Directory Security
iis_set_script_map -- Sets script mapping on a virtual directory
iis_set_server_rights -- Sets server rights
iis_start_server -- Starts the virtual web server
iis_start_service -- Starts the service defined by ServiceId
iis_stop_server -- Stops the virtual web server
iis_stop_service -- Stops the service defined by ServiceId

Пред. | Начало | След.
id3_set_tag | Уровень выше | iis_add_server


iis_add_server

(PECL)

iis_add_server -- Creates a new virtual web server

Description

int iis_add_server ( string path, string comment, string server_ip, int port, string host_name, int rights, int start_server )

Пред. | Начало | След.
IIS Administration Functions | Уровень выше | iis_get_dir_security


iis_get_dir_security

(PECL)

iis_get_dir_security -- Gets Directory Security

Description

int iis_get_dir_security ( int server_instance, string virtual_path )

Пред. | Начало | След.
iis_add_server | Уровень выше | iis_get_script_map


iis_get_script_map

(PECL)

iis_get_script_map -- Gets script mapping on a virtual directory for a specific extension

Description

string iis_get_script_map ( int server_instance, string virtual_path, string script_extension )

Пред. | Начало | След.
iis_get_dir_security | Уровень выше | iis_get_server_by_comment


iis_get_server_by_comment

(PECL)

iis_get_server_by_comment -- Return the instance number associated with the Comment

Description

int iis_get_server_by_comment ( string comment )

Пред. | Начало | След.
iis_get_script_map | Уровень выше | iis_get_server_by_path


iis_get_server_by_path

(PECL)

iis_get_server_by_path -- Return the instance number associated with the Path

Description

int iis_get_server_by_path ( string path )

Each virtual server in IIS is associated with an instance number. iis_get_server_by_path() Finds the instance number from the actual path to the root directory.

Пред. | Начало | След.
iis_get_server_by_comment | Уровень выше | iis_get_server_rights


iis_get_server_rights

(PECL)

iis_get_server_rights -- Gets server rights

Description

int iis_get_server_rights ( int server_instance, string virtual_path )

Пред. | Начало | След.
iis_get_server_by_path | Уровень выше | iis_get_service_state


iis_get_service_state

(PECL)

iis_get_service_state -- Returns the state for the service defined by ServiceId

Description

int iis_get_service_state ( string service_id )

Пред. | Начало | След.
iis_get_server_rights | Уровень выше | iis_remove_server


iis_remove_server

(PECL)

iis_remove_server -- Removes the virtual web server indicated by ServerInstance

Description

int iis_remove_server ( int server_instance )

Пред. | Начало | След.
iis_get_service_state | Уровень выше | iis_set_app_settings


iis_set_app_settings

(PECL)

iis_set_app_settings -- Creates application scope for a virtual directory

Description

int iis_set_app_settings ( int server_instance, string virtual_path, string application_scope )

Пред. | Начало | След.
iis_remove_server | Уровень выше | iis_set_dir_security


iis_set_dir_security

(PECL)

iis_set_dir_security -- Sets Directory Security

Description

int iis_set_dir_security ( int server_instance, string virtual_path, int directory_flags )

Пред. | Начало | След.
iis_set_app_settings | Уровень выше | iis_set_script_map


iis_set_script_map

(PECL)

iis_set_script_map -- Sets script mapping on a virtual directory

Description

int iis_set_script_map ( int server_instance, string virtual_path, string script_extension, string engine_path, int allow_scripting )

Пред. | Начало | След.
iis_set_dir_security | Уровень выше | iis_set_server_rights


iis_set_server_rights

(PECL)

iis_set_server_rights -- Sets server rights

Description

int iis_set_server_rights ( int server_instance, string virtual_path, int directory_flags )

Пред. | Начало | След.
iis_set_script_map | Уровень выше | iis_start_server


iis_start_server

(PECL)

iis_start_server -- Starts the virtual web server

Description

int iis_start_server ( int server_instance )

Пред. | Начало | След.
iis_set_server_rights | Уровень выше | iis_start_service


iis_start_service

(PECL)

iis_start_service -- Starts the service defined by ServiceId

Description

int iis_start_service ( string service_id )

Пред. | Начало | След.
iis_start_server | Уровень выше | iis_stop_server


iis_stop_server

(PECL)

iis_stop_server -- Stops the virtual web server

Description

int iis_stop_server ( int server_instance )

Пред. | Начало | След.
iis_start_service | Уровень выше | iis_stop_service


iis_stop_service

(PECL)

iis_stop_service -- Stops the service defined by ServiceId

Description

int iis_stop_service ( string service_id )

Пред. | Начало | След.
iis_stop_server | Уровень выше | Image Functions


Image Functions

Руководство по PHP
Пред. След.

LVII. Image Functions

Введение

PHP is not limited to creating just HTML output. It can also be used to create and manipulate image files in a variety of different image formats, including gif, png, jpg, wbmp, and xpm. Even more convenient, PHP can output image streams directly to a browser. You will need to compile PHP with the GD library of image functions for this to work. GD and PHP may also require other libraries, depending on which image formats you want to work with.

You can use the image functions in PHP to get the size of JPEG, GIF, PNG, SWF, TIFF and JPEG2000 images.

Замечание: Read requirements section about how to expand image capabilities to read, write and modify images and to read meta data of pictures taken by digital cameras.

Требования

If you have the GD library (available at http://www.boutell.com/gd/) you will also be able to create and manipulate images.

The format of images you are able to manipulate depend on the version of GD you install, and any other libraries GD might need to access those image formats. Versions of GD older than gd-1.6 support GIF format images, and do not support PNG, where versions greater than gd-1.6 and less than gd-2.0.28 support PNG, not GIF. GIF support was re-enabled in gd-2.0.28.

Замечание: Since PHP 4.3 there is a bundled version of the GD lib. This bundled version has some additional features like alpha blending, and should be used in preference to the external library since its codebase is better maintained and more stable.

You may wish to enhance GD to handle more image formats.

Таблица 1. Supported image formats

Image format | Library to download | Notes
gif |  | Only supported in GD versions older than gd-1.6 and newer than gd-2.0.28. Read-only GIF support is available with PHP 4.3.0 and the bundled GD-library. Write support is avaliable since PHP 4.3.9 and PHP 5.0.1.
jpeg-6b | ftp://ftp.uu.net/graphics/jpeg/ |
png | http://www.libpng.org/pub/png/libpng.html | Only supported in GD versions greater than gd-1.6.
xpm | ftp://metalab.unc.edu/pub/Linux/libs/X/!INDEX.html | It's likely you have this library already available, if your system has an installed X-Environment.

You may wish to enhance GD to deal with different fonts. The following font libraries are supported:

Таблица 2. Supported font libraries

Font library | Download | Notes
FreeType 1.x | http://www.freetype.org/ |
FreeType 2 | http://www.freetype.org/ |
T1lib | ftp://sunsite.unc.edu/pub/Linux/libs/graphics/) | Support for Type 1 fonts.

If you have PHP compiled with --enable-exif you are able to work with information stored in headers of JPEG and TIFF images. This way you can read meta data generated by digital cameras as mentioned above. These functions do not require the GD library.

Установка

To enable GD-support configure PHP --with-gd[=DIR], where DIR is the GD base install directory. To use the recommended bundled version of the GD library (which was first bundled in PHP 4.3.0), use the configure option --with-gd. GD library requires libpng and libjpeg to compile.

In Windows, you'll include the GD2 DLL php_gd2.dll as an extension in php.ini. The GD1 DLL php_gd.dll was removed in PHP 4.3.2. Also note that the preferred truecolor image functions, such as imagecreatetruecolor(), require GD2.

Замечание: To enable exif support in Windows, php_mbstring.dll must be loaded prior to php_exif.dll in php.ini.

To disable GD support in PHP 3 add --without-gd to your configure line.

Enhance the capabilities of GD to handle more image formats by specifying the --with-XXXX configure switch to your PHP configure line.

Таблица 3. Supported image formats

Image Format | Configure Switch
jpeg-6b | To enable support for jpeg-6b add --with-jpeg-dir=DIR.
png | To enable support for png add --with-png-dir=DIR. Note, libpng requires the zlib library, therefore add --with-zlib-dir[=DIR] to your configure line.
xpm | To enable support for xpm add --with-xpm-dir=DIR. If configure is not able to find the required libraries, you may add the path to your X11 libraries.

Замечание: When compiling PHP with libpng, you must use the same version that was linked with the GD library.

Enhance the capabilities of GD to deal with different fonts by specifying the --with-XXXX configure switch to your PHP configure line.

Таблица 4. Supported font libraries

Font library | Configure Switch
FreeType 1.x | To enable support for FreeType 1.x add --with-ttf[=DIR].
FreeType 2 | To enable support for FreeType 2 add --with-freetype-dir=DIR.
T1lib | To enable support for T1lib (Type 1 fonts) add --with-t1lib[=DIR].
Native TrueType string function | To enable support for native TrueType string function add --enable-gd-native-ttf.

Настройка во время выполнения

There are no image specific configurations but you may be interested in the exif extension directives.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

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)

IMAGETYPE_GIF (integer)

IMAGETYPE_JPEG (integer)

IMAGETYPE_PNG (integer)

IMAGETYPE_SWF (integer)

IMAGETYPE_PSD (integer)

IMAGETYPE_BMP (integer)

IMAGETYPE_WBMP (integer)

IMAGETYPE_XBM (integer)

IMAGETYPE_TIFF_II (integer)

IMAGETYPE_TIFF_MM (integer)

IMAGETYPE_IFF (integer)

IMAGETYPE_JB2 (integer)

IMAGETYPE_JPC (integer)

IMAGETYPE_JP2 (integer)

IMAGETYPE_JPX (integer)

IMAGETYPE_SWC (integer)

Примеры

Пример 1. PNG creation with PHP

<?php

header("Content-type: image/png");
$string = $_GET['text'];
$im     = imagecreatefrompng("images/button1.png");
$orange = imagecolorallocate($im, 220, 210, 60);
$px     = (imagesx($im) - 7.5 * strlen($string)) / 2;
imagestring($im, 3, $px, 9, $string, $orange);
imagepng($im);
imagedestroy($im);

?>
This example would be called from a page with a tag like: <img src="button.php?text=text">. The above button.php script then takes this "text" string and overlays it on top of a base image which in this case is "images/button1.png" and outputs the resulting image. This is a very convenient way to avoid having to draw new button images every time you want to change the text of a button. With this method they are dynamically generated.

Содержание
gd_info -- Retrieve information about the currently installed GD library
getimagesize -- Get the size of an image
image_type_to_extension -- Get file extension for image type
image_type_to_mime_type -- Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype
image2wbmp -- Output image to browser or file
imagealphablending -- Set the blending mode for an image
imageantialias -- Should antialias functions be used or not
imagearc -- Draw a partial ellipse
imagechar -- Draw a character horizontally
imagecharup -- Draw a character vertically
imagecolorallocate -- Allocate a color for an image
imagecolorallocatealpha -- Allocate a color for an image
imagecolorat -- Get the index of the color of a pixel
imagecolorclosest -- Get the index of the closest color to the specified color
imagecolorclosestalpha -- Get the index of the closest color to the specified color + alpha
imagecolorclosesthwb -- Get the index of the color which has the hue, white and blackness nearest to the given color
imagecolordeallocate -- De-allocate a color for an image
imagecolorexact -- Get the index of the specified color
imagecolorexactalpha -- Get the index of the specified color + alpha
imagecolormatch -- Makes the colors of the palette version of an image more closely match the true color version
imagecolorresolve -- Get the index of the specified color or its closest possible alternative
imagecolorresolvealpha -- Get the index of the specified color + alpha or its closest possible alternative
imagecolorset -- Set the color for the specified palette index
imagecolorsforindex -- Get the colors for an index
imagecolorstotal -- Find out the number of colors in an image's palette
imagecolortransparent -- Define a color as transparent
imageconvolution -- Apply a 3x3 convolution matrix, using coefficient div and offset
imagecopy -- Copy part of an image
imagecopymerge -- Copy and merge part of an image
imagecopymergegray -- Copy and merge part of an image with gray scale
imagecopyresampled -- Copy and resize part of an image with resampling
imagecopyresized -- Copy and resize part of an image
imagecreate -- Create a new palette based image
imagecreatefromgd2 -- Create a new image from GD2 file or URL
imagecreatefromgd2part -- Create a new image from a given part of GD2 file or URL
imagecreatefromgd -- Create a new image from GD file or URL
imagecreatefromgif -- Create a new image from file or URL
imagecreatefromjpeg -- Create a new image from file or URL
imagecreatefrompng -- Create a new image from file or URL
imagecreatefromstring -- Create a new image from the image stream in the string
imagecreatefromwbmp -- Create a new image from file or URL
imagecreatefromxbm -- Create a new image from file or URL
imagecreatefromxpm -- Create a new image from file or URL
imagecreatetruecolor -- Create a new true color image
imagedashedline -- Draw a dashed line
imagedestroy -- Destroy an image
imageellipse -- Draw an ellipse
imagefill -- Flood fill
imagefilledarc -- Draw a partial ellipse and fill it
imagefilledellipse -- Draw a filled ellipse
imagefilledpolygon -- Draw a filled polygon
imagefilledrectangle -- Draw a filled rectangle
imagefilltoborder -- Flood fill to specific color
imagefilter -- Applies a filter to an image
imagefontheight -- Get font height
imagefontwidth -- Get font width
imageftbbox -- Give the bounding box of a text using fonts via freetype2
imagefttext -- Write text to the image using fonts using FreeType 2
imagegammacorrect -- Apply a gamma correction to a GD image
imagegd2 -- Output GD2 image to browser or file
imagegd -- Output GD image to browser or file
imagegif -- Output image to browser or file
imageinterlace -- Enable or disable interlace
imageistruecolor -- Finds whether an image is a truecolor image
imagejpeg -- Output image to browser or file
imagelayereffect -- Set the alpha blending flag to use the bundled libgd layering effects
imageline -- Draw a line
imageloadfont -- Load a new font
imagepalettecopy -- Copy the palette from one image to another
imagepng -- Output a PNG image to either the browser or a file
imagepolygon -- Draw a polygon
imagepsbbox -- Give the bounding box of a text rectangle using PostScript Type1 fonts
imagepscopyfont -- Make a copy of an already loaded font for further modification
imagepsencodefont -- Change the character encoding vector of a font
imagepsextendfont -- Extend or condense a font
imagepsfreefont -- Free memory used by a PostScript Type 1 font
imagepsloadfont -- Load a PostScript Type 1 font from file
imagepsslantfont -- Slant a font
imagepstext -- To draw a text string over an image using PostScript Type1 fonts
imagerectangle -- Draw a rectangle
imagerotate -- Rotate an image with a given angle
imagesavealpha -- Set the flag to save full alpha channel information (as opposed to single-color transparency) when saving PNG images
imagesetbrush -- Set the brush image for line drawing
imagesetpixel -- Set a single pixel
imagesetstyle -- Set the style for line drawing
imagesetthickness -- Set the thickness for line drawing
imagesettile -- Set the tile image for filling
imagestring -- Draw a string horizontally
imagestringup -- Draw a string vertically
imagesx -- Get image width
imagesy -- Get image height
imagetruecolortopalette -- Convert a true color image to a palette image
imagettfbbox -- Give the bounding box of a text using TrueType fonts
imagettftext -- Write text to the image using TrueType fonts
imagetypes -- Return the image types supported by this PHP build
imagewbmp -- Output image to browser or file
imagexbm -- Output XBM image to browser or file
iptcembed -- Embed binary IPTC data into a JPEG image
iptcparse -- Parse a binary IPTC http://www.iptc.org/ block into single tags.
jpeg2wbmp -- Convert JPEG image file to WBMP image file
png2wbmp -- Convert PNG image file to WBMP image file

Пред. | Начало | След.
iis_stop_service | Уровень выше | gd_info


gd_info

(PHP 4 >= 4.3.0, PHP 5)

gd_info -- Retrieve information about the currently installed GD library

Description

array gd_info ( void )

Returns an associative array describing the version and capabilities of the installed GD library.

Таблица 1. Elements of array returned by gd_info()

Attribute | Meaning
GD Version | string value describing the installed libgd version.
Freetype Support | boolean value. TRUE if Freetype Support is installed.
Freetype Linkage | string value describing the way in which Freetype was linked. Expected values are: 'with freetype', 'with TTF library', and 'with unknown library'. This element will only be defined if Freetype Support evaluated to TRUE.
T1Lib Support | boolean value. TRUE if T1Lib support is included.
GIF Read Support | boolean value. TRUE if support for reading GIF images is included.
GIF Create Support | boolean value. TRUE if support for creating GIF images is included.
JPG Support | boolean value. TRUE if JPG support is included.
PNG Support | boolean value. TRUE if PNG support is included.
WBMP Support | boolean value. TRUE if WBMP support is included.
XBM Support | boolean value. TRUE if XBM support is included.

Пример 1. Using gd_info()

<?php
var_dump(gd_info());
?>

The typical output is :

array(9) {
  ["GD Version"]=>
  string(24) "bundled (2.0 compatible)"
  ["FreeType Support"]=>
  bool(false)
  ["T1Lib Support"]=>
  bool(false)
  ["GIF Read Support"]=>
  bool(true)
  ["GIF Create Support"]=>
  bool(false)
  ["JPG Support"]=>
  bool(false)
  ["PNG Support"]=>
  bool(true)
  ["WBMP Support"]=>
  bool(true)
  ["XBM Support"]=>
  bool(false)
}

See also imagepng(),
imagejpeg(),
imagegif(),
imagewbmp(), and
imagetypes().

Пред. | Начало | След.
Image Functions | Уровень выше | getimagesize


getimagesize

(PHP 3, PHP 4, PHP 5)

getimagesize -- Get the size of an image

Description

array getimagesize ( string filename [, array &imageinfo] )

The getimagesize() function will determine the size of any GIF, JPG, PNG, SWF, SWC, PSD, TIFF, BMP, IFF, JP2, JPX, JB2, JPC, XBM, or WBMP image file and return the dimensions along with the file type and a height/width text string to be used inside a normal HTML <IMG> tag.

If accessing the filename image is impossible, or if it isn't a valid picture, getimagesize() will return FALSE and generate an error of level E_WARNING.

Замечание: Support for JPC, JP2, JPX, JB2, XBM, and WBMP became available in PHP 4.3.2. Support for SWC exists as of PHP 4.3.0 and TIFF support was added in PHP 4.2.0

Замечание: JPEG 2000 support was added in PHP 4.3.2. Note that JPC and JP2 are capable of having components with different bit depths. In this case, the value for "bits" is the highest bit depth encountered. Also, JP2 files may contain multiple JPEG 2000 codestreams. In this case, getimagesize() returns the values for the first codestream it encounters in the root of the file.

Замечание: The getimagesize() function does not require the GD image library.

Returns an array with 4 elements. Index 0 contains the width of the image in pixels. Index 1 contains the height. Index 2 is a flag indicating the type of the image: 1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(intel byte order), 8 = TIFF(motorola byte order), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF, 15 = WBMP, 16 = XBM. These values correspond to the IMAGETYPE constants that were added in PHP 4.3.0. Index 3 is a text string with the correct height="yyy" width="xxx" string that can be used directly in an IMG tag.

Пример 1. getimagesize (file)

<?php
list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
echo "<img src=\"img/flag.jpg\" $attr alt=\"getimagesize() example\" />";
?>

URL support was added in PHP 4.0.5

Пример 2. getimagesize (URL)

<?php
$size = getimagesize("http://www.example.com/gifs/logo.gif");

// if the file name has space in it, encode it properly
$size = getimagesize("http://www.example.com/gifs/lo%20go.gif");

?>

With JPG images, two extra indexes are returned: channels and bits. channels will be 3 for RGB pictures and 4 for CMYK pictures. bits is the number of bits for each color.

Beginning with PHP 4.3.0, bits and channels are present for other image types, too. However, the presence of these values can be a bit confusing. As an example, GIF always uses 3 channels per pixel, but the number of bits per pixel cannot be calculated for an animated GIF with a global color table.

Some formats may contain no image or may contain multiple images. In these cases, getimagesize() might not be able to properly determine the image size. getimagesize() will return zero for width and height in these cases.

Beginning with PHP 4.3.0, getimagesize() also returns an additional parameter, mime, that corresponds with the MIME type of the image. This information can be used to deliver images with correct HTTP Content-type headers:

Пример 3. getimagesize() and MIME types

<?php
$size = getimagesize($filename);
$fp=fopen($filename, "rb");
if ($size && $fp) {
  header("Content-type: {$size['mime']}");
  fpassthru($fp);
  exit;
} else {
  // error
}
?>

The optional imageinfo parameter allows you to extract some extended information from the image file. Currently, this will return the different JPG APP markers as an associative array. Some programs use these APP markers to embed text information in images. A very common one is to embed IPTC http://www.iptc.org/ information in the APP13 marker. You can use the iptcparse() function to parse the binary APP13 marker into something readable.

Пример 4. getimagesize() returning IPTC

<?php
$size = getimagesize("testimg.jpg", $info);
if (isset($info["APP13"])) {
    $iptc = iptcparse($info["APP13"]);
    var_dump($iptc);
}
?>

See also image_type_to_mime_type(),
exif_imagetype(),
exif_read_data(), and
exif_thumbnail().

Пред. | Начало | След.
gd_info | Уровень выше | image_type_to_extension


image_type_to_extension

(no version information, might be only in CVS)

image_type_to_extension -- Get file extension for image type

Description

string image_type_to_extension ( int imagetype [, bool include_dot] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
getimagesize | Уровень выше | image_type_to_mime_type


image_type_to_mime_type

(PHP 4 >= 4.3.0, PHP 5)

image_type_to_mime_type -- Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype

Description

string image_type_to_mime_type ( int imagetype )

The image_type_to_mime_type() function will determine the Mime-Type for an IMAGETYPE constant.

Пример 1. image_type_to_mime_type (file)

<?php
header("Content-type: " . image_type_to_mime_type(IMAGETYPE_PNG));
?>

The returned values are as follows

Таблица 1. Returned values Constants

imagetype | Returned value
IMAGETYPE_GIF | image/gif
IMAGETYPE_JPEG | image/jpeg
IMAGETYPE_PNG | image/png
IMAGETYPE_SWF | application/x-shockwave-flash
IMAGETYPE_PSD | image/psd
IMAGETYPE_BMP | image/bmp
IMAGETYPE_TIFF_II (intel byte order) | image/tiff
IMAGETYPE_TIFF_MM (motorola byte order) | image/tiff
IMAGETYPE_JPC | application/octet-stream
IMAGETYPE_JP2 | image/jp2
IMAGETYPE_JPX | application/octet-stream
IMAGETYPE_JB2 | application/octet-stream
IMAGETYPE_SWC | application/x-shockwave-flash
IMAGETYPE_IFF | image/iff
IMAGETYPE_WBMP | image/vnd.wap.wbmp
IMAGETYPE_XBM | image/xbm

Замечание: This function does not require the GD image library.

See also getimagesize(),
exif_imagetype(),
exif_read_data() and
exif_thumbnail().

Пред. | Начало | След.
image_type_to_extension | Уровень выше | image2wbmp


image2wbmp

(PHP 4 >= 4.0.5, PHP 5)

image2wbmp -- Output image to browser or file

Description

int image2wbmp ( resource image [, string filename [, int threshold]] )

image2wbmp() creates the WBMP file in filename from the image image. The image argument is the return from one of the image create functions, such as imagecreatetruecolor().

The filename argument is optional, and if left off, the raw image stream will be output directly. By sending an image/vnd.wap.wbmp content-type using header(), you can create a PHP script that outputs WBMP images directly.

Пример 1. image2wbmp() example

<?php

$file = 'php.png';
$image = imagecreatefrompng($file);

header('Content-type: ' . image_type_to_mime_type(IMAGETYPE_WBMP));
image2wbmp($image); // output the stream directly

?>

Замечание: WBMP support is only available if PHP was compiled against GD-1.8 or later.

See also imagewbmp().

Пред. | Начало | След.
image_type_to_mime_type | Уровень выше | imagealphablending


imagealphablending

(PHP 4 >= 4.0.6, PHP 5)

imagealphablending -- Set the blending mode for an image

Description

bool imagealphablending ( resource image, bool blendmode )

imagealphablending() allows for two different modes of drawing on truecolor images. In blending mode, the alpha channel component of the color supplied to all drawing function, such as imagesetpixel() determines how much of the underlying color should be allowed to shine through. As a result, gd automatically blends the existing color at that point with the drawing color, and stores the result in the image. The resulting pixel is opaque. In non-blending mode, the drawing color is copied literally with its alpha channel information, replacing the destination pixel. Blending mode is not available when drawing on palette images. If blendmode is TRUE, then blending mode is enabled, otherwise disabled. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: Эта функция нуждается в GD версии 2.0.1 или выше.

Пред. | Начало | След.
image2wbmp | Уровень выше | imageantialias


imageantialias

(PHP 4 >= 4.3.2, PHP 5)

imageantialias -- Should antialias functions be used or not

Description

bool imageantialias ( resource im, bool on )

Activate the fast drawing antialiased methods for lines and wired polygons. It does not support alpha components. It works using a direct blend operation. It works only with truecolor images.

Thickness and styled are not supported.

Using antialiased primitives with transparent background color can end with some unexpected results. The blend method uses the background color as any other colors. The lack of alpha component support does not allow an alpha based antialiasing method.

Замечание: Эта функция доступна только в том случае, если PHP был скомпилирован со встроенной библиотекой GD.

See also imagecreatetruecolor().

Пред. | Начало | След.
imagealphablending | Уровень выше | imagearc


imagearc

(PHP 3, PHP 4, PHP 5)

imagearc -- Draw a partial ellipse

Description

bool imagearc ( resource image, int cx, int cy, int w, int h, int s, int e, int color )

imagearc() draws a partial ellipse centered at cx, cy (top left is 0, 0) in the image represented by image. W and h specifies the ellipse's width and height respectively while the start and end points are specified in degrees indicated by the s and e arguments. 0° is located at the three-o'clock position, and the arc is drawn clockwise.

Пример 1. Drawing a circle with imagearc()

<?php

// create a 200*200 image
$img = imagecreatetruecolor(200, 200);

// allocate some colors
$white = imagecolorallocate($img, 255, 255, 255);
$black = imagecolorallocate($img, 0, 0, 0);

// draw a black circle
imagearc($img, 100, 100, 150, 150, 0, 360, $black);

// output image in the browser
header("Content-type: image/png");
imagepng($img);

// free memory
imagedestroy($img);

?>

See also imageellipse(),
imagefilledellipse(), and
imagefilledarc().

Пред. | Начало | След.
imageantialias | Уровень выше | imagechar


imagechar

(PHP 3, PHP 4, PHP 5)

imagechar -- Draw a character horizontally

Description

bool imagechar ( resource image, int font, int x, int y, string c, int color )

imagechar() draws the first character of c in the image identified by image with its upper-left at x,y (top left is 0, 0) with the color color. If font is 1, 2, 3, 4 or 5, a built-in font is used (with higher numbers corresponding to larger fonts).

Пример 1. imagechar() example

<?php

$im = imagecreatetruecolor(100, 100);

$string = 'PHP';

$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// prints a black "P" in the top left corner
imagechar($im, 1, 0, 0, $string, $black);

header('Content-type: image/png');
imagepng($im);

?>

See also imagecharup() and imageloadfont().

Пред. | Начало | След.
imagearc | Уровень выше | imagecharup


imagecharup

(PHP 3, PHP 4, PHP 5)

imagecharup -- Draw a character vertically

Description

bool imagecharup ( resource image, int font, int x, int y, string c, int color )

imagecharup() draws the character c vertically in the image identified by image at coordinates x, y (top left is 0, 0) with the color color. If font is 1, 2, 3, 4 or 5, a built-in font is used.

Пример 1. imagecharup() example

<?php

$im = imagecreatetruecolor(100, 100);

$string = 'Note that the first letter is a N';

$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// prints a black "Z" on a white background
imagecharup($im, 3, 10, 10, $string, $black);

header('Content-type: image/png');
imagepng($im);

?>

See also imagechar() and imageloadfont().

Пред. | Начало | След.
imagechar | Уровень выше | imagecolorallocate


imagecolorallocate

(PHP 3, PHP 4, PHP 5)

imagecolorallocate -- Allocate a color for an image

Description

int imagecolorallocate ( resource image, int red, int green, int blue )

imagecolorallocate() returns a color identifier representing the color composed of the given RGB components. The image argument is the return from the imagecreatetruecolor() function. red, green and blue are the values of the red, green and blue component of the requested color respectively. These parameters are integers between 0 and 255 or hexadecimals between 0x00 and 0xFF. imagecolorallocate() must be called to create each color that is to be used in the image represented by image.

Замечание: The first call to imagecolorallocate() fills the background color.

<?php

$im = imagecreatetruecolor('example.jpg');
// sets background to red
$background = imagecolorallocate($im, 255, 0, 0);

// sets some colors
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// hexadecimal way
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);

?>

Returns -1 if the allocation failed.

See also imagecolorallocatealpha() and imagecolordeallocate().

Пред. | Начало | След.
imagecharup | Уровень выше | imagecolorallocatealpha


imagecolorallocatealpha

(PHP 4 >= 4.3.2, PHP 5)

imagecolorallocatealpha -- Allocate a color for an image

Description

int imagecolorallocatealpha ( resource image, int red, int green, int blue, int alpha )

imagecolorallocatealpha() behaves identically to imagecolorallocate() with the addition of the transparency parameter alpha which may have a value between 0 and 127. 0 indicates completely opaque while 127 indicates completely transparent.

Returns FALSE if the allocation failed.

Пример 1. Example of using imagecolorallocatealpha()

<?php
$size = 300;
$image=imagecreatetruecolor($size, $size);

// something to get a white background with black border
$back = imagecolorallocate($image, 255, 255, 255);
$border = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 0, 0, $size - 1, $size - 1, $back);
imagerectangle($image, 0, 0, $size - 1, $size - 1, $border);

$yellow_x = 100;
$yellow_y = 75;
$red_x    = 120;
$red_y    = 165;
$blue_x   = 187;
$blue_y   = 125;
$radius   = 150;

// allocate colors with alpha values
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red    = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue   = imagecolorallocatealpha($image, 0, 0, 255, 75);

// drawing 3 overlapped circle
imagefilledellipse($image, $yellow_x, $yellow_y, $radius, $radius, $yellow);
imagefilledellipse($image, $red_x, $red_y, $radius, $radius, $red);
imagefilledellipse($image, $blue_x, $blue_y, $radius, $radius, $blue);

// don't forget to output a correct header!
header('Content-type: image/png');

// and finally, output the result
imagepng($image);
imagedestroy($image);
?>

Замечание: Эта функция нуждается в GD версии 2.0.1 или выше.

See also imagecolorallocate() and imagecolordeallocate().

Пред. | Начало | След.
imagecolorallocate | Уровень выше | imagecolorat


imagecolorat

(PHP 3, PHP 4, PHP 5)

imagecolorat -- Get the index of the color of a pixel

Description

int imagecolorat ( resource image, int x, int y )

Returns the index of the color of the pixel at the specified location in the image specified by image.

If PHP is compiled against GD library 2.0 or higher and the image is a truecolor image, this function returns the RGB value of that pixel as integer. Use bitshifting and masking to access the distinct red, green and blue component values:

Пример 1. Access distinct RGB values

<?php
$im = ImageCreateFromPng("rockym.png");
$rgb = ImageColorAt($im, 100, 100);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
?>

See also imagecolorset() and imagecolorsforindex().

Пред. | Начало | След.
imagecolorallocatealpha | Уровень выше | imagecolorclosest


imagecolorclosest

(PHP 3, PHP 4, PHP 5)

imagecolorclosest -- Get the index of the closest color to the specified color

Description

int imagecolorclosest ( resource image, int red, int green, int blue )

Returns the index of the color in the palette of the image which is "closest" to the specified RGB value.

The "distance" between the desired color and each color in the palette is calculated as if the RGB values represented points in three-dimensional space.

If you created the image from a file, only colors used in the image are resolved. Colors present only in the pallete are not resolved.

See also imagecolorexact().

Пред. | Начало | След.
imagecolorat | Уровень выше | imagecolorclosestalpha


imagecolorclosestalpha

(PHP 4 >= 4.0.6, PHP 5)

imagecolorclosestalpha -- Get the index of the closest color to the specified color + alpha

Description

int imagecolorclosestalpha ( resource image, int red, int green, int blue, int alpha )

Returns the index of the color in the palette of the image which is "closest" to the specified RGB value and alpha level.

Замечание: Эта функция нуждается в GD версии 2.0.1 или выше.

See also imagecolorexactalpha().

Пред. | Начало | След.
imagecolorclosest | Уровень выше | imagecolorclosesthwb


imagecolorclosesthwb

(PHP 4 >= 4.0.1, PHP 5)

imagecolorclosesthwb -- Get the index of the color which has the hue, white and blackness nearest to the given color

Description

int imagecolorclosesthwb ( resource image, int red, int green, int blue )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
imagecolorclosestalpha | Уровень выше | imagecolordeallocate


imagecolordeallocate

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

imagecolordeallocate -- De-allocate a color for an image

Description

bool imagecolordeallocate ( resource image, int color )

The imagecolordeallocate() function de-allocates a color previously allocated with imagecolorallocate() or imagecolorallocatealpha().

<?php
$white = imagecolorallocate($im, 255, 255, 255);
imagecolordeallocate($im, $white);
?>

See also imagecolorallocate() and imagecolorallocatealpha().

Пред. | Начало | След.
imagecolorclosesthwb | Уровень выше | imagecolorexact


imagecolorexact

(PHP 3, PHP 4, PHP 5)

imagecolorexact -- Get the index of the specified color

Description

int imagecolorexact ( resource image, int red, int green, int blue )

Returns the index of the specified color in the palette of the image.

If the color does not exist in the image's palette, -1 is returned.

If you created the image from a file, only colors used in the image are resolved. Colors present only in the pallete are not resolved.

See also imagecolorclosest().

Пред. | Начало | След.
imagecolordeallocate | Уровень выше | imagecolorexactalpha


imagecolorexactalpha

(PHP 4 >= 4.0.6, PHP 5)

imagecolorexactalpha -- Get the index of the specified color + alpha

Description

int imagecolorexactalpha ( resource image, int red, int green, int blue, int alpha )

Returns the index of the specified color+alpha in the palette of the image.

If the color does not exist in the image's palette, -1 is returned.

Замечание: Эта функция нуждается в GD версии 2.0.1 или выше.

See also imagecolorclosestalpha().

Пред. | Начало | След.
imagecolorexact | Уровень выше | imagecolormatch


imagecolormatch

(PHP 4 >= 4.3.0, PHP 5)

imagecolormatch -- Makes the colors of the palette version of an image more closely match the true color version

Description

bool imagecolormatch ( resource image1, resource image2 )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

image1 must be Truecolor, image2 must be Palette, and both image1 and image2 must be the same size.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: Эта функция доступна только в том случае, если PHP был скомпилирован со встроенной библиотекой GD.

Замечание: Эта функция нуждается в GD версии 2.0.1 или выше.

See also imagecreatetruecolor().

Пред. | Начало | След.
imagecolorexactalpha | Уровень выше | imagecolorresolve


imagecolorresolve

(PHP 3 >= 3.0.2, PHP 4, PHP 5)

imagecolorresolve -- Get the index of the specified color or its closest possible alternative

Description

int imagecolorresolve ( resource image, int red, int green, int blue )

This function is guaranteed to return a color index for a requested color, either the exact color or the closest possible alternative.

If you created the image from a file, only colors used in the image are resolved. Colors present only in the pallete are not resolved.

See also imagecolorclosest().

Пред. | Начало | След.
imagecolormatch | Уровень выше | imagecolorresolvealpha


imagecolorresolvealpha

(PHP 4 >= 4.0.6, PHP 5)

imagecolorresolvealpha -- Get the index of the specified color + alpha or its closest possible alternative

Description

int imagecolorresolvealpha ( resource image, int red, int green, int blue, int alpha )

This function is guaranteed to return a color index for a requested color, either the exact color or the closest possible alternative.

Замечание: Эта функция нуждается в GD версии 2.0.1 или выше.

See also imagecolorclosestalpha().

Пред. | Начало | След.
imagecolorresolve | Уровень выше | imagecolorset


imagecolorset

(PHP 3, PHP 4, PHP 5)

imagecolorset -- Set the color for the specified palette index

Description

void imagecolorset ( resource image, int index, int red, int green, int blue )

This sets the specified index in the palette to the specified color. This is useful for creating flood-fill-like effects in palleted images without the overhead of performing the actual flood-fill.

See also imagecolorat().

Пред. | Начало | След.
imagecolorresolvealpha | Уровень выше | imagecolorsforindex


imagecolorsforindex

(PHP 3, PHP 4, PHP 5)

imagecolorsforindex -- Get the colors for an index

Description

array imagecolorsforindex ( resource image, int index )

This returns an associative array with red, green, blue and alpha keys that contain the appropriate values for the specified color index.

Пример 1. imagecolorsforindex() example

<?php

// open an image
$im = imagecreatefrompng('nexen.png');

// get a color
$start_x = 40;
$start_y = 50;
$color_index = imagecolorat($im, $start_x, $start_y);

// make it human readable
$color_tran = imagecolorsforindex($im, $color_index);

// what is it ?
echo '<pre>';
print_r($color_tran);
echo '</pre>';

?>

This example will output :

Array
(
    [red] => 226
    [green] => 222
    [blue] => 252
    [alpha] => 0
)

See also imagecolorat() and imagecolorexact().

Пред. | Начало | След.
imagecolorset | Уровень выше | imagecolorstotal


imagecolorstotal

(PHP 3, PHP 4, PHP 5)

imagecolorstotal -- Find out the number of colors in an image's palette

Description

int imagecolorstotal ( resource image )

This returns the number of colors in the specified image's palette.

See also imagecolorat() and imagecolorsforindex().

Пред. | Начало | След.
imagecolorsforindex | Уровень выше | imagecolortransparent


imagecolortransparent

(PHP 3, PHP 4, PHP 5)

imagecolortransparent -- Define a color as transparent

Description

int imagecolortransparent ( resource image [, int color] )

imagecolortransparent() sets the transparent color in the image image to color. image is the image identifier returned by imagecreatetruecolor() and color is a color identifier returned by imagecolorallocate().

Замечание: The transparent color is a property of the image, transparency is not a property of the color. Once you have set a color to be the transparent color, any regions of the image in that color that were drawn previously will be transparent.

The identifier of the new (or current, if none is specified) transparent color is returned.

Замечание: Transparency is copied only with imagecopymerge() and true color images, not with imagecopy() or pallete images.

Пред. | Начало | След.
imagecolorstotal | Уровень выше | imageconvolution


imagecopy

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

imagecopy -- Copy part of an image

Description

bool imagecopy ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h )

Copy a part of src_im onto dst_im starting at the x,y coordinates src_x, src_y with a width of src_w and a height of src_h. The portion defined will be copied onto the x,y coordinates, dst_x and dst_y.

Пред. | Начало | След.
imageconvolution | Уровень выше | imagecopymerge


imagecopymerge

(PHP 4 >= 4.0.1, PHP 5)

imagecopymerge -- Copy and merge part of an image

Description

bool imagecopymerge ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct )

Copy a part of src_im onto dst_im starting at the x,y coordinates src_x, src_y with a width of src_w and a height of src_h. The portion defined will be copied onto the x,y coordinates, dst_x and dst_y. The two images will be merged according to pct which can range from 0 to 100. When pct = 0, no action is taken, when 100 this function behaves identically to imagecopy() for pallete images, while it implements alpha transparency for true colour images.

Замечание: This function was added in PHP 4.0.6

Пред. | Начало | След.
imagecopy | Уровень выше | imagecopymergegray


imagecopymergegray

(PHP 4 >= 4.0.6, PHP 5)

imagecopymergegray -- Copy and merge part of an image with gray scale

Description

bool imagecopymergegray ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct )

imagecopymergegray() copy a part of src_im onto dst_im starting at the x,y coordinates src_x, src_y with a width of src_w and a height of src_h. The portion defined will be copied onto the x,y coordinates, dst_x and dst_y. The two images will be merged according to pct which can range from 0 to 100. When pct = 0, no action is taken, when 100 this function behaves identically to imagecopy().

This function is identical to imagecopymerge() except that when merging it preserves the hue of the source by converting the destination pixels to gray scale before the copy operation.

Замечание: This function was added in PHP 4.0.6

Пред. | Начало | След.
imagecopymerge | Уровень выше | imagecopyresampled


imagecopyresampled

(PHP 4 >= 4.0.6, PHP 5)

imagecopyresampled -- Copy and resize part of an image with resampling

Description

bool imagecopyresampled ( resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h )

imagecopyresampled() copies a rectangular portion of one image to another image, smoothly interpolating pixel values so that, in particular, reducing the size of an image still retains a great deal of clarity. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

dst_image is the destination image, src_image is the source image identifier. If the source and destination coordinates and width and heights differ, appropriate stretching or shrinking of the image fragment will be performed. The coordinates refer to the upper left corner. This function can be used to copy regions within the same image (if dst_image is the same as src_image) but if the regions overlap the results will be unpredictable.

Замечание: There is a problem due to palette image limitations (255+1 colors). Resampling or filtering an image commonly needs more colors than 255, a kind of approximation is used to calculate the new resampled pixel and its color. With a palette image we try to allocate a new color, if that failed, we choose the closest (in theory) computed color. This is not always the closest visual color. That may produce a weird result, like blank (or visually blank) images. To skip this problem, please use a truecolor image as a destination image, such as one created by imagecreatetruecolor().

Замечание: Эта функция нуждается в GD версии 2.0.1 или выше.

Примеры

Пример 1. Simple example

This example will resample an image to half its original size.

<?php
// The file
$filename = 'test.jpg';
$percent = 0.5;

// Content type
header('Content-type: image/jpeg');

// Get new dimensions
list($width, $height) = getimagesize($filename);
$new_width = $width * $percent;
$new_height = $height * $percent;

// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// Output
imagejpeg($image_p, null, 100);
?>

Пример 2. Resampling an image proportionally

This example will display an image with the maximum width, or height, of 200 pixels.

<?php
// The file
$filename = 'test.jpg';

// Set a maximum height and width
$width = 200;
$height = 200;

// Content type
header('Content-type: image/jpeg');

// Get new dimensions
list($width_orig, $height_orig) = getimagesize($filename);

if ($width && ($width_orig < $height_orig)) {
    $width = ($height / $height_orig) * $width_orig;
} else {
    $height = ($width / $width_orig) * $height_orig;
}

// Resample
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// Output
imagejpeg($image_p, null, 100);
?>

Смотрите также

imagecopyresized()

Пред. | Начало | След.
imagecopymergegray | Уровень выше | imagecopyresized


imagecopyresized

(PHP 3, PHP 4, PHP 5)

imagecopyresized -- Copy and resize part of an image

Description

bool imagecopyresized ( resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h )

imagecopyresized() copies a rectangular portion of one image to another image. dst_image is the destination image, src_image is the source image identifier. If the source and destination coordinates and width and heights differ, appropriate stretching or shrinking of the image fragment will be performed. The coordinates refer to the upper left corner. This function can be used to copy regions within the same image (if dst_image is the same as src_image) but if the regions overlap the results will be unpredictable.

Замечание: There is a problem due to palette image limitations (255+1 colors). Resampling or filtering an image commonly needs more colors than 255, a kind of approximation is used to calculate the new resampled pixel and its color. With a palette image we try to allocate a new color, if that failed, we choose the closest (in theory) computed color. This is not always the closest visual color. That may produce a weird result, like blank (or visually blank) images. To skip this problem, please use a truecolor image as a destination image, such as one created by imagecreatetruecolor().

Примеры

Пример 1. Resizing an image

This example will display the image at half size.

<?php
// File and new size
$filename = 'test.jpg';
$percent = 0.5;

// Content type
header('Content-type: image/jpeg');

// Get new sizes
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;

// Load
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);

// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

// Output
imagejpeg($thumb);
?>

The image will be output at half size, though better quality could be obtained using imagecopyresampled().

Смотрите также

imagecopyresampled()

Пред. | Начало | След.
imagecopyresampled | Уровень выше | imagecreate


imagecreate

(PHP 3, PHP 4, PHP 5)

imagecreate -- Create a new palette based image

Description

resource imagecreate ( int x_size, int y_size )

imagecreate() returns an image identifier representing a blank image of size x_size by y_size.

We recommend the use of imagecreatetruecolor().

Пример 1. Creating a new GD image stream and outputting an image.

<?php
header("Content-type: image/png");
$im = @imagecreate(100, 50)
    or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 255, 255, 255);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>

See also imagedestroy() and imagecreatetruecolor().

Пред. | Начало | След.
imagecopyresized | Уровень выше | imagecreatefromgd2


imagecreatefromgd2

(PHP 4 >= 4.1.0, PHP 5)

imagecreatefromgd2 -- Create a new image from GD2 file or URL

Description

resource imagecreatefromgd2 ( string filename )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Замечание: Эта функция нуждается в GD версии 2.0.1 или выше.

Подсказка: Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция "fopen wrappers". Смотрите более подробную информацию об определении имени файла в описании функции fopen(), а также список поддерживаемых протоколов URL в Прил. M.

Внимание

Версии PHP для Windows до PHP 4.3.0 не поддерживают возможность использования удаленных файлов этой функцией даже в том случае, если опция allow_url_fopen включена.

Пред. | Начало | След.
imagecreate | Уровень выше | imagecreatefromgd2part


imagecreatefromgd2part

(PHP 4 >= 4.1.0, PHP 5)

imagecreatefromgd2part -- Create a new image from a given part of GD2 file or URL

Description

resource imagecreatefromgd2part ( string filename, int srcX, int srcY, int width, int height )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Замечание: Эта функция нуждается в GD версии 2.0.1 или выше.

Подсказка: Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция "fopen wrappers". Смотрите более подробную информацию об определении имени файла в описании функции fopen(), а также список поддерживаемых протоколов URL в Прил. M.

Внимание

Версии PHP для Windows до PHP 4.3.0 не поддерживают возможность использования удаленных файлов этой функцией даже в том случае, если опция allow_url_fopen включена.

Пред. | Начало | След.
imagecreatefromgd2 | Уровень выше | imagecreatefromgd


imagecreatefromgd

(PHP 4 >= 4.1.0, PHP 5)

imagecreatefromgd -- Create a new image from GD file or URL

Description

resource imagecreatefromgd ( string filename )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Подсказка: Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция "fopen wrappers". Смотрите более подробную информацию об определении имени файла в описании функции fopen(), а также список поддерживаемых протоколов URL в Прил. M.

Внимание

Версии PHP для Windows до PHP 4.3.0 не поддерживают возможность использования удаленных файлов этой функцией даже в том случае, если опция allow_url_fopen включена.

Пред. | Начало | След.
imagecreatefromgd2part | Уровень выше | imagecreatefromgif


imagecreatefromgif

(PHP 3, PHP 4, PHP 5)

imagecreatefromgif -- Create a new image from file or URL

Description

resource imagecreatefromgif ( string filename )

imagecreatefromgif() returns an image identifier representing the image obtained from the given filename.

imagecreatefromgif() returns an empty string on failure. It also outputs an error message, which unfortunately displays as a broken link in a browser. To ease debugging the following example will produce an error GIF:

Пример 1. Example to handle an error during creation

<?php
function LoadGif ($imgname)
{
    $im = @imagecreatefromgif ($imgname); /* Attempt to open */
    if (!$im) { /* See if it failed */
        $im = imagecreatetruecolor (150, 30); /* Create a blank image */
        $bgc = imagecolorallocate ($im, 255, 255, 255);
        $tc = imagecolorallocate ($im, 0, 0, 0);
        imagefilledrectangle ($im, 0, 0, 150, 30, $bgc);
        /* Output an errmsg */
        imagestring ($im, 1, 5, 5, "Error loading $imgname", $tc);
    }
    return $im;
}
?>

Замечание: GIF support was removed from the GD library in Version 1.6, and added back in Version 2.0.28. This function is not available between these versions.

Подсказка: Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция "fopen wrappers". Смотрите более подробную информацию об определении имени файла в описании функции fopen(), а также список поддерживаемых протоколов URL в Прил. M.

Внимание

Версии PHP для Windows до PHP 4.3.0 не поддерживают возможность использования удаленных файлов этой функцией даже в том случае, если опция allow_url_fopen включена.

Пред. | Начало | След.
imagecreatefromgd | Уровень выше | imagecreatefromjpeg


imagecreatefromjpeg

(PHP 3 >= 3.0.16, PHP 4, PHP 5)

imagecreatefromjpeg -- Create a new image from file or URL

Description

resource imagecreatefromjpeg ( string filename )

imagecreatefromjpeg() returns an image identifier representing the image obtained from the given filename.

imagecreatefromjpeg() returns an empty string on failure. It also outputs an error message, which unfortunately displays as a broken link in a browser. To ease debugging the following example will produce an error JPEG:

Пример 1. Example to handle an error during creation

<?php
function LoadJpeg($imgname)
{
    $im = @imagecreatefromjpeg($imgname); /* Attempt to open */
    if (!$im) { /* See if it failed */
        $im  = imagecreatetruecolor(150, 30); /* Create a black image */
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);
        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
        /* Output an errmsg */
        imagestring($im, 1, 5, 5, "Error loading $imgname", $tc);
    }
    return $im;
}
?>

Замечание: JPEG support is only available if PHP was compiled against GD-1.8 or later.

Подсказка: Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция "fopen wrappers". Смотрите более подробную информацию об определении имени файла в описании функции fopen(), а также список поддерживаемых протоколов URL в Прил. M.

Внимание

Версии PHP для Windows до PHP 4.3.0 не поддерживают возможность использования удаленных файлов этой функцией даже в том случае, если опция allow_url_fopen включена.

Пред. | Начало | След.
imagecreatefromgif | Уровень выше | imagecreatefrompng


imagecreatefrompng

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

imagecreatefrompng -- Create a new image from file or URL

Description

resource imagecreatefrompng ( string filename )

imagecreatefrompng() returns an image identifier representing the image obtained from the given filename.

imagecreatefrompng() returns an empty string on failure. It also outputs an error message, which unfortunately displays as a broken link in a browser. To ease debugging the following example will produce an error PNG:

Пример 1. Example to handle an error during creation

<?php
function LoadPNG($imgname)
{
    $im = @imagecreatefrompng($imgname); /* Attempt to open */
    if (!$im) { /* See if it failed */
        $im  = imagecreatetruecolor(150, 30); /* Create a blank image */
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);
        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
        /* Output an errmsg */
        imagestring($im, 1, 5, 5, "Error loading $imgname", $tc);
    }
    return $im;
}
?>

Подсказка: Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция "fopen wrappers". Смотрите более подробную информацию об определении имени файла в описании функции fopen(), а также список поддерживаемых протоколов URL в Прил. M.

Внимание

Версии PHP для Windows до PHP 4.3.0 не поддерживают возможность использования удаленных файлов этой функцией даже в том случае, если опция allow_url_fopen включена.

Пред. | Начало | След.
imagecreatefromjpeg | Уровень выше | imagecreatefromstring


imagecreatefromstring

(PHP 4 >= 4.0.4, PHP 5)

imagecreatefromstring -- Create a new image from the image stream in the string

Описание

resource imagecreatefromstring ( string image )

imagecreatefromstring() returns an image identifier representing the image obtained from the given string. These types will be automatically detected if your build of PHP supports them: JPEG, PNG, GIF, WBMP, and GD2.

Возвращаемые значения

An image resource will be returned on success. FALSE is returned if the image type is unsupported, the data is not in a recognised format, or the image is corrupt and cannot be loaded.

Примеры

Пример 1. imagecreatefromstring() example

<?php
$data = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
       . 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
       . 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
       . '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';
$data = base64_decode($data);

$im = imagecreatefromstring($data);
if ($im !== false) {
    header('Content-Type: image/png');
    imagepng($im);
}
else {
    echo 'An error occured.';
}
?>

Смотрите также

imagecreatefromjpeg()
imagecreatefrompng()
imagecreatefromgif()
imagecreatetruecolor()

Пред. | Начало | След.
imagecreatefrompng | Уровень выше | imagecreatefromwbmp


imagecreatefromwbmp

(PHP 4 >= 4.0.1, PHP 5)

imagecreatefromwbmp -- Create a new image from file or URL

Description

resource imagecreatefromwbmp ( string filename )

imagecreatefromwbmp() returns an image identifier representing the image obtained from the given filename.

imagecreatefromwbmp() returns an empty string on failure. It also outputs an error message, which unfortunately displays as a broken link in a browser. To ease debugging the following example will produce an error WBMP:

Пример 1. Example to handle an error during creation

<?php
function LoadWBMP($imgname)
{
    $im = @imagecreatefromwbmp($imgname); /* Attempt to open */
    if (!$im) { /* See if it failed */
        $im  = imagecreatetruecolor (20, 20); /* Create a blank image */
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);
        imagefilledrectangle($im, 0, 0, 10, 10, $bgc);
        /* Output an errmsg */
        imagestring($im, 1, 5, 5, "Error loading $imgname", $tc);
    }
    return $im;
}
?>

Замечание: WBMP support is only available if PHP was compiled against GD-1.8 or later.

Подсказка: Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция "fopen wrappers". Смотрите более подробную информацию об определении имени файла в описании функции fopen(), а также список поддерживаемых протоколов URL в Прил. M.

Внимание

Версии PHP для Windows до PHP 4.3.0 не поддерживают возможность использования удаленных файлов этой функцией даже в том случае, если опция allow_url_fopen включена.

Пред. | Начало | След.
imagecreatefromstring | Уровень выше | imagecreatefromxbm


imagecreatefromxbm

(PHP 4 >= 4.0.1, PHP 5)

imagecreatefromxbm -- Create a new image from file or URL

Description

resource imagecreatefromxbm ( string filename )

imagecreatefromxbm() returns an image identifier representing the image obtained from the given filename.

Подсказка: Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция "fopen wrappers". Смотрите более подробную информацию об определении имени файла в описании функции fopen(), а также список поддерживаемых протоколов URL в Прил. M.

Внимание

Версии PHP для Windows до PHP 4.3.0 не поддерживают возможность использования удаленных файлов этой функцией даже в том случае, если опция allow_url_fopen включена.

Пред. | Начало | След.
imagecreatefromwbmp | Уровень выше | imagecreatefromxpm


imagecreatefromxpm

(PHP 4 >= 4.0.1, PHP 5)

imagecreatefromxpm -- Create a new image from file or URL

Description

resource imagecreatefromxpm ( string filename )

imagecreatefromxpm() returns an image identifier representing the image obtained from the given filename.

Замечание: Эта функция доступна только в том случае, если PHP был скомпилирован со встроенной библиотекой GD.

Подсказка: Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция "fopen wrappers". Смотрите более подробную информацию об определении имени файла в описании функции fopen(), а также список поддерживаемых протоколов URL в Прил. M.

Внимание

Версии PHP для Windows до PHP 4.3.0 не поддерживают возможность использования удаленных файлов этой функцией даже в том случае, если опция allow_url_fopen включена.

Пред. | Начало | След.
imagecreatefromxbm | Уровень выше | imagecreatetruecolor


imagecreatetruecolor

(PHP 4 >= 4.0.6, PHP 5)

imagecreatetruecolor -- Create a new true color image

Description

resource imagecreatetruecolor ( int x_size, int y_size )

imagecreatetruecolor() returns an image identifier representing a black image of size x_size by y_size.

Depending on your PHP and GD versions this function is defined or not. With PHP 4.0.6 through 4.1.x this function always exists if the GD module is loaded, but calling it without GD2 being installed PHP will issue a fatal error and exit. With PHP 4.2.x this behaviour is differnet in issueing a warning instead of an error. Other versions only define this function, if the correct GD version is installed.

Пример 1. Creating a new GD image stream and outputting an image.

<?php
header ("Content-type: image/png");
$im = @imagecreatetruecolor(50, 100)
      or die("Cannot Initialize new GD image stream");
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>

Замечание: Эта функция нуждается в GD версии 2.0.1 или выше.

Замечание: This function will not work with GIF file formats.

See also imagedestroy() and imagecreate().

Пред. | Начало | След.
imagecreatefromxpm | Уровень выше | imagedashedline


imagedashedline

(PHP 3, PHP 4, PHP 5)

imagedashedline -- Draw a dashed line

Description

bool imagedashedline ( resource image, int x1, int y1, int x2, int y2, int color )

This function is deprecated. Use combination of imagesetstyle() and imageline() instead.

Пред. | Начало | След.
imagecreatetruecolor | Уровень выше | imagedestroy


imagedestroy

(PHP 3, PHP 4, PHP 5)

imagedestroy -- Destroy an image

Description

bool imagedestroy ( resource image )

imagedestroy() frees any memory associated with image image. image is the image identifier returned by one of the image create functions, such as imagecreatetruecolor().

Пред. | Начало | След.
imagedashedline | Уровень выше | imageellipse


imageellipse

(PHP 4 >= 4.0.6, PHP 5)

imageellipse -- Draw an ellipse

Description

bool imageellipse ( resource image, int cx, int cy, int w, int h, int color )

imageellipse() draws an ellipse centered at cx, cy (top left is 0, 0) in the image represented by image. W and h specifies the ellipse's width and height respectively. The color of the ellipse is specified by color.

Замечание: This function was added in PHP 4.0.6 and requires GD 2.0.2 or later which can be obtained at http://www.boutell.com/gd/

Пример 1. imageellipse() example

<?php

// create a blank image
$image = imagecreatetruecolor(400, 300);

// fill the background color
$bg = imagecolorallocate($image, 0, 0, 0);

// choose a color for the ellipse
$col_ellipse = imagecolorallocate($image, 255, 255, 255);

// draw the ellipse
imageellipse($image, 200, 150, 300, 200, $col_ellipse);

// output the picture
header("Content-type: image/png");
imagepng($image);

?>

See also imagefilledellipse() and imagearc().

Пред. | Начало | След.
imagedestroy | Уровень выше | imagefill


imagefill

(PHP 3, PHP 4, PHP 5)

imagefill -- Flood fill

Description

bool imagefill ( resource image, int x, int y, int color )

imagefill() performs a flood fill starting at coordinate x, y (top left is 0, 0) with color color in the image image.

Пред. | Начало | След.
imageellipse | Уровень выше | imagefilledarc


imagefilledarc

(PHP 4 >= 4.0.6, PHP 5)

imagefilledarc -- Draw a partial ellipse and fill it

Description

bool imagefilledarc ( resource image, int cx, int cy, int w, int h, int s, int e, int color, int style )

imagefilledarc() draws a partial ellipse centered at cx, cy (top left is 0, 0) in the image represented by image. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. W and h specifies the ellipse's width and height respectively while the start and end points are specified in degrees indicated by the s and e arguments. style is a bitwise OR of the following possibilities:

  1. IMG_ARC_PIE

  2. IMG_ARC_CHORD

  3. IMG_ARC_NOFILL

  4. IMG_ARC_EDGED

IMG_ARC_PIE and IMG_ARC_CHORD are mutually exclusive; IMG_ARC_CHORD just connects the starting and ending angles with a straight line, while IMG_ARC_PIE produces a rounded edge. IMG_ARC_NOFILL indicates that the arc or chord should be outlined, not filled. IMG_ARC_EDGED, used together with IMG_ARC_NOFILL, indicates that the beginning and ending angles should be connected to the center - this is a good way to outline (rather than fill) a 'pie slice'.

Пример 1. Creating a 3D looking pie

<?php

// create image
$image = imagecreatetruecolor(100, 100);

// allocate some solors
$white    = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
$gray     = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);
$darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90);
$navy     = imagecolorallocate($image, 0x00, 0x00, 0x80);
$darknavy = imagecolorallocate($image, 0x00, 0x00, 0x50);
$red      = imagecolorallocate($image, 0xFF, 0x00, 0x00);
$darkred  = imagecolorallocate($image, 0x90, 0x00, 0x00);

// make the 3D effect
for ($i = 60; $i > 50; $i--) {
   imagefilledarc($image, 50, $i, 100, 50, 0, 45, $darknavy, IMG_ARC_PIE);
  imagefilledarc($image, 50, $i, 100, 50, 45, 75 , $darkgray, IMG_ARC_PIE);
  imagefilledarc($image, 50, $i, 100, 50, 75, 360 , $darkred, IMG_ARC_PIE);
}

imagefilledarc($image, 50, 50, 100, 50, 0, 45, $navy, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 45, 75 , $gray, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 75, 360 , $red, IMG_ARC_PIE);

// flush image
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

Замечание: Эта функция нуждается в GD версии 2.0.1 или выше.

Пред. | Начало | След.
imagefill | Уровень выше | imagefilledellipse


imagefilledellipse

(PHP 4 >= 4.0.6, PHP 5)

imagefilledellipse -- Draw a filled ellipse

Description

bool imagefilledellipse ( resource image, int cx, int cy, int w, int h, int color )

imagefilledellipse() draws an ellipse centered at cx, cy (top left is 0, 0) in the image represented by image. W and h specifies the ellipse's width and height respectively. The ellipse is filled using color. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. imagefilledellipse() example

<?php

// create a blank image
$image = imagecreatetruecolor(400, 300);

// fill the background color
$bg = imagecolorallocate($image, 0, 0, 0);

// choose a color for the ellipse
$col_ellipse = imagecolorallocate($image, 255, 255, 255);

// draw the white ellipse
imagefilledellipse($image, 200, 150, 300, 200, $col_ellipse);

// output the picture
header("Content-type: image/png");
imagepng($image);

?>

Замечание: Эта функция нуждается в GD версии 2.0.1 или выше.

See also imageellipse() and imagefilledarc().

Пред. | Начало | След.
imagefilledarc | Уровень выше | imagefilledpolygon


imagefilledpolygon

(PHP 3, PHP 4, PHP 5)

imagefilledpolygon -- Draw a filled polygon

Description

bool imagefilledpolygon ( resource image, array points, int num_points, int color )

imagefilledpolygon() creates a filled polygon in image image.

points is an array containing the x and y co-ordinates of the polygons vertices consecutively.

The parameter num_points is the total number of vertices, which must be larger than 3.

Пример 1. imagefilledpolygon() example

<?php
// set up array of points for polygon
$values = array(
            40,  50,  // Point 1 (x, y)
            20,  240, // Point 2 (x, y)
            60,  60,  // Point 3 (x, y)
            240, 20,  // Point 4 (x, y)
            50,  40,  // Point 5 (x, y)
            10,  10   // Point 6 (x, y)
            );

// create image
$image = imagecreatetruecolor(250, 250);

// some colors
$bg   = imagecolorallocate($image, 200, 200, 200);
$blue = imagecolorallocate($image, 0, 0, 255);

// draw a polygon
imagefilledpolygon($image, $values, 6, $blue);

// flush image
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

Пред. | Начало | След.
imagefilledellipse | Уровень выше | imagefilledrectangle


imagefilledrectangle

(PHP 3, PHP 4, PHP 5)

imagefilledrectangle -- Draw a filled rectangle

Description

bool imagefilledrectangle ( resource image, int x1, int y1, int x2, int y2, int color )

imagefilledrectangle() creates a filled rectangle of color color in image image starting at upper left coordinates x1, y1 and ending at bottom right coordinates x2, y2. 0, 0 is the top left corner of the image.

Пред. | Начало | След.
imagefilledpolygon | Уровень выше | imagefilltoborder


imagefilltoborder

(PHP 3, PHP 4, PHP 5)

imagefilltoborder -- Flood fill to specific color

Description

bool imagefilltoborder ( resource image, int x, int y, int border, int color )

imagefilltoborder() performs a flood fill whose border color is defined by border. The starting point for the fill is x, y (top left is 0, 0) and the region is filled with color color.

Пред. | Начало | След.
imagefilledrectangle | Уровень выше | imagefilter


imagefilter

(PHP 5)

imagefilter -- Applies a filter to an image

Description

bool imagefilter ( resource src_im, int filtertype [, int arg1 [, int arg2 [, int arg3]]] )

imagefilter() applies the filter filtertype to the image, using arg1, arg2 and arg3 where necessary.

filtertype can be one of the following:

  • IMG_FILTER_NEGATE: Reverses all colors of the image.

  • IMG_FILTER_GRAYSCALE: Converts the image into grayscale.

  • IMG_FILTER_BRIGHTNESS: Changes the brightness of the image. Use arg1 to set the level of brightness.

  • IMG_FILTER_CONTRAST: Changes the contrast of the image. Use arg1 to set the level of contrast.

  • IMG_FILTER_COLORIZE: Like IMG_FILTER_GRAYSCALE, except you can specify the color. Use arg1, arg2 and arg3 in the form of red, blue, green. The range for each color is 0 to 255.

  • IMG_FILTER_EDGEDETECT: Uses edge detection to highlight the edges in the image.

  • IMG_FILTER_EMBOSS: Embosses the image.

  • IMG_FILTER_GAUSSIAN_BLUR: Blurs the image using the Gaussian method.

  • IMG_FILTER_SELECTIVE_BLUR: Blurs the image.

  • IMG_FILTER_MEAN_REMOVAL: Uses mean removal to achieve a "sketchy" effect.

  • IMG_FILTER_SMOOTH: Makes the image smoother. Use arg1 to set the level of smoothness.

Замечание: Эта функция доступна только в том случае, если PHP был скомпилирован со встроенной библиотекой GD.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. imagefilter() grayscale example

<?php
$im = imagecreatefrompng('dave.png');
if ($im && imagefilter($im, IMG_FILTER_GRAYSCALE)) {
    echo 'Image converted to grayscale.';
    imagepng($im, 'dave.png');
} else {
    echo 'Conversion to grayscale failed.';
}

imagedestroy($im);
?>

Пример 2. imagefilter() brightness example

<?php
$im = imagecreatefrompng('sean.png');
if ($im && imagefilter($im, IMG_FILTER_BRIGHTNESS, 20)) {
    echo 'Image brightness changed.';
    imagepng($im, 'sean.png');
} else {
    echo 'Image brightness change failed.';
}

imagedestroy($im);
?>

Пример 3. imagefilter() colorize example

<?php
$im = imagecreatefrompng('philip.png');

/* R, G, B, so 0, 255, 0 is green */
if ($im && imagefilter($im, IMG_FILTER_COLORIZE, 0, 255, 0)) {
    echo 'Image successfully shaded green.';
    imagepng($im, 'philip.png');
} else {
    echo 'Green shading failed.';
}

imagedestroy($im);
?>

Пред. | Начало | След.
imagefilltoborder | Уровень выше | imagefontheight


imagefontheight

(PHP 3, PHP 4, PHP 5)

imagefontheight -- Get font height

Description

int imagefontheight ( int font )

Returns the pixel height of a character in the specified font.

See also imagefontwidth() and imageloadfont().

Пред. | Начало | След.
imagefilter | Уровень выше | imagefontwidth


imagefontwidth

(PHP 3, PHP 4, PHP 5)

imagefontwidth -- Get font width

Description

int imagefontwidth ( int font )

Returns the pixel width of a character in font.

See also imagefontheight() and imageloadfont().

Пред. | Начало | След.
imagefontheight | Уровень выше | imageftbbox


imageftbbox

(PHP 4 >= 4.1.0, PHP 5)

imageftbbox -- Give the bounding box of a text using fonts via freetype2

Description

array imageftbbox ( float size, float angle, string font_file, string text [, array extrainfo] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Замечание: Эта функция нуждается в GD версии 2.0.1 или выше.

Замечание: Parameter extrainfo is optional since PHP 4.3.5.

Пред. | Начало | След.
imagefontwidth | Уровень выше | imagefttext


imagefttext

(PHP 4 >= 4.1.0, PHP 5)

imagefttext -- Write text to the image using fonts using FreeType 2

Description

array imagefttext ( resource image, float size, float angle, int x, int y, int col, string font_file, string text [, array extrainfo] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Замечание: Эта функция нуждается в GD версии 2.0.1 или выше.

Замечание: Parameter extrainfo is optional since PHP 4.3.5.

Пред. | Начало | След.
imageftbbox | Уровень выше | imagegammacorrect


imagegammacorrect

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

imagegammacorrect -- Apply a gamma correction to a GD image

Description

bool imagegammacorrect ( resource image, float inputgamma, float outputgamma )

The imagegammacorrect() function applies gamma correction to a gd image stream (image) given an input gamma, the parameter inputgamma and an output gamma, the parameter outputgamma.

Пред. | Начало | След.
imagefttext | Уровень выше | imagegd2


imagegd2

(PHP 4 >= 4.1.0, PHP 5)

imagegd2 -- Output GD2 image to browser or file

Description

bool imagegd2 ( resource image [, string filename [, int chunk_size [, int type]]] )

imagegd2() outputs a GD2 image to filename. The image parameter is the return from the imagecreatetruecolor() function.

The filename parameter is optional, and if left off, the raw image stream will be output directly.

The optional type parameter is either IMG_GD2_RAW or IMG_GD2_COMPRESSED. Default is IMG_GD2_RAW.

Замечание: The optional chunk_size and type parameters became available in PHP 4.3.2.

Замечание: The GD2 format is commonly used to allow fast loading of parts of images. Note that the GD2 format is only usable in GD2-compatible applications.

Замечание: Эта функция нуждается в GD версии 2.0.1 или выше.

See also imagegd()

Пред. | Начало | След.
imagegammacorrect | Уровень выше | imagegd


imagegd

(PHP 4 >= 4.1.0, PHP 5)

imagegd -- Output GD image to browser or file

Description

bool imagegd ( resource image [, string filename] )

imagegd() outputs a GD image to filename. The image argument is the return from the imagecreatetruecolor() function.

The filename parameter is optional, and if left off, the raw image stream will be output directly.

Замечание: The GD format is commonly used to allow fast loading of parts of images. Note that the GD format is only usable in GD-compatible applications.

See also imagegd2().

Пред. | Начало | След.
imagegd2 | Уровень выше | imagegif


imagegif

(PHP 3, PHP 4, PHP 5)

imagegif -- Output image to browser or file

Description

bool imagegif ( resource image [, string filename] )

imagegif() creates the GIF file in filename from the image image. The image argument is the return from the imagecreatetruecolor() function.

The image format will be GIF87a unless the image has been made transparent with imagecolortransparent(), in which case the image format will be GIF89a.

The filename argument is optional, and if left off, the raw image stream will be output directly. By sending an image/gif content-type using header(), you can create a PHP script that outputs GIF images directly.

Замечание: Since all GIF support was removed from the GD library in version 1.6, this function is not available if you are using that version of the GD library. Support is expected to return in a version subsequent to the rerelease of GIF support in the GD library in mid 2004. For more information, see the GD Project site.

The following code snippet allows you to write more portable PHP applications by auto-detecting the type of GD support which is available. Replace the sequence header ("Content-type: image/gif"); imagegif ($im); by the more flexible sequence:

<?php
if (function_exists("imagegif")) {
    header("Content-type: image/gif");
    imagegif($im);
} elseif (function_exists("imagejpeg")) {
    header("Content-type: image/jpeg");
    imagejpeg($im, "", 0.5);
} elseif (function_exists("imagepng")) {
    header("Content-type: image/png");
    imagepng($im);
} elseif (function_exists("imagewbmp")) {
    header("Content-type: image/vnd.wap.wbmp");
    imagewbmp($im);
} else {
    die("No image support in this PHP server");
}
?>

Замечание: As of version 3.0.18 and 4.0.2 you can use the function imagetypes() in place of function_exists() for checking the presence of the various supported image formats:

<?php
if (imagetypes() & IMG_GIF) {
    header ("Content-type: image/gif");
    imagegif ($im);
} elseif (imagetypes() & IMG_JPG) {
    /* ... etc. */
}
?>

See also imagepng(), imagewbmp(), imagejpeg() and imagetypes().

Пред. | Начало | След.
imagegd | Уровень выше | imageinterlace


imageinterlace

(PHP 3, PHP 4, PHP 5)

imageinterlace -- Enable or disable interlace

Description

int imageinterlace ( resource image [, int interlace] )

imageinterlace() turns the interlace bit on or off. If interlace is 1 the image will be interlaced, and if interlace is 0 the interlace bit is turned off.

If the interlace bit is set and the image is used as a JPEG image, the image is created as a progressive JPEG.

This function returns whether the interlace bit is set for the image.

Пред. | Начало | След.
imagegif | Уровень выше | imageistruecolor


imageistruecolor

(PHP 4 >= 4.3.2, PHP 5)

imageistruecolor -- Finds whether an image is a truecolor image

Description

bool imageistruecolor ( resource image )

imageistruecolor() finds whether the image image is a truecolor image.

Замечание: Эта функция нуждается в GD версии 2.0.1 или выше.

See also imagecreatetruecolor().

Пред. | Начало | След.
imageinterlace | Уровень выше | imagejpeg


imagejpeg

(PHP 3 >= 3.0.16, PHP 4, PHP 5)

imagejpeg -- Output image to browser or file

Description

bool imagejpeg ( resource image [, string filename [, int quality]] )

imagejpeg() creates the JPEG file in filename from the image image. The image argument is the return from the imagecreatetruecolor() function.

The filename argument is optional, and if left off, the raw image stream will be output directly. To skip the filename argument in order to provide a quality argument just use an empty string (''). By sending an image/jpeg content-type using header(), you can create a PHP script that outputs JPEG images directly.

Замечание: JPEG support is only available if PHP was compiled against GD-1.8 or later.

quality is optional, and ranges from 0 (worst quality, smaller file) to 100 (best quality, biggest file). The default is the default IJG quality value (about 75).

If you want to output Progressive JPEGs, you need to set interlacing on with imageinterlace().

See also
imagepng(),
imagegif(),
imagewbmp(),
imageinterlace() and
imagetypes().

Пред. | Начало | След.
imageistruecolor | Уровень выше | imagelayereffect


imagelayereffect

(PHP 4 >= 4.3.0, PHP 5)

imagelayereffect -- Set the alpha blending flag to use the bundled libgd layering effects

Description

bool imagelayereffect ( resource image, int effect )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Замечание: Эта функция доступна только в том случае, если PHP был скомпилирован со встроенной библиотекой GD.

Замечание: Эта функция нуждается в GD версии 2.0.1 или выше.

Пред. | Начало | След.
imagejpeg | Уровень выше | imageline


imageline

(PHP 3, PHP 4, PHP 5)

imageline -- Draw a line

Description

bool imageline ( resource image, int x1, int y1, int x2, int y2, int color )

imageline() draws a line from x1, y1 to x2, y2 (top left is 0, 0) in image image of color color.

Пример 1. Drawing a thick line

<?php

function imagelinethick($image, $x1, $y1, $x2, $y2, $color, $thick = 1)
{
    /* this way it works well only for orthogonal lines
    imagesetthickness($image, $thick);
    return imageline($image, $x1, $y1, $x2, $y2, $color);
    */
    if ($thick == 1) {
        return imageline($image, $x1, $y1, $x2, $y2, $color);
    }
    $t = $thick / 2 - 0.5;
    if ($x1 == $x2 || $y1 == $y2) {
        return imagefilledrectangle($image, round(min($x1, $x2) - $t), round(min($y1, $y2) - $t), round(max($x1, $x2) + $t), round(max($y1, $y2) + $t), $color);
    }
    $k = ($y2 - $y1) / ($x2 - $x1); //y = kx + q
    $a = $t / sqrt(1 + pow($k, 2));
    $points = array(
        round($x1 - (1+$k)*$a), round($y1 + (1-$k)*$a),
        round($x1 - (1-$k)*$a), round($y1 - (1+$k)*$a),
        round($x2 + (1+$k)*$a), round($y2 - (1-$k)*$a),
        round($x2 + (1-$k)*$a), round($y2 + (1+$k)*$a),
    );
    imagefilledpolygon($image, $points, 4, $color);
    return imagepolygon($image, $points, 4, $color);
}

?>

See also imagecreatetruecolor() and imagecolorallocate().

Пред. | Начало | След.
imagelayereffect | Уровень выше | imageloadfont


imageloadfont

(PHP 3, PHP 4, PHP 5)

imageloadfont -- Load a new font

Description

int imageloadfont ( string file )

imageloadfont() loads a user-defined bitmap font and returns an identifier for the font (that is always greater than 5, so it will not conflict with the built-in fonts). It returns FALSE in case of error.

The font file format is currently binary and architecture dependent. This means you should generate the font files on the same type of CPU as the machine you are running PHP on.

Таблица 1. Font file format

byte position | C data type | description
byte 0-3 | int | number of characters in the font
byte 4-7 | int | value of first character in the font (often 32 for space)
byte 8-11 | int | pixel width of each character
byte 12-15 | int | pixel height of each character
byte 16- | char | array with character data, one byte per pixel in each character, for a total of (nchars*width*height) bytes.

Пример 1. Using imageloadfont

<?php
$im = imagecreatetruecolor(50, 20);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);
imagefilledrectangle($im, 0, 0, 49, 19, $white);
$font = imageloadfont("04b.gdf");
imagestring($im, $font, 0, 0, "Hello", $black);
imagepng($im);
?>

See also imagefontwidth() and imagefontheight().

Пред. | Начало | След.
imageline | Уровень выше | imagepalettecopy


imagepalettecopy

(PHP 4 >= 4.0.1, PHP 5)

imagepalettecopy -- Copy the palette from one image to another

Description

void imagepalettecopy ( resource destination, resource source )

imagepalettecopy() copies the palette from the source image to the destination image.

Пред. | Начало | След.
imageloadfont | Уровень выше | imagepng


imagepng

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

imagepng -- Output a PNG image to either the browser or a file

Description

bool imagepng ( resource image [, string filename] )

The imagepng() outputs a GD image stream (image) in PNG format to standard output (usually the browser) or, if a filename is given by the filename it outputs the image to the file.

<?php
$im = imagecreatefrompng("test.png");
imagepng($im);
?>

See also imagegif(), imagewbmp(), imagejpeg(), imagetypes().

Пред. | Начало | След.
imagepalettecopy | Уровень выше | imagepolygon


imagepolygon

(PHP 3, PHP 4, PHP 5)

imagepolygon -- Draw a polygon

Description

bool imagepolygon ( resource image, array points, int num_points, int color )

imagepolygon() creates a polygon in image id. points is a PHP array containing the polygon's vertices, i.e. points[0] = x0, points[1] = y0, points[2] = x1, points[3] = y1, etc. num_points is the total number of points (vertices).

Пример 1. imagepolygon() example

<?php
// create a blank image
$image = imagecreatetruecolor(400, 300);

// fill the background color
$bg = imagecolorallocate($image, 0, 0, 0);

// choose a color for the polygon
$col_poly = imagecolorallocate($image, 255, 255, 255);

// draw the polygon
imagepolygon($image,
             array (
                    0, 0,
                    100, 200,
                    300, 200
             ),
             3,
             $col_poly);

// output the picture
header("Content-type: image/png");
imagepng($image);

?>

See also imagecreate() and imagecreatetruecolor().

Пред. | Начало | След.
imagepng | Уровень выше | imagepsbbox


imagepsbbox

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

imagepsbbox -- Give the bounding box of a text rectangle using PostScript Type1 fonts

Description

array imagepsbbox ( string text, int font, int size [, int space, int tightness, float angle] )

size is expressed in pixels.

space allows you to change the default value of a space in a font. This amount is added to the normal value and can also be negative.

tightness allows you to control the amount of white space between characters. This amount is added to the normal character width and can also be negative.

angle is in degrees.

Parameters space and tightness are expressed in character space units, where 1 unit is 1/1000th of an em-square.

Parameters space, tightness, and angle are optional.

The bounding box is calculated using information available from character metrics, and unfortunately tends to differ slightly from the results achieved by actually rasterizing the text. If the angle is 0 degrees, you can expect the text to need 1 pixel more to every direction.

Замечание: Эта функция доступна только в том случае, если PHP был скомпилирован с опцией --enable-t1lib.

This function returns an array containing the following elements:

0 | lower left x-coordinate
1 | lower left y-coordinate
2 | upper right x-coordinate
3 | upper right y-coordinate

See also imagepstext().

Пред. | Начало | След.
imagepolygon | Уровень выше | imagepscopyfont


imagepscopyfont

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

imagepscopyfont -- Make a copy of an already loaded font for further modification

Description

int imagepscopyfont ( resource fontindex )

Use this function if you need make further modifications to the font, for example extending/condensing, slanting it or changing its character encoding vector, but need to keep the original along as well. Note that the font you want to copy must be one obtained using imagepsloadfont(), not a font that is itself a copied one. You can although make modifications to it before copying.

If you use this function, you must free the fonts obtained this way yourself and in reverse order. Otherwise your script will hang.

In the case everything went right, a valid font index will be returned and can be used for further purposes. Otherwise the function returns FALSE and prints a message describing what went wrong.

Замечание: Эта функция доступна только в том случае, если PHP был скомпилирован с опцией --enable-t1lib.

See also imagepsloadfont().

Пред. | Начало | След.
imagepsbbox | Уровень выше | imagepsencodefont


imagepsencodefont

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

imagepsencodefont -- Change the character encoding vector of a font

Description

bool imagepsencodefont ( resource font_index, string encodingfile )

Loads a character encoding vector from a file and changes the fonts encoding vector to it. As a PostScript fonts default vector lacks most of the character positions above 127, you'll definitely want to change this if you use an other language than English. The exact format of this file is described in T1libs documentation. T1lib comes with two ready-to-use files, IsoLatin1.enc and IsoLatin2.enc.

If you find yourself using this function all the time, a much better way to define the encoding is to set ps.default_encoding in the configuration file to point to the right encoding file and all fonts you load will automatically have the right encoding.

Замечание: Эта функция доступна только в том случае, если PHP был скомпилирован с опцией --enable-t1lib.

Пред. | Начало | След.
imagepscopyfont | Уровень выше | imagepsextendfont


imagepsextendfont

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

imagepsextendfont -- Extend or condense a font

Description

bool imagepsextendfont ( int font_index, float extend )

Extend or condense a font (font_index), if the value of the extend parameter is less than one you will be condensing the font.

Замечание: Эта функция доступна только в том случае, если PHP был скомпилирован с опцией --enable-t1lib.

Пред. | Начало | След.
imagepsencodefont | Уровень выше | imagepsfreefont


imagepsfreefont

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

imagepsfreefont -- Free memory used by a PostScript Type 1 font

Description

bool imagepsfreefont ( resource fontindex )

imagepsfreefont() frees memory used by a PostScript Type 1 font.

Замечание: Эта функция доступна только в том случае, если PHP был скомпилирован с опцией --enable-t1lib.

See also imagepsloadfont().

Пред. | Начало | След.
imagepsextendfont | Уровень выше | imagepsloadfont


imagepsloadfont

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

imagepsloadfont -- Load a PostScript Type 1 font from file

Description

resource imagepsloadfont ( string filename )

In the case everything went right, a valid font index will be returned and can be used for further purposes. Otherwise the function returns FALSE and prints a message describing what went wrong, which you cannot read directly, while the output type is image.

Пример 1. imagepsloadfont() example

<?php
header("Content-type: image/jpeg");
$im = imagecreatetruecolor(350, 45);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);
$font = imagepsloadfont("bchbi.pfb"); // or locate your .pfb files on your machine
imagepstext($im, "Testing... It worked!", $font, 32, $white, $black, 32, 32);
imagepsfreefont($font);
imagejpeg($im, "", 100); //for best quality...your mileage may vary
imagedestroy($im);
?>

Замечание: Эта функция доступна только в том случае, если PHP был скомпилирован с опцией --enable-t1lib.

See also imagepsfreefont().

Пред. | Начало | След.
imagepsfreefont | Уровень выше | imagepsslantfont


imagepsslantfont

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

imagepsslantfont -- Slant a font

Description

bool imagepsslantfont ( resource font_index, float slant )

Slant a font given by the font_index parameter with a slant of the value of the slant parameter.

Замечание: Эта функция доступна только в том случае, если PHP был скомпилирован с опцией --enable-t1lib.

Пред. | Начало | След.
imagepsloadfont | Уровень выше | imagepstext


imagepstext

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

imagepstext -- To draw a text string over an image using PostScript Type1 fonts

Description

array imagepstext ( resource image, string text, resource font, int size, int foreground, int background, int x, int y [, int space, int tightness, float angle, int antialias_steps] )

foreground is the color in which the text will be painted. Background is the color to which the text will try to fade in with antialiasing. No pixels with the color background are actually painted, so the background image does not need to be of solid color.

The coordinates given by x, y will define the origin (or reference point) of the first character (roughly the lower-left corner of the character). This is different from the imagestring(), where x, y define the upper-right corner of the first character. Refer to PostScript documentation about fonts and their measuring system if you have trouble understanding how this works.

space allows you to change the default value of a space in a font. This amount is added to the normal value and can also be negative.

tightness allows you to control the amount of white space between characters. This amount is added to the normal character width and can also be negative.

angle is in degrees.

size is expressed in pixels.

antialias_steps allows you to control the number of colours used for antialiasing text. Allowed values are 4 and 16. The higher value is recommended for text sizes lower than 20, where the effect in text quality is quite visible. With bigger sizes, use 4. It's less computationally intensive.

Parameters space and tightness are expressed in character space units, where 1 unit is 1/1000th of an em-square.

Parameters space, tightness, angle and antialias_steps are optional.

Замечание: Эта функция доступна только в том случае, если PHP был скомпилирован с опцией --enable-t1lib.

This function returns an array containing the following elements:

0 | lower left x-coordinate
1 | lower left y-coordinate
2 | upper right x-coordinate
3 | upper right y-coordinate

See also imagepsbbox().

Пред. | Начало | След.
imagepsslantfont | Уровень выше | imagerectangle


imagerectangle

(PHP 3, PHP 4, PHP 5)

imagerectangle -- Draw a rectangle

Description

bool imagerectangle ( resource image, int x1, int y1, int x2, int y2, int col )

imagerectangle() creates a rectangle of color col in image image starting at upper left coordinate x1, y1 and ending at bottom right coordinate x2, y2. 0, 0 is the top left corner of the image.

Пред. | Начало | След.
imagepstext | Уровень выше | imagerotate


imagerotate

(PHP 4 >= 4.3.0, PHP 5)

imagerotate -- Rotate an image with a given angle

Description

resource imagerotate ( resource src_im, float angle, int bgd_color [, int ignore_transparent] )

Rotates the src_im image using a given angle in degrees. bgd_color specifies the color of the uncovered zone after the rotation.

The center of rotation is the center of the image, and the rotated image is scaled down so that the whole rotated image fits in the destination image - the edges are not clipped.

If ignore_transparent is set and non-zero, transparent colors are ignored (otherwise kept). This parameter was added in PHP 5.1.

Пример 1. Rotate an image 180 degrees

This example rotates an image 180 degrees - upside down.

// File and rotation
$filename = 'test.jpg';
$degrees = 180;

// Content type
header('Content-type: image/jpeg');

// Load
$source = imagecreatefromjpeg($filename);

// Rotate
$rotate = imagerotate($source, $degrees, 0);

// Output
imagejpeg($rotate);

Замечание: Эта функция доступна только в том случае, если PHP был скомпилирован со встроенной библиотекой GD.

Пред. | Начало | След.
imagerectangle | Уровень выше | imagesavealpha


imagesavealpha

(PHP 4 >= 4.3.2, PHP 5)

imagesavealpha -- Set the flag to save full alpha channel information (as opposed to single-color transparency) when saving PNG images

Description

bool imagesavealpha ( resource image, bool saveflag )

imagesavealpha() sets the flag to attempt to save full alpha channel information (as opposed to single-color transparency) when saving PNG images.

You have to unset alphablending (imagealphablending($im, FALSE)), to use it.

Alpha channel is not supported by all browsers, if you have problem with your browser, try to load your script with an alpha channel compliant browser, e.g. latest Mozilla.

Замечание: Эта функция нуждается в GD версии 2.0.1 или выше.

See also imagealphablending().

Пред. | Начало | След.
imagerotate | Уровень выше | imagesetbrush


imagesetbrush

(PHP 4 >= 4.0.6, PHP 5)

imagesetbrush -- Set the brush image for line drawing

Description

bool imagesetbrush ( resource image, resource brush )

imagesetbrush() sets the brush image to be used by all line drawing functions (such as imageline() and imagepolygon()) when drawing with the special colors IMG_COLOR_BRUSHED or IMG_COLOR_STYLEDBRUSHED.

Замечание: You need not take special action when you are finished with a brush, but if you destroy the brush image, you must not use the IMG_COLOR_BRUSHED or IMG_COLOR_STYLEDBRUSHED colors until you have set a new brush image!

Замечание: This function was added in PHP 4.0.6

Пред. | Начало | След.
imagesavealpha | Уровень выше | imagesetpixel


imagesetpixel

(PHP 3, PHP 4, PHP 5)

imagesetpixel -- Set a single pixel

Description

bool imagesetpixel ( resource image, int x, int y, int color )

imagesetpixel() draws a pixel at x, y (top left is 0, 0) in image image of color color.

See also imagecreatetruecolor() and imagecolorallocate().

Пред. | Начало | След.
imagesetbrush | Уровень выше | imagesetstyle


imagesetstyle

(PHP 4 >= 4.0.6, PHP 5)

imagesetstyle -- Set the style for line drawing

Description

bool imagesetstyle ( resource image, array style )

imagesetstyle() sets the style to be used by all line drawing functions (such as imageline() and imagepolygon()) when drawing with the special color IMG_COLOR_STYLED or lines of images with color IMG_COLOR_STYLEDBRUSHED. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

The style parameter is an array of pixels. Following example script draws a dashed line from upper left to lower right corner of the canvas:

Пример 1. imagesetstyle() example

<?php
header("Content-type: image/jpeg");
$im  = imagecreatetruecolor(100, 100);
$w   = imagecolorallocate($im, 255, 255, 255);
$red = imagecolorallocate($im, 255, 0, 0);

/* Draw a dashed line, 5 red pixels, 5 white pixels */
$style = array($red, $red, $red, $red, $red, $w, $w, $w, $w, $w);
imagesetstyle($im, $style);
imageline($im, 0, 0, 100, 100, IMG_COLOR_STYLED);

/* Draw a line of happy faces using imagesetbrush() with imagesetstyle */
$style = array($w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $red);
imagesetstyle($im, $style);

$brush = imagecreatefrompng("http://www.libpng.org/pub/png/images/smile.happy.png");
$w2 = imagecolorallocate($brush, 255, 255, 255);
imagecolortransparent($brush, $w2);
imagesetbrush($im, $brush);
imageline($im, 100, 0, 0, 100, IMG_COLOR_STYLEDBRUSHED);

imagejpeg($im);
imagedestroy($im);
?>

See also imagesetbrush(), imageline().

Замечание: This function was added in PHP 4.0.6

Пред. | Начало | След.
imagesetpixel | Уровень выше | imagesetthickness


imagesetthickness

(PHP 4 >= 4.0.6, PHP 5)

imagesetthickness -- Set the thickness for line drawing

Description

bool imagesetthickness ( resource image, int thickness )

imagesetthickness() sets the thickness of the lines drawn when drawing rectangles, polygons, ellipses etc. etc. to thickness pixels. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: Эта функция нуждается в GD версии 2.0.1 или выше.

Пред. | Начало | След.
imagesetstyle | Уровень выше | imagesettile


imagesettile

(PHP 4 >= 4.0.6, PHP 5)

imagesettile -- Set the tile image for filling

Description

bool imagesettile ( resource image, resource tile )

imagesettile() sets the tile image to be used by all region filling functions (such as imagefill() and imagefilledpolygon()) when filling with the special color IMG_COLOR_TILED.

A tile is an image used to fill an area with a repeated pattern. Any GD image can be used as a tile, and by setting the transparent color index of the tile image with imagecolortransparent(), a tile allows certain parts of the underlying area to shine through can be created.

Замечание: You need not take special action when you are finished with a tile, but if you destroy the tile image, you must not use the IMG_COLOR_TILED color until you have set a new tile image!

Пред. | Начало | След.
imagesetthickness | Уровень выше | imagestring


imagestring

(PHP 3, PHP 4, PHP 5)

imagestring -- Draw a string horizontally

Description

bool imagestring ( resource image, int font, int x, int y, string s, int col )

imagestring() draws the string s in the image identified by image with the upper-left corner at coordinates x, y (top left is 0, 0) in color col. If font is 1, 2, 3, 4 or 5, a built-in font is used.

Пример 1. imagestring() example

<?php
// create a 100*30 image
$im = imagecreatetruecolor(100, 30);

// white background and blue text
$bg = imagecolorallocate($im, 255, 255, 255);
$textcolor = imagecolorallocate($im, 0, 0, 255);

// write the string at the top left
imagestring($im, 5, 0, 0, "Hello world!", $textcolor);

// output the image
header("Content-type: image/jpeg");
imagejpeg($im);
?>

See also imageloadfont(), and imagettftext().

Пред. | Начало | След.
imagesettile | Уровень выше | imagestringup


imagestringup

(PHP 3, PHP 4, PHP 5)

imagestringup -- Draw a string vertically

Description

bool imagestringup ( resource image, int font, int x, int y, string s, int col )

imagestringup() draws the string s vertically in the image identified by image at coordinates x, y (top left is 0, 0) in color col. If font is 1, 2, 3, 4 or 5, a built-in font is used.

See also imageloadfont().

Пред. | Начало | След.
imagestring | Уровень выше | imagesx


imagesx

(PHP 3, PHP 4, PHP 5)

imagesx -- Get image width

Description

int imagesx ( resource image )

imagesx() returns the width of the image identified by image.

Пример 1. Using imagesx()

<?php

// create a 300*200 image
$img = imagecreatetruecolor(300, 200);

echo imagesx($img); // 300

?>

See also imagecreatetruecolor(),
getimagesize() and
imagesy().

Пред. | Начало | След.
imagestringup | Уровень выше | imagesy


imagesy

(PHP 3, PHP 4, PHP 5)

imagesy -- Get image height

Description

int imagesy ( resource image )

imagesy() returns the height of the image identified by image.

Пример 1. Using imagesy()

<?php

// create a 300*200 image
$img = imagecreatetruecolor(300, 200);

echo imagesy($img); // 200

?>

See also imagecreatetruecolor(),
getimagesize() and
imagesx().

Пред. | Начало | След.
imagesx | Уровень выше | imagetruecolortopalette


imagetruecolortopalette

(PHP 4 >= 4.0.6, PHP 5)

imagetruecolortopalette -- Convert a true color image to a palette image

Description

bool imagetruecolortopalette ( resource image, bool dither, int ncolors )

imagetruecolortopalette() converts a truecolor image to a palette image. The code for this function was originally drawn from the Independent JPEG Group library code, which is excellent. The code has been modified to preserve as much alpha channel information as possible in the resulting palette, in addition to preserving colors as well as possible. This does not work as well as might be hoped. It is usually best to simply produce a truecolor output image instead, which guarantees the highest output quality.

dither indicates if the image should be dithered - if it is TRUE then dithering will be used which will result in a more speckled image but with better color approximation.

ncolors sets the maximum number of colors that should be retained in the palette.

Замечание: Эта функция нуждается в GD версии 2.0.1 или выше.

Пред. | Начало | След.
imagesy | Уровень выше | imagettfbbox


imagettfbbox

(PHP 3 >= 3.0.1, PHP 4, PHP 5)

imagettfbbox -- Give the bounding box of a text using TrueType fonts

Description

array imagettfbbox ( float size, float angle, string fontfile, string text )

This function calculates and returns the bounding box in pixels for a TrueType text.

size

The font size in pixels.

angle

Angle in degrees in which text will be measured.

fontfile

The name of the TrueType font file (can be a URL). Depending on which version of the GD library that PHP is using, it may attempt to search for files that do not begin with a leading '/' by appending '.ttf' to the filename and searching along a library-defined font path.

text

The string to be measured.

imagettfbbox() returns an array with 8 elements representing four points making the bounding box of the text:

0 | lower left corner, X position
1 | lower left corner, Y position
2 | lower right corner, X position
3 | lower right corner, Y position
4 | upper right corner, X position
5 | upper right corner, Y position
6 | upper left corner, X position
7 | upper left corner, Y position

The points are relative to the text regardless of the angle, so "upper left" means in the top left-hand corner seeing the text horizontally.

This function requires both the GD library and the FreeType library.

See also imagettftext().

Пред. | Начало | След.
imagetruecolortopalette | Уровень выше | imagettftext


imagettftext

(PHP 3, PHP 4, PHP 5)

imagettftext -- Write text to the image using TrueType fonts

Description

array imagettftext ( resource image, float size, float angle, int x, int y, int color, string fontfile, string text )

image

The image resource. See imagecreatetruecolor().

size

The font size. Depending on your version of GD, this should be specified as the pixel size (GD1) or point size (GD2).

angle

The angle in degrees, with 0 degrees being left-to-right reading text. Higher values represent a counter-clockwise rotation. For example, a value of 90 would result in bottom-to-top reading text.

x

The coordinates given by x and y will define the basepoint of the first character (roughly the lower-left corner of the character). This is different from the imagestring(), where x and y define the upper-left corner of the first character. For example, "top left" is 0, 0.

y

The y-ordinate. This sets the position of the fonts baseline, not the very bottom of the character.

color

The color index. Using the negative of a color index has the effect of turning off antialiasing. See imagecolorallocate().

fontfile

The path to the TrueType font you wish to use.

Depending on which version of the GD library PHP is using, when fontfile does not begin with a leading / then .ttf will be appended to the filename and the library will attempt to search for that filename along a library-defined font path.

When using versions of the GD library lower than 2.0.18, a space character, rather than a semicolon, was used as the 'path separator' for different font files. Unintentional use of this feature will result in the warning message: Warning: Could not find/open font. For these affected versions, the only solution is moving the font to a path which does not contain spaces.

In many cases where a font resides in the same directory as the script using it the following trick will alleviate any include problems.
<?php
// Set the enviroment variable for GD
putenv('GDFONTPATH=' . realpath('.'));

// Name the font to be used (note the lack of the .ttf extension)
$font = 'SomeFont';
?>

text

The text string.

May include decimal numeric character references (of the form: &#8364;) to access characters in a font beyond position 127. Strings in UTF-8 encoding can be passed directly.

If a character is used in the string which is not supported by the font, a hollow rectangle will replace the character.

imagettftext() returns an array with 8 elements representing four points making the bounding box of the text. The order of the points is lower left, lower right, upper right, upper left. The points are relative to the text regardless of the angle, so "upper left" means in the top left-hand corner when you see the text horizontally.

Пример 1. imagettftext() example

This example script will produce a white PNG 400x30 pixels, with the words "Testing..." in black (with grey shadow), in the font Arial.

<?php
// Set the content-type
header("Content-type: image/png");

// Create the image
$im = imagecreatetruecolor(400, 30);

// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);

// The text to draw
$text = 'Testing...';
// Replace path by your own font path
$font = 'arial.ttf';

// Add some shadow to the text
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);

// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);

// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>

This function requires both the GD library and the FreeType library.

See also imagettfbbox().

Пред. | Начало | След.
imagettfbbox | Уровень выше | imagetypes


imagetypes

(PHP 3 CVS only, PHP 4 >= 4.0.2, PHP 5)

imagetypes -- Return the image types supported by this PHP build

Description

int imagetypes ( void )

This function returns a bit-field corresponding to the image formats supported by the version of GD linked into PHP. The following bits are returned, IMG_GIF | IMG_JPG | IMG_PNG | IMG_WBMP | IMG_XPM. To check for PNG support, for example, do this:

Пример 1. imagetypes() example

<?php
if (imagetypes() & IMG_PNG) {
    echo "PNG Support is enabled";
}
?>

Пред. | Начало | След.
imagettftext | Уровень выше | imagewbmp


imagewbmp

(PHP 3 >= 3.0.15, PHP 4 >= 4.0.1, PHP 5)

imagewbmp -- Output image to browser or file

Description

bool imagewbmp ( resource image [, string filename [, int foreground]] )

imagewbmp() creates the WBMP file in filename from the image image. The image argument is the return from the imagecreatetruecolor() function.

The filename argument is optional, and if left off, the raw image stream will be output directly. By sending an image/vnd.wap.wbmp content-type using header(), you can create a PHP script that outputs WBMP images directly.

Замечание: WBMP support is only available if PHP was compiled against GD-1.8 or later.

Using the optional foreground parameter, you can set the foreground color. Use an identifier obtained from imagecolorallocate(). The default foreground color is black.

See also image2wbmp(), imagepng(),
imagegif(), imagejpeg(),
imagetypes().

Пред. | Начало | След.
imagetypes | Уровень выше | imagexbm


imagexbm

(PHP 5)

imagexbm -- Output XBM image to browser or file

Description

bool imagexbm ( resource image, string filename [, int foreground] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Замечание: Эта функция доступна только в том случае, если PHP был скомпилирован со встроенной библиотекой GD.

Пред. | Начало | След.
imagewbmp | Уровень выше | iptcembed


iptcembed

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

iptcembed -- Embed binary IPTC data into a JPEG image

Description

mixed iptcembed ( string iptcdata, string jpeg_file_name [, int spool] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
imagexbm | Уровень выше | iptcparse


iptcparse

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

iptcparse -- Parse a binary IPTC http://www.iptc.org/ block into single tags.

Description

array iptcparse ( string iptcblock )

This function parses a binary IPTC block into its single tags. It returns an array using the tagmarker as an index and the value as the value. It returns FALSE on error or if no IPTC data was found. See getimagesize() for a sample.

Пред. | Начало | След.
iptcembed | Уровень выше | jpeg2wbmp


jpeg2wbmp

(PHP 4 >= 4.0.5, PHP 5)

jpeg2wbmp -- Convert JPEG image file to WBMP image file

Description

int jpeg2wbmp ( string jpegname, string wbmpname, int d_height, int d_width, int threshold )

Converts the jpegname JPEG file to WBMP format, and saves it as wbmpname. With the d_height and d_width you specify the height and width of the destination image.

Замечание: JPEG support is only available if PHP was compiled against GD-1.8 or later.

Замечание: WBMP support is only available if PHP was compiled against GD-1.8 or later.

See also png2wbmp().

Пред. | Начало | След.
iptcparse | Уровень выше | png2wbmp


png2wbmp

(PHP 4 >= 4.0.5, PHP 5)

png2wbmp -- Convert PNG image file to WBMP image file

Description

int png2wbmp ( string pngname, string wbmpname, int d_height, int d_width, int threshold )

Converts the pngname PNG file to WBMP format, and saves it as wbmpname. With the d_height and d_width you specify the height and width of the destination image.

Замечание: WBMP support is only available if PHP was compiled against GD-1.8 or later.

See also jpeg2wbmp().

Пред. | Начало | След.
jpeg2wbmp | Уровень выше | IMAP, POP3 and NNTP Functions


IMAP, POP3 and NNTP Functions

Руководство по PHP
Пред. След.

LVIII. IMAP, POP3 and NNTP Functions

Введение

These functions are not limited to the IMAP protocol, despite their name. The underlying c-client library also supports NNTP, POP3 and local mailbox access methods.

Требования

This extension requires the c-client library to be installed. Grab the latest version from ftp://ftp.cac.washington.edu/imap/ and compile it.

It's important that you do not copy the IMAP source files directly into the system include directory as there may be conflicts. Instead, create a new directory inside the system include directory, such as /usr/local/imap-2000b/ (location and name depend on your setup and IMAP version), and inside this new directory create additional directories named lib/ and include/. From the c-client directory from your IMAP source tree, copy all the *.h files into include/ and all the *.c files into lib/. Additionally when you compiled IMAP, a file named c-client.a was created. Also put this in the lib/ directory but rename it as libc-client.a.

Замечание: To build the c-client library with SSL or/and Kerberos support read the docs supplied with the package.

Замечание: In Mandrake Linux, the IMAP library (libc-client.a) is compiled without Kerberos support. A separate version with SSL (client-PHP4.a) is installed. The library must be recompiled in order to add Kerberos support.

Установка

To get these functions to work, you have to compile PHP with --with-imap[=DIR], where DIR is the c-client install prefix. From our example above, you would use --with-imap=/usr/local/imap-2000b. This location depends on where you created this directory according to the description above. Windows users may include the php_imap.dll DLL in php.ini. IMAP is not supported on systems earlier that Windows 2000. This is because it uses encryption functions in order to enable SSL connections to the mail servers.

Замечание: Depending how the c-client was configured, you might also need to add --with-imap-ssl=/path/to/openssl/ and/or --with-kerberos=/path/to/kerberos into the PHP configure line.

Внимание

Расширение IMAP не может использоваться вместе с расширениями перекодировки или YAZ. Это связано с тем фактом, что они оба используют один и тот же внутренний символ.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

NIL (integer)

OP_DEBUG (integer)

OP_READONLY (integer)

Open mailbox read-only

OP_ANONYMOUS (integer)

Don't use or update a .newsrc for news (NNTP only)

OP_SHORTCACHE (integer)

OP_SILENT (integer)

OP_PROTOTYPE (integer)

OP_HALFOPEN (integer)

For IMAP and NNTP names, open a connection but don't open a mailbox.

OP_EXPUNGE (integer)

OP_SECURE (integer)

CL_EXPUNGE (integer)

silently expunge the mailbox before closing when calling imap_close()

FT_UID (integer)

The parameter is a UID

FT_PEEK (integer)

Do not set the \Seen flag if not already set

FT_NOT (integer)

FT_INTERNAL (integer)

The return string is in internal format, will not canonicalize to CRLF.

FT_PREFETCHTEXT (integer)

ST_UID (integer)

The sequence argument contains UIDs instead of sequence numbers

ST_SILENT (integer)

ST_SET (integer)

CP_UID (integer)

the sequence numbers contain UIDS

CP_MOVE (integer)

Delete the messages from the current mailbox after copying with imap_mail_copy()

SE_UID (integer)

Return UIDs instead of sequence numbers

SE_FREE (integer)

SE_NOPREFETCH (integer)

Don't prefetch searched messages

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)

This mailbox has no "children" (there are no mailboxes below this one).

LATT_NOSELECT (integer)

This is only a container, not a mailbox - you cannot open it.

LATT_MARKED (integer)

This mailbox is marked. Only used by UW-IMAPD.

LATT_UNMARKED (integer)

This mailbox is not marked. Only used by UW-IMAPD.

SORTDATE (integer)

Sort criteria for imap_sort(): message Date

SORTARRIVAL (integer)

Sort criteria for imap_sort(): arrival date

SORTFROM (integer)

Sort criteria for imap_sort(): mailbox in first From address

SORTSUBJECT (integer)

Sort criteria for imap_sort(): message subject

SORTTO (integer)

Sort criteria for imap_sort(): mailbox in first To address

SORTCC (integer)

Sort criteria for imap_sort(): mailbox in first cc address

SORTSIZE (integer)

Sort criteria for imap_sort(): size of message in octets

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)

Смотрите также

This document can't go into detail on all the topics touched by the provided functions. Further information is provided by the documentation of the c-client library source (docs/internal.txt). and the following RFC documents:

  • RFC2821: Simple Mail Transfer Protocol (SMTP).

  • RFC2822: Standard for ARPA internet text messages.

  • RFC2060: Internet Message Access Protocol (IMAP) Version 4rev1.

  • RFC1939: Post Office Protocol Version 3 (POP3).

  • RFC977: Network News Transfer Protocol (NNTP).

  • RFC2076: Common Internet Message Headers.

  • RFC2045 , RFC2046 , RFC2047 , RFC2048 & RFC2049: Multipurpose Internet Mail Extensions (MIME).

A detailed overview is also available in the books Programming Internet Email by David Wood and Managing IMAP by Dianna Mullet & Kevin Mullet.

Содержание
imap_8bit -- Convert an 8bit string to a quoted-printable string
imap_alerts -- This function returns all IMAP alert messages (if any) that have occurred during this page request or since the alert stack was reset
imap_append -- Append a string message to a specified mailbox
imap_base64 -- Decode BASE64 encoded text
imap_binary -- Convert an 8bit string to a base64 string
imap_body -- Read the message body
imap_bodystruct -- Read the structure of a specified body section of a specific message
imap_check -- Check current mailbox
imap_clearflag_full -- Clears flags on messages
imap_close -- Close an IMAP stream
imap_createmailbox -- Create a new mailbox
imap_delete -- Mark a message for deletion from current mailbox
imap_deletemailbox -- Delete a mailbox
imap_errors -- This function returns all of the IMAP errors (if any) that have occurred during this page request or since the error stack was reset
imap_expunge -- Delete all messages marked for deletion
imap_fetch_overview -- Read an overview of the information in the headers of the given message
imap_fetchbody -- Fetch a particular section of the body of the message
imap_fetchheader -- Returns header for a message
imap_fetchstructure -- Read the structure of a particular message
imap_get_quota -- Retrieve the quota level settings, and usage statics per mailbox
imap_get_quotaroot -- Retrieve the quota settings per user
imap_getacl -- Gets the ACL for a given mailbox
imap_getmailboxes -- Read the list of mailboxes, returning detailed information on each one
imap_getsubscribed -- List all the subscribed mailboxes
imap_header -- Alias of imap_headerinfo()
imap_headerinfo -- Read the header of the message
imap_headers -- Returns headers for all messages in a mailbox
imap_last_error -- This function returns the last IMAP error (if any) that occurred during this page request
imap_list -- Read the list of mailboxes
imap_listmailbox -- Alias of imap_list()
imap_listscan -- Read the list of mailboxes, takes a string to search for in the text of the mailbox
imap_listsubscribed -- Alias of imap_lsub()
imap_lsub -- List all the subscribed mailboxes
imap_mail_compose -- Create a MIME message based on given envelope and body sections
imap_mail_copy -- Copy specified messages to a mailbox
imap_mail_move -- Move specified messages to a mailbox
imap_mail -- Send an email message
imap_mailboxmsginfo -- Get information about the current mailbox
imap_mime_header_decode -- Decode MIME header elements
imap_msgno -- This function returns the message sequence number for the given UID
imap_num_msg -- Gives the number of messages in the current mailbox
imap_num_recent -- Gives the number of recent messages in current mailbox
imap_open -- Open an IMAP stream to a mailbox
imap_ping -- Check if the IMAP stream is still active
imap_qprint -- Convert a quoted-printable string to an 8 bit string
imap_renamemailbox -- Rename an old mailbox to new mailbox
imap_reopen -- Reopen IMAP stream to new mailbox
imap_rfc822_parse_adrlist -- Parses an address string
imap_rfc822_parse_headers -- Parse mail headers from a string
imap_rfc822_write_address -- Returns a properly formatted email address given the mailbox, host, and personal info
imap_scanmailbox -- Alias of imap_listscan()
imap_search -- This function returns an array of messages matching the given search criteria
imap_set_quota -- Sets a quota for a given mailbox
imap_setacl -- Sets the ACL for a giving mailbox
imap_setflag_full -- Sets flags on messages
imap_sort -- Sort an array of message headers
imap_status -- This function returns status information on a mailbox other than the current one
imap_subscribe -- Subscribe to a mailbox
imap_thread -- Returns a tree of threaded message
imap_timeout -- Set or fetch imap timeout
imap_uid -- This function returns the UID for the given message sequence number
imap_undelete -- Unmark the message which is marked deleted
imap_unsubscribe -- Unsubscribe from a mailbox
imap_utf7_decode -- Decodes a modified UTF-7 encoded string
imap_utf7_encode -- Converts ISO-8859-1 string to modified UTF-7 text
imap_utf8 -- Converts MIME-encoded text to UTF-8

Пред. | Начало | След.
png2wbmp | Уровень выше | imap_8bit


imap_8bit

(PHP 3, PHP 4, PHP 5)

imap_8bit -- Convert an 8bit string to a quoted-printable string

Description

string imap_8bit ( string string )

Convert an 8bit string to a quoted-printable string (according to RFC2045, section 6.7).

Returns a quoted-printable string.

See also imap_qprint().

Пред. | Начало | След.
IMAP, POP3 and NNTP Functions | Уровень выше | imap_alerts


imap_alerts

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

imap_alerts -- This function returns all IMAP alert messages (if any) that have occurred during this page request or since the alert stack was reset

Description

array imap_alerts ( void )

This function returns an array of all of the IMAP alert messages generated since the last imap_alerts() call, or the beginning of the page. When imap_alerts() is called, the alert stack is subsequently cleared. The IMAP specification requires that these messages be passed to the user.

Пред. | Начало | След.
imap_8bit | Уровень выше | imap_append


imap_append

(PHP 3, PHP 4, PHP 5)

imap_append -- Append a string message to a specified mailbox

Description

bool imap_append ( resource imap_stream, string mbox, string message [, string options] )

imap_append() appends a string message to the specified mailbox mbox. If the optional options is specified, writes the options to that mailbox also.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

When talking to the Cyrus IMAP server, you must use "\r\n" as your end-of-line terminator instead of "\n" or the operation will fail.

Пример 1. imap_append() example

<?php
$stream = imap_open("{your.imap.host}INBOX.Drafts", "username", "password");

$check = imap_check($stream);
echo "Msg Count before append: ". $check->Nmsgs . "\n";

imap_append($stream, "{your.imap.host}INBOX.Drafts"
                   , "From: me@example.com\r\n"
                   . "To: you@example.com\r\n"
                   . "Subject: test\r\n"
                   . "\r\n"
                   . "this is a test message, please ignore\r\n"
                   );

$check = imap_check($stream);
echo "Msg Count after append : ". $check->Nmsgs . "\n";

imap_close($stream);
?>

Пред. | Начало | След.
imap_alerts | Уровень выше | imap_base64


imap_base64

(PHP 3, PHP 4, PHP 5)

imap_base64 -- Decode BASE64 encoded text

Description

string imap_base64 ( string text )

imap_base64() function decodes BASE-64 encoded text (see RFC2045, Section 6.8). The decoded message is returned as a string.

See also imap_binary(),
base64_encode() and
base64_decode().

Пред. | Начало | След.
imap_append | Уровень выше | imap_binary


imap_binary

(PHP 3 >= 3.0.2, PHP 4, PHP 5)

imap_binary -- Convert an 8bit string to a base64 string

Description

string imap_binary ( string string )

Convert an 8bit string to a base64 string (according to RFC2045, Section 6.8).

Returns a base64 string.

See also imap_base64().

Пред. | Начало | След.
imap_base64 | Уровень выше | imap_body


imap_body

(PHP 3, PHP 4, PHP 5)

imap_body -- Read the message body

Description

string imap_body ( resource imap_stream, int msg_number [, int options] )

imap_body() returns the body of the message, numbered msg_number in the current mailbox.

The optional options are a bit mask with one or more of the following:

  • FT_UID - The msg_number is a UID

  • FT_PEEK - Do not set the \Seen flag if not already set

  • FT_INTERNAL - The return string is in internal format, will not canonicalize to CRLF.

imap_body() will only return a verbatim copy of the message body. To extract single parts of a multipart MIME-encoded message you have to use imap_fetchstructure() to analyze its structure and imap_fetchbody() to extract a copy of a single body component.

Пред. | Начало | След.
imap_binary | Уровень выше | imap_bodystruct


imap_bodystruct

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

imap_bodystruct -- Read the structure of a specified body section of a specific message

Description

object imap_bodystruct ( resource stream_id, int msg_no, string section )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
imap_body | Уровень выше | imap_check


imap_check

(PHP 3, PHP 4, PHP 5)

imap_check -- Check current mailbox

Description

object imap_check ( resource imap_stream )

Returns information about the current mailbox. Returns FALSE on failure.

The imap_check() function checks the current mailbox status on the server and returns the information in an object with following properties:

  • Date - current system time formatted according to RFC822

  • Driver - protocol used to access this mailbox: POP3, IMAP, NNTP

  • Mailbox - the mailbox name

  • Nmsgs - number of messages in the mailbox

  • Recent - number of recent messages in the mailbox

Пример 1. imap_check() example

<?php

$imap_obj = imap_check($imap_stream);
var_dump($imap_obj);

?>

this will output :

object(stdClass)(5) {
  ["Date"]=>
  string(37) "Wed, 10 Dec 2003 17:56:54 +0100 (CET)"
  ["Driver"]=>
  string(4) "imap"
  ["Mailbox"]=>
  string(54)
  "{www.example.com:143/imap/user="foo@example.com"}INBOX"
  ["Nmsgs"]=>
  int(1)
  ["Recent"]=>
  int(0)
}

Пред. | Начало | След.
imap_bodystruct | Уровень выше | imap_clearflag_full


imap_clearflag_full

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

imap_clearflag_full -- Clears flags on messages

Description

bool imap_clearflag_full ( resource stream, string sequence, string flag [, string options] )

This function causes a store to delete the specified flag to the flags set for the messages in the specified sequence. The flags which you can unset are "\\Seen", "\\Answered", "\\Flagged", "\\Deleted", and "\\Draft" (as defined by RFC2060). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки..

options are a bit mask and may contain the single option:

  • ST_UID - The sequence argument contains UIDs instead of sequence numbers

See also: imap_setflag_full().

Пред. | Начало | След.
imap_check | Уровень выше | imap_close


imap_close

(PHP 3, PHP 4, PHP 5)

imap_close -- Close an IMAP stream

Description

bool imap_close ( resource imap_stream [, int flag] )

Closes the imap stream. Takes an optional flag CL_EXPUNGE, which will silently expunge the mailbox before closing, removing all messages marked for deletion.

See also: imap_open().

Пред. | Начало | След.
imap_clearflag_full | Уровень выше | imap_createmailbox


imap_createmailbox

(PHP 3, PHP 4, PHP 5)

imap_createmailbox -- Create a new mailbox

Description

bool imap_createmailbox ( resource imap_stream, string mbox )

imap_createmailbox() creates a new mailbox specified by mbox. Names containing international characters should be encoded by imap_utf7_encode()

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки..

Пример 1. imap_createmailbox() example

<?php
$mbox = imap_open("{your.imap.host}", "username", "password", OP_HALFOPEN)
     or die("can't connect: " . imap_last_error());

$name1 = "phpnewbox";
$name2 = imap_utf7_encode("phpnewb&ouml;x");

$newname = $name1;

echo "Newname will be '$name1'<br />\n";

// we will now create a new mailbox "phptestbox" in your inbox folder,
// check its status after creation and finaly remove it to restore
// your inbox to its initial state

if (@imap_createmailbox($mbox, imap_utf7_encode("{your.imap.host}INBOX.$newname"))) {
    $status = @imap_status($mbox, "{your.imap.host}INBOX.$newname", SA_ALL);
    if ($status) {
        echo "your new mailbox '$name1' has the following status:<br />\n";
        echo "Messages:   " . $status->messages    . "<br />\n";
        echo "Recent:     " . $status->recent      . "<br />\n";
        echo "Unseen:     " . $status->unseen      . "<br />\n";
        echo "UIDnext:    " . $status->uidnext     . "<br />\n";
        echo "UIDvalidity:" . $status->uidvalidity . "<br />\n";

        if (imap_renamemailbox($mbox, "{your.imap.host}INBOX.$newname", "{your.imap.host}INBOX.$name2")) {
            echo "renamed new mailbox from '$name1' to '$name2'<br />\n";
            $newname = $name2;
        } else {
            echo "imap_renamemailbox on new mailbox failed: " . imap_last_error() . "<br />\n";
        }
    } else {
        echo "imap_status on new mailbox failed: " . imap_last_error() . "<br />\n";
    }

    if (@imap_deletemailbox($mbox, "{your.imap.host}INBOX.$newname")) {
        echo "new mailbox removed to restore initial state<br />\n";
    } else {
        echo "imap_deletemailbox on new mailbox failed: " . implode("<br />\n", imap_errors()) . "<br />\n";
    }

} else {
    echo "could not create new mailbox: " . implode("<br />\n", imap_errors()) . "<br />\n";
}

imap_close($mbox);
?>

See also imap_renamemailbox(),
imap_deletemailbox() and
imap_open() for the format
of mbox names.

Пред. | Начало | След.
imap_close | Уровень выше | imap_delete


imap_delete

(PHP 3, PHP 4, PHP 5)

imap_delete -- Mark a message for deletion from current mailbox

Description

bool imap_delete ( int imap_stream, int msg_number [, int options] )

Returns TRUE.

imap_delete() marks messages listed in msg_number for deletion. The optional flags parameter only has a single option, FT_UID, which tells the function to treat the msg_number argument as a UID. Messages marked for deletion will stay in the mailbox until either imap_expunge() is called or imap_close() is called with the optional parameter CL_EXPUNGE.

Замечание: POP3 mailboxes do not have their message flags saved between connections, so imap_expunge() must be called during the same connection in order for messages marked for deletion to actually be purged.

Пример 1. imap_delete() example

<?php

$mbox = imap_open("{your.imap.host}INBOX", "username", "password")
    or die("Can't connect: " . imap_last_error());

$check = imap_mailboxmsginfo($mbox);
echo "Messages before delete: " . $check->Nmsgs . "<br />\n";

imap_delete($mbox, 1);

$check = imap_mailboxmsginfo($mbox);
echo "Messages after  delete: " . $check->Nmsgs . "<br />\n";

imap_expunge($mbox);

$check = imap_mailboxmsginfo($mbox);
echo "Messages after expunge: " . $check->Nmsgs . "<br />\n";

imap_close($mbox);
?>

See also: imap_undelete(),
imap_expunge(), and
imap_close().

Пред. | Начало | След.
imap_createmailbox | Уровень выше | imap_deletemailbox


imap_deletemailbox

(PHP 3, PHP 4, PHP 5)

imap_deletemailbox -- Delete a mailbox

Description

bool imap_deletemailbox ( resource imap_stream, string mbox )

imap_deletemailbox() deletes the specified mailbox (see imap_open() for the format of mbox names).

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки..

See also imap_createmailbox(),
imap_renamemailbox(), and
imap_open() for the format of
mbox.

Пред. | Начало | След.
imap_delete | Уровень выше | imap_errors


imap_errors

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

imap_errors -- This function returns all of the IMAP errors (if any) that have occurred during this page request or since the error stack was reset

Description

array imap_errors ( void )

This function returns an array of all of the IMAP error messages generated since the last imap_errors() call, or the beginning of the page. When imap_errors() is called, the error stack is subsequently cleared.

See also: imap_last_error().

Пред. | Начало | След.
imap_deletemailbox | Уровень выше | imap_expunge


imap_expunge

(PHP 3, PHP 4, PHP 5)

imap_expunge -- Delete all messages marked for deletion

Description

bool imap_expunge ( resource imap_stream )

imap_expunge() deletes all the messages marked
for deletion by imap_delete(),
imap_mail_move(), or
imap_setflag_full().

Returns TRUE.

Пред. | Начало | След.
imap_errors | Уровень выше | imap_fetch_overview


imap_fetch_overview

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

imap_fetch_overview -- Read an overview of the information in the headers of the given message

Description

array imap_fetch_overview ( resource imap_stream, string sequence [, int options] )

This function fetches mail headers for the given sequence and returns an overview of their contents. sequence will contain a sequence of message indices or UIDs, if flags contains FT_UID. The returned value is an array of objects describing one message header each:

  • subject - the messages subject

  • from - who sent it

  • to - recipient

  • date - when was it sent

  • message_id - Message-ID

  • references - is a reference to this message id

  • in_reply_to - is a reply to this message id

  • size - size in bytes

  • uid - UID the message has in the mailbox

  • msgno - message sequence number in the mailbox

  • recent - this message is flagged as recent

  • flagged - this message is flagged

  • answered - this message is flagged as answered

  • deleted - this message is flagged for deletion

  • seen - this message is flagged as already read

  • draft - this message is flagged as being a draft

Пример 1. imap_fetch_overview() example

<?php
$mbox = imap_open("{your.imap.host:143}", "username", "password")
     or die("can't connect: " . imap_last_error());

$overview = imap_fetch_overview($mbox, "2,4:6", 0);

if (is_array($overview)) {
    foreach ($overview as $val) {
        echo "$val->msgno - $val->date - $val->subject\n";
    }
}

imap_close($mbox);
?>

Пред. | Начало | След.
imap_expunge | Уровень выше | imap_fetchbody


imap_fetchbody

(PHP 3, PHP 4, PHP 5)

imap_fetchbody -- Fetch a particular section of the body of the message

Description

string imap_fetchbody ( resource imap_stream, int msg_number, string part_number [, int options] )

This function causes a fetch of a particular section of the body of the specified messages as a text string and returns that text string. The section specification is a string of integers delimited by period which index into a body part list as per the IMAP4 specification. Body parts are not decoded by this function.

The options for imap_fetchbody() is a bitmask with one or more of the following:

  • FT_UID - The msg_number is a UID

  • FT_PEEK - Do not set the \Seen flag if not already set

  • FT_INTERNAL - The return string is in internal format, will not canonicalize to CRLF.

See also: imap_fetchstructure().

Пред. | Начало | След.
imap_fetch_overview | Уровень выше | imap_fetchheader


imap_fetchheader

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

imap_fetchheader -- Returns header for a message

Description

string imap_fetchheader ( resource imap_stream, int msgno [, int options] )

This function causes a fetch of the complete, unfiltered RFC2822 format header of the specified message as a text string and returns that text string.

The options are:

  • FT_UID - The msgno argument is a UID

  • FT_INTERNAL - The return string is in "internal" format, without any attempt to canonicalize to CRLF newlines

  • FT_PREFETCHTEXT - The RFC822.TEXT should be pre-fetched at the same time. This avoids an extra RTT on an IMAP connection if a full message text is desired (e.g. in a "save to local file" operation)

Пред. | Начало | След.
imap_fetchbody | Уровень выше | imap_fetchstructure


imap_fetchstructure

(PHP 3, PHP 4, PHP 5)

imap_fetchstructure -- Read the structure of a particular message

Description

object imap_fetchstructure ( resource imap_stream, int msg_number [, int options] )

This function fetches all the structured information for a given message. The optional options parameter only has a single option, FT_UID, which tells the function to treat the msg_number argument as a UID. The returned object includes the envelope, internal date, size, flags and body structure along with a similar object for each mime attachment. The structure of the returned objects is as follows:

Таблица 1. Returned Objects for imap_fetchstructure()

type | Primary body type
encoding | Body transfer encoding
ifsubtype | TRUE if there is a subtype string
subtype | MIME subtype
ifdescription | TRUE if there is a description string
description | Content description string
ifid | TRUE if there is an identification string
id | Identification string
lines | Number of lines
bytes | Number of bytes
ifdisposition | TRUE if there is a disposition string
disposition | Disposition string
ifdparameters | TRUE if the dparameters array exists
dparameters | An array of objects where each object has an "attribute" and a "value" property corresponding to the parameters on the Content-disposition MIMEheader.
ifparameters | TRUE if the parameters array exists
parameters | An array of objects where each object has an "attribute" and a "value" property.
parts | An array of objects identical in structure to the top-level object, each of which corresponds to a MIME body part.

Таблица 2. Primary body type

0 | text
1 | multipart
2 | message
3 | application
4 | audio
5 | image
6 | video
7 | other

Таблица 3. Transfer encodings

0 | 7BIT
1 | 8BIT
2 | BINARY
3 | BASE64
4 | QUOTED-PRINTABLE
5 | OTHER

See also: imap_fetchbody().

Пред. | Начало | След.
imap_fetchheader | Уровень выше | imap_get_quota


imap_get_quota

(PHP 4 >= 4.0.5, PHP 5)

imap_get_quota -- Retrieve the quota level settings, and usage statics per mailbox

Description

array imap_get_quota ( resource imap_stream, string quota_root )

Returns an array with integer values limit and usage for the given mailbox. The value of limit represents the total amount of space allowed for this mailbox. The usage value represents the mailboxes current level of capacity. Will return FALSE in the case of failure.

This function is currently only available to users of the c-client2000 or greater library.

NOTE: For this function to work, the mail stream is required to be opened as the mail-admin user. For a non-admin user version of this function, please see the imap_get_quotaroot() function of PHP.

imap_stream should be the value returned from an imap_open() call. NOTE: This stream is required to be opened as the mail admin user for the get_quota function to work. quota_root should normally be in the form of user.name where name is the mailbox you wish to retrieve information about.

Пример 1. imap_get_quota() example

<?php
$mbox = imap_open("{your.imap.host}", "mailadmin", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$quota_value = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_value)) {
    echo "Usage level is: " . $quota_value['usage'];
    echo "Limit level is: " . $quota_value['limit'];
}

imap_close($mbox);
?>

As of PHP 4.3, the function more properly reflects the functionality as dictated by the RFC 2087. The array return value has changed to support an unlimited number of returned resources (i.e. messages, or sub-folders) with each named resource receiving an individual array key. Each key value then contains an another array with the usage and limit values within it. The example below shows the updated returned output.

For backwards compatibility reasons, the original access methods are still available for use, although it is suggested to update.

Пример 2. imap_get_quota() 4.3 or greater example

<?php
$mbox = imap_open("{your.imap.host}", "mailadmin", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$quota_values = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_values)) {
   $storage = $quota_values['STORAGE'];
   echo "STORAGE usage level is: " .  $storage['usage'];
   echo "STORAGE limit level is: " .  $storage['limit'];

   $message = $quota_values['MESSAGE'];
   echo "MESSAGE usage level is: " .  $message['usage'];
   echo "MESSAGE limit is: " .  $message['limit'];

   /* ...  */
}

imap_close($mbox);
?>

See also imap_open(),
imap_set_quota() and
imap_get_quotaroot().

Пред. | Начало | След.
imap_fetchstructure | Уровень выше | imap_get_quotaroot


imap_get_quotaroot

(PHP 4 >= 4.3.0, PHP 5)

imap_get_quotaroot -- Retrieve the quota settings per user

Description

array imap_get_quotaroot ( resource imap_stream, string quota_root )

Returns an array of integer values pertaining to the specified user mailbox. All values contain a key based upon the resource name, and a corresponding array with the usage and limit values within.

The limit value represents the total amount of space allowed for this user's total mailbox usage. The usage value represents the user's current total mailbox capacity. This function will return FALSE in the case of call failure, and an array of information about the connection upon an un-parsable response from the server.

This function is currently only available to users of the c-client2000 or greater library.

imap_stream should be the value returned from an imap_open() call. This stream should be opened as the user whose mailbox you wish to check. quota_root should normally be in the form of which mailbox (i.e. INBOX).

Пример 1. imap_get_quotaroot() example

<?php
$mbox = imap_open("{your.imap.host}", "kalowsky", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$quota = imap_get_quotaroot($mbox, "INBOX");
if (is_array($quota)) {
   $storage = $quota_values['STORAGE'];
   echo "STORAGE usage level is: " .  $storage['usage'];
   echo "STORAGE limit level is: " .  $storage['limit'];

   $message = $quota_values['MESSAGE'];
   echo "MESSAGE usage level is: " .  $message['usage'];
   echo "MESSAGE usage level is: " .  $message['limit'];

   /* ...  */

}

imap_close($mbox);
?>

See also imap_open(),
imap_set_quota() and
imap_get_quota().

Пред. | Начало | След.
imap_get_quota | Уровень выше | imap_getacl


imap_getacl

(PHP 5)

imap_getacl -- Gets the ACL for a given mailbox

Description

array imap_getacl ( resource stream_id, string mailbox )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

This function is currently only available to users of the c-client2000 or greater library.

See also imap_setacl().

Пред. | Начало | След.
imap_get_quotaroot | Уровень выше | imap_getmailboxes


imap_getmailboxes

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

imap_getmailboxes -- Read the list of mailboxes, returning detailed information on each one

Description

array imap_getmailboxes ( resource imap_stream, string ref, string pattern )

Returns an array of objects containing mailbox information. Each object has the attributes name, specifying the full name of the mailbox; delimiter, which is the hierarchy delimiter for the part of the hierarchy this mailbox is in; and attributes. Attributes is a bitmask that can be tested against:

  • LATT_NOINFERIORS - This mailbox has no "children" (there are no mailboxes below this one).

  • LATT_NOSELECT - This is only a container, not a mailbox - you cannot open it.

  • LATT_MARKED - This mailbox is marked. Only used by UW-IMAPD.

  • LATT_UNMARKED - This mailbox is not marked. Only used by UW-IMAPD.

Mailbox names containing international Characters outside the printable ASCII range will be encoded and may be decoded by imap_utf7_decode().

ref should normally be just the server specification as described in imap_open(), and pattern specifies where in the mailbox hierarchy to start searching. If you want all mailboxes, pass '*' for pattern.

There are two special characters you can pass as part of the pattern: '*' and '%'. '*' means to return all mailboxes. If you pass pattern as '*', you will get a list of the entire mailbox hierarchy. '%' means to return the current level only. '%' as the pattern parameter will return only the top level mailboxes; '~/mail/%' on UW_IMAPD will return every mailbox in the ~/mail directory, but none in subfolders of that directory.

Пример 1. imap_getmailboxes() example

<?php
$mbox = imap_open("{your.imap.host}", "username", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$list = imap_getmailboxes($mbox, "{your.imap.host}", "*");
if (is_array($list)) {
    foreach ($list as $key => $val) {
        echo "($key) ";
        echo imap_utf7_decode($val->name) . ",";
        echo "'" . $val->delimiter . "',";
        echo $val->attributes . "<br />\n";
    }
} else {
    echo "imap_getmailboxes failed: " . imap_last_error() . "\n";
}

imap_close($mbox);
?>

See also imap_getsubscribed().

Пред. | Начало | След.
imap_getacl | Уровень выше | imap_getsubscribed


imap_getsubscribed

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

imap_getsubscribed -- List all the subscribed mailboxes

Description

array imap_getsubscribed ( resource imap_stream, string ref, string pattern )

This function is identical to imap_getmailboxes(), except that it only returns mailboxes that the user is subscribed to.

Пред. | Начало | След.
imap_getmailboxes | Уровень выше | imap_header


imap_header

(PHP 3, PHP 4, PHP 5)

imap_header -- Alias of imap_headerinfo()

Описание

This function is an alias of: imap_headerinfo().

Пред. | Начало | След.
imap_getsubscribed | Уровень выше | imap_headerinfo


imap_headerinfo

(PHP 3, PHP 4, PHP 5)

imap_headerinfo -- Read the header of the message

Description

object imap_headerinfo ( resource imap_stream, int msg_number [, int fromlength [, int subjectlength [, string defaulthost]]] )

This function returns an object of various header elements.

remail, date, Date, subject, Subject, in_reply_to, message_id,
newsgroups, followup_to, references

message flags:
Recent - 'R' if recent and seen,
'N' if recent and not seen,
' ' if not recent
Unseen - 'U' if not seen AND not recent,
' ' if seen OR not seen and recent
Answered -'A' if answered,
' ' if unanswered
Deleted - 'D' if deleted,
' ' if not deleted
Draft - 'X' if draft,
' ' if not draft
Flagged - 'F' if flagged,
' ' if not flagged

NOTE that the Recent/Unseen behavior is a little odd. If you want to
know if a message is Unseen, you must check for

Unseen == 'U' || Recent == 'N'

toaddress (full to: line, up to 1024 characters)

to[] (returns an array of objects from the To line, containing):
personal
adl
mailbox
host

fromaddress (full from: line, up to 1024 characters)

from[] (returns an array of objects from the From line, containing):
personal
adl
mailbox
host

ccaddress (full cc: line, up to 1024 characters)
cc[] (returns an array of objects from the Cc line, containing):
personal
adl
mailbox
host

bccaddress (full bcc line, up to 1024 characters)
bcc[] (returns an array of objects from the Bcc line, containing):
personal
adl
mailbox
host

reply_toaddress (full reply_to: line, up to 1024 characters)
reply_to[] (returns an array of objects from the Reply_to line,
containing):
personal
adl
mailbox
host

senderaddress (full sender: line, up to 1024 characters)
sender[] (returns an array of objects from the sender line, containing):
personal
adl
mailbox
host

return_path (full return-path: line, up to 1024 characters)
return_path[] (returns an array of objects from the return_path line,
containing):
personal
adl
mailbox
host

udate (mail message date in unix time)

fetchfrom (from line formatted to fit fromlength
characters)

fetchsubject (subject line formatted to fit subjectlength characters)

Пред. | Начало | След.
imap_header | Уровень выше | imap_headers


imap_headers

(PHP 3, PHP 4, PHP 5)

imap_headers -- Returns headers for all messages in a mailbox

Description

array imap_headers ( resource imap_stream )

Returns an array of string formatted with header info. One element per mail message.

Пред. | Начало | След.
imap_headerinfo | Уровень выше | imap_last_error


imap_last_error

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

imap_last_error -- This function returns the last IMAP error (if any) that occurred during this page request

Description

string imap_last_error ( void )

This function returns the full text of the last IMAP error message that occurred on the current page. The error stack is untouched; calling imap_last_error() subsequently, with no intervening errors, will return the same error.

See also: imap_errors().

Пред. | Начало | След.
imap_headers | Уровень выше | imap_list


imap_list

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

imap_list -- Read the list of mailboxes

Description

array imap_list ( resource imap_stream, string ref, string pattern )

Returns an array containing the names of the mailboxes. See imap_getmailboxes() for a description of ref and pattern.

Пример 1. imap_list() example

<?php
$mbox = imap_open("{your.imap.host}", "username", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$list = imap_list($mbox, "{your.imap.host}", "*");
if (is_array($list)) {
    foreach ($list as $val) {
        echo imap_utf7_decode($val) . "<br />\n";
    }
} else {
    echo "imap_list failed: " . imap_last_error() . "\n";
}

imap_close($mbox);
?>

See also: imap_getmailboxes().

Пред. | Начало | След.
imap_last_error | Уровень выше | imap_listmailbox


imap_listmailbox

(PHP 3, PHP 4, PHP 5)

imap_listmailbox -- Alias of imap_list()

Описание

This function is an alias of: imap_list().

Пред. | Начало | След.
imap_list | Уровень выше | imap_listscan


imap_listscan

(no version information, might be only in CVS)

imap_listscan -- Read the list of mailboxes, takes a string to search for in the text of the mailbox

Description

array imap_listscan ( resource imap_stream, string ref, string pattern, string content )

Returns an array containing the names of the mailboxes that have content in the text of the mailbox.

This function is similar to imap_listmailbox(), but it will additionally check for the presence of the string content inside the mailbox data.

See imap_getmailboxes() for a description of ref and pattern.

Пред. | Начало | След.
imap_listmailbox | Уровень выше | imap_listsubscribed


imap_listsubscribed

(PHP 3, PHP 4, PHP 5)

imap_listsubscribed -- Alias of imap_lsub()

Описание

This function is an alias of: imap_lsub().

Пред. | Начало | След.
imap_listscan | Уровень выше | imap_lsub


imap_lsub

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

imap_lsub -- List all the subscribed mailboxes

Description

array imap_lsub ( resource imap_stream, string ref, string pattern )

Returns an array of all the mailboxes that you have subscribed.

Пред. | Начало | След.
imap_listsubscribed | Уровень выше | imap_mail_compose


imap_mail_compose

(PHP 3 >= 3.0.5, PHP 4, PHP 5)

imap_mail_compose -- Create a MIME message based on given envelope and body sections

Description

string imap_mail_compose ( array envelope, array body )

Пример 1. imap_mail_compose() example

<?php

$envelope["from"]= "joe@example.com";
$envelope["to"]  = "foo@example.com";
$envelope["cc"]  = "bar@example.com";

$part1["type"] = TYPEMULTIPART;
$part1["subtype"] = "mixed";

$filename = "/tmp/imap.c.gz";
$fp = fopen($filename, "r");
$contents = fread($fp, filesize($filename));
fclose($fp);

$part2["type"] = TYPEAPPLICATION;
$part2["encoding"] = ENCBINARY;
$part2["subtype"] = "octet-stream";
$part2["description"] = basename($filename);
$part2["contents.data"] = $contents;

$part3["type"] = TYPETEXT;
$part3["subtype"] = "plain";
$part3["description"] = "description3";
$part3["contents.data"] = "contents.data3\n\n\n\t";

$body[1] = $part1;
$body[2] = $part2;
$body[3] = $part3;

echo nl2br(imap_mail_compose($envelope, $body));

?>

Пред. | Начало | След.
imap_lsub | Уровень выше | imap_mail_copy


imap_mail_copy

(PHP 3, PHP 4, PHP 5)

imap_mail_copy -- Copy specified messages to a mailbox

Description

bool imap_mail_copy ( resource imap_stream, string msglist, string mbox [, int options] )

Copies mail messages specified by msglist to specified mailbox. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки..

msglist is a range not just message numbers (as described in RFC2060).

options is a bitmask of one or more of

  • CP_UID - the sequence numbers contain UIDS

  • CP_MOVE - Delete the messages from the current mailbox after copying

See also imap_mail_move().

Пред. | Начало | След.
imap_mail_compose | Уровень выше | imap_mail_move


imap_mail_move

(PHP 3, PHP 4, PHP 5)

imap_mail_move -- Move specified messages to a mailbox

Description

bool imap_mail_move ( resource imap_stream, string msglist, string mbox [, int options] )

Moves mail messages specified by msglist to specified mailbox mbox. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки..

msglist is a range not just message numbers (as described in RFC2060).

options is a bitmask and may contain the single option:

  • CP_UID - the sequence numbers contain UIDS

See also imap_mail_copy().

Пред. | Начало | След.
imap_mail_copy | Уровень выше | imap_mail


imap_mail

(PHP 3 >= 3.0.14, PHP 4, PHP 5)

imap_mail -- Send an email message

Description

bool imap_mail ( string to, string subject, string message [, string additional_headers [, string cc [, string bcc [, string rpath]]]] )

This function allows sending of emails with correct handling of Cc and Bcc receivers. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки..

The parameters to, cc and bcc are all strings and are all parsed as rfc822 address lists.

The receivers specified in bcc will get the mail, but are excluded from the headers.

Use the rpath parameter to specify return path. This is useful when using PHP as a mail client for multiple users.

Пред. | Начало | След.
imap_mail_move | Уровень выше | imap_mailboxmsginfo


imap_mailboxmsginfo

(PHP 3 >= 3.0.2, PHP 4, PHP 5)

imap_mailboxmsginfo -- Get information about the current mailbox

Description

object imap_mailboxmsginfo ( resource imap_stream )

Returns information about the current mailbox. Returns FALSE on failure.

The imap_mailboxmsginfo() function checks the current mailbox status on the server. It is similar to imap_status(), but will additionally sum up the size of all messages in the mailbox, which will take some additional time to execute. It returns the information in an object with following properties.

Таблица 1. Mailbox properties

Date | date of last change
Driver | driver
Mailbox | name of the mailbox
Nmsgs | number of messages
Recent | number of recent messages
Unread | number of unread messages
Deleted | number of deleted messages
Size | mailbox size

Пример 1. imap_mailboxmsginfo() example

<?php

$mbox = imap_open("{your.imap.host}INBOX", "username", "password")
      or die("can't connect: " . imap_last_error());

$check = imap_mailboxmsginfo($mbox);

if ($check) {
    echo "Date: "     . $check->Date    . "<br />\n" ;
    echo "Driver: "   . $check->Driver  . "<br />\n" ;
    echo "Mailbox: "  . $check->Mailbox . "<br />\n" ;
    echo "Messages: " . $check->Nmsgs   . "<br />\n" ;
    echo "Recent: "   . $check->Recent  . "<br />\n" ;
    echo "Unread: "   . $check->Unread  . "<br />\n" ;
    echo "Deleted: "  . $check->Deleted . "<br />\n" ;
    echo "Size: "     . $check->Size    . "<br />\n" ;
} else {
    echo "imap_check() failed: " . imap_last_error() . "<br />\n";
}

imap_close($mbox);

?>

Пред. | Начало | След.
imap_mail | Уровень выше | imap_mime_header_decode


imap_mime_header_decode

(PHP 3 >= 3.0.17, PHP 4, PHP 5)

imap_mime_header_decode -- Decode MIME header elements

Description

array imap_mime_header_decode ( string text )

imap_mime_header_decode() function decodes MIME message header extensions that are non ASCII text (see RFC2047). The decoded elements are returned in an array of objects, where each object has two properties, "charset" and "text". If the element hasn't been encoded, and in other words is in plain US-ASCII,the "charset" property of that element is set to "default".

Пример 1. imap_mime_header_decode() example

<?php
$text = "=?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@example.com>";

$elements = imap_mime_header_decode($text);
for ($i=0; $i<count($elements); $i++) {
    echo "Charset: {$elements[$i]->charset}\n";
    echo "Text: {$elements[$i]->text}\n\n";
}
?>

In the above example we would have two elements, whereas the first element had previously been encoded with ISO-8859-1, and the second element would be plain US-ASCII.

Пред. | Начало | След.
imap_mailboxmsginfo | Уровень выше | imap_msgno


imap_msgno

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

imap_msgno -- This function returns the message sequence number for the given UID

Description

int imap_msgno ( resource imap_stream, int uid )

This function returns the message sequence number for the given uid. It is the inverse of imap_uid().

See also imap_uid().

Пред. | Начало | След.
imap_mime_header_decode | Уровень выше | imap_num_msg


imap_num_msg

(PHP 3, PHP 4, PHP 5)

imap_num_msg -- Gives the number of messages in the current mailbox

Description

int imap_num_msg ( resource imap_stream )

Return the number of messages in the current mailbox.

See also: imap_num_recent() and imap_status().

Пред. | Начало | След.
imap_msgno | Уровень выше | imap_num_recent


imap_num_recent

(PHP 3, PHP 4, PHP 5)

imap_num_recent -- Gives the number of recent messages in current mailbox

Description

int imap_num_recent ( resource imap_stream )

Returns the number of recent messages in the current mailbox.

See also: imap_num_msg() and imap_status().

Пред. | Начало | След.
imap_num_msg | Уровень выше | imap_open


imap_open

(PHP 3, PHP 4, PHP 5)

imap_open -- Open an IMAP stream to a mailbox

Description

resource imap_open ( string mailbox, string username, string password [, int options] )

Returns an IMAP stream on success and FALSE on error. This function can also be used to open streams to POP3 and NNTP servers, but some functions and features are only available on IMAP servers.

A mailbox name consists of a server part and a mailbox path on this server. The special name INBOX stands for the current users personal mailbox. The server part, which is enclosed in '{' and '}', consists of the servers name or ip address, an optional port (prefixed by ':'), and an optional protocol specification (prefixed by '/'). The server part is mandatory in all mailbox parameters. Mailbox names that contain international characters besides those in the printable ASCII space have to be encoded with imap_utf7_encode().

All names which start with { are remote names, and are in the form "{" remote_system_name [":" port] [flags] "}" [mailbox_name] where:

  • remote_system_name - Internet domain name or bracketed IP address of server.

  • port - optional TCP port number, default is the default port for that service

  • flags - optional flags, see following table.

  • mailbox_name - remote mailbox name, default is INBOX

Таблица 1. Optional flags for names

Flag | Description
/service=service | mailbox access service, default is "imap"
/user=user | remote user name for login on the server
/authuser=user | remote authentication user; if specified this is the user name whose password is used (e.g. administrator)
/anonymous | remote access as anonymous user
/debug | record protocol telemetry in application's debug log
/secure | do not transmit a plaintext password over the network
/imap, /imap2, /imap2bis, /imap4, /imap4rev1 | equivalent to /service=imap
/pop3 | equivalent to /service=pop3
/nntp | equivalent to /service=nntp
/norsh | do not use rsh or ssh to establish a preauthenticated IMAP session
/ssl | use the Secure Socket Layer to encrypt the session
/validate-cert | validate certificates from TLS/SSL server (this is the default behavior)
/novalidate-cert | do not validate certificates from TLS/SSL server, needed if server uses self-signed certificates
/tls | force use of start-TLS to encrypt the session, and reject connection to servers that do not support it
/notls | do not do start-TLS to encrypt the session, even with servers that support it
/readonly | request read-only mailbox open (IMAP only; ignored on NNTP, and an error with SMTP and POP3)

The options are a bit mask with one or more of the following:

  • OP_READONLY - Open mailbox read-only

  • OP_ANONYMOUS - Don't use or update a .newsrc for news (NNTP only)

  • OP_HALFOPEN - For IMAP and NNTP names, open a connection but don't open a mailbox.

  • CL_EXPUNGE - Expunge mailbox automatically upon mailbox close (see also imap_delete() and imap_expunge())

  • OP_DEBUG - Debug protocol negotiations

  • OP_SHORTCACHE - Short (elt-only) caching

  • OP_SILENT - Don't pass up events (internal use)

  • OP_PROTOTYPE - Return driver prototype

  • OP_EXPUNGE - Silently expunge recycle stream

  • OP_SECURE - Don't do non-secure authentication

Пример 1. Different use of imap_open()

<?php
// To connect to an IMAP server running on port 143 on the local machine,
// do the following:
$mbox = imap_open("{localhost:143}INBOX", "user_id", "password");

// To connect to a POP3 server on port 110 on the local server, use:
$mbox = imap_open ("{localhost:110/pop3}INBOX", "user_id", "password");

// To connect to an SSL IMAP or POP3 server, add /ssl after the protocol
// specification:
$mbox = imap_open ("{localhost:993/imap/ssl}INBOX", "user_id", "password");

// To connect to an SSL IMAP or POP3 server with a self-signed certificate,
// add /ssl/novalidate-cert after the protocol specification:
$mbox = imap_open ("{localhost:995/pop3/ssl/novalidate-cert}", "user_id", "password");

// To connect to an NNTP server on port 119 on the local server, use:
$nntp = imap_open ("{localhost:119/nntp}comp.test", "", "");
// To connect to a remote server replace "localhost" with the name or the
// IP address of the server you want to connect to.
?>

Пример 2. imap_open() example

<?php
$mbox = imap_open("{your.imap.host:143}", "username", "password");

echo "<h1>Mailboxes</h1>\n";
$folders = imap_listmailbox($mbox, "{your.imap.host:143}", "*");

if ($folders == false) {
    echo "Call failed<br />\n";
} else {
    foreach ($folders as $val) {
        echo $val . "<br />\n";
    }
}

echo "<h1>Headers in INBOX</h1>\n";
$headers = imap_headers($mbox);

if ($headers == false) {
    echo "Call failed<br />\n";
} else {
    foreach ($headers as $val) {
        echo $val . "<br />\n";
    }
}

imap_close($mbox);
?>

Пред. | Начало | След.
imap_num_recent | Уровень выше | imap_ping


imap_ping

(PHP 3, PHP 4, PHP 5)

imap_ping -- Check if the IMAP stream is still active

Description

bool imap_ping ( resource imap_stream )

Returns TRUE if the stream is still alive, FALSE otherwise.

imap_ping() pings the stream to see if it's still active. It may discover new mail; this is the preferred method for a periodic "new mail check" as well as a "keep alive" for servers which have inactivity timeout.

Пример 1. imap_ping() Example

<?php

$imap = imap_open("{your.imap.host}", "mailadmin", "password");

// after some sleeping
if (!imap_ping($imap)) {
    // do some stuff to reconnect
}

?>

Пред. | Начало | След.
imap_open | Уровень выше | imap_qprint


imap_qprint

(PHP 3, PHP 4, PHP 5)

imap_qprint -- Convert a quoted-printable string to an 8 bit string

Description

string imap_qprint ( string string )

Convert a quoted-printable string to an 8 bit string (according to RFC2045, section 6.7).

See also imap_8bit().

Пред. | Начало | След.
imap_ping | Уровень выше | imap_renamemailbox


imap_renamemailbox

(PHP 3, PHP 4, PHP 5)

imap_renamemailbox -- Rename an old mailbox to new mailbox

Description

bool imap_renamemailbox ( resource imap_stream, string old_mbox, string new_mbox )

This function renames on old mailbox to new mailbox (see imap_open() for the format of mbox names).

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also imap_createmailbox(),
imap_deletemailbox(), and
imap_open() for the format of
mbox.

Пред. | Начало | След.
imap_qprint | Уровень выше | imap_reopen


imap_reopen

(PHP 3, PHP 4, PHP 5)

imap_reopen -- Reopen IMAP stream to new mailbox

Description

bool imap_reopen ( resource imap_stream, string mailbox [, string options] )

This function reopens the specified stream to a new mailbox on an IMAP or NNTP server.

The options are a bit mask with one or more of the following:

  • OP_READONLY - Open mailbox read-only

  • OP_ANONYMOUS - Don't use or update a .newsrc for news (NNTP only)

  • OP_HALFOPEN - For IMAP and NNTP names, open a connection but don't open a mailbox.

  • CL_EXPUNGE - Expunge mailbox automatically upon mailbox close (see also imap_delete() and imap_expunge())

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
imap_renamemailbox | Уровень выше | imap_rfc822_parse_adrlist


imap_rfc822_parse_adrlist

(PHP 3 >= 3.0.2, PHP 4, PHP 5)

imap_rfc822_parse_adrlist -- Parses an address string

Description

array imap_rfc822_parse_adrlist ( string address, string default_host )

This function parses the address string as defined in RFC2822 and for each address, returns an array of objects. The objects properties are:

  • mailbox - the mailbox name (username)

  • host - the host name

  • personal - the personal name

  • adl - at domain source route

Пример 1. imap_rfc822_parse_adrlist() example

<?php

$address_string = "Joe Doe <doe@example.com>, postmaster@example.com, root";
$address_array  = imap_rfc822_parse_adrlist($address_string, "example.com");
if (!is_array($address_array) || count($address_array) < 1) {
    die("something is wrong\n");
}

foreach ($address_array as $val) {
  echo "mailbox : " . $val->mailbox . "<br />\n";
  echo "host    : " . $val->host . "<br />\n";
  echo "personal: " . $val->personal . "<br />\n";
  echo "adl     : " . $val->adl . "<br />\n";
}
?>

Пред. | Начало | След.
imap_reopen | Уровень выше | imap_rfc822_parse_headers


imap_rfc822_parse_headers

(PHP 4, PHP 5)

imap_rfc822_parse_headers -- Parse mail headers from a string

Description

object imap_rfc822_parse_headers ( string headers [, string defaulthost] )

This function returns an object of various header elements, similar to imap_header(), except without the flags and other elements that come from the IMAP server.

Пред. | Начало | След.
imap_rfc822_parse_adrlist | Уровень выше | imap_rfc822_write_address


imap_rfc822_write_address

(PHP 3 >= 3.0.2, PHP 4, PHP 5)

imap_rfc822_write_address -- Returns a properly formatted email address given the mailbox, host, and personal info

Description

string imap_rfc822_write_address ( string mailbox, string host, string personal )

Returns a properly formatted email address as defined in RFC2822 given the mailbox, host, and personal info.

Пример 1. imap_rfc822_write_address() example

<?php
echo imap_rfc822_write_address("hartmut", "cvs.php.net", "Hartmut Holzgraefe") . "\n";
?>

Пред. | Начало | След.
imap_rfc822_parse_headers | Уровень выше | imap_scanmailbox


imap_scanmailbox

(PHP 3, PHP 4, PHP 5)

imap_scanmailbox -- Alias of imap_listscan()

Описание

This function is an alias of: imap_listscan().

Пред. | Начало | След.
imap_rfc822_write_address | Уровень выше | imap_search


imap_search

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

imap_search -- This function returns an array of messages matching the given search criteria

Description

array imap_search ( resource imap_stream, string criteria [, int options [, string charset]] )

This function performs a search on the mailbox currently opened in the given imap stream. criteria is a string, delimited by spaces, in which the following keywords are allowed. Any multi-word arguments (e.g. FROM "joey smith") must be quoted.

  • ALL - return all messages matching the rest of the criteria

  • ANSWERED - match messages with the \\ANSWERED flag set

  • BCC "string" - match messages with "string" in the Bcc: field

  • BEFORE "date" - match messages with Date: before "date"

  • BODY "string" - match messages with "string" in the body of the message

  • CC "string" - match messages with "string" in the Cc: field

  • DELETED - match deleted messages

  • FLAGGED - match messages with the \\FLAGGED (sometimes referred to as Important or Urgent) flag set

  • FROM "string" - match messages with "string" in the From: field

  • KEYWORD "string" - match messages with "string" as a keyword

  • NEW - match new messages

  • OLD - match old messages

  • ON "date" - match messages with Date: matching "date"

  • RECENT - match messages with the \\RECENT flag set

  • SEEN - match messages that have been read (the \\SEEN flag is set)

  • SINCE "date" - match messages with Date: after "date"

  • SUBJECT "string" - match messages with "string" in the Subject:

  • TEXT "string" - match messages with text "string"

  • TO "string" - match messages with "string" in the To:

  • UNANSWERED - match messages that have not been answered

  • UNDELETED - match messages that are not deleted

  • UNFLAGGED - match messages that are not flagged

  • UNKEYWORD "string" - match messages that do not have the keyword "string"

  • UNSEEN - match messages which have not been read yet

For example, to match all unanswered messages sent by Mom, you'd use: "UNANSWERED FROM mom". Searches appear to be case insensitive. This list of criteria is from a reading of the UW c-client source code and may be incomplete or inaccurate (see also RFC2060, section 6.4.4).

Valid values for flags are SE_UID, which causes the returned array to contain UIDs instead of messages sequence numbers.

Parameter charset was added in PHP 4.3.3.

Пред. | Начало | След.
imap_scanmailbox | Уровень выше | imap_set_quota


imap_set_quota

(PHP 4 >= 4.0.5, PHP 5)

imap_set_quota -- Sets a quota for a given mailbox

Description

bool imap_set_quota ( resource imap_stream, string quota_root, int quota_limit )

Sets an upper limit quota on a per mailbox basis. This function requires the imap_stream to have been opened as the mail administrator account. It will not work if opened as any other user.

This function is currently only available to users of the c-client2000 or greater library.

imap_stream is the stream pointer returned from a imap_open() call. This stream must be opened as the mail administrator, other wise this function will fail. quota_root is the mailbox to have a quota set. This should follow the IMAP standard format for a mailbox, 'user.name'. quota_limit is the maximum size (in KB) for the quota_root.

Returns TRUE on success and FALSE on error.

Пример 1. imap_set_quota() example

<?php
$mbox = imap_open("{your.imap.host:143}", "mailadmin", "password");

if (!imap_set_quota($mbox, "user.kalowsky", 3000)) {
    echo "Error in setting quota\n";
    return;
}

imap_close($mbox);
?>

See also imap_open() and imap_get_quota().

Пред. | Начало | След.
imap_search | Уровень выше | imap_setacl


imap_setacl

(PHP 4 >= 4.1.0, PHP 5)

imap_setacl -- Sets the ACL for a giving mailbox

Description

bool imap_setacl ( resource stream_id, string mailbox, string id, string rights )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

This function is currently only available to users of the c-client2000 or greater library.

See also imap_getacl().

Пред. | Начало | След.
imap_set_quota | Уровень выше | imap_setflag_full


imap_setflag_full

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

imap_setflag_full -- Sets flags on messages

Description

bool imap_setflag_full ( resource stream, string sequence, string flag [, string options] )

This function causes a store to add the specified flag to the flags set for the messages in the specified sequence.

The flags which you can set are "\\Seen", "\\Answered", "\\Flagged", "\\Deleted", and "\\Draft" (as defined by RFC2060).

options are a bit mask and may contain the single option:

  • ST_UID - The sequence argument contains UIDs instead of sequence numbers

Пример 1. imap_setflag_full() example

<?php
$mbox = imap_open("{your.imap.host:143}", "username", "password")
     or die("can't connect: " . imap_last_error());

$status = imap_setflag_full($mbox, "2,5", "\\Seen \\Flagged");

echo gettype($status) . "\n";
echo $status . "\n";

imap_close($mbox);
?>

See also: imap_clearflag_full().

Пред. | Начало | След.
imap_setacl | Уровень выше | imap_sort


imap_sort

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

imap_sort -- Sort an array of message headers

Description

array imap_sort ( resource stream, int criteria, int reverse [, int options [, string search_criteria [, string charset]]] )

Returns an array of message numbers sorted by the given parameters.

Reverse is 1 for reverse-sorting.

Criteria can be one (and only one) of the following:

  • SORTDATE - message Date

  • SORTARRIVAL - arrival date

  • SORTFROM - mailbox in first From address

  • SORTSUBJECT - message subject

  • SORTTO - mailbox in first To address

  • SORTCC - mailbox in first cc address

  • SORTSIZE - size of message in octets

The flags are a bitmask of one or more of the following:

  • SE_UID - Return UIDs instead of sequence numbers

  • SE_NOPREFETCH - Don't prefetch searched messages

Parameter charset was added in PHP 4.3.3.

Пред. | Начало | След.
imap_setflag_full | Уровень выше | imap_status


imap_status

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

imap_status -- This function returns status information on a mailbox other than the current one

Description

object imap_status ( resource imap_stream, string mailbox, int options )

This function returns an object containing status information. Valid flags are:

  • SA_MESSAGES - set status->messages to the number of messages in the mailbox

  • SA_RECENT - set status->recent to the number of recent messages in the mailbox

  • SA_UNSEEN - set status->unseen to the number of unseen (new) messages in the mailbox

  • SA_UIDNEXT - set status->uidnext to the next uid to be used in the mailbox

  • SA_UIDVALIDITY - set status->uidvalidity to a constant that changes when uids for the mailbox may no longer be valid

  • SA_ALL - set all of the above

status->flags is also set, which contains a bitmask which can be checked against any of the above constants.

Пример 1. imap_status() example

<?php
$mbox = imap_open("{your.imap.host}", "username", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$status = imap_status($mbox, "{your.imap.host}INBOX", SA_ALL);
if ($status) {
  echo "Messages:   " . $status->messages    . "<br />\n";
  echo "Recent:     " . $status->recent      . "<br />\n";
  echo "Unseen:     " . $status->unseen      . "<br />\n";
  echo "UIDnext:    " . $status->uidnext     . "<br />\n";
  echo "UIDvalidity:" . $status->uidvalidity . "<br />\n";
} else {
  echo "imap_status failed: " . imap_last_error() . "\n";
}

imap_close($mbox);
?>

Пред. | Начало | След.
imap_sort | Уровень выше | imap_subscribe


imap_subscribe

(PHP 3, PHP 4, PHP 5)

imap_subscribe -- Subscribe to a mailbox

Description

bool imap_subscribe ( resource imap_stream, string mbox )

Subscribe to a new mailbox.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also: imap_unsubscribe().

Пред. | Начало | След.
imap_status | Уровень выше | imap_thread


imap_thread

(PHP 4 >= 4.1.0, PHP 5)

imap_thread -- Returns a tree of threaded message

Description

array imap_thread ( resource stream_id [, int options] )

imap_thread() returns an associative array containing a tree of messages threaded by REFERENCES, or FALSE on error.

Every message in the current mailbox will be represented by three entries in the resulting array:

  • $thread["XX.num"] - current message number

  • $thread["XX.next"]

  • $thread["XX.branch"]

Пример 1. imap_thread() Example

<?php

// Here we're outputting the threads of a newsgroup, in HTML

$nntp = imap_open('{news.example.com:119/nntp}some.newsgroup', '', '');
$threads = imap_thread($nntp);

foreach ($threads as $key => $val) {
  $tree = explode('.', $key);
  if ($tree[1] == 'num') {
    $header = imap_headerinfo($nntp, $val);
    echo "<ul>\n\t<li>" . $header->fromaddress . "\n";
  } elseif ($tree[1] == 'branch') {
    echo "\t</li>\n</ul>\n";
  }
}

imap_close($nntp);

?>

Пред. | Начало | След.
imap_subscribe | Уровень выше | imap_timeout


imap_timeout

(PHP 4 >= 4.3.3, PHP 5)

imap_timeout -- Set or fetch imap timeout

Description

mixed imap_timeout ( int timeout_type [, int timeout] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
imap_thread | Уровень выше | imap_uid


imap_uid

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

imap_uid -- This function returns the UID for the given message sequence number

Description

int imap_uid ( resource imap_stream, int msgno )

This function returns the UID for the given message sequence number. An UID is a unique identifier that will not change over time while a message sequence number may change whenever the content of the mailbox changes. This function is the inverse of imap_msgno().

Замечание: This is not supported by POP3 mailboxes.

See also: imap_msgno().

Пред. | Начало | След.
imap_timeout | Уровень выше | imap_undelete


imap_undelete

(PHP 3, PHP 4, PHP 5)

imap_undelete -- Unmark the message which is marked deleted

Description

bool imap_undelete ( resource imap_stream, int msg_number [, int flags] )

This function removes the deletion flag for a specified message, which is set by imap_delete() or imap_mail_move().

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also: imap_delete(), and imap_mail_move().

Пред. | Начало | След.
imap_uid | Уровень выше | imap_unsubscribe


imap_unsubscribe

(PHP 3, PHP 4, PHP 5)

imap_unsubscribe -- Unsubscribe from a mailbox

Description

bool imap_unsubscribe ( string imap_stream, string mbox )

Unsubscribe from a specified mailbox.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also: imap_subscribe().

Пред. | Начало | След.
imap_undelete | Уровень выше | imap_utf7_decode


imap_utf7_decode

(PHP 3 >= 3.0.15, PHP 4, PHP 5)

imap_utf7_decode -- Decodes a modified UTF-7 encoded string

Description

string imap_utf7_decode ( string text )

Decodes modified UTF-7 text into ISO-8859-1 string.

Returns a string that is encoded in ISO-8859-1 and consists of the same sequence of characters in text, or FALSE if text contains invalid modified UTF-7 sequence or text contains a character that is not part of ISO-8859-1 character set.

This function is needed to decode mailbox names that contain certain characters which are not in range of printable ASCII characters.

The modified UTF-7 encoding is defined in RFC 2060, section 5.1.3 (original UTF-7 was defined in RFC1642).

See also: imap_utf7_encode().

Пред. | Начало | След.
imap_unsubscribe | Уровень выше | imap_utf7_encode


imap_utf7_encode

(PHP 3 >= 3.0.15, PHP 4, PHP 5)

imap_utf7_encode -- Converts ISO-8859-1 string to modified UTF-7 text

Description

string imap_utf7_encode ( string data )

Converts data to modified UTF-7 text. Note that data is expected to be encoded in ISO-8859-1.

This is needed to encode mailbox names that contain certain characters which are not in range of printable ASCII characters.

The modified UTF-7 encoding is defined in RFC 2060, section 5.1.3 (original UTF-7 was defined in RFC1642).

See also: imap_utf7_decode().

Пред. | Начало | След.
imap_utf7_decode | Уровень выше | imap_utf8


imap_utf8

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

imap_utf8 -- Converts MIME-encoded text to UTF-8

Description

string imap_utf8 ( string mime_encoded_text )

Converts the given mime_encoded_text to UTF-8. MIME encoding method and the UTF-8 specification are described in RFC2047 and RFC2044 respectively.

Пред. | Начало | След.
imap_utf7_encode | Уровень выше | Informix Functions


PHP Options&Information

Руководство по PHP
Пред. След.

CXII. PHP Options&Information

Введение

This functions enable you to get a lot of information about PHP itself, e.g. runtime configuration, loaded extensions, version and much more. You'll also find functions to set options for your running PHP. The probably best known function of PHP - phpinfo() - can be found here.

Требования

Эти функции всегда доступны.

Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. PHP Options/Inf Configuration Options

Name | Default | Changeable | Changelog
assert.active | "1" | PHP_INI_ALL |
assert.bail | "0" | PHP_INI_ALL |
assert.warning | "1" | PHP_INI_ALL |
assert.callback | NULL | PHP_INI_ALL |
assert.quiet_eval | "0" | PHP_INI_ALL |
enable_dl | "1" | PHP_INI_SYSTEM |
max_execution_time | "30" | PHP_INI_ALL |
max_input_time | "-1" | PHP_INI_PERDIR | Available since PHP 4.3.0.
magic_quotes_gpc | "1" | PHP_INI_PERDIR | PHP_INI_ALL in PHP <= 4.2.3.
magic_quotes_runtime | "0" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

assert.active boolean

Enable assert() evaluation.

assert.bail boolean

Terminate script execution on failed assertions.

assert.warning boolean

Issue a PHP warning for each failed assertion.

assert.callback string

user function to call on failed assertions

assert.quiet_eval boolean

Use the current setting of error_reporting() during assertion expression evaluation. If enabled, no errors are shown (implicit error_reporting(0)) while evaluation. If disabled, errors are shown according to the settings of error_reporting()

enable_dl boolean

This directive is really only useful in the Apache module version of PHP. You can turn dynamic loading of PHP extensions with dl() on and off per virtual server or per directory.

The main reason for turning dynamic loading off is security. With dynamic loading, it's possible to ignore all open_basedir restrictions. The default is to allow dynamic loading, except when using безопасный режим. In безопасный режим, it's always impossible to use dl().

max_execution_time integer

This sets the maximum time in seconds a script is allowed to run before it is terminated by the parser. This helps prevent poorly written scripts from tying up the server. The default setting is 30.

The maximum execution time is not affected by system calls, stream operations etc. Please see the set_time_limit() function for more details.

You can not change this setting with ini_set() when running in безопасный режим. The only workaround is to turn off safe mode or by changing the time limit in the php.ini.

Your webserver can have other timeouts. E.g. Apache has Timeout directive, IIS has CGI timeout function, both default to 300 seconds. See the webserver documentation for meaning of it.

max_input_time integer

This sets the maximum time in seconds a script is allowed to receive input data, like POST, GET and file uploads.

magic_quotes_gpc boolean

Sets the magic_quotes state for GPC (Get/Post/Cookie) operations. When magic_quotes are on, all ' (single-quote), " (double quote), \ (backslash) and NUL's are escaped with a backslash automatically.

Замечание: If the magic_quotes_sybase directive is also ON it will completely override magic_quotes_gpc. Having both directives enabled means only single quotes are escaped as ''. Double quotes, backslashes and NUL's will remain untouched and unescaped.

See also get_magic_quotes_gpc()

magic_quotes_runtime boolean

If magic_quotes_runtime is enabled, most functions that return data from any sort of external source including databases and text files will have quotes escaped with a backslash. If magic_quotes_sybase is also on, a single-quote is escaped with a single-quote instead of a backslash.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы всегда доступны как часть ядра PHP.

Таблица 2. Pre-defined phpcredits() constants

Constant | Value | Description
CREDITS_GROUP | 1 | A list of the core developers
CREDITS_GENERAL | 2 | General credits: Language design and concept, PHP authors and SAPI module.
CREDITS_SAPI | 4 | A list of the server API modules for PHP, and their authors.
CREDITS_MODULES | 8 | A list of the extension modules for PHP, and their authors.
CREDITS_DOCS | 16 | The credits for the documentation team.
CREDITS_FULLPAGE | 32 | Usually used in combination with the other flags. Indicates that a complete stand-alone HTML page needs to be printed including the information indicated by the other flags.
CREDITS_QA | 64 | The credits for the quality assurance team.
CREDITS_ALL | -1 | All the credits, equivalent to using: CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_QA CREDITS_FULLPAGE. It generates a complete stand-alone HTML page with the appropriate tags. This is the default value.

Таблица 3. phpinfo() constants

Constant | Value | Description
INFO_GENERAL | 1 | The configuration line, php.ini location, build date, Web Server, System and more.
INFO_CREDITS | 2 | PHP Credits. See also phpcredits().
INFO_CONFIGURATION | 4 | Current Local and Master values for PHP directives. See also ini_get().
INFO_MODULES | 8 | Loaded modules and their respective settings.
INFO_ENVIRONMENT | 16 | Environment Variable information that's also available in $_ENV.
INFO_VARIABLES | 32 | Shows all predefined variables from EGPCS (Environment, GET, POST, Cookie, Server).
INFO_LICENSE | 64 | PHP License information. See also the license faq.
INFO_ALL | -1 | Shows all of the above. This is the default value.

ASSERT_ACTIVE (integer)

ASSERT_CALLBACK (integer)

ASSERT_BAIL (integer)

ASSERT_WARNING (integer)

ASSERT_QUIET_EVAL (integer)

Содержание
assert_options -- Set/get the various assert flags
assert -- Checks if assertion is FALSE
dl -- Loads a PHP extension at runtime
extension_loaded -- Find out whether an extension is loaded
get_cfg_var -- Gets the value of a PHP configuration option
get_current_user -- Gets the name of the owner of the current PHP script
get_defined_constants -- Returns an associative array with the names of all the constants and their values
get_extension_funcs -- Returns an array with the names of the functions of a module
get_include_path -- Gets the current include_path configuration option
get_included_files -- Returns an array with the names of included or required files
get_loaded_extensions -- Returns an array with the names of all modules compiled and loaded
get_magic_quotes_gpc -- Gets the current configuration setting of magic quotes gpc
get_magic_quotes_runtime -- Gets the current active configuration setting of magic_quotes_runtime
get_required_files -- Alias of get_included_files()
getenv -- Gets the value of an environment variable
getlastmod -- Gets time of last page modification
getmygid -- Get PHP script owner's GID
getmyinode -- Gets the inode of the current script
getmypid -- Gets PHP's process ID
getmyuid -- Gets PHP script owner's UID
getopt -- Gets options from the command line argument list
getrusage -- Gets the current resource usages
ini_alter -- Alias of ini_set()
ini_get_all -- Gets all configuration options
ini_get -- Gets the value of a configuration option
ini_restore -- Restores the value of a configuration option
ini_set -- Sets the value of a configuration option
main -- Dummy for main()
memory_get_usage -- Returns the amount of memory allocated to PHP
php_ini_scanned_files -- Return a list of .ini files parsed from the additional ini dir
php_logo_guid -- Gets the logo guid
php_sapi_name -- Returns the type of interface between web server and PHP
php_uname -- Returns information about the operating system PHP is running on
phpcredits -- Prints out the credits for PHP
phpinfo -- Outputs lots of PHP information
phpversion -- Gets the current PHP version
putenv -- Sets the value of an environment variable
restore_include_path -- Restores the value of the include_path configuration option
set_include_path -- Sets the include_path configuration option
set_magic_quotes_runtime -- Sets the current active configuration setting of magic_quotes_runtime
set_time_limit -- Limits the maximum execution time
version_compare -- Compares two "PHP-standardized" version number strings
zend_logo_guid -- Gets the Zend guid
zend_version -- Gets the version of the current Zend engine

Пред. | Начало | След.
PDOStatement::setFetchMode | Уровень выше | assert_options


assert_options

(PHP 4, PHP 5)

assert_options -- Set/get the various assert flags

Description

mixed assert_options ( int what [, mixed value] )

Using assert_options() you may set the various assert() control options or just query their current settings.

Таблица 1. Assert Options

option | ini-parameter | default | description
ASSERT_ACTIVE | assert.active | 1 | enable assert() evaluation
ASSERT_WARNING | assert.warning | 1 | issue a PHP warning for each failed assertion
ASSERT_BAIL | assert.bail | 0 | terminate execution on failed assertions
ASSERT_QUIET_EVAL | assert.quiet_eval | 0 | disable error_reporting during assertion expression evaluation
ASSERT_CALLBACK | assert.callback | (NULL) | user function to call on failed assertions

assert_options() will return the original setting of any option or FALSE on errors.

Пред. | Начало | След.
PHP Options&Information | Уровень выше | assert


assert

(PHP 4, PHP 5)

assert -- Checks if assertion is FALSE

Description

bool assert ( mixed assertion )

assert() will check the given assertion and take appropriate action if its result is FALSE.

If the assertion is given as a string it will be evaluated as PHP code by assert(). The advantages of a string assertion are less overhead when assertion checking is off and messages containing the assertion expression when an assertion fails. This means that if you pass a boolean condition as assertion this condition will not show up as parameter to the assertion function which you may have defined with the assert_options() function, the condition is converted to a string before calling that handler function, and the boolean FALSE is converted as the empty string.

Assertions should be used as a debugging feature only. You may use them for sanity-checks that test for conditions that should always be TRUE and that indicate some programming errors if not or to check for the presence of certain features like extension functions or certain system limits and features.

Assertions should not be used for normal runtime operations like input parameter checks. As a rule of thumb your code should always be able to work correctly if assertion checking is not activated.

The behavior of assert() may be configured by assert_options() or by .ini-settings described in that functions manual page.

The assert_options() function and/or ASSERT_CALLBACK configuration directive allow a callback function to be set to handle failed assertions.

assert() callbacks are particularly useful for building automated test suites because they allow you to easily capture the code passed to the assertion, along with information on where the assertion was made. While this information can be captured via other methods, using assertions makes it much faster and easier!

The callback function should accept three arguments. The first argument will contain the file the assertion failed in. The second argument will contain the line the assertion failed on and the third argument will contain the expression that failed (if any - literal values such as 1 or "two" will not be passed via this argument)

Пример 1. Handle a failed assertion with a custom handler

<?php
// Active assert and make it quiet
assert_options(ASSERT_ACTIVE, 1);
assert_options(ASSERT_WARNING, 0);
assert_options(ASSERT_QUIET_EVAL, 1);

// Create a handler function
function my_assert_handler($file, $line, $code)
{
    echo "<hr>Assertion Failed:
        File '$file'<br />
        Line '$line'<br />
        Code '$code'<br /><hr />";
}

// Set up the callback
assert_options(ASSERT_CALLBACK, 'my_assert_handler');

// Make an assertion that should fail
assert('mysql_query("")');
?>

Пред. | Начало | След.
assert_options | Уровень выше | dl


dl

(PHP 3, PHP 4, PHP 5)

dl -- Loads a PHP extension at runtime

Description

int dl ( string library )

Loads the PHP extension given by the parameter library. The library parameter is only the filename of the extension to load which also depends on your platform. For example, the sockets extension (if compiled as a shared module, not the default!) would be called sockets.so on Unix platforms whereas it is called php_sockets.dll on the Windows platform.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. If the functionality of loading modules is not available (see Note) or has been disabled (either by turning it off enable_dl or by enabling безопасный режим in php.ini) an E_ERROR is emitted and execution is stopped. If dl() fails because the specified library couldn't be loaded, in addition to FALSE an E_WARNING message is emitted.

Use extension_loaded() to test whether a given extension is already available or not. This works on both built-in extensions and dynamically loaded ones (either through php.ini or dl()).

The dl() function is deprecated as of PHP 5. Use Extension Loading Directives method instead.

Пример 1. dl() examples

<?php
// Example loading an extension based on OS
if (!extension_loaded('sqlite')) {
    if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
        dl('php_sqlite.dll');
    } else {
        dl('sqlite.so');
    }
}

// Or, the PHP_SHLIB_SUFFIX constant is available as of PHP 4.3.0
if (!extension_loaded('sqlite')) {
    $prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
    dl($prefix . 'sqlite.' . PHP_SHLIB_SUFFIX);
}
?>

The directory where the extension is loaded from depends on your platform:

Windows - If not explicitly set in the php.ini, the extension is loaded from c:\php4\extensions\ by default.

Unix - If not explicitly set in the php.ini, the default extension directory depends on

  • whether PHP has been built with --enable-debug or not

  • whether PHP has been built with (experimental) ZTS (Zend Thread Safety) support or not

  • the current internal ZEND_MODULE_API_NO (Zend internal module API number, which is basically the date on which a major module API change happened, e.g. 20010901)

Taking into account the above, the directory then defaults to <install-dir>/lib/php/extensions/ <debug-or-not>-<zts-or-not>-ZEND_MODULE_API_NO, e.g. /usr/local/php/lib/php/extensions/debug-non-zts-20010901 or /usr/local/php/lib/php/extensions/no-debug-zts-20010901.

Замечание: dl() is not supported in multithreaded Web servers. Use the extensions statement in your php.ini when operating under such an environment. However, the CGI and CLI build are not affected !

Замечание: dl() is case sensitive on Unix platforms.

Замечание: Эта функция недоступна в безопасном режиме.

See also Extension Loading Directives and extension_loaded().

Пред. | Начало | След.
assert | Уровень выше | extension_loaded


extension_loaded

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

extension_loaded -- Find out whether an extension is loaded

Description

bool extension_loaded ( string name )

Returns TRUE if the extension identified by name is loaded, FALSE otherwise.

Пример 1. extension_loaded() example

<?php
if (!extension_loaded('gd')) {
    if (!dl('gd.so')) {
        exit;
    }
}
?>

You can see the names of various extensions by using phpinfo() or if you're using the CGI or CLI version of PHP you can use the -m switch to list all available extensions:
$ php -m
[PHP Modules]
xml
tokenizer
standard
sockets
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

Замечание: extension_loaded() uses the internal extension name to test whether a certain extension is available or not. Most internal extension names are written in lower case but there may be extension available which also use uppercase letters. Be warned that this function compares case sensitive !

See also
get_loaded_extensions(),
get_extension_funcs(),
phpinfo(), and
dl().

Пред. | Начало | След.
dl | Уровень выше | get_cfg_var


get_cfg_var

(PHP 3, PHP 4, PHP 5)

get_cfg_var -- Gets the value of a PHP configuration option

Description

string get_cfg_var ( string varname )

Returns the current value of the PHP configuration variable specified by varname, or FALSE if an error occurs.

It will not return configuration information set when the PHP was compiled, or read from an Apache configuration file (using the php3_configuration_option directives).

To check whether the system is using a configuration file, try retrieving the value of the cfg_file_path configuration setting. If this is available, a configuration file is being used.

See also ini_get().

Пред. | Начало | След.
extension_loaded | Уровень выше | get_current_user


get_current_user

(PHP 3, PHP 4, PHP 5)

get_current_user -- Gets the name of the owner of the current PHP script

Description

string get_current_user ( void )

Returns the name of the owner of the current PHP script.

See also getmyuid(),
getmygid(), getmypid(),
getmyinode(), and
getlastmod().

Пред. | Начало | След.
get_cfg_var | Уровень выше | get_defined_constants


get_defined_constants

(PHP 4 >= 4.1.0, PHP 5)

get_defined_constants -- Returns an associative array with the names of all the constants and their values

Description

array get_defined_constants ( [mixed categorize] )

This function returns the names and values of all the constants currently defined. This includes those created by extensions as well as those created with the define() function.

For example the line below:

<?php
print_r(get_defined_constants());
?>

will print a list like:

Array
(
    [E_ERROR] => 1
    [E_WARNING] => 2
    [E_PARSE] => 4
    [E_NOTICE] => 8
    [E_CORE_ERROR] => 16
    [E_CORE_WARNING] => 32
    [E_COMPILE_ERROR] => 64
    [E_COMPILE_WARNING] => 128
    [E_USER_ERROR] => 256
    [E_USER_WARNING] => 512
    [E_USER_NOTICE] => 1024
    [E_ALL] => 2047
    [TRUE] => 1
)

As of PHP 5, an additional parameter, categorize, may be passed, causing this function to return a multi-dimensional array with categories in the keys of the first dimension and constants and their values in the second dimension.

<?php
define("MY_CONSTANT", 1);
print_r(get_defined_constants(true));
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [internal] => Array
        (
            [E_ERROR] => 1
            [E_WARNING] => 2
            [E_PARSE] => 4
            [E_NOTICE] => 8
            [E_CORE_ERROR] => 16
            [E_CORE_WARNING] => 32
            [E_COMPILE_ERROR] => 64
            [E_COMPILE_WARNING] => 128
            [E_USER_ERROR] => 256
            [E_USER_WARNING] => 512
            [E_USER_NOTICE] => 1024
            [E_ALL] => 2047
            [TRUE] => 1
        )

    [pcre] => Array
        (
            [PREG_PATTERN_ORDER] => 1
            [PREG_SET_ORDER] => 2
            [PREG_OFFSET_CAPTURE] => 256
            [PREG_SPLIT_NO_EMPTY] => 1
            [PREG_SPLIT_DELIM_CAPTURE] => 2
            [PREG_SPLIT_OFFSET_CAPTURE] => 4
            [PREG_GREP_INVERT] => 1
        )

    [user] => Array
        (
            [MY_CONSTANT] => 1
        )

)

Замечание: The value of the categorize parameter is irrelevant, only its presence is considered.

See also
defined(),
get_loaded_extensions(),
get_defined_functions(), and
get_defined_vars().

Пред. | Начало | След.
get_current_user | Уровень выше | get_extension_funcs


get_extension_funcs

(PHP 4, PHP 5)

get_extension_funcs -- Returns an array with the names of the functions of a module

Description

array get_extension_funcs ( string module_name )

This function returns the names of all the functions defined in the module indicated by module_name.

Замечание: The module_name parameter must be in lowercase.

For example the lines below

<?php
print_r(get_extension_funcs("xml"));
print_r(get_extension_funcs("gd"));
?>

will print a list of the functions in the modules xml and gd respectively.

See also: get_loaded_extensions()

Пред. | Начало | След.
get_defined_constants | Уровень выше | get_include_path


get_include_path

(PHP 4 >= 4.3.0, PHP 5)

get_include_path -- Gets the current include_path configuration option

Description

string get_include_path ( void )

Gets the current include_path configuration option value.

Пример 1. get_include_path() example

<?php
// Works as of PHP 4.3.0
echo get_include_path();

// Works in all PHP versions
echo ini_get('include_path');
?>

See also ini_get(),
restore_include_path(),
set_include_path(), and
include().

Пред. | Начало | След.
get_extension_funcs | Уровень выше | get_included_files


get_included_files

(PHP 4, PHP 5)

get_included_files -- Returns an array with the names of included or required files

Description

array get_included_files ( void )

Returns an array of the names of all files that have been
included using include(),
include_once(), require()
or require_once().

The script originally called is considered an "included file," so it will be listed together with the files referenced by include() and family.

Files that are included or required multiple times only show up once in the returned array.

Замечание: Files included using the auto_prepend_file configuration directive are not included in the returned array.

Пример 1. get_included_files() example (abc.php)

<?php

include 'test1.php';
include_once 'test2.php';
require 'test3.php';
require_once 'test4.php';

$included_files = get_included_files();

foreach ($included_files as $filename) {
    echo "$filename\n";
}

?>

will generate the following output:

abc.php
test1.php
test2.php
test3.php
test4.php

Замечание: In PHP 4.0.1pl2 and previous versions get_included_files() assumed that the required files ended in the extension .php; other extensions would not be returned. The array returned by get_included_files() was an associative array and only listed files included by include() and include_once().

See also
include(),
include_once(),
require(),
require_once(), and
get_required_files().

Пред. | Начало | След.
get_include_path | Уровень выше | get_loaded_extensions


get_loaded_extensions

(PHP 4, PHP 5)

get_loaded_extensions -- Returns an array with the names of all modules compiled and loaded

Description

array get_loaded_extensions ( void )

This function returns the names of all the modules compiled and loaded in the PHP interpreter.

For example the line below

<?php
print_r(get_loaded_extensions());
?>

will print a list like:

Array
(
   [0] => xml
   [1] => wddx
   [2] => standard
   [3] => session
   [4] => posix
   [5] => pgsql
   [6] => pcre
   [7] => gd
   [8] => ftp
   [9] => db
   [10] => calendar
   [11] => bcmath
)

See also
get_extension_funcs(),
extension_loaded(),
dl(), and
phpinfo().

Пред. | Начало | След.
get_included_files | Уровень выше | get_magic_quotes_gpc


get_magic_quotes_gpc

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

get_magic_quotes_gpc -- Gets the current configuration setting of magic quotes gpc

Description

int get_magic_quotes_gpc ( void )

Returns the current configuration setting of magic_quotes_gpc (0 for off, 1 for on).

Замечание: If the directive magic_quotes_sybase is ON it will completely override magic_quotes_gpc. So even when get_magic_quotes_gpc() returns TRUE neither double quotes, backslashes or NUL's will be escaped. Only single quotes will be escaped. In this case they'll look like: ''

Keep in mind that the setting magic_quotes_gpc will not work at runtime.

Пример 1. get_magic_quotes_gpc() example

<?php
echo get_magic_quotes_gpc();         // 1
echo $_POST['lastname'];             // O\'reilly
echo addslashes($_POST['lastname']); // O\\\'reilly

if (!get_magic_quotes_gpc()) {
    $lastname = addslashes($_POST['lastname']);
} else {
    $lastname = $_POST['lastname'];
}

echo $lastname; // O\'reilly
$sql = "INSERT INTO lastnames (lastname) VALUES ('$lastname')";
?>

For more information about magic_quotes, see this security section.

See also addslashes(),
stripslashes(),
get_magic_quotes_runtime(), and
ini_get().

Пред. | Начало | След.
get_loaded_extensions | Уровень выше | get_magic_quotes_runtime


get_magic_quotes_runtime

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

get_magic_quotes_runtime -- Gets the current active configuration setting of magic_quotes_runtime

Description

int get_magic_quotes_runtime ( void )

Returns the current active configuration setting of magic_quotes_runtime (0 for off, 1 for on).

See also get_magic_quotes_gpc() and set_magic_quotes_runtime().

Пред. | Начало | След.
get_magic_quotes_gpc | Уровень выше | get_required_files


get_required_files

(PHP 4, PHP 5)

get_required_files -- Alias of get_included_files()

Описание

This function is an alias of: get_included_files().

Пред. | Начало | След.
get_magic_quotes_runtime | Уровень выше | getenv


getenv

(PHP 3, PHP 4, PHP 5)

getenv -- Gets the value of an environment variable

Description

string getenv ( string varname )

Returns the value of the environment variable varname, or FALSE on an error.

<?php
// Example use of getenv()
$ip = getenv('REMOTE_ADDR');

// Or simply use a Superglobal ($_SERVER or $_ENV)
$ip = $_SERVER['REMOTE_ADDR'];
?>

You can see a list of all the environmental variables by using phpinfo(). You can find out what many of them mean by taking a look at the CGI specification, specifically the page on environmental variables.

See also putenv(), apache_getenv() и Superglobals.

Пред. | Начало | След.
get_required_files | Уровень выше | getlastmod


getlastmod

(PHP 3, PHP 4, PHP 5)

getlastmod -- Gets time of last page modification

Description

int getlastmod ( void )

Returns the time of the last modification of the current page. The value returned is a Unix timestamp, suitable for feeding to date(). Returns FALSE on error.

Пример 1. getlastmod() example

<?php
// outputs e.g. 'Last modified: March 04 1998 20:43:59.'
echo "Last modified: " . date ("F d Y H:i:s.", getlastmod());
?>

Замечание: If you're interested in getting the last modification time of a different file, consider using filemtime().

See also
date(),
getmyuid(),
getmygid(),
get_current_user(),
getmyinode(),
getmypid(), and
filemtime().

Пред. | Начало | След.
getenv | Уровень выше | getmygid


getmygid

(PHP 4 >= 4.1.0, PHP 5)

getmygid -- Get PHP script owner's GID

Description

int getmygid ( void )

Returns the group ID of the current script, or FALSE on error.

See also getmyuid(),
getmypid(),
get_current_user(),
getmyinode(), and
getlastmod().

Пред. | Начало | След.
getlastmod | Уровень выше | getmyinode


getmyinode

(PHP 3, PHP 4, PHP 5)

getmyinode -- Gets the inode of the current script

Description

int getmyinode ( void )

Returns the current script's inode, or FALSE on error.

See also
getmygid(),
getmyuid(),
get_current_user(),
getmypid(), and
getlastmod().

Замечание: Для Windows-платформ эта функция не реализована.

Пред. | Начало | След.
getmygid | Уровень выше | getmypid


getmypid

(PHP 3, PHP 4, PHP 5)

getmypid -- Gets PHP's process ID

Description

int getmypid ( void )

Returns the current PHP process ID, or FALSE on error.

Внимание

Process IDs are not unique, thus they are a weak entropy source. We recommend against relying on pids in security-dependent contexts.

See also
getmygid(),
getmyuid(),
get_current_user(),
getmyinode(), and
getlastmod().

Пред. | Начало | След.
getmyinode | Уровень выше | getmyuid


getmyuid

(PHP 3, PHP 4, PHP 5)

getmyuid -- Gets PHP script owner's UID

Description

int getmyuid ( void )

Returns the user ID of the current script, or FALSE on error.

See also getmygid(),
getmypid(),
get_current_user(),
getmyinode(), and
getlastmod().

Пред. | Начало | След.
getmypid | Уровень выше | getopt


getopt

(PHP 4 >= 4.3.0, PHP 5)

getopt -- Gets options from the command line argument list

Description

array getopt ( string options [, array longopts] )

Returns an associative array of option / argument pairs based on the options format specified in options, or FALSE on an error.

On platforms that have the C function getopt_long, long options can be specified with the parameter longopts (as of PHP 4.3.0).

<?php
// parse the command line ($GLOBALS['argv'])
$options = getopt("f:hp:");
?>

The options parameter may contain the following elements: individual characters, and characters followed by a colon to indicate an option argument is to follow. For example, an option string x recognizes an option -x, and an option string x: recognizes an option and argument -x argument. It does not matter if an argument has leading white space.

This function will return an array of option / argument pairs. If an option does not have an argument, the value will be set to FALSE.

Замечание: Для Windows-платформ эта функция не реализована.

Пред. | Начало | След.
getmyuid | Уровень выше | getrusage


getrusage

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

getrusage -- Gets the current resource usages

Description

array getrusage ( [int who] )

This is an interface to getrusage(2). It returns an associative array containing the data returned from the system call. If who is 1, getrusage will be called with RUSAGE_CHILDREN.

All entries are accessible by using their documented field names.

Пример 1. getrusage() example

<?php
$dat = getrusage();
echo $dat["ru_nswap"];         // number of swaps
echo $dat["ru_majflt"];        // number of page faults
echo $dat["ru_utime.tv_sec"];  // user time used (seconds)
echo $dat["ru_utime.tv_usec"]; // user time used (microseconds)
?>
See your system's man page on getrusage(2) for more details.

Замечание: Для Windows-платформ эта функция не реализована.

Пред. | Начало | След.
getopt | Уровень выше | ini_alter


ini_alter

(PHP 4, PHP 5)

ini_alter -- Alias of ini_set()

Описание

This function is an alias of: ini_set().

Пред. | Начало | След.
getrusage | Уровень выше | ini_get_all


ini_get_all

(PHP 4 >= 4.2.0, PHP 5)

ini_get_all -- Gets all configuration options

Description

array ini_get_all ( [string extension] )

Returns all the registered configuration options as an associative array. If the optional extension parameter is set, returns only options specific for that extension.

The returned array uses the directive name as the array key, with elements of that array being global_value (set in php.ini), local_value (perhaps set with ini_set() or .htaccess), and access (the access level). See the manual section on configuration changes for information on what access levels mean.

Замечание: It's possible for a directive to have multiple access levels, which is why access shows the appropriate bitmask values.

Пример 1. A ini_get_all() example

<?php
$inis = ini_get_all();

print_r($inis);

?>

Partial output may look like:

Array
(
    [allow_call_time_pass_reference] => Array
    (
        [global_value] => 1
        [local_value] => 1
        [access] => 6
    )
    [allow_url_fopen] => Array
    (
        [global_value] => 1
        [local_value] => 1
        [access] => 7
    )

    ...

)

See also: ini_get(),
ini_restore(),
ini_set(),
get_loaded_extensions(), and
phpinfo().

Пред. | Начало | След.
ini_alter | Уровень выше | ini_get


ini_get

(PHP 4, PHP 5)

ini_get -- Gets the value of a configuration option

Description

string ini_get ( string varname )

Returns the value of the configuration option on success. Failure, such as querying for a non-existent value, will return an empty string.

When querying boolean values: A boolean ini value of off will be returned as an empty string or "0" while a boolean ini value of on will be returned as "1".

When querying memory size values: Many ini memory size values, such as upload_max_filesize, are stored in the php.ini file in shorthand notation. ini_get() will return the exact string stored in the php.ini file and NOT its integer equivalent. Attempting normal arithmetic functions on these values will not have otherwise expected results. The example below shows one way to convert shorthand notation into bytes, much like how the PHP source does it.

Пример 1. A few ini_get() examples

<?php
/*
Our php.ini contains the following settings:

display_errors = On
register_globals = Off
post_max_size = 8M
*/

echo 'display_errors = ' . ini_get('display_errors') . "\n";
echo 'register_globals = ' . ini_get('register_globals') . "\n";
echo 'post_max_size = ' . ini_get('post_max_size') . "\n";
echo 'post_max_size+1 = ' . (ini_get('post_max_size')+1) . "\n";
echo 'post_max_size in bytes = ' . return_bytes(ini_get('post_max_size'));

function return_bytes($val) {
    $val = trim($val);
    $last = strtolower($val{strlen($val)-1});
    switch($last) {
        // The 'G' modifier is available since PHP 5.1.0
        case 'g':
            $val *= 1024;
        case 'm':
            $val *= 1024;
        case 'k':
            $val *= 1024;
    }

    return $val;
}

?>

This script will produce:

display_errors = 1
register_globals = 0
post_max_size = 8M
post_max_size+1 = 9
post_max_size in bytes = 8388608

See also
get_cfg_var(),
ini_get_all(),
ini_restore(), and
ini_set().

Пред. | Начало | След.
ini_get_all | Уровень выше | ini_restore


ini_restore

(PHP 4, PHP 5)

ini_restore -- Restores the value of a configuration option

Description

void ini_restore ( string varname )

Restores a given configuration option to its original value.

See also
ini_get(),
ini_get_all(), and
ini_set().

Пред. | Начало | След.
ini_get | Уровень выше | ini_set


ini_set

(PHP 4, PHP 5)

ini_set -- Sets the value of a configuration option

Description

string ini_set ( string varname, string newvalue )

Sets the value of the given configuration option. Returns the old value on success, FALSE on failure. The configuration option will keep this new value during the script's execution, and will be restored at the script's ending.

Not all the available options can be changed using ini_set(). There is a list of all available options in the appendix.

See also: get_cfg_var(),
ini_get(),
ini_get_all(),
ini_restore()  и
How to change configuration
settings

Пред. | Начало | След.
ini_restore | Уровень выше | main


main

(no version information, might be only in CVS)

main -- Dummy for main()

Description

There is no function named main() except in the PHP source. In PHP 4.3.0, a new type of error handling in the PHP source (php_error_docref) was introduced. One feature is to provide links to a manual page in PHP error messages when the PHP directives html_errors (on by default) and docref_root (on by default until PHP 4.3.2) are set.

Sometimes error messages refer to a manual page for the function main() which is why this page exists. Please add a user comment below that mentions what PHP function caused the error that linked to main() and it will be fixed and properly documented.

Таблица 1. Known errors that point to main()

Function name | No longer points here as of
include() | 5.1.0
include_once() | 5.1.0
require() | 5.1.0
require_once() | 5.1.0

See also html_errors and display_errors.

Пред. | Начало | След.
ini_set | Уровень выше | memory_get_usage


memory_get_usage

(PHP 4 >= 4.3.2, PHP 5)

memory_get_usage -- Returns the amount of memory allocated to PHP

Description

int memory_get_usage ( void )

Returns the amount of memory, in bytes, that's currently being allocated to your PHP script.

memory_get_usage() will only be defined if your PHP is compiled with the --enable-memory-limit configuration option.

Пример 1. A memory_get_usage() example

<?php
// This is only an example, the numbers below will
// differ depending on your system

echo memory_get_usage() . "\n"; // 36640

$a = str_repeat("Hello", 4242);

echo memory_get_usage() . "\n"; // 57960

unset($a);

echo memory_get_usage() . "\n"; // 36744

?>

See also memory_limit.

Пред. | Начало | След.
main | Уровень выше | php_ini_scanned_files


php_ini_scanned_files

(PHP 4 >= 4.3.0, PHP 5)

php_ini_scanned_files -- Return a list of .ini files parsed from the additional ini dir

Description

string php_ini_scanned_files ( void )

php_ini_scanned_files() returns a comma-separated list of configuration files parsed after php.ini. These files are found in a directory defined by the --with-config-file-scan-dir option which is set during compilation.

Returns a comma-separated string of .ini files on success. If the directive --with-config-files-scan-dir wasn't set, FALSE is returned. If it was set and the directory was empty, an empty string is returned. If a file is unrecognizable, the file will still make it into the returned string but a PHP error will also result. This PHP error will be seen both at compile time and while using php_ini_scanned_files().

The returned configuration files also include the path as declared in the --with-config-file-scan-dir option. Also, each comma is followed by a newline.

Пример 1. A simple example to list the returned ini files

<?php
if ($filelist = php_ini_scanned_files()) {
    if (strlen($filelist) > 0) {
        $files = explode(',', $filelist);

        foreach ($files as $file) {
            echo "<li>" . trim($file) . "</li>\n";
        }
    }
}
?>

See also ini_set() and phpinfo().

Пред. | Начало | След.
memory_get_usage | Уровень выше | php_logo_guid


php_logo_guid

(PHP 4, PHP 5)

php_logo_guid -- Gets the logo guid

Description

string php_logo_guid ( void )

This function returns the ID which can be used to display the PHP logo using the built-in image. Logo is displayed only if expose_php is On.

Пример 1. php_logo_guid() example

<?php

echo '<img src="' . $_SERVER['PHP_SELF'] .
     '?=' . php_logo_guid() . '" alt="PHP Logo !" />';

?>

See also
phpinfo(),
phpversion(),
phpcredits() and
zend_logo_guid().

Пред. | Начало | След.
php_ini_scanned_files | Уровень выше | php_sapi_name


php_sapi_name

(PHP 4 >= 4.0.1, PHP 5)

php_sapi_name -- Returns the type of interface between web server and PHP

Description

string php_sapi_name ( void )

php_sapi_name() returns a lowercase string which describes the type of interface between web server and PHP (Server API, SAPI). In CGI PHP, this string is "cgi", in mod_php for Apache, this string is "apache" and so on.

Пример 1. php_sapi_name() example

<?php
$sapi_type = php_sapi_name();
if (substr($sapi_type, 0, 3) == 'cgi') {
    echo "You are using CGI PHP\n";
} else {
    echo "You are not using CGI PHP\n";
}
?>

Пред. | Начало | След.
php_logo_guid | Уровень выше | php_uname


php_uname

(PHP 4 >= 4.0.2, PHP 5)

php_uname -- Returns information about the operating system PHP is running on

Description

string php_uname ( [string mode] )

php_uname() returns a description of the operating system PHP is running on. For the name of just the operating system, consider using the PHP_OS constant, but be reminded this constant will contain the operating system PHP was built on.

On Unix, the output reverts to displaying the operating system information PHP was built on if it cannot determine the currently running OS.

mode is a single character that defines what information is returned:

  • 'a': This is the default. Contains all modes in the sequence "s n r v m".

  • 's': Operating system name. eg. FreeBSD.

  • 'n': Host name. eg. localhost.example.com.

  • 'r': Release name. eg. 5.1.2-RELEASE.

  • 'v': Version information. Varies a lot between operating systems.

  • 'm': Machine type. eg. i386.

Пример 1. Some php_uname() examples

<?php
echo php_uname();
echo PHP_OS;

/* Some possible outputs:
Linux localhost 2.4.21-0.13mdk #1 Fri Mar 14 15:08:06 EST 2003 i686
Linux

FreeBSD localhost 3.2-RELEASE #15: Mon Dec 17 08:46:02 GMT 2001
FreeBSD

Windows NT XN1 5.1 build 2600
WINNT
*/

if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
    echo 'This is a server using Windows!';
} else {
    echo 'This is a server not using Windows!';
}

?>

There are also some related Predefined PHP constants that may come in handy, for example:

Пример 2. A few OS related constant examples

<?php
// *nix
echo DIRECTORY_SEPARATOR; // /
echo PHP_SHLIB_SUFFIX;    // so
echo PATH_SEPARATOR;      // :

// Win*
echo DIRECTORY_SEPARATOR; // \
echo PHP_SHLIB_SUFFIX;    // dll
echo PATH_SEPARATOR;      // ;
?>

See also phpversion(),
php_sapi_name(), and
phpinfo().

Пред. | Начало | След.
php_sapi_name | Уровень выше | phpcredits


phpcredits

(PHP 4, PHP 5)

phpcredits -- Prints out the credits for PHP

Description

bool phpcredits ( [int flag] )

This function prints out the credits listing the PHP developers, modules, etc. It generates the appropriate HTML codes to insert the information in a page. flag is optional, and it defaults to CREDITS_ALL. To generate a custom credits page, you may want to use the flag parameter. For example to print the general credits, you will use somewhere in your code:

<?php
phpcredits(CREDITS_GENERAL);
?>

And if you want to print the core developers and the documentation group, in a page of its own, you will use:

<?php
phpcredits(CREDITS_GROUP + CREDITS_DOCS + CREDITS_FULLPAGE);
?>

And if you feel like embedding all the credits in your page, then code like the one below will do it:

<html>
 <head>
  <title>My credits page</title>
 </head>
 <body>
<?php
// some code of your own
phpcredits(CREDITS_ALL - CREDITS_FULLPAGE);
// some more code
?>
 </body>
</html>

Таблица 1. Pre-defined phpcredits() flags

name | description
CREDITS_ALL | All the credits, equivalent to using: CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_FULLPAGE. It generates a complete stand-alone HTML page with the appropriate tags.
CREDITS_DOCS | The credits for the documentation team
CREDITS_FULLPAGE | Usually used in combination with the other flags. Indicates that a complete stand-alone HTML page needs to be printed including the information indicated by the other flags.
CREDITS_GENERAL | General credits: Language design and concept, PHP 4.0 authors and SAPI module.
CREDITS_GROUP | A list of the core developers
CREDITS_MODULES | A list of the extension modules for PHP, and their authors
CREDITS_SAPI | A list of the server API modules for PHP, and their authors

See also phpinfo(),
phpversion() and
php_logo_guid().

Пред. | Начало | След.
php_uname | Уровень выше | phpinfo


phpinfo

(PHP 3, PHP 4, PHP 5)

phpinfo -- Outputs lots of PHP information

Description

bool phpinfo ( [int what] )

Outputs a large amount of information about the current state of PHP. This includes information about PHP compilation options and extensions, the PHP version, server information and environment (if compiled as a module), the PHP environment, OS version information, paths, master and local values of configuration options, HTTP headers, and the PHP License.

Because every system is setup differently, phpinfo() is commonly used to check configuration settings and for available predefined variables on a given system. Also, phpinfo() is a valuable debugging tool as it contains all EGPCS (Environment, GET, POST, Cookie, Server) data.

The output may be customized by passing one or more of the following constants bitwise values summed together in the optional what parameter. One can also combine the respective constants or bitwise values together with the or operator.

Таблица 1. phpinfo() options

Name (constant) | Value | Description
INFO_GENERAL | 1 | The configuration line, php.ini location, build date, Web Server, System and more.
INFO_CREDITS | 2 | PHP Credits. See also phpcredits().
INFO_CONFIGURATION | 4 | Current Local and Master values for PHP directives. See also ini_get().
INFO_MODULES | 8 | Loaded modules and their respective settings. See also get_loaded_extensions().
INFO_ENVIRONMENT | 16 | Environment Variable information that's also available in $_ENV.
INFO_VARIABLES | 32 | Shows all predefined variables from EGPCS (Environment, GET, POST, Cookie, Server).
INFO_LICENSE | 64 | PHP License information. See also the license FAQ.
INFO_ALL | -1 | Shows all of the above. This is the default value.

Пример 1. phpinfo() examples

<?php

// Show all information, defaults to INFO_ALL
phpinfo();

// Show just the module information.
// phpinfo(8) yields identical results.
phpinfo(INFO_MODULES);

?>

Замечание: Parts of the information displayed are disabled when the expose_php configuration setting is set to off. This includes the PHP and Zend logos, and the credits.

Замечание: phpinfo() outputs plain text instead of HTML when using the CLI mode.

See also phpversion(),
phpcredits(),
php_logo_guid(),
ini_get(),
ini_set(),
get_loaded_extensions(),
and the section on Predefined
Variables.

Пред. | Начало | След.
phpcredits | Уровень выше | phpversion


phpversion

(PHP 3, PHP 4, PHP 5)

phpversion -- Gets the current PHP version

Description

string phpversion ( [string extension] )

Returns a string containing the version of the currently running PHP parser. If the optional extension parameter is specified, phpversion() returns the version of that extension, or FALSE if there is no version information associated or the extension isn't enabled.

Замечание: This information is also available in the predefined constant PHP_VERSION.

Пример 1. phpversion() example

<?php
// prints e.g. 'Current PHP version: 4.1.1'
echo 'Current PHP version: ' . phpversion();

// prints e.g. '2.0' or nothing if the extension isn't enabled
echo phpversion('tidy');
?>

See also
version_compare(),
phpinfo(),
phpcredits(),
php_logo_guid(), and
zend_version().

Пред. | Начало | След.
phpinfo | Уровень выше | putenv


putenv

(PHP 3, PHP 4, PHP 5)

putenv -- Sets the value of an environment variable

Description

bool putenv ( string setting )

Adds setting to the server environment. The environment variable will only exist for the duration of the current request. At the end of the request the environment is restored to its original state.

Setting certain environment variables may be a potential security breach. The safe_mode_allowed_env_vars directive contains a comma-delimited list of prefixes. In Safe Mode, the user may only alter environment variables whose names begin with the prefixes supplied by this directive. By default, users will only be able to set environment variables that begin with PHP_ (e.g. PHP_FOO=BAR). Note: if this directive is empty, PHP will let the user modify ANY environment variable!

The safe_mode_protected_env_vars directive contains a comma-delimited list of environment variables, that the end user won't be able to change using putenv(). These variables will be protected even if safe_mode_allowed_env_vars is set to allow to change them.

Внимание

These directives have only effect when safe-mode itself is enabled!

Пример 1. Setting an environment variable

<?php
putenv("UNIQID=$uniqid");
?>

See also getenv().

Пред. | Начало | След.
phpversion | Уровень выше | restore_include_path


restore_include_path

(PHP 4 >= 4.3.0, PHP 5)

restore_include_path -- Restores the value of the include_path configuration option

Description

void restore_include_path ( void )

Restores the include_path configuration option back to its original master value as set in php.ini

Пример 1. restore_include_path() example

<?php

echo get_include_path();  // .:/usr/local/lib/php

set_include_path('/inc');

echo get_include_path();  // /inc

// Works as of PHP 4.3.0
restore_include_path();

// Works in all PHP versions
ini_restore('include_path');

echo get_include_path();  // .:/usr/local/lib/php

?>

See also ini_restore(),
set_include_path(),
get_include_path(), and
include().

Пред. | Начало | След.
putenv | Уровень выше | set_include_path


set_include_path

(PHP 4 >= 4.3.0, PHP 5)

set_include_path -- Sets the include_path configuration option

Description

string set_include_path ( string new_include_path )

Sets the include_path configuration option for the duration of the script. Returns the old include_path on success or FALSE on failure.

Пример 1. set_include_path() example

<?php
// Works as of PHP 4.3.0
set_include_path('/inc');

// Works in all PHP versions
ini_set('include_path', '/inc');
?>

Пример 2. Adding to the include path

Making use of the PATH_SEPARATOR constant, it is possible to extend the include path regardless of the operating system.

In this example we add /usr/lib/pear to the end of the existing include_path.

<?php
$path = '/usr/lib/pear';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
?>

See also ini_set(),
get_include_path(),
restore_include_path(), and
include().

Пред. | Начало | След.
restore_include_path | Уровень выше | set_magic_quotes_runtime


set_magic_quotes_runtime

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

set_magic_quotes_runtime -- Sets the current active configuration setting of magic_quotes_runtime

Description

bool set_magic_quotes_runtime ( int new_setting )

Set the current active configuration setting of magic_quotes_runtime (0 for off, 1 for on).

See also: get_magic_quotes_gpc() and get_magic_quotes_runtime().

Пред. | Начало | След.
set_include_path | Уровень выше | set_time_limit


set_time_limit

(PHP 3, PHP 4, PHP 5)

set_time_limit -- Limits the maximum execution time

Description

void set_time_limit ( int seconds )

Set the number of seconds a script is allowed to run. If this is reached, the script returns a fatal error. The default limit is 30 seconds or, if it exists, the max_execution_time value defined in the php.ini. If seconds is set to zero, no time limit is imposed.

When called, set_time_limit() restarts the timeout counter from zero. In other words, if the timeout is the default 30 seconds, and 25 seconds into script execution a call such as set_time_limit(20) is made, the script will run for a total of 45 seconds before timing out.

Внимание

set_time_limit() has no effect when PHP is running in безопасный режим. There is no workaround other than turning off safe mode or changing the time limit in the php.ini.

Замечание: The set_time_limit() function and the configuration directive max_execution_time only affect the execution time of the script itself. Any time spent on activity that happens outside the execution of the script such as system calls using system(), stream operations, database queries, etc. is not included when determining the maximum time that the script has been running.

See also: max_execution_time and max_input_time ini directives.

Пред. | Начало | След.
set_magic_quotes_runtime | Уровень выше | version_compare


version_compare

(PHP 4 >= 4.1.0, PHP 5)

version_compare -- Compares two "PHP-standardized" version number strings

Description

mixed version_compare ( string version1, string version2 [, string operator] )

version_compare() compares two "PHP-standardized" version number strings. This is useful if you would like to write programs working only on some versions of PHP.

version_compare() returns -1 if the first version is lower than the second, 0 if they are equal, and +1 if the second is lower.

The function first replaces _, - and + with a dot . in the version strings and also inserts dots . before and after any non number so that for example '4.3.2RC1' becomes '4.3.2.RC.1'. Then it splits the results like if you were using explode('.', $ver). Then it compares the parts starting from left to right. If a part contains special version strings these are handled in the following order: dev < alpha = a < beta = b < RC < pl. This way not only versions with different levels like '4.1' and '4.1.2' can be compared but also any PHP specific version containing development state.

If you specify the third optional operator argument, you can test for a particular relationship. The possible operators are: <, lt, <=, le, >, gt, >=, ge, ==, =, eq, !=, <>, ne respectively. Using this argument, the function will return TRUE if the relationship is the one specified by the operator, FALSE otherwise.

Замечание: PHP_VERSION constant holds current PHP version.

Пример 1. version_compare() example

<?php
// prints -1
echo version_compare("4.0.4", "4.0.6");

// these all print 1
echo version_compare("4.0.4", "4.0.6", "<");
echo version_compare("4.0.6", "4.0.6", "eq");
?>

Пред. | Начало | След.
set_time_limit | Уровень выше | zend_logo_guid


zend_logo_guid

(PHP 4, PHP 5)

zend_logo_guid -- Gets the Zend guid

Description

string zend_logo_guid ( void )

This function returns the ID which can be used to display the Zend logo using the built-in image.

Пример 1. zend_logo_guid() example

<?php

echo '<img src="' . $_SERVER['PHP_SELF'] .
     '?=' . zend_logo_guid() . '" alt="Zend Logo !" />';

?>

See also php_logo_guid().

Пред. | Начало | След.
version_compare | Уровень выше | zend_version


zend_version

(PHP 4, PHP 5)

zend_version -- Gets the version of the current Zend engine

Description

string zend_version ( void )

Returns a string containing the version of the currently running Zend Engine.

Пример 1. zend_version() example

<?php
// prints e.g. 'Zend engine version: 1.0.4'
echo "Zend engine version: " . zend_version();
?>

See also phpinfo(),
phpcredits(),
php_logo_guid(), and
phpversion().

Пред. | Начало | След.
zend_logo_guid | Уровень выше | POSIX Functions


Ingres II Functions

Руководство по PHP
Пред. След.

LX. Ingres II Functions

Введение

These functions allow you to access Ingres II database servers.

Замечание: If you already used PHP extensions to access other database servers, note that Ingres doesn't allow concurrent queries and/or transaction over one connection, thus you won't find any result or transaction handle in this extension. The result of a query must be treated before sending another query, and a transaction must be committed or rolled back before opening another transaction (which is automatically done when sending the first query).

Требования

To compile PHP with Ingres support, you need the Open API library and header files included with Ingres II.

Установка

Это расширение PECL не поставляется вместе с PHP. Дополнительная информация, такая как новый версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, могут быть найдены здесь: http://pecl.php.net/package/ingres.

In order to have these functions available, you must compile PHP with Ingres support by using the --with-ingres[=DIR] option, where DIR is the Ingres base directory, which defaults to /II/ingres. If the II_SYSTEM environment variable isn't correctly set you may have to use --with-ingres=DIR to specify your Ingres installation directory.

When using this extension with Apache, if Apache does not start and complains with "PHP Fatal error: Unable to start ingres_ii module in Unknown on line 0" then make sure the environment variable II_SYSTEM is correctly set. Adding "export II_SYSTEM="/home/ingres/II" in the script that starts Apache, just before launching httpd, should be fine.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Ingres configuration options

Name | Default | Changeable | Changelog
ingres.allow_persistent | "1" | PHP_INI_SYSTEM | Available since PHP 4.0.2.
ingres.max_persistent | "-1" | PHP_INI_SYSTEM | Available since PHP 4.0.2.
ingres.max_links | "-1" | PHP_INI_SYSTEM | Available since PHP 4.0.2.
ingres.default_database | NULL | PHP_INI_ALL | Available since PHP 4.0.2.
ingres.default_user | NULL | PHP_INI_ALL | Available since PHP 4.0.2.
ingres.default_password | NULL | PHP_INI_ALL | Available since PHP 4.0.2.
ingres.report_db_warnings | "1" | PHP_INI_ALL | Available since version 1.1.0 of the PECL extension.
ingres.cursor_mode | "0" | PHP_INI_ALL | Available since version 1.1.0 of the PECL extension.
ingres.blob_segment_length | "4096" | PHP_INI_ALL | Available since version 1.2.0 of the PECL extension.
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

INGRES_ASSOC (integer)

Columns are returned into the array having the fieldname as the array index.

INGRES_NUM (integer)

Columns are returned into the array having a numerical index to the fields. This index starts with 1, the first field in the result.

INGRES_BOTH (integer)

Columns are returned into the array having both a numerical index and the fieldname as the array index.

INGRES_EXT_VERSION (string)

Specifies the version of the Ingres Extension. Available since version 1.2.0 of the PECL extension.

INGRES_API_VERSION (integer)

Specifies the version of Ingres OpenAPI the extension was built against. Available since version 1.2.0 of the PECL extension.

INGRES_CURSOR_READONLY (integer)

Specifies that Ingres cursors should be opened in 'readonly' mode. Available since version 1.2.0 of the PECL extension.

INGRES_CURSOR_UPDATE (integer)

Specifies that Ingres cursors should be opened 'for update'. Available since version 1.2.0 of the PECL extension.

INGRES_DATE_MULTINATIONAL (integer)

Equivalent to the II_DATE_FORMAT setting of MULTINATIONAL. Available since version 1.2.0 of the PECL extension.

INGRES_DATE_MULTINATIONAL4 (integer)

Equivalent to the II_DATE_FORMAT setting of MULTINATIONAL4. Available since version 1.2.0 of the PECL extension.

INGRES_DATE_FINNISH (integer)

Equivalent to the II_DATE_FORMAT setting of FINNISH. Available since version 1.2.0 of the PECL extension.

INGRES_DATE_ISO (integer)

Equivalent to the II_DATE_FORMAT setting of ISO. Available since version 1.2.0 of the PECL extension.

INGRES_DATE_ISO4 (integer)

Equivalent to the II_DATE_FORMAT setting of ISO4. Available since version 1.2.0 of the PECL extension.

INGRES_DATE_GERMAN (integer)

Equivalent to the II_DATE_FORMAT setting of GERMAN. Available since version 1.2.0 of the PECL extension.

INGRES_DATE_MDY (integer)

Equivalent to the II_DATE_FORMAT setting of MDY. Available since version 1.2.0 of the PECL extension.

INGRES_DATE_DMY (integer)

Equivalent to the II_DATE_FORMAT setting of DMY. Available since version 1.2.0 of the PECL extension.

INGRES_DATE_YMD (integer)

Equivalent to the II_DATE_FORMAT setting of YMD. Available since version 1.2.0 of the PECL extension.

INGRES_MONEY_LEADING (integer)

Specifies the currency character that should be placed at the start of a money value. Equivalent to setting II_MONEY_FORMAT to 'L:'. Available since version 1.2.0 of the PECL extension.

INGRES_MONEY_TRAILING (integer)

Specifies the currency character that should be placed at the end of a money value. Equivalent to setting II_MONEY_FORMAT to 'T:'. Available since version 1.2.0 of the PECL extension.

Содержание
ingres_autocommit -- Switch autocommit on or off
ingres_close -- Close an Ingres II database connection
ingres_commit -- Commit a transaction
ingres_connect -- Open a connection to an Ingres II database
ingres_cursor -- Gets a cursor name for a given link resource
ingres_errno -- Gets the last ingres error number generated
ingres_error -- Gets a meaningful error message for the last error generated
ingres_errsqlstate -- Gets the last SQLSTATE error code generated
ingres_fetch_array -- Fetch a row of result into an array
ingres_fetch_object -- Fetch a row of result into an object
ingres_fetch_row -- Fetch a row of result into an enumerated array
ingres_field_length -- Get the length of a field
ingres_field_name -- Get the name of a field in a query result
ingres_field_nullable -- Test if a field is nullable
ingres_field_precision -- Get the precision of a field
ingres_field_scale -- Get the scale of a field
ingres_field_type -- Get the type of a field in a query result
ingres_num_fields -- Get the number of fields returned by the last query
ingres_num_rows -- Get the number of rows affected or returned by the last query
ingres_pconnect -- Open a persistent connection to an Ingres II database
ingres_query -- Send a SQL query to Ingres II
ingres_rollback -- Roll back a transaction

Пред. | Начало | След.
ifxus_write_slob | Уровень выше | ingres_autocommit


ingres_autocommit

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_autocommit -- Switch autocommit on or off

Description

bool ingres_autocommit ( [resource link] )

ingres_autocommit() is called before opening a transaction (before the first call to ingres_query() or just after a call to ingres_rollback() or ingres_commit()) to switch the "autocommit" mode of the server on or off (when the script begins the autocommit mode is off).

When the autocommit mode is on, every query is automatically committed by the server, as if ingres_commit() was called after every call to ingres_query().

See also
ingres_query(),
ingres_rollback(), and
ingres_commit().

Пред. | Начало | След.
Ingres II Functions | Уровень выше | ingres_close


ingres_close

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_close -- Close an Ingres II database connection

Description

bool ingres_close ( [resource link] )

Returns TRUE on success, or FALSE on failure.

ingres_close() closes the connection to the Ingres server that's associated with the specified link. If the link parameter isn't specified, the last opened link is used.

ingres_close() isn't usually necessary, as it won't close persistent connections and all non-persistent connections are automatically closed at the end of the script.

See also ingres_connect() and ingres_pconnect().

Пред. | Начало | След.
ingres_autocommit | Уровень выше | ingres_commit


ingres_commit

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_commit -- Commit a transaction

Description

bool ingres_commit ( [resource link] )

ingres_commit() commits the currently open transaction, making all changes made to the database permanent.

This closes the transaction. A new one can be open by sending a query with ingres_query().

You can also have the server commit automatically after every query by calling ingres_autocommit() before opening the transaction.

See also
ingres_query(),
ingres_rollback(), and
ingres_autocommit().

Пред. | Начало | След.
ingres_close | Уровень выше | ingres_connect


ingres_connect

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_connect -- Open a connection to an Ingres II database

Description

resource ingres_connect ( [string database [, string username [, string password]]] )

Returns a Ingres II link resource on success, or FALSE on failure.

ingres_connect() opens a connection with the Ingres database designated by database, which follows the syntax [node_id::]dbname[/svr_class].

If some parameters are missing, ingres_connect() uses the values in php.ini for ingres.default_database, ingres.default_user, and ingres.default_password.

The connection is closed when the script ends or when ingres_close() is called on this link.

All the other ingres functions use the last opened link as a default, so you need to store the returned value only if you use more than one link at a time.

Пример 1. ingres_connect() example

<?php
    $link = ingres_connect("mydb", "user", "pass")
        or die("Could not connect");
    echo "Connected successfully";
    ingres_close($link);
?>

Пример 2. ingres_connect() example using default link

<?php
    ingres_connect("mydb", "user", "pass")
        or die("Could not connect");
    echo "Connected successfully";
    ingres_close();
?>

See also ingres_pconnect() and ingres_close().

Пред. | Начало | След.
ingres_commit | Уровень выше | ingres_cursor


ingres_fetch_array

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_fetch_array -- Fetch a row of result into an array

Description

array ingres_fetch_array ( [int result_type [, resource link]] )

ingres_fetch_array() Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

This function is an extended version of ingres_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you must use the numeric index of the column or make an alias for the column.

<?php

ingres_query("select t1.f1 as foo t2.f1 as bar from t1, t2");
$result = ingres_fetch_array();
$foo = $result["foo"];
$bar = $result["bar"];

?>

result_type can be INGRES_NUM for enumerated array, INGRES_ASSOC for associative array, or INGRES_BOTH (default).

Speed-wise, the function is identical to ingres_fetch_object(), and almost as quick as ingres_fetch_row() (the difference is insignificant).

Пример 1. ingres_fetch_array() example

<?php
ingres_connect($database, $user, $password);

ingres_query("select * from table");
while ($row = ingres_fetch_array()) {
    echo $row["user_id"];  // using associative array
    echo $row["fullname"];
    echo $row[1];          // using enumerated array
    echo $row[2];
}
?>

See also
ingres_query(),
ingres_num_fields(),
ingres_field_name(),
ingres_fetch_object(), and
ingres_fetch_row().

Пред. | Начало | След.
ingres_errsqlstate | Уровень выше | ingres_fetch_object


ingres_fetch_object

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_fetch_object -- Fetch a row of result into an object

Description

object ingres_fetch_object ( [int result_type [, resource link]] )

ingres_fetch_object() Returns an object that corresponds to the fetched row, or FALSE if there are no more rows.

This function is similar to ingres_fetch_array(), with one difference - an object is returned, instead of an array. Indirectly, that means that you can only access the data by the field names, and not by their offsets (numbers are illegal property names).

The optional argument result_type is a constant and can take the following values: INGRES_ASSOC, INGRES_NUM, and INGRES_BOTH.

Speed-wise, the function is identical to ingres_fetch_array(), and almost as quick as ingres_fetch_row() (the difference is insignificant).

Пример 1. ingres_fetch_object() example

<?php
ingres_connect($database, $user, $password);
ingres_query("select * from table");
while ($row = ingres_fetch_object()) {
    echo $row->user_id;
    echo $row->fullname;
}
?>

See also
ingres_query(),
ingres_num_fields(),
ingres_field_name(),
ingres_fetch_array(), and
ingres_fetch_row().

Пред. | Начало | След.
ingres_fetch_array | Уровень выше | ingres_fetch_row


ingres_fetch_row

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_fetch_row -- Fetch a row of result into an enumerated array

Description

array ingres_fetch_row ( [resource link] )

ingres_fetch_row() returns an array that corresponds to the fetched row, or FALSE if there are no more rows. Each result column is stored in an array offset, starting at offset 1.

Subsequent call to ingres_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

Пример 1. ingres_fetch_row() example

<?php
ingres_connect($database, $user, $password);

ingres_query("select * from table");
while ($row = ingres_fetch_row()) {
    echo $row[1];
    echo $row[2];
}
?>

See also
ingres_num_fields(),
ingres_query(),
ingres_fetch_array(), and
ingres_fetch_object().

Пред. | Начало | След.
ingres_fetch_object | Уровень выше | ingres_field_length


ingres_field_length

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_field_length -- Get the length of a field

Description

int ingres_field_length ( int index [, resource link] )

ingres_field_length() returns the length of a field. This is the number of bytes used by the server to store the field. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object(), and
ingres_fetch_row().

Пред. | Начало | След.
ingres_fetch_row | Уровень выше | ingres_field_name


ingres_field_name

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_field_name -- Get the name of a field in a query result

Description

string ingres_field_name ( int index [, resource link] )

ingres_field_name() returns the name of a field in a query result, or FALSE on failure.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object() and
ingres_fetch_row().

Пред. | Начало | След.
ingres_field_length | Уровень выше | ingres_field_nullable


ingres_field_nullable

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_field_nullable -- Test if a field is nullable

Description

bool ingres_field_nullable ( int index [, resource link] )

ingres_field_nullable() returns TRUE if the field can be set to the NULL value and FALSE if it can't.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object(), and
ingres_fetch_row().

Пред. | Начало | След.
ingres_field_name | Уровень выше | ingres_field_precision


ingres_field_precision

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_field_precision -- Get the precision of a field

Description

int ingres_field_precision ( int index [, resource link] )

ingres_field_precision() returns the precision of a field. This value is used only for decimal, float and money SQL data types. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object(), and
ingres_fetch_row().

Пред. | Начало | След.
ingres_field_nullable | Уровень выше | ingres_field_scale


ingres_field_scale

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_field_scale -- Get the scale of a field

Description

int ingres_field_scale ( int index [, resource link] )

ingres_field_scale() returns the scale of a field. This value is used only for the decimal SQL data type. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object(), and
ingres_fetch_row().

Пред. | Начало | След.
ingres_field_precision | Уровень выше | ingres_field_type


ingres_field_type

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_field_type -- Get the type of a field in a query result

Description

string ingres_field_type ( int index [, resource link] )

ingres_field_type() returns the type of a field in a query result, or FALSE on failure. Examples of types returned are "IIAPI_BYTE_TYPE", "IIAPI_CHA_TYPE", "IIAPI_DTE_TYPE", "IIAPI_FLT_TYPE", "IIAPI_INT_TYPE", "IIAPI_VCH_TYPE". Some of these types can map to more than one SQL type depending on the length of the field (see ingres_field_length()). For example "IIAPI_FLT_TYPE" can be a float4 or a float8. For detailed information, see the Ingres/OpenAPI User Guide - Appendix C.

index is the number of the field and must be between 1 and the value given by ingres_num_fields().

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object(), and
ingres_fetch_row().

Пред. | Начало | След.
ingres_field_scale | Уровень выше | ingres_num_fields


ingres_num_fields

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_num_fields -- Get the number of fields returned by the last query

Description

int ingres_num_fields ( [resource link] )

ingres_num_fields() returns the number of fields in the results returned by the Ingres server after a call to ingres_query()

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object(), and
ingres_fetch_row().

Пред. | Начало | След.
ingres_field_type | Уровень выше | ingres_num_rows


ingres_num_rows

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_num_rows -- Get the number of rows affected or returned by the last query

Description

int ingres_num_rows ( [resource link] )

For delete, insert or update queries, ingres_num_rows() returns the number of rows affected by the query. For other queries, ingres_num_rows() returns the number of rows in the query's result.

Замечание: This function is mainly meant to get the number of rows modified in the database. If this function is called before using ingres_fetch_array(), ingres_fetch_object() or ingres_fetch_row() the server will delete the result's data and the script won't be able to get them.

You should instead retrieve the result's data using one of these fetch functions in a loop until it returns FALSE, indicating that no more results are available.

See also
ingres_query(),
ingres_fetch_array(),
ingres_fetch_object(), and
ingres_fetch_row().

Пред. | Начало | След.
ingres_num_fields | Уровень выше | ingres_pconnect


ingres_pconnect

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_pconnect -- Open a persistent connection to an Ingres II database

Description

resource ingres_pconnect ( [string database [, string username [, string password]]] )

Returns a Ingres II link resource on success, or FALSE on failure.

See ingres_connect() for parameters details and examples. There are only 2 differences between ingres_pconnect() and ingres_connect() : First, when connecting, the function will first try to find a (persistent) link that's already opened with the same parameters. If one is found, an identifier for it will be returned instead of opening a new connection. Second, the connection to the Ingres server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (ingres_close() will not close links established by ingres_pconnect()). This type of link is therefore called 'persistent'.

See also ingres_connect() and ingres_close().

Пред. | Начало | След.
ingres_num_rows | Уровень выше | ingres_query


ingres_query

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_query -- Send a SQL query to Ingres II

Description

bool ingres_query ( string query [, resource link] )

Returns TRUE on success, or FALSE on failure.

ingres_query() sends the given query to the Ingres server. This query must be a valid SQL query (see the Ingres SQL reference guide)

The query becomes part of the currently open transaction. If there is no open transaction, ingres_query() opens a new transaction. To close the transaction, you can either call ingres_commit() to commit the changes made to the database or ingres_rollback() to cancel these changes. When the script ends, any open transaction is rolled back (by calling ingres_rollback()). You can also use ingres_autocommit() before opening a new transaction to have every SQL query immediately committed.

Some types of SQL queries can't be sent with this function:

  • close (see ingres_close())

  • commit (see ingres_commit())

  • connect (see ingres_connect())

  • disconnect (see ingres_close())

  • get dbevent

  • prepare to commit

  • rollback (see ingres_rollback())

  • savepoint

  • set autocommit (see ingres_autocommit())

  • all cursor related queries are unsupported

Пример 1. ingres_query() example

<?php
ingres_connect($database, $user, $password);

ingres_query("select * from table");
while ($row = ingres_fetch_row()) {
    echo $row[1];
    echo $row[2];
}
?>

See also
ingres_fetch_array(),
ingres_fetch_object(),
ingres_fetch_row(),
ingres_commit(),
ingres_rollback(), and
ingres_autocommit().

Пред. | Начало | След.
ingres_pconnect | Уровень выше | ingres_rollback


ingres_rollback

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.4)

ingres_rollback -- Roll back a transaction

Description

bool ingres_rollback ( [resource link] )

ingres_rollback() rolls back the currently open transaction, actually canceling all changes made to the database during the transaction.

This closes the transaction. A new one can be open by sending a query with ingres_query().

See also
ingres_query(),
ingres_commit(), and
ingres_autocommit().

Пред. | Начало | След.
ingres_query | Уровень выше | IRC Gateway Functions


IRC Gateway Functions

Руководство по PHP
Пред. След.

LXI. IRC Gateway Functions

Введение

With IRCG you can rapidly stream XML data to thousands of concurrently connected users. This can be used to build powerful, extensible interactive platforms such as online games and webchats. IRCG also features support for a non-streaming mode where a helper application reformats incoming data and supplies static file snippets in special formats such as cHTML (i-mode) or WML (WAP). These static files are then delivered by the high-performance web server.

Up to v4, IRCG runs under these platforms:

  • AIX

  • FreeBSD

  • HP-UX

  • Irix

  • Linux

  • Solaris

  • Tru64

  • Windows

Замечание: This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 5.1.0.

Установка

Detailed installation instructions can be found at http://www.schumann.cx/ircg/. We urge you to use the provided installation script.

It is not recommended, but you can try enable IRCG support yourself. Provide the path to the ircg-config script, --with-ircg-config=path/to/irc-config and in addition add --with-ircg to your configure line.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Предопределенные константы

Данное расширение не определяет никакие константы.

Содержание
ircg_channel_mode -- Set channel mode flags for user
ircg_disconnect -- Close connection to server
ircg_eval_ecmascript_params -- Decodes a list of JS-encoded parameters
ircg_fetch_error_msg -- Returns the error from previous IRCG operation
ircg_get_username -- Get username for connection
ircg_html_encode -- Encodes HTML preserving output
ircg_ignore_add -- Add a user to your ignore list on a server
ircg_ignore_del -- Remove a user from your ignore list on a server
ircg_invite -- Invites nickname to channel
ircg_is_conn_alive -- Check connection status
ircg_join -- Join a channel on a connected server
ircg_kick -- Kick a user out of a channel on server
ircg_list -- List topic/user count of channel(s)
ircg_lookup_format_messages -- Check for the existence of a format message set
ircg_lusers -- IRC network statistics
ircg_msg -- Send message to channel or user on server
ircg_names -- Query visible usernames
ircg_nick -- Change nickname on server
ircg_nickname_escape -- Encode special characters in nickname to be IRC-compliant
ircg_nickname_unescape -- Decodes encoded nickname
ircg_notice -- Send a notice to a user on server
ircg_oper -- Elevates privileges to IRC OPER
ircg_part -- Leave a channel on server
ircg_pconnect -- Connect to an IRC server
ircg_register_format_messages -- Register a format message set
ircg_set_current -- Set current connection for output
ircg_set_file -- Set logfile for connection
ircg_set_on_die -- Set action to be executed when connection dies
ircg_topic -- Set topic for channel on server
ircg_who -- Queries server for WHO information
ircg_whois -- Query server for user information

Пред. | Начало | След.
ingres_rollback | Уровень выше | ircg_channel_mode


ircg_channel_mode

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

ircg_channel_mode -- Set channel mode flags for user

Description

bool ircg_channel_mode ( resource connection, string channel, string mode_spec, string nick )

Set channel mode flags for channel on server connected to by connection. Mode flags are passed in mode_spec and are applied to the user specified by nick.

Mode flags are set or cleared by specifying a mode character and prepending it with a plus or minus character, respectively. E.g. operator mode is granted by '+o' and revoked by '-o', as passed as mode_spec.

Пред. | Начало | След.
IRC Gateway Functions | Уровень выше | ircg_disconnect


ircg_disconnect

(PHP 4 >= 4.0.4, PHP 5 <= 5.0.4)

ircg_disconnect -- Close connection to server

Description

bool ircg_disconnect ( resource connection, string reason )

ircg_disconnect() will close a connection to a server previously established with ircg_pconnect().

See also: ircg_pconnect().

Пред. | Начало | След.
ircg_channel_mode | Уровень выше | ircg_eval_ecmascript_params


ircg_eval_ecmascript_params

(PHP 4 >= 4.3.0, PHP 5 <= 5.0.4)

ircg_eval_ecmascript_params -- Decodes a list of JS-encoded parameters

Description

array ircg_eval_ecmascript_params ( string params )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

From the ircg_eval_ecmascript_params source file:
   /*
    * State 0: Looking for ' or digit
    * State 1: Assembling parameter inside '..'
    * State 2: After escape sign: Copies single char verbatim, go to 1
    * State 3: Assembling numeric para, no quotation
    * State 4: Looking for ",", skipping whitespace
    */

See also ircg_lookup_format_messages().

Пред. | Начало | След.
ircg_disconnect | Уровень выше | ircg_fetch_error_msg


ircg_fetch_error_msg

(PHP 4 >= 4.1.0, PHP 5 <= 5.0.4)

ircg_fetch_error_msg -- Returns the error from previous IRCG operation

Description

array ircg_fetch_error_msg ( resource connection )

ircg_fetch_error_msg() returns the error from a failed connection.

Замечание: Error code is stored in first array element, error text in second. The error code is equivalent to IRC reply codes as defined by RFC 2812.

Пример 1. ircg_fetch_error_msg() example

<?php
if (!ircg_join ($id, "#php")) {
    $error = ircg_fetch_error_msg($id);
    echo "Can't join channel #php. Error code:
          $error[0] Description: $error[1]";
}
?>

Пред. | Начало | След.
ircg_eval_ecmascript_params | Уровень выше | ircg_get_username


ircg_get_username

(PHP 4 >= 4.1.0, PHP 5 <= 5.0.4)

ircg_get_username -- Get username for connection

Description

string ircg_get_username ( resource connection )

Function ircg_get_username() returns the username for the specified connection connection. Returns FALSE if connection died or is not valid.

Пред. | Начало | След.
ircg_fetch_error_msg | Уровень выше | ircg_html_encode


ircg_html_encode

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

ircg_html_encode -- Encodes HTML preserving output

Description

string ircg_html_encode ( string html_string [, bool auto_links [, bool conv_br]] )

Encodes a HTML string html_string for output. This exposes the interface which the IRCG extension uses internally to reformat data coming from an IRC link. The function causes IRC color/font codes to be encoded in HTML and escapes certain entities.

Пред. | Начало | След.
ircg_get_username | Уровень выше | ircg_ignore_add


ircg_ignore_add

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

ircg_ignore_add -- Add a user to your ignore list on a server

Description

void ircg_ignore_add ( resource connection, string nick )

This function adds user nick to the ignore list of connection connection. Afterwards, IRCG will suppress all messages from this user through the associated connection.

See also: ircg_ignore_del().

Пред. | Начало | След.
ircg_html_encode | Уровень выше | ircg_ignore_del


ircg_ignore_del

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

ircg_ignore_del -- Remove a user from your ignore list on a server

Description

bool ircg_ignore_del ( resource connection, string nick )

This function removes user nick from the IRCG ignore list associated with connection.

See also: ircg_ignore_add().

Пред. | Начало | След.
ircg_ignore_add | Уровень выше | ircg_invite


ircg_invite

(PHP 4 >= 4.3.3, PHP 5 <= 5.0.4)

ircg_invite -- Invites nickname to channel

Description

bool ircg_invite ( resource connection, string channel, string nickname )

ircg_invite() will send an invitation to the user nickname, prompting him to join channel. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
ircg_ignore_del | Уровень выше | ircg_is_conn_alive


ircg_is_conn_alive

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

ircg_is_conn_alive -- Check connection status

Description

bool ircg_is_conn_alive ( resource connection )

ircg_is_conn_alive() returns TRUE if connection is still alive and working or FALSE, if the connection has died for some reason.

Пред. | Начало | След.
ircg_invite | Уровень выше | ircg_join


ircg_join

(PHP 4 >= 4.0.4, PHP 5 <= 5.0.4)

ircg_join -- Join a channel on a connected server

Description

bool ircg_join ( resource connection, string channel [, string key] )

Join the channel channel on the server connected to by connection. IRCG will optionally pass the room key key.

Пред. | Начало | След.
ircg_is_conn_alive | Уровень выше | ircg_kick


ircg_kick

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

ircg_kick -- Kick a user out of a channel on server

Description

bool ircg_kick ( resource connection, string channel, string nick, string reason )

Kick user nick from channel on server connected to by connection. reason should give a short message describing why this action was performed.

Пред. | Начало | След.
ircg_join | Уровень выше | ircg_list


ircg_list

(PHP 4 >= 4.3.3, PHP 5 <= 5.0.4)

ircg_list -- List topic/user count of channel(s)

Description

bool ircg_list ( resource connection, string channel )

ircg_list() will request a list of users in the channel. The answer is sent to the output defined by ircg_set_file() or ircg_set_current(). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. ircg_list() example

<?php

// connect to server
$id = ircg_pconnect($nickname, $ip, $port);

// set to output to a file
ircg_set_file($id, 'irc_output.html');

// try to join a channel
if (!ircg_join($id, $channel)) {
    echo "Cannot /join $channel<br />";
}

// send list command
ircg_list($id, $channel);

// wait for output to arrive
sleep(5);

// disconnect
ircg_disconnect($id,'Bye World');

// output everything
readfile('irc_output.html');

?>

This example will output something similar to:

...
Channel #channel has n users and the topic is 'Topic'
End of LIST
...

See also: ircg_set_file(),
ircg_set_current(), and
ircg_who().

Пред. | Начало | След.
ircg_kick | Уровень выше | ircg_lookup_format_messages


ircg_lookup_format_messages

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

ircg_lookup_format_messages -- Check for the existence of a format message set

Description

bool ircg_lookup_format_messages ( string name )

Check for the existence of the format message set name. Sets may be registered with ircg_register_format_messages(), a default set named ircg is always available. Returns TRUE, if the set exists and FALSE otherwise.

See also: ircg_register_format_messages()

Пред. | Начало | След.
ircg_list | Уровень выше | ircg_lusers


ircg_lusers

(PHP 4 >= 4.3.3, PHP 5 <= 5.0.4)

ircg_lusers -- IRC network statistics

Description

bool ircg_lusers ( resource connection )

ircg_lusers() will request a statistical breakdown of users on the network connected to on connection. The answer is sent to the output defined by ircg_set_file() or ircg_set_current(). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also: ircg_set_file(), and ircg_set_current().

Пред. | Начало | След.
ircg_lookup_format_messages | Уровень выше | ircg_msg


ircg_msg

(PHP 4 >= 4.0.4, PHP 5 <= 5.0.4)

ircg_msg -- Send message to channel or user on server

Description

bool ircg_msg ( resource connection, string recipient, string message [, bool suppress] )

ircg_msg() will send the message to a channel or user on the server connected to by connection. A recipient starting with # or & will send the message to a channel, anything else will be interpreted as a username.

Setting the optional parameter suppress to a TRUE value will suppress output of your message to your own connection. This so-called loopback is necessary, because the IRC server does not echo PRIVMSG commands back to us.

Пред. | Начало | След.
ircg_lusers | Уровень выше | ircg_names


ircg_names

(PHP 4 >= 4.3.3, PHP 5 <= 5.0.4)

ircg_names -- Query visible usernames

Description

bool ircg_names ( int connection, string channel [, string target] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

See also ircg_get_username() and ircg_lusers().

Пред. | Начало | След.
ircg_msg | Уровень выше | ircg_nick


ircg_nick

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

ircg_nick -- Change nickname on server

Description

bool ircg_nick ( resource connection, string nick )

Change your nickname on the given connection to the one given in nick, if possible.

Will return TRUE on success and FALSE on failure.

Пред. | Начало | След.
ircg_names | Уровень выше | ircg_nickname_escape


ircg_nickname_escape

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

ircg_nickname_escape -- Encode special characters in nickname to be IRC-compliant

Description

string ircg_nickname_escape ( string nick )

Function ircg_nickname_escape() returns an encoded nickname specified by nick which is IRC-compliant.

See also: ircg_nickname_unescape()

Пред. | Начало | След.
ircg_nick | Уровень выше | ircg_nickname_unescape


ircg_nickname_unescape

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

ircg_nickname_unescape -- Decodes encoded nickname

Description

string ircg_nickname_unescape ( string nick )

Function ircg_nickname_unescape() returns a decoded nickname, which is specified in nick.

See also: ircg_nickname_escape()

Пред. | Начало | След.
ircg_nickname_escape | Уровень выше | ircg_notice


ircg_notice

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

ircg_notice -- Send a notice to a user on server

Description

bool ircg_notice ( resource connection, string recipient, string message )

This function will send the message text to the user nick on the server connected to by connection. IRC servers and other software will not automatically generate replies to NOTICEs in contrast to other message types.

Пред. | Начало | След.
ircg_nickname_unescape | Уровень выше | ircg_oper


ircg_oper

(PHP 4 >= 4.3.3, PHP 5 <= 5.0.4)

ircg_oper -- Elevates privileges to IRC OPER

Description

bool ircg_oper ( resource connection, string name, string password )

ircg_oper() will authenticate the logged in user on connection as an IRC operator. name and password must match a registered IRC operator account. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
ircg_notice | Уровень выше | ircg_part


ircg_part

(PHP 4 >= 4.0.4, PHP 5 <= 5.0.4)

ircg_part -- Leave a channel on server

Description

bool ircg_part ( resource connection, string channel )

Leave the channel channel on the server connected to by connection.

Пред. | Начало | След.
ircg_oper | Уровень выше | ircg_pconnect


ircg_pconnect

(PHP 4 >= 4.0.4, PHP 5 <= 5.0.4)

ircg_pconnect -- Connect to an IRC server

Description

resource ircg_pconnect ( string username [, string server_ip [, int server_port [, string msg_format [, array ctcp_messages [, array user_settings [, bool bailout_on_trivial]]]]]] )

ircg_pconnect() will try to establish a connection to an IRC server and return a connection resource handle for further use.

The only mandatory parameter is username, this will set your initial nickname on the server. server_ip and server_port are optional and default to 127.0.0.1 and 6667.

Замечание: For now parameter server_ip will not do any hostname lookups and will only accept IP addresses in numerical form. DNS lookups are expensive and should be done in the context of IRCG.

You can customize the output of IRC messages and events by selecting a format message set previously created with ircg_register_format_messages() by specifying the set's name in msg_format.

If you want to handle CTCP messages such as ACTION (/me), you need to define a mapping from CTCP type (e.g. ACTION) to a custom format string. Do this by passing an associative array as ctcp_messages. The keys of the array are the CTCP type and the respective value is the format message.

You can define "ident", "password", and "realname" tokens which are sent to the IRC server by setting these in an associative array. Pass that array as user_settings.

See also: ircg_disconnect(),
ircg_is_conn_alive(),
ircg_register_format_messages().

Пред. | Начало | След.
ircg_part | Уровень выше | ircg_register_format_messages


ircg_register_format_messages

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

ircg_register_format_messages -- Register a format message set

Description

bool ircg_register_format_messages ( string name, array messages )

With ircg_register_format_messages() you can customize the way your IRC output looks like or which script functions are invoked on the client side.

  • Plain channel message

  • Private message received

  • Private message sent

  • Some user leaves channel

  • Some user enters channel

  • Some user was kicked from the channel

  • Topic has been changed

  • Error

  • Fatal error

  • Join list end(?)

  • Self part(?)

  • Some user changes his nick

  • Some user quits his connection

  • Mass join begin

  • Mass join element

  • Mass join end

  • Whois user

  • Whois server

  • Whois idle

  • Whois channel

  • Whois end

  • Voice status change on user

  • Operator status change on user

  • Banlist

  • Banlist end

  • %f - from

  • %t - to

  • %c - channel

  • %r - plain message

  • %m - encoded message

  • %j - js encoded message

  • 1 - mod encode

  • 2 - nickname decode

See also: ircg_lookup_format_messages().

Пред. | Начало | След.
ircg_pconnect | Уровень выше | ircg_set_current


ircg_set_current

(PHP 4 >= 4.0.4, PHP 5 <= 5.0.4)

ircg_set_current -- Set current connection for output

Description

bool ircg_set_current ( resource connection )

Select the current HTTP connection for output in this execution context. Every output sent from the server connected to by connection will be copied to standard output while using default formatting or a format message set specified by ircg_register_format_messages().

See also: ircg_register_format_messages().

Пред. | Начало | След.
ircg_register_format_messages | Уровень выше | ircg_set_file


ircg_set_file

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.4)

ircg_set_file -- Set logfile for connection

Description

bool ircg_set_file ( resource connection, string path )

Function ircg_set_file() specifies a logfile path in which all output from connection connection will be logged. Returns TRUE on success, otherwise FALSE.

Пред. | Начало | След.
ircg_set_current | Уровень выше | ircg_set_on_die


ircg_set_on_die

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.4)

ircg_set_on_die -- Set action to be executed when connection dies

Description

bool ircg_set_on_die ( resource connection, string host, int port, string data )

In case of the termination of connection connection IRCG will connect to host at port (Note: host must be an IPv4 address, IRCG does not resolve host-names due to blocking issues), send data to the new host connection and will wait until the remote part closes connection. This can be used to trigger a PHP script for example.

This feature requires IRCG 3.

Пред. | Начало | След.
ircg_set_file | Уровень выше | ircg_topic


ircg_topic

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

ircg_topic -- Set topic for channel on server

Description

bool ircg_topic ( resource connection, string channel, string new_topic )

Change the topic for channel channel on the server connected to by connection to new_topic.

Пред. | Начало | След.
ircg_set_on_die | Уровень выше | ircg_who


ircg_who

(PHP 4 >= 4.3.3, PHP 5 <= 5.0.4)

ircg_who -- Queries server for WHO information

Description

bool ircg_who ( resource connection, string mask [, bool ops_only] )

ircg_who() will request a list of users whose nickname is matching mask on connected network connection. The optional parameter ops_only will shrink the list to server operators only.

The answer is sent to the output defined by ircg_set_file() or ircg_set_current(). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also: ircg_set_file(), and ircg_set_current().

Пред. | Начало | След.
ircg_topic | Уровень выше | ircg_whois


ircg_whois

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

ircg_whois -- Query server for user information

Description

bool ircg_whois ( resource connection, string nick )

Sends a query to the connected server connection to ask for information about the specified user nick.

Пред. | Начало | След.
ircg_who | Уровень выше | PHP / Java Integration


PHP / Java Integration

Руководство по PHP
Пред. След.

LXII. PHP / Java Integration

Введение

There are two possible ways to bridge PHP and Java: you can either integrate PHP into a Java Servlet environment, which is the more stable and efficient solution, or integrate Java support into PHP. The former is provided by a SAPI module that interfaces with the Servlet server, the latter by this Java extension.

The Java extension provides a simple and effective means for creating and invoking methods on Java objects from PHP. The JVM is created using JNI, and everything runs in-process.

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

Требования

You need a Java VM installed on your machine to use this extension.

Установка

Это расширение PECL не поставляется вместе с PHP.

В PHP 4 исходные файлы этого расширения PECL могут быть найдены в директории ext/ внутри исходных файлов PHP или по ссылке PECL выше. In order to use these functions you must compile PHP with Java support by using the --with-java[=DIR] where DIR points to the base install directory of your JDK. This extension can only be built as a shared extension. Additional build extensions can be found in php-src/ext/java/README.

Windows users will enable php_java.dll inside of php.ini in order to use these functions. В PHP 4 этот DLL находится в директории extensions/ внутри директории бинарного дистрибутива PHP для Windows. Вы можете скачать DLL этого расширения PECL со страницы PHP Downloads или http://snaps.php.net/.

Замечание: In order to enable this module on a Windows environment with PHP <= 4.0.6, you must make jvm.dll available to your systems PATH. No additional DLL is needed for PHP versions > 4.0.6.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Java configuration options

Name | Default | Changeable | Changelog
java.class.path | NULL | PHP_INI_ALL |
java.home | NULL | PHP_INI_ALL |
java.library.path | NULL | PHP_INI_ALL |
java.library | JAVALIB | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Примеры

Пример 1. Java Example

<?php
// get instance of Java class java.lang.System in PHP
$system = new Java('java.lang.System');

// demonstrate property access
echo 'Java version=' . $system->getProperty('java.version') . '<br />';
echo 'Java vendor=' . $system->getProperty('java.vendor') . '<br />';
echo 'OS=' . $system->getProperty('os.name') . ' ' .
             $system->getProperty('os.version') . ' on ' .
             $system->getProperty('os.arch') . ' <br />';

// java.util.Date example
$formatter = new Java('java.text.SimpleDateFormat',
                      "EEEE, MMMM dd, yyyy 'at' h:mm:ss a zzzz");

echo $formatter->format(new Java('java.util.Date'));
?>

Пример 2. AWT Example

<?php
// This example is only intended to be run as a CGI.

$frame  = new Java('java.awt.Frame', 'PHP');
$button = new Java('java.awt.Button', 'Hello Java World!');

$frame->add('North', $button);
$frame->validate();
$frame->pack();
$frame->visible = True;

$thread = new Java('java.lang.Thread');
$thread->sleep(10000);

$frame->dispose();
?>
Notes:

  • new Java() will create an instance of a class if a suitable constructor is available. If no parameters are passed and the default constructor is useful as it provides access to classes like java.lang.System which expose most of their functionallity through static methods.

  • Accessing a member of an instance will first look for bean properties then public fields. In other words, print $date.time will first attempt to be resolved as $date.getTime(), then as $date.time.

  • Both static and instance members can be accessed on an object with the same syntax. Furthermore, if the java object is of type java.lang.Class, then static members of the class (fields and methods) can be accessed.

  • Exceptions raised result in PHP warnings, and NULL results. The warnings may be eliminated by prefixing the method call with an "@" sign. The following APIs may be used to retrieve and reset the last error:

    • java_last_exception_get()

    • java_last_exception_clear()

  • Overload resolution is in general a hard problem given the differences in types between the two languages. The PHP Java extension employs a simple, but fairly effective, metric for determining which overload is the best match.

    Additionally, method names in PHP are not case sensitive, potentially increasing the number of overloads to select from.

    Once a method is selected, the parameters are coerced if necessary, possibly with a loss of data (example: double precision floating point numbers will be converted to boolean).

  • In the tradition of PHP, arrays and hashtables may pretty much be used interchangably. Note that hashtables in PHP may only be indexed by integers or strings; and that arrays of primitive types in Java can not be sparse. Also note that these constructs are passed by value, so may be expensive in terms of memory and time.

Java Servlet SAPI

The Java Servlet SAPI builds upon the mechanism defined by the Java extension to enable the entire PHP processor to be run as a servlet. The primary advantage of this from a PHP perspective is that web servers which support servlets typically take great care in pooling and reusing JVMs. Build instructions for the Servlet SAPI module can be found in php4/sapi/README. Notes:

  • While this code is intended to be able to run on any servlet engine, it has only been tested on Apache's Jakarta/tomcat to date. Bug reports, success stories and/or patches required to get this code to run on other engines would be appreciated.

  • PHP has a habit of changing the working directory. sapi/servlet will eventually change it back, but while PHP is running the servlet engine may not be able to load any classes from the CLASSPATH which are specified using a relative directory syntax, or find the work directory used for administration and JSP compilation tasks.

Содержание
java_last_exception_clear -- Clear last Java exception
java_last_exception_get -- Get last Java exception

Пред. | Начало | След.
ircg_whois | Уровень выше | java_last_exception_clear


java_last_exception_clear

(PHP 4 >= 4.0.2, PECL)

java_last_exception_clear -- Clear last Java exception

Description

void java_last_exception_clear ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

See java_last_exception_get() for an example.

Пред. | Начало | След.
PHP / Java Integration | Уровень выше | java_last_exception_get


java_last_exception_get

(PHP 4 >= 4.0.2, PECL)

java_last_exception_get -- Get last Java exception

Description

object java_last_exception_get ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

The following example demonstrates the usage of Java's exception handler from within PHP:

Пример 1. Java exception handler

<?php
$stack = new Java('java.util.Stack');
$stack->push(1);

// This should succeed
$result = $stack->pop();
$ex = java_last_exception_get();
if (!$ex) {
  echo "$result\n";
}

// This should fail (error suppressed by @)
$result = @$stack->pop();
$ex = java_last_exception_get();
if ($ex) {
  echo $ex->toString();
}

// Clear last exception
java_last_exception_clear();
?>

Пред. | Начало | След.
java_last_exception_clear | Уровень выше | KADM5


LDAP Functions

Руководство по PHP
Пред. След.

LXIV. LDAP Functions

Введение

LDAP is the Lightweight Directory Access Protocol, and is a protocol used to access "Directory Servers". The Directory is a special kind of database that holds information in a tree structure.

The concept is similar to your hard disk directory structure, except that in this context, the root directory is "The world" and the first level subdirectories are "countries". Lower levels of the directory structure contain entries for companies, organisations or places, while yet lower still we find directory entries for people, and perhaps equipment or documents.

To refer to a file in a subdirectory on your hard disk, you might use something like:

/usr/local/myapp/docs

The forwards slash marks each division in the reference, and the sequence is read from left to right.

The equivalent to the fully qualified file reference in LDAP is the "distinguished name", referred to simply as "dn". An example dn might be:

cn=John Smith,ou=Accounts,o=My Company,c=US

The comma marks each division in the reference, and the sequence is read from right to left. You would read this dn as:

country = US
organization = My Company
organizationalUnit = Accounts
commonName = John Smith

In the same way as there are no hard rules about how you organise the directory structure of a hard disk, a directory server manager can set up any structure that is meaningful for the purpose. However, there are some conventions that are used. The message is that you can not write code to access a directory server unless you know something about its structure, any more than you can use a database without some knowledge of what is available.

Lots of information about LDAP can be found at

  • Mozilla

  • OpenLDAP Project

The Netscape SDK contains a helpful Programmer's Guide in HTML format.

Требования

You will need to get and compile LDAP client libraries from either OpenLDAP or Bind9.net in order to compile PHP with LDAP support.

Установка

LDAP support in PHP is not enabled by default. You will need to use the --with-ldap[=DIR] configuration option when compiling PHP to enable LDAP support. DIR is the LDAP base install directory. To enable SASL support, be sure --with-ldap-sasl[=DIR] is used, and that sasl.h exists on the system.

Note to Win32 Users: In order to enable this module on a Windows environment, you must copy several files from the DLL folder of the PHP/Win32 binary package to the SYSTEM folder of your windows machine. (Ex: C:\WINNT\SYSTEM32, or C:\WINDOWS\SYSTEM). For PHP <= 4.2.0 copy libsasl.dll, for PHP >= 4.3.0 copy libeay32.dll and ssleay32.dll to your SYSTEM folder.

In order to use Oracle LDAP libraries, proper Oracle environment has to be set.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. LDAP configuration options

Name | Default | Changeable | Changelog
ldap.max_links | "-1" | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

LDAP_DEREF_NEVER (integer)

LDAP_DEREF_SEARCHING (integer)

LDAP_DEREF_FINDING (integer)

LDAP_DEREF_ALWAYS (integer)

LDAP_OPT_DEREF (integer)

LDAP_OPT_SIZELIMIT (integer)

LDAP_OPT_TIMELIMIT (integer)

LDAP_OPT_PROTOCOL_VERSION (integer)

LDAP_OPT_ERROR_NUMBER (integer)

LDAP_OPT_REFERRALS (integer)

LDAP_OPT_RESTART (integer)

LDAP_OPT_HOST_NAME (integer)

LDAP_OPT_ERROR_STRING (integer)

LDAP_OPT_MATCHED_DN (integer)

LDAP_OPT_SERVER_CONTROLS (integer)

LDAP_OPT_CLIENT_CONTROLS (integer)

LDAP_OPT_DEBUG_LEVEL (integer)

GSLC_SSL_NO_AUTH (integer)

GSLC_SSL_ONEWAY_AUTH (integer)

GSLC_SSL_TWOWAY_AUTH (integer)

Примеры

Retrieve information for all entries where the surname starts with "S" from a directory server, displaying an extract with name and email address.

Пример 1. LDAP search example

<?php
// basic sequence with LDAP is connect, bind, search, interpret search
// result, close connection

echo "<h3>LDAP query test</h3>";
echo "Connecting ...";
$ds=ldap_connect("localhost");  // must be a valid LDAP server!
echo "connect result is " . $ds . "<br />";

if ($ds) {
    echo "Binding ...";
    $r=ldap_bind($ds);     // this is an "anonymous" bind, typically
                           // read-only access
    echo "Bind result is " . $r . "<br />";

    echo "Searching for (sn=S*) ...";
    // Search surname entry
    $sr=ldap_search($ds, "o=My Company, c=US", "sn=S*");
    echo "Search result is " . $sr . "<br />";

    echo "Number of entires returned is " . ldap_count_entries($ds, $sr) . "<br />";

    echo "Getting entries ...<p>";
    $info = ldap_get_entries($ds, $sr);
    echo "Data for " . $info["count"] . " items returned:<p>";

    for ($i=0; $i<$info["count"]; $i++) {
        echo "dn is: " . $info[$i]["dn"] . "<br />";
        echo "first cn entry is: " . $info[$i]["cn"][0] . "<br />";
        echo "first email entry is: " . $info[$i]["mail"][0] . "<br /><hr />";
    }

    echo "Closing connection";
    ldap_close($ds);

} else {
    echo "<h4>Unable to connect to LDAP server</h4>";
}
?>

Using the PHP LDAP calls

Before you can use the LDAP calls you will need to know ..

  • The name or address of the directory server you will use

  • The "base dn" of the server (the part of the world directory that is held on this server, which could be "o=My Company,c=US")

  • Whether you need a password to access the server (many servers will provide read access for an "anonymous bind" but require a password for anything else)

The typical sequence of LDAP calls you will make in an application will follow this pattern:

ldap_connect() // establish connection to server
|
ldap_bind() // anonymous or authenticated "login"
|
do something like search or update the directory
and display the results
|
ldap_close() // "logout"

Содержание
ldap_8859_to_t61 -- Translate 8859 characters to t61 characters
ldap_add -- Add entries to LDAP directory
ldap_bind -- Bind to LDAP directory
ldap_close -- Alias of ldap_unbind()
ldap_compare -- Compare value of attribute found in entry specified with DN
ldap_connect -- Connect to an LDAP server
ldap_count_entries -- Count the number of entries in a search
ldap_delete -- Delete an entry from a directory
ldap_dn2ufn -- Convert DN to User Friendly Naming format
ldap_err2str -- Convert LDAP error number into string error message
ldap_errno -- Return the LDAP error number of the last LDAP command
ldap_error -- Return the LDAP error message of the last LDAP command
ldap_explode_dn -- Splits DN into its component parts
ldap_first_attribute -- Return first attribute
ldap_first_entry -- Return first result id
ldap_first_reference -- Return first reference
ldap_free_result -- Free result memory
ldap_get_attributes -- Get attributes from a search result entry
ldap_get_dn -- Get the DN of a result entry
ldap_get_entries -- Get all result entries
ldap_get_option -- Get the current value for given option
ldap_get_values_len -- Get all binary values from a result entry
ldap_get_values -- Get all values from a result entry
ldap_list -- Single-level search
ldap_mod_add -- Add attribute values to current attributes
ldap_mod_del -- Delete attribute values from current attributes
ldap_mod_replace -- Replace attribute values with new ones
ldap_modify -- Modify an LDAP entry
ldap_next_attribute -- Get the next attribute in result
ldap_next_entry -- Get next result entry
ldap_next_reference -- Get next reference
ldap_parse_reference -- Extract information from reference entry
ldap_parse_result -- Extract information from result
ldap_read -- Read an entry
ldap_rename -- Modify the name of an entry
ldap_sasl_bind -- Bind to LDAP directory using SASL
ldap_search -- Search LDAP tree
ldap_set_option -- Set the value of the given option
ldap_set_rebind_proc -- Set a callback function to do re-binds on referral chasing
ldap_sort -- Sort LDAP result entries
ldap_start_tls -- Start TLS
ldap_t61_to_8859 -- Translate t61 characters to 8859 characters
ldap_unbind -- Unbind from LDAP directory

Пред. | Начало | След.
kadm5_modify_principal | Уровень выше | ldap_8859_to_t61


ldap_8859_to_t61

(PHP 4 >= 4.0.2, PHP 5)

ldap_8859_to_t61 -- Translate 8859 characters to t61 characters

Description

string ldap_8859_to_t61 ( string value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
LDAP Functions | Уровень выше | ldap_add


ldap_add

(PHP 3, PHP 4, PHP 5)

ldap_add -- Add entries to LDAP directory

Description

bool ldap_add ( resource link_identifier, string dn, array entry )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

The ldap_add() function is used to add entries in the LDAP directory. The DN of the entry to be added is specified by dn. Array entry specifies the information about the entry. The values in the entries are indexed by individual attributes. In case of multiple values for an attribute, they are indexed using integers starting with 0.

<?php
$entree["attribut1"] = "value";
$entree["attribut2"][0] = "value1";
$entree["attribut2"][1] = "value2";
?>

Пример 1. Complete example with authenticated bind

<?php
$ds=ldap_connect("localhost");  // assuming the LDAP server is on this host

if ($ds) {
    // bind with appropriate dn to give update access
    $r=ldap_bind($ds, "cn=root, o=My Company, c=US", "secret");

    // prepare data
    $info["cn"]="John Jones";
    $info["sn"]="Jones";
    $info["mail"]="jonj@example.com";
    $info["objectclass"]="person";

    // add data to directory
    $r=ldap_add($ds, "cn=John Jones, o=My Company, c=US", $info);

    ldap_close($ds);
} else {
    echo "Unable to connect to LDAP server";
}
?>

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Пред. | Начало | След.
ldap_8859_to_t61 | Уровень выше | ldap_bind


ldap_bind

(PHP 3, PHP 4, PHP 5)

ldap_bind -- Bind to LDAP directory

Description

bool ldap_bind ( resource link_identifier [, string bind_rdn [, string bind_password]] )

Binds to the LDAP directory with specified RDN and password. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

ldap_bind() does a bind operation on the directory. bind_rdn and bind_password are optional. If not specified, anonymous bind is attempted.

Пример 1. Using LDAP Bind

<?php

// using ldap bind
$ldaprdn  = 'uname';     // ldap rdn or dn
$ldappass = 'password';  // associated password

// connect to ldap server
$ldapconn = ldap_connect("ldap.example.com")
    or die("Could not connect to LDAP server.");

if ($ldapconn) {

    // binding to ldap server
    $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);

    // verify binding
    if ($ldapbind) {
        echo "LDAP bind successful...";
    } else {
        echo "LDAP bind failed...";
    }

}

?>

Пример 2. Using LDAP Bind Anonymously

<?php

//using ldap bind anonymously

// connect to ldap server
$ldapconn = ldap_connect("ldap.example.com")
    or die("Could not connect to LDAP server.");

if ($ldapconn) {

    // binding anonymously
    $ldapbind = ldap_bind($ldapconn);

    if ($ldapbind) {
        echo "LDAP bind anonymous successful...";
    } else {
        echo "LDAP bind anonymous failed...";
    }

}

?>

Пред. | Начало | След.
ldap_add | Уровень выше | ldap_close


ldap_close

(PHP 3, PHP 4, PHP 5)

ldap_close -- Alias of ldap_unbind()

Описание

This function is an alias of: ldap_unbind().

Пред. | Начало | След.
ldap_bind | Уровень выше | ldap_compare


ldap_compare

(PHP 4 >= 4.0.2, PHP 5)

ldap_compare -- Compare value of attribute found in entry specified with DN

Description

mixed ldap_compare ( resource link_identifier, string dn, string attribute, string value )

Returns TRUE if value matches otherwise returns FALSE. Returns -1 on error.

ldap_compare() is used to compare value of attribute to value of same attribute in LDAP directory entry specified with dn.

The following example demonstrates how to check whether or not given password matches the one defined in DN specified entry.

Пример 1. Complete example of password check

<?php

$ds=ldap_connect("localhost");  // assuming the LDAP server is on this host

if ($ds) {

    // bind
    if (ldap_bind($ds)) {

        // prepare data
        $dn = "cn=Matti Meikku, ou=My Unit, o=My Company, c=FI";
        $value = "secretpassword";
        $attr = "password";

        // compare value
        $r=ldap_compare($ds, $dn, $attr, $value);

        if ($r === -1) {
            echo "Error: " . ldap_error($ds);
        } elseif ($r === true) {
            echo "Password correct.";
        } elseif ($r === false) {
            echo "Wrong guess! Password incorrect.";
        }

    } else {
        echo "Unable to bind to LDAP server.";
    }

    ldap_close($ds);

} else {
    echo "Unable to connect to LDAP server.";
}
?>

Внимание

ldap_compare() can NOT be used to compare BINARY values!

Замечание: This function was added in 4.0.2.

Пред. | Начало | След.
ldap_close | Уровень выше | ldap_connect


ldap_connect

(PHP 3, PHP 4, PHP 5)

ldap_connect -- Connect to an LDAP server

Description

resource ldap_connect ( [string hostname [, int port]] )

Returns a positive LDAP link identifier on success, or FALSE on error. When OpenLDAP 2.x.x is used, ldap_connect() will always return a resource as it does not actually connect but just initializes the connecting parameters. The actual connect happens with the next calls to ldap_* funcs, usually with ldap_bind().

ldap_connect() establishes a connection to a LDAP server on a specified hostname and port. Both the arguments are optional. If no arguments are specified then the link identifier of the already opened link will be returned. If only hostname is specified, then the port defaults to 389.

If you are using OpenLDAP 2.x.x you can specify a URL instead of the hostname. To use LDAP with SSL, compile OpenLDAP 2.x.x with SSL support, configure PHP with SSL, and use ldaps://hostname/ as host parameter. The port parameter is not used when using URLs.

Замечание: URL and SSL support were added in 4.0.4.

Пример 1. Example of connecting to LDAP server.

<?php

// LDAP variables
$ldaphost = "ldap.example.com";  // your ldap servers
$ldapport = 389;                 // your ldap server's port number

// Connecting to LDAP
$ldapconn = ldap_connect($ldaphost, $ldapport)
          or die("Could not connect to $ldaphost");

?>

Пример 2. Example of connecting securely to LDAP server.

<?php

// make sure your host is the correct one
// that you issued your secure certificate to
$ldaphost = "ldaps://ldap.example.com/";

// Connecting to LDAP
$ldapconn = ldap_connect($ldaphost)
          or die("Could not connect to {$ldaphost}");

?>

See also ldap_bind().

Пред. | Начало | След.
ldap_compare | Уровень выше | ldap_count_entries


ldap_count_entries

(PHP 3, PHP 4, PHP 5)

ldap_count_entries -- Count the number of entries in a search

Description

int ldap_count_entries ( resource link_identifier, resource result_identifier )

Returns number of entries in the result or FALSE on error.

ldap_count_entries() returns the number of entries stored in the result of previous search operations. result_identifier identifies the internal ldap result.

Пред. | Начало | След.
ldap_connect | Уровень выше | ldap_delete


ldap_delete

(PHP 3, PHP 4, PHP 5)

ldap_delete -- Delete an entry from a directory

Description

bool ldap_delete ( resource link_identifier, string dn )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

ldap_delete() function delete a particular entry in LDAP directory specified by dn.

Пред. | Начало | След.
ldap_count_entries | Уровень выше | ldap_dn2ufn


ldap_dn2ufn

(PHP 3, PHP 4, PHP 5)

ldap_dn2ufn -- Convert DN to User Friendly Naming format

Description

string ldap_dn2ufn ( string dn )

ldap_dn2ufn() function is used to turn a DN, specified by dn, into a more user-friendly form, stripping off type names.

Пред. | Начало | След.
ldap_delete | Уровень выше | ldap_err2str


ldap_err2str

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ldap_err2str -- Convert LDAP error number into string error message

Description

string ldap_err2str ( int errno )

Returns string error message.

This function returns the string error message explaining the error number errno. While LDAP errno numbers are standardized, different libraries return different or even localized textual error messages. Never check for a specific error message text, but always use an error number to check.

See also ldap_errno() and ldap_error().

Пример 1. Enumerating all LDAP error messages

<?php
  for ($i=0; $i<100; $i++) {
    printf("Error $i: %s<br />\n", ldap_err2str($i));
  }
?>

Пред. | Начало | След.
ldap_dn2ufn | Уровень выше | ldap_errno


ldap_errno

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

ldap_errno -- Return the LDAP error number of the last LDAP command

Description

int ldap_errno ( resource link_identifier )

Return the LDAP error number of the last LDAP command for this link.

This function returns the standardized error number returned by the last LDAP command for the given link_identifier. This number can be converted into a textual error message using ldap_err2str().

Unless you lower your warning level in your php.ini sufficiently or prefix your LDAP commands with @ (at) characters to suppress warning output, the errors generated will also show up in your HTML output.

Пример 1. Generating and catching an error

<?php
// This example contains an error, which we will catch.
$ld = ldap_connect("localhost");
$bind = ldap_bind($ld);
// syntax error in filter expression (errno 87),
// must be "objectclass=*" to work.
$res =  @ldap_search($ld, "o=Myorg, c=DE", "objectclass");
if (!$res) {
    echo "LDAP-Errno: " . ldap_errno($ld) . "<br />\n";
    echo "LDAP-Error: " . ldap_error($ld) . "<br />\n";
    die("Argh!<br />\n");
}
$info = ldap_get_entries($ld, $res);
echo $info["count"] . " matching entries.<br />\n";
?>

See also ldap_err2str() and ldap_error().

Пред. | Начало | След.
ldap_err2str | Уровень выше | ldap_error


ldap_error

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

ldap_error -- Return the LDAP error message of the last LDAP command

Description

string ldap_error ( resource link_identifier )

Returns string error message.

This function returns the string error message explaining the error generated by the last LDAP command for the given link_identifier While LDAP errno numbers are standardized, different libraries return different or even localized textual error messages. Never check for a specific error message text, but always use an error number to check.

Unless you lower your warning level in your php.ini sufficiently or prefix your LDAP commands with @ (at) characters to suppress warning output, the errors generated will also show up in your HTML output.

See also ldap_err2str() and ldap_errno().

Пред. | Начало | След.
ldap_errno | Уровень выше | ldap_explode_dn


ldap_explode_dn

(PHP 3, PHP 4, PHP 5)

ldap_explode_dn -- Splits DN into its component parts

Description

array ldap_explode_dn ( string dn, int with_attrib )

ldap_explode_dn() function is used to split the DN returned by ldap_get_dn() and breaks it up into its component parts. Each part is known as Relative Distinguished Name, or RDN. ldap_explode_dn() returns an array of all those components. with_attrib is used to request if the RDNs are returned with only values or their attributes as well. To get RDNs with the attributes (i.e. in attribute=value format) set with_attrib to 0 and to get only values set it to 1.

Пред. | Начало | След.
ldap_error | Уровень выше | ldap_first_attribute


ldap_first_attribute

(PHP 3, PHP 4, PHP 5)

ldap_first_attribute -- Return first attribute

Description

string ldap_first_attribute ( resource link_identifier, resource result_entry_identifier, int &ber_identifier )

Returns the first attribute in the entry on success and FALSE on error.

Similar to reading entries, attributes are also read one by one from a particular entry. ldap_first_attribute() returns the first attribute in the entry pointed by the result_entry_identifier. Remaining attributes are retrieved by calling ldap_next_attribute() successively. ber_identifier is the identifier to internal memory location pointer. It is passed by reference. The same ber_identifier is passed to the ldap_next_attribute() function, which modifies that pointer.

See also ldap_get_attributes()

Пред. | Начало | След.
ldap_explode_dn | Уровень выше | ldap_first_entry


ldap_first_entry

(PHP 3, PHP 4, PHP 5)

ldap_first_entry -- Return first result id

Description

resource ldap_first_entry ( resource link_identifier, resource result_identifier )

Returns the result entry identifier for the first entry on success and FALSE on error.

Entries in the LDAP result are read sequentially using the ldap_first_entry() and ldap_next_entry() functions. ldap_first_entry() returns the entry identifier for first entry in the result. This entry identifier is then supplied to ldap_next_entry() routine to get successive entries from the result.

See also ldap_get_entries().

Пред. | Начало | След.
ldap_first_attribute | Уровень выше | ldap_first_reference


ldap_first_reference

(PHP 4 >= 4.0.5, PHP 5)

ldap_first_reference -- Return first reference

Description

resource ldap_first_reference ( resource link, resource result )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ldap_first_entry | Уровень выше | ldap_free_result


ldap_free_result

(PHP 3, PHP 4, PHP 5)

ldap_free_result -- Free result memory

Description

bool ldap_free_result ( resource result_identifier )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

ldap_free_result() frees up the memory allocated internally to store the result and pointed by the result_identifier. All result memory will be automatically freed when the script terminates.

Typically all the memory allocated for the ldap result gets freed at the end of the script. In case the script is making successive searches which return large result sets, ldap_free_result() could be called to keep the runtime memory usage by the script low.

Пред. | Начало | След.
ldap_first_reference | Уровень выше | ldap_get_attributes


ldap_get_attributes

(PHP 3, PHP 4, PHP 5)

ldap_get_attributes -- Get attributes from a search result entry

Description

array ldap_get_attributes ( resource link_identifier, resource result_entry_identifier )

Returns a complete entry information in a multi-dimensional array on success and FALSE on error.

ldap_get_attributes() function is used to simplify reading the attributes and values from an entry in the search result. The return value is a multi-dimensional array of attributes and values.

Having located a specific entry in the directory, you can find out what information is held for that entry by using this call. You would use this call for an application which "browses" directory entries and/or where you do not know the structure of the directory entries. In many applications you will be searching for a specific attribute such as an email address or a surname, and won't care what other data is held.

return_value["count"] = number of attributes in the entry
return_value[0] = first attribute
return_value[n] = nth attribute

return_value["attribute"]["count"] = number of values for attribute
return_value["attribute"][0] = first value of the attribute
return_value["attribute"][i] = (i+1)th value of the attribute

Пример 1. Show the list of attributes held for a particular directory entry

<?php
// $ds is the link identifier for the directory

// $sr is a valid search result from a prior call to
// one of the ldap directory search calls

$entry = ldap_first_entry($ds, $sr);

$attrs = ldap_get_attributes($ds, $entry);

echo $attrs["count"] . " attributes held for this entry:<p>";

for ($i=0; $i<$attrs["count"]; $i++) {
    echo $attrs[$i] . "<br />";
}
?>

See also ldap_first_attribute() and ldap_next_attribute().

Пред. | Начало | След.
ldap_free_result | Уровень выше | ldap_get_dn


ldap_get_dn

(PHP 3, PHP 4, PHP 5)

ldap_get_dn -- Get the DN of a result entry

Description

string ldap_get_dn ( resource link_identifier, resource result_entry_identifier )

Returns the DN of the result entry and FALSE on error.

ldap_get_dn() function is used to find out the DN of an entry in the result.

Пред. | Начало | След.
ldap_get_attributes | Уровень выше | ldap_get_entries


ldap_get_entries

(PHP 3, PHP 4, PHP 5)

ldap_get_entries -- Get all result entries

Description

array ldap_get_entries ( resource link_identifier, resource result_identifier )

Returns a complete result information in a multi-dimensional array on success and FALSE on error.

ldap_get_entries() function is used to simplify reading multiple entries from the result, specified with result_identifier, and then reading the attributes and multiple values. The entire information is returned by one function call in a multi-dimensional array. The structure of the array is as follows.

The attribute index is converted to lowercase. (Attributes are case-insensitive for directory servers, but not when used as array indices.)

return_value["count"] = number of entries in the result
return_value[0] : refers to the details of first entry

return_value[i]["dn"] =  DN of the ith entry in the result

return_value[i]["count"] = number of attributes in ith entry
return_value[i][j] = jth attribute in the ith entry in the result

return_value[i]["attribute"]["count"] = number of values for
                                        attribute in ith entry
return_value[i]["attribute"][j] = jth value of attribute in ith entry

See also ldap_first_entry() and ldap_next_entry().

Пред. | Начало | След.
ldap_get_dn | Уровень выше | ldap_get_option


ldap_get_option

(PHP 4 >= 4.0.4, PHP 5)

ldap_get_option -- Get the current value for given option

Description

bool ldap_get_option ( resource link_identifier, int option, mixed &retval )

Sets retval to the value of the specified option. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

The parameter option can be one of: LDAP_OPT_DEREF, LDAP_OPT_SIZELIMIT, LDAP_OPT_TIMELIMIT, LDAP_OPT_PROTOCOL_VERSION, LDAP_OPT_ERROR_NUMBER, LDAP_OPT_REFERRALS, LDAP_OPT_RESTART, LDAP_OPT_HOST_NAME, LDAP_OPT_ERROR_STRING, LDAP_OPT_MATCHED_DN. These are described in draft-ietf-ldapext-ldap-c-api-xx.txt

Замечание: This function is only available when using OpenLDAP 2.x.x OR Netscape Directory SDK x.x, and was added in PHP 4.0.4

Пример 1. Check protocol version

<?php
// $ds is a valid link identifier for a directory server
if (ldap_get_option($ds, LDAP_OPT_PROTOCOL_VERSION, $version)) {
    echo "Using protocol version $version\n";
} else {
    echo "Unable to determine protocol version\n";
}
?>

See also ldap_set_option().

Пред. | Начало | След.
ldap_get_entries | Уровень выше | ldap_get_values_len


ldap_get_values_len

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

ldap_get_values_len -- Get all binary values from a result entry

Description

array ldap_get_values_len ( resource link_identifier, resource result_entry_identifier, string attribute )

Returns an array of values for the attribute on success and FALSE on error.

ldap_get_values_len() function is used to read all the values of the attribute in the entry in the result. entry is specified by the result_entry_identifier. The number of values can be found by indexing "count" in the resultant array. Individual values are accessed by integer index in the array. The first index is 0.

This function is used exactly like ldap_get_values() except that it handles binary data and not string data.

Замечание: This function was added in 4.0.

Пред. | Начало | След.
ldap_get_option | Уровень выше | ldap_get_values


ldap_get_values

(PHP 3, PHP 4, PHP 5)

ldap_get_values -- Get all values from a result entry

Description

array ldap_get_values ( resource link_identifier, resource result_entry_identifier, string attribute )

Returns an array of values for the attribute on success and FALSE on error.

ldap_get_values() function is used to read all the values of the attribute in the entry in the result. entry is specified by the result_entry_identifier. The number of values can be found by indexing "count" in the resultant array. Individual values are accessed by integer index in the array. The first index is 0.

This call needs a result_entry_identifier, so needs to be preceded by one of the ldap search calls and one of the calls to get an individual entry.

You application will either be hard coded to look for certain attributes (such as "surname" or "mail") or you will have to use the ldap_get_attributes() call to work out what attributes exist for a given entry.

LDAP allows more than one entry for an attribute, so it can, for example, store a number of email addresses for one person's directory entry all labeled with the attribute "mail"

return_value["count"] = number of values for attribute
return_value[0] = first value of attribute
return_value[i] = ith value of attribute

Пример 1. List all values of the "mail" attribute for a directory entry

<?php
// $ds is a valid link identifier for a directory server

// $sr is a valid search result from a prior call to
//     one of the ldap directory search calls

// $entry is a valid entry identifier from a prior call to
//        one of the calls that returns a directory entry

$values = ldap_get_values($ds, $entry, "mail");

echo $values["count"] . " email addresses for this entry.<br />";

for ($i=0; $i < $values["count"]; $i++) {
    echo $values[$i] . "<br />";
}
?>

Пред. | Начало | След.
ldap_get_values_len | Уровень выше | ldap_list


ldap_list

(PHP 3, PHP 4, PHP 5)

ldap_list -- Single-level search

Description

resource ldap_list ( resource link_identifier, string base_dn, string filter [, array attributes [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]] )

Returns a search result identifier or FALSE on error.

ldap_list() performs the search for a specified filter on the directory with the scope LDAP_SCOPE_ONELEVEL.

LDAP_SCOPE_ONELEVEL means that the search should only return information that is at the level immediately below the base_dn given in the call. (Equivalent to typing "ls" and getting a list of files and folders in the current working directory.)

This call takes 5 optional parameters. See ldap_search() notes.

Замечание: These optional parameters were added in 4.0.2: attrsonly, sizelimit, timelimit, deref.

Пример 1. Produce a list of all organizational units of an organization

// $ds is a valid link identifier for a directory server

$basedn = "o=My Company, c=US";
$justthese = array("ou");

$sr=ldap_list($ds, $basedn, "ou=*", $justthese);

$info = ldap_get_entries($ds, $sr);

for ($i=0; $i<$info["count"]; $i++) {
    echo $info[$i]["ou"][0] ;
}

Замечание: From 4.0.5 on it's also possible to do parallel searches. See ldap_search() for details.

Пред. | Начало | След.
ldap_get_values | Уровень выше | ldap_mod_add


ldap_mod_add

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

ldap_mod_add -- Add attribute values to current attributes

Description

bool ldap_mod_add ( resource link_identifier, string dn, array entry )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function adds attribute(s) to the specified dn. It performs the modification at the attribute level as opposed to the object level. Object-level additions are done by the ldap_add() function.

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Пред. | Начало | След.
ldap_list | Уровень выше | ldap_mod_del


ldap_mod_del

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

ldap_mod_del -- Delete attribute values from current attributes

Description

bool ldap_mod_del ( resource link_identifier, string dn, array entry )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function removes attribute(s) from the specified dn. It performs the modification at the attribute level as opposed to the object level. Object-level deletions are done by the ldap_delete() function.

Пред. | Начало | След.
ldap_mod_add | Уровень выше | ldap_mod_replace


ldap_mod_replace

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

ldap_mod_replace -- Replace attribute values with new ones

Description

bool ldap_mod_replace ( resource link_identifier, string dn, array entry )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function replaces attribute(s) from the specified dn. It performs the modification at the attribute level as opposed to the object level. Object-level modifications are done by the ldap_modify() function.

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Пред. | Начало | След.
ldap_mod_del | Уровень выше | ldap_modify


ldap_modify

(PHP 3, PHP 4, PHP 5)

ldap_modify -- Modify an LDAP entry

Description

bool ldap_modify ( resource link_identifier, string dn, array entry )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

ldap_modify() function is used to modify the existing entries in the LDAP directory. The structure of the entry is same as in ldap_add().

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Пред. | Начало | След.
ldap_mod_replace | Уровень выше | ldap_next_attribute


ldap_next_attribute

(PHP 3, PHP 4, PHP 5)

ldap_next_attribute -- Get the next attribute in result

Description

string ldap_next_attribute ( resource link_identifier, resource result_entry_identifier, resource &ber_identifier )

Returns the next attribute in an entry on success and FALSE on error.

ldap_next_attribute() is called to retrieve the attributes in an entry. The internal state of the pointer is maintained by the ber_identifier. It is passed by reference to the function. The first call to ldap_next_attribute() is made with the result_entry_identifier returned from ldap_first_attribute().

See also ldap_get_attributes()

Пред. | Начало | След.
ldap_modify | Уровень выше | ldap_next_entry


ldap_next_entry

(PHP 3, PHP 4, PHP 5)

ldap_next_entry -- Get next result entry

Description

resource ldap_next_entry ( resource link_identifier, resource result_entry_identifier )

Returns entry identifier for the next entry in the result whose entries are being read starting with ldap_first_entry(). If there are no more entries in the result then it returns FALSE.

ldap_next_entry() function is used to retrieve the entries stored in the result. Successive calls to the ldap_next_entry() return entries one by one till there are no more entries. The first call to ldap_next_entry() is made after the call to ldap_first_entry() with the result_entry_identifier as returned from the ldap_first_entry().

See also ldap_get_entries()

Пред. | Начало | След.
ldap_next_attribute | Уровень выше | ldap_next_reference


ldap_next_reference

(PHP 4 >= 4.0.5, PHP 5)

ldap_next_reference -- Get next reference

Description

resource ldap_next_reference ( resource link, resource entry )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ldap_next_entry | Уровень выше | ldap_parse_reference


ldap_parse_reference

(PHP 4 >= 4.0.5, PHP 5)

ldap_parse_reference -- Extract information from reference entry

Description

bool ldap_parse_reference ( resource link, resource entry, array &referrals )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ldap_next_reference | Уровень выше | ldap_parse_result


ldap_parse_result

(PHP 4 >= 4.0.5, PHP 5)

ldap_parse_result -- Extract information from result

Description

bool ldap_parse_result ( resource link, resource result, int &errcode [, string &matcheddn [, string &errmsg [, array &referrals]]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ldap_parse_reference | Уровень выше | ldap_read


ldap_read

(PHP 3, PHP 4, PHP 5)

ldap_read -- Read an entry

Description

resource ldap_read ( resource link_identifier, string base_dn, string filter [, array attributes [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]] )

Returns a search result identifier or FALSE on error.

ldap_read() performs the search for a specified filter on the directory with the scope LDAP_SCOPE_BASE. So it is equivalent to reading an entry from the directory.

An empty filter is not allowed. If you want to retrieve absolutely all information for this entry, use a filter of "objectClass=*". If you know which entry types are used on the directory server, you might use an appropriate filter such as "objectClass=inetOrgPerson".

This call takes 5 optional parameters. See ldap_search() notes.

Замечание: These optional parameters were added in 4.0.2: attrsonly, sizelimit, timelimit, deref.

From 4.0.5 on it's also possible to do parallel searches. See ldap_search() for details.

Пред. | Начало | След.
ldap_parse_result | Уровень выше | ldap_rename


ldap_rename

(PHP 4 >= 4.0.5, PHP 5)

ldap_rename -- Modify the name of an entry

Description

bool ldap_rename ( resource link_identifier, string dn, string newrdn, string newparent, bool deleteoldrdn )

The entry specified by dn is renamed/moved. The new RDN is specified by newrdn and the new parent/superior entry is specified by newparent. If the parameter deleteoldrdn is TRUE the old RDN value(s) is removed, else the old RDN value(s) is retained as non-distinguished values of the entry. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: This function currently only works with LDAPv3. You may have to use ldap_set_option() prior to binding to use LDAPv3. This function is only available when using OpenLDAP 2.x.x OR Netscape Directory SDK x.x, and was added in PHP 4.0.5.

Пред. | Начало | След.
ldap_read | Уровень выше | ldap_sasl_bind


ldap_sasl_bind

(PHP 5)

ldap_sasl_bind -- Bind to LDAP directory using SASL

Description

bool ldap_sasl_bind ( resource link [, string binddn [, string password [, string sasl_mech [, string sasl_realm [, string sasl_authz_id [, string props]]]]]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Requirement: ldap_sasl_bind() requires SASL support (sasl.h). Be sure --with-ldap-sasl is used when configuring PHP otherwise this function will be undefined.

Пред. | Начало | След.
ldap_rename | Уровень выше | ldap_search


ldap_search

(PHP 3, PHP 4, PHP 5)

ldap_search -- Search LDAP tree

Description

resource ldap_search ( resource link_identifier, string base_dn, string filter [, array attributes [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]] )

Returns a search result identifier or FALSE on error.

ldap_search() performs the search for a specified filter on the directory with the scope of LDAP_SCOPE_SUBTREE. This is equivalent to searching the entire directory. base_dn specifies the base DN for the directory.

There is an optional fourth parameter, that can be added to restrict the attributes and values returned by the server to just those required. This is much more efficient than the default action (which is to return all attributes and their associated values). The use of the fourth parameter should therefore be considered good practice.

The fourth parameter is a standard PHP string array of the required attributes, e.g. array("mail", "sn", "cn") Note that the "dn" is always returned irrespective of which attributes types are requested.

Note too that some directory server hosts will be configured to return no more than a preset number of entries. If this occurs, the server will indicate that it has only returned a partial results set. This occurs also if the sixth parameter sizelimit has been used to limit the count of fetched entries.

The fifth parameter attrsonly should be set to 1 if only attribute types are wanted. If set to 0 both attributes types and attribute values are fetched which is the default behaviour.

With the sixth parameter sizelimit it is possible to limit the count of entries fetched. Setting this to 0 means no limit. NOTE: This parameter can NOT override server-side preset sizelimit. You can set it lower though.

The seventh parameter timelimit sets the number of seconds how long is spend on the search. Setting this to 0 means no limit. NOTE: This parameter can NOT override server-side preset timelimit. You can set it lower though.

The eighth parameter deref specifies how aliases should be handled during the search. It can be one of the following:

  • LDAP_DEREF_NEVER - (default) aliases are never dereferenced.

  • LDAP_DEREF_SEARCHING - aliases should be dereferenced during the search but not when locating the base object of the search.

  • LDAP_DEREF_FINDING - aliases should be dereferenced when locating the base object but not during the search.

  • LDAP_DEREF_ALWAYS - aliases should be dereferenced always.

Замечание: These optional parameters were added in 4.0.2: attrsonly, sizelimit, timelimit, deref.

The search filter can be simple or advanced, using boolean operators in the format described in the LDAP documentation (see the Netscape Directory SDK for full information on filters).

The example below retrieves the organizational unit, surname, given name and email address for all people in "My Company" where the surname or given name contains the substring $person. This example uses a boolean filter to tell the server to look for information in more than one attribute.

Пример 1. LDAP search

<?php
// $ds is a valid link identifier for a directory server

// $person is all or part of a person's name, eg "Jo"

$dn = "o=My Company, c=US";
$filter="(|(sn=$person*)(givenname=$person*))";
$justthese = array("ou", "sn", "givenname", "mail");

$sr=ldap_search($ds, $dn, $filter, $justthese);

$info = ldap_get_entries($ds, $sr);

echo $info["count"]." entries returned\n";
?>

From 4.0.5 on it's also possible to do parallel searches. To do this you use an array of link identifiers, rather than a single identifier, as the first argument. If you don't want the same base DN and the same filter for all the searches, you can also use an array of base DNs and/or an array of filters. Those arrays must be of the same size as the link identifier array since the first entries of the arrays are used for one search, the second entries are used for another, and so on. When doing parallel searches an array of search result identifiers is returned, except in case of error, then the entry corresponding to the search will be FALSE. This is very much like the value normally returned, except that a result identifier is always returned when a search was made. There are some rare cases where the normal search returns FALSE while the parallel search returns an identifier.

Пред. | Начало | След.
ldap_sasl_bind | Уровень выше | ldap_set_option


ldap_set_option

(PHP 4 >= 4.0.4, PHP 5)

ldap_set_option -- Set the value of the given option

Description

bool ldap_set_option ( resource link_identifier, int option, mixed newval )

Sets the value of the specified option to be newval. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. on error.

The parameter option can be one of: LDAP_OPT_DEREF, LDAP_OPT_SIZELIMIT, LDAP_OPT_TIMELIMIT, LDAP_OPT_PROTOCOL_VERSION, LDAP_OPT_ERROR_NUMBER, LDAP_OPT_REFERRALS, LDAP_OPT_RESTART, LDAP_OPT_HOST_NAME, LDAP_OPT_ERROR_STRING, LDAP_OPT_MATCHED_DN, LDAP_OPT_SERVER_CONTROLS, LDAP_OPT_CLIENT_CONTROLS. Here's a brief description, see draft-ietf-ldapext-ldap-c-api-xx.txt for details.

The options LDAP_OPT_DEREF, LDAP_OPT_SIZELIMIT, LDAP_OPT_TIMELIMIT, LDAP_OPT_PROTOCOL_VERSION and LDAP_OPT_ERROR_NUMBER have integer value, LDAP_OPT_REFERRALS and LDAP_OPT_RESTART have boolean value, and the options LDAP_OPT_HOST_NAME, LDAP_OPT_ERROR_STRING and LDAP_OPT_MATCHED_DN have string value. The first example illustrates their use. The options LDAP_OPT_SERVER_CONTROLS and LDAP_OPT_CLIENT_CONTROLS require a list of controls, this means that the value must be an array of controls. A control consists of an oid identifying the control, an optional value, and an optional flag for criticality. In PHP a control is given by an array containing an element with the key oid and string value, and two optional elements. The optional elements are key value with string value and key iscritical with boolean value. iscritical defaults to FALSE if not supplied. See also the second example below.

Замечание: This function is only available when using OpenLDAP 2.x.x OR Netscape Directory SDK x.x, and was added in PHP 4.0.4.

Пример 1. Set protocol version

<?php
// $ds is a valid link identifier for a directory server
if (ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) {
    echo "Using LDAPv3";
} else {
    echo "Failed to set protocol version to 3";
}
?>

Пример 2. Set server controls

<?php
// $ds is a valid link identifier for a directory server
// control with no value
$ctrl1 = array("oid" => "1.2.752.58.10.1", "iscritical" => true);
// iscritical defaults to FALSE
$ctrl2 = array("oid" => "1.2.752.58.1.10", "value" => "magic");
// try to set both controls
if (!ldap_set_option($ds, LDAP_OPT_SERVER_CONTROLS, array($ctrl1, $ctrl2)))
    echo "Failed to set server controls";
?>

See also ldap_get_option().

Пред. | Начало | След.
ldap_search | Уровень выше | ldap_set_rebind_proc


ldap_set_rebind_proc

(PHP 4 >= 4.2.0, PHP 5)

ldap_set_rebind_proc -- Set a callback function to do re-binds on referral chasing

Description

bool ldap_set_rebind_proc ( resource link, callback callback )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ldap_set_option | Уровень выше | ldap_sort


ldap_sort

(PHP 4 >= 4.2.0, PHP 5)

ldap_sort -- Sort LDAP result entries

Description

bool ldap_sort ( resource link, resource result, string sortfilter )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ldap_set_rebind_proc | Уровень выше | ldap_start_tls


ldap_start_tls

(PHP 4 >= 4.2.0, PHP 5)

ldap_start_tls -- Start TLS

Description

bool ldap_start_tls ( resource link )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ldap_sort | Уровень выше | ldap_t61_to_8859


ldap_t61_to_8859

(PHP 4 >= 4.0.2, PHP 5)

ldap_t61_to_8859 -- Translate t61 characters to 8859 characters

Description

string ldap_t61_to_8859 ( string value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ldap_start_tls | Уровень выше | ldap_unbind


ldap_unbind

(PHP 3, PHP 4, PHP 5)

ldap_unbind -- Unbind from LDAP directory

Description

bool ldap_unbind ( resource link_identifier )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

ldap_unbind() function unbinds from the LDAP directory.

Пред. | Начало | След.
ldap_t61_to_8859 | Уровень выше | libxml Functions


libxml Functions

Руководство по PHP
Пред. След.

LXV. libxml Functions

Введение

These functions/constants are available since PHP 5.1.0 and if you have compiled one of the extensions based on libxml, like DOM, SimpleXML and XSLT.

Требования

This extension requires libxml >= 2.6.0.

Предопределенные классы

LibXMLError

Свойства

  • code - the error's code

  • column - the column where the error occurred. Please note that this property isn't entirely implemented in libxml and therefore 0 is often returned.

  • file - the filename, or empty if the XML was loaded from a string

  • level - the severity of the error (one of the following constants: LIBXML_ERR_WARNING, LIBXML_ERR_ERROR or LIBXML_ERR_FATAL)

  • line - the line where the error occurred

  • message - the error message

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

LIBXML_COMPACT (integer)

Activate small nodes allocation optimization. This may speed up your application without needing to change the code.

Замечание: Only available in Libxml >= 2.6.21

LIBXML_DTDATTR (integer)

Default DTD attributes

LIBXML_DTDLOAD (integer)

Load the external subset

LIBXML_DTDVALID (integer)

Validate with the DTD

LIBXML_NOBLANKS (integer)

Remove blank nodes

LIBXML_NOCDATA (integer)

Merge CDATA as text nodes

LIBXML_NOEMPTYTAG (integer)

Expand empty tags (e.g. <br/> to <br></br>)

Замечание: This option is currently just available in the DOMDocument->save() and DOMDocument->saveXML() functions.

LIBXML_NOENT (integer)

Substitute entities

LIBXML_NOERROR (integer)

Suppress error reports

LIBXML_NONET (integer)

Disable network access when loading documents

LIBXML_NOWARNING (integer)

Suppress warning reports

LIBXML_NOXMLDECL (integer)

Drop the XML declaration when saving a document

Замечание: Only available in Libxml >= 2.6.21

LIBXML_NSCLEAN (integer)

Remove redundant namespaces declarations

LIBXML_XINCLUDE (integer)

Implement XInclude substitution

LIBXML_ERR_ERROR (integer)

A recoverable error

LIBXML_ERR_FATAL (integer)

A fatal error

LIBXML_ERR_NONE (integer)

No errors

LIBXML_ERR_WARNING (integer)

A simple warning

LIBXML_VERSION (integer)

libxml version like 20605 or 20617

LIBXML_DOTTED_VERSION (string)

libxml version like 2.6.5 or 2.6.17

Содержание
libxml_clear_errors -- Clear libxml error buffer
libxml_get_errors -- Retrieve array of errors
libxml_get_last_error -- Retrieve last error from libxml
libxml_set_streams_context -- Set the streams context for the next libxml document load or write
libxml_use_internal_errors -- Disable libxml errors and allow user to fetch error information as needed

Пред. | Начало | След.
ldap_unbind | Уровень выше | libxml_clear_errors


libxml_clear_errors

(PHP 5 >= 5.1.0RC1)

libxml_clear_errors -- Clear libxml error buffer

Описание

void libxml_clear_errors ( void )

libxml_clear_errors() clears the libxml error buffer.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

libxml_get_errors()
libxml_get_last_error()

Пред. | Начало | След.
libxml Functions | Уровень выше | libxml_get_errors


libxml_get_errors

(PHP 5 >= 5.1.0RC1)

libxml_get_errors -- Retrieve array of errors

Описание

array libxml_get_errors ( void )

Retrieve array of errors.

Возвращаемые значения

Returns an array with LibXMLError objects if there are any errors in the buffer, or an empty array otherwise.

Примеры

Пример 1. A libxml_get_errors() example

This example demonstrates how to build a simple libxml error handler.

<?php

libxml_use_internal_errors(true);

$xmlstr = <<< XML
<?xml version='1.0' standalone='yes'?>
<movies>
 <movie>
  <titles>PHP: Behind the Parser</title>
 </movie>
</movies>
XML;

$doc = simplexml_load_string($xmlstr);
$xml = explode("\n", $xmlstr);

if (!$doc) {
    $errors = libxml_get_errors();

    foreach ($errors as $error) {
        echo display_xml_error($error, $xml);
    }

    libxml_clear_errors();
}

function display_xml_error($error, $xml)
{
    $return  = $xml[$error->line - 1] . "\n";
    $return .= str_repeat('-', $error->column) . "^\n";

    switch ($error->level) {
        case LIBXML_ERR_WARNING:
            $return .= "Warning $error->code: ";
            break;
         case LIBXML_ERR_ERROR:
            $return .= "Error $error->code: ";
            break;
        case LIBXML_ERR_FATAL:
            $return .= "Fatal Error $error->code: ";
            break;
    }

    $return .= trim($error->message) .
               "\n  Line: $error->line" .
               "\n  Column: $error->column";

    if ($error->file) {
        $return .= "\n  File: $error->file";
    }

    return "$return\n\n--------------------------------------------\n\n";
}

?>

Результат выполнения данного примера:

<titles>PHP: Behind the Parser</title>
^
Fatal Error 76: Opening and ending tag mismatch: titles line 4 and title
  Line: 4
  Column: 0

--------------------------------------------

Смотрите также

libxml_get_last_error()
libxml_clear_errors()

Пред. | Начало | След.
libxml_clear_errors | Уровень выше | libxml_get_last_error


libxml_get_last_error

(PHP 5 >= 5.1.0RC1)

libxml_get_last_error -- Retrieve last error from libxml

Описание

LibXMLError libxml_get_last_error ( void )

Retrieve last error from libxml.

Возвращаемые значения

Returns a LibXMLError object if there is any error in the buffer, FALSE otherwise.

Смотрите также

libxml_get_errors()
libxml_clear_errors()

Пред. | Начало | След.
libxml_get_errors | Уровень выше | libxml_set_streams_context


libxml_set_streams_context

(PHP 5)

libxml_set_streams_context -- Set the streams context for the next libxml document load or write

Описание

void libxml_set_streams_context ( resource streams_context )

Sets the streams context for the next libxml document load or write.

Список параметров

streams_context

The stream context resource (created with stream_context_create())

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример 1. A libxml_set_streams_context() example

<?php

$opts = array(
    'http' => array(
        'user_agent' => 'PHP libxml agent',
    )
);

$context = stream_context_create($opts);
libxml_set_streams_context($context);

// request a file through HTTP
$doc = DOMDocument::load('http://www.example.com/file.xml');

?>

Смотрите также

stream_context_create()

Пред. | Начало | След.
libxml_get_last_error | Уровень выше | libxml_use_internal_errors


libxml_use_internal_errors

(PHP 5 >= 5.1.0RC1)

libxml_use_internal_errors -- Disable libxml errors and allow user to fetch error information as needed

Описание

bool libxml_use_internal_errors ( [bool use_errors] )

libxml_use_internal_errors() allows you to disable standard libxml errors and enable user error handling.

Список параметров

use_errors

Whether to enable user error handling. Defaults to FALSE.

Возвращаемые значения

This function returns the previous value of use_errors.

Примеры

Пример 1. A libxml_use_internal_errors() example

This example demonstrates the basic usage of libxml errors and the value returned by this function.

<?php

// enable user error handling
var_dump(libxml_use_internal_errors(true));

$doc = DOMDocument::load('file.xml');

if (!$doc) {
    $errors = libxml_get_errors();
    foreach ($errors as $error) {
        // handle errors here
    }

    libxml_clear_errors();
}

?>

Результат выполнения данного примера:

bool(false)

Смотрите также

libxml_clear_errors()
libxml_get_errors()

Пред. | Начало | След.
libxml_set_streams_context | Уровень выше | Lotus Notes Functions


LZF Functions

Руководство по PHP
Пред. След.

LXVII. LZF Functions

Введение

LZF is a very fast compression algorithm, ideal for saving space with only slight speed cost. It can be optimized for speed or space at the time of compilation.

Установка

Это расширение PECL не поставляется вместе с PHP. Дополнительная информация, такая как новый версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, могут быть найдены здесь: http://pecl.php.net/package/lzf.

In order to use these functions you must compile PHP with lzf support by using the --with-lzf[=DIR] configure option. You may also pass --enable-lzf-better-compression to optimize LZF for space rather then speed.

Windows users will enable php_lzf.dll inside of php.ini in order to use these functions. Вы можете скачать DLL этого расширения PECL со страницы PHP Downloads или http://snaps.php.net/.

Содержание
lzf_compress -- LZF compression
lzf_decompress -- LZF decompression
lzf_optimized_for -- Determines what LZF extension was optimized for

Пред. | Начало | След.
notes_version | Уровень выше | lzf_compress


lzf_compress

(PECL)

lzf_compress -- LZF compression

Описание

string lzf_compress ( string data )

lzf_compress() compresses the given data.

Список параметров

data

The string to compress.

Возвращаемые значения

Returns the compressed data or FALSE if an error occurred.

Смотрите также

lzf_decompress()

Пред. | Начало | След.
LZF Functions | Уровень выше | lzf_decompress


lzf_decompress

(PECL)

lzf_decompress -- LZF decompression

Описание

string lzf_decompress ( string data )

lzf_compress() decompresses the given data.

Список параметров

data

The compressed string.

Возвращаемые значения

Returns the decompressed data or FALSE if an error occurred.

Смотрите также

lzf_compress()

Пред. | Начало | След.
lzf_compress | Уровень выше | lzf_optimized_for


lzf_optimized_for

(PECL)

lzf_optimized_for -- Determines what LZF extension was optimized for

Описание

int lzf_optimized_for ( void )

Determines for what the LZF extension was optimised.

Возвращаемые значения

Returns 1 if LZF was optimized for speed, 0 for compression.

Пред. | Начало | След.
lzf_decompress | Уровень выше | Mail Functions


Mail Functions

Руководство по PHP
Пред. След.

LXVIII. Mail Functions

Введение

The mail() function allows you to send mail.

Требования

For the Mail functions to be available, PHP must have access to the sendmail binary on your system during compile time. If you use another mail program, such as qmail or postfix, be sure to use the appropriate sendmail wrappers that come with them. PHP will first look for sendmail in your PATH, and then in the following: /usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib. It's highly recommended to have sendmail available from your PATH. Also, the user that compiled PHP must have permission to access the sendmail binary.

Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Mail configuration options

Name | Default | Changeable | Changelog
SMTP | "localhost" | PHP_INI_ALL |
smtp_port | "25" | PHP_INI_ALL | Available since PHP 4.3.0.
sendmail_from | NULL | PHP_INI_ALL |
sendmail_path | NULL | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

SMTP string

Used under Windows only: DNS name or IP address of the SMTP server PHP should use for mail sent with the mail() function.

smtp_port int

Used under Windows only: Number of the port to connect to the server specified with the SMTP setting when sending mail with mail(); defaults to 25. Only available since PHP 4.3.0.

sendmail_from string

Which "From:" mail address should be used in mail sent from PHP under Windows.

sendmail_path string

Where the sendmail program can be found, usually /usr/sbin/sendmail or /usr/lib/sendmail. configure does an honest attempt of locating this one for you and set a default, but if it fails, you can set it here.

Systems not using sendmail should set this directive to the sendmail wrapper/replacement their mail system offers, if any. For example, Qmail users can normally set it to /var/qmail/bin/sendmail or /var/qmail/bin/qmail-inject.

qmail-inject does not require any option to process mail correctly.

This directive works also under Windows. If set, smtp, smtp_port and sendmail_from are ignored and the specified command is executed.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Содержание
ezmlm_hash -- Calculate the hash value needed by EZMLM
mail -- Send mail

Пред. | Начало | След.
lzf_optimized_for | Уровень выше | ezmlm_hash


ezmlm_hash

(PHP 3 >= 3.0.17, PHP 4 >= 4.0.2, PHP 5)

ezmlm_hash -- Calculate the hash value needed by EZMLM

Описание

int ezmlm_hash ( string addr )

ezmlm_hash() calculates the hash value needed when keeping EZMLM mailing lists in a MySQL database.

Список параметров

addr

The email address that's being hashed.

Возвращаемые значения

The hash value of addr.

Примеры

Пример 1. Calculating the hash and subscribing a user

<?php

$user = "joecool@example.com";
$hash = ezmlm_hash($user);
$query = sprintf("INSERT INTO sample VALUES (%s, '%s')", $hash, $user);
$db->query($query); // using PHPLIB db interface

?>

Пред. | Начало | След.
Mail Functions | Уровень выше | mail


mail

(PHP 3, PHP 4, PHP 5)

mail -- Send mail

Описание

bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]] )

Sends an email.

Список параметров

to

Receiver, or receivers of the mail.

The formatting of this string must comply with RFC 2822. Some examples are:

user@example.com
user@example.com, anotheruser@example.com
User <user@example.com>
User <user@example.com>, Another User <anotheruser@example.com>

subject

Subject of the email to be sent.

Предостережение

This must not contain any newline characters, or the mail may not be sent properly.

message

Message to be sent.

Each line should be separated with a LF (\n). Lines should not be larger than 70 characters.

Предостережение

(Windows only) When PHP is talking to a SMTP server directly, if a full stop is found on the start of a line, it is removed. To counter-act this, replace these occurrences with a double dot.
<?php
$text = str_replace("\n.", "\n..", $text);
?>

additional_headers (optional)

String to be inserted at the end of the email header.

This is typically used to add extra headers (From, Cc, and Bcc). Multiple extra headers should be separated with a CRLF (\r\n).

Замечание: When sending mail, the mail must contain a From header. This can be set with the additional_headers parameter, or a default can be set in php.ini.

Failing to do this will result in an error message similar to Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing.

Замечание: If messages are not received, try using a LF (\n) only. Some poor quality Unix mail transfer agents replace LF by CRLF automatically (which leads to doubling CR if CRLF is used). This should be a last resort, as it does not comply with RFC 2822.

additional_parameters (optional)

The additional_parameters parameter can be used to pass an additional parameter to the program configured to use when sending mail using the sendmail_path configuration setting. For example, this can be used to set the envelope sender address when using sendmail with the -f sendmail option.

The user that the webserver runs as should be added as a trusted user to the sendmail configuration to prevent a 'X-Warning' header from being added to the message when the envelope sender (-f) is set using this method. For sendmail users, this file is /etc/mail/trusted-users.

Возвращаемые значения

Returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.

It is important to note that just because the mail was accepted for delivery, it does NOT mean the mail will actually reach the intended destination.

Список изменений

Версия | Описание
4.3.0 (Windows only) | All custom headers (like From, Cc, Bcc and Date) are supported, and are not case-sensitive. (As custom headers are not interpreted by the MTA in the first place, but are parsed by PHP, PHP < 4.3 only supported the Cc header element and was case-sensitive).
4.2.3 | The additional_parameters parameter is disabled in safe_mode and the mail() function will expose a warning message and return FALSE when used.
4.0.5 | The additional_parameters parameter was added.

Примеры

Пример 1. Sending mail.

Using mail() to send a simple email:

<?php
// The message
$message = "Line 1\nLine 2\nLine 3";

// In case any of our lines are larger than 70 characters, we should use wordwrap()
$message = wordwrap($message, 70);

// Send
mail('caffinated@example.com', 'My Subject', $message);
?>

Пример 2. Sending mail with extra headers.

The addition of basic headers, telling the MUA the From and Reply-To addresses:

<?php
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>

Пример 3. Sending mail with an additional command line parameter.

The additional_parameters parameter can be used to pass an additional parameter to the program configured to use when sending mail using the sendmail_path.

<?php
mail('nobody@example.com', 'the subject', 'the message', null,
   '-fwebmaster@example.com');
?>

Пример 4. Sending HTML email

It is also possible to send HTML email with mail().

<?php
// multiple recipients
$to  = 'aidan@example.com' . ', '; // note the comma
$to .= 'wez@example.com';

// subject
$subject = 'Birthday Reminders for August';

// message
$message = '
<html>
<head>
  <title>Birthday Reminders for August</title>
</head>
<body>
  <p>Here are the birthdays upcoming in August!</p>
  <table>
    <tr>
      <th>Person</th><th>Day</th><th>Month</th><th>Year</th>
    </tr>
    <tr>
      <td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
    </tr>
    <tr>
      <td>Sally</td><td>17th</td><td>August</td><td>1973</td>
    </tr>
  </table>
</body>
</html>
';

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);
?>

Замечание: If intending to send HTML or otherwise Complex mails, it is recommended to use the PEAR package PEAR::Mail.

Примечания

Замечание: The Windows implementation of mail() differs in many ways from the Unix implementation. First, it doesn't use a local binary for composing messages but only operates on direct sockets which means a MTA is needed listening on a network socket (which can either on the localhost or a remote machine).

Second, the custom headers like From:, Cc:, Bcc: and Date: are not interpreted by the MTA in the first place, but are parsed by PHP.

As such, the to parameter should not be an address in the form of "Something <someone@example.com>". The mail command may not parse this properly while talking with the MTA.

Замечание: Email with attachments and special types of content (e.g. HTML) can be sent using this function. This is accomplished via MIME-encoding - for more information, see this Zend article or the PEAR Mime Classes.

Замечание: It is worth noting that the mail() function is not suitable for larger volumes of email in a loop. This function opens and closes an SMTP socket for each email, which is not very efficient.

For the sending of large amounts of email, see the PEAR::Mail, and PEAR::Mail_Queue packages.

Замечание: The following RFCs may be useful: RFC 1896, RFC 2045, RFC 2046, RFC 2047, RFC 2048, RFC 2049, and RFC 2822.

Смотрите также

imap_mail()
PEAR::Mail
PEAR::Mail_Mime

Пред. | Начало | След.
ezmlm_hash | Уровень выше | mailparse Functions


mailparse Functions

Руководство по PHP
Пред. След.

LXIX. mailparse Functions

Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 4.2.0.

Установка

Это расширение PECL не поставляется вместе с PHP. Дополнительная информация, такая как новый версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, могут быть найдены здесь: http://pecl.php.net/package/mailparse.

In order to use these functions you must compile PHP with mailparse support by using the --enable-mailparse configure option.

Windows users will enable php_mailparse.dll inside of php.ini in order to use these functions. Вы можете скачать DLL этого расширения PECL со страницы PHP Downloads или http://snaps.php.net/.

Содержание
mailparse_determine_best_xfer_encoding -- Figures out the best way of encoding the content read from the file pointer fp, which must be seek-able
mailparse_msg_create -- Returns a handle that can be used to parse a message
mailparse_msg_extract_part_file -- Extracts/decodes a message section, decoding the transfer encoding
mailparse_msg_extract_part -- Extracts/decodes a message section
mailparse_msg_free -- Frees a handle allocated by mailparse_msg_create()
mailparse_msg_get_part_data -- Returns an associative array of info about the message
mailparse_msg_get_part -- Returns a handle on a given section in a mimemessage
mailparse_msg_get_structure -- Returns an array of mime section names in the supplied message
mailparse_msg_parse_file -- Parse file and return a resource representing the structure
mailparse_msg_parse -- Incrementally parse data into buffer
mailparse_rfc822_parse_addresses -- Parse addresses and returns a hash containing that data
mailparse_stream_encode -- Streams data from source file pointer, apply encoding and write to destfp
mailparse_uudecode_all -- Scans the data from fp and extract each embedded uuencoded file

Пред. | Начало | След.
mail | Уровень выше | mailparse_determine_best_xfer_encoding


mailparse_determine_best_xfer_encoding

(4.1.0 - 4.1.2 only, PECL)

mailparse_determine_best_xfer_encoding -- Figures out the best way of encoding the content read from the file pointer fp, which must be seek-able

Description

string mailparse_determine_best_xfer_encoding ( resource fp )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mailparse Functions | Уровень выше | mailparse_msg_create


mailparse_msg_create

(4.1.0 - 4.1.2 only, PECL)

mailparse_msg_create -- Returns a handle that can be used to parse a message

Description

resource mailparse_msg_create ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mailparse_determine_best_xfer_encoding | Уровень выше | mailparse_msg_extract_part_file


mailparse_msg_extract_part_file

(4.1.0 - 4.1.2 only, PECL)

mailparse_msg_extract_part_file -- Extracts/decodes a message section, decoding the transfer encoding

Description

string mailparse_msg_extract_part_file ( resource rfc2045, string filename [, callback callbackfunc] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mailparse_msg_create | Уровень выше | mailparse_msg_extract_part


mailparse_msg_extract_part

(4.1.0 - 4.1.2 only, PECL)

mailparse_msg_extract_part -- Extracts/decodes a message section

Description

void mailparse_msg_extract_part ( resource rfc2045, string msgbody [, callback callbackfunc] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

If callbackfunc is not specified, the contents will be sent to "stdout".

Пред. | Начало | След.
mailparse_msg_extract_part_file | Уровень выше | mailparse_msg_free


mailparse_msg_free

(4.1.0 - 4.1.2 only, PECL)

mailparse_msg_free -- Frees a handle allocated by mailparse_msg_create()

Description

bool mailparse_msg_free ( resource rfc2045buf )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mailparse_msg_extract_part | Уровень выше | mailparse_msg_get_part_data


mailparse_msg_get_part_data

(4.1.0 - 4.1.2 only, PECL)

mailparse_msg_get_part_data -- Returns an associative array of info about the message

Description

array mailparse_msg_get_part_data ( resource rfc2045 )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mailparse_msg_free | Уровень выше | mailparse_msg_get_part


mailparse_msg_get_part

(4.1.0 - 4.1.2 only, PECL)

mailparse_msg_get_part -- Returns a handle on a given section in a mimemessage

Description

resource mailparse_msg_get_part ( resource rfc2045, string mimesection )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mailparse_msg_get_part_data | Уровень выше | mailparse_msg_get_structure


mailparse_msg_get_structure

(4.1.0 - 4.1.2 only, PECL)

mailparse_msg_get_structure -- Returns an array of mime section names in the supplied message

Description

array mailparse_msg_get_structure ( resource rfc2045 )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mailparse_msg_get_part | Уровень выше | mailparse_msg_parse_file


mailparse_msg_parse_file

(4.1.0 - 4.1.2 only, PECL)

mailparse_msg_parse_file -- Parse file and return a resource representing the structure

Description

resource mailparse_msg_parse_file ( string filename )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mailparse_msg_get_structure | Уровень выше | mailparse_msg_parse


mailparse_msg_parse

(4.1.0 - 4.1.2 only, PECL)

mailparse_msg_parse -- Incrementally parse data into buffer

Description

bool mailparse_msg_parse ( resource rfc2045buf, string data )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mailparse_msg_parse_file | Уровень выше | mailparse_rfc822_parse_addresses


mailparse_rfc822_parse_addresses

(4.1.0 - 4.1.2 only, PECL)

mailparse_rfc822_parse_addresses -- Parse addresses and returns a hash containing that data

Description

array mailparse_rfc822_parse_addresses ( string addresses )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mailparse_msg_parse | Уровень выше | mailparse_stream_encode


mailparse_stream_encode

(4.1.0 - 4.1.2 only, PECL)

mailparse_stream_encode -- Streams data from source file pointer, apply encoding and write to destfp

Description

bool mailparse_stream_encode ( resource sourcefp, resource destfp, string encoding )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mailparse_rfc822_parse_addresses | Уровень выше | mailparse_uudecode_all


mailparse_uudecode_all

(PECL)

mailparse_uudecode_all -- Scans the data from fp and extract each embedded uuencoded file

Description

array mailparse_uudecode_all ( resource fp )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns an array listing filename information.

Пред. | Начало | След.
mailparse_stream_encode | Уровень выше | Математические функции


Математические функции

Руководство по PHP
Пред. След.

LXX. Математические функции

Введение

Данные функции работают с числами в диапазонах типов integer и float на вашей машине (это отвечает C-типам long и double). Если вам нужно работать с большими числами, обратитесь к разделу Ссылка VII, BCMath Arbitrary Precision Mathematics Functions.

См. также Разд. Арифметические операторы в Гл. 15.

Требования

Эти функции всегда доступны.

Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы всегда доступны как часть ядра PHP.

Таблица 1. Математические константы

Константа | Значение | Описание
M_PI | 3.14159265358979323846 | число пи
M_E | 2.7182818284590452354 | число Эйлера
M_LOG2E | 1.4426950408889634074 | log_2 e
M_LOG10E | 0.43429448190325182765 | lg e
M_LN2 | 0.69314718055994530942 | ln 2
M_LN10 | 2.30258509299404568402 | ln 10
M_PI_2 | 1.57079632679489661923 | пи/2
M_PI_4 | 0.78539816339744830962 | пи/4
M_1_PI | 0.31830988618379067154 | 1/пи
M_2_PI | 0.63661977236758134308 | 2/пи
M_SQRTPI | 1.77245385090551602729 | sqrt(пи) [4.0.2]
M_2_SQRTPI | 1.12837916709551257390 | 2/sqrt(пи)
M_SQRT2 | 1.41421356237309504880 | sqrt(2)
M_SQRT3 | 1.73205080756887729352 | sqrt(3) [4.0.2]
M_SQRT1_2 | 0.70710678118654752440 | 1/sqrt(2)
M_LNPI | 1.14472988584940017414 | ln пи [4.0.2]
M_EULER | 0.57721566490153286061 | Постоянная эйлера [4.0.2]
В версиях PHP до 4.0.0 включительно доступна только M_PI. Все остальные были добавлены с следующей версии, кроме констант с пометкой [4.0.2], которые были добавлены в версии PHP 4.0.2.

Содержание
abs -- Модуль числа
acos -- Arc cosine
acosh -- Inverse hyperbolic cosine
asin -- Arc sine
asinh -- Inverse hyperbolic sine
atan2 -- Arc tangent of two variables
atan -- Arc tangent
atanh -- Inverse hyperbolic tangent
base_convert -- Convert a number between arbitrary bases
bindec -- Binary to decimal
ceil -- Округляет дробь в большую сторону
cos -- Cosine
cosh -- Hyperbolic cosine
decbin -- Decimal to binary
dechex -- Decimal to hexadecimal
decoct -- Decimal to octal
deg2rad -- Converts the number in degrees to the radian equivalent
exp -- Calculates the exponent of e (the Neperian or Natural logarithm base)
expm1 -- Returns exp(number) - 1, computed in a way that is accurate even when the value of number is close to zero
floor -- Округляет дробь в меньшую сторону
fmod -- Возвращает дробный остаток от деления
getrandmax -- Вовзращает максимально возможное случайное число
hexdec -- Hexadecimal to decimal
hypot -- Calculate the length of the hypotenuse of a right-angle triangle
is_finite -- Finds whether a value is a legal finite number
is_infinite -- Finds whether a value is infinite
is_nan -- Finds whether a value is not a number
lcg_value -- Combined linear congruential generator
log10 -- Base-10 logarithm
log1p -- Returns log(1 + number), computed in a way that is accurate even when the value of number is close to zero
log -- Natural logarithm
max -- Находит наибольшее значение
min -- Находит наименьшее значение
mt_getrandmax -- Show largest possible random value
mt_rand -- Generate a better random value
mt_srand -- Seed the better random number generator
octdec -- Octal to decimal
pi -- Возвращает число Пи
pow -- Exponential expression
rad2deg -- Converts the radian number to the equivalent number in degrees
rand -- Генерирует случайное число
round -- Округляет число типа float
sin -- Sine
sinh -- Hyperbolic sine
sqrt -- Square root
srand -- Изменяет начальное число генератора псевдослучайных чисел
tan -- Tangent
tanh -- Hyperbolic tangent

Пред. | Начало | След.
mailparse_uudecode_all | Уровень выше | abs


abs

(PHP 3, PHP 4, PHP 5)

abs -- Модуль числа

Описание

number abs ( mixed number )

Возвращает абсолютное значение number. Если number имеет тип float, возвращаемое значение также будет иметь тип float, иначе - integer.

Пример 1. Пример

<?php
$abs = abs(-4.2); // $abs = 4.2; (double/float)
$abs2 = abs(5);   // $abs2 = 5; (integer)
$abs3 = abs(-5);  // $abs3 = 5; (integer)
?>

Пред. | Начало | След.
Математические функции | Уровень выше | acos


acos

(PHP 3, PHP 4, PHP 5)

acos -- Arc cosine

Description

float acos ( float arg )

Returns the arc cosine of arg in radians. acos() is the complementary function of cos(), which means that a==cos(acos(a)) for every value of a that is within acos()' range.

See also:
acosh(),
asin(), and
atan().

Пред. | Начало | След.
abs | Уровень выше | acosh


acosh

(PHP 4 >= 4.1.0, PHP 5)

acosh -- Inverse hyperbolic cosine

Description

float acosh ( float arg )

Returns the inverse hyperbolic cosine of arg, i.e. the value whose hyperbolic cosine is arg.

Замечание: Для Windows-платформ эта функция не реализована.

See also:
acos(),
asinh(), and
atanh().

Пред. | Начало | След.
acos | Уровень выше | asin


asin

(PHP 3, PHP 4, PHP 5)

asin -- Arc sine

Description

float asin ( float arg )

Returns the arc sine of arg in radians. asin() is the complementary function of sin(), which means that a==sin(asin(a)) for every value of a that is within asin()'s range.

See also:
asinh(),
acos(), and
atan().

Пред. | Начало | След.
acosh | Уровень выше | asinh


asinh

(PHP 4 >= 4.1.0, PHP 5)

asinh -- Inverse hyperbolic sine

Description

float asinh ( float arg )

Returns the inverse hyperbolic sine of arg, i.e. the value whose hyperbolic sine is arg.

Замечание: Для Windows-платформ эта функция не реализована.

See also:
asin(),
acosh(), and
atanh().

Пред. | Начало | След.
asin | Уровень выше | atan2


atan2

(PHP 3 >= 3.0.5, PHP 4, PHP 5)

atan2 -- Arc tangent of two variables

Description

float atan2 ( float y, float x )

This function calculates the arc tangent of the two variables x and y. It is similar to calculating the arc tangent of y / x, except that the signs of both arguments are used to determine the quadrant of the result.

The function returns the result in radians, which is between -PI and PI (inclusive).

See also acos() and atan().

Пред. | Начало | След.
asinh | Уровень выше | atan


atan

(PHP 3, PHP 4, PHP 5)

atan -- Arc tangent

Description

float atan ( float arg )

Returns the arc tangent of arg in radians. atan() is the complementary function of tan(), which means that a==tan(atan(a)) for every value of a that is within atan()'s range.

See also:
atanh(),
asin(), and
acos().

Пред. | Начало | След.
atan2 | Уровень выше | atanh


atanh

(PHP 4 >= 4.1.0, PHP 5)

atanh -- Inverse hyperbolic tangent

Description

float atanh ( float arg )

Returns the inverse hyperbolic tangent of arg, i.e. the value whose hyperbolic tangent is arg.

Замечание: Для Windows-платформ эта функция не реализована.

See also:
atan(),
asinh(), and
acosh().

Пред. | Начало | След.
atan | Уровень выше | base_convert


base_convert

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

base_convert -- Convert a number between arbitrary bases

Description

string base_convert ( string number, int frombase, int tobase )

Returns a string containing number represented in base tobase. The base in which number is given is specified in frombase. Both frombase and tobase have to be between 2 and 36, inclusive. Digits in numbers with a base higher than 10 will be represented with the letters a-z, with a meaning 10, b meaning 11 and z meaning 35.

Пример 1. base_convert() example

<?php
$hexadecimal = 'A37334';
echo base_convert($hexadecimal, 16, 2);
?>

Outputs:

101000110111001100110100

Внимание

base_convert() may lose precision on large numbers due to properties related to the internal "double" or "float" type used. Please see the Floating point numbers section in the manual for more specific information and limitations.

Пред. | Начало | След.
atanh | Уровень выше | bindec


bindec

(PHP 3, PHP 4, PHP 5)

bindec -- Binary to decimal

Description

number bindec ( string binary_string )

Returns the decimal equivalent of the binary number represented by the binary_string argument.

bindec() converts a binary number to an integer. The largest number that can be converted is 31 bits of 1's or 2147483647 in decimal. As of PHP 4.1.0, this function can also convert larger numbers. It returns float in that case.

Пример 1. bindec() example

<?php
echo bindec('110011') . "\n";
echo bindec('000110011') . "\n";

echo bindec('111');
?>

Результат выполнения данного примера:

51
51
7

See also decbin(),
octdec(),
hexdec() and
base_convert().

Пред. | Начало | След.
base_convert | Уровень выше | ceil


ceil

(PHP 3, PHP 4, PHP 5)

ceil -- Округляет дробь в большую сторону

Описание

float ceil ( float value )

Возвращает ближайшее большее целое от value. Тип возвращаемого значения остаётся float т.к. диапазон float больше integer.

Пример 1. Пример функции ceil()

<?php
echo ceil(4.3);    // 5
echo ceil(9.999);  // 10
echo ceil(3.0);    // 3
?>

См. также floor() и round().

Пред. | Начало | След.
bindec | Уровень выше | cos


cos

(PHP 3, PHP 4, PHP 5)

cos -- Cosine

Description

float cos ( float arg )

cos() returns the cosine of the arg parameter. The arg parameter is in radians.

Пример 1. cos() example

<?php

echo cos(M_PI); // -1

?>

See also:
acos(),
sin(),
tan(), and
deg2rad().

Пред. | Начало | След.
ceil | Уровень выше | cosh


cosh

(PHP 4 >= 4.1.0, PHP 5)

cosh -- Hyperbolic cosine

Description

float cosh ( float arg )

Returns the hyperbolic cosine of arg, defined as (exp(arg) + exp(-arg))/2.

See also:
cos(),
acosh(),
sin(), and
tan().

Пред. | Начало | След.
cos | Уровень выше | decbin


decbin

(PHP 3, PHP 4, PHP 5)

decbin -- Decimal to binary

Description

string decbin ( int number )

Returns a string containing a binary representation of the given number argument. The largest number that can be converted is 4294967295 in decimal resulting to a string of 32 1's.

Пример 1. decbin() example

<?php
echo decbin(12) . "\n";
echo decbin(26);
?>

Результат выполнения данного примера:

1100
11010

See also bindec(),
decoct(),
dechex() and
base_convert().

Пред. | Начало | След.
cosh | Уровень выше | dechex


dechex

(PHP 3, PHP 4, PHP 5)

dechex -- Decimal to hexadecimal

Description

string dechex ( int number )

Returns a string containing a hexadecimal representation of the given number argument. The largest number that can be converted is 4294967295 in decimal resulting to "ffffffff".

Пример 1. dechex() example

<?php
echo dechex(10) . "\n";
echo dechex(47);
?>

Результат выполнения данного примера:

a
2f

See also hexdec(),
decbin(),
decoct() and
base_convert().

Пред. | Начало | След.
decbin | Уровень выше | decoct


decoct

(PHP 3, PHP 4, PHP 5)

decoct -- Decimal to octal

Description

string decoct ( int number )

Returns a string containing an octal representation of the given number argument. The largest number that can be converted is 4294967295 in decimal resulting to "37777777777".

Пример 1. decoct() example

<?php
echo decoct(15) . "\n";
echo decoct(264);
?>

Результат выполнения данного примера:

17
410

See also octdec(),
decbin(),
dechex() and
base_convert().

Пред. | Начало | След.
dechex | Уровень выше | deg2rad


deg2rad

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

deg2rad -- Converts the number in degrees to the radian equivalent

Description

float deg2rad ( float number )

This function converts number from degrees to the radian equivalent.

Пример 1. deg2rad() example

<?php

echo deg2rad(45); // 0.785398163397
var_dump(deg2rad(45) === M_PI_4); // bool(true)

?>

See also rad2deg().

Пред. | Начало | След.
decoct | Уровень выше | exp


exp

(PHP 3, PHP 4, PHP 5)

exp -- Calculates the exponent of e (the Neperian or Natural logarithm base)

Description

float exp ( float arg )

Returns e raised to the power of arg.

Замечание: 'e' is the base of the natural system of logarithms, or approximately 2.718282.

Пример 1. exp() example

<?php
echo exp(12) . "\n";
echo exp(5.7);
?>

Результат выполнения данного примера:

1.6275E+005
298.87

See also log() and pow().

Пред. | Начало | След.
deg2rad | Уровень выше | expm1


expm1

(PHP 4 >= 4.1.0, PHP 5)

expm1 -- Returns exp(number) - 1, computed in a way that is accurate even when the value of number is close to zero

Description

float expm1 ( float number )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

expm1() returns the equivalent to 'exp(number) - 1' computed in a way that is accurate even if the value of number is near zero, a case where 'exp (number) - 1' would be inaccurate due to subtraction of two numbers that are nearly equal.

Замечание: Для Windows-платформ эта функция не реализована.

See also log1p() and exp().

Пред. | Начало | След.
exp | Уровень выше | floor


floor

(PHP 3, PHP 4, PHP 5)

floor -- Округляет дробь в меньшую сторону

Описание

float floor ( float value )

Возвращает ближайшее меньшее целое от value. Тип возвращаемого значения остаётся float т.к. диапазон float больше integer.

Пример 1. Пример функции floor()

<?php
echo floor(4.3);   // 4
echo floor(9.999); // 9
echo floor(5.0); // 5
?>

См. также ceil() и round().

Пред. | Начало | След.
expm1 | Уровень выше | fmod


fmod

(PHP 4 >= 4.2.0, PHP 5)

fmod -- Возвращает дробный остаток от деления

Описание

float fmod ( float x, float y )

Возвращает дробный остаток от деления десятичных дробей x и y). Остаток (r) определяется так: x = i * y + r, где i - некоторое целое. r всегда имеет такоей же знак, как и x и модуль, меньший или равный модулю y.

Пример 1. Пример использования fmod()

<?php
$x = 5.7;
$y = 1.3;
$r = fmod($x, $y);
// $r ранво 0.5, т.к. 4 * 1.3 + 0.5 = 5.7
?>

Пред. | Начало | След.
floor | Уровень выше | getrandmax


getrandmax

(PHP 3, PHP 4, PHP 5)

getrandmax -- Вовзращает максимально возможное случайное число

Описание

int getrandmax ( void )

Возвращает максимальное значение, которое можно получить функцией rand().

См. также rand(), srand() и mt_getrandmax().

Пред. | Начало | След.
fmod | Уровень выше | hexdec


hexdec

(PHP 3, PHP 4, PHP 5)

hexdec -- Hexadecimal to decimal

Description

number hexdec ( string hex_string )

Returns the decimal equivalent of the hexadecimal number represented by the hex_string argument. hexdec() converts a hexadecimal string to a decimal number. The largest number that can be converted is 7fffffff or 2147483647 in decimal. As of PHP 4.1.0, this function can also convert larger numbers. It returns float in that case.

hexdec() will ignore any non-hexadecimal characters it encounters.

Пример 1. hexdec() example

<?php
var_dump(hexdec("See"));
var_dump(hexdec("ee"));
// both print "int(238)"

var_dump(hexdec("that")); // print "int(10)"
var_dump(hexdec("a0")); // print "int(160)"
?>

See also dechex(),
bindec(),
octdec() and
base_convert().

Пред. | Начало | След.
getrandmax | Уровень выше | hypot


hypot

(PHP 4 >= 4.1.0, PHP 5)

hypot -- Calculate the length of the hypotenuse of a right-angle triangle

Description

float hypot ( float x, float y )

hypot() returns the length of the hypotenuse of a right-angle triangle with sides of length x and y, or the distance of the point (x, y) from the origin. This is equivalent to sqrt(x*x + y*y).

Пред. | Начало | След.
hexdec | Уровень выше | is_finite


is_finite

(PHP 4 >= 4.2.0, PHP 5)

is_finite -- Finds whether a value is a legal finite number

Description

bool is_finite ( float val )

Returns TRUE if val is a legal finite number within the allowed range for a PHP float on this platform.

See also is_infinite() and is_nan().

Пред. | Начало | След.
hypot | Уровень выше | is_infinite


is_infinite

(PHP 4 >= 4.2.0, PHP 5)

is_infinite -- Finds whether a value is infinite

Description

bool is_infinite ( float val )

Returns TRUE if val is infinite (positive or negative), like the result of log(0) or any value too big to fit into a float on this platform.

See also is_finite() and is_nan().

Пред. | Начало | След.
is_finite | Уровень выше | is_nan


is_nan

(PHP 4 >= 4.2.0, PHP 5)

is_nan -- Finds whether a value is not a number

Description

bool is_nan ( float val )

Returns TRUE if val is 'not a number', like the result of acos(1.01).

See also is_finite() and is_infinite().

Пред. | Начало | След.
is_infinite | Уровень выше | lcg_value


lcg_value

(PHP 4, PHP 5)

lcg_value -- Combined linear congruential generator

Description

float lcg_value ( void )

lcg_value() returns a pseudo random number in the range of (0, 1). The function combines two CGs with periods of 2^31 - 85 and 2^31 - 249. The period of this function is equal to the product of both primes.

Пред. | Начало | След.
is_nan | Уровень выше | log10


log10

(PHP 3, PHP 4, PHP 5)

log10 -- Base-10 logarithm

Description

float log10 ( float arg )

Returns the base-10 logarithm of arg.

See Also: log()

Пред. | Начало | След.
lcg_value | Уровень выше | log1p


log1p

(PHP 4 >= 4.1.0, PHP 5)

log1p -- Returns log(1 + number), computed in a way that is accurate even when the value of number is close to zero

Description

float log1p ( float number )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

log1p() returns log(1 + number) computed in a way that is accurante even when the value of number is close to zero.

Замечание: Для Windows-платформ эта функция не реализована.

See also expm1() and log().

Пред. | Начало | След.
log10 | Уровень выше | log


log

(PHP 3, PHP 4, PHP 5)

log -- Natural logarithm

Description

float log ( float arg [, float base] )

If the optional base parameter is specified, log() returns logbase arg, otherwise log() returns the natural logarithm of arg.

Замечание: The base parameter became available with PHP 4.3.0.

As always you can calculate the logarithm in base b of a number n, but using the mathematical identity: logb(n) = log(n)/log(b), where log is the neperian (or natural) logarithm.

See also exp().

Пред. | Начало | След.
log1p | Уровень выше | max


max

(PHP 3, PHP 4, PHP 5)

max -- Находит наибольшее значение

Описание

mixed max ( number arg1, number arg2 [, number ...] )

mixed max ( array numbers )

Возвращает наибольшее из предложенных чисел.

Если в качестве аргументов передан только один - массив чисел, max() возвращает наибольшее из них. Если первый аргумент - integer или float, то обязательно должен быть хотя бы ещё один. В этом случае функция вернёт наибольшее из них. Можно сравнивать неограниченное количество чисел.

Замечание: PHP считает строку, которую не удалось преобразовать в число, как 0, но вернёт саму строку, в случае, если все остальные числа отрицательные. Если указано несколько элементов, эквивалентных 0, max() вернёт первый из них (самый левый).

Пример 1. Примеры использования max()

<?php
echo max(1, 3, 5, 6, 7);  // 7
echo max(array(2, 4, 5)); // 5

echo max(0, 'hello');     // 0
echo max('hello', 0);     // hello
echo max(-1, 'hello');    // hello

// При указании нескольких массивов, они сравниваются полностью
// в нашем примере: 2 == 2, но 4 < 5
$val = max(array(2, 4, 8), array(2, 5, 7)); // array(2, 5, 7)

// При указании массива и отдельных чисел,
// всегда возвращается массив, т.к. он считается самым большим
$val = max('string', array(2, 5, 7), 42);   // array(2, 5, 7)
?>

См также min() и count().

Пред. | Начало | След.
log | Уровень выше | min


min

(PHP 3, PHP 4, PHP 5)

min -- Находит наименьшее значение

Описание

mixed min ( number arg1, number arg2 [, number ...] )

mixed min ( array numbers )

Возвращает наименьшее из предложенных чисел.

Если в качестве аргументов передан только один - массив чисел, min() возвращает наименьшее из них. Если первый аргумент - integer или float, то обязательно должен быть хотя бы ещё один. В этом случае функция вернёт наименьшее из них. Можно сравнивать неограниченное количество чисел.

Замечание: PHP считает строку, которую не удалось преобразовать в число, как 0, но вернёт саму строку, в случае, если все остальные числа положительные. Если указано несколько элементов, эквивалентных 0, min() вернёт первый из них (самый левый).

Пример 1. Примеры использования min()

<?php
echo min(2, 3, 1, 6, 7);  // 1
echo min(array(2, 4, 5)); // 2

echo min(0, 'hello');     // 0
echo min('hello', 0);     // hello
echo min('hello', -1);    // -1

// При указании нескольких массивов, они сравниваются полностью
// в нашем примере: 2 == 2, но 4 < 5
$val = min(array(2, 4, 8), array(2, 5, 1)); // array(2, 4, 8)

// При указании массива и отдельных чисел,
// первый никогда не возвращается, т.к. считается самым большим
$val = min('string', array(2, 5, 7), 42);   // string
?>

См также max() и count().

Пред. | Начало | След.
max | Уровень выше | mt_getrandmax


mt_getrandmax

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

mt_getrandmax -- Show largest possible random value

Description

int mt_getrandmax ( void )

Returns the maximum value that can be returned by a call to mt_rand().

See also:
mt_rand(),
mt_srand(), and
getrandmax().

Пред. | Начало | След.
min | Уровень выше | mt_rand


mt_rand

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

mt_rand -- Generate a better random value

Description

int mt_rand ( [int min, int max] )

Many random number generators of older libcs have dubious or unknown characteristics and are slow. By default, PHP uses the libc random number generator with the rand() function. The mt_rand() function is a drop-in replacement for this. It uses a random number generator with known characteristics using the Mersenne Twister, which will produce random numbers four times faster than what the average libc rand() provides.

If called without the optional min, max arguments mt_rand() returns a pseudo-random value between 0 and RAND_MAX. If you want a random number between 5 and 15 (inclusive), for example, use mt_rand (5, 15).

Пример 1. mt_rand() example

<?php
echo mt_rand() . "\n";
echo mt_rand() . "\n";

echo mt_rand(5, 15);
?>

Результатом выполнения данного примера будет что-то подобное:

1604716014
1478613278
6

Замечание: Начиная с PHP 4.2.0, больше нет необходимости инициализировать генератор случайных чисел функциями srand() или mt_srand(), поскольку теперь это происходит автоматически.

Замечание: In versions before 3.0.7 the meaning of max was range. To get the same results in these versions the short example should be mt_rand (5, 11) to get a random number between 5 and 15.

See also:
mt_srand(),
mt_getrandmax(), and
rand().

Пред. | Начало | След.
mt_getrandmax | Уровень выше | mt_srand


mt_srand

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

mt_srand -- Seed the better random number generator

Description

void mt_srand ( [int seed] )

Seeds the random number generator with seed. Since PHP 4.2.0, the seed becomes optional and defaults to a random value if omitted.

Пример 1. mt_srand() example

<?php
// seed with microseconds
function make_seed()
{
    list($usec, $sec) = explode(' ', microtime());
    return (float) $sec + ((float) $usec * 100000);
}
mt_srand(make_seed());
$randval = mt_rand();
?>

Замечание: Начиная с PHP 4.2.0, больше нет необходимости инициализировать генератор случайных чисел функциями srand() или mt_srand(), поскольку теперь это происходит автоматически.

See also:
mt_rand(),
mt_getrandmax(), and
srand().

Пред. | Начало | След.
mt_rand | Уровень выше | octdec


octdec

(PHP 3, PHP 4, PHP 5)

octdec -- Octal to decimal

Description

number octdec ( string octal_string )

Returns the decimal equivalent of the octal number represented by the octal_string argument. The largest number that can be converted is 17777777777 or 2147483647 in decimal. As of PHP 4.1.0, this function can also convert larger numbers. It returns float in that case.

Пример 1. octdec() example

<?php
echo octdec('77') . "\n";
echo octdec(decoct(45));
?>

Результат выполнения данного примера:

63
45

See also:
decoct(),
bindec(),
hexdec(), and
base_convert().

Пред. | Начало | След.
mt_srand | Уровень выше | pi


pi

(PHP 3, PHP 4, PHP 5)

pi -- Возвращает число Пи

Описание

float pi ( void )

Возвращает число Пи с точностью, определяемой директивой precision в php.ini, значение по умолчанию которой 14. Константа M_PI даёт идентичный результат.

Пример 1. Пример pi()

<?php
echo pi(); // 3.1415926535898
echo M_PI; // 3.1415926535898
?>

Пред. | Начало | След.
octdec | Уровень выше | pow


pow

(PHP 3, PHP 4, PHP 5)

pow -- Exponential expression

Description

number pow ( number base, number exp )

Returns base raised to the power of exp. If possible, this function will return an integer.

If the power cannot be computed, a warning will be issued, and pow() will return FALSE. Since PHP 4.2.0 pow() doesn't issue any warning.

Замечание: PHP cannot handle negative bases.

Пример 1. Some examples of pow()

<?php

var_dump(pow(2, 8)); // int(256)
echo pow(-1, 20); // 1
echo pow(0, 0); // 1

echo pow(-1, 5.5); // error

?>

Внимание

In PHP 4.0.6 and earlier pow() always returned a float, and did not issue warnings.

See also:
exp(),
sqrt(),
bcpow(), and
gmp_pow(),

Пред. | Начало | След.
pi | Уровень выше | rad2deg


rad2deg

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

rad2deg -- Converts the radian number to the equivalent number in degrees

Description

float rad2deg ( float number )

This function converts number from radian to degrees.

Пример 1. rad2deg() example

<?php

echo rad2deg(M_PI_4); // 45

?>

See also deg2rad().

Пред. | Начало | След.
pow | Уровень выше | rand


rand

(PHP 3, PHP 4, PHP 5)

rand -- Генерирует случайное число

Описание

int rand ( [int min, int max] )

При вызове без параметров min и max, возвращает псевдослучайное целое в диапазоне от 0 до RAND_MAX. Например, если вам нужно случайное число между 5 и 15 (включительно), вызовите rand (5, 15).

Пример 1. Пример

<?php
echo rand() . "\n";
echo rand() . "\n";

echo rand(5, 15);
?>

Пример выше выведет что-то наподобие этого:

7771
22264
11

Замечание: На некоторых платформах (таких как Windows) RAND_MAX всего лишь 32768. Чтобы расширить диапазон, используйте параметры min и max, или обратитесь к функции mt_rand().

Замечание: Начиная с PHP 4.2.0, больше нет необходимости инициализировать генератор случайных чисел функциями srand() или mt_srand(), поскольку теперь это происходит автоматически.

Замечание: В версиях до 3.0.7 max определяло диапазон генерирования. Например, чтобы получить число от 5 до 15, нужно было вызвать rand (5, 11).

См. также:
srand(),
getrandmax() и
mt_rand().

Пред. | Начало | След.
rad2deg | Уровень выше | round


round

(PHP 3, PHP 4, PHP 5)

round -- Округляет число типа float

Описание

float round ( float val [, int precision] )

Возвращает округлённое значение val с указанной точностью precision (количество цифр после запятой). Последняя может быть отрицательной или нулём (по умолчанию).

Пример 1. Примеры функции round()

<?php
echo round(3.4);         // 3
echo round(3.5);         // 4
echo round(3.6);         // 4
echo round(3.6, 0);      // 4
echo round(1.95583, 2);  // 1.96
echo round(1241757, -3); // 1242000
echo round(5.045, 2);    // 5.05
echo round(5.055, 2);    // 5.06
?>

Замечание: PHP по умолчанию не может правильно обрабатывать строки типа "12,300.2". Для подробностей см. Разд. Преобразование строк в числа в Гл. 11.

Замечание: параметр precision был добавлен в PHP 4.

См. также:
ceil(),
floor() и
number_format().

Пред. | Начало | След.
rand | Уровень выше | sin


sin

(PHP 3, PHP 4, PHP 5)

sin -- Sine

Description

float sin ( float arg )

sin() returns the sine of the arg parameter. The arg parameter is in radians.

Пример 1. sin() example

<?php

// Precision depends on your precision directive
echo sin(deg2rad(60));  //  0.866025403 ...
echo sin(60);           // -0.304810621 ...

?>

See also:
asin(),
cos(),
tan(), and
deg2rad().

Пред. | Начало | След.
round | Уровень выше | sinh


sinh

(PHP 4 >= 4.1.0, PHP 5)

sinh -- Hyperbolic sine

Description

float sinh ( float arg )

Returns the hyperbolic sine of arg, defined as (exp(arg) - exp(-arg))/2.

See also:
sin(),
asinh(),
cos(), and
tan().

Пред. | Начало | След.
sin | Уровень выше | sqrt


sqrt

(PHP 3, PHP 4, PHP 5)

sqrt -- Square root

Description

float sqrt ( float arg )

Returns the square root of arg.

Пример 1. sqrt() example

<?php
// Precision depends on your precision directive
echo sqrt(9); // 3
echo sqrt(10); // 3.16227766 ...
?>

See also pow().

Пред. | Начало | След.
sinh | Уровень выше | srand


srand

(PHP 3, PHP 4, PHP 5)

srand -- Изменяет начальное число генератора псевдослучайных чисел

Описание

void srand ( [int seed] )

Устанавливает начальное число генератора случайных чисел в seed. Начиная с PHP 4.2.0, seed - необязательный параметр, если он не указан, берётся случайное число.

Пример 1. Пример srand()

<?php
// рандомизировать микросекундами
function make_seed()
{
    list($usec, $sec) = explode(' ', microtime());
    return (float) $sec + ((float) $usec * 100000);
}
srand(make_seed());
$randval = rand();
?>

Замечание: Начиная с PHP 4.2.0, больше нет необходимости инициализировать генератор случайных чисел функциями srand() или mt_srand(), поскольку теперь это происходит автоматически.

См. также:
rand(),
getrandmax() и
mt_srand().

Пред. | Начало | След.
sqrt | Уровень выше | tan


tan

(PHP 3, PHP 4, PHP 5)

tan -- Tangent

Description

float tan ( float arg )

tan() returns the tangent of the arg parameter. The arg parameter is in radians.

Пример 1. tan() example

<?php

echo tan(M_PI_4); // 1

?>

See also:
atan(),
sin(),
cos(), and
deg2rad().

Пред. | Начало | След.
srand | Уровень выше | tanh


tanh

(PHP 4 >= 4.1.0, PHP 5)

tanh -- Hyperbolic tangent

Description

float tanh ( float arg )

Returns the hyperbolic tangent of arg, defined as sinh(arg)/cosh(arg).

See also:
tan(),
atanh(),
sin(), and
cos().

Пред. | Начало | След.
tan | Уровень выше | MaxDB PHP Extension


MaxDB PHP Extension

Руководство по PHP
Пред. След.

LXXI. MaxDB PHP Extension

Введение

The MaxDB PHP extension allows you to access the functionality provided by MaxDB 7.5.0 and above. More information about the MaxDB Database server can be found at http://www.mysql.com/products/maxdb/.

The MaxDB PHP extension is compatible to the MySQL mysqli extension. There are only minor differences in the behaviour of some functions due to the differences of the underlying database servers, MaxDB and MySQL.

The main differences to mysqli are in the following functions:

maxdb_character_set_name() - Returns only ascii or unicode.
maxdb_get_client_info() - Returns a different version string.
maxdb_get_client_version() - Returns a different version string.
maxdb_get_host_info() - Returns localhost or hostname.
maxdb_get_server_info() - Returns a different version string.
maxdb_get_server_version() - Returns a different version string.
maxdb_kill() - Only disconnects the session.
maxdb_multi_query() - Can not handle multiple SQL statements.
maxdb_next_result() - Function returns always false.
maxdb_options() - Supports a different set of options.
maxdb_report() - Supports a different report mode.
maxdb_stat() - Returns a different system status string.
maxdb_stmt_store_result() - Is not necessary for MaxDB.
maxdb_store_result() - Is not necessary for MaxDB.

Documentation for MaxDB can be found at http://dev.mysql.com/doc/maxdb/.

Требования

In order to have these functions available, you must compile PHP with MaxDB support. Additionally, you must have the MaxDB SQLDBC runtime library available to access the MaxDB server.

Documentation for MaxDB SQLDBC can be found at http://dev.mysql.com/doc/maxdb/.

Download the MaxDB SQLDBC package from http://dev.mysql.com/downloads/maxdb/clients.html.

Установка

By using the --with-maxdb[=DIR] configuration option you enable PHP to access MaxDB databases. [DIR] points to the directory that contains the installed MaxDB SQLDBC package.

Windows users will need to enable php_maxdb.dll inside of php.ini.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. MaxDB Configuration Options

Name | Default | Changeable | Changelog
maxdb.default_host | NULL | PHP_INI_ALL |
maxdb.default_db | NULL | PHP_INI_ALL |
maxdb.default_user | NULL | PHP_INI_ALL |
maxdb.default_pw | NULL | PHP_INI_ALL |
maxdb.long_readlen | "200" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

maxdb.default_host string

The default server host to use when connecting to the database server if no other host is specified.

maxdb.default_db string

The default server database to use when connecting if no other database is specified.

maxdb.default_user string

The default user name to use when connecting to the database server if no other name is specified.

maxdb.default_pw string

The default password to use when connecting to the database server if no other password is specified.

maxdb.long_readlen integer

The default maximum length of bytes that is transferred to the client if long data is retrieved from the MaxDB database server.

Предопределенные классы

maxdb

Represents a connection between PHP and a MaxDB database.

Конструктор

  • maxdb - construct a new maxdb object

Методы

  • autocommit - turns on or off auto-commiting database modifications

  • change_user - changes the user of the specified database connection

  • character_set_name - returns the default character set for the database connection

  • close - closes a previously opened connection

  • commit - commits the current transaction

  • connect - opens a new connection to MaxDB database server

  • debug - performs debugging operations

  • dump_debug_info - dumps debug information

  • get_client_info - returns client version

  • get_host_info - returns type of connection used

  • get_server_info - returns version of the MaxDB server

  • get_server_version - returns version of the MaxDB server

  • init - initializes maxdb object

  • info - retrieves information about the most recently executed query

  • kill - asks the server to kill a MaxDB thread

  • multi_query - performs multiple queries

  • more_results - check if more results exist from currently executed multi-query

  • next_result - reads next result from currently executed multi-query

  • options - set options

  • ping - pings a server connection or reconnects if there is no connection

  • prepare - prepares a SQL query

  • query - performs a query

  • real_connect - attempts to open a connection to MaxDB database server

  • escape_string - escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection

  • rollback - rolls back the current transaction

  • select_db - selects the default database

  • ssl_set - sets ssl parameters

  • stat - gets the current system status

  • stmt_init- initializes a statement for use with maxdb_stmt_prepare

  • store_result - transfers a resultset from last query

  • use_result - transfers an unbuffered resultset from last query

  • thread-safe - returns whether thread safety is given or not

Свойства

  • affected_rows - gets the number of affected rows in a previous MaxDB operation

  • client_info - returns the MaxDB client version as a string

  • client_version - returns the MaxDB client version as an integer

  • errno - returns the error code for the most recent function call

  • error - returns the error string for the most recent function call

  • field_count - returns the number of columns for the most recent query

  • host_info - returns a string representing the type of connection used

  • info - retrieves information about the most recently executed query

  • insert_id - returns the auto generated id used in the last query

  • protocol_version - returns the version of the MaxDB protocol used

  • sqlstate - returns a string containing the SQLSTATE error code for the last error

  • thread_id - returns the thread ID for the current connection

  • warning_count - returns the number of warnings generated during execution of the previous SQL statement

maxdb_stmt

Represents a prepared statement.

Методы

  • bind_param - binds variables to a prepared statement

  • bind_result - binds variables to a prepared statement for result storage

  • close - closes a prepared statement

  • data-seek - seeks to an arbitrary row in a statement result set

  • execute - executes a prepared statement

  • fetch - fetches result from a prepared statement into bound variables

  • free_result - frees stored result memory for the given statement handle

  • result_metadata - retrieves a resultset from a prepared statement for metadata information

  • prepare - prepares a SQL query

  • send_long_data - sends data in chunks

  • close_long_data - end sending long data

  • reset - resets a prepared statement

  • store_result - buffers complete resultset from a prepared statement

Свойства

  • affected_rows - returns affected rows from last statement execution

  • errno - returns errorcode for last statement function

  • errno - returns errormessage for last statement function

  • param_count - returns number of parameter for a given prepare statement

  • sqlstate - returns a string containing the SQLSTATE error code for the last statement function

maxdb_result

Represents the result set obtained from a query against the database.

Методы

  • close - closes resultset

  • data_seek - moves internal result pointer

  • fetch_field - gets column information from a resultset

  • fetch_fields - gets information for all columns from a resulset

  • fetch_field_direct - gets column information for specified column

  • fetch_array - fetches a result row as an associative array, a numeric array, or both.

  • fetch_assoc - fetches a result row as an associative array

  • fetch_object - fetches a result row as an object

  • fetch_row - gets a result row as an enumerated array

  • close - frees result memory

  • field_seek - set result pointer to a specified field offset

Свойства

  • current_field - returns offset of current fieldpointer

  • field_count - returns number of fields in resultset

  • lengths - returns an array of columnlengths

  • num_rows - returns number of rows in resultset

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

The following constants to use with maxdb_options() are defined. For further description of these constants see http://dev.mysql.com/doc/maxdb/.

Таблица 2. MaxDB PHP client constants

Constant | Description
MAXDB_COMPNAME | The component name used to initialise the SQLDBC runtime environment.
MAXDB_APPLICATION | The application to be connected to the database.
MAXDB_APPVERSION | The version of the application.
MAXDB_SQLMODE | The SQL mode.
MAXDB_UNICODE | TRUE, if the connection is an unicode (UCS2) client or FALSE, if not.
MAXDB_TIMEOUT | The maximum allowed time of inactivity after which the connection to the database is closed by the system.
MAXDB_ISOLATIONLEVEL | Specifies whether and how shared locks and exclusive locks are implicitly requested or released.
MAXDB_PACKETCOUNT | The number of different request packets used for the connection.
MAXDB_STATEMENTCACHESIZE | The number of prepared statements to be cached for the connection for re-use.
MAXDB_CURSORPREFIX | The prefix to use for result tables that are automatically named.

The function maxdb_fetch_array() uses a constant for the different types of result arrays. The following constants are defined:

Таблица 3. MaxDB fetch constants

Constant | Description
MAXDB_ASSOC | Columns are returned into the array having the fieldname as the array index.
MAXDB_ASSOC_UPPER | Columns are returned into the array having the upper case fieldname as the array index.
MAXDB_ASSOC_LOWER | Columns are returned into the array having the lower case fieldname as the array index.
MAXDB_BOTH | Columns are returned into the array having both a numerical index and the fieldname as the array index.
MAXDB_NUM | Columns are returned into the array having a numerical index to the fields. This index starts with 0, the first field in the result.

Примеры

All examples in the MaxDB PHP documentation use the HOTELDB demo database from MaxDB. More about this database can be found at http://dev.mysql.com/doc/maxdb/en/98/11b83fa6b33c17e10000000a114084/frameset.htm.

To use the examples in the MaxDB PHP documentation, you have to load the tutorial data into your database. Then you have to set maxdb.default_db in php.ini to the database that contains the tutorial data.

This simple example shows how to connect, execute a query, print resulting rows and disconnect from a MaxDB database.

Пример 1. MaxDB extension overview example

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Performing SQL query */
$query = "SELECT * FROM hotel.city";
$result = maxdb_query($link, $query) or die("Query failed : " . maxdb_error());

/* Printing results in HTML */
echo "<table>\n";
while ($line = maxdb_fetch_array($result, MAXDB_ASSOC)) {
    echo "  <tr>\n";
    foreach ($line as $col_value) {
        echo "    <td>$col_value</td>\n";
    }
    echo "  </tr>\n";
}
echo "</table>\n";

/* Free resultset */
maxdb_free_result($result);

/* Closing connection */
maxdb_close($link);
?>

The following example shows how to bind variables to a SELECT INTO statement.

Пример 2. Example for use of SELECT INTO statements

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Performing SQL query */
$stmt = maxdb_prepare ($link, "SELECT percentage INTO ? FROM hotel.countrylanguage where language = ?");
if (!$stmt) {
  printf ("Prepare failed: %s\n", maxdb_error($link));
}

$name = "Mbundu";

maxdb_stmt_bind_param($stmt, 'ds', $percentage, $name);
maxdb_stmt_execute($stmt);

printf ("%f\n", $percentage);

maxdb_stmt_close ($stmt);
?>

The following example shows how to use MaxDB database procedures.

Пример 3. Example fore using database procedures

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP DBPROC test_proc");
maxdb_report (MAXDB_REPORT_ERROR);

$query = "create dbproc test_proc (INOUT e_text char(72)) AS select * from SYSDBA.DUAL; fetch into :e_text;";

maxdb_query($link, $query);

/* Performing SQL query */
$stmt = maxdb_prepare ($link, "CALL test_proc (?)");
if (!$stmt) {
  printf ("Prepare failed: %s\n", maxdb_error($link));
}

maxdb_stmt_bind_param($stmt, 's', $result);
maxdb_stmt_execute($stmt);

printf ("%s\n", $result);

maxdb_stmt_close ($stmt);
?>

Содержание
maxdb_affected_rows -- Gets the number of affected rows in a previous MaxDB operation
maxdb_autocommit -- Turns on or off auto-commiting database modifications
maxdb_bind_param -- Alias of maxdb_stmt_bind_param()
maxdb_bind_result -- Alias of maxdb_stmt_bind_result()
maxdb_change_user -- Changes the user of the specified database connection
maxdb_character_set_name -- Returns the default character set for the database connection
maxdb_client_encoding -- Alias of maxdb_character_set_name()
maxdb_close_long_data -- Alias of maxdb_stmt_close_long_data()
maxdb_close -- Closes a previously opened database connection
maxdb_commit -- Commits the current transaction
maxdb_connect_errno -- Returns the error code from last connect call
maxdb_connect_error -- Returns a string description of the last connect error
maxdb_connect -- Open a new connection to the MaxDB server
maxdb_data_seek -- Adjusts the result pointer to an arbitary row in the result
maxdb_debug -- Performs debugging operations
maxdb_disable_reads_from_master -- Disable reads from master
maxdb_disable_rpl_parse -- Disable RPL parse
maxdb_dump_debug_info -- Dump debugging information into the log
maxdb_embedded_connect -- Open a connection to an embedded MaxDB server
maxdb_enable_reads_from_master -- Enable reads from master
maxdb_enable_rpl_parse -- Enable RPL parse
maxdb_errno -- Returns the error code for the most recent function call
maxdb_error -- Returns a string description of the last error
maxdb_escape_string -- Alias of maxdb_real_escape_string()
maxdb_execute -- Alias of maxdb_stmt_execute()
maxdb_fetch_array -- Fetch a result row as an associative, a numeric array, or both
maxdb_fetch_assoc -- Fetch a result row as an associative array
maxdb_fetch_field_direct -- Fetch meta-data for a single field
maxdb_fetch_field -- Returns the next field in the result set
maxdb_fetch_fields -- Returns an array of resources representing the fields in a result set
maxdb_fetch_lengths -- Returns the lengths of the columns of the current row in the result set
maxdb_fetch_object -- Returns the current row of a result set as an object
maxdb_fetch_row -- Get a result row as an enumerated array
maxdb_fetch -- Alias of maxdb_stmt_fetch()
maxdb_field_count -- Returns the number of columns for the most recent query
maxdb_field_seek -- Set result pointer to a specified field offset
maxdb_field_tell -- Get current field offset of a result pointer
maxdb_free_result -- Frees the memory associated with a result
maxdb_get_client_info -- Returns the MaxDB client version as a string
maxdb_get_client_version -- Get MaxDB client info
maxdb_get_host_info -- Returns a string representing the type of connection used
maxdb_get_metadata -- Alias of maxdb_stmt_result_metadata()
maxdb_get_proto_info -- Returns the version of the MaxDB protocol used
maxdb_get_server_info -- Returns the version of the MaxDB server
maxdb_get_server_version -- Returns the version of the MaxDB server as an integer
maxdb_info -- Retrieves information about the most recently executed query
maxdb_init -- Initializes MaxDB and returns an resource for use with maxdb_real_connect
maxdb_insert_id -- Returns the auto generated id used in the last query
maxdb_kill -- Disconnects from a MaxDB server
maxdb_master_query -- Enforce execution of a query on the master in a master/slave setup
maxdb_more_results -- Check if there any more query results from a multi query
maxdb_multi_query -- Performs a query on the database
maxdb_next_result -- Prepare next result from multi_query
maxdb_num_fields -- Get the number of fields in a result
maxdb_num_rows -- Gets the number of rows in a result
maxdb_options -- Set options
maxdb_param_count -- Alias of maxdb_stmt_param_count()
maxdb_ping -- Pings a server connection, or tries to reconnect if the connection has gone down
maxdb_prepare -- Prepare a SQL statement for execution
maxdb_query -- Performs a query on the database
maxdb_real_connect -- Opens a connection to a MaxDB server
maxdb_real_escape_string -- Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection
maxdb_real_query -- Execute an SQL query
maxdb_report -- Enables or disables internal report functions
maxdb_rollback -- Rolls back current transaction
maxdb_rpl_parse_enabled -- Check if RPL parse is enabled
maxdb_rpl_probe -- RPL probe
maxdb_rpl_query_type -- Returns RPL query type
maxdb_select_db -- Selects the default database for database queries
maxdb_send_long_data -- Alias of maxdb_stmt_send_long_data()
maxdb_send_query -- Send the query and return
maxdb_server_end -- Shut down the embedded server
maxdb_server_init -- Initialize embedded server
maxdb_set_opt -- Alias of maxdb_options()
maxdb_sqlstate -- Returns the SQLSTATE error from previous MaxDB operation
maxdb_ssl_set -- Used for establishing secure connections using SSL
maxdb_stat -- Gets the current system status
maxdb_stmt_affected_rows -- Returns the total number of rows changed, deleted, or inserted by the last executed statement
maxdb_stmt_bind_param -- Binds variables to a prepared statement as parameters
maxdb_stmt_bind_result -- Binds variables to a prepared statement for result storage
maxdb_stmt_close_long_data -- Ends a sequence of maxdb_stmt_send_long_data()
maxdb_stmt_close -- Closes a prepared statement
maxdb_stmt_data_seek -- Seeks to an arbitray row in statement result set
maxdb_stmt_errno -- Returns the error code for the most recent statement call
maxdb_stmt_error -- Returns a string description for last statement error
maxdb_stmt_execute -- Executes a prepared Query
maxdb_stmt_fetch -- Fetch results from a prepared statement into the bound variables
maxdb_stmt_free_result -- Frees stored result memory for the given statement handle
maxdb_stmt_init -- Initializes a statement and returns an resource for use with maxdb_stmt_prepare
maxdb_stmt_num_rows -- Return the number of rows in statements result set
maxdb_stmt_param_count -- Returns the number of parameter for the given statement
maxdb_stmt_prepare -- Prepare a SQL statement for execution
maxdb_stmt_reset -- Resets a prepared statement
maxdb_stmt_result_metadata -- Returns result set metadata from a prepared statement
maxdb_stmt_send_long_data -- Send data in blocks
maxdb_stmt_sqlstate -- Returns SQLSTATE error from previous statement operation
maxdb_stmt_store_result -- Transfers a result set from a prepared statement
maxdb_store_result -- Transfers a result set from the last query
maxdb_thread_id -- Returns the thread ID for the current connection
maxdb_thread_safe -- Returns whether thread safety is given or not
maxdb_use_result -- Initiate a result set retrieval
maxdb_warning_count -- Returns the number of warnings from the last query for the given link

Пред. | Начало | След.
tanh | Уровень выше | maxdb_affected_rows


maxdb_affected_rows

(PECL)

maxdb_affected_rows

(no version information, might be only in CVS)

maxdb->affected_rows -- Gets the number of affected rows in a previous MaxDB operation

Description

Procedural style:

int maxdb_affected_rows ( resource link )

Object oriented style (property):

class maxdb {

int affected_rows

}

maxdb_affected_rows() returns the number of rows affected by the last INSERT, UPDATE, or DELETE query associated with the provided link parameter. If this number cannot be determined, this function will return -1.

Замечание: For SELECT statements maxdb_affected_rows() works like maxdb_num_rows().

The maxdb_affected_rows() function only works with queries which modify a table. In order to return the number of rows from a SELECT query, use the maxdb_num_rows() function instead.

Return Values

An integer greater than zero indicates the number of rows affected or retrieved. Zero indicates that no records where updated for an UPDATE statement, no rows matched the WHERE clause in the query or that no query has yet been executed. -1 indicates that the number of rows affected can not be determined.

See also

maxdb_num_rows(), maxdb_info().

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_report (MAXDB_REPORT_OFF);
$maxdb->query("DROP TABLE mycustomer");
maxdb_report (MAXDB_REPORT_ERROR);

/* Insert rows */
$maxdb->query("CREATE TABLE mycustomer AS SELECT * from hotel.customer");
printf("Affected rows (INSERT): %d\n", $maxdb->affected_rows);

$maxdb->query("ALTER TABLE mycustomer ADD Status int default 0");

/* update rows */
$maxdb->query("UPDATE mycustomer SET Status=1 WHERE cno > 50");
printf("Affected rows (UPDATE): %d\n", $maxdb->affected_rows);

/* delete rows */
$maxdb->query("DELETE FROM mycustomer WHERE cno < 50");
printf("Affected rows (DELETE): %d\n", $maxdb->affected_rows);

/* select all rows */
$result = $maxdb->query("SELECT title FROM mycustomer");
printf("Affected rows (SELECT): %d\n", $maxdb->affected_rows);

$result->close();

/* Delete table Language */
$maxdb->query("DROP TABLE mycustomer");

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

if (!$link) {
   printf("Can't connect to localhost. Error: %s\n", maxdb_connect_error());
   exit();
}

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP TABLE mycustomer");
maxdb_report (MAXDB_REPORT_ERROR);

/* Insert rows */
maxdb_query($link, "CREATE TABLE mycustomer AS SELECT * from hotel.customer");
printf("Affected rows (INSERT): %d\n", maxdb_affected_rows($link));

maxdb_query($link, "ALTER TABLE mycustomer ADD Status int default 0");

/* update rows */
maxdb_query($link, "UPDATE mycustomer SET Status=1 WHERE cno > 50");
printf("Affected rows (UPDATE): %d\n", maxdb_affected_rows($link));

/* delete rows */
maxdb_query($link, "DELETE FROM mycustomer WHERE cno < 50");
printf("Affected rows (DELETE): %d\n", maxdb_affected_rows($link));

/* select all rows */
$result = maxdb_query($link, "SELECT title FROM mycustomer");
printf("Affected rows (SELECT): %d\n", maxdb_affected_rows($link));

maxdb_free_result($result);

/* Delete table Language */
maxdb_query($link, "DROP TABLE mycustomer");

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Affected rows (INSERT): 15
Affected rows (UPDATE): 15
Affected rows (DELETE): 0
Affected rows (SELECT): 15

Пред. | Начало | След.
MaxDB PHP Extension | Уровень выше | maxdb_autocommit


maxdb_autocommit

(PECL)

maxdb_autocommit

(no version information, might be only in CVS)

maxdb->auto_commit -- Turns on or off auto-commiting database modifications

Description

Procedural style:

bool maxdb_autocommit ( resource link, bool mode )

Object oriented style (method)

class maxdb {

bool auto_commit ( bool mode )

}

maxdb_autocommit() is used to turn on or off auto-commit mode on queries for the database connection represented by the link resource.

Return values

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also

maxdb_commit(), maxdb_rollback().

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* turn autocommit on */
$maxdb->autocommit(TRUE);

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

if (!$link) {
   printf("Can't connect to localhost. Error: %s\n", maxdb_connect_error());
   exit();
}

/* turn autocommit on */
maxdb_autocommit($link, TRUE);

/* close connection */
maxdb_close($link);
?>

The above examples would produce no output.

Пред. | Начало | След.
maxdb_affected_rows | Уровень выше | maxdb_bind_param


maxdb_bind_param

(PECL)

maxdb_bind_param -- Alias of maxdb_stmt_bind_param()

Описание

This function is an alias of: maxdb_stmt_bind_param()

This function alias is deprecated and only exists for backwards compatibility reasons. It is recommended to not use this function as one day it may be removed from PHP.

Пред. | Начало | След.
maxdb_autocommit | Уровень выше | maxdb_bind_result


maxdb_bind_result

(PECL)

maxdb_bind_result -- Alias of maxdb_stmt_bind_result()

Описание

This function is an alias of: maxdb_stmt_bind_result().

This function alias is deprecated and only exists for backwards compatibility reasons. It is recommended to not use this function as one day it may be removed from PHP.

Пред. | Начало | След.
maxdb_bind_param | Уровень выше | maxdb_change_user


maxdb_change_user

(PECL)

maxdb_change_user

(no version information, might be only in CVS)

maxdb->change_user -- Changes the user of the specified database connection

Description

Procedural style:

bool maxdb_change_user ( resource link, string user, string password, string database )

Object oriented style (method):

class maxdb {

bool change_user ( string user, string password, string database )

}

maxdb_change_user() is used to change the user of the specified database connection as given by the link parameter and to set the current database to that specified by the database parameter.

In order to successfully change users a valid username and password parameters must be provided and that user must have sufficient permissions to access the desired database. If for any reason authorization fails, the current user authentication will remain.

Замечание: Using this command will always cause the current database connection to behave as if was a completely new database connection, regardless of if the operation was completed successfully. This reset includes performing a rollback on any active transactions, closing all temporary tables, and unlocking all locked tables.

Return Values

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also:

maxdb_connect() maxdb_select_db()

Example

Пример 1. Object oriented style

<?php

/* connect database test */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if ($result = $maxdb->query("SELECT * FROM dual")) {
   $row = $result->fetch_row();
   printf("Result: %s\n", $row[0]);
   $result->free();
}

/* reset all and select a new database */
if (!$maxdb->change_user("DBADMIN", "SECRET", "DEMODB")) {
  printf("Database not running\n");
} else {
  printf("Database running\n");
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if ($result = maxdb_query($link, "SELECT * FROM dual")) {
   $row = maxdb_fetch_row($result);
   printf("Result: %s\n", $row[0]);
   maxdb_free_result($result);
}

/* reset all and select a new database */
if (!maxdb_change_user($link, "DBADMIN", "SECRET", "DEMODB")) {
  printf("Database not running\n");
} else {
  printf("Database running\n");
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Result: a
Database running

Пред. | Начало | След.
maxdb_bind_result | Уровень выше | maxdb_character_set_name


maxdb_character_set_name

(PECL)

maxdb_character_set_name

(no version information, might be only in CVS)

maxdb->character_set_name -- Returns the default character set for the database connection

Description

Procedural style:

string maxdb_character_set_name ( resource link )

Object oriented style (method):

class maxdb {

string character_set_name ( void )

}

Returns the current character set for the database connection specified by the link parameter.

Return values

The default character set for the current connection, either ascii or unicode.

See also

maxdb_client_encoding(). maxdb_real_escape_string().

Example

Пример 1. Object oriented style

<?php
/* Open a connection */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Print current character set */
$charset = $maxdb->character_set_name();
printf ("Current character set is %s\n", $charset);

$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Print current character set */
$charset = maxdb_character_set_name($link);
printf ("Current character set is %s\n",$charset);

/* close connection */
maxdb_close($link);
?>

The above examples would be produce the following output:

Current character set is ascii

Пред. | Начало | След.
maxdb_change_user | Уровень выше | maxdb_client_encoding


maxdb_client_encoding

(PECL)

maxdb_client_encoding -- Alias of maxdb_character_set_name()

Описание

This function is an alias of: maxdb_character_set_name().

This function alias is deprecated and only exists for backwards compatibility reasons. It is recommended to not use this function as one day it may be removed from PHP.

Пред. | Начало | След.
maxdb_character_set_name | Уровень выше | maxdb_close_long_data


maxdb_close_long_data

(PECL)

maxdb_close_long_data

(no version information, might be only in CVS)

maxdb->close_long_data -- Alias of maxdb_stmt_close_long_data()

Описание

This function is an alias of: maxdb_stmt_close_long_data().

This function alias is deprecated and only exists for backwards compatibility reasons. It is recommended to not use this function as one day it may be removed from PHP.

Пред. | Начало | След.
maxdb_client_encoding | Уровень выше | maxdb_close


maxdb_close

(PECL)

maxdb_close

(no version information, might be only in CVS)

maxdb->close -- Closes a previously opened database connection

Description

Procedural style:

bool maxdb_close ( resource link )

Object oriented style (method):

class maxdb {

bool close ( void )

}

The maxdb_close() function closes a previously opened database connection specified by the link parameter.

Return values

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also

maxdb_connect(),
maxdb_init(),
maxdb_real_connect().

Пред. | Начало | След.
maxdb_close_long_data | Уровень выше | maxdb_commit


maxdb_commit

(PECL)

maxdb_commit

(no version information, might be only in CVS)

maxdb->commit -- Commits the current transaction

Description

Procedural style:

bool maxdb_commit ( resource link )

Object oriented style (method)

class maxdb {

bool commit ( void )

}

Commits the current transaction for the database connection specified by the link parameter.

Return values

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also

maxdb_autocommit(), maxdb_rollback().

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* set autocommit to off */
$maxdb->autocommit(FALSE);

maxdb_report (MAXDB_REPORT_OFF);
$maxdb->query("DROP TABLE mycustomer");
maxdb_report (MAXDB_REPORT_ERROR);

$maxdb->query("CREATE TABLE mycustomer LIKE hotel.customer");

/* Insert some values */
$maxdb->query("INSERT INTO mycustomer VALUES (3000,'Mrs','Jenny','Porter','10580','1340 N.Ash Street, #3')");
$maxdb->query("INSERT INTO mycustomer VALUES (3100,'Mr','Peter','Brown','48226','1001 34th Str., APT.3')");

/* commit transaction */
$maxdb->commit();

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* set autocommit to off */
maxdb_autocommit($link, FALSE);

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP TABLE mycustomer");
maxdb_report (MAXDB_REPORT_ERROR);

maxdb_query($link, "CREATE TABLE mycustomer LIKE hotel.customer");

/* Insert some values */
maxdb_query($link, "INSERT INTO mycustomer VALUES (3000,'Mrs','Jenny','Porter','10580','1340 N.Ash Street, #3')");
maxdb_query($link, "INSERT INTO mycustomer VALUES (3100,'Mr','Peter','Brown','48226','1001 34th Str., APT.3')");

/* commit transaction */
maxdb_commit($link);

/* close connection */
maxdb_close($link);
?>

The above examples produces no output.

Пред. | Начало | След.
maxdb_close | Уровень выше | maxdb_connect_errno


maxdb_connect_errno

(PECL)

maxdb_connect_errno -- Returns the error code from last connect call

Description

int maxdb_connect_errno ( void )

The maxdb_connect_errno() function will return the last error code number for last call to maxdb_connect(). If no errors have occured, this function will return zero.

Return values

An error code value for the last call to maxdb_connect(), if it failed. zero means no error occurred.

See also

maxdb_connect(),
maxdb_connect_error(),
maxdb_errno(),
maxdb_error(),
maxdb_sqlstate()

Example

Пример 1. maxdb_connect_errno sample

<?php
$link = maxdb_connect("localhost", "XXXXXXXX", "YYYYYYYYY");

if (!$link) {
   printf("Can't connect to localhost. Errorcode: %d\n", maxdb_connect_errno());
}
?>

The above example would produce the following output:

PHP Warning:  maxdb_connect(): -4008 POS(1) Unknown user name/password combination [08004] <...>
Can't connect to localhost. Errorcode: -4008

Пред. | Начало | След.
maxdb_commit | Уровень выше | maxdb_connect_error


maxdb_connect_error

(PECL)

maxdb_connect_error -- Returns a string description of the last connect error

Description

string maxdb_connect_error ( void )

The maxdb_connect_error() function is identical to the corresponding maxdb_connect_errno() function in every way, except instead of returning an integer error code the maxdb_connect_error() function will return a string representation of the last error to occur for the last maxdb_connect() call. If no error has occured, this function will return an empty string.

Return values

A string that describes the error. An empty string if no error occurred.

See also

maxdb_connect(),
maxdb_connect_errno(),
maxdb_errno(),
maxdb_error(),
maxdb_sqlstate()

Example

Пример 1. maxdb_connect_error sample

<?php

$link = maxdb_connect("localhost", "nonexisting_user", "");

if (!$link) {
   printf("Can't connect to localhost. Error: %s\n", maxdb_connect_error());
}
?>

The above example would produce the following output:

PHP Warning:  maxdb_connect(): -4008 POS(1) Unknown user name/password combination <...>
Can't connect to localhost. Error: POS(1) Unknown user name/password combination

Пред. | Начало | След.
maxdb_connect_errno | Уровень выше | maxdb_connect


maxdb_connect

(PECL)

maxdb_connect

(no version information, might be only in CVS)

maxdb() -- Open a new connection to the MaxDB server

Description

Procedural style

resource maxdb_connect ( [string host [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]] )

Object oriented style (constructor):

class maxdb {

__construct ( [string host [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]] )

}

The maxdb_connect() function attempts to open a connection to the MaxDB Server running on host which can be either a host name or an IP address. Passing the string "localhost" to this parameter, the local host is assumed. If successful, the maxdb_connect() will return an resource representing the connection to the database, or FALSE on failure.

The username and password parameters specify the username and password under which to connect to the MaxDB server. If the password is not provided (the NULL value is passed), the MaxDB server will attempt to authenticate the user against the maxdb.default_pw in php.ini.

The dbname parameter if provided will specify the default database to be used when performing queries. If not provied, the entry maxdb.default_db in php.ini is used.

The port and socket parameters are ignored for the MaxDB server.

Return values

Returns a resource which represents the connection to a MaxDB Server or FALSE if the connection failed.

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

printf("Host information: %s\n", $maxdb->host_info);

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

printf("Host information: %s\n", maxdb_get_host_info($link));

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Host information: localhost

Пред. | Начало | След.
maxdb_connect_error | Уровень выше | maxdb_data_seek


maxdb_data_seek

(PECL)

maxdb_data_seek

(no version information, might be only in CVS)

result->data_seek -- Adjusts the result pointer to an arbitary row in the result

Description

Procedural style:

bool maxdb_data_seek ( resource result, int offset )

Object oriented style (method):

class result {

bool data_seek ( int offset )

}

The maxdb_data_seek() function seeks to an arbitrary result pointer specified by the offset in the result set represented by result. The offset parameter must be between zero and the total number of rows minus one (0..maxdb_num_rows() - 1).

Return values

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also

maxdb_store_result(),
maxdb_fetch_row(),
maxdb_num_rows().

Example

Пример 1. Object oriented style

<?php
/* Open a connection */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER BY name";
if ($result = $maxdb->query( $query)) {

   /* seek to row no. 10 */
   $result->data_seek(10);

   /* fetch row */
   $row = $result->fetch_row();

   printf ("City: %s  State: %s\n", $row[0], $row[1]);

   /* free result set*/
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER BY name";

if ($result = maxdb_query($link, $query)) {

   /* seek to row no. 400 */
   maxdb_data_seek($result, 10);

   /* fetch row */
   $row = maxdb_fetch_row($result);

   printf ("City: %s  State: %s\n", $row[0], $row[1]);

   /* free result set*/
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

City: Irvine  State: CA

Пред. | Начало | След.
maxdb_connect | Уровень выше | maxdb_debug


maxdb_dump_debug_info

(PECL)

maxdb_dump_debug_info -- Dump debugging information into the log

Description

bool maxdb_dump_debug_info ( resource link )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
maxdb_disable_rpl_parse | Уровень выше | maxdb_embedded_connect


maxdb_debug

(PECL)

maxdb_debug -- Performs debugging operations

Description

void maxdb_debug ( string debug )

The maxdb_debug() can be used to trace the SQLDBC communication. The following strings can be used as a parameter to maxdb_debug():

TRACE SHORT ON|OFF - Enables/disables method call trace.
TRACE LONG ON|OFF - Enables/disables method argument and detail debug trace.
TRACE PACKET ON|OFF|<size> - Enables/disables packet trace, limiting the size of the traced object to the specified number of bytes, or 1000 if no size is specified.
TRACE SQL ON|OFF - Enables/disables high level api trace.
TRACE TIMESTAMP ON|OFF - Enables/disables a timestamp prefix on each line that is traced.
TRACE SIZE <size> - Limits the size of the trace file to <size> bytes, at least 8192 bytes are required.

Return values

maxdb_debug() doesn't return any value.

Example

Пример 1. Procedural style

<?php

maxdb_debug("trace packet 200");

$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* close connection */
maxdb_close($link);
?>

The above example produces no output.

Пред. | Начало | След.
maxdb_data_seek | Уровень выше | maxdb_disable_reads_from_master


maxdb_disable_reads_from_master

(PECL)

maxdb_disable_reads_from_master

(no version information, might be only in CVS)

maxdb->disable_reads_from_master -- Disable reads from master

Description

Procedural style:

bool maxdb_disable_reads_from_master ( resource link )

Object oriented style (method):

class maxdb {

void disable_reads_from_master ( void )

}

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
maxdb_debug | Уровень выше | maxdb_disable_rpl_parse


maxdb_disable_rpl_parse

(PECL)

maxdb_disable_rpl_parse -- Disable RPL parse

Description

bool maxdb_disable_rpl_parse ( resource link )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
maxdb_disable_reads_from_master | Уровень выше | maxdb_dump_debug_info


maxdb_embedded_connect

(PECL)

maxdb_embedded_connect -- Open a connection to an embedded MaxDB server

Description

resource maxdb_embedded_connect ( [string dbname] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
maxdb_dump_debug_info | Уровень выше | maxdb_enable_reads_from_master


maxdb_enable_reads_from_master

(PECL)

maxdb_enable_reads_from_master -- Enable reads from master

Description

bool maxdb_enable_reads_from_master ( resource link )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
maxdb_embedded_connect | Уровень выше | maxdb_enable_rpl_parse


maxdb_enable_rpl_parse

(PECL)

maxdb_enable_rpl_parse -- Enable RPL parse

Description

bool maxdb_enable_rpl_parse ( resource link )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
maxdb_enable_reads_from_master | Уровень выше | maxdb_errno


maxdb_errno

(PECL)

maxdb_errno

(no version information, might be only in CVS)

maxdb->errno -- Returns the error code for the most recent function call

Description

Procedural style:

int maxdb_errno ( resource link )

Object oriented style (property):

class maxdb {

int errno

}

The maxdb_errno() function will return the last error code for the most recent MaxDB function call that can succeed or fail with respect to the database link defined by the link parameter. If no errors have occured, this function will return zero.

Return values

An error code value for the last call, if it failed. zero means no error occurred.

See also

maxdb_connect_errno(),
maxdb_connect_error(),
maxdb_error(),
maxdb_sqlstate()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if (!$maxdb->query("SELECT xxx FROM hotel.city")) {
   printf("Errorcode: %d\n", $maxdb->errno);
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if (!maxdb_query($link, "SELECT xxx FROM hotel.city")) {
   printf("Errorcode: %d\n", maxdb_errno($link));
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

PHP Warning:  maxdb_query(): -4005 POS(8) Unknown column name:XXX [42000] <...>
Errorcode: -4005

Пред. | Начало | След.
maxdb_enable_rpl_parse | Уровень выше | maxdb_error


maxdb_error

(PECL)

maxdb_error -- Returns a string description of the last error

Description

Procedural style:

string maxdb_error ( resource link )

Object oriented style (property)

class maxdb {

string error

}

The maxdb_error() function is identical to the corresponding maxdb_errno() function in every way, except instead of returning an integer error code the maxdb_error() function will return a string representation of the last error to occur for the database connection represented by the link parameter. If no error has occured, this function will return an empty string.

Return values

A string that describes the error. An empty string if no error occurred.

See also

maxdb_connect_errno(),
maxdb_connect_error(),
maxdb_errno(),
maxdb_sqlstate()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if (!$maxdb->query("SELECT xxx FROM hotel.city")) {
   printf("Errormessage: %s\n", $maxdb->error);
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if (!maxdb_query($link, "SELECT xxx FROM hotel.city")) {
   printf("Errormessgae: %s\n", maxdb_error($link));
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

PHP Warning:  maxdb_query(): -4005 POS(8) Unknown column name:XXX [42000]
Errormessgae: POS(8) Unknown column name:XXX

Пред. | Начало | След.
maxdb_errno | Уровень выше | maxdb_escape_string


maxdb_escape_string

(PECL)

maxdb_escape_string -- Alias of maxdb_real_escape_string()

Описание

This function is an alias of: maxdb_real_escape_string().

Пред. | Начало | След.
maxdb_error | Уровень выше | maxdb_execute


maxdb_execute

(PECL)

maxdb_execute -- Alias of maxdb_stmt_execute()

Описание

This function is an alias of: maxdb_stmt_execute().

This function alias is deprecated and only exists for backwards compatibility reasons. It is recommended to not use this function as one day it may be removed from PHP.

Пред. | Начало | След.
maxdb_escape_string | Уровень выше | maxdb_fetch_array


maxdb_fetch_array

(PECL)

maxdb_fetch_array

(no version information, might be only in CVS)

result->fetch_array -- Fetch a result row as an associative, a numeric array, or both

Description

Procedural style:

mixed maxdb_fetch_array ( resource result [, int resulttype] )

Object oriented style (method):

class result {

mixed fetch_array ( [int resulttype] )

}

Returns an array that corresponds to the fetched row or NULL if there are no more rows for the resultset represented by the result parameter.

maxdb_fetch_array() is an extended version of the maxdb_fetch_row() function. In addition to storing the data in the numeric indices of the result array, the maxdb_fetch_array() function can also store the data in associative indices, using the field names of the result set as keys.

Замечание: Имена полей, возвращаемые этой функцией, регистро-зависимы.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

If two or more columns of the result have the same field names, the last column will take precedence and overwrite the earlier data. In order to access multiple columns with the same name, the numerically indexed version of the row must be used.

The optional second argument resulttype is a constant indicating what type of array should be produced from the current row data. The possible values for this parameter are the constants MAXDB_ASSOC, MAXDB_ASSOC_UPPER, MAXDB_ASSOC_LOWER, MAXDB_NUM, or MAXDB_BOTH. By default the maxdb_fetch_array() function will assume MAXDB_BOTH, which is a combination of MAXDB_NUM and MAXDB_ASSOC for this parameter.

By using the MAXDB_ASSOC constant this function will behave identically to the maxdb_fetch_assoc(), while MAXDB_NUM will behave identically to the maxdb_fetch_row() function. The final option MAXDB_BOTH will create a single array with the attributes of both.

By using the MAXDB_ASSOC_UPPER constant, the behaviour of this function is identical to the use of MAXDB_ASSOC except the array index of a column is the fieldname in upper case.

By using the MAXDB_ASSOC_LOWER constant, the behaviour of this function is identical to the use of MAXDB_ASSOC except the array index of a column is the fieldname in lower case.

Return values

Returns an array that corresponds to the fetched row or NULL if there are no more rows in resultset.

See also

maxdb_fetch_assoc(),
maxdb_fetch_row(),
maxdb_fetch_resource().

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";
$result = $maxdb->query($query);

/* numeric array */
$row = $result->fetch_array(MAXDB_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* associative array */
$row = $result->fetch_array(MAXDB_ASSOC);
printf ("%s (%s)\n", $row["NAME"], $row["STATE"]);

/* associative and numeric array */
$row = $result->fetch_array(MAXDB_BOTH);
printf ("%s (%s)\n", $row[0], $row["STATE"]);

/* free result set */
$result->close();

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";
$result = maxdb_query($link, $query);

/* numeric array */
$row = maxdb_fetch_array($result, MAXDB_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* associative array */
$row = maxdb_fetch_array($result, MAXDB_ASSOC);
printf ("%s (%s)\n", $row["NAME"], $row["STATE"]);

/* associative and numeric array */
$row = maxdb_fetch_array($result, MAXDB_BOTH);
printf ("%s (%s)\n", $row[0], $row["STATE"]);

/* free result set */
maxdb_free_result($result);

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

New York (NY)
New York (NY)
Long Island (NY)

Пред. | Начало | След.
maxdb_execute | Уровень выше | maxdb_fetch_assoc


maxdb_fetch_assoc

(PECL)

maxdb_fetch_assoc

(no version information, might be only in CVS)

maxdb->fetch_assoc -- Fetch a result row as an associative array

Description

Procedural style:

array maxdb_fetch_assoc ( resource result )

Object oriented style (method):

class result {

array fetch_assoc ( void )

}

Returns an associative array that corresponds to the fetched row or NULL if there are no more rows.

The maxdb_fetch_assoc() function is used to return an associative array representing the next row in the result set for the result represented by the result parameter, where each key in the array represents the name of one of the result set's columns.

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you either need to access the result with numeric indices by using maxdb_fetch_row() or add alias names.

Замечание: Имена полей, возвращаемые этой функцией, регистро-зависимы.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Return values

Returns an array that corresponds to the fetched row or NULL if there are no more rows in resultset.

See also

maxdb_fetch_array(),
maxdb_fetch_row(),
maxdb_fetch_resource().

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = $maxdb->query($query)) {

   /* fetch associative array */
   while ($row = $result->fetch_assoc()) {
       printf ("%s (%s)\n", $row["NAME"], $row["STATE"]);
   }

   /* free result set */
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = maxdb_query($link, $query)) {

   /* fetch associative array */
   while ($row = maxdb_fetch_assoc($result)) {
       printf ("%s (%s)\n", $row["NAME"], $row["STATE"]);
   }

   /* free result set */
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

New York (NY)
New York (NY)
Long Island (NY)
Albany (NY)
Washington (DC)
Washington (DC)
Washington (DC)
Silver Spring (MD)
Daytona Beach (FL)
Deerfield Beach (FL)
Clearwater (FL)
Cincinnati (OH)
Detroit (MI)
Rosemont (IL)
Chicago (IL)
Chicago (IL)
New Orleans (LA)
Dallas (TX)
Los Angeles (CA)
Hollywood (CA)
Long Beach (CA)
Palm Springs (CA)
Irvine (CA)
Santa Clara (CA)
Portland (OR)

Пред. | Начало | След.
maxdb_fetch_array | Уровень выше | maxdb_fetch_field_direct


maxdb_fetch_field_direct

(PECL)

maxdb_fetch_field_direct

(no version information, might be only in CVS)

result->fetch_field_direct -- Fetch meta-data for a single field

Description

Procedural style:

mixed maxdb_fetch_field_direct ( resource result, int fieldnr )

Object oriented style (method):

class result {

mixed fetch_field_direct ( int fieldnr )

}

maxdb_fetch_field_direct() returns an resource which contains field definition informations from specified resultset. The value of fieldnr must be in the range from 0 to number of fields - 1.

Return values

Returns an resource which contains field definition informations or FALSE if no field information for specified fieldnr is available.

Таблица 1. Object attributes

Attribute | Description
name | The name of the column
max_length | The maximum width of the field for the result set.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

See also

maxdb_num_fields()
maxdb_fetch_field()
maxdb_fetch_fields()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY name";

if ($result = $maxdb->query($query)) {

   /* Get field information for column 'SurfaceArea' */
   $finfo = $result->fetch_field_direct(1);

   printf("Name:     %s\n", $finfo->name);
   printf("Table:    %s\n", $finfo->table);
   printf("max. Len: %d\n", $finfo->max_length);
   printf("Flags:    %d\n", $finfo->flags);
   printf("Type:     %d\n", $finfo->type);

   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY name";

if ($result = maxdb_query($link, $query)) {

   /* Get field information for column 'cno' */
   $finfo = maxdb_fetch_field_direct($result, 1);

   printf("Name:     %s\n", $finfo->name);
   printf("Table:    %s\n", $finfo->table);
   printf("max. Len: %d\n", $finfo->max_length);
   printf("Flags:    %d\n", $finfo->flags);
   printf("Type:     %d\n", $finfo->type);

   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Name:     CNO
Table:
max. Len: 4
Flags:    -1
Type:     0

Пред. | Начало | След.
maxdb_fetch_assoc | Уровень выше | maxdb_fetch_field


maxdb_fetch_field

(PECL)

maxdb_fetch_field

(no version information, might be only in CVS)

result->fetch_field -- Returns the next field in the result set

Description

Procedural style:

mixed maxdb_fetch_field ( resource result )

Object oriented style (method):

class result {

mixed fetch_field ( void )

}

The maxdb_fetch_field() returns the definition of one column of a result set as an resource. Call this function repeatedly to retrieve information about all columns in the result set. maxdb_fetch_field() returns FALSE when no more fields are left.

Return values

Returns an resource which contains field definition informations or FALSE if no field information is available.

Таблица 1. Object properties

Property | Description
name | The name of the column
max_length | The maximum width of the field for the result set.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

See also

maxdb_num_fields()
maxdb_fetch_field_direct()
maxdb_fetch_fields()
maxdb_field_seek()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = $maxdb->query($query)) {

   /* Get field information for all columns */
   while ($finfo = $result->fetch_field()) {

       printf("Name:     %s\n", $finfo->name);
       printf("Table:    %s\n", $finfo->table);
       printf("max. Len: %d\n", $finfo->max_length);
       printf("Flags:    %d\n", $finfo->flags);
       printf("Type:     %d\n\n", $finfo->type);
   }
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = maxdb_query($link, $query)) {

   /* Get field information for all fields */
   while ($finfo = maxdb_fetch_field($result)) {

       printf("Name:     %s\n", $finfo->name);
       printf("Table:    %s\n", $finfo->table);
       printf("max. Len: %d\n", $finfo->max_length);
       printf("Flags:    %d\n", $finfo->flags);
       printf("Type:     %d\n\n", $finfo->type);
   }
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Name:     NAME
Table:
max. Len: 10
Flags:    -1
Type:     2

Name:     CNO
Table:
max. Len: 4
Flags:    -1
Type:     0

Пред. | Начало | След.
maxdb_fetch_field_direct | Уровень выше | maxdb_fetch_fields


maxdb_fetch_fields

(PECL)

maxdb_fetch_fields

(no version information, might be only in CVS)

result->fetch_fields -- Returns an array of resources representing the fields in a result set

Description

Procedural Style:

mixed maxdb_fetch_fields ( resource result )

Object oriented style (method):

class result {

mixed fetch_fields ( void )

}

This function serves an identical purpose to the maxdb_fetch_field() function with the single difference that, instead of returning one resource at a time for each field, the columns are returned as an array of resources.

Return values

Returns an array of resources which contains field definition informations or FALSE if no field information is available.

Таблица 1. Object properties

Property | Description
name | The name of the column
max_length | The maximum width of the field for the result set.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

See also

maxdb_num_fields()
maxdb_fetch_field()
maxdb_fetch_field_direct()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = $maxdb->query($query)) {

   /* Get field information for all columns */
   $finfo = $result->fetch_fields();

   foreach ($finfo as $val) {
       printf("Name:     %s\n", $val->name);
       printf("Table:    %s\n", $val->table);
       printf("max. Len: %d\n", $val->max_length);
       printf("Flags:    %d\n", $val->flags);
       printf("Type:     %d\n\n", $val->type);
   }
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = maxdb_query($link, $query)) {

   /* Get field information for all columns */
   $finfo = maxdb_fetch_fields($result);

   foreach ($finfo as $val) {
       printf("Name:     %s\n", $val->name);
       printf("Table:    %s\n", $val->table);
       printf("max. Len: %d\n", $val->max_length);
       printf("Flags:    %d\n", $val->flags);
       printf("Type:     %d\n\n", $val->type);
   }
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Name:     NAME
Table:
max. Len: 10
Flags:    -1
Type:     2

Name:     CNO
Table:
max. Len: 4
Flags:    -1
Type:     0

Пред. | Начало | След.
maxdb_fetch_field | Уровень выше | maxdb_fetch_lengths


maxdb_fetch_lengths

(PECL)

maxdb_fetch_lengths

(no version information, might be only in CVS)

result->lengths -- Returns the lengths of the columns of the current row in the result set

Description

Procedural style:

array maxdb_fetch_lengths ( resource result )

Object oriented style (property):

class result {

array lengths

}

The maxdb_fetch_lengths() function returns an array containing the lengths of every column of the current row within the result set represented by the result parameter. If successful, a numerically indexed array representing the lengths of each column is returned or FALSE on failure.

Return values

An array of integers representing the size of each column (not including any terminating null characters). FALSE if an error occurred.

maxdb_fetch_lengths() is valid only for the current row of the result set. It returns FALSE if you call it before calling maxdb_fetch_row/array/resource or after retrieving all rows in the result.

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT * from hotel.customer WHERE cno = 3000";

if ($result = $maxdb->query($query)) {

   $row = $result->fetch_row();

   /* display column lengths */
   foreach ($result->lengths as $i => $val) {
       printf("Field %2d has Length %2d\n", $i+1, $val);
   }
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT * from hotel.customer WHERE cno = 3000";

if ($result = maxdb_query($link, $query)) {

   $row = maxdb_fetch_row($result);

   /* display column lengths */
   foreach (maxdb_fetch_lengths($result) as $i => $val) {
       printf("Field %2d has Length %2d\n", $i+1, $val);
   }
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Field  1 has Length  4
Field  2 has Length  3
Field  3 has Length  5
Field  4 has Length  6
Field  5 has Length  5
Field  6 has Length 21

Пред. | Начало | След.
maxdb_fetch_fields | Уровень выше | maxdb_fetch_object


maxdb_fetch_object

(PECL)

maxdb_fetch_object

(no version information, might be only in CVS)

result->fetch_object -- Returns the current row of a result set as an object

Description

Procedural style:

object maxdb_fetch_object ( object result )

Object oriented style (method):

class result {

object fetch_object ( void )

}

The maxdb_fetch_object() will return the current row result set as an object where the attributes of the object represent the names of the fields found within the result set. If no more rows exist in the current result set, NULL is returned.

Return values

Returns an object that corresponds to the fetched row or NULL if there are no more rows in resultset.

Замечание: Имена полей, возвращаемые этой функцией, регистро-зависимы.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

See also

maxdb_fetch_array(),
maxdb_fetch_assoc(),
maxdb_fetch_row().

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = $maxdb->query($query)) {

   /* fetch object array */
   while ($obj = $result->fetch_object()) {
       printf ("%s (%s)\n", $obj->NAME, $obj->STATE);
   }

   /* free result set */
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = maxdb_query($link, $query)) {

   /* fetch associative array */
   while ($obj = maxdb_fetch_object($result)) {
       printf ("%s (%s)\n", $obj->NAME, $obj->STATE);
   }

   /* free result set */
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

New York (NY)
New York (NY)
Long Island (NY)
Albany (NY)
Washington (DC)
Washington (DC)
Washington (DC)
Silver Spring (MD)
Daytona Beach (FL)
Deerfield Beach (FL)
Clearwater (FL)
Cincinnati (OH)
Detroit (MI)
Rosemont (IL)
Chicago (IL)
Chicago (IL)
New Orleans (LA)
Dallas (TX)
Los Angeles (CA)
Hollywood (CA)
Long Beach (CA)
Palm Springs (CA)
Irvine (CA)
Santa Clara (CA)
Portland (OR)

Пред. | Начало | След.
maxdb_fetch_lengths | Уровень выше | maxdb_fetch_row


maxdb_fetch_row

(PECL)

maxdb_fetch_row

(no version information, might be only in CVS)

result->fetch_row -- Get a result row as an enumerated array

Description

Procedural style:

mixed maxdb_fetch_row ( resource result )

Object oriented style (method):

class result {

mixed fetch_row ( void )

}

Returns an array that corresponds to the fetched row, or NULL if there are no more rows.

maxdb_fetch_row() fetches one row of data from the result set represented by result and returns it as an enumerated array, where each column is stored in an array offset starting from 0 (zero). Each subsequent call to the maxdb_fetch_row() function will return the next row within the result set, or FALSE if there are no more rows.

Return values

maxdb_fetch_row() returns an array that corresponds to the fetched row or NULL if there are no more rows in result set.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

See also

maxdb_fetch_array(),
maxdb_fetch_assoc(),
maxdb_fetch_resource().

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = $maxdb->query($query)) {

   /* fetch object array */
   while ($row = $result->fetch_row()) {
       printf ("%s (%s)\n", $row[0], $row[1]);
   }

   /* free result set */
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = maxdb_query($link, $query)) {

   /* fetch associative array */
   while ($row = maxdb_fetch_row($result)) {
       printf ("%s (%s)\n", $row[0], $row[1]);
   }

   /* free result set */
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

New York (NY)
New York (NY)
Long Island (NY)
Albany (NY)
Washington (DC)
Washington (DC)
Washington (DC)
Silver Spring (MD)
Daytona Beach (FL)
Deerfield Beach (FL)
Clearwater (FL)
Cincinnati (OH)
Detroit (MI)
Rosemont (IL)
Chicago (IL)
Chicago (IL)
New Orleans (LA)
Dallas (TX)
Los Angeles (CA)
Hollywood (CA)
Long Beach (CA)
Palm Springs (CA)
Irvine (CA)
Santa Clara (CA)
Portland (OR)

Пред. | Начало | След.
maxdb_fetch_object | Уровень выше | maxdb_fetch


maxdb_fetch

(PECL)

maxdb_fetch -- Alias of maxdb_stmt_fetch()

Описание

This function is an alias of: maxdb_stmt_fetch().

This function alias is deprecated and only exists for backwards compatibility reasons. It is recommended to not use this function as one day it may be removed from PHP.

Пред. | Начало | След.
maxdb_fetch_row | Уровень выше | maxdb_field_count


maxdb_field_count

(PECL)

maxdb_field_count

(no version information, might be only in CVS)

maxdb->field_count -- Returns the number of columns for the most recent query

Description

Procedural style:

int maxdb_field_count ( resource link )

Object oriented style (method):

class maxdb {

int field_count ( void )

}

Returns the number of columns for the most recent query on the connection represented by the link parameter. This function can be useful when using the maxdb_store_result() function to determine if the query should have produced a non-empty result set or not without knowing the nature of the query.

Return values

An integer representing the number of fields in a result set

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

maxdb_report (MAXDB_REPORT_OFF);
$maxdb->query("DROP TABLE friends");
maxdb_report (MAXDB_REPORT_ERROR);

$maxdb->query( "CREATE TABLE friends (id int, name varchar(20))");

$maxdb->query( "INSERT INTO friends VALUES (1,'Hartmut')");
$maxdb->query( "INSERT INTO friends VALUES (2, 'Ulf')");

if ($maxdb->field_count()) {
   /* this was a select/show or describe query */
   $result = $maxdb->store_result();

   /* process resultset */
   $row = $result->fetch_row();

   /* free resultset */
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP TABLE friends");
maxdb_report (MAXDB_REPORT_ERROR);

maxdb_query($link, "CREATE TABLE friends (id int, name varchar(20))");

maxdb_query($link, "INSERT INTO friends VALUES (1,'Hartmut')");
maxdb_query($link, "INSERT INTO friends VALUES (2, 'Ulf')");

if (maxdb_field_count($link)) {
   /* this was a select/show or describe query */
   $result = maxdb_store_result($link);

   /* process resultset */
   $row = maxdb_fetch_row($result);

   /* free resultset */
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

The above example produces no output.

Пред. | Начало | След.
maxdb_fetch | Уровень выше | maxdb_field_seek


maxdb_field_seek

(PECL)

maxdb_field_seek

(no version information, might be only in CVS)

result->field_seek -- Set result pointer to a specified field offset

Description

Procedural style:

bool maxdb_field_seek ( resource result, int fieldnr )

Object oriented style (method):

class result {

bool field_seek ( int fieldnr )

}

Sets the field cursor to the given offset. The next call to maxdb_fetch_field() will retrieve the field definition of the column associated with that offset.

Замечание: To seek to the beginning of a row, pass an offset value of zero.

Return values

maxdb_field_seek() returns previuos value of field cursor.

See also

maxdb_fetch_field()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = $maxdb->query($query)) {

   /* Get field information for 2nd column */
   $result->field_seek(1);
   $finfo = $result->fetch_field();

   printf("Name:     %s\n", $finfo->name);
   printf("Table:    %s\n", $finfo->table);
   printf("max. Len: %d\n", $finfo->max_length);
   printf("Flags:    %d\n", $finfo->flags);
   printf("Type:     %d\n\n", $finfo->type);

   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = maxdb_query($link, $query)) {

   /* Get field information for 2nd column */
   maxdb_field_seek($result, 1);
   $finfo = maxdb_fetch_field($result);

   printf("Name:     %s\n", $finfo->name);
   printf("Table:    %s\n", $finfo->table);
   printf("max. Len: %d\n", $finfo->max_length);
   printf("Flags:    %d\n", $finfo->flags);
   printf("Type:     %d\n\n", $finfo->type);

   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Name:     NAME
Table:
max. Len: 10
Flags:    -1
Type:     2

Пред. | Начало | След.
maxdb_field_count | Уровень выше | maxdb_field_tell


maxdb_field_tell

(PECL)

maxdb_field_tell

(no version information, might be only in CVS)

result->current_field -- Get current field offset of a result pointer

Description

Procedural style:

int maxdb_field_tell ( resource result )

Object oriented style (property):

class result {

int current_field

}

Returns the position of the field cursor used for the last maxdb_fetch_field() call. This value can be used as an argument to maxdb_field_seek().

Возвращаемые значения

Returns current offset of field cursor.

Смотрите также

maxdb_fetch_field(), maxdb_field_seek()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = $maxdb->query($query)) {

   /* Get field information for all columns */
   while ($finfo = $result->fetch_field()) {

       /* get fieldpointer offset */
       $currentfield = $result->current_field;

       printf("Column    %d:\n", $currentfield);
       printf("Name:     %s\n", $finfo->name);
       printf("Table:    %s\n", $finfo->table);
       printf("max. Len: %d\n", $finfo->max_length);
       printf("Flags:    %d\n", $finfo->flags);
       printf("Type:     %d\n\n", $finfo->type);
   }
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = maxdb_query($link, $query)) {

   /* Get field information for all fields */
   while ($finfo = maxdb_fetch_field($result)) {

       /* get fieldpointer offset */
       $currentfield = maxdb_field_tell($result);

       printf("Column    %d:\n", $currentfield);
       printf("Name:     %s\n", $finfo->name);
       printf("Table:    %s\n", $finfo->table);
       printf("max. Len: %d\n", $finfo->max_length);
       printf("Flags:    %d\n", $finfo->flags);
       printf("Type:     %d\n\n", $finfo->type);
   }
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Column    1:
Name:     NAME
Table:
max. Len: 10
Flags:    -1
Type:     2

Column    2:
Name:     CNO
Table:
max. Len: 4
Flags:    -1
Type:     0

Пред. | Начало | След.
maxdb_field_seek | Уровень выше | maxdb_free_result


maxdb_free_result

(PECL)

maxdb_free_result

(no version information, might be only in CVS)

result->free -- Frees the memory associated with a result

Description

Procedural style:

void maxdb_free_result ( resource result )

Object oriented style (method):

class result {

void free ( void )

}

The maxdb_free_result() function frees the memory associated with the result represented by the result parameter, which was allocated by maxdb_query(), maxdb_store_result() or maxdb_use_result().

Замечание: You should always free your result with maxdb_free_result(), when your result resource is not needed anymore.

Возвращаемые значения

This function doesn't return any value.

Смотрите также

maxdb_query(),
maxdb_stmt_store_result(),
maxdb_store_result(),
maxdb_use_result().

Пред. | Начало | След.
maxdb_field_tell | Уровень выше | maxdb_get_client_info


maxdb_get_client_info

(PECL)

maxdb_get_client_info -- Returns the MaxDB client version as a string

Description

string maxdb_get_client_info ( void )

The maxdb_get_client_info() function is used to return a string representing the client version being used in the MaxDB extension.

Возвращаемые значения

A string that represents the MaxDB client library version

See also

maxdb_get_client_version(),
maxdb_get_server_info(),
maxdb_get_server_version()

Example

Пример 1. maxdb_get_client_info

<?php

/* We don't need a connection to determine
   the version of MaxDB client library */

printf("Client library version: %s\n", maxdb_get_client_info());
?>

The above examples would produce the following output:

Client library version: libSQLDBC <...>

Пред. | Начало | След.
maxdb_free_result | Уровень выше | maxdb_get_client_version


maxdb_get_client_version

(PECL)

maxdb_get_client_version -- Get MaxDB client info

Description

int maxdb_get_client_version ( void )

Returns client version number as an integer.

Return values

A number that represents the MaxDB client library version in format: main_version*10000 + minor_version *100 + sub_version. For example, 7.5.0 is returned as 70500.

This is useful to quickly determine the version of the client library to know if some capability exits.

See also

maxdb_get_client_info(),
maxdb_get_server_info(),
maxdb_get_server_version()

Example

Пример 1. maxdb_get_client_version

<?php

/* We don't need a connection to determine
   the version of MaxDB client library */

printf("Client library version: %d\n", maxdb_get_client_version());
?>

The above examples would produce the following output:

Client library version: 7.<...>

Пред. | Начало | След.
maxdb_get_client_info | Уровень выше | maxdb_get_host_info


maxdb_get_host_info

(PECL)

maxdb_get_host_info

(no version information, might be only in CVS)

maxdb->get_host_info -- Returns a string representing the type of connection used

Description

Procdural style:

string maxdb_get_host_info ( resource link )

Object oriented style (property):

class maxdb {

string host_info

}

The maxdb_get_host_info() function returns a string describing the connection represented by the link parameter is using.

Возвращаемые значения

A character string representing the server hostname and the connection type.

See also

maxdb_get_proto_info()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* print host information */
printf("Host info: %s\n", $maxdb->host_info);

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* print host information */
printf("Host info: %s\n", maxdb_get_host_info($link));

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Host info: localhost

Пред. | Начало | След.
maxdb_get_client_version | Уровень выше | maxdb_get_metadata


maxdb_get_metadata

(PECL)

maxdb_get_metadata -- Alias of maxdb_stmt_result_metadata()

Описание

This function is an alias of: maxdb_stmt_result_metadata().

This function alias is deprecated and only exists for backwards compatibility reasons. It is recommended to not use this function as one day it may be removed from PHP.

Пред. | Начало | След.
maxdb_get_host_info | Уровень выше | maxdb_get_proto_info


maxdb_get_proto_info

(PECL)

maxdb_get_proto_info

(no version information, might be only in CVS)

maxdb->protocol_version -- Returns the version of the MaxDB protocol used

Description

Procedural style:

int maxdb_get_proto_info ( resource link )

Object oriented style (property):

class maxdb {

string protocol_version

}

Returns an integer representing the MaxDB protocol version used by the connection represented by the link parameter.

Возвращаемые значения

Returns an integer representing the protocol version (constant 10).

See also

maxdb_get_host_info()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* print protocol version */
printf("Protocol version: %d\n", $maxdb->protocol_version);

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* print protocol version */
printf("Protocol version: %d\n", maxdb_get_proto_info($link));

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Protocol version: 10

Пред. | Начало | След.
maxdb_get_metadata | Уровень выше | maxdb_get_server_info


maxdb_get_server_info

(PECL)

maxdb_get_server_info

(no version information, might be only in CVS)

maxdb->server_info -- Returns the version of the MaxDB server

Description

Procedural style:

string maxdb_get_server_info ( resource link )

Object oriented style (property):

class maxdb {

string server_info

}

Returns a string representing the version of the MaxDB server that the MaxDB extension is connected to (represented by the link parameter).

Возвращаемые значения

A character string representing the server version.

See also

maxdb_get_client_info(),
maxdb_get_client_version(),
maxdb_get_server_version()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* print server version */
printf("Server version: %s\n", $maxdb->server_info);

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* print server version */
printf("Server version: %s\n", maxdb_get_server_info($link));

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Server version: Kernel    7<...>

Пред. | Начало | След.
maxdb_get_proto_info | Уровень выше | maxdb_get_server_version


maxdb_get_server_version

(PECL)

maxdb_get_server_version -- Returns the version of the MaxDB server as an integer

Description

Procedural style:

int maxdb_get_server_version ( resource link )

Object oriented style (property):

class maxdb {

int server_version

}

The maxdb_get_server_version() function returns the version of the server connected to (represented by the link parameter) as an integer.

The form of this version number is main_version * 10000 + minor_version * 100 + sub_version (i.e. version 7.5.0 is 70500).

Возвращаемые значения

An integer representing the server version.

See also

maxdb_get_client_info(),
maxdb_get_client_version(),
maxdb_get_server_info()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* print server version */
printf("Server version: %d\n", $maxdb->server_version);

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* print server version */
printf("Server version: %d\n", maxdb_get_server_version($link));

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Server version: 7<...>

Пред. | Начало | След.
maxdb_get_server_info | Уровень выше | maxdb_info


maxdb_info

(PECL)

maxdb_info

(no version information, might be only in CVS)

maxdb->info -- Retrieves information about the most recently executed query

Description

Procedural style:

string maxdb_info ( resource link )

Object oriented style (property)

class maxdb {

string info

}

The maxdb_info() function returns a string providing information about the last query executed. The nature of this string is provided below:

Таблица 1. Possible maxdb_info return values

Query type | Example result string
INSERT INTO...SELECT... | Records: 100 Duplicates: 0 Warnings: 0
INSERT INTO...VALUES (...),(...),(...) | Records: 3 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ... | Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE ... | Records: 3 Duplicates: 0 Warnings: 0
UPDATE ... | Rows matched: 40 Changed: 40 Warnings: 0

Замечание: Queries which do not fall into one of the above formats are not supported. In these situations, maxdb_info() will return an empty string.

Возвращаемые значения

A character string representing additional information about the most recently executed query.

Смотрите также

maxdb_affected_rows(),
maxdb_warning_count(),
maxdb_num_rows()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query("CREATE TABLE temp.t1 LIKE hotel.city");

/* INSERT INTO .. SELECT */
$maxdb->query("INSERT INTO temp.t1 SELECT * FROM hotel.city");
printf("%s\n", $maxdb->info);

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_query($link, "CREATE TABLE temp.t1 LIKE hotel.city");

/* INSERT INTO .. SELECT */
maxdb_query($link, "INSERT INTO temp.t1 SELECT * FROM hotel.city");
printf("%s\n", maxdb_info($link));

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Records: 25 Duplicates: 0 Warnings: 0

Пред. | Начало | След.
maxdb_get_server_version | Уровень выше | maxdb_init


maxdb_init

(PECL)

maxdb_init -- Initializes MaxDB and returns an resource for use with maxdb_real_connect

Description

resource maxdb_init ( void )

Allocates or initializes a MaxDB resource suitable for maxdb_options() and maxdb_real_connect().

Замечание: Any subsequent calls to any maxdb function (except maxdb_options()) will fail until maxdb_real_connect() was called.

Возвращаемые значения

Returns an resource.

Смотрите также

maxdb_options(),
maxdb_close(),
maxdb_real_connect(),
maxdb_connect()

Пред. | Начало | След.
maxdb_info | Уровень выше | maxdb_insert_id


maxdb_insert_id

(PECL)

maxdb_insert_id

(no version information, might be only in CVS)

maxdb->insert_id -- Returns the auto generated id used in the last query

Description

Procedural style:

mixed maxdb_insert_id ( resource link )

Object oriented style (property):

class maxdb {

mixed insert_id

}

The maxdb_insert_id() function returns the ID generated by a query on a table with a column having the DEFAULT SERIAL attribute. If the last query wasn't an INSERT or UPDATE statement or if the modified table does not have a column with the DEFAULT SERIAL attribute, this function will return zero.

Возвращаемые значения

The value of the DEFAULT SERIAL field that was updated by the previous query. Returns zero if there was no previous query on the connection or if the query did not update an DEFAULT_SERIAL value.

Замечание: If the number is greater than maximal int value, maxdb_insert_id() will return a string.

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_report (MAXDB_REPORT_OFF);
$maxdb->query("DROP TABLE mycity");
maxdb_report (MAXDB_REPORT_ERROR);

$maxdb->query("CREATE TABLE mycity LIKE hotel.city");
$maxdb->query("ALTER TABLE mycity ADD id FIXED(11) DEFAULT SERIAL");

$query = "INSERT INTO mycity (zip,name,state) VALUES ('12203','Albany' ,'NY')";
$maxdb->query($query);

printf ("New Record has id %d.\n", $maxdb->insert_id);

/* drop table */
$maxdb->query("DROP TABLE mycity");

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP TABLE mycity");
maxdb_report (MAXDB_REPORT_ERROR);

maxdb_query($link, "CREATE TABLE mycity LIKE hotel.city");
maxdb_query($link, "ALTER TABLE mycity ADD id FIXED(11) DEFAULT SERIAL");

$query = "INSERT INTO mycity (zip,name,state) VALUES ('12203','Albany' ,'NY')";
maxdb_query($link, $query);

printf ("New Record has id %d.\n", maxdb_insert_id($link));

/* drop table */
maxdb_query($link, "DROP TABLE mycity");

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

New Record has id 1.

Пред. | Начало | След.
maxdb_init | Уровень выше | maxdb_kill


maxdb_kill

(PECL)

maxdb_kill

(no version information, might be only in CVS)

maxdb->kill -- Disconnects from a MaxDB server

Description

Procedural style:

bool maxdb_kill ( resource link, int processid )

Object oriented style (method)

class maxdb {

bool kill ( int processid )

}

This function is used to disconnect from a MaxDB server specified by the processid parameter.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

maxdb_thread_id()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* determine our thread id */
$thread_id = $maxdb->thread_id;

/* Kill connection */
$maxdb->kill($thread_id);

/* This should produce an error */
if (!$maxdb->query("CREATE TABLE myCity LIKE City")) {
   printf("Error: %s\n", $maxdb->error);
   exit;
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* determine our thread id */
$thread_id = maxdb_thread_id($link);

/* Kill connection */
maxdb_kill($link, $thread_id);

/* This should produce an error */
if (!maxdb_query($link, "CREATE TABLE myCity LIKE City")) {
   printf("Error: %s\n", maxdb_error($link));
   exit;
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Error: Session not connected

Пред. | Начало | След.
maxdb_insert_id | Уровень выше | maxdb_master_query


maxdb_master_query

(PECL)

maxdb_master_query -- Enforce execution of a query on the master in a master/slave setup

Description

bool maxdb_master_query ( resource link, string query )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
maxdb_kill | Уровень выше | maxdb_more_results


maxdb_more_results

(PECL)

maxdb_more_results

(no version information, might be only in CVS)

maxdb->more_results -- Check if there any more query results from a multi query

Description

bool maxdb_more_results ( resource link )

maxdb_more_results() indicates if one or more result sets are available from a previous call to maxdb_multi_query().

Return values

Always FALSE.

See also

maxdb_multi_query(),
maxdb_next_result(),
maxdb_store_result(),
maxdb_use_result()

Example

See maxdb_multi_query().

Пред. | Начало | След.
maxdb_master_query | Уровень выше | maxdb_multi_query


maxdb_multi_query

(PECL)

maxdb_multi_query

(no version information, might be only in CVS)

maxdb->multi_query -- Performs a query on the database

Description

Procedural style:

bool maxdb_multi_query ( resource link, string query )

Object oriented style (method):

class maxdb {

bool multi_query ( string query )

}

The maxdb_multi_query() works like the function maxdb_query(). Multiple queries are not yet supported.

Return values

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also

maxdb_use_result(),
maxdb_store_result(),
maxdb_next_result(),
maxdb_more_results()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query  = "SELECT * FROM dual";

/* execute multi query */
if ($maxdb->multi_query($query)) {
   do {
       /* store first result set */
       if ($result = $maxdb->store_result()) {
           while ($row = $result->fetch_row()) {
               printf("%s\n", $row[0]);
           }
           $result->close();
       }
       /* print divider */
       if ($maxdb->more_results()) {
           printf("-----------------\n");
       }
   } while ($maxdb->next_result());
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT * FROM dual";

/* execute multi query */
if (maxdb_multi_query($link, $query)) {
   do {
       /* store first result set */
       if ($result = maxdb_store_result($link)) {
           while ($row = maxdb_fetch_row($result)) {
               printf("%s\n", $row[0]);
           }
           maxdb_free_result($result);
       }
       /* print divider */
       if (maxdb_more_results($link)) {
           printf("-----------------\n");
       }
   } while (maxdb_next_result($link));
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

a

Пред. | Начало | След.
maxdb_more_results | Уровень выше | maxdb_next_result


maxdb_next_result

(PECL)

maxdb_next_result

(no version information, might be only in CVS)

maxdb->next_result -- Prepare next result from multi_query

Description

bool maxdb_next_result ( resource link )

Since multiple queries are not yet supported, maxdb_next_result() returns always FALSE.

Return values

FALSE

See also

maxdb_multi_query(),
maxdb_more_results(),
maxdb_store_result(),
maxdb_use_result()

Пред. | Начало | След.
maxdb_multi_query | Уровень выше | maxdb_num_fields


maxdb_num_fields

(PECL)

maxdb_num_fields

(no version information, might be only in CVS)

result->field_count -- Get the number of fields in a result

Description

Procedural style:

int maxdb_num_fields ( resource result )

Object oriented style (property):

class result {

int field_count

}

maxdb_num_fields() returns the number of fields from specified result set.

Возвращаемые значения

The number of fields from a result set

Смотрите также

maxdb_fetch_field()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if ($result = $maxdb->query("SELECT * FROM hotel.city ORDER BY zip")) {

   /* determine number of fields in result set */
   $field_cnt = $result->field_count;

   printf("Result set has %d fields.\n", $field_cnt);

   /* close result set */
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if ($result = maxdb_query($link, "SELECT * FROM hotel.city ORDER BY zip")) {

   /* determine number of fields in result set */
   $field_cnt = maxdb_num_fields($result);

   printf("Result set has %d fields.\n", $field_cnt);

   /* close result set */
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Result set has 3 fields.

Пред. | Начало | След.
maxdb_next_result | Уровень выше | maxdb_num_rows


maxdb_num_rows

(PECL)

maxdb_num_rows -- Gets the number of rows in a result

Description

Procedural style:

int maxdb_num_rows ( resource result )

Object oriented style (property):

class maxdb {

int num_rows

}

Returns the number of rows in the result set.

The use of maxdb_num_rows() depends on whether you use buffered or unbuffered result sets. In case you use unbuffered resultsets maxdb_num_rows() will not correct the correct number of rows until all the rows in the result have been retrieved.

Возвращаемые значения

Returns number of rows in the result set.

Замечание: If the number of rows is greater than maximal int value, the number will be returned as a string.

Смотрите также

maxdb_affected_rows()
maxdb_store_result()
maxdb_use_result()
maxdb_query()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if ($result = $maxdb->query("SELECT cno, name FROM hotel.customer ORDER BY name")) {

   /* determine number of rows result set */
   $row_cnt = $result->num_rows;

   printf("Result set has %d rows.\n", $row_cnt);

   /* close result set */
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if ($result = maxdb_query($link, "SELECT cno, name FROM hotel.customer ORDER BY name")) {

   /* determine number of rows result set */
   $row_cnt = maxdb_num_rows($result);

   printf("Result set has %d rows.\n", $row_cnt);

   /* close result set */
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Result set has 15 rows.

Пред. | Начало | След.
maxdb_num_fields | Уровень выше | maxdb_options


maxdb_options

(PECL)

maxdb_options

(no version information, might be only in CVS)

maxdb->options -- Set options

Description

Procedural style:

bool maxdb_options ( resource link, int option, mixed value )

Object oriented style (method)

class maxdb {

bool options ( int option, mixed value )

}

maxdb_options() can be used to set extra connect options and affect behavior for a connection.

This function may be called multiple times to set several options.

maxdb_options() should be called after maxdb_init() and before maxdb_real_connect().

The parameter option is the option that you want to set, the value is the value for the option. For detailed description of the options see http://dev.mysql.com/doc/maxdb/ The parameter option can be one of the following values:

Таблица 1. Valid options

Name | Description
MAXDB_COMPNAME | The component name used to initialise the SQLDBC runtime environment.
MAXDB_APPLICATION | The application to be connected to the database.
MAXDB_APPVERSION | The version of the application.
MAXDB_SQLMODE | The SQL mode.
MAXDB_UNICODE | TRUE, if the connection is an unicode (UCS2) client or FALSE, if not.
MAXDB_TIMEOUT | The maximum allowed time of inactivity after which the connection to the database is closed by the system.
MAXDB_ISOLATIONLEVEL | Specifies whether and how shared locks and exclusive locks are implicitly requested or released.
MAXDB_PACKETCOUNT | The number of different request packets used for the connection.
MAXDB_STATEMENTCACHESIZE | The number of prepared statements to be cached for the connection for re-use.
MAXDB_CURSORPREFIX | The prefix to use for result tables that are automatically named.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

maxdb_init(), maxdb_real_connect()

Example

See maxdb_real_connect().

Пред. | Начало | След.
maxdb_num_rows | Уровень выше | maxdb_param_count


maxdb_param_count

(PECL)

maxdb_param_count -- Alias of maxdb_stmt_param_count()

Описание

This function is an alias of: maxdb_stmt_param_count().

This function alias is deprecated and only exists for backwards compatibility reasons. It is recommended to not use this function as one day it may be removed from PHP.

Пред. | Начало | След.
maxdb_options | Уровень выше | maxdb_ping


maxdb_ping

(PECL)

maxdb_ping

(no version information, might be only in CVS)

maxdb->ping -- Pings a server connection, or tries to reconnect if the connection has gone down

Description

Procedural style:

bool maxdb_ping ( resource link )

Object oriented style (method):

class maxdb {

bool ping ( void )

}

Checks whether the connection to the server is working. If it has gone down, and global option maxdb.reconnect is enabled an automatic reconnection is attempted.

This function can be used by clients that remain idle for a long while, to check whether the server has closed the connection and reconnect if necessary.

Return values

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* check if server is alive */
if ($maxdb->ping()) {
   printf ("Our connection is ok!\n");
} else {
   printf ("Error: %s\n", $maxdb->error);
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* check if server is alive */
if (maxdb_ping($link)) {
   printf ("Our connection is ok!\n");
} else {
   printf ("Error: %s\n", maxdb_error($link));
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Our connection is ok!

Пред. | Начало | След.
maxdb_param_count | Уровень выше | maxdb_prepare


maxdb_prepare

(PECL)

maxdb_prepare

(no version information, might be only in CVS)

maxdb->prepare -- Prepare a SQL statement for execution

Description

Procedure style:

resource maxdb_prepare ( resource link, string query )

Object oriented style (method)

class stmt {

resource prepare ( string query )

}

maxdb_prepare() prepares the SQL query pointed to by the null-terminated string query, and returns a statement handle to be used for further operations on the statement. The query must consist of a single SQL statement.

Замечание: You should not add a terminating semicolon or \g to the statement.

The parameter query can include one or more parameter markers in the SQL statement by embedding question mark (?) characters at the appropriate positions.

Замечание: The markers are legal only in certain places in SQL statements. For example, they are allowed in the VALUES() list of an INSERT statement (to specify column values for a row), or in a comparison with a column in a WHERE clause to specify a comparison value.

However, they are not allowed for identifiers (such as table or column names), in the select list that names the columns to be returned by a SELECT statement), or to specify both operands of a binary operator such as the = equal sign. The latter restriction is necessary because it would be impossible to determine the parameter type. In general, parameters are legal only in Data Manipulation Languange (DML) statements, and not in Data Defination Language (DDL) statements.

The parameter markers must be bound to application variables using maxdb_stmt_bind_param() and/or maxdb_stmt_bind_result() before executing the statement or fetching rows.

Возвращаемые значения

maxdb_prepare() returns a statement resource or FALSE if an error occured.

Смотрите также

maxdb_stmt_execute(),
maxdb_stmt_fetch(),
maxdb_stmt_bind_param(),
maxdb_stmt_bind_result(),
maxdb_stmt_close()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$city = "Rosemont";

/* create a prepared statement */
if ($stmt = $maxdb->prepare("SELECT state FROM hotel.city WHERE name=?")) {

   /* bind parameters for markers */
   $stmt->bind_param("s", $city);

   /* execute query */
   $stmt->execute();

   /* bind result variables */
   $stmt->bind_result($district);

   /* fetch value */
   $stmt->fetch();

   printf("%s is in district %s\n", $city, $district);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$city = "Rosemont";

/* create a prepared statement */
if ($stmt = maxdb_prepare($link, "SELECT state FROM hotel.city WHERE name=?")) {

   /* bind parameters for markers */
   maxdb_stmt_bind_param($stmt, "s", $city);

   /* execute query */
   maxdb_stmt_execute($stmt);

  /* bind result variables */
   maxdb_stmt_bind_result($stmt, $district);

   /* fetch value */
   maxdb_stmt_fetch($stmt);

   printf("%s is in district %s\n", $city, $district);

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Rosemont is in district IL

Пред. | Начало | След.
maxdb_ping | Уровень выше | maxdb_query


maxdb_query

(PECL)

maxdb_query

(no version information, might be only in CVS)

maxdb->query -- Performs a query on the database

Description

Procedural style:

mixed maxdb_query ( resource link, string query [, int resultmode] )

Object oriented style (method):

class maxdb {

mixed query ( string query )

}

The maxdb_query() function is used to simplify the act of performing a query against the database represented by the link parameter.

Return values

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. For SELECT, SHOW, DESCRIBE or EXPLAIN maxdb_query() will return a result resource.

See also

maxdb_real_query(),
maxdb_multi_query(),
maxdb_free_result()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Create table doesn't return a resultset */
if ($maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city") === TRUE) {
   printf("Table mycity successfully created.\n");
}

/* Select queries return a resultset */
if ($result = $maxdb->query("SELECT name FROM hotel.city")) {
   printf("Select returned %d rows.\n", $result->num_rows);

   /* free result set */
   $result->close();
}

/* If we have to retrieve large amount of data we use MAXDB_USE_RESULT */
if ($result = $maxdb->query("SELECT * FROM hotel.city", MAXDB_USE_RESULT)) {
   $result->close();
}

$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Create table doesn't return a resultset */
if (maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city") === TRUE) {
   printf("Table mycity successfully created.\n");
}

/* Select queries return a resultset */
if ($result = maxdb_query($link, "SELECT name FROM hotel.city")) {
   printf("Select returned %d rows.\n", maxdb_num_rows($result));

   /* free result set */
   maxdb_free_result($result);
}

/* If we have to retrieve large amount of data we use MAXDB_USE_RESULT */
if ($result = maxdb_query($link, "SELECT * FROM hotel.city", MAXDB_USE_RESULT)) {
   maxdb_free_result($result);
}

maxdb_close($link);
?>

The above examples would produce the following output:

Table mycity successfully created.
Select returned 25 rows.

Пред. | Начало | След.
maxdb_prepare | Уровень выше | maxdb_real_connect


maxdb_real_connect

(PECL)

maxdb_real_connect

(no version information, might be only in CVS)

maxdb->real_connect -- Opens a connection to a MaxDB server

Description

Procedural style

bool maxdb_real_connect ( resource link [, string hostname [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]] )

Object oriented style (method)

class maxdb {

bool real_connect ( [string hostname [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]] )

}

maxdb_real_connect() attempts to establish a connection to a MaxDB database engine running on hostname.

This function differs from maxdb_connect():

  • maxdb_real_connect() needs a valid resource which has to be created by function maxdb_init()

  • With function maxdb_options() you can set various options for connection.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

maxdb_connect(),
maxdb_init(),
maxdb_options(),
maxdb_ssl_set(),
maxdb_close().

Example

Пример 1. Object oriented style

<?php

/* create a connection object which is not connected */
$maxdb = maxdb_init();

/* set connection options */
$maxdb->options(MAXDB_UNICODE, "FALSE");
$maxdb->options(MAXDB_TIMEOUT, 5);

/* connect to server */
$maxdb->real_connect('localhost', 'MONA', 'RED', 'DEMODB');

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

printf ("Connection: %s\n.", $maxdb->host_info);

$maxdb->close();
?>

Пример 2. Procedural style

<?php

/* create a connection object which is not connected */
$link = maxdb_init();

/* set connection options */
maxdb_options($link, MAXDB_UNICODE, "FALSE");
maxdb_options($link, MAXDB_TIMEOUT, 5);

/* connect to server */
maxdb_real_connect($link, 'localhost', 'MONA', 'RED', 'DEMODB');

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

printf ("Connection: %s\n.", maxdb_get_host_info($link));

maxdb_close($link);
?>

The above examples would produce the following output:

Connection: localhost <...>

Пред. | Начало | След.
maxdb_query | Уровень выше | maxdb_real_escape_string


maxdb_real_escape_string

(PECL)

maxdb_real_escape_string

(no version information, might be only in CVS)

maxdb->real_escape_string -- Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection

Description

Procedural style:

string maxdb_real_escape_string ( resource link, string escapestr )

Object oriented style (method):

class maxdb {

string real_escape_sring ( string escapestr )

}

This function is used to create a legal SQL string that you can use in a SQL statement. The string escapestr is encoded to an escaped SQL string, taking into account the current character set of the connection.

Characters encoded are ', ".

Return values

Returns an escaped string.

See also

maxdb_character_set_name().

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");

$city = "'s Hertogenbosch";

/* this query will fail, cause we didn't escape $city */
if (!$maxdb->query("INSERT into temp.mycity VALUES ('11111','$city','NY')")) {
   printf("Error: %s\n", $maxdb->sqlstate);
}

$city = $maxdb->real_escape_string($city);

/* this query with escaped $city will work */
if ($maxdb->query("INSERT into temp.mycity VALUES ('22222','$city','NY')")) {
   printf("%d Row inserted.\n", $maxdb->affected_rows);
}

$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");

$city = "'s Hertogenbosch";

/* this query will fail, cause we didn't escape $city */
if (!maxdb_query($link, "INSERT into temp.mycity VALUES ('11111','$city','NY')")) {
   printf("Error: %s\n", maxdb_sqlstate($link));
}

$city = maxdb_real_escape_string($link, $city);

/* this query with escaped $city will work */
if (maxdb_query($link, "INSERT into temp.mycity VALUES ('22222','$city','NY')")) {
   printf("%d Row inserted.\n", maxdb_affected_rows($link));
}

maxdb_close($link);
?>

The above examples would produce the following output:

Warning: maxdb_query(): -5016 POS(43) Missing delimiter: ) <...>
Error: 42000
1 Row inserted.

Пред. | Начало | След.
maxdb_real_connect | Уровень выше | maxdb_real_query


maxdb_real_query

(PECL)

maxdb_real_query

(no version information, might be only in CVS)

maxdb->real_query -- Execute an SQL query

Description

Procedural style

bool maxdb_real_query ( resource link, string query )

Object oriented style (method):

class maxdb {

bool real_query ( string query )

}

The maxdb_real_query() is functionally identical with the maxdb_query().

Замечание: In order to determine if a given query should return a result set or not, see maxdb_field_count().

Return values

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also

maxdb_query()
maxdb_store_result()
maxdb_use_result()

Пред. | Начало | След.
maxdb_real_escape_string | Уровень выше | maxdb_report


maxdb_report

(PECL)

maxdb_report -- Enables or disables internal report functions

Description

bool maxdb_report ( int flags )

Example

Пример 1. Procedural style

<?php
/* activate reporting */
maxdb_report(MAXDB_REPORT_ERROR);

$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* this query should report an error */
$result = maxdb_query($link,"SELECT Name FROM Nonexistingtable WHERE population > 50000");

maxdb_close($link);
?>

The above examples would produce the following output:

Warning: maxdb_query(): -4004 POS(18) Unknown table name:NONEXISTINGTABLE <...>

Пред. | Начало | След.
maxdb_real_query | Уровень выше | maxdb_rollback


maxdb_rollback

(PECL)

maxdb_rollback

(no version information, might be only in CVS)

maxdb->rollback -- Rolls back current transaction

Description

bool maxdb_rollback ( resource link )

class maxdb {

bool rollback ( void )

}

Rollbacks the current transaction for the database specified by the link parameter.

Return values

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also

maxdb_commit() maxdb_autocommit()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* disable autocommit */
$maxdb->autocommit(FALSE);

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");

/* commit insert */
$maxdb->commit();

/* delete all rows */
$maxdb->query("DELETE FROM temp.mycity");

if ($result = $maxdb->query("SELECT COUNT(*) FROM temp.mycity")) {
   $row = $result->fetch_row();
   printf("%d rows in table mycity.\n", $row[0]);
   /* Free result */
   $result->close();
}

/* Rollback */
$maxdb->rollback();

if ($result = $maxdb->query("SELECT COUNT(*) FROM temp.mycity")) {
   $row = $result->fetch_row();
   printf("%d rows in table mycity (after rollback).\n", $row[0]);
   /* Free result */
   $result->close();
}

/* Drop table myCity */
$maxdb->query("DROP TABLE temp.mycity");

$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* disable autocommit */
maxdb_autocommit($link, FALSE);

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

/* commit insert */
maxdb_commit($link);

/* delete all rows */
maxdb_query($link, "DELETE FROM temp.mycity");

if ($result = maxdb_query($link, "SELECT COUNT(*) FROM temp.mycity")) {
   $row = maxdb_fetch_row($result);
   printf("%d rows in table mycity.\n", $row[0]);
   /* Free result */
   maxdb_free_result($result);
}

/* Rollback */
maxdb_rollback($link);

if ($result = maxdb_query($link, "SELECT COUNT(*) FROM temp.mycity")) {
   $row = maxdb_fetch_row($result);
   printf("%d rows in table mycity (after rollback).\n", $row[0]);
   /* Free result */
   maxdb_free_result($result);
}

/* Drop table myCity */
maxdb_query($link, "DROP TABLE temp.mycity");

maxdb_close($link);
?>

The above examples would produce the following output:

0 rows in table mycity.
25 rows in table mycity (after rollback).

Пред. | Начало | След.
maxdb_report | Уровень выше | maxdb_rpl_parse_enabled


maxdb_rpl_parse_enabled

(PECL)

maxdb_rpl_parse_enabled -- Check if RPL parse is enabled

Description

int maxdb_rpl_parse_enabled ( resource link )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
maxdb_rollback | Уровень выше | maxdb_rpl_probe


maxdb_rpl_probe

(PECL)

maxdb_rpl_probe -- RPL probe

Description

bool maxdb_rpl_probe ( resource link )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
maxdb_rpl_parse_enabled | Уровень выше | maxdb_rpl_query_type


maxdb_rpl_query_type

(PECL)

maxdb_rpl_query_type

(no version information, might be only in CVS)

maxdb->rpl_query_type -- Returns RPL query type

Description

int maxdb_rpl_query_type ( resource link )

Object oriented style (method)

class maxdb {

int rpl_query_type ( void )

}

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
maxdb_rpl_probe | Уровень выше | maxdb_select_db


maxdb_select_db

(PECL)

maxdb_select_db

(no version information, might be only in CVS)

maxdb->select_db -- Selects the default database for database queries

Description

bool maxdb_select_db ( resource link, string dbname )

The maxdb_select_db() function selects the default database (specified by the dbname parameter) to be used when performing queries against the database connection represented by the link parameter.

Замечание: This function should only be used to change the default database for the connection. You can select the default database with 4th parameter in maxdb_connect().

Return values

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also

maxdb_connect() maxdb_real_connect()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* return name of current default database */
if ($result = $maxdb->query("SELECT SERVERDB FROM USERS WHERE USERNAME='MONA'")) {
   $row = $result->fetch_row();
   printf("Default database is %s.\n", $row[0]);
   $result->close();
}

/* change db to non existing db */
$maxdb->select_db("XXXXXXXX");

/* return name of current default database */
if ($result = $maxdb->query("SELECT SERVERDB FROM USERS WHERE USERNAME='MONA'")) {
   $row = $result->fetch_row();
   printf("Default database is %s.\n", $row[0]);
   $result->close();
}

$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* return name of current default database */
if ($result = maxdb_query($link, "SELECT SERVERDB FROM USERS WHERE USERNAME='MONA'")) {
   $row = maxdb_fetch_row($result);
   printf("Default database is %s.\n", $row[0]);
   maxdb_free_result($result);
}

/* change db to non existing db */
maxdb_select_db($link, "XXXXXXXX");

/* return name of current default database */
if ($result = maxdb_query($link, "SELECT SERVERDB FROM USERS WHERE USERNAME='MONA'")) {
   $row = maxdb_fetch_row($result);
   printf("Default database is %s.\n", $row[0]);
   maxdb_free_result($result);
}

maxdb_close($link);
?>

The above examples would produce the following output:

Default database is <...>.

Warning: maxdb_select_db(): -10709 Connection failed (RTE:database not running) <...>

Warning: maxdb_query(): -10821 Session not connected [] <...>

Warning: maxdb_close(): -10821 Session not connected [] <...>

Пред. | Начало | След.
maxdb_rpl_query_type | Уровень выше | maxdb_send_long_data


maxdb_send_long_data

(PECL)

maxdb_send_long_data -- Alias of maxdb_stmt_send_long_data()

Описание

This function is an alias of: maxdb_stmt_send_long_data().

This function alias is deprecated and only exists for backwards compatibility reasons. It is recommended to not use this function as one day it may be removed from PHP.

Пред. | Начало | След.
maxdb_select_db | Уровень выше | maxdb_send_query


maxdb_send_query

(PECL)

maxdb_send_query

(no version information, might be only in CVS)

maxdb->send_query -- Send the query and return

Description

bool maxdb_send_query ( resource link, string query )

Object oriented style (method)

class maxdb {

bool send_query ( string query )

}

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
maxdb_send_long_data | Уровень выше | maxdb_server_end


maxdb_server_end

(PECL)

maxdb_server_end -- Shut down the embedded server

Description

void maxdb_server_end ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
maxdb_send_query | Уровень выше | maxdb_server_init


maxdb_server_init

(PECL)

maxdb_server_init -- Initialize embedded server

Description

bool maxdb_server_init ( [array server [, array groups]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
maxdb_server_end | Уровень выше | maxdb_set_opt


maxdb_set_opt

(PECL)

maxdb_set_opt -- Alias of maxdb_options()

Описание

This function is an alias of: maxdb_options().

Пред. | Начало | След.
maxdb_server_init | Уровень выше | maxdb_sqlstate


maxdb_sqlstate

(PECL)

maxdb_sqlstate

(no version information, might be only in CVS)

maxdb->sqlstate -- Returns the SQLSTATE error from previous MaxDB operation

Description

Procedural style:

string maxdb_sqlstate ( resource link )

Object oriented style (property):

class maxdb {

string sqlstate

}

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error. The values are specified by ANSI SQL and ODBC.

Замечание: Note that not all MaxDB errors are yet mapped to SQLSTATE's. The value HY000 (general error) is used for unmapped errors.

Return values

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error.

See also

maxdb_errno(), maxdb_error()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Table City already exists, so we should get an error */
if (!$maxdb->query("CREATE TABLE hotel.city (ID INT, Name VARCHAR(30))")) {
   printf("Error - SQLSTATE %s.\n", $maxdb->sqlstate);
}

$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Table City already exists, so we should get an error */
if (!maxdb_query($link, "CREATE TABLE hotel.city (ID INT, Name VARCHAR(30))")) {
   printf("Error - SQLSTATE %s.\n", maxdb_sqlstate($link));
}

maxdb_close($link);
?>

The above examples would produce the following output:

Warning: maxdb_query(): -6000 POS(20) Duplicate table name:CITY [I6000] <...>
Error - SQLSTATE I6000.

Пред. | Начало | След.
maxdb_set_opt | Уровень выше | maxdb_ssl_set


maxdb_ssl_set

(PECL)

maxdb_ssl_set

(no version information, might be only in CVS)

maxdb->ssl_set -- Used for establishing secure connections using SSL

Description

Procedural style:

bool maxdb_ssl_set ( resource link, string key, string cert, string ca, string capath, string cipher )

Object oriented style (method):

class maxdb {

bool ssl_set ( string key, string cert, string ca, string capath, string cipher )

}

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
maxdb_sqlstate | Уровень выше | maxdb_stat


maxdb_stat

(PECL)

maxdb_stat

(no version information, might be only in CVS)

maxdb->stat -- Gets the current system status

Description

Procedural style:

string maxdb_stat ( resource link )

Object oriented style (method):

class maxdb {

string maxdb->stat ( void )

}

maxdb_stat() returns a string containing several information about the MaxDB server running.

Return values

A string describing the server status. FALSE if an error occurred.

See also

maxdb_get_server_info()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

printf ("System status: %s\n", $maxdb->stat());

$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

printf("System status: %s\n", maxdb_stat($link));

maxdb_close($link);
?>

The above examples would produce the following output:

System status: Kernel    7<...>

Пред. | Начало | След.
maxdb_ssl_set | Уровень выше | maxdb_stmt_affected_rows


maxdb_stmt_affected_rows

(PECL)

maxdb_stmt_affected_rows

(no version information, might be only in CVS)

maxdb_stmt->affected_rows -- Returns the total number of rows changed, deleted, or inserted by the last executed statement

Description

Procedural style :

int maxdb_stmt_affected_rows ( resource stmt )

Object oriented style (property):

class stmt {

int affected_rows

}

maxdb_stmt_affected_rows() returns the number of rows affected by INSERT, UPDATE, or DELETE query. If the last query was invalid or the number of rows can not determined, this function will return -1.

Return Values

An integer greater than zero indicates the number of rows affected or retrieved. Zero indicates that no records where updated for an UPDATE/DELETE statement, no rows matched the WHERE clause in the query or that no query has yet been executed. -1 indicates that the query has returned an error or the number of rows can not determined.

See also

maxdb_stmt_num_rows(), maxdb_prepare()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* create temp table */
$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");

$query = "INSERT INTO temp.mycity SELECT * FROM hotel.city WHERE state LIKE ?";

/* prepare statement */
if ($stmt = $maxdb->prepare($query)) {

   /* Bind variable for placeholder */
   $code = 'N%';
   $stmt->bind_param("s", $code);

   /* execute statement */
   $stmt->execute();

   printf("rows inserted: %d\n", $stmt->affected_rows);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* create temp table */
maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");

$query = "INSERT INTO temp.mycity SELECT * FROM hotel.city WHERE state LIKE ?";

/* prepare statement */
if ($stmt = maxdb_prepare($link, $query)) {

   /* Bind variable for placeholder */
   $code = 'N%';
   maxdb_stmt_bind_param($stmt, "s", $code);

   /* execute statement */
   maxdb_stmt_execute($stmt);

   printf("rows inserted: %d\n", maxdb_stmt_affected_rows($stmt));

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

rows inserted: 4

Пред. | Начало | След.
maxdb_stat | Уровень выше | maxdb_stmt_bind_param


maxdb_stmt_bind_param

(PECL)

maxdb_stmt_bind_param

(no version information, might be only in CVS)

stmt->bind_param -- Binds variables to a prepared statement as parameters

Description

Procedural style:

bool maxdb_stmt_bind_param ( resource stmt, string types, mixed &var1 [, mixed &...] )

Object oriented style (method):

class stmt {

bool bind_param ( string types, mixed &var1 [, mixed &...] )

}

Procedural style (extended syntax):

bool maxdb_stmt_bind_param ( resource stmt, string types, array &var )

Object oriented style (method) (extended syntax):

class stmt {

bool bind_param ( string types, array &var )

}

maxdb_stmt_bind_param() is used to bind variables for the parameter markers in the SQL statement that was passed to maxdb_prepare(). The string types contains one or more characters which specify the types for the corresponding bind variables.

The extended syntax of maxdb_stmt_bind_param() allows to give the parameters as an array instead of a variable list of PHP variables to the function. If the array variable has not been used before calling maxdb_stmt_bind_param(), it has to be initialized as an emtpy array. See the examples how to use maxdb_stmt_bind_param() with extended syntax.

Variables for SELECT INTO SQL statements can also be bound using maxdb_stmt_bind_param(). Parameters for database procedures can be bound using maxdb_stmt_bind_param(). See the examples how to use maxdb_stmt_bind_param() in this cases.

If a variable bound as INTO variable to a SQL statement was used before, the content of this variable is overwritten by the data of the SELECT INTO statement. A reference to this variable will be invalid after a call to maxdb_stmt_bind_param().

For INOUT parameters of database procedures the content of the bound INOUT variable is overwritten by the output value of the database procedure. A reference to this variable will be invalid after a call to maxdb_stmt_bind_param().

Таблица 1. Type specification chars

Character | Description
i | corresponding variable has type integer
d | corresponding variable has type double
s | corresponding variable has type string
b | corresponding variable is a blob and will be send in packages

Return values

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also

maxdb_stmt_bind_result(),
maxdb_stmt_execute(),
maxdb_stmt_fetch(),
maxdb_prepare(),
maxdb_stmt_send_long_data(),
maxdb_stmt_errno(),
maxdb_stmt_error()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb('localhost', 'MONA', 'RED', 'DEMODB');

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query ("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query ("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$stmt = $maxdb->prepare("INSERT INTO temp.mycity VALUES (?, ?, ?)");
$stmt->bind_param('sss', $zip, $name, $state);

$zip = '11111';
$name = 'Georgetown';
$state = 'NY';

/* execute prepared statement */
$stmt->execute();

printf("%d Row inserted.\n", $stmt->affected_rows);

/* close statement and connection */
$stmt->close();

/* Clean up table CountryLanguage */
$maxdb->query("DELETE FROM temp.mycity WHERE name='Georgetown'");
printf("%d Row deleted.\n", $maxdb->affected_rows);

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_query ($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query ($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

$stmt = maxdb_prepare($link, "INSERT INTO temp.mycity VALUES (?, ?, ?)");
maxdb_stmt_bind_param($stmt, 'sss', $zip, $name, $state);

$zip = '11111';
$name = 'Georgetown';
$state = 'NY';

/* execute prepared statement */
maxdb_stmt_execute($stmt);

printf("%d Row inserted.\n", maxdb_stmt_affected_rows($stmt));

/* close statement and connection */
maxdb_stmt_close($stmt);

/* Clean up table CountryLanguage */
maxdb_query($link, "DELETE FROM temp.mycity WHERE name='Georgetown'");
printf("%d Row deleted.\n", maxdb_affected_rows($link));

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

1 Row inserted.
1 Row deleted.

Пример 3. Procedural style (SELECT INTO)

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Performing SQL query */
$stmt = maxdb_prepare ($link, "SELECT price INTO ? FROM hotel.room where hno = ? and type = ?");
if (!$stmt) {
  printf ("Prepare failed: %s\n", maxdb_error($link));
}

$hno = "50";
$rtype = "suite";

maxdb_stmt_bind_param($stmt, 'dss', $price, $hno, $rtype);
maxdb_stmt_execute($stmt);

printf ("%f\n", $price);

maxdb_stmt_close ($stmt);
?>

The above examples would produce the following output:

21.600000

Пример 4. Procedural style (DB procedure)

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP DBPROC test_proc");
maxdb_report (MAXDB_REPORT_ERROR);

$query = "create dbproc test_proc (INOUT e_text char(72)) AS select * from SYSDBA.DUAL; fetch into :e_text;";

maxdb_query($link, $query);

/* Performing SQL query */
$stmt = maxdb_prepare ($link, "CALL test_proc (?)");
if (!$stmt) {
  printf ("Prepare failed: %s\n", maxdb_error($link));
}

maxdb_stmt_bind_param($stmt, 's', $result);
maxdb_stmt_execute($stmt);

printf ("%s\n", $result);

maxdb_stmt_close ($stmt);
?>

The above examples would produce the following output:

a

Пример 5. Object oriented style (extended syntax)

<?php
$maxdb = new maxdb('localhost', 'MONA', 'RED', 'DEMODB');

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query ("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query ("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$stmt = $maxdb->prepare("INSERT INTO temp.mycity VALUES (?, ?, ?)");

$arr = array();

$stmt->bind_param('iss', $arr);

$arr[0] = 11111;
$arr[1] = 'Georgetown';
$arr[2] = 'NY';

/* execute prepared statement */
$stmt->execute();

printf("%d Row inserted.\n", maxdb_stmt_affected_rows($stmt));

$arr[0] = 22222;
$arr[1] = 'New Orleans';
$arr[2] = 'LA';

/* execute prepared statement */
$stmt->execute();

printf("%d Row inserted.\n", $stmt->affected_rows);

/* close statement and connection */
$stmt->close();

$result = $maxdb->query("SELECT * from temp.mycity WHERE zip = '11111' OR zip = '22222'");
if ($result) {
  while ($row = $result->fetch_row()) {
    printf ("%s %s %s\n", $row[0], $row[1], $row[2]);
  }
}

/* Clean up table CountryLanguage */
$maxdb->query("DELETE FROM temp.mycity WHERE name='Georgetown'");
$maxdb->query("DELETE FROM temp.mycity WHERE name='New Orleans'");
printf("%d Rows deleted.\n", $maxdb->affected_rows);

/* close connection */
$maxdb->close();
?>

The above examples would produce the following output:

1 Row inserted.
1 Row inserted.
11111 Georgetown NY
22222 New Orleans LA
2 Rows deleted.

Пред. | Начало | След.
maxdb_stmt_affected_rows | Уровень выше | maxdb_stmt_bind_result


maxdb_stmt_bind_result

(PECL)

maxdb_stmt_bind_result

(no version information, might be only in CVS)

stmt->bind_result -- Binds variables to a prepared statement for result storage

Description

Procedural style:

bool maxdb_stmt_bind_result ( resource stmt, mixed &var1 [, mixed &...] )

Object oriented style (method):

class stmt {

bool bind_result ( mixed &var1 [, mixed &...] )

}

maxdb_stmt_bind_result() is used to associate (bind) columns in the result set to variables. When maxdb_stmt_fetch() is called to fetch data, the MaxDB client/server protocol places the data for the bound columns into the specified variables var1, ....

Замечание: Note that all columns must be bound prior to calling maxdb_stmt_fetch(). Depending on column types bound variables can silently change to the corresponding PHP type.

A column can be bound or rebound at any time, even after a result set has been partially retrieved. The new binding takes effect the next time maxdb_stmt_fetch() is called.

Return values

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also

maxdb_stmt_bind_param(),
maxdb_stmt_execute(),
maxdb_stmt_fetch(),
maxdb_prepare(),
maxdb_stmt_prepare(),
maxdb_stmt_init(),
maxdb_stmt_errno(),
maxdb_stmt_error()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* prepare statement */
if ($stmt = $maxdb->prepare("SELECT zip, name FROM hotel.city ORDER BY name")) {
   $stmt->execute();

   /* bind variables to prepared statement */
   $stmt->bind_result($col1, $col2);

   /* fetch values */
   while ($stmt->fetch()) {
       printf("%s %s\n", $col1, $col2);
   }

   /* close statement */
   $stmt->close();
}
/* close connection */
$maxdb->close();

?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* prepare statement */
if ($stmt = maxdb_prepare($link, "SELECT zip, name FROM hotel.city ORDER BY name")) {
   maxdb_stmt_execute($stmt);

   /* bind variables to prepared statement */
   maxdb_stmt_bind_result($stmt, $col1, $col2);

   /* fetch values */
   while (maxdb_stmt_fetch($stmt)) {
       printf("%s %s\n", $col1, $col2);
   }

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

12203 Albany
60601 Chicago
60615 Chicago
45211 Cincinnati
33575 Clearwater
75243 Dallas
32018 Daytona Beach
33441 Deerfield Beach
48226 Detroit
90029 Hollywood
92714 Irvine
90804 Long Beach
11788 Long Island
90018 Los Angeles
70112 New Orleans
10019 New York
10580 New York
92262 Palm Springs
97213 Portland
60018 Rosemont
95054 Santa Clara
20903 Silver Spring
20005 Washington
20019 Washington
20037 Washington

Пред. | Начало | След.
maxdb_stmt_bind_param | Уровень выше | maxdb_stmt_close_long_data


maxdb_stmt_close_long_data

(PECL)

maxdb_stmt_close_long_data

(no version information, might be only in CVS)

stmt->close_long_data -- Ends a sequence of maxdb_stmt_send_long_data()

Description

Procedural style:

bool maxdb_stmt_close_long_data ( resource stmt, int param_nr )

Object oriented style (method):

class maxdb_stmt {

bool maxdb_stmt->close_long_data ( void )

}

This function has to be called after a sequence of maxdb_stmt_send_long_data(), that was started after maxdb_execute().

param_nr indicates which parameter to associate the end of data with. Parameters are numbered beginning with 0.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

maxdb_prepare(), maxdb_stmt_bind_param()

Пред. | Начало | След.
maxdb_stmt_bind_result | Уровень выше | maxdb_stmt_close


maxdb_stmt_close

(PECL)

maxdb_stmt_close

(no version information, might be only in CVS)

maxdb_stmt->close -- Closes a prepared statement

Description

Procedural style:

bool maxdb_stmt_close ( resource stmt )

Object oriented style (method):

class maxdb_stmt {

bool maxdb_stmt->close ( void )

}

Closes a prepared statement. maxdb_stmt_close() also deallocates the statement handle pointed to by stmt. If the current statement has pending or unread results, this function cancels them so that the next query can be executed.

Return values

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also

maxdb_prepare(),

Пред. | Начало | След.
maxdb_stmt_close_long_data | Уровень выше | maxdb_stmt_data_seek


maxdb_stmt_data_seek

(PECL)

maxdb_stmt_data_seek

(no version information, might be only in CVS)

stmt->data_seek -- Seeks to an arbitray row in statement result set

Description

Procedural style:

bool maxdb_stmt_data_seek ( resource statement, int offset )

Object oriented style (method):

class stmt {

bool data_seek ( int offset )

}

The maxdb_stmt_data_seek() function seeks to an arbitrary result pointer specified by the offset in the statement result set represented by statement. The offset parameter must be between zero and the total number of rows minus one (0..maxdb_stmt_num_rows() - 1).

Return values

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also

maxdb_prepare()

Example

Пример 1. Object oriented style

<?php
/* Open a connection */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, zip FROM hotel.city ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

   /* execute query */
   $stmt->execute();

   /* bind result variables */
   $stmt->bind_result($name, $code);

   /* store result */
   $stmt->store_result();

   /* seek to row no. 5 */
   $stmt->data_seek(5);

   /* fetch values */
   $stmt->fetch();

   printf ("City: %s  Zip: %s\n", $name, $code);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
/* Open a connection */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, zip FROM hotel.city ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

   /* execute query */
   maxdb_stmt_execute($stmt);

   /* bind result variables */
   maxdb_stmt_bind_result($stmt, $name, $code);

   /* store result */
   maxdb_stmt_store_result($stmt);

   /* seek to row no. 400 */
   maxdb_stmt_data_seek($stmt, 5);

   /* fetch values */
   maxdb_stmt_fetch($stmt);

   printf ("City: %s  Zip: %s\n", $name, $code);

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

City: Dallas  Zip: 75243

Пред. | Начало | След.
maxdb_stmt_close | Уровень выше | maxdb_stmt_errno


maxdb_stmt_errno

(PECL)

maxdb_stmt_errno

(no version information, might be only in CVS)

maxdb_stmt->errno -- Returns the error code for the most recent statement call

Description

Procedural style :

int maxdb_stmt_errno ( resource stmt )

Object oriented style (property):

class stmt {

int errno

}

For the statement specified by stmt, maxdb_stmt_errno() returns the error code for the most recently invoked statement function that can succeed or fail.

Замечание: For possible error codes see documentation of SQLDBC: http://dev.mysql.com/doc/maxdb/.

Return values

An error code value. Zero means no error occurred.

See also

maxdb_stmt_error(), maxdb_stmt_sqlstate()

Example

Пример 1. Object oriented style

<?php
/* Open a connection */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

   /* drop table */
   $maxdb->query("DROP TABLE temp.mycity");

   /* execute query */
   $stmt->execute();

   printf("Error: %d.\n", $stmt->errno);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
/* Open a connection */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

   /* drop table */
   maxdb_query($link, "DROP TABLE temp.mycity");

   /* execute query */
   maxdb_stmt_execute($stmt);

   printf("Error: %d.\n", maxdb_stmt_errno($stmt));

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Warning: maxdb_stmt_execute(): -4004 POS(23) Unknown table name:MYCITY [42000] <...>
Error: -4004.

Пред. | Начало | След.
maxdb_stmt_data_seek | Уровень выше | maxdb_stmt_error


maxdb_stmt_error

(PECL)

maxdb_stmt_error

(no version information, might be only in CVS)

maxdb_stmt->error -- Returns a string description for last statement error

Description

Procedural style:

string maxdb_stmt_error ( resource stmt )

Object oriented style (property):

class stmt {

string error

}

For the statement specified by stmt, maxdb_stmt_error() returns a containing the error message for the most recently invoked statement function that can succeed or fail.

Return values

A string that describes the error. An empty string if no error occurred.

See also

maxdb_stmt_errno(), maxdb_stmt_sqlstate()

Example

Пример 1. Object oriented style

<?php
/* Open a connection */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

   /* drop table */
   $maxdb->query("DROP TABLE temp.mycity");

   /* execute query */
   $stmt->execute();

   printf("Error: %s.\n", $stmt->error);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
/* Open a connection */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

   /* drop table */
   maxdb_query($link, "DROP TABLE temp.mycity");

   /* execute query */
   maxdb_stmt_execute($stmt);

   printf("Error: %s.\n", maxdb_stmt_error($stmt));

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Warning: maxdb_stmt_execute(): -4004 POS(23) Unknown table name:MYCITY [42000] <...>
Error: POS(23) Unknown table name:MYCITY.

Пред. | Начало | След.
maxdb_stmt_errno | Уровень выше | maxdb_stmt_execute


maxdb_stmt_execute

(PECL)

maxdb_stmt_execute

(no version information, might be only in CVS)

stmt->execute -- Executes a prepared Query

Description

Procedural style:

bool maxdb_stmt_execute ( resource stmt )

Object oriented style (method):

class stmt {

bool execute ( void )

}

The maxdb_stmt_execute() function executes a query that has been previously prepared using the maxdb_prepare() function represented by the stmt resource. When executed any parameter markers which exist will automatically be replaced with the appropiate data.

If the statement is UPDATE, DELETE, or INSERT, the total number of affected rows can be determined by using the maxdb_stmt_affected_rows() function. Likewise, if the query yields a result set the maxdb_fetch() function is used.

Замечание: When using maxdb_stmt_execute(), the maxdb_fetch() function must be used to fetch the data prior to preforming any additional queries.

Return values

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also

maxdb_prepare() maxdb_stmt_bind_param().

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");

/* Prepare an insert statement */
$query = "INSERT INTO temp.mycity (zip, name, state) VALUES (?,?,?)";
$stmt = $maxdb->prepare($query);

$stmt->bind_param("sss", $val1, $val2, $val3);

$val1 = '11111';
$val2 = 'Georgetown';
$val3 = 'NY';

/* Execute the statement */
$stmt->execute();

$val1 = '22222';
$val2 = 'Hubbatown';
$val3 = 'CA';

/* Execute the statement */
$stmt->execute();

/* close statement */
$stmt->close();

/* retrieve all rows from myCity */
$query = "SELECT zip, name, state FROM temp.mycity";
if ($result = $maxdb->query($query)) {
   while ($row = $result->fetch_row()) {
       printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
   }
   /* free result set */
   $result->close();
}

/* remove table */
$maxdb->query("DROP TABLE temp.mycity");

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");

/* Prepare an insert statement */
$query = "INSERT INTO temp.mycity (zip, name, state) VALUES (?,?,?)";
$stmt = maxdb_prepare($link, $query);

maxdb_stmt_bind_param($stmt, "sss", $val1, $val2, $val3);

$val1 = '11111';
$val2 = 'Georgetown';
$val3 = 'NY';

/* Execute the statement */
maxdb_stmt_execute($stmt);

$val1 = '22222';
$val2 = 'Hubbatown';
$val3 = 'CA';

/* Execute the statement */
maxdb_stmt_execute($stmt);

/* close statement */
maxdb_stmt_close($stmt);

/* retrieve all rows from myCity */
$query = "SELECT zip, name, state FROM temp.mycity";
if ($result = maxdb_query($link, $query)) {
   while ($row = maxdb_fetch_row($result)) {
       printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
   }
   /* free result set */
   maxdb_free_result($result);
}

/* remove table */
maxdb_query($link, "DROP TABLE temp.mycity");

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

11111 (Georgetown,NY)
22222 (Hubbatown,CA)

Пред. | Начало | След.
maxdb_stmt_error | Уровень выше | maxdb_stmt_fetch


maxdb_stmt_fetch

(PECL)

maxdb_stmt_fetch

(no version information, might be only in CVS)

stmt->fetch -- Fetch results from a prepared statement into the bound variables

Description

Procedural style:

bool maxdb_stmt_fetch ( resource stmt )

Object oriented style (method):

class stmt {

bool fetch ( void )

}

maxdb_stmt_fetch() returns row data using the variables bound by maxdb_stmt_bind_result().

Замечание: Note that all columns must be bound by the application before calling maxdb_stmt_fetch().

Return values

Таблица 1. Return values

Value | Description
TRUE | Success. Data has been fetched
FALSE | Error occured
NULL | No more rows/data exists

See also

maxdb_prepare(),
maxdb_stmt_errno(),
maxdb_stmt_error(),
maxdb_stmt_bind_result()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT zip, name FROM hotel.city ORDER by name";

if ($stmt = $maxdb->prepare($query)) {

   /* execute statement */
   $stmt->execute();

   /* bind result variables */
   $stmt->bind_result($name, $code);

   /* fetch values */
   while ($stmt->fetch()) {
       printf ("%s (%s)\n", $name, $code);
   }

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT zip, name FROM hotel.city ORDER by name";

if ($stmt = maxdb_prepare($link, $query)) {

   /* execute statement */
   maxdb_stmt_execute($stmt);

   /* bind result variables */
   maxdb_stmt_bind_result($stmt, $name, $code);

   /* fetch values */
   while (maxdb_stmt_fetch($stmt)) {
       printf ("%s (%s)\n", $name, $code);
   }

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

12203 (Albany)
60601 (Chicago)
60615 (Chicago)
45211 (Cincinnati)
33575 (Clearwater)
75243 (Dallas)
32018 (Daytona Beach)
33441 (Deerfield Beach)
48226 (Detroit)
90029 (Hollywood)
92714 (Irvine)
90804 (Long Beach)
11788 (Long Island)
90018 (Los Angeles)
70112 (New Orleans)
10019 (New York)
10580 (New York)
92262 (Palm Springs)
97213 (Portland)
60018 (Rosemont)
95054 (Santa Clara)
20903 (Silver Spring)
20005 (Washington)
20019 (Washington)
20037 (Washington)

Пред. | Начало | След.
maxdb_stmt_execute | Уровень выше | maxdb_stmt_free_result


maxdb_stmt_free_result

(PECL)

maxdb_stmt_free_result

(no version information, might be only in CVS)

stmt->free_result -- Frees stored result memory for the given statement handle

Description

Procedural style:

void maxdb_stmt_free_result ( resource stmt )

Object oriented style (method):

class stmt {

void free_result ( void )

}

The maxdb_stmt_free_result() function frees the result memory associated with the statement represented by the stmt parameter, which was allocated by maxdb_stmt_store_result().

Возвращаемые значения

This function doesn't return any value.

Смотрите также

maxdb_stmt_store_result()

Пред. | Начало | След.
maxdb_stmt_fetch | Уровень выше | maxdb_stmt_init


maxdb_stmt_init

(PECL)

maxdb_stmt_init

(no version information, might be only in CVS)

maxdb->stmt_init -- Initializes a statement and returns an resource for use with maxdb_stmt_prepare

Description

Procedural style :

resource maxdb_stmt_init ( resource link )

Object oriented style (property):

class maxdb {

object stmt_init ( void )

}

Allocates and initializes a statement resource suitable for maxdb_stmt_prepare().

Замечание: Any subsequent calls to any maxdb_stmt function will fail until maxdb_stmt_prepare() was called.

Возвращаемые значения

Returns an resource.

Смотрите также

maxdb_stmt_prepare()

Пред. | Начало | След.
maxdb_stmt_free_result | Уровень выше | maxdb_stmt_num_rows


maxdb_stmt_num_rows

(PECL)

maxdb_stmt_num_rows

(no version information, might be only in CVS)

stmt->num_rows -- Return the number of rows in statements result set

Description

Procedural style :

int maxdb_stmt_num_rows ( resource stmt )

Object oriented style (property):

class stmt {

int num_rows

}

Returns the number of rows in the result set.

Return values

An integer representing the number of rows in result set.

See also

maxdb_stmt_affected_rows(),
maxdb_prepare(),
maxdb_stmt_store_result()

Example

Пример 1. Object oriented style

<?php
/* Open a connection */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT zip, name FROM hotel.city ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

   /* execute query */
   $stmt->execute();

   /* store result */
   $stmt->store_result();

   printf("Number of rows: %d.\n", $stmt->num_rows);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
/* Open a connection */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT zip, name FROM hotel.city ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

   /* execute query */
   maxdb_stmt_execute($stmt);

   /* store result */
   maxdb_stmt_store_result($stmt);

   printf("Number of rows: %d.\n", maxdb_stmt_num_rows($stmt));

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Number of rows: 25.

Пред. | Начало | След.
maxdb_stmt_init | Уровень выше | maxdb_stmt_param_count


maxdb_stmt_param_count

(PECL)

maxdb_stmt_param_count

(no version information, might be only in CVS)

stmt->param_count -- Returns the number of parameter for the given statement

Description

Procedural style:

int maxdb_stmt_param_count ( resource stmt )

Object oriented style (property):

class stmt {

int param_count

}

maxdb_stmt_param_count() returns the number of parameter markers present in the prepared statement.

Возвращаемые значения

returns an integer representing the number of parameters.

Смотрите также

maxdb_prepare()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if ($stmt = $maxdb->prepare("SELECT name FROM hotel.city WHERE name=? OR state=?")) {

   $marker = $stmt->param_count;
   printf("Statement has %d markers.\n", $marker);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if ($stmt = maxdb_prepare($link, "SELECT name FROM hotel.city WHERE name=? OR state=?")) {

   $marker = maxdb_stmt_param_count($stmt);
   printf("Statement has %d markers.\n", $marker);

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Statement has 2 markers.

Пред. | Начало | След.
maxdb_stmt_num_rows | Уровень выше | maxdb_stmt_prepare


maxdb_stmt_prepare

(PECL)

maxdb_stmt_prepare

(no version information, might be only in CVS)

stmt->prepare -- Prepare a SQL statement for execution

Description

Procedure style:

bool maxdb_stmt_prepare ( resource stmt, string query )

Object oriented style (method)

class stmt {

mixed prepare ( string query )

}

maxdb_stmt_prepare() prepares the SQL query pointed to by the null-terminated string query. The statement resource has to be allocated by maxdb_stmt_init(). The query must consist of a single SQL statement.

Замечание: You should not add a terminating semicolon or \g to the statement.

The parameter query can include one or more parameter markers in the SQL statement by embedding question mark (?) characters at the appropriate positions.

Замечание: The markers are legal only in certain places in SQL statements. For example, they are allowed in the VALUES() list of an INSERT statement (to specify column values for a row), or in a comparison with a column in a WHERE clause to specify a comparison value.

However, they are not allowed for identifiers (such as table or column names), in the select list that names the columns to be returned by a SELECT statement), or to specify both operands of a binary operator such as the = equal sign. The latter restriction is necessary because it would be impossible to determine the parameter type. In general, parameters are legal only in Data Manipulation Languange (DML) statements, and not in Data Defination Language (DDL) statements.

The parameter markers must be bound to application variables using maxdb_stmt_bind_param() and/or maxdb_stmt_bind_result() before executing the statement or fetching rows.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

maxdb_stmt_init(),
maxdb_stmt_execute(),
maxdb_stmt_fetch(),
maxdb_stmt_bind_param(),
maxdb_stmt_bind_result(),
maxdb_stmt_close()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$city = "Portland";

/* create a prepared statement */
$stmt =  $maxdb->stmt_init();
if ($stmt->prepare("SELECT state FROM hotel.city WHERE name=?")) {

   /* bind parameters for markers */
   $stmt->bind_param("s", $city);

   /* execute query */
   $stmt->execute();

   /* bind result variables */
   $stmt->bind_result($district);

   /* fetch value */
   $stmt->fetch();

   printf("%s is in district %s\n", $city, $district);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$city = "Portland";

/* create a prepared statement */
$stmt = maxdb_stmt_init($link);
if (maxdb_stmt_prepare($stmt, "SELECT state FROM hotel.city WHERE name=?")) {

   /* bind parameters for markers */
   maxdb_stmt_bind_param($stmt, "s", $city);

   /* execute query */
   maxdb_stmt_execute($stmt);

   /* bind result variables */
   maxdb_stmt_bind_result($stmt, $district);

   /* fetch value */
   maxdb_stmt_fetch($stmt);

   printf("%s is in district %s\n", $city, $district);

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Portland is in district OR

Пред. | Начало | След.
maxdb_stmt_param_count | Уровень выше | maxdb_stmt_reset


maxdb_stmt_reset

(PECL)

maxdb_stmt_reset

(no version information, might be only in CVS)

stmt->reset -- Resets a prepared statement

Description

Procedural style:

bool maxdb_stmt_reset ( resource stmt )

Object oriented style (method):

class stmt {

bool reset ( void )

}

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
maxdb_stmt_prepare | Уровень выше | maxdb_stmt_result_metadata


maxdb_stmt_result_metadata

(PECL)

maxdb_stmt_result_metadata -- Returns result set metadata from a prepared statement

Description

Procedural style:

resource maxdb_stmt_result_metadata ( resource stmt )

Object oriented style (method):

class stmt {

resource result_metadata ( void )

}

If a statement passed to maxdb_prepare() is one that produces a result set, maxdb_stmt_result_metadata() returns the result resource that can be used to process the meta information such as total number of fields and individual field information.

Замечание: This result set pointer can be passed as an argument to any of the field-based functions that process result set metadata, such as:

  • maxdb_num_fields()

  • maxdb_fetch_field()

  • maxdb_fetch_field_direct()

  • maxdb_fetch_fields()

  • maxdb_field_count()

  • maxdb_field_seek()

  • maxdb_field_tell()

  • maxdb_free_result()

The result set structure should be freed when you are done with it, which you can do by passing it to maxdb_free_result()

Замечание: The result set returned by maxdb_stmt_result_metadata() contains only metadata. It does not contain any row results. The rows are obtained by using the statement handle with maxdb_fetch().

Возвращаемые значения

maxdb_stmt_result_metadata() returns a result resource or FALSE if an error occured.

See also:

maxdb_prepare(), maxdb_free_result()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

$maxdb->query("CREATE TABLE temp.friends (id int, name varchar(20))");

$maxdb->query("INSERT INTO temp.friends VALUES (1,'Hartmut')");
$maxdb->query("INSERT INTO temp.friends VALUES (2, 'Ulf')");

$stmt = $maxdb->prepare("SELECT id, name FROM temp.friends");
$stmt->execute();

/* get resultset for metadata */
$result = $stmt->result_metadata();

/* retrieve field information from metadata result set */
$field = $result->fetch_field();

printf("Fieldname: %s\n", $field->name);

/* close resultset */
$result->close();

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

maxdb_query($link, "CREATE TABLE temp.friends (id int, name varchar(20))");

maxdb_query($link, "INSERT INTO temp.friends VALUES (1,'Hartmut')");
maxdb_query($link, "INSERT INTO temp.friends VALUES (2, 'Ulf')");

$stmt = maxdb_prepare($link, "SELECT id, name FROM temp.friends");
maxdb_stmt_execute($stmt);

/* get resultset for metadata */
$result = maxdb_stmt_result_metadata($stmt);

/* retrieve field information from metadata result set */
$field = maxdb_fetch_field($result);

printf("Fieldname: %s\n", $field->name);

/* close resultset */
maxdb_free_result($result);

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Fieldname: ID

Пред. | Начало | След.
maxdb_stmt_reset | Уровень выше | maxdb_stmt_send_long_data


maxdb_stmt_send_long_data

(PECL)

maxdb_stmt_send_long_data

(no version information, might be only in CVS)

stmt->send_long_data -- Send data in blocks

Description

Procedural style:

bool maxdb_stmt_send_long_data ( resource stmt, int param_nr, string data )

Object oriented style (method)

class stmt {

bool stmt_send_long_data ( int param_nr, string data )

}

Allows to send parameter data to the server in pieces (or chunks). This function can be called multiple times to send the parts of a character or binary data value for a column, which must be one of the TEXT or BLOB datatypes.

param_nr indicates which parameter to associate the data with. Parameters are numbered beginning with 0. data is a string containing data to be sent.

Замечание: For efficiency reasons, this function should be used after calling maxdb_execute(). In this case, the data is not stored on the client side. The end of the sequence must end with a call to maxdb_stmt_close_long_data().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

maxdb_prepare(), maxdb_stmt_bind_param()

Пред. | Начало | След.
maxdb_stmt_result_metadata | Уровень выше | maxdb_stmt_sqlstate


maxdb_stmt_sqlstate

(PECL)

maxdb_stmt_sqlstate -- Returns SQLSTATE error from previous statement operation

Description

string maxdb_stmt_sqlstate ( resource stmt )

Returns a string containing the SQLSTATE error code for the most recently invoked prepared statement function that can succeed or fail. The error code consists of five characters. '00000' means no error. The values are specified by ANSI SQL and ODBC.

Замечание: Note that not all MaxDB errors are yet mapped to SQLSTATE's. The value HY000 (general error) is used for unmapped errors.

Return values

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error.

See also

maxdb_stmt_errno(), maxdb_stmt_error()

Example

Пример 1. Object oriented style

<?php
/* Open a connection */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

   /* drop table */
   $maxdb->query("DROP TABLE temp.mycity");

   /* execute query */
   $stmt->execute();

   printf("Error: %s.\n", $stmt->sqlstate);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
/* Open a connection */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

   /* drop table */
   maxdb_query($link, "DROP TABLE temp.mycity");

   /* execute query */
   maxdb_stmt_execute($stmt);

   printf("Error: %s.\n", maxdb_stmt_sqlstate($stmt));

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Warning: maxdb_stmt_execute(): -4004 POS(23) Unknown table name:MYCITY [42000] <...>
Error: 42000.

Пред. | Начало | След.
maxdb_stmt_send_long_data | Уровень выше | maxdb_stmt_store_result


maxdb_stmt_store_result

(PECL)

maxdb_stmt_store_result

(no version information, might be only in CVS)

maxdb->store_result -- Transfers a result set from a prepared statement

Description

Procedural style:

bool maxdb_stmt_store_result ( resource stmt )

Object oriented style (method):

class maxdb {

object store_result ( void )

}

maxdb_stmt_store_result() has no functionally effect and should not be used for retrieving data from MaxDB server.

Return values

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also

maxdb_prepare(),
maxdb_stmt_result_metadata(),
maxdb_fetch()

Example

Пример 1. Object oriented style

<?php
/* Open a connection */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, zip FROM hotel.city ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

   /* execute query */
   $stmt->execute();

   /* store result */
   $stmt->store_result();

   printf("Number of rows: %d.\n", $stmt->num_rows);

   /* free result */
   $stmt->free_result();

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
/* Open a connection */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, zip FROM hotel.city ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

   /* execute query */
   maxdb_stmt_execute($stmt);

   /* store result */
   maxdb_stmt_store_result($stmt);

   printf("Number of rows: %d.\n", maxdb_stmt_num_rows($stmt));

   /* free result */
   maxdb_stmt_free_result($stmt);

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Number of rows: 25.

Пред. | Начало | След.
maxdb_stmt_sqlstate | Уровень выше | maxdb_store_result


maxdb_store_result

(PECL)

maxdb_store_result

(no version information, might be only in CVS)

maxdb->store_result -- Transfers a result set from the last query

Description

Procedural style:

resource maxdb_store_result ( resource link )

Object oriented style (method):

class maxdb {

object store_result ( void )

}

This function has no functionally effect.

Return values

Returns a result resource or FALSE if an error occurred.

See also

maxdb_real_query(), maxdb_use_result().

Example

See maxdb_multi_query().

Пред. | Начало | След.
maxdb_stmt_store_result | Уровень выше | maxdb_thread_id


maxdb_thread_id

(PECL)

maxdb_thread_id

(no version information, might be only in CVS)

maxdb->thread_id -- Returns the thread ID for the current connection

Description

Procedural style:

int maxdb_thread_id ( resource link )

Object oriented style (property):

class maxdb {

int thread_id

}

The maxdb_thread_id() function returns the thread ID for the current connection which can then be killed using the maxdb_kill() function. If the connection is lost and you reconnect with maxdb_ping(), the thread ID will be other. Therefore you should get the thread ID only when you need it.

Замечание: The thread ID is assigned on a connection-by-connection basis. Hence, if the connection is broken and then re-established a new thread ID will be assigned.

Return values

maxdb_thread_id() returns the Thread ID for the current connection.

See also

maxdb_kill()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* determine our thread id */
$thread_id = $maxdb->thread_id;

/* Kill connection */
$maxdb->kill($thread_id);

/* This should produce an error */
if (!$maxdb->query("CREATE TABLE mycity LIKE hotel.city")) {
   printf("Error: %s\n", $maxdb->error);
   exit;
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* determine our thread id */
$thread_id = maxdb_thread_id($link);

/* Kill connection */
maxdb_kill($link, $thread_id);

/* This should produce an error */
if (!maxdb_query($link, "CREATE TABLE mycity LIKE hotel.city")) {
   printf("Error: %s\n", maxdb_error($link));
   exit;
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Warning: maxdb_query(): -10821 Session not connected <...>
Error: Session not connected

Пред. | Начало | След.
maxdb_store_result | Уровень выше | maxdb_thread_safe


maxdb_thread_safe

(no version information, might be only in CVS)

maxdb_thread_safe -- Returns whether thread safety is given or not

Description

Procedural style:

bool maxdb_thread_safe ( void )

maxdb_thread_safe() indicates whether the client library is compiled as thread-safe.

Return values

TRUE if the client library is thread-safe, otherwise FALSE.

Пред. | Начало | След.
maxdb_thread_id | Уровень выше | maxdb_use_result


maxdb_use_result

(PECL)

maxdb_use_result

(no version information, might be only in CVS)

maxdb->use_result -- Initiate a result set retrieval

Description

Procedural style:

resource maxdb_use_result ( resource link )

Object oriented style (method):

class maxdb {

resource use_result ( void )

}

maxdb_use_result() has no effect.

Return values

Returns result or FALSE in case of error.

See also

maxdb_real_query(), maxdb_store_result().

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query  = "SELECT * FROM DUAL";

/* execute multi query */
if ($maxdb->multi_query($query)) {
   do {
       /* store first result set */
       if ($result = $maxdb->use_result()) {
           while ($row = $result->fetch_row()) {
               printf("%s\n", $row[0]);
           }
           $result->close();
       }
       /* print divider */
       if ($maxdb->more_results()) {
           printf("-----------------\n");
       }
   } while ($maxdb->next_result());
}

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query  = "SELECT * FROM DUAL";

/* execute multi query */
if (maxdb_multi_query($link, $query)) {
   do {
       /* store first result set */
       if ($result = maxdb_use_result($link)) {
           while ($row = maxdb_fetch_row($result)) {
               printf("%s\n", $row[0]);
           }
           maxdb_free_result($result);
       }
       /* print divider */
       if (maxdb_more_results($link)) {
           printf("-----------------\n");
       }
   } while (maxdb_next_result($link));
}

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

a

Пред. | Начало | След.
maxdb_thread_safe | Уровень выше | maxdb_warning_count


maxdb_warning_count

(PECL)

maxdb_warning_count

(no version information, might be only in CVS)

maxdb->warning_count -- Returns the number of warnings from the last query for the given link

Description

Procedural style:

int maxdb_warning_count ( resource link )

Object oriented style (property):

class maxdb {

int warning_count

}

maxdb_warning_count() returns the number of warnings from the last query in the connection represented by the link parameter.

Return values

Number of warnings or zero if there are no warnings.

See also

maxdb_errno(),
maxdb_error(),
maxdb_sqlstate()

Example

Пример 1. Object oriented style

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");

/* a remarkable city in Wales */
$query = "INSERT INTO temp.mycity (zip, name) VALUES('11111',
       'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

$maxdb->query($query);

printf ("Number of warning: %d\n", $maxdb->warning_count);

/* close connection */
$maxdb->close();
?>

Пример 2. Procedural style

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");

/* a remarkable long city name in Wales */
$query = "INSERT INTO temp.mycity (zip, name) VALUES('11111',
       'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

maxdb_query($link, $query);

printf ("Number of warning: %d\n", maxdb_warning_count($link));

/* close connection */
maxdb_close($link);
?>

The above examples would produce the following output:

Warning: maxdb_query(): -8004 POS(62) Constant must be compatible with column type and length <...>
Number of warning: 0

Пред. | Начало | След.
maxdb_use_result | Уровень выше | MCAL Functions


Multibyte String Functions

Руководство по PHP
Пред. След.

LXXXV. Multibyte String Functions

Введение

While there are many languages in which every necessary character can be represented by a one-to-one mapping to a 8-bit value, there are also several languages which require so many characters for written communication that cannot be contained within the range a mere byte can code. Multibyte character encoding schemes were developed to express that many (more than 256) characters in the regular bytewise coding system.

When you manipulate (trim, split, splice, etc.) strings encoded in a multibyte encoding, you need to use special functions since two or more consecutive bytes may represent a single character in such encoding schemes. Otherwise, if you apply a non-multibyte-aware string function to the string, it probably fails to detect the beginning or ending of the multibyte character and ends up with a corrupted garbage string that most likely loses its original meaning.

mbstring provides these multibyte specific string functions that help you deal with multibyte encodings in PHP, which is basically supposed to be used with single byte encodings. In addition to that, mbstring handles character encoding conversion between the possible encoding pairs.

mbstring is also designed to handle Unicode-based encodings such as UTF-8 and UCS-2 and many single-byte encodings for convenience (listed below), whereas mbstring was originally developed for use in Japanese web pages.

PHP Character Encoding Requirements

Encodings of the following types are safely used with PHP.

  • A singlebyte encoding,

    • which has ASCII-compatible (ISO646 compatible) mappings for the characters in range of 00h to 7fh.

  • A multibyte encoding,

    • which has ASCII-compatible mappings for the characters in range of 00h to 7fh.

    • which don't use ISO2022 escape sequences.

    • which don't use a value from 00h to 7fh in any of the compounded bytes that represents a single character.

These are examples of character encodings that are unlikely to work with PHP.

JIS, SJIS, ISO-2022-JP, BIG-5

Although PHP scripts written in any of those encodings might not work, especially in the case where encoded strings appear as identifiers or literals in the script, you can almost avoid using these encodings by setting up the mbstring's transparent encoding filter function for incoming HTTP queries.

Замечание: It's highly discouraged to use SJIS, BIG5, CP936, CP949 and GB18030 for the internal encoding unless you are familiar with the parser, the scanner and the character encoding.

Замечание: If you have some database connected with PHP, it is recommended that you use the same character encoding for both database and the internal encoding for ease of use and better performance.

If you are using PostgreSQL, the character encoding used in the database and the one used in the PHP may differ as it supports automatic character set conversion between the backend and the frontend.

Установка

mbstring is a non-default extension. This means it is not enabled by default. You must explicitly enable the module with the configure option. See the Install section for details.

The following configure options are related to the mbstring module.

  • --enable-mbstring=LANG: Enable mbstring functions. This option is required to use mbstring functions.

    As of PHP 4.3.0, mbstring extension provides
enhanced support for Simplified Chinese, Traditional Chinese,
Korean, and Russian in addition to Japanese.
To enable that feature, you will have to supply either one of the
following options to the LANG parameter;
--enable-mbstring=cn for Simplified Chinese support,
--enable-mbstring=tw for Traditional Chinese support,
--enable-mbstring=kr for Korean support,
--enable-mbstring=ru for Russian support, and
--enable-mbstring=ja for Japanese support.

    Also --enable-mbstring=all is convenient for you to enable all the supported languages listed above.

    Замечание: Japanese language support is also enabled by --enable-mbstring without any options for the sake of backwards compatibility.

  • --enable-mbstr-enc-trans : Enable HTTP input character encoding conversion using mbstring conversion engine. If this feature is enabled, HTTP input character encoding may be converted to mbstring.internal_encoding automatically.

    Замечание: As of PHP 4.3.0, the option --enable-mbstr-enc-trans was eliminated and replaced with the runtime setting mbstring.encoding_translation. HTTP input character encoding conversion is enabled when this is set to On (the default is Off).

  • --enable-mbregex: Enable regular expression functions with multibyte character support.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. mbstring configuration options

Name | Default | Changeable | Changelog
mbstring.language | "neutral" | PHP_INI_PERDIR | Available since PHP 4.3.0.
mbstring.detect_order | NULL | PHP_INI_ALL | Available since PHP 4.0.6.
mbstring.http_input | "pass" | PHP_INI_ALL | Available since PHP 4.0.6.
mbstring.http_output | "pass" | PHP_INI_ALL | Available since PHP 4.0.6.
mbstring.internal_encoding | NULL | PHP_INI_ALL | Available since PHP 4.0.6.
mbstring.script_encoding | NULL | PHP_INI_ALL | Available since PHP 4.3.0.
mbstring.substitute_character | NULL | PHP_INI_ALL | Available since PHP 4.0.6.
mbstring.func_overload | "0" | PHP_INI_PERDIR | PHP_INI_SYSTEM in PHP <= 4.2.3. Available since PHP 4.2.0.
mbstring.encoding_translation | "0" | PHP_INI_PERDIR | Available since PHP 4.3.0.
For the definition of the PHP_INI_* constants, please refer to ini_set().

Краткое разъяснение конфигурационных директив.

mbstring.language string

The default national language setting (NLS) used in mbstring. Note that this option automagically defines mbstring.internal_encoding and mbstring.internal_encoding should be placed after mbstring.language in php.ini

mbstring.encoding_translation boolean

Enables the transparent character encoding filter for the incoming HTTP queries, which performs detection and conversion of the input encoding to the internal character encoding.

mbstring.internal_encoding string

Defines the default internal character encoding.

mbstring.http_input string

Defines the default HTTP input character encoding.

mbstring.http_output string

Defines the default HTTP output character encoding.

mbstring.detect_order string

Defines default character code detection order. See also mb_detect_order().

mbstring.substitute_character string

Defines character to substitute for invalid character encoding.

mbstring.func_overload string

Overloads a set of single byte functions by the mbstring counterparts. See Function overloading for more information.

According to the HTML 4.01 specification, Web browsers are allowed to encode a form being submitted with a character encoding different from the one used for the page. See mb_http_input() to detect character encoding used by browsers.

Although popular browsers are capable of giving a reasonably accurate guess to the character encoding of a given HTML document, it would be better to set the charset parameter in the Content-Type HTTP header to the appropriate value by header() or default_charset ini setting.

Пример 1. php.ini setting examples

; Set default language
mbstring.language        = Neutral; Set default language to Neutral(UTF-8) (default)
mbstring.language        = English; Set default language to English
mbstring.language        = Japanese; Set default language to Japanese

;; Set default internal encoding
;; Note: Make sure to use character encoding works with PHP
mbstring.internal_encoding    = UTF-8  ; Set internal encoding to UTF-8

;; HTTP input encoding translation is enabled.
mbstring.encoding_translation = On

;; Set default HTTP input character encoding
;; Note: Script cannot change http_input setting.
mbstring.http_input           = pass    ; No conversion.
mbstring.http_input           = auto    ; Set HTTP input to auto
                                ; "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS"
mbstring.http_input           = SJIS    ; Set HTTP2 input to  SJIS
mbstring.http_input           = UTF-8,SJIS,EUC-JP ; Specify order

;; Set default HTTP output character encoding
mbstring.http_output          = pass    ; No conversion
mbstring.http_output          = UTF-8   ; Set HTTP output encoding to UTF-8

;; Set default character encoding detection order
mbstring.detect_order         = auto    ; Set detect order to auto
mbstring.detect_order         = ASCII,JIS,UTF-8,SJIS,EUC-JP ; Specify order

;; Set default substitute character
mbstring.substitute_character = 12307   ; Specify Unicode value
mbstring.substitute_character = none    ; Do not print character
mbstring.substitute_character = long    ; Long Example: U+3000,JIS+7E7E

Пример 2. php.ini setting for EUC-JP users

;; Disable Output Buffering
output_buffering      = Off

;; Set HTTP header charset
default_charset       = EUC-JP

;; Set default language to Japanese
mbstring.language = Japanese

;; HTTP input encoding translation is enabled.
mbstring.encoding_translation = On

;; Set HTTP input encoding conversion to auto
mbstring.http_input   = auto

;; Convert HTTP output to EUC-JP
mbstring.http_output  = EUC-JP

;; Set internal encoding to EUC-JP
mbstring.internal_encoding = EUC-JP

;; Do not print invalid characters
mbstring.substitute_character = none

Пример 3. php.ini setting for SJIS users

;; Enable Output Buffering
output_buffering     = On

;; Set mb_output_handler to enable output conversion
output_handler       = mb_output_handler

;; Set HTTP header charset
default_charset      = Shift_JIS

;; Set default language to Japanese
mbstring.language = Japanese

;; Set http input encoding conversion to auto
mbstring.http_input  = auto

;; Convert to SJIS
mbstring.http_output = SJIS

;; Set internal encoding to EUC-JP
mbstring.internal_encoding = EUC-JP

;; Do not print invalid characters
mbstring.substitute_character = none

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

MB_OVERLOAD_MAIL (integer)

MB_OVERLOAD_STRING (integer)

MB_OVERLOAD_REGEX (integer)

HTTP Input and Output

HTTP input/output character encoding conversion may convert binary data also. Users are supposed to control character encoding conversion if binary data is used for HTTP input/output.

Замечание: In PHP 4.3.2 or earlier versions, there was a limitation in this functionality that mbstring does not perform character encoding conversion in POST data if the enctype attribute in the form element is set to multipart/form-data. So you have to convert the incoming data by yourself in this case if necessary.

Beginning with PHP 4.3.3, if enctype for HTML form is set to multipart/form-data and mbstring.encoding_translation is set to On in php.ini the POST'ed variables and the names of uploaded files will be converted to the internal character encoding as well. However, the conversion isn't applied to the query keys.

  • HTTP Input

    There is no way to control HTTP input character conversion from PHP script. To disable HTTP input character conversion, it has to be done in php.ini.

    Пример 4. Disable HTTP input conversion in php.ini

    ;; Disable HTTP Input conversion
    mbstring.http_input = pass
    ;; Disable HTTP Input conversion (PHP 4.3.0 or higher)
    mbstring.encoding_translation = Off

    When using PHP as an Apache module, it is possible to override those settings in each Virtual Host directive in httpd.conf or per directory with .htaccess. Refer to the Configuration section and Apache Manual for details.

  • HTTP Output

    There are several ways to enable output character encoding conversion. One is using php.ini, another is using ob_start() with mb_output_handler() as ob_start callback function.

    Замечание: PHP3-i18n users should note that mbstring's output conversion differs from PHP3-i18n. Character encoding is converted using output buffer.

Пример 5. php.ini setting example

;; Enable output character encoding conversion for all PHP pages

;; Enable Output Buffering
output_buffering    = On

;; Set mb_output_handler to enable output conversion
output_handler      = mb_output_handler

Пример 6. Script example

<?php

// Enable output character encoding conversion only for this page

// Set HTTP output character encoding to SJIS
mb_http_output('SJIS');

// Start buffering and specify "mb_output_handler" as
// callback function
ob_start('mb_output_handler');

?>

Supported Character Encodings

Currently the following character encodings are supported by the mbstring module. Any of those Character encodings can be specified in the encoding parameter of mbstring functions.

The following character encoding is supported in this PHP extension:

  • UCS-4

  • UCS-4BE

  • UCS-4LE

  • UCS-2

  • UCS-2BE

  • UCS-2LE

  • UTF-32

  • UTF-32BE

  • UTF-32LE

  • UTF-16

  • UTF-16BE

  • UTF-16LE

  • UTF-7

  • UTF7-IMAP

  • UTF-8

  • ASCII

  • EUC-JP

  • SJIS

  • eucJP-win

  • SJIS-win

  • ISO-2022-JP

  • JIS

  • ISO-8859-1

  • ISO-8859-2

  • ISO-8859-3

  • ISO-8859-4

  • ISO-8859-5

  • ISO-8859-6

  • ISO-8859-7

  • ISO-8859-8

  • ISO-8859-9

  • ISO-8859-10

  • ISO-8859-13

  • ISO-8859-14

  • ISO-8859-15

  • byte2be

  • byte2le

  • byte4be

  • byte4le

  • BASE64

  • HTML-ENTITIES

  • 7bit

  • 8bit

  • EUC-CN

  • CP936

  • HZ

  • EUC-TW

  • CP950

  • BIG-5

  • EUC-KR

  • UHC (CP949)

  • ISO-2022-KR

  • Windows-1251 (CP1251)

  • Windows-1252 (CP1252)

  • CP866 (IBM866)

  • KOI8-R

php.ini entry, which accepts encoding name, accepts "auto" and "pass" also. mbstring functions, which accepts encoding name, and accepts "auto".

If "pass" is set, no character encoding conversion is performed.

If "auto" is set, it is expanded to the list of encodings defined per the NLS. For instance, if the NLS is set to Japanese, the value is assumed to be "ASCII,JIS,UTF-8,EUC-JP,SJIS".

See also mb_detect_order()

Function Overloading Feature

You might often find it difficult to get an existing PHP application work in a given multibyte environment. That's mostly because lots of PHP applications out there are written with the standard string functions such as substr(), which are known to not properly handle multibyte-encoded strings.

mbstring supports 'function overloading' feature which enables you to add multibyte awareness to such an application without code modification by overloading multibyte counterparts on the standard string functions. For example, mb_substr() is called instead of substr() if function overloading is enabled. This feature makes it easy to port applications that only support single-byte encodings to a multibyte environment in many cases.

To use the function overloading, set mbstring.func_overload in php.ini to a positive value that represents a combination of bitmasks specifying the categories of functions to be overloaded. It should be set to 1 to overload the mail() function. 2 for string functions, 4 for regular expression functions. For example, if is set for 7, mail, strings and regular expression functions should be overloaded. The list of overloaded functions are shown below.

Таблица 2. Functions to be overloaded

value of mbstring.func_overload | original function | overloaded function
1 | mail() | mb_send_mail()
2 | strlen() | mb_strlen()
2 | strpos() | mb_strpos()
2 | strrpos() | mb_strrpos()
2 | substr() | mb_substr()
2 | strtolower() | mb_strtolower()
2 | strtoupper() | mb_strtoupper()
2 | substr_count() | mb_substr_count()
4 | ereg() | mb_ereg()
4 | eregi() | mb_eregi()
4 | ereg_replace() | mb_ereg_replace()
4 | eregi_replace() | mb_eregi_replace()
4 | split() | mb_split()

Замечание: It is not recommended to use the function overloading option in the per-directory context, because it's not confirmed yet to be stable enough in a production environment and may lead to undefined behaviour.

Basics of Japanese multi-byte encodings

It is often said quite hard to figure out how Japanese texts are handled in the computer. This is not only because Japanese characters can only be represented by multibyte encodings, but because different encoding standards are adopted for different purposes / platforms. Moreover, not a few character set standards are used there, which are slightly different from one another. Those facts have often led developers to inevitable mess-up.

To create a working web application that would be put in the Japanese environment, it is important to use the proper character encoding and character set for the task in hand.

  • Storage for a character can be up to six bytes

  • Most of multibyte characters often appear twice as wide as a single-byte character on display. Those characters are called "zen-kaku" in Japanese which means "full width", and the other (narrower) characters are called "han-kaku" - means half width. However the graphical properties of the characters depend on the glyphs of the type faces used to display them or print them out.

  • Some character encodings use shift(escape) sequences defined in ISO2022 to switch the code map of the specific code area (00h to 7fh).

  • ISO-2022-JP should be used in SMTP/NNTP, and headers and entities should be reencoded as per RFC requirements. Although those are not requisites, it's still a good idea because several popular user agents cannot recognize any other encoding methods.

  • Webpages created for mobile phone services such as i-mode, Vodafone live!, or EZweb are supposed to use Shift_JIS.

References

Multibyte character encoding schemes and the related issues are very complicated. There should be too few space to cover in sufficient details. Please refer to the following URLs and other resources for further readings.

  • Unicode materials

    http://www.unicode.org/

  • Japanese/Korean/Chinese character information

    http://examples.oreilly.com/cjkvinfo/doc/cjk.inf

Summaries of supported encodings

Summaries of supported encodings

Name in the IANA character set registry: ISO-10646-UCS-4

Underlying character set: ISO 10646

Description: The Universal Character Set with 31-bit code space, standardized as UCS-4 by ISO/IEC 10646. It is kept synchronized with the latest version of the Unicode code map.

Additional note: If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.

Name in the IANA character set registry: ISO-10646-UCS-4

Underlying character set: UCS-4

Description: See above.

Additional note: In contrast to UCS-4, strings are always assumed to be in big endian form.

Name in the IANA character set registry: ISO-10646-UCS-4

Underlying character set: UCS-4

Description: See above.

Additional note: In contrast to UCS-4, strings are always assumed to be in little endian form.

Name in the IANA character set registry: ISO-10646-UCS-2

Underlying character set: UCS-2

Description: The Universal Character Set with 16-bit code space, standardized as UCS-2 by ISO/IEC 10646. It is kept synchronized with the latest version of the unicode code map.

Additional note: If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.

Name in the IANA character set registry: ISO-10646-UCS-2

Underlying character set: UCS-2

Description: See above.

Additional note: In contrast to UCS-2, strings are always assumed to be in big endian form.

Name in the IANA character set registry: ISO-10646-UCS-2

Underlying character set: UCS-2

Description: See above.

Additional note: In contrast to UCS-2, strings are always assumed to be in little endian form.

Name in the IANA character set registry: UTF-32

Underlying character set: Unicode

Description: Unicode Transformation Format of 32-bit unit width, whose encoding space refers to the Unicode's codeset standard. This encoding scheme wasn't identical to UCS-4 because the code space of Unicode were limited to a 21-bit value.

Additional note: If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.

Name in the IANA character set registry: UTF-32BE

Underlying character set: Unicode

Description: See above

Additional note: In contrast to UTF-32, strings are always assumed to be in big endian form.

Name in the IANA character set registry: UTF-32LE

Underlying character set: Unicode

Description: See above

Additional note: In contrast to UTF-32, strings are always assumed to be in little endian form.

Name in the IANA character set registry: UTF-16

Underlying character set: Unicode

Description: Unicode Transformation Format of 16-bit unit width. It's worth a note that UTF-16 is no longer the same specification as UCS-2 because the surrogate mechanism has been introduced since Unicode 2.0 and UTF-16 now refers to a 21-bit code space.

Additional note: If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.

Name in the IANA character set registry: UTF-16BE

Underlying character set: Unicode

Description: See above.

Additional note: In contrast to UTF-16, strings are always assumed to be in big endian form.

Name in the IANA character set registry: UTF-16BE

Underlying character set: Unicode

Description: See above.

Additional note: In contrast to UTF-16, strings are always assumed to be in big endian form.

Name in the IANA character set registry: UTF-8

Underlying character set: Unicode / UCS

Description: Unicode Transformation Format of 8-bit unit width.

Additional note: none

Name in the IANA character set registry: UTF-7

Underlying character set: Unicode

Description: A mail-safe transformation format of Unicode, specified in RFC2152.

Additional note: none

Name in the IANA character set registry: (none)

Underlying character set: Unicode

Description: A variant of UTF-7 which is specialized for use in the IMAP protocol.

Additional note: none

Name in the IANA character set registry: US-ASCII (preferred MIME name) / iso-ir-6 / ANSI_X3.4-1986 / ISO_646.irv:1991 / ASCII / ISO646-US / us / IBM367 / CP367 / csASCII

Underlying character set: ASCII / ISO 646

Description: American Standard Code for Information Interchange is a commonly-used 7-bit encoding. Also standardized as an international standard, ISO 646.

Additional note: (none)

Name in the IANA character set registry: EUC-JP (preferred MIME name) / Extended_UNIX_Code_Packed_Format_for_Japanese / csEUCPkdFmtJapanese

Underlying character set: Compound of US-ASCII / JIS X0201:1997 (hankaku kana part) / JIS X0208:1990 / JIS X0212:1990

Description: As you see the name is derived from an abbreviation of Extended UNIX Code Packed Format for Japanese, this encoding is mostly used on UNIX or alike platforms. The original encoding scheme, Extended UNIX Code, is designed on the basis of ISO 2022.

Additional note: The character set referred to by EUC-JP is different to IBM932 / CP932, which are used by OS/2® and Microsoft® Windows®. For information interchange with those platforms, use EUCJP-WIN instead.

Name in the IANA character set registry: Shift_JIS (preferred MIME name) / MS_Kanji / csShift_JIS

Underlying character set: Compound of JIS X0201:1997 / JIS X0208:1997

Description: Shift_JIS was developed in early 80's, at the time personal Japanese word processors were brought into the market, in order to maintain compatiblities with the legacy encoding scheme JIS X 0201:1976. According to the IANA definition the codeset of Shift_JIS is slightly different to IBM932 / CP932. However, the names "SJIS" / "Shift_JIS" are often wrongly used to refer to these codesets.

Additional note: For the CP932 codemap, use SJIS-WIN instead.

Name in the IANA character set registry: (none)

Underlying character set: Compound of JIS X0201:1997 / JIS X0208:1997 / IBM extensions / NEC extensions

Description: While this "encoding" uses the same encoding scheme as EUC-JP, the underlying character set is different. That is, some code points map to different characters than EUC-JP.

Additional note: none

Name in the IANA character set registry: Windows-31J / csWindows31J

Underlying character set: Compound of JIS X0201:1997 / JIS X0208:1997 / IBM extensions / NEC extensions

Description: While this "encoding" uses the same encoding scheme as Shift_JIS, the underlying character set is different. That means some code points map to different characters than Shift_JIS.

Additional note: (none)

Name in the IANA character set registry: ISO-2022-JP (preferred MIME name) / csISO2022JP

Underlying character set: US-ASCII / JIS X0201:1976 / JIS X0208:1978 / JIS X0208:1983

Description: RFC1468

Additional note: (none)

Name in the IANA character set registry: JIS

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-1

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-2

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-3

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-4

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-5

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-6

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-7

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-8

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-9

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-10

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-13

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-14

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-8859-15

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: byte2be

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: byte2le

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: byte4be

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: byte4le

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: BASE64

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: HTML-ENTITIES

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: 7bit

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: 8bit

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: EUC-CN

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: CP936

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: HZ

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: EUC-TW

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: CP950

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: BIG-5

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: EUC-KR

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: UHC (CP949)

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: ISO-2022-KR

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: Windows-1251 (CP1251)

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: Windows-1252 (CP1252)

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: CP866 (IBM866)

Underlying character set:

Description:

Additional note:

Name in the IANA character set registry: KOI8-R

Underlying character set:

Description:

Additional note:

Содержание
mb_convert_case -- Perform case folding on a string
mb_convert_encoding -- Convert character encoding
mb_convert_kana -- Convert "kana" one from another ("zen-kaku", "han-kaku" and more)
mb_convert_variables -- Convert character code in variable(s)
mb_decode_mimeheader -- Decode string in MIME header field
mb_decode_numericentity -- Decode HTML numeric string reference to character
mb_detect_encoding -- Detect character encoding
mb_detect_order -- Set/Get character encoding detection order
mb_encode_mimeheader -- Encode string for MIME header
mb_encode_numericentity -- Encode character to HTML numeric string reference
mb_ereg_match -- Regular expression match for multibyte string
mb_ereg_replace -- Replace regular expression with multibyte support
mb_ereg_search_getpos -- Returns start point for next regular expression match
mb_ereg_search_getregs -- Retrieve the result from the last multibyte regular expression match
mb_ereg_search_init -- Setup string and regular expression for multibyte regular expression match
mb_ereg_search_pos -- Return position and length of matched part of multibyte regular expression for predefined multibyte string
mb_ereg_search_regs -- Returns the matched part of multibyte regular expression
mb_ereg_search_setpos -- Set start point of next regular expression match
mb_ereg_search -- Multibyte regular expression match for predefined multibyte string
mb_ereg -- Regular expression match with multibyte support
mb_eregi_replace -- Replace regular expression with multibyte support ignoring case
mb_eregi -- Regular expression match ignoring case with multibyte support
mb_get_info -- Get internal settings of mbstring
mb_http_input -- Detect HTTP input character encoding
mb_http_output -- Set/Get HTTP output character encoding
mb_internal_encoding -- Set/Get internal character encoding
mb_language -- Set/Get current language
mb_list_encodings -- Returns an array of all supported encodings
mb_output_handler -- Callback function converts character encoding in output buffer
mb_parse_str -- Parse GET/POST/COOKIE data and set global variable
mb_preferred_mime_name -- Get MIME charset string
mb_regex_encoding -- Returns current encoding for multibyte regex as string
mb_regex_set_options -- Set/Get the default options for mbregex functions
mb_send_mail -- Send encoded mail
mb_split -- Split multibyte string using regular expression
mb_strcut -- Get part of string
mb_strimwidth -- Get truncated string with specified width
mb_strlen -- Get string length
mb_strpos -- Find position of first occurrence of string in a string
mb_strrpos -- Find position of last occurrence of a string in a string
mb_strtolower -- Make a string lowercase
mb_strtoupper -- Make a string uppercase
mb_strwidth -- Return width of string
mb_substitute_character -- Set/Get substitution character
mb_substr_count -- Count the number of substring occurrences
mb_substr -- Get part of string

Пред. | Начало | След.
msql | Уровень выше | mb_convert_case


mb_convert_case

(PHP 4 >= 4.3.0, PHP 5)

mb_convert_case -- Perform case folding on a string

Description

string mb_convert_case ( string str, int mode [, string encoding] )

mb_convert_case() returns case folded version of string converted in the way specified by mode.

mode can be one of MB_CASE_UPPER, MB_CASE_LOWER or MB_CASE_TITLE.

encoding specifies the encoding of str; if omitted, the internal character encoding value will be used.

The return value is str with the appropriate case folding applied.

By contrast to the standard case folding functions such as strtolower() and strtoupper(), case folding is performed on the basis of the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have 'alphabetic' property, such as A-umlaut (?).

For more information about the Unicode properties, please see http://www.unicode.org/unicode/reports/tr21/.

Пример 1. mb_convert_case() example

<?php
$str = "mary had a Little lamb and she loved it so";
$str = mb_convert_case($str, MB_CASE_UPPER, "UTF-8");
echo $str; // Prints MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
$str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
echo $str; // Prints Mary Had A Little Lamb And She Loved It So
?>

See also mb_strtolower(),
mb_strtoupper(),
strtolower(),
strtoupper(),
ucfirst() и
ucwords()

Пред. | Начало | След.
Multibyte String Functions | Уровень выше | mb_convert_encoding


mb_convert_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_convert_encoding -- Convert character encoding

Description

string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )

mb_convert_encoding() converts character encoding of string str from from_encoding to to_encoding.

str : String to be converted.

from_encoding is specified by character code name before conversion. it can be array or string - comma separated enumerated list. If it is not specified, the internal encoding will be used.

Пример 1. mb_convert_encoding() example

<?php
/* Convert internal character encoding to SJIS */
$str = mb_convert_encoding($str, "SJIS");

/* Convert EUC-JP to UTF-7 */
$str = mb_convert_encoding($str, "UTF-7", "EUC-JP");

/* Auto detect encoding from JIS, eucjp-win, sjis-win, then convert str to UCS-2LE */
$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");

/* "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
$str = mb_convert_encoding($str, "EUC-JP", "auto");
?>

See also mb_detect_order().

Пред. | Начало | След.
mb_convert_case | Уровень выше | mb_convert_kana


mb_convert_kana

(PHP 4 >= 4.0.6, PHP 5)

mb_convert_kana -- Convert "kana" one from another ("zen-kaku", "han-kaku" and more)

Description

string mb_convert_kana ( string str [, string option [, string encoding]] )

mb_convert_kana() performs "han-kaku" - "zen-kaku" conversion for string str. It returns converted string. This function is only useful for Japanese.

option is conversion option. Default value is "KV".

encoding is character encoding. If it is omitted, internal character encoding is used.

Specify with combination of following options. Default value is KV.

Таблица 1. Applicable Conversion Options

Option | Meaning
r | Convert "zen-kaku" alphabets to "han-kaku"
R | Convert "han-kaku" alphabets to "zen-kaku"
n | Convert "zen-kaku" numbers to "han-kaku"
N | Convert "han-kaku" numbers to "zen-kaku"
a | Convert "zen-kaku" alphabets and numbers to "han-kaku"
A | Convert "han-kaku" alphabets and numbers to "zen-kaku" (Characters included in "a", "A" options are U+0021 - U+007E excluding U+0022, U+0027, U+005C, U+007E)
s | Convert "zen-kaku" space to "han-kaku" (U+3000 -> U+0020)
S | Convert "han-kaku" space to "zen-kaku" (U+0020 -> U+3000)
k | Convert "zen-kaku kata-kana" to "han-kaku kata-kana"
K | Convert "han-kaku kata-kana" to "zen-kaku kata-kana"
h | Convert "zen-kaku hira-gana" to "han-kaku kata-kana"
H | Convert "han-kaku kata-kana" to "zen-kaku hira-gana"
c | Convert "zen-kaku kata-kana" to "zen-kaku hira-gana"
C | Convert "zen-kaku hira-gana" to "zen-kaku kata-kana"
V | Collapse voiced sound notation and convert them into a character. Use with "K","H"

Пример 1. mb_convert_kana() example

<?php
/* Convert all "kana" to "zen-kaku" "kata-kana" */
$str = mb_convert_kana($str, "KVC");

/* Convert "han-kaku" "kata-kana" to "zen-kaku" "kata-kana"
   and "zen-kaku" alpha-numeric to "han-kaku" */
$str = mb_convert_kana($str, "KVa");
?>

Пред. | Начало | След.
mb_convert_encoding | Уровень выше | mb_convert_variables


mb_convert_variables

(PHP 4 >= 4.0.6, PHP 5)

mb_convert_variables -- Convert character code in variable(s)

Description

string mb_convert_variables ( string to_encoding, mixed from_encoding, mixed &vars [, mixed &...] )

mb_convert_variables() convert character encoding of variables vars in encoding from_encoding to encoding to_encoding. It returns character encoding before conversion for success, FALSE for failure.

mb_convert_variables() join strings in Array or Object to detect encoding, since encoding detection tends to fail for short strings. Therefore, it is impossible to mix encoding in single array or object.

It from_encoding is specified by array or comma separated string, it tries to detect encoding from from-coding. When encoding is omitted, detect_order is used.

vars (3rd and larger) is reference to variable to be converted. String, Array and Object are accepted. mb_convert_variables() assumes all parameters have the same encoding.

Пример 1. mb_convert_variables() example

<?php
/* Convert variables $post1, $post2 to internal encoding */
$interenc = mb_internal_encoding();
$inputenc = mb_convert_variables($interenc, "ASCII,UTF-8,SJIS-win", $post1, $post2);
?>

Пред. | Начало | След.
mb_convert_kana | Уровень выше | mb_decode_mimeheader


mb_decode_mimeheader

(PHP 4 >= 4.0.6, PHP 5)

mb_decode_mimeheader -- Decode string in MIME header field

Description

string mb_decode_mimeheader ( string str )

mb_decode_mimeheader() decodes encoded-word string str in MIME header.

It returns decoded string in internal character encoding.

See also mb_encode_mimeheader().

Пред. | Начало | След.
mb_convert_variables | Уровень выше | mb_decode_numericentity


mb_decode_numericentity

(PHP 4 >= 4.0.6, PHP 5)

mb_decode_numericentity -- Decode HTML numeric string reference to character

Description

string mb_decode_numericentity ( string str, array convmap [, string encoding] )

Convert numeric string reference of string str in specified block to character. It returns converted string.

convmap is array to specifies code area to convert.

encoding is character encoding. If it is omitted, internal character encoding is used.

Пример 1. convmap example

$convmap = array (
   int start_code1, int end_code1, int offset1, int mask1,
   int start_code2, int end_code2, int offset2, int mask2,
   ........
   int start_codeN, int end_codeN, int offsetN, int maskN );
// Specify Unicode value for start_codeN and end_codeN
// Add offsetN to value and take bit-wise 'AND' with maskN,
// then convert value to numeric string reference.

See also mb_encode_numericentity().

Пред. | Начало | След.
mb_decode_mimeheader | Уровень выше | mb_detect_encoding


mb_detect_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_detect_encoding -- Detect character encoding

Description

string mb_detect_encoding ( string str [, mixed encoding_list [, bool strict]] )

mb_detect_encoding() detects character encoding in string str. It returns detected character encoding.

encoding_list is list of character encoding. Encoding order may be specified by array or comma separated list string.

If encoding_list is omitted, detect_order is used.

Пример 1. mb_detect_encoding() example

<?php
/* Detect character encoding with current detect_order */
echo mb_detect_encoding($str);

/* "auto" is expanded to "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
echo mb_detect_encoding($str, "auto");

/* Specify encoding_list character encoding by comma separated list */
echo mb_detect_encoding($str, "JIS, eucjp-win, sjis-win");

/* Use array to specify encoding_list  */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
echo mb_detect_encoding($str, $ary);
?>

See also mb_detect_order().

Пред. | Начало | След.
mb_decode_numericentity | Уровень выше | mb_detect_order


mb_detect_order

(PHP 4 >= 4.0.6, PHP 5)

mb_detect_order -- Set/Get character encoding detection order

Description

mixed mb_detect_order ( [mixed encoding_list] )

mb_detect_order() sets automatic character encoding detection order to encoding_list. It returns TRUE for success, FALSE for failure.

encoding_list is array or comma separated list of character encoding. ("auto" is expanded to "ASCII, JIS, UTF-8, EUC-JP, SJIS")

If encoding_list is omitted, it returns current character encoding detection order as array.

This setting affects mb_detect_encoding() and mb_send_mail().

Замечание: mbstring currently implements following encoding detection filters. If there is an invalid byte sequence for following encoding, encoding detection will fail.

Замечание: UTF-8, UTF-7, ASCII, EUC-JP,SJIS, eucJP-win, SJIS-win, JIS, ISO-2022-JP

For ISO-8859-*, mbstring always detects as ISO-8859-*.

For UTF-16, UTF-32, UCS2 and UCS4, encoding detection will fail always.

Пример 1. Useless detect order example

; Always detect as ISO-8859-1
detect_order = ISO-8859-1, UTF-8

; Always detect as UTF-8, since ASCII/UTF-7 values are
; valid for UTF-8
detect_order = UTF-8, ASCII, UTF-7

Пример 2. mb_detect_order() examples

<?php
/* Set detection order by enumerated list */
mb_detect_order("eucjp-win,sjis-win,UTF-8");

/* Set detection order by array */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
mb_detect_order($ary);

/* Display current detection order */
echo implode(", ", mb_detect_order());
?>

See also mb_internal_encoding(),
mb_http_input(),
mb_http_output() and
mb_send_mail().

Пред. | Начало | След.
mb_detect_encoding | Уровень выше | mb_encode_mimeheader


mb_encode_mimeheader

(PHP 4 >= 4.0.6, PHP 5)

mb_encode_mimeheader -- Encode string for MIME header

Description

string mb_encode_mimeheader ( string str [, string charset [, string transfer_encoding [, string linefeed]]] )

mb_encode_mimeheader() encodes a given string str by the MIME header encoding scheme. Returns a converted version of the string represented in ASCII.

charset specifies the name of the character set in which str is represented in. The default value is determined by the current NLS setting (mbstring.language).

transfer_encoding specifies the scheme of MIME encoding. It should be either "B" (Base64) or "Q" (Quoted-Printable). Falls back to "B" if not given.

linefeed specifies the EOL (end-of-line) marker with which mb_encode_mime_header() performs line-folding (a RFC term, the act of breaking a line longer than a certain length into multiple lines. The length is currently hard-coded to 74 characters). Falls back to "\r\n" (CRLF) if not given.

Пример 1. mb_encode_mimeheader() example

<?php
$name = ""; // kanji
$mbox = "kru";
$doma = "gtinn.mon";
$addr = mb_encode_mimeheader($name, "UTF-7", "Q") . " <" . $mbox . "@" . $doma . ">";
echo $addr;
?>

Замечание: This function isn't designed to break lines at higher-level contextual break points (word boundaries, etc.). This behaviour may clutter up the original string with unexpected spaces.

See also mb_decode_mimeheader().

Пред. | Начало | След.
mb_detect_order | Уровень выше | mb_encode_numericentity


mb_encode_numericentity

(PHP 4 >= 4.0.6, PHP 5)

mb_encode_numericentity -- Encode character to HTML numeric string reference

Description

string mb_encode_numericentity ( string str, array convmap [, string encoding] )

mb_encode_numericentity() converts specified character codes in string str from HTML numeric character reference to character code. It returns converted string.

convmap is array specifies code area to convert.

encoding is character encoding.

Пример 1. convmap example

$convmap = array (
 int start_code1, int end_code1, int offset1, int mask1,
 int start_code2, int end_code2, int offset2, int mask2,
 ........
 int start_codeN, int end_codeN, int offsetN, int maskN );
// Specify Unicode value for start_codeN and end_codeN
// Add offsetN to value and take bit-wise 'AND' with maskN, then
// it converts value to numeric string reference.

Пример 2. mb_encode_numericentity() example

<?php
/* Convert Left side of ISO-8859-1 to HTML numeric character reference */
$convmap = array(0x80, 0xff, 0, 0xff);
$str = mb_encode_numericentity($str, $convmap, "ISO-8859-1");

/* Convert user defined SJIS-win code in block 95-104 to numeric
   string reference */
$convmap = array(
       0xe000, 0xe03e, 0x1040, 0xffff,
       0xe03f, 0xe0bb, 0x1041, 0xffff,
       0xe0bc, 0xe0fa, 0x1084, 0xffff,
       0xe0fb, 0xe177, 0x1085, 0xffff,
       0xe178, 0xe1b6, 0x10c8, 0xffff,
       0xe1b7, 0xe233, 0x10c9, 0xffff,
       0xe234, 0xe272, 0x110c, 0xffff,
       0xe273, 0xe2ef, 0x110d, 0xffff,
       0xe2f0, 0xe32e, 0x1150, 0xffff,
       0xe32f, 0xe3ab, 0x1151, 0xffff );
$str = mb_encode_numericentity($str, $convmap, "sjis-win");
?>

See also mb_decode_numericentity().

Пред. | Начало | След.
mb_encode_mimeheader | Уровень выше | mb_ereg_match


mb_ereg_match

(PHP 4 >= 4.2.0)

mb_ereg_match -- Regular expression match for multibyte string

Description

bool mb_ereg_match ( string pattern, string string [, string option] )

mb_ereg_match() returns TRUE if string matches regular expression pattern, FALSE if not.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

See also: mb_regex_encoding(), mb_ereg().

Пред. | Начало | След.
mb_encode_numericentity | Уровень выше | mb_ereg_replace


mb_ereg_replace

(PHP 4 >= 4.2.0)

mb_ereg_replace -- Replace regular expression with multibyte support

Description

string mb_ereg_replace ( string pattern, string replacement, string string [, string option] )

mb_ereg_replace() scans string for matches to pattern, then replaces the matched text with replacement and returns the result string or FALSE on error. Multibyte character can be used in pattern.

Matching condition can be set by option parameter. If i is specified for this parameter, the case will be ignored. If x is specified, white space will be ignored. If m is specified, match will be executed in multiline mode and line break will be included in '.'. If p is specified, match will be executed in POSIX mode, line break will be considered as normal character. If e is specified, replacement string will be evaluated as PHP expression.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

See also: mb_regex_encoding(), mb_eregi_replace().

Пред. | Начало | След.
mb_ereg_match | Уровень выше | mb_ereg_search_getpos


mb_ereg_search_getpos

(PHP 4 >= 4.2.0)

mb_ereg_search_getpos -- Returns start point for next regular expression match

Description

int mb_ereg_search_getpos ( void )

mb_ereg_search_getpos() returns
the point to start regular expression match for
mb_ereg_search(),
mb_ereg_search_pos(),
mb_ereg_search_regs(). The position is
represented by bytes from the head of string.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

See also: mb_regex_encoding(), mb_ereg_search_setpos().

Пред. | Начало | След.
mb_ereg_replace | Уровень выше | mb_ereg_search_getregs


mb_ereg_search_getregs

(PHP 4 >= 4.2.0)

mb_ereg_search_getregs -- Retrieve the result from the last multibyte regular expression match

Description

array mb_ereg_search_getregs ( void )

mb_ereg_search_getregs() returns an array including the sub-string of matched part by last mb_ereg_search(), mb_ereg_search_pos(), mb_ereg_search_regs(). If there are some maches, the first element will have the matched sub-string, the second element will have the first part grouped with brackets, the third element will have the second part grouped with brackets, and so on. It returns FALSE on error;

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

See also: mb_regex_encoding(), mb_ereg_search_init().

Пред. | Начало | След.
mb_ereg_search_getpos | Уровень выше | mb_ereg_search_init


mb_ereg_search_init

(PHP 4 >= 4.2.0)

mb_ereg_search_init -- Setup string and regular expression for multibyte regular expression match

Description

bool mb_ereg_search_init ( string string [, string pattern [, string option]] )

mb_ereg_search_init() sets string and pattern for multibyte regular expression. These values are used for mb_ereg_search(), mb_ereg_search_pos(), mb_ereg_search_regs(). It returns TRUE for success, FALSE for error.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

See also: mb_regex_encoding(), mb_ereg_search_regs().

Пред. | Начало | След.
mb_ereg_search_getregs | Уровень выше | mb_ereg_search_pos


mb_ereg_search_pos

(PHP 4 >= 4.2.0)

mb_ereg_search_pos -- Return position and length of matched part of multibyte regular expression for predefined multibyte string

Description

array mb_ereg_search_pos ( [string pattern [, string option]] )

mb_ereg_search_pos() returns an array including position of matched part for multibyte regular expression. The first element of the array will be the beginning of matched part, the second element will be length (bytes) of matched part. It returns FALSE on error.

The string for match is specified by mb_ereg_search_init(). If it is not specified, the previous one will be used.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

See also: mb_regex_encoding(), mb_ereg_search_init().

Пред. | Начало | След.
mb_ereg_search_init | Уровень выше | mb_ereg_search_regs


mb_ereg_search_regs

(PHP 4 >= 4.2.0)

mb_ereg_search_regs -- Returns the matched part of multibyte regular expression

Description

array mb_ereg_search_regs ( [string pattern [, string option]] )

mb_ereg_search_regs() executes the multibyte regular expression match, and if there are some matched part, it returns an array including substring of matched part as first element, the first grouped part with brackets as second element, the second grouped part as third element, and so on. It returns FALSE on error.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

See also: mb_regex_encoding(), mb_ereg_search_init().

Пред. | Начало | След.
mb_ereg_search_pos | Уровень выше | mb_ereg_search_setpos


mb_ereg_search_setpos

(PHP 4 >= 4.2.0)

mb_ereg_search_setpos -- Set start point of next regular expression match

Description

bool mb_ereg_search_setpos ( int position )

mb_ereg_search_setpos() sets the starting point of match for mb_ereg_search().

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

See also: mb_regex_encoding(), mb_ereg_search_init().

Пред. | Начало | След.
mb_ereg_search_regs | Уровень выше | mb_ereg_search


mb_ereg_search

(PHP 4 >= 4.2.0)

mb_ereg_search -- Multibyte regular expression match for predefined multibyte string

Description

bool mb_ereg_search ( [string pattern [, string option]] )

mb_ereg_search() returns TRUE if the multibyte string matches with the regular expression, FALSE for otherwise. The string for matching is set by mb_ereg_search_init(). If pattern is not specified, the previous one is used.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

See also: mb_regex_encoding(), mb_ereg_search_init().

Пред. | Начало | След.
mb_ereg_search_setpos | Уровень выше | mb_ereg


mb_ereg

(PHP 4 >= 4.2.0)

mb_ereg -- Regular expression match with multibyte support

Description

int mb_ereg ( string pattern, string string [, array regs] )

mb_ereg() executes the regular expression match with multibyte support, and returns 1 if matches are found. If the optional third parameter was specified, the function returns the byte length of matched part, and the array regs will contain the substring of matched string. The functions returns 1 if it matches with the empty string. If no matches found or error happend, FALSE will be returned.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

See also: mb_regex_encoding(), mb_eregi()

Пред. | Начало | След.
mb_ereg_search | Уровень выше | mb_eregi_replace


mb_eregi_replace

(PHP 4 >= 4.2.0)

mb_eregi_replace -- Replace regular expression with multibyte support ignoring case

Description

string mb_eregi_replace ( string pattern, string replace, string string [, string option] )

mb_ereg_replace() scans string for matches to pattern, then replaces the matched text with replacement and returns the result string or FALSE on error. Multibyte character can be used in pattern. The case will be ignored. option has the same meaning as in mb_ereg_replace().

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

See also: mb_regex_encoding(), mb_ereg_replace().

Пред. | Начало | След.
mb_ereg | Уровень выше | mb_eregi


mb_eregi

(PHP 4 >= 4.2.0)

mb_eregi -- Regular expression match ignoring case with multibyte support

Description

int mb_eregi ( string pattern, string string [, array regs] )

mb_eregi() executes the regular expression match with multibyte support, and returns 1 if matches are found. This function ignore case. If the optional third parameter was specified, the function returns the byte length of matched part, and the array regs will contain the substring of matched string. The functions returns 1 if it matches with the empty string. If no matches found or error happend, FALSE will be returned.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

See also: mb_regex_encoding(), mb_ereg().

Пред. | Начало | След.
mb_eregi_replace | Уровень выше | mb_get_info


mb_get_info

(PHP 4 >= 4.2.0, PHP 5)

mb_get_info -- Get internal settings of mbstring

Description

mixed mb_get_info ( [string type] )

mb_get_info() returns internal setting parameter of mbstring.

If type isn't specified or is specified to "all", an array having the elements "internal_encoding", "http_output", "http_input", "func_overload" will be returned.

If type is specified for "http_output", "http_input", "internal_encoding", "func_overload", the specified setting parameter will be returned.

See also mb_internal_encoding(), mb_http_output().

Пред. | Начало | След.
mb_eregi | Уровень выше | mb_http_input


mb_http_input

(PHP 4 >= 4.0.6, PHP 5)

mb_http_input -- Detect HTTP input character encoding

Description

mixed mb_http_input ( [string type] )

mb_http_input() returns result of HTTP input character encoding detection.

type: Input string specifies input type. "G" for GET, "P" for POST, "C" for COOKIE, "S" for string, "L" for list, "I" for whole list (will return array). If type is omitted, it returns last input type processed.

Return Value: Character encoding name. If mb_http_input() does not process specified HTTP input, it returns FALSE.

See also mb_internal_encoding(),
mb_http_output(),
mb_detect_order().

Пред. | Начало | След.
mb_get_info | Уровень выше | mb_http_output


mb_http_output

(PHP 4 >= 4.0.6, PHP 5)

mb_http_output -- Set/Get HTTP output character encoding

Description

mixed mb_http_output ( [string encoding] )

If encoding is set, mb_http_output() sets HTTP output character encoding to encoding. Output after this function is converted to encoding. mb_http_output() returns TRUE for success and FALSE for failure.

If encoding is omitted, mb_http_output() returns current HTTP output character encoding.

See also mb_internal_encoding(),
mb_http_input(),
mb_detect_order().

Пред. | Начало | След.
mb_http_input | Уровень выше | mb_internal_encoding


mb_internal_encoding

(PHP 4 >= 4.0.6, PHP 5)

mb_internal_encoding -- Set/Get internal character encoding

Description

mixed mb_internal_encoding ( [string encoding] )

mb_internal_encoding() sets internal character encoding to encoding If parameter is omitted, it returns current internal encoding.

encoding is used for HTTP input character encoding conversion, HTTP output character encoding conversion and default character encoding for string functions defined by mbstring module.

encoding: Character encoding name

Return Value: If encoding is set,mb_internal_encoding() returns TRUE for success, otherwise returns FALSE. If encoding is omitted, it returns current character encoding name.

Пример 1. mb_internal_encoding() example

<?php
/* Set internal character encoding to UTF-8 */
mb_internal_encoding("UTF-8");

/* Display current internal character encoding */
echo mb_internal_encoding();
?>

See also mb_http_input(),
mb_http_output() and
mb_detect_order().

Пред. | Начало | След.
mb_http_output | Уровень выше | mb_language


mb_language

(PHP 4 >= 4.0.6, PHP 5)

mb_language -- Set/Get current language

Description

mixed mb_language ( [string language] )

mb_language() sets language. If language is omitted, it returns current language as string.

language setting is used for encoding e-mail messages. Valid languages are "Japanese", "ja","English","en" and "uni" (UTF-8). mb_send_mail() uses this setting to encode e-mail.

Language and its setting is ISO-2022-JP/Base64 for Japanese, UTF-8/Base64 for uni, ISO-8859-1/quoted printable for English.

Return Value: If language is set and language is valid, it returns TRUE. Otherwise, it returns FALSE. When language is omitted, it returns language name as string. If no language is set previously, it returns FALSE.

See also mb_send_mail().

Пред. | Начало | След.
mb_internal_encoding | Уровень выше | mb_list_encodings


mb_list_encodings

(PHP 5)

mb_list_encodings -- Returns an array of all supported encodings

Description

array mb_list_encodings ( void )

mb_list_encodings() returns an array with all supported encodings.

Пример 1. mb_list_encodings() example

<?php

print_r(mb_list_encodings());

?>

Результат выполнения данного примера:

Array
(
    [0] => pass
    [1] => auto
    [2] => wchar
    [3] => byte2be
    [4] => byte2le
    [5] => byte4be
    [6] => byte4le
    [7] => BASE64
    [8] => UUENCODE
    [9] => HTML-ENTITIES
    [10] => Quoted-Printable
    [11] => 7bit
    [12] => 8bit
    [13] => UCS-4
    [14] => UCS-4BE
    [15] => UCS-4LE
    [16] => UCS-2
    [17] => UCS-2BE
    [18] => UCS-2LE
    [19] => UTF-32
    [20] => UTF-32BE
    [21] => UTF-32LE
    [22] => UTF-16
    [23] => UTF-16BE
    [24] => UTF-16LE
    [25] => UTF-8
    [26] => UTF-7
    [27] => UTF7-IMAP
    [28] => ASCII
    [29] => EUC-JP
    [30] => SJIS
    [31] => eucJP-win
    [32] => SJIS-win
    [33] => JIS
    [34] => ISO-2022-JP
    [35] => Windows-1252
    [36] => ISO-8859-1
    [37] => ISO-8859-2
    [38] => ISO-8859-3
    [39] => ISO-8859-4
    [40] => ISO-8859-5
    [41] => ISO-8859-6
    [42] => ISO-8859-7
    [43] => ISO-8859-8
    [44] => ISO-8859-9
    [45] => ISO-8859-10
    [46] => ISO-8859-13
    [47] => ISO-8859-14
    [48] => ISO-8859-15
    [49] => EUC-CN
    [50] => CP936
    [51] => HZ
    [52] => EUC-TW
    [53] => BIG-5
    [54] => EUC-KR
    [55] => UHC
    [56] => ISO-2022-KR
    [57] => Windows-1251
    [58] => CP866
    [59] => KOI8-R
)

Пред. | Начало | След.
mb_language | Уровень выше | mb_output_handler


mb_output_handler

(PHP 4 >= 4.0.6, PHP 5)

mb_output_handler -- Callback function converts character encoding in output buffer

Description

string mb_output_handler ( string contents, int status )

mb_output_handler() is
ob_start() callback
function. mb_output_handler() converts
characters in output buffer from internal character encoding to
HTTP output character encoding.

4.1.0 or later version, this handler adds charset HTTP header when following conditions are met:

  • Does not set Content-Type by header()

  • Default MIME type begins with text/

  • http_output setting is other than pass

contents : Output buffer contents

status : Output buffer status

Return Value: String converted

Пример 1. mb_output_handler() example

<?php
mb_http_output("UTF-8");
ob_start("mb_output_handler");
?>

Замечание: If you want to output some binary data such as image from PHP script with PHP 4.3.0 or later, Content-Type: header must be send using header() before any binary data was send to client (e.g. header("Content-Type: image/png")). If Content-Type: header was send, output character encoding conversion will not be performed.

Note that if 'Content-Type: text/*' was send using header(), the sending data is regarded as text, encoding conversion will be performed using character encoding settings.

If you want to output some binary data such as image from PHP script with PHP 4.2.x or earlier, you must set output encoding to "pass" using mb_http_output().

See also ob_start().

Пред. | Начало | След.
mb_list_encodings | Уровень выше | mb_parse_str


mb_parse_str

(PHP 4 >= 4.0.6, PHP 5)

mb_parse_str -- Parse GET/POST/COOKIE data and set global variable

Description

bool mb_parse_str ( string encoded_string [, array &result] )

mb_parse_str() parses GET/POST/COOKIE data and sets global variables. Since PHP does not provide raw POST/COOKIE data, it can only used for GET data for now. It preses URL encoded data, detects encoding, converts coding to internal encoding and set values to result array or global variables.

encoded_string: URL encoded data.

result: Array contains decoded and character encoding converted values.

Return Value: It returns TRUE for success or FALSE for failure.

See also mb_detect_order(), mb_internal_encoding().

Пред. | Начало | След.
mb_output_handler | Уровень выше | mb_preferred_mime_name


mb_preferred_mime_name

(PHP 4 >= 4.0.6, PHP 5)

mb_preferred_mime_name -- Get MIME charset string

Description

string mb_preferred_mime_name ( string encoding )

mb_preferred_mime_name() returns MIME charset string for character encoding encoding. It returns charset string.

Пример 1. mb_preferred_mime_string() example

<?php
$outputenc = "sjis-win";
mb_http_output($outputenc);
ob_start("mb_output_handler");
header("Content-Type: text/html; charset=" . mb_preferred_mime_name($outputenc));
?>

Пред. | Начало | След.
mb_parse_str | Уровень выше | mb_regex_encoding


mb_regex_encoding

(PHP 4 >= 4.2.0)

mb_regex_encoding -- Returns current encoding for multibyte regex as string

Description

mixed mb_regex_encoding ( [string encoding] )

mb_regex_encoding() returns the character encoding used by multibyte regex functions.

If the optional parameter encoding is specified, it is set to the character encoding for multibyte regex. The default value is the internal character encoding.

See also: mb_internal_encoding(), mb_ereg()

Пред. | Начало | След.
mb_preferred_mime_name | Уровень выше | mb_regex_set_options


mb_regex_set_options

(PHP 4 >= 4.3.0)

mb_regex_set_options -- Set/Get the default options for mbregex functions

Description

string mb_regex_set_options ( [string options] )

mb_regex_set_options() sets the default options described by options for multibyte regex functions.

Returns the previous options. If options is omitted, it returns the string that describes the current options.

See also
mb_split(),
mb_ereg() and
mb_eregi()

Пред. | Начало | След.
mb_regex_encoding | Уровень выше | mb_send_mail


mb_send_mail

(PHP 4 >= 4.0.6, PHP 5)

mb_send_mail -- Send encoded mail

Description

bool mb_send_mail ( string to, string subject, string message [, string additional_headers [, string additional_parameter]] )

mb_send_mail() sends email. Headers and
message are converted and encoded according to
mb_language() setting.
mb_send_mail() is wrapper
function of mail(). See
mail() for details.

to is mail addresses send to. Multiple recipients can be specified by putting a comma between each address in to. This parameter is not automatically encoded.

subject is subject of mail.

message is mail message.

additional_headers is inserted at the end of the header. This is typically used to add extra headers. Multiple extra headers are separated with a newline ("\n").

Замечание: Content-Type and Content-Transfer-Encoding headers can be redefined as of PHP 5.0.0. In PHP 4, values defined by mb_language() are always used.

additional_parameter is a MTA command line parameter. It is useful when setting the correct Return-Path header when using sendmail.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also mail(),
mb_encode_mimeheader(), and
mb_language().

Пред. | Начало | След.
mb_regex_set_options | Уровень выше | mb_split


mb_split

(PHP 4 >= 4.2.0)

mb_split -- Split multibyte string using regular expression

Description

array mb_split ( string pattern, string string [, int limit] )

mb_split() split multibyte string using regular expression pattern and returns the result as an array.

If optional parameter limit is specified, it will be split in limit elements as maximum.

The internal encoding or the character encoding specified in mb_regex_encoding() will be used as character encoding.

See also: mb_regex_encoding(), mb_ereg().

Пред. | Начало | След.
mb_send_mail | Уровень выше | mb_strcut


mb_strcut

(PHP 4 >= 4.0.6, PHP 5)

mb_strcut -- Get part of string

Description

string mb_strcut ( string str, int start [, int length [, string encoding]] )

mb_strcut() returns the portion of str specified by the start and length parameters.

mb_strcut() performs equivalent operation as mb_substr() with different method. If start position is multi-byte character's second byte or larger, it starts from first byte of multi-byte character.

It subtracts string from str that is shorter than length AND character that is not part of multi-byte string or not being middle of shift sequence.

encoding is character encoding. If it is not set, internal character encoding is used.

See also mb_substr(), mb_internal_encoding().

Пред. | Начало | След.
mb_split | Уровень выше | mb_strimwidth


mb_strimwidth

(PHP 4 >= 4.0.6, PHP 5)

mb_strimwidth -- Get truncated string with specified width

Description

string mb_strimwidth ( string str, int start, int width [, string trimmarker [, string encoding]] )

mb_strimwidth() truncates string str to specified width. It returns truncated string.

If trimmarker is set, trimmarker is appended to return value.

start is start position offset. Number of characters from the beginning of string. (First character is 0)

trimmarker is string that is added to the end of string when string is truncated.

encoding is character encoding. If it is omitted, internal encoding is used.

Пример 1. mb_strimwidth() example

<?php
$str = mb_strimwidth($str, 0, 40, "..>");
?>

See also mb_strwidth() and mb_internal_encoding().

Пред. | Начало | След.
mb_strcut | Уровень выше | mb_strlen


mb_strlen

(PHP 4 >= 4.0.6, PHP 5)

mb_strlen -- Get string length

Description

int mb_strlen ( string str [, string encoding] )

mb_strlen() returns number of characters in string str having character encoding encoding. A multi-byte character is counted as 1.

encoding is character encoding for str. If encoding is omitted, internal character encoding is used.

See also mb_internal_encoding(), strlen().

Пред. | Начало | След.
mb_strimwidth | Уровень выше | mb_strpos


mb_strpos

(PHP 4 >= 4.0.6, PHP 5)

mb_strpos -- Find position of first occurrence of string in a string

Description

int mb_strpos ( string haystack, string needle [, int offset [, string encoding]] )

mb_strpos() returns the numeric position of the first occurrence of needle in the haystack string. If needle is not found, it returns FALSE.

mb_strpos() performs multi-byte safe strpos() operation based on number of characters. needle position is counted from the beginning of the haystack. First character's position is 0. Second character position is 1, and so on.

If encoding is omitted, internal character encoding is used. mb_strrpos() accepts string for needle where strrpos() accepts only character.

offset is search offset. If it is not specified, 0 is used.

encoding is character encoding name. If it is omitted, internal character encoding is used.

See also mb_strrpos(),
mb_internal_encoding(),
strpos()

Пред. | Начало | След.
mb_strlen | Уровень выше | mb_strrpos


mb_strrpos

(PHP 4 >= 4.0.6, PHP 5)

mb_strrpos -- Find position of last occurrence of a string in a string

Description

int mb_strrpos ( string haystack, string needle [, string encoding] )

mb_strrpos() returns the numeric position of the last occurrence of needle in the haystack string. If needle is not found, it returns FALSE.

mb_strrpos() performs multi-byte safe strrpos() operation based on number of characters. needle position is counted from the beginning of haystack. First character's position is 0. Second character position is 1.

If encoding is omitted, internal encoding is assumed. mb_strrpos() accepts string for needle where strrpos() accepts only character.

encoding is character encoding. If it is not specified, internal character encoding is used.

See also mb_strpos(),
mb_internal_encoding(),
strrpos().

Пред. | Начало | След.
mb_strpos | Уровень выше | mb_strtolower


mb_strtolower

(PHP 4 >= 4.3.0, PHP 5)

mb_strtolower -- Make a string lowercase

Description

string mb_strtolower ( string str [, string encoding] )

mb_strtolower() returns str with all alphabetic characters converted to lowercase.

encoding specifies the encoding of str; if omitted, the internal character encoding value will be used.

For more information about the Unicode properties, please see http://www.unicode.org/unicode/reports/tr21/.

By contrast to strtolower(), 'alphabetic' is determined by the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have 'alphabetic' property, such as A-umlaut (?).

Пример 1. mb_strtolower() example

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = mb_strtolower($str);
echo $str; // Prints mary had a little lamb and she loved it so
?>

See also strtolower(),
mb_strtoupper() and
mb_convert_case().

Пред. | Начало | След.
mb_strrpos | Уровень выше | mb_strtoupper


mb_strtoupper

(PHP 4 >= 4.3.0, PHP 5)

mb_strtoupper -- Make a string uppercase

Description

string mb_strtoupper ( string str [, string encoding] )

mb_strtoupper() returns str with all alphabetic characters converted to uppercase.

encoding specifies the encoding of str; if omitted, the internal character encoding value will be used.

By contrast to strtoupper(), 'alphabetic' is determined by the Unicode character properties. Thus the behaviour of this function is not affected by locale settings and it can convert any characters that have 'alphabetic' property, such as a-umlaut (?).

For more information about the Unicode properties, please see http://www.unicode.org/unicode/reports/tr21/.

Пример 1. mb_strtoupper() example

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = mb_strtoupper($str);
echo $str; // Prints MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
?>

See also strtoupper(),
mb_strtolower() and
mb_convert_case().

Пред. | Начало | След.
mb_strtolower | Уровень выше | mb_strwidth


mb_strwidth

(PHP 4 >= 4.0.6, PHP 5)

mb_strwidth -- Return width of string

Description

int mb_strwidth ( string str [, string encoding] )

mb_strwidth() returns width of string str.

Multi-byte character usually twice of width compare to single byte character.

Таблица 1. Characters width

Chars | Width
U+0000 - U+0019 | 0
U+0020 - U+1FFF | 1
U+2000 - U+FF60 | 2
U+FF61 - U+FF9F | 1
U+FFA0 - | 2

encoding is character encoding. If it is omitted, internal encoding is used.

See also: mb_strimwidth(), mb_internal_encoding().

Пред. | Начало | След.
mb_strtoupper | Уровень выше | mb_substitute_character


mb_substitute_character

(PHP 4 >= 4.0.6, PHP 5)

mb_substitute_character -- Set/Get substitution character

Description

mixed mb_substitute_character ( [mixed substrchar] )

mb_substitute_character() specifies substitution character when input character encoding is invalid or character code is not exist in output character encoding. Invalid characters may be substituted NULL(no output), string or integer value (Unicode character code value).

This setting affects mb_convert_encoding(),
mb_convert_variables(),
mb_output_handler(),
and mb_send_mail().

substchar : Specify Unicode value as integer or specify as string as follows

  • "none" : no output

  • "long" : Output character code value (Example: U+3000,JIS+7E7E)

Return Value: If substchar is set, it returns TRUE for success, otherwise returns FALSE. If substchar is not set, it returns Unicode value or "none"/"long".

Пример 1. mb_substitute_character() example

<?php
/* Set with Unicode U+3013 (GETA MARK) */
mb_substitute_character(0x3013);

/* Set hex format */
mb_substitute_character("long");

/* Display current setting */
echo mb_substitute_character();
?>

Пред. | Начало | След.
mb_strwidth | Уровень выше | mb_substr_count


mb_substr_count

(PHP 4 >= 4.3.0, PHP 5)

mb_substr_count -- Count the number of substring occurrences

Description

int mb_substr_count ( string haystack, string needle [, string encoding] )

mb_substr_count() returns the number of times the needle substring occurs in the haystack string.

encoding specifies the encoding for needle and haystack. If omitted, internal character encoding is used.

Пример 1. mb_substr_count() example

<?php
echo mb_substr_count("This is a test", "is"); // prints out 2
?>

See also substr_count(), mb_strpos(), mb_substr().

Пред. | Начало | След.
mb_substitute_character | Уровень выше | mb_substr


mb_substr

(PHP 4 >= 4.0.6, PHP 5)

mb_substr -- Get part of string

Description

string mb_substr ( string str, int start [, int length [, string encoding]] )

mb_substr() returns the portion of str specified by the start and length parameters.

mb_substr() performs multi-byte safe substr() operation based on number of characters. Position is counted from the beginning of str. First character's position is 0. Second character position is 1, and so on.

If encoding is omitted, internal encoding is assumed.

encoding is character encoding. If it is omitted, internal character encoding is used.

See also mb_strcut(), mb_internal_encoding().

Пред. | Начало | След.
mb_substr_count | Уровень выше | muscat Functions


MCAL Functions

Руководство по PHP
Пред. След.

LXXII. MCAL Functions

Введение

MCAL stands for Modular Calendar Access Library.

Libmcal is a C library for accessing calendars. It's written to be very modular, with pluggable drivers. MCAL is the calendar equivalent of the IMAP module for mailboxes.

With mcal support, a calendar stream can be opened much like the mailbox stream with the IMAP support. Calendars can be local file stores, remote ICAP servers, or other formats that are supported by the mcal library.

Calendar events can be pulled up, queried, and stored. There is also support for calendar triggers (alarms) and recurring events.

With libmcal, central calendar servers can be accessed, removing the need for any specific database or local file programming.

Most of the functions use an internal event structure that is unique for each stream. This alleviates the need to pass around large objects between functions. There are convenience functions for setting, initializing, and retrieving the event structure values.

Замечание: This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 5.0.0.

Замечание: PHP had an ICAP extension previously, but the original library and the PHP extension is not supported anymore. The suggested replacement is MCAL.

Замечание: Для Windows-платформ это расширение недоступно.

Требования

This extension requires the mcal library to be installed. Grab the latest version from http://mcal.chek.com/ and compile and install it.

Установка

After you installed the mcal library, to get these functions to work, you have to compile PHP -with-mcal[=DIR].

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

MCAL_SUNDAY (integer)

MCAL_MONDAY (integer)

MCAL_TUESDAY (integer)

MCAL_WEDNESDAY (integer)

MCAL_THURSDAY (integer)

MCAL_FRIDAY (integer)

MCAL_SATURDAY (integer)

MCAL_JANUARY (integer)

MCAL_FEBRUARY (integer)

MCAL_MARCH (integer)

MCAL_APRIL (integer)

MCAL_MAY (integer)

MCAL_JUNE (integer)

MCAL_JULY (integer)

MCAL_AUGUST (integer)

MCAL_SEPTEMBER (integer)

MCAL_OCTOBER (integer)

MCAL_NOVEMBER (integer)

MCAL_DECEMBER (integer)

MCAL_RECUR_NONE (integer)

MCAL_RECUR_DAILY (integer)

MCAL_RECUR_WEEKLY (integer)

MCAL_RECUR_MONTHLY_MDAY (integer)

MCAL_RECUR_MONTHLY_WDAY (integer)

MCAL_RECUR_YEARLY (integer)

MCAL_M_SUNDAY (integer)

MCAL_M_MONDAY (integer)

MCAL_M_TUESDAY (integer)

MCAL_M_WEDNESDAY (integer)

MCAL_M_THURSDAY (integer)

MCAL_M_FRIDAY (integer)

MCAL_M_SATURDAY (integer)

MCAL_M_WEEKDAYS (integer)

MCAL_M_WEEKEND (integer)

MCAL_M_ALLDAYS (integer)

Содержание
mcal_append_event -- Store a new event into an MCAL calendar
mcal_close -- Close an MCAL stream
mcal_create_calendar -- Create a new MCAL calendar
mcal_date_compare -- Compares two dates
mcal_date_valid -- Returns TRUE if the given year, month, day is a valid date
mcal_day_of_week -- Returns the day of the week of the given date
mcal_day_of_year -- Returns the day of the year of the given date
mcal_days_in_month -- Returns the number of days in a month
mcal_delete_calendar -- Delete an MCAL calendar
mcal_delete_event -- Delete an event from an MCAL calendar
mcal_event_add_attribute -- Adds an attribute and a value to the streams global event structure
mcal_event_init -- Initializes a streams global event structure
mcal_event_set_alarm -- Sets the alarm of the streams global event structure
mcal_event_set_category -- Sets the category of the streams global event structure
mcal_event_set_class -- Sets the class of the streams global event structure
mcal_event_set_description -- Sets the description of the streams global event structure
mcal_event_set_end -- Sets the end date and time of the streams global event structure
mcal_event_set_recur_daily -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_monthly_mday -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_monthly_wday -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_none -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_weekly -- Sets the recurrence of the streams global event structure
mcal_event_set_recur_yearly -- Sets the recurrence of the streams global event structure
mcal_event_set_start -- Sets the start date and time of the streams global event structure
mcal_event_set_title -- Sets the title of the streams global event structure
mcal_expunge -- Deletes all events marked for being expunged
mcal_fetch_current_stream_event -- Returns an object containing the current streams event structure
mcal_fetch_event -- Fetches an event from the calendar stream
mcal_is_leap_year -- Returns if the given year is a leap year or not
mcal_list_alarms -- Return a list of events that has an alarm triggered at the given datetime
mcal_list_events -- Return a list of IDs for a date or a range of dates
mcal_next_recurrence -- Returns the next recurrence of the event
mcal_open -- Opens up an MCAL connection
mcal_popen -- Opens up a persistent MCAL connection
mcal_rename_calendar -- Rename an MCAL calendar
mcal_reopen -- Reopens an MCAL connection
mcal_snooze -- Turn off an alarm for an event
mcal_store_event -- Modify an existing event in an MCAL calendar
mcal_time_valid -- Returns TRUE if the given hour, minutes and seconds is a valid time
mcal_week_of_year -- Returns the week number of the given date

Пред. | Начало | След.
maxdb_warning_count | Уровень выше | mcal_append_event


mcal_append_event

(PHP 4, PECL)

mcal_append_event -- Store a new event into an MCAL calendar

Description

int mcal_append_event ( int mcal_stream )

mcal_append_event() stores the global event into an MCAL calendar for the stream mcal_stream.

Returns the id of the newly inserted event.

Пред. | Начало | След.
MCAL Functions | Уровень выше | mcal_close


mcal_close

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_close -- Close an MCAL stream

Description

bool mcal_close ( int mcal_stream [, int flags] )

Closes the given mcal stream.

Пред. | Начало | След.
mcal_append_event | Уровень выше | mcal_create_calendar


mcal_create_calendar

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_create_calendar -- Create a new MCAL calendar

Description

bool mcal_create_calendar ( int stream, string calendar )

Creates a new calendar named calendar.

Пред. | Начало | След.
mcal_close | Уровень выше | mcal_date_compare


mcal_date_compare

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_date_compare -- Compares two dates

Description

int mcal_date_compare ( int a_year, int a_month, int a_day, int b_year, int b_month, int b_day )

mcal_date_compare() Compares the two given dates, returns <0, 0, >0 if a<b, a==b, a>b respectively.

Пред. | Начало | След.
mcal_create_calendar | Уровень выше | mcal_date_valid


mcal_date_valid

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_date_valid -- Returns TRUE if the given year, month, day is a valid date

Description

bool mcal_date_valid ( int year, int month, int day )

mcal_date_valid() Returns TRUE if the given year, month and day is a valid date, FALSE if not.

Пред. | Начало | След.
mcal_date_compare | Уровень выше | mcal_day_of_week


mcal_day_of_week

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_day_of_week -- Returns the day of the week of the given date

Description

int mcal_day_of_week ( int year, int month, int day )

mcal_day_of_week() returns the day of the week of the given date. Possible return values range from 0 for Sunday through 6 for Saturday.

Пред. | Начало | След.
mcal_date_valid | Уровень выше | mcal_day_of_year


mcal_day_of_year

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_day_of_year -- Returns the day of the year of the given date

Description

int mcal_day_of_year ( int year, int month, int day )

mcal_day_of_year() returns the day of the year of the given date.

Пред. | Начало | След.
mcal_day_of_week | Уровень выше | mcal_days_in_month


mcal_days_in_month

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_days_in_month -- Returns the number of days in a month

Description

int mcal_days_in_month ( int month, int leap_year )

mcal_days_in_month() returns the number of days in the month month, taking into account if the considered year is a leap year or not.

Пред. | Начало | След.
mcal_day_of_year | Уровень выше | mcal_delete_calendar


mcal_delete_calendar

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_delete_calendar -- Delete an MCAL calendar

Description

bool mcal_delete_calendar ( int stream, string calendar )

Deletes the calendar named calendar.

Пред. | Начало | След.
mcal_days_in_month | Уровень выше | mcal_delete_event


mcal_delete_event

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_delete_event -- Delete an event from an MCAL calendar

Description

bool mcal_delete_event ( int mcal_stream, int event_id )

mcal_delete_event() deletes the calendar event specified by the event_id.

Returns TRUE.

Пред. | Начало | След.
mcal_delete_calendar | Уровень выше | mcal_event_add_attribute


mcal_event_add_attribute

(PHP 3 >= 3.0.15, PHP 4, PECL)

mcal_event_add_attribute -- Adds an attribute and a value to the streams global event structure

Description

bool mcal_event_add_attribute ( int stream, string attribute, string value )

mcal_event_add_attribute() adds an attribute to the stream's global event structure with the value given by "value".

Пред. | Начало | След.
mcal_delete_event | Уровень выше | mcal_event_init


mcal_event_init

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_init -- Initializes a streams global event structure

Description

void mcal_event_init ( int stream )

mcal_event_init() initializes a streams global event structure. this effectively sets all elements of the structure to 0, or the default settings.

Пред. | Начало | След.
mcal_event_add_attribute | Уровень выше | mcal_event_set_alarm


mcal_event_set_alarm

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_set_alarm -- Sets the alarm of the streams global event structure

Description

void mcal_event_set_alarm ( int stream, int alarm )

mcal_event_set_alarm() sets the streams global event structure's alarm to the given minutes before the event.

Пред. | Начало | След.
mcal_event_init | Уровень выше | mcal_event_set_category


mcal_event_set_category

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_set_category -- Sets the category of the streams global event structure

Description

void mcal_event_set_category ( int stream, string category )

mcal_event_set_category() sets the streams global event structure's category to the given string.

Пред. | Начало | След.
mcal_event_set_alarm | Уровень выше | mcal_event_set_class


mcal_event_set_class

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_set_class -- Sets the class of the streams global event structure

Description

void mcal_event_set_class ( int stream, int class )

mcal_event_set_class() sets the streams global event structure's class to the given value. The class is either 1 for public, or 0 for private.

Пред. | Начало | След.
mcal_event_set_category | Уровень выше | mcal_event_set_description


mcal_event_set_description

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_set_description -- Sets the description of the streams global event structure

Description

void mcal_event_set_description ( int stream, string description )

mcal_event_set_description() sets the streams global event structure's description to the given string.

Пред. | Начало | След.
mcal_event_set_class | Уровень выше | mcal_event_set_end


mcal_event_set_end

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_set_end -- Sets the end date and time of the streams global event structure

Description

void mcal_event_set_end ( int stream, int year, int month, int day [, int hour [, int min [, int sec]]] )

mcal_event_set_end() sets the streams global event structure's end date and time to the given values.

Пред. | Начало | След.
mcal_event_set_description | Уровень выше | mcal_event_set_recur_daily


mcal_event_set_recur_daily

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_set_recur_daily -- Sets the recurrence of the streams global event structure

Description

void mcal_event_set_recur_daily ( int stream, int year, int month, int day, int interval )

mcal_event_set_recur_daily() sets the streams global event structure's recurrence to the given value to be reoccurring on a daily basis, ending at the given date.

Пред. | Начало | След.
mcal_event_set_end | Уровень выше | mcal_event_set_recur_monthly_mday


mcal_event_set_recur_monthly_mday

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_set_recur_monthly_mday -- Sets the recurrence of the streams global event structure

Description

void mcal_event_set_recur_monthly_mday ( int stream, int year, int month, int day, int interval )

mcal_event_set_recur_monthly_mday() sets the streams global event structure's recurrence to the given value to be reoccurring on a monthly by month day basis, ending at the given date.

Пред. | Начало | След.
mcal_event_set_recur_daily | Уровень выше | mcal_event_set_recur_monthly_wday


mcal_event_set_recur_monthly_wday

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_set_recur_monthly_wday -- Sets the recurrence of the streams global event structure

Description

void mcal_event_set_recur_monthly_wday ( int stream, int year, int month, int day, int interval )

mcal_event_set_recur_monthly_wday() sets the streams global event structure's recurrence to the given value to be reoccurring on a monthly by week basis, ending at the given date.

Пред. | Начало | След.
mcal_event_set_recur_monthly_mday | Уровень выше | mcal_event_set_recur_none


mcal_event_set_recur_none

(PHP 3 >= 3.0.15, PHP 4, PECL)

mcal_event_set_recur_none -- Sets the recurrence of the streams global event structure

Description

void mcal_event_set_recur_none ( int stream )

mcal_event_set_recur_none() sets the streams global event structure to not recur (event->recur_type is set to MCAL_RECUR_NONE).

Пред. | Начало | След.
mcal_event_set_recur_monthly_wday | Уровень выше | mcal_event_set_recur_weekly


mcal_event_set_recur_weekly

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_set_recur_weekly -- Sets the recurrence of the streams global event structure

Description

void mcal_event_set_recur_weekly ( int stream, int year, int month, int day, int interval, int weekdays )

mcal_event_set_recur_weekly() sets the streams global event structure's recurrence to the given value to be reoccurring on a weekly basis, ending at the given date.

Пред. | Начало | След.
mcal_event_set_recur_none | Уровень выше | mcal_event_set_recur_yearly


mcal_event_set_recur_yearly

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_set_recur_yearly -- Sets the recurrence of the streams global event structure

Description

void mcal_event_set_recur_yearly ( int stream, int year, int month, int day, int interval )

mcal_event_set_recur_yearly() sets the streams global event structure's recurrence to the given value to be reoccurring on a yearly basis,ending at the given date.

Пред. | Начало | След.
mcal_event_set_recur_weekly | Уровень выше | mcal_event_set_start


mcal_event_set_start

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_set_start -- Sets the start date and time of the streams global event structure

Description

void mcal_event_set_start ( int stream, int year, int month, int day [, int hour [, int min [, int sec]]] )

mcal_event_set_start() sets the streams global event structure's start date and time to the given values.

Пред. | Начало | След.
mcal_event_set_recur_yearly | Уровень выше | mcal_event_set_title


mcal_event_set_title

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_event_set_title -- Sets the title of the streams global event structure

Description

void mcal_event_set_title ( int stream, string title )

mcal_event_set_title() sets the streams global event structure's title to the given string.

Пред. | Начало | След.
mcal_event_set_start | Уровень выше | mcal_expunge


mcal_expunge

(no version information, might be only in CVS)

mcal_expunge -- Deletes all events marked for being expunged

Description

bool mcal_expunge ( int stream )

mcal_expunge() deletes all events which have been previously marked for deletion.

Пред. | Начало | След.
mcal_event_set_title | Уровень выше | mcal_fetch_current_stream_event


mcal_fetch_current_stream_event

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_fetch_current_stream_event -- Returns an object containing the current streams event structure

Description

object mcal_fetch_current_stream_event ( int stream )

mcal_fetch_current_stream_event() returns the current stream's event structure as an object containing:

  • int id - ID of that event.

  • int public - TRUE if the event if public, FALSE if it is private.

  • string category - Category string of the event.

  • string title - Title string of the event.

  • string description - Description string of the event.

  • int alarm - number of minutes before the event to send an alarm/reminder.

  • object start - Object containing a datetime entry.

  • object end - Object containing a datetime entry.

  • int recur_type - recurrence type

  • int recur_interval - recurrence interval

  • datetime recur_enddate - recurrence end date

  • int recur_data - recurrence data

All datetime entries consist of an object that contains:

  • int year - year

  • int month - month

  • int mday - day of month

  • int hour - hour

  • int min - minutes

  • int sec - seconds

  • int alarm - minutes before event to send an alarm

Пред. | Начало | След.
mcal_expunge | Уровень выше | mcal_fetch_event


mcal_fetch_event

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_fetch_event -- Fetches an event from the calendar stream

Description

object mcal_fetch_event ( int mcal_stream, int event_id [, int options] )

mcal_fetch_event() fetches an event from the calendar stream specified by id.

Returns an event object consisting of:

  • int id - ID of that event.

  • int public - TRUE if the event if public, FALSE if it is private.

  • string category - Category string of the event.

  • string title - Title string of the event.

  • string description - Description string of the event.

  • int alarm - number of minutes before the event to send an alarm/reminder.

  • object start - Object containing a datetime entry.

  • object end - Object containing a datetime entry.

  • int recur_type - recurrence type

  • int recur_interval - recurrence interval

  • datetime recur_enddate - recurrence end date

  • int recur_data - recurrence data

All datetime entries consist of an object that contains:

  • int year - year

  • int month - month

  • int mday - day of month

  • int hour - hour

  • int min - minutes

  • int sec - seconds

  • int alarm - minutes before event to send an alarm

The possible values for recur_type are:

  • 0 - Indicates that this event does not recur

  • 1 - This event recurs daily

  • 2 - This event recurs on a weekly basis

  • 3 - This event recurs monthly on a specific day of the month (e.g. the 10th of the month)

  • 4 - This event recurs monthly on a sequenced day of the week (e.g. the 3rd Saturday)

  • 5 - This event recurs on an annual basis

Пред. | Начало | След.
mcal_fetch_current_stream_event | Уровень выше | mcal_is_leap_year


mcal_is_leap_year

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_is_leap_year -- Returns if the given year is a leap year or not

Description

bool mcal_is_leap_year ( int year )

mcal_is_leap_year() returns 1 if the given year is a leap year, 0 if not.

Пред. | Начало | След.
mcal_fetch_event | Уровень выше | mcal_list_alarms


mcal_list_alarms

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_list_alarms -- Return a list of events that has an alarm triggered at the given datetime

Description

array mcal_list_alarms ( int mcal_stream [, int begin_year, int begin_month, int begin_day, int end_year, int end_month, int end_day] )

Returns an array of event ID's that has an alarm going off between the start and end dates, or if just a stream is given, uses the start and end dates in the global event structure.

mcal_list_events() function takes in an optional beginning date and an end date for a calendar stream. An array of event id's that are between the given dates or the internal event dates are returned.

Пред. | Начало | След.
mcal_is_leap_year | Уровень выше | mcal_list_events


mcal_list_events

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_list_events -- Return a list of IDs for a date or a range of dates

Description

array mcal_list_events ( int mcal_stream [, int begin_year, int begin_month, int begin_day, int end_year, int end_month, int end_day] )

Returns an array of ID's that are between the start and end dates, or if just a stream is given, uses the start and end dates in the global event structure.

mcal_list_events() takes in an beginning date and an optional end date for a calendar stream. An array of event id's that are between the given dates or the internal event dates are returned.

Пред. | Начало | След.
mcal_list_alarms | Уровень выше | mcal_next_recurrence


mcal_next_recurrence

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_next_recurrence -- Returns the next recurrence of the event

Description

object mcal_next_recurrence ( int stream, int weekstart, array next )

mcal_next_recurrence() returns an object filled with the next date the event occurs, on or after the supplied date. Returns empty date field if event does not occur or something is invalid. Uses weekstart to determine what day is considered the beginning of the week.

Пред. | Начало | След.
mcal_list_events | Уровень выше | mcal_open


mcal_open

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_open -- Opens up an MCAL connection

Description

int mcal_open ( string calendar, string username, string password [, int options] )

Returns an MCAL stream on success, FALSE on error.

mcal_open() opens up an MCAL connection to the specified calendar store. If the optional options is specified, passes the options to that mailbox also. The streams internal event structure is also initialized upon connection.

Пред. | Начало | След.
mcal_next_recurrence | Уровень выше | mcal_popen


mcal_popen

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_popen -- Opens up a persistent MCAL connection

Description

int mcal_popen ( string calendar, string username, string password [, int options] )

Returns an MCAL stream on success, FALSE on error.

mcal_popen() opens up an MCAL connection to the specified calendar store. If the optional options is specified, passes the options to that mailbox also. The streams internal event structure is also initialized upon connection.

Пред. | Начало | След.
mcal_open | Уровень выше | mcal_rename_calendar


mcal_rename_calendar

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_rename_calendar -- Rename an MCAL calendar

Description

bool mcal_rename_calendar ( int stream, string old_name, string new_name )

Renames the calendar old_name to new_name.

Пред. | Начало | След.
mcal_popen | Уровень выше | mcal_reopen


mcal_reopen

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_reopen -- Reopens an MCAL connection

Description

bool mcal_reopen ( int mcal_stream, string calendar [, int options] )

Reopens an MCAL stream to a new calendar.

mcal_reopen() reopens an MCAL connection to the specified calendar store. If the optional options is specified, passes the options to that mailbox also.

Пред. | Начало | След.
mcal_rename_calendar | Уровень выше | mcal_snooze


mcal_snooze

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_snooze -- Turn off an alarm for an event

Description

bool mcal_snooze ( int stream_id, int event_id )

mcal_snooze() turns off an alarm for a calendar event specified by the stream_id and event_id.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
mcal_reopen | Уровень выше | mcal_store_event


mcal_store_event

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_store_event -- Modify an existing event in an MCAL calendar

Description

int mcal_store_event ( int mcal_stream )

mcal_store_event() stores the modifications to the current global event for the given stream.

Returns the event id of the modified event on success and FALSE on error.

Пред. | Начало | След.
mcal_snooze | Уровень выше | mcal_time_valid


mcal_time_valid

(PHP 3 >= 3.0.13, PHP 4, PECL)

mcal_time_valid -- Returns TRUE if the given hour, minutes and seconds is a valid time

Description

bool mcal_time_valid ( int hour, int minutes, int seconds )

mcal_time_valid() Returns TRUE if the given hour, minutes and seconds is a valid time, FALSE if not.

Пред. | Начало | След.
mcal_store_event | Уровень выше | mcal_week_of_year


mcal_week_of_year

(PHP 4, PECL)

mcal_week_of_year -- Returns the week number of the given date

Description

int mcal_week_of_year ( int day, int month, int year )

mcal_week_of_year() returns the week number of the given date.

Пред. | Начало | След.
mcal_time_valid | Уровень выше | Mcrypt Encryption Functions


Mcrypt Encryption Functions

Руководство по PHP
Пред. След.

LXXIII. Mcrypt Encryption Functions

Введение

This is an interface to the mcrypt library, which supports a wide variety of block algorithms such as DES, TripleDES, Blowfish (default), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 and GOST in CBC, OFB, CFB and ECB cipher modes. Additionally, it supports RC6 and IDEA which are considered "non-free".

Требования

These functions work using mcrypt. To use it, download libmcrypt-x.x.tar.gz from http://mcrypt.sourceforge.net/ and follow the included installation instructions. Windows users will find all the needed compiled mcrypt binaries at http://ftp.emini.dk/pub/php/win32/mcrypt/.

As of PHP 5.0.0 you will need libmcrypt Version 2.5.6 or greater.

If you linked against libmcrypt 2.4.x or higher, the following additional block algorithms are supported: CAST, LOKI97, RIJNDAEL, SAFERPLUS, SERPENT and the following stream ciphers: ENIGMA (crypt), PANAMA, RC4 and WAKE. With libmcrypt 2.4.x or higher another cipher mode is also available; nOFB.

Установка

You need to compile PHP with the --with-mcrypt[=DIR] parameter to enable this extension. DIR is the mcrypt install directory. Make sure you compile libmcrypt with the option --disable-posix-threads.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Mcrypt configuration options

Name | Default | Changeable | Changelog
mcrypt.algorithms_dir | NULL | PHP_INI_ALL | Available since PHP 4.0.2.
mcrypt.modes_dir | NULL | PHP_INI_ALL | Available since PHP 4.0.2.
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

Mcrypt can operate in four block cipher modes (CBC, OFB, CFB, and ECB). If linked against libmcrypt-2.4.x or higher the functions can also operate in the block cipher mode nOFB and in STREAM mode. Below you find a list with all supported encryption modes together with the constants that are defines for the encryption mode. For a more complete reference and discussion see Applied Cryptography by Schneier (ISBN 0-471-11709-9).

  • MCRYPT_MODE_ECB (electronic codebook) is suitable for random data, such as encrypting other keys. Since data there is short and random, the disadvantages of ECB have a favorable negative effect.

  • MCRYPT_MODE_CBC (cipher block chaining) is especially suitable for encrypting files where the security is increased over ECB significantly.

  • MCRYPT_MODE_CFB (cipher feedback) is the best mode for encrypting byte streams where single bytes must be encrypted.

  • MCRYPT_MODE_OFB (output feedback, in 8bit) is comparable to CFB, but can be used in applications where error propagation cannot be tolerated. It's insecure (because it operates in 8bit mode) so it is not recommended to use it.

  • MCRYPT_MODE_NOFB (output feedback, in nbit) is comparable to OFB, but more secure because it operates on the block size of the algorithm.

  • MCRYPT_MODE_STREAM is an extra mode to include some stream algorithms like WAKE or RC4.

Some other mode and random device constants:

MCRYPT_ENCRYPT (integer)

MCRYPT_DECRYPT (integer)

MCRYPT_DEV_RANDOM (integer)

MCRYPT_DEV_URANDOM (integer)

MCRYPT_RAND (integer)

Mcrypt ciphers

Here is a list of ciphers which are currently supported by the mcrypt extension. For a complete list of supported ciphers, see the defines at the end of mcrypt.h. The general rule with the mcrypt-2.2.x API is that you can access the cipher from PHP with MCRYPT_ciphername. With the libmcrypt-2.4.x and libmcrypt-2.5.x API these constants also work, but it is possible to specify the name of the cipher as a string with a call to mcrypt_module_open().

  • MCRYPT_3DES

  • MCRYPT_ARCFOUR_IV (libmcrypt > 2.4.x only)

  • MCRYPT_ARCFOUR (libmcrypt > 2.4.x only)

  • MCRYPT_BLOWFISH

  • MCRYPT_CAST_128

  • MCRYPT_CAST_256

  • MCRYPT_CRYPT

  • MCRYPT_DES

  • MCRYPT_DES_COMPAT (libmcrypt 2.2.x only)

  • MCRYPT_ENIGMA (libmcrypt > 2.4.x only, alias for MCRYPT_CRYPT)

  • MCRYPT_GOST

  • MCRYPT_IDEA (non-free)

  • MCRYPT_LOKI97 (libmcrypt > 2.4.x only)

  • MCRYPT_MARS (libmcrypt > 2.4.x only, non-free)

  • MCRYPT_PANAMA (libmcrypt > 2.4.x only)

  • MCRYPT_RIJNDAEL_128 (libmcrypt > 2.4.x only)

  • MCRYPT_RIJNDAEL_192 (libmcrypt > 2.4.x only)

  • MCRYPT_RIJNDAEL_256 (libmcrypt > 2.4.x only)

  • MCRYPT_RC2

  • MCRYPT_RC4 (libmcrypt 2.2.x only)

  • MCRYPT_RC6 (libmcrypt > 2.4.x only)

  • MCRYPT_RC6_128 (libmcrypt 2.2.x only)

  • MCRYPT_RC6_192 (libmcrypt 2.2.x only)

  • MCRYPT_RC6_256 (libmcrypt 2.2.x only)

  • MCRYPT_SAFER64

  • MCRYPT_SAFER128

  • MCRYPT_SAFERPLUS (libmcrypt > 2.4.x only)

  • MCRYPT_SERPENT(libmcrypt > 2.4.x only)

  • MCRYPT_SERPENT_128 (libmcrypt 2.2.x only)

  • MCRYPT_SERPENT_192 (libmcrypt 2.2.x only)

  • MCRYPT_SERPENT_256 (libmcrypt 2.2.x only)

  • MCRYPT_SKIPJACK (libmcrypt > 2.4.x only)

  • MCRYPT_TEAN (libmcrypt 2.2.x only)

  • MCRYPT_THREEWAY

  • MCRYPT_TRIPLEDES (libmcrypt > 2.4.x only)

  • MCRYPT_TWOFISH (for older mcrypt 2.x versions, or mcrypt > 2.4.x )

  • MCRYPT_TWOFISH128 (TWOFISHxxx are available in newer 2.x versions, but not in the 2.4.x versions)

  • MCRYPT_TWOFISH192

  • MCRYPT_TWOFISH256

  • MCRYPT_WAKE (libmcrypt > 2.4.x only)

  • MCRYPT_XTEA (libmcrypt > 2.4.x only)

You must (in CFB and OFB mode) or can (in CBC mode) supply an initialization vector (IV) to the respective cipher function. The IV must be unique and must be the same when decrypting/encrypting. With data which is stored encrypted, you can take the output of a function of the index under which the data is stored (e.g. the MD5 key of the filename). Alternatively, you can transmit the IV together with the encrypted data (see chapter 9.3 of Applied Cryptography by Schneier (ISBN 0-471-11709-9) for a discussion of this topic).

Примеры

Mcrypt can be used to encrypt and decrypt using the above mentioned ciphers. If you linked against libmcrypt-2.2.x, the four important mcrypt commands (mcrypt_cfb(), mcrypt_cbc(), mcrypt_ecb(), and mcrypt_ofb()) can operate in both modes which are named MCRYPT_ENCRYPT and MCRYPT_DECRYPT, respectively.

Пример 1. Encrypt an input value with TripleDES under 2.2.x in ECB mode

<?php
$key = "this is a secret key";
$input = "Let us meet at 9 o'clock at the secret place.";

$encrypted_data = mcrypt_ecb (MCRYPT_3DES, $key, $input, MCRYPT_ENCRYPT);
?>
This example will give you the encrypted data as a string in $encrypted_data.

If you linked against libmcrypt 2.4.x or 2.5.x, these functions are still available, but it is recommended that you use the advanced functions.

Пример 2. Encrypt an input value with TripleDES under 2.4.x and higher in ECB mode

<?php
    $key = "this is a secret key";
    $input = "Let us meet at 9 o'clock at the secret place.";

    $td = mcrypt_module_open('tripledes', '', 'ecb', '');
    $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
    mcrypt_generic_init($td, $key, $iv);
    $encrypted_data = mcrypt_generic($td, $input);
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);
?>
This example will give you the encrypted data as a string in $encrypted_data. For a full example see mcrypt_module_open().

Содержание
mcrypt_cbc -- Encrypt/decrypt data in CBC mode
mcrypt_cfb -- Encrypt/decrypt data in CFB mode
mcrypt_create_iv -- Create an initialization vector (IV) from a random source
mcrypt_decrypt -- Decrypts crypttext with given parameters
mcrypt_ecb -- Deprecated: Encrypt/decrypt data in ECB mode
mcrypt_enc_get_algorithms_name -- Returns the name of the opened algorithm
mcrypt_enc_get_block_size -- Returns the blocksize of the opened algorithm
mcrypt_enc_get_iv_size -- Returns the size of the IV of the opened algorithm
mcrypt_enc_get_key_size -- Returns the maximum supported keysize of the opened mode
mcrypt_enc_get_modes_name -- Returns the name of the opened mode
mcrypt_enc_get_supported_key_sizes -- Returns an array with the supported keysizes of the opened algorithm
mcrypt_enc_is_block_algorithm_mode -- Checks whether the encryption of the opened mode works on blocks
mcrypt_enc_is_block_algorithm -- Checks whether the algorithm of the opened mode is a block algorithm
mcrypt_enc_is_block_mode -- Checks whether the opened mode outputs blocks
mcrypt_enc_self_test -- This function runs a self test on the opened module
mcrypt_encrypt -- Encrypts plaintext with given parameters
mcrypt_generic_deinit -- This function deinitializes an encryption module
mcrypt_generic_end -- This function terminates encryption
mcrypt_generic_init -- This function initializes all buffers needed for encryption
mcrypt_generic -- This function encrypts data
mcrypt_get_block_size -- Get the block size of the specified cipher
mcrypt_get_cipher_name -- Get the name of the specified cipher
mcrypt_get_iv_size -- Returns the size of the IV belonging to a specific cipher/mode combination
mcrypt_get_key_size -- Get the key size of the specified cipher
mcrypt_list_algorithms -- Get an array of all supported ciphers
mcrypt_list_modes -- Get an array of all supported modes
mcrypt_module_close -- Close the mcrypt module
mcrypt_module_get_algo_block_size -- Returns the blocksize of the specified algorithm
mcrypt_module_get_algo_key_size -- Returns the maximum supported keysize of the opened mode
mcrypt_module_get_supported_key_sizes -- Returns an array with the supported keysizes of the opened algorithm
mcrypt_module_is_block_algorithm_mode -- Returns if the specified module is a block algorithm or not
mcrypt_module_is_block_algorithm -- This function checks whether the specified algorithm is a block algorithm
mcrypt_module_is_block_mode -- Returns if the specified mode outputs blocks or not
mcrypt_module_open -- Opens the module of the algorithm and the mode to be used
mcrypt_module_self_test -- This function runs a self test on the specified module
mcrypt_ofb -- Encrypt/decrypt data in OFB mode
mdecrypt_generic -- Decrypt data

Пред. | Начало | След.
mcal_week_of_year | Уровень выше | mcrypt_cbc


mcrypt_cbc

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

mcrypt_cbc -- Encrypt/decrypt data in CBC mode

Description

string mcrypt_cbc ( int cipher, string key, string data, int mode [, string iv] )

string mcrypt_cbc ( string cipher, string key, string data, int mode [, string iv] )

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.

This function should not be used anymore, see mcrypt_generic() and mdecrypt_generic() for replacements.

Пред. | Начало | След.
Mcrypt Encryption Functions | Уровень выше | mcrypt_cfb


mcrypt_cfb

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

mcrypt_cfb -- Encrypt/decrypt data in CFB mode

Description

string mcrypt_cfb ( int cipher, string key, string data, int mode, string iv )

string mcrypt_cfb ( string cipher, string key, string data, int mode [, string iv] )

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.

This function should not be used anymore, see mcrypt_generic() and mdecrypt_generic() for replacements.

Пред. | Начало | След.
mcrypt_cbc | Уровень выше | mcrypt_create_iv


mcrypt_create_iv

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

mcrypt_create_iv -- Create an initialization vector (IV) from a random source

Description

string mcrypt_create_iv ( int size [, int source] )

mcrypt_create_iv() is used to create an IV.

Parameter size determines the size of the IV, parameter source (defaults to random value) specifies the source of the IV.

The source can be MCRYPT_RAND (system random number generator), MCRYPT_DEV_RANDOM (read data from /dev/random) and MCRYPT_DEV_URANDOM (read data from /dev/urandom). MCRYPT_RAND is the only one supported on Windows because Windows (of course) doesn't have /dev/random or /dev/urandom.

Замечание: When using MCRYPT_RAND, remember to call srand() before mcrypt_create_iv() to initialize the random number generator; it is not seeded automatically like rand() is.

Пример 1. mcrypt_create_iv() example

<?php
    $size = mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB);
    $iv = mcrypt_create_iv($size, MCRYPT_DEV_RANDOM);
?>

The IV is only meant to give an alternative seed to the encryption routines. This IV does not need to be secret at all, though it can be desirable. You even can send it along with your ciphertext without losing security.

More information can be found at http://www.ciphersbyritter.com/GLOSSARY.HTM#IV, http://fn2.freenet.edmonton.ab.ca/~jsavard/crypto/co0409.htm and in chapter 9.3 of Applied Cryptography by Schneier (ISBN 0-471-11709-9) for a discussion of this topic.

Пред. | Начало | След.
mcrypt_cfb | Уровень выше | mcrypt_decrypt


mcrypt_decrypt

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_decrypt -- Decrypts crypttext with given parameters

Description

string mcrypt_decrypt ( string cipher, string key, string data, string mode [, string iv] )

mcrypt_decrypt() decrypts the data and returns the unencrypted data.

Cipher is one of the MCRYPT_ciphername constants of the name of the algorithm as string.

Key is the key with which the data is encrypted. If it's smaller that the required keysize, it is padded with '\0'.

Data is the data that will be decrypted with the given cipher and mode. If the size of the data is not n * blocksize, the data will be padded with '\0'.

Mode is one of the MCRYPT_MODE_modename constants of one of "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".

The IV parameter is used for the initialisation in CBC, CFB, OFB modes, and in some algorithms in STREAM mode. If you do not supply an IV, while it is needed for an algorithm, the function issues a warning and uses an IV with all bytes set to '\0'.

Пред. | Начало | След.
mcrypt_create_iv | Уровень выше | mcrypt_ecb


mcrypt_ecb

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

mcrypt_ecb -- Deprecated: Encrypt/decrypt data in ECB mode

Description

string mcrypt_ecb ( int cipher, string key, string data, int mode )

string mcrypt_ecb ( string cipher, string key, string data, int mode [, string iv] )

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.

This function is deprecated and should not be used anymore, see mcrypt_generic() and mdecrypt_generic() for replacements.

Пред. | Начало | След.
mcrypt_decrypt | Уровень выше | mcrypt_enc_get_algorithms_name


mcrypt_enc_get_algorithms_name

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_algorithms_name -- Returns the name of the opened algorithm

Description

string mcrypt_enc_get_algorithms_name ( resource td )

This function returns the name of the algorithm.

Пример 1. mcrypt_enc_get_algorithms_name() example

<?php
$td = mcrypt_module_open(MCRYPT_CAST_256, '', MCRYPT_MODE_CFB, '');
echo mcrypt_enc_get_algorithms_name($td). "\n";

$td = mcrypt_module_open('cast-256', '', MCRYPT_MODE_CFB, '');
echo mcrypt_enc_get_algorithms_name($td). "\n";
?>

Результат выполнения данного примера:

CAST-256
CAST-256

Пред. | Начало | След.
mcrypt_ecb | Уровень выше | mcrypt_enc_get_block_size


mcrypt_enc_get_block_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_block_size -- Returns the blocksize of the opened algorithm

Description

int mcrypt_enc_get_block_size ( resource td )

This function returns the block size of the algorithm specified by the encryption descriptor td in bytes.

Пред. | Начало | След.
mcrypt_enc_get_algorithms_name | Уровень выше | mcrypt_enc_get_iv_size


mcrypt_enc_get_iv_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_iv_size -- Returns the size of the IV of the opened algorithm

Description

int mcrypt_enc_get_iv_size ( resource td )

This function returns the size of the iv of the algorithm specified by the encryption descriptor in bytes. If it returns '0' then the IV is ignored in the algorithm. An IV is used in cbc, cfb and ofb modes, and in some algorithms in stream mode.

Пред. | Начало | След.
mcrypt_enc_get_block_size | Уровень выше | mcrypt_enc_get_key_size


mcrypt_enc_get_key_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_key_size -- Returns the maximum supported keysize of the opened mode

Description

int mcrypt_enc_get_key_size ( resource td )

This function returns the maximum supported key size of the algorithm specified by the encryption descriptor td in bytes.

Пред. | Начало | След.
mcrypt_enc_get_iv_size | Уровень выше | mcrypt_enc_get_modes_name


mcrypt_enc_get_modes_name

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_modes_name -- Returns the name of the opened mode

Description

string mcrypt_enc_get_modes_name ( resource td )

This function returns the name of the mode.

Пример 1. mcrypt_enc_get_modes_name() example

<?php
    $td = mcrypt_module_open (MCRYPT_CAST_256, '', MCRYPT_MODE_CFB, '');
    echo mcrypt_enc_get_modes_name($td). "\n";

    $td = mcrypt_module_open ('cast-256', '', 'ecb', '');
    echo mcrypt_enc_get_modes_name($td). "\n";
?>

Prints:

CFB
ECB

Пред. | Начало | След.
mcrypt_enc_get_key_size | Уровень выше | mcrypt_enc_get_supported_key_sizes


mcrypt_enc_get_supported_key_sizes

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_get_supported_key_sizes -- Returns an array with the supported keysizes of the opened algorithm

Description

array mcrypt_enc_get_supported_key_sizes ( resource td )

Returns an array with the key sizes supported by the algorithm specified by the encryption descriptor. If it returns an empty array then all key sizes between 1 and mcrypt_enc_get_key_size() are supported by the algorithm.

Пример 1. mcrypt_enc_get_supported_key_sizes() example

<?php
    $td = mcrypt_module_open('rijndael-256', '', 'ecb', '');
    var_dump(mcrypt_enc_get_supported_key_sizes($td));
?>

This will print:

array(3) {
  [0]=>
  int(16)
  [1]=>
  int(24)
  [2]=>
  int(32)
}

Пред. | Начало | След.
mcrypt_enc_get_modes_name | Уровень выше | mcrypt_enc_is_block_algorithm_mode


mcrypt_enc_is_block_algorithm_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_is_block_algorithm_mode -- Checks whether the encryption of the opened mode works on blocks

Description

bool mcrypt_enc_is_block_algorithm_mode ( resource td )

This function returns TRUE if the mode is for use with block algorithms, otherwise it returns FALSE. (e.g. FALSE for stream, and TRUE for cbc, cfb, ofb).

Пред. | Начало | След.
mcrypt_enc_get_supported_key_sizes | Уровень выше | mcrypt_enc_is_block_algorithm


mcrypt_enc_is_block_algorithm

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_is_block_algorithm -- Checks whether the algorithm of the opened mode is a block algorithm

Description

bool mcrypt_enc_is_block_algorithm ( resource td )

This function returns TRUE if the algorithm is a block algorithm, or FALSE if it is a stream algorithm.

Пред. | Начало | След.
mcrypt_enc_is_block_algorithm_mode | Уровень выше | mcrypt_enc_is_block_mode


mcrypt_enc_is_block_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_is_block_mode -- Checks whether the opened mode outputs blocks

Description

bool mcrypt_enc_is_block_mode ( resource td )

This function returns TRUE if the mode outputs blocks of bytes or FALSE if it outputs bytes. (e.g. TRUE for cbc and ecb, and FALSE for cfb and stream).

Пред. | Начало | След.
mcrypt_enc_is_block_algorithm | Уровень выше | mcrypt_enc_self_test


mcrypt_enc_self_test

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_enc_self_test -- This function runs a self test on the opened module

Description

int mcrypt_enc_self_test ( resource td )

This function runs the self test on the algorithm specified by the descriptor td. If the self test succeeds it returns FALSE. In case of an error, it returns TRUE.

Пред. | Начало | След.
mcrypt_enc_is_block_mode | Уровень выше | mcrypt_encrypt


mcrypt_encrypt

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_encrypt -- Encrypts plaintext with given parameters

Description

string mcrypt_encrypt ( string cipher, string key, string data, string mode [, string iv] )

mcrypt_encrypt() encrypts the data and returns the encrypted data.

Cipher is one of the MCRYPT_ciphername constants of the name of the algorithm as string.

Key is the key with which the data will be encrypted. If it's smaller that the required keysize, it is padded with '\0'. It is better not to use ASCII strings for keys. It is recommended to use the mhash functions to create a key from a string.

Data is the data that will be encrypted with the given cipher and mode. If the size of the data is not n * blocksize, the data will be padded with '\0'. The returned crypttext can be larger that the size of the data that is given by data.

Mode is one of the MCRYPT_MODE_modename constants of one of "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".

The IV parameter is used for the initialisation in CBC, CFB, OFB modes, and in some algorithms in STREAM mode. If you do not supply an IV, while it is needed for an algorithm, the function issues a warning and uses an IV with all bytes set to '\0'.

Пример 1. mcrypt_encrypt() Example

<?php
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
    $key = "This is a very secret key";
    $text = "Meet me at 11 o'clock behind the monument.";
    echo strlen($text) . "\n";

    $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
    echo strlen($crypttext) . "\n";
?>

Результат выполнения данного примера:

42
64

See also mcrypt_module_open() for a more advanced API and an example.

Пред. | Начало | След.
mcrypt_enc_self_test | Уровень выше | mcrypt_generic_deinit


mcrypt_generic_deinit

(PHP 4 >= 4.1.1, PHP 5)

mcrypt_generic_deinit -- This function deinitializes an encryption module

Description

bool mcrypt_generic_deinit ( resource td )

This function terminates encryption specified by the encryption descriptor (td). It clears all buffers, but does not close the module. You need to call mcrypt_module_close() yourself. (But PHP does this for you at the end of the script.) Returns FALSE on error, or TRUE on success.

See for an example mcrypt_module_open() and the entry on mcrypt_generic_init().

Пред. | Начало | След.
mcrypt_encrypt | Уровень выше | mcrypt_generic_end


mcrypt_generic_end

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_generic_end -- This function terminates encryption

Description

bool mcrypt_generic_end ( resource td )

Внимание

This function is deprecated, use mcrypt_generic_deinit() instead. It can cause crashes when used with mcrypt_module_close() due to multiple buffer frees.

This function terminates encryption specified by the encryption descriptor (td). Actually it clears all buffers, and closes all the modules used. Returns FALSE on error, or TRUE on success.

Пред. | Начало | След.
mcrypt_generic_deinit | Уровень выше | mcrypt_generic_init


mcrypt_generic_init

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_generic_init -- This function initializes all buffers needed for encryption

Description

int mcrypt_generic_init ( resource td, string key, string iv )

The maximum length of the key should be the one obtained by calling mcrypt_enc_get_key_size() and every value smaller than this is legal. The IV should normally have the size of the algorithms block size, but you must obtain the size by calling mcrypt_enc_get_iv_size(). IV is ignored in ECB. IV MUST exist in CFB, CBC, STREAM, nOFB and OFB modes. It needs to be random and unique (but not secret). The same IV must be used for encryption/decryption. If you do not want to use it you should set it to zeros, but this is not recommended.

The function returns a negative value on error, -3 when the key length was incorrect, -4 when there was a memory allocation problem and any other return value is an unknown error. If an error occurs a warning will be displayed accordingly. FALSE is returned if incorrect parameters were passed.

You need to call this function before every call to mcrypt_generic() or mdecrypt_generic().

See for an example mcrypt_module_open().

Пред. | Начало | След.
mcrypt_generic_end | Уровень выше | mcrypt_generic


mcrypt_generic

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_generic -- This function encrypts data

Description

string mcrypt_generic ( resource td, string data )

This function encrypts data. The data is padded with "\0" to make sure the length of the data is n * blocksize. This function returns the encrypted data. Note that the length of the returned string can in fact be longer then the input, due to the padding of the data.

If you want to store the encrypted data in a database make sure to store the entire string as returned by mcrypt_generic, or the string will not entirely decrypt properly. If your original string is 10 characters long and the block size is 8 (use mcrypt_enc_get_block_size() to determine the blocksize), you would need at least 16 characters in your database field. Note the string returned by mdecrypt_generic() will be 16 characters as well...use rtrim()($str, "\0") to remove the padding.

If you are for example storing the data in a MySQL database remember that varchar fields automatically have trailing spaces removed during insertion. As encrypted data can end in a space (ASCII 32), the data will be damaged by this removal. Store data in a tinyblob/tinytext (or larger) field instead.

The encryption handle should always be initialized with mcrypt_generic_init() with a key and an IV before calling this function. Where the encryption is done, you should free the encryption buffers by calling mcrypt_generic_deinit(). See mcrypt_module_open() for an example.

See also mdecrypt_generic(),
mcrypt_generic_init(), and
mcrypt_generic_deinit().

Пред. | Начало | След.
mcrypt_generic_init | Уровень выше | mcrypt_get_block_size


mcrypt_get_block_size

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

mcrypt_get_block_size -- Get the block size of the specified cipher

Description

int mcrypt_get_block_size ( int cipher )

int mcrypt_get_block_size ( string cipher, string module )

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or 2.5.x.

mcrypt_get_block_size() is used to get the size of a block of the specified cipher (in combination with an encryption mode).

It is more useful to use the mcrypt_enc_get_block_size() function as this uses the resource returned by mcrypt_module_open().

This example shows how to use this function when linked against libmcrypt 2.4.x and 2.5.x.

Пример 1. mcrypt_get_block_size() example

<?php
    echo mcrypt_get_block_size('tripledes', 'ecb');
?>

Prints:
8

See also: mcrypt_get_key_size(),
mcrypt_enc_get_block_size() and
mcrypt_encrypt().

Пред. | Начало | След.
mcrypt_generic | Уровень выше | mcrypt_get_cipher_name


mcrypt_get_cipher_name

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

mcrypt_get_cipher_name -- Get the name of the specified cipher

Description

string mcrypt_get_cipher_name ( int cipher )

string mcrypt_get_cipher_name ( string cipher )

mcrypt_get_cipher_name() is used to get the name of the specified cipher.

mcrypt_get_cipher_name() takes the cipher number as an argument (libmcrypt 2.2.x) or takes the cipher name as an argument (libmcrypt 2.4.x or higher) and returns the name of the cipher or FALSE, if the cipher does not exist.

Пример 1. mcrypt_get_cipher_name() Example

<?php
   $cipher = MCRYPT_TripleDES;

   echo mcrypt_get_cipher_name($cipher);
?>

Результат выполнения данного примера:

3DES

Пред. | Начало | След.
mcrypt_get_block_size | Уровень выше | mcrypt_get_iv_size


mcrypt_get_iv_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_get_iv_size -- Returns the size of the IV belonging to a specific cipher/mode combination

Description

int mcrypt_get_iv_size ( string cipher, string mode )

mcrypt_get_iv_size() returns the size of the Initialisation Vector (IV) in bytes. On error the function returns FALSE. If the IV is ignored in the specified cipher/mode combination zero is returned.

cipher is one of the MCRYPT_ciphername constants of the name of the algorithm as string.

mode is one of the MCRYPT_MODE_modename constants or one of "ecb", "cbc", "cfb", "ofb", "nofb" or "stream". The IV is ignored in ECB mode as this mode does not require it. You will need to have the same IV (think: starting point) both at encryption and decryption stages, otherwise your encryption will fail.

It is more useful to use the mcrypt_enc_get_iv_size() function as this uses the resource returned by mcrypt_module_open().

Пример 1. mcrypt_get_iv_size() example

<?php
    echo mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB) . "\n";

    echo mcrypt_get_iv_size('des', 'ecb') . "\n";
?>

See also
mcrypt_get_block_size(),
mcrypt_enc_get_iv_size() and
mcrypt_create_iv().

Пред. | Начало | След.
mcrypt_get_cipher_name | Уровень выше | mcrypt_get_key_size


mcrypt_get_key_size

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

mcrypt_get_key_size -- Get the key size of the specified cipher

Description

int mcrypt_get_key_size ( int cipher )

int mcrypt_get_key_size ( string cipher, string module )

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or 2.5.x.

mcrypt_get_key_size() is used to get the size of a key of the specified cipher (in combination with an encryption mode).

This example shows how to use this function when linked against libmcrypt 2.4.x and 2.5.x. It is more useful to use the mcrypt_enc_get_key_size() function as this uses the resource returned by mcrypt_module_open().

Пример 1. mcrypt_get_block_size() example

<?php
    echo mcrypt_get_key_size('tripledes', 'ecb');
?>

Prints:
24

See also: mcrypt_get_block_size(),
mcrypt_end_get_key_size() and
mcrypt_encrypt().

Пред. | Начало | След.
mcrypt_get_iv_size | Уровень выше | mcrypt_list_algorithms


mcrypt_list_algorithms

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_list_algorithms -- Get an array of all supported ciphers

Description

array mcrypt_list_algorithms ( [string lib_dir] )

mcrypt_list_algorithms() is used to get an array of all supported algorithms in the lib_dir parameter.

mcrypt_list_algorithms() takes an optional lib_dir parameter which specifies the directory where all algorithms are located. If not specifies, the value of the mcrypt.algorithms_dir php.ini directive is used.

Пример 1. mcrypt_list_algorithms() Example

<?php
    $algorithms = mcrypt_list_algorithms("/usr/local/lib/libmcrypt");

    foreach ($algorithms as $cipher) {
        echo "$cipher<br />\n";
    }
?>

The above example will produce a list with all supported algorithms in the "/usr/local/lib/libmcrypt" directory.

Пред. | Начало | След.
mcrypt_get_key_size | Уровень выше | mcrypt_list_modes


mcrypt_list_modes

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_list_modes -- Get an array of all supported modes

Description

array mcrypt_list_modes ( [string lib_dir] )

mcrypt_list_modes() is used to get an array of all supported modes in the lib_dir.

mcrypt_list_modes() takes as optional parameter a directory which specifies the directory where all modes are located. If not specifies, the value of the mcrypt.modes_dir php.ini directive is used.

Пример 1. mcrypt_list_modes() Example

<?php
    $modes = mcrypt_list_modes();

    foreach ($modes as $mode) {
        echo "$mode <br />\n";
    }
?>

The above example will produce a list with all supported algorithms in the default mode directory. If it is not set with the ini directive mcrypt.modes_dir, the default directory of mcrypt is used (which is /usr/local/lib/libmcrypt).

Пред. | Начало | След.
mcrypt_list_algorithms | Уровень выше | mcrypt_module_close


mcrypt_module_close

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_close -- Close the mcrypt module

Description

bool mcrypt_module_close ( resource td )

This function closes the specified encryption handle.

See mcrypt_module_open() for an example.

Пред. | Начало | След.
mcrypt_list_modes | Уровень выше | mcrypt_module_get_algo_block_size


mcrypt_module_get_algo_block_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_get_algo_block_size -- Returns the blocksize of the specified algorithm

Description

int mcrypt_module_get_algo_block_size ( string algorithm [, string lib_dir] )

This function returns the block size of the algorithm specified in bytes. The optional lib_dir parameter can contain the location where the mode module is on the system.

Пред. | Начало | След.
mcrypt_module_close | Уровень выше | mcrypt_module_get_algo_key_size


mcrypt_module_get_algo_key_size

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_get_algo_key_size -- Returns the maximum supported keysize of the opened mode

Description

int mcrypt_module_get_algo_key_size ( string algorithm [, string lib_dir] )

This function returns the maximum supported key size of the algorithm specified in bytes. The optional lib_dir parameter can contain the location where the mode module is on the system.

Пред. | Начало | След.
mcrypt_module_get_algo_block_size | Уровень выше | mcrypt_module_get_supported_key_sizes


mcrypt_module_get_supported_key_sizes

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_get_supported_key_sizes -- Returns an array with the supported keysizes of the opened algorithm

Description

array mcrypt_module_get_supported_key_sizes ( string algorithm [, string lib_dir] )

Returns an array with the key sizes supported by the specified algorithm. If it returns an empty array then all key sizes between 1 and mcrypt_module_get_algo_key_size() are supported by the algorithm. The optional lib_dir parameter can contain the location where the mode module is on the system.

See also mcrypt_enc_get_supported_key_sizes() which is used on open encryption modules.

Пред. | Начало | След.
mcrypt_module_get_algo_key_size | Уровень выше | mcrypt_module_is_block_algorithm_mode


mcrypt_module_is_block_algorithm_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_is_block_algorithm_mode -- Returns if the specified module is a block algorithm or not

Description

bool mcrypt_module_is_block_algorithm_mode ( string mode [, string lib_dir] )

This function returns TRUE if the mode is for use with block algorithms, otherwise it returns FALSE. (e.g. FALSE for stream, and TRUE for cbc, cfb, ofb). The optional lib_dir parameter can contain the location where the mode module is on the system.

Пред. | Начало | След.
mcrypt_module_get_supported_key_sizes | Уровень выше | mcrypt_module_is_block_algorithm


mcrypt_module_is_block_algorithm

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_is_block_algorithm -- This function checks whether the specified algorithm is a block algorithm

Description

bool mcrypt_module_is_block_algorithm ( string algorithm [, string lib_dir] )

This function returns TRUE if the specified algorithm is a block algorithm, or FALSE is it is a stream algorithm. The optional lib_dir parameter can contain the location where the algorithm module is on the system.

Пред. | Начало | След.
mcrypt_module_is_block_algorithm_mode | Уровень выше | mcrypt_module_is_block_mode


mcrypt_module_is_block_mode

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_is_block_mode -- Returns if the specified mode outputs blocks or not

Description

bool mcrypt_module_is_block_mode ( string mode [, string lib_dir] )

This function returns TRUE if the mode outputs blocks of bytes or FALSE if it outputs just bytes. (e.g. TRUE for cbc and ecb, and FALSE for cfb and stream). The optional lib_dir parameter can contain the location where the mode module is on the system.

Пред. | Начало | След.
mcrypt_module_is_block_algorithm | Уровень выше | mcrypt_module_open


mcrypt_module_open

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_open -- Opens the module of the algorithm and the mode to be used

Description

resource mcrypt_module_open ( string algorithm, string algorithm_directory, string mode, string mode_directory )

This function opens the module of the algorithm and the mode to be used. The name of the algorithm is specified in algorithm, e.g. "twofish" or is one of the MCRYPT_ciphername constants. The module is closed by calling mcrypt_module_close(). Normally it returns an encryption descriptor, or FALSE on error.

The algorithm_directory and mode_directory are used to locate the encryption modules. When you supply a directory name, it is used. When you set one of these to the empty string (""), the value set by the mcrypt.algorithms_dir or mcrypt.modes_dir ini-directive is used. When these are not set, the default directories that are used are the ones that were compiled in into libmcrypt (usually /usr/local/lib/libmcrypt).

Пример 1. mcrypt_module_open() examples

<?php
    $td = mcrypt_module_open(MCRYPT_DES, '',
        MCRYPT_MODE_ECB, '/usr/lib/mcrypt-modes');

    $td = mcrypt_module_open('rijndael-256', '', 'ofb', '');
?>

The first line in the example above will try to open the DES cipher from the default directory and the EBC mode from the directory /usr/lib/mcrypt-modes. The second example uses strings as name for the cipher and mode, this only works when the extension is linked against libmcrypt 2.4.x or 2.5.x.

Пример 2. Using mcrypt_module_open() in encryption

<?php
    /* Open the cipher */
    $td = mcrypt_module_open('rijndael-256', '', 'ofb', '');

    /* Create the IV and determine the keysize length, used MCRYPT_RAND
     * on Windows instead */
    $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
    $ks = mcrypt_enc_get_key_size($td);

    /* Create key */
    $key = substr(md5('very secret key'), 0, $ks);

    /* Intialize encryption */
    mcrypt_generic_init($td, $key, $iv);

    /* Encrypt data */
    $encrypted = mcrypt_generic($td, 'This is very important data');

    /* Terminate encryption handler */
    mcrypt_generic_deinit($td);

    /* Initialize encryption module for decryption */
    mcrypt_generic_init($td, $key, $iv);

    /* Decrypt encrypted string */
    $decrypted = mdecrypt_generic($td, $encrypted);

    /* Terminate decryption handle and close module */
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);

    /* Show string */
    echo trim($decrypted) . "\n";
?>

The first line in the example above will try to open the DES cipher from the default directory and the EBC mode from the directory /usr/lib/mcrypt-modes. The second example uses strings as name for the cipher and mode, this only works when the extension is linked against libmcrypt 2.4.x or 2.5.x.

See also
mcrypt_module_close(),
mcrypt_generic(),
mdecrypt_generic(),
mcrypt_generic_init(), and
mcrypt_generic_deinit().

Пред. | Начало | След.
mcrypt_module_is_block_mode | Уровень выше | mcrypt_module_self_test


mcrypt_module_self_test

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_module_self_test -- This function runs a self test on the specified module

Description

bool mcrypt_module_self_test ( string algorithm [, string lib_dir] )

This function runs the self test on the algorithm specified. The optional lib_dir parameter can contain the location of where the algorithm module is on the system.

The function returns TRUE if the self test succeeds, or FALSE when if fails.

Пример 1. mcrypt_module_self_test() example

<?php
var_dump(mcrypt_module_self_test(MCRYPT_RIJNDAEL_128)) . "\n";
var_dump(mcrypt_module_self_test(MCRYPT_BOGUS_CYPHER));
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Пред. | Начало | След.
mcrypt_module_open | Уровень выше | mcrypt_ofb


mcrypt_ofb

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

mcrypt_ofb -- Encrypt/decrypt data in OFB mode

Description

string mcrypt_ofb ( int cipher, string key, string data, int mode, string iv )

string mcrypt_ofb ( string cipher, string key, string data, int mode [, string iv] )

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.

This function should not be used anymore, see mcrypt_generic() and mdecrypt_generic() for replacements.

Пред. | Начало | След.
mcrypt_module_self_test | Уровень выше | mdecrypt_generic


mdecrypt_generic

(PHP 4 >= 4.0.2, PHP 5)

mdecrypt_generic -- Decrypt data

Description

string mdecrypt_generic ( resource td, string data )

This function decrypts data. Note that the length of the returned string can in fact be longer then the unencrypted string, due to the padding of the data.

Пример 1. mdecrypt_generic() example

<?php
    /* Data */
    $key = 'this is a very long key, even too long for the cipher';
    $plain_text = 'very important data';

    /* Open module, and create IV */
    $td = mcrypt_module_open('des', '', 'ecb', '');
    $key = substr($key, 0, mcrypt_enc_get_key_size($td));
    $iv_size = mcrypt_enc_get_iv_size($td);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

    /* Initialize encryption handle */
    if (mcrypt_generic_init($td, $key, $iv) != -1) {

        /* Encrypt data */
        $c_t = mcrypt_generic($td, $plain_text);
        mcrypt_generic_deinit($td);

        /* Reinitialize buffers for decryption */
        mcrypt_generic_init($td, $key, $iv);
        $p_t = mdecrypt_generic($td, $c_t);

        /* Clean up */
        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);
    }

    if (strncmp($p_t, $plain_text, strlen($plain_text)) == 0) {
        echo "ok\n";
    } else {
        echo "error\n";
    }
?>

The above example shows how to check if the data before the encryption is the same as the data after the decryption. It is very important to reinitialize the encryption buffer with mcrypt_generic_init() before you try to decrypt the data.

The decryption handle should always be initialized with mcrypt_generic_init() with a key and an IV before calling this function. Where the encryption is done, you should free the encryption buffers by calling mcrypt_generic_deinit(). See mcrypt_module_open() for an example.

See also mcrypt_generic(),
mcrypt_generic_init(), and
mcrypt_generic_deinit().

Пред. | Начало | След.
mcrypt_ofb | Уровень выше | MCVE (Monetra) Payment Functions


MCVE (Monetra) Payment Functions

Руководство по PHP
Пред. След.

LXXIV. MCVE (Monetra) Payment Functions

Введение

These functions interface the MCVE (Monetra) API (libmonetra, formerly known as libmcve), allowing you to work directly with MCVE/Monetra from your PHP scripts. MCVE/Monetra is Main Street Softworks' solution to direct credit/debit/gift card processing for Linux/Unix/MacOSX/Windows ( http://www.mainstreetsoftworks.com/ ). It lets you directly address the credit card clearing houses via your *nix box, modem and/or internet connection (bypassing the need for an additional service such as Authorize.Net or Pay Flow Pro). Using the MCVE/Monetra module for PHP, you can process credit cards directly through MCVE/Monetra via your PHP scripts. The following references will outline the process.

Замечание: MCVE/Monetra is the replacement for RedHat's CCVS. They contracted with RedHat in late 2001 to migrate all existing clientele to the MCVE platform.

Замечание: This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 5.1.0.

Замечание: Для Windows-платформ это расширение недоступно.

Установка

To enable MCVE (Monetra) Support in PHP, first verify your LibMonetra (formerly libmcve) installation directory. If you are compiling MCVE/Monetra support directly into PHP, you will then need to configure PHP with the --with-mcve option. If you use this option without specifying the path to your libmonetra installation, PHP will attempt to look in the default LibMonetra Install location (/usr/local). If Monetra (MCVE) is in a non-standard location, run configure with: --with-mcve=$mcve_path, where $mcve_path is the path to your MCVE/Monetra installation. Please note that MCVE/Monetra support requires that $mcve_path/lib and $mcve_path/include exist, and include mcve.h or monetra.h under the include directory and libmcve.so and/or libmcve.a and/or libmonetra.so and/or libmonetra.a under the lib directory.

If you want to install MCVE/Monetra support as a module, you can do so by using the PECL repository, and issuing the 'pecl install mcve' command if you are running a PEAR version of at least 1.4.0.

Since MCVE/Monetra has true server/client separation, there are no additional requirements for running PHP with MCVE support. To test your MCVE/Monetra extension in PHP, you may connect to testbox.monetra.com on port 8333 for IP, or port 8444 for SSL using the MCVE/Monetra PHP API. Use 'vitale' for your username, and 'test' for your password. Additional information about test facilities are available at http://www.mainstreetsoftworks.com/.

Смотрите также

Additional documentation about MCVE/Monetra's PHP API can be found at http://www.mainstreetsoftworks.com/documentation.html. Main Street's documentation is complete and should be the primary reference for functions.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

M_PENDING (integer)

M_DONE (integer)

M_ERROR (integer)

M_FAIL (integer)

M_SUCCESS (integer)

Содержание
m_checkstatus -- Check to see if a transaction has completed
m_completeauthorizations -- Number of complete authorizations in queue, returning an array of their identifiers
m_connect -- Establish the connection to MCVE
m_connectionerror -- Get a textual representation of why a connection failed
m_deletetrans -- Delete specified transaction from MCVE_CONN structure
m_destroyconn -- Destroy the connection and MCVE_CONN structure
m_destroyengine -- Free memory associated with IP/SSL connectivity
m_getcell -- Get a specific cell from a comma delimited response by column name
m_getcellbynum -- Get a specific cell from a comma delimited response by column number
m_getcommadelimited -- Get the RAW comma delimited data returned from MCVE
m_getheader -- Get the name of the column in a comma-delimited response
m_initconn -- Create and initialize an MCVE_CONN structure
m_initengine -- Ready the client for IP/SSL Communication
m_iscommadelimited -- Checks to see if response is comma delimited
m_maxconntimeout -- The maximum amount of time the API will attempt a connection to MCVE
m_monitor -- Perform communication with MCVE (send/receive data) Non-blocking
m_numcolumns -- Number of columns returned in a comma delimited response
m_numrows -- Number of rows returned in a comma delimited response
m_parsecommadelimited -- Parse the comma delimited response so m_getcell, etc will work
m_responsekeys -- Returns array of strings which represents the keys that can be used for response parameters on this transaction
m_responseparam -- Get a custom response parameter
m_returnstatus -- Check to see if the transaction was successful
m_setblocking -- Set blocking/non-blocking mode for connection
m_setdropfile -- Set the connection method to Drop-File
m_setip -- Set the connection method to IP
m_setssl_cafile -- Set SSL CA (Certificate Authority) file for verification of server certificate
m_setssl_files -- Set certificate key files and certificates if server requires client certificate verification
m_setssl -- Set the connection method to SSL
m_settimeout -- Set maximum transaction time (per trans)
m_sslcert_gen_hash -- Generate hash for SSL client certificate verification
m_transactionssent -- Check to see if outgoing buffer is clear
m_transinqueue -- Number of transactions in client-queue
m_transkeyval -- Add key/value pair to a transaction. Replaces deprecated transparam()
m_transnew -- Start a new transaction
m_transsend -- Finalize and send the transaction
m_uwait -- Wait x microsecs
m_validateidentifier -- Whether or not to validate the passed identifier on any transaction it is passed to
m_verifyconnection -- Set whether or not to PING upon connect to verify connection
m_verifysslcert -- Set whether or not to verify the server ssl certificate

Пред. | Начало | След.
mdecrypt_generic | Уровень выше | m_checkstatus


Memcache Functions

Руководство по PHP
Пред. След.

LXXV. Memcache Functions

Введение

Memcache module provides handy procedural and object oriented interface to memcached, highly effective caching daemon, which was especially designed to decrease database load in dynamic web applications.

This module doesn't have native support of multiple servers, but you still can implement it yourself in your application. Establish several memcached connections, set priority level for each server etc.

More information about memcached can be found at http://www.danga.com/memcached/.

Требования

This module uses functions of zlib to support on-the-fly data compression. Zlib is required to install this module.

PHP 4.3.3 or newer is required to use the memcache extension.

Установка

Это расширение PECL не поставляется вместе с PHP. Дополнительная информация, такая как новый версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, могут быть найдены здесь: http://pecl.php.net/package/memcache.

In order to use these functions you must compile PHP with Memcache support by using the --enable-memcache[=DIR] option.

Windows users will enable php_memcache.dll inside of php.ini in order to use these functions. Вы можете скачать DLL этого расширения PECL со страницы PHP Downloads или http://snaps.php.net/.

Предопределенные константы

Таблица 1. MemCache Constants

Name | Description
MEMCACHE_COMPRESSED (integer) | Used to turn on-the-fly data compression on with Memcache::set(), Memcache::add() и Memcache::replace().

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

There is only one resource type used in memcache module - it's the link identifier for a cache server connection.

Примеры

Пример 1. memcache extension overview example

<?php

$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");

$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>\n";

$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;

$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)<br/>\n";

$get_result = $memcache->get('key');
echo "Data from the cache:<br/>\n";

var_dump($get_result);

?>

In the above example, an object is being saved in the cache and then retrieved back. Object and other non-scalar types are serialized before saving, so it's impossible to store resources (i.e. connection identifiers and others) in the cache.

Содержание
Memcache::add -- Add an item to the server
Memcache::close -- Close memcached server connection
Memcache::connect -- Open memcached server connection
memcache_debug -- Turn debug output on/off
Memcache::decrement -- Decrement item's value
Memcache::delete -- Delete item from the server
Memcache::flush -- Flush all existing items at the server
Memcache::get -- Retrieve item from the server
Memcache::getStats -- Get statistics of the server
Memcache::getVersion -- Return version of the server
Memcache::increment -- Increment item's value
Memcache::pconnect -- Open memcached server persistent connection
Memcache::replace -- Replace value of the existing item
Memcache::set -- Store data at the server

Пред. | Начало | След.
m_verifysslcert | Уровень выше | Memcache::add


Memcache::add

(no version information, might be only in CVS)

Memcache::add -- Add an item to the server

Description

bool Memcache::add ( string key, mixed var [, int flag [, int expire]] )

Memcache::add() stores variable var with key only if such key doesn't exist at the server yet. Memcache::add() returns FALSE if such key already exist. For the rest Memcache::add() behaves similarly to Memcache::set().

Also you can use memcache_add() function. See example below.

Пример 1. Memcache::add() example

<?php

$memcache_obj = memcache_connect("localhost", 11211);

/* procedural API */
memcache_add($memcache_obj, 'var_key', 'test variable', false, 30);

/* OO API */
$memcache_obj->add('var_key', 'test variable', false, 30);

?>

Memcache::add() returns TRUE on success or FALSE on failure.

See also Memcache::set(), Memcache::replace().

Пред. | Начало | След.
Memcache Functions | Уровень выше | Memcache::close


Memcache::close

(no version information, might be only in CVS)

Memcache::close -- Close memcached server connection

Description

bool Memcache::close ( void )

Memcache::close() closes connection to memcached server. This function doesn't close persistent connections, which are closed only during web-server shutdown/restart.

Also you can use memcache_close() function. See example below.

Пример 1. Memcache::close() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
/*
do something here ..
*/
memcache_close($memcache_obj);

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
/*
do something here ..
*/
$memcache_obj->close();

?>

Memcache::close() returns FALSE if an error occured.

See also Memcache::connect(), Memcache::pconnect().

Пред. | Начало | След.
Memcache::add | Уровень выше | Memcache::connect


Memcache::connect

(no version information, might be only in CVS)

Memcache::connect -- Open memcached server connection

Description

bool Memcache::connect ( string host [, int port [, int timeout]] )

Memcache::connect() establishes a connection to the memcached server. Parameters host and port point to the host and port, where memcached is listening for connections. Parameter port is optional, it's default value is 11211. Also you can define a timeout (in seconds), which will be used when connecting to the daemon. Think twice before changing the default value - you can loose all the advantages of caching if your connection is too slow.

The connection, which was opened using Memcache::connect() will be automatically closed at the end of script execution. Also you can close it with Memcache::close().

Also you can use memcache_connect() function. See example below.

Пример 1. Memcache::connect() example

<?php

/* procedural API */

$memcache_obj = memcache_connect('memcache_host', 11211);

/* OO API */

$memcache = new Memcache;
$memcache->connect('memcache_host', 11211);

?>

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also Memcache::pconnect() and Memcache::close().

Пред. | Начало | След.
Memcache::close | Уровень выше | memcache_debug


memcache_debug

(PECL)

memcache_debug -- Turn debug output on/off

Description

bool memcache_debug ( int on_off )

memcache_debug() turns on debug output if parameter on_off is equal to 1 and turns off if it's 0.

Замечание: memcache_debug() is accessible only if PHP was built with --enable-debug option and always returns TRUE in this case. Otherwise, this function has no effect and always returns FALSE.

Пред. | Начало | След.
Memcache::connect | Уровень выше | Memcache::decrement


Memcache::decrement

(no version information, might be only in CVS)

Memcache::decrement -- Decrement item's value

Description

int Memcache::decrement ( string key [, int value] )

Memcache::decrement() decrements value of the item by value. Similarly to Memcache::increment(), current value of the item is being converted to numerical and after that value is substracted.

Parameter value is optional. It's default is 1.

Замечание: New item's value will not be less than zero.

Замечание: Do not use Memcache::decrement() with item, which was stored compressed, because consequent call to Memcache::get() will fail.

Also you can use memcache_decrement() function. See example below.

Пример 1. Memcache::decrement() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
/* decrement item by 2 */
$new_value = memcache_decrement($memcache_obj, 'test_item', 2);

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
/* decrement item by 3 */
$new_value = $memcache_obj->decrement('test_item', 3);
?>

Memcache::decrement() does not create an item if it didn't exist.

Memcache::decrement() returns item's new value on success or FALSE on failure.

See also Memcache::increment(), Memcache::replace().

Пред. | Начало | След.
memcache_debug | Уровень выше | Memcache::delete


Memcache::delete

(no version information, might be only in CVS)

Memcache::delete -- Delete item from the server

Description

bool Memcache::delete ( string key [, int timeout] )

Memcache::delete() deletes item with the key. If parameter timeout is specified, the item will expire after timeout seconds.

Also you can use memcache_delete() function. See example below.

Пример 1. Memcache::delete() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);

/* after 10 seconds item will be deleted by the server */
memcache_delete('key_to_delete', 10);

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);

$memcache_obj->delete('key_to_delete', 10);

?>

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
Memcache::decrement | Уровень выше | Memcache::flush


Memcache::flush

(no version information, might be only in CVS)

Memcache::flush -- Flush all existing items at the server

Description

bool Memcache::flush ( void )

Memcache::flush() immediately invalidates all existing items. Memcache::flush() doesn't actually free any resources, it only marks all the items as expired, so occupied memory will be overwritten by new items.

Also you can use memcache_flush() function. See example below.

Пример 1. Memcache::flush() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);

memcache_flush($memcache_obj);

/* OO API */

$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);

$memcache_obj->flush();

?>

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
Memcache::delete | Уровень выше | Memcache::get


Memcache::get

(no version information, might be only in CVS)

Memcache::get -- Retrieve item from the server

Description

string Memcache::get ( string key )

string Memcache::get ( array keys )

Memcache::get() returns previously stored data if an item with such key exists on the server at this moment.

Пример 1. Memcache::get() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
$var = memcache_get($memcache_obj, 'some_key');

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
$var = $memcache_obj->get('some_key');

/*
You also can use array of keys as a parameter.
If such item wasn't found at the server, the result
array simply will not include such key.
*/

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
$var = memcache_get($memcache_obj, Array('some_key', 'another_key'));

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
$var = $memcache_obj->get(Array('some_key', 'second_key'));

?>

Memcache::get() returns FALSE on failure or if such key was not found.

Пред. | Начало | След.
Memcache::flush | Уровень выше | Memcache::getStats


Memcache::getStats

(no version information, might be only in CVS)

Memcache::getStats -- Get statistics of the server

Description

array Memcache::getStats ( void )

Memcache::getStats() returns an associative array with server's statistics. Array keys correspond to stats parameters and values to parameter's values.

Also you can use memcache_get_stats() function.

Memcache::getStats() returns FALSE in case of an error.

See also Memcache::getVersion().

Пред. | Начало | След.
Memcache::get | Уровень выше | Memcache::getVersion


Memcache::getVersion

(no version information, might be only in CVS)

Memcache::getVersion -- Return version of the server

Description

string Memcache::getVersion ( void )

Memcache::getVersion() returns a string with server's version number.

Also you can use memcache_get_version() function. See example below.

Пример 1. Memcache::getVersion() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);

echo memcache_get_version($memcache_obj);

/* OO API */
$memcache_obj = new Memcache;
echo $memcache_obj->getVersion();

?>

Memcache::getVersion() returns FALSE if an error occured.

See also Memcache::getStats().

Пред. | Начало | След.
Memcache::getStats | Уровень выше | Memcache::increment


Memcache::increment

(no version information, might be only in CVS)

Memcache::increment -- Increment item's value

Description

int Memcache::increment ( string key [, int value] )

Memcache::increment() increments value of the item on the specified value. If item with key key was not numeric and cannot be converted to number, it will change it's value to value.

Parameter value is optional. It's default value is 1.

Замечание: Do not use Memcache::increment() with item, which was stored compressed, because consequent call to Memcache::get() will fail.

Also you can use memcache_increment() function. See example below.

Пример 1. Memcache::increment() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
/* increment counter by 2 */
$current_value = memcache_increment($memcache_obj, 'counter', 2);

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
/* increment counter by 3 */
$current_value = $memcache_obj->increment('counter', 3);

?>

Memcache::increment() returns new item's value on success or FALSE on failure.

Memcache::increment() does not create an item if it didn't exist.

See also Memcache::decrement(), Memcache::replace().

Пред. | Начало | След.
Memcache::getVersion | Уровень выше | Memcache::pconnect


Memcache::pconnect

(no version information, might be only in CVS)

Memcache::pconnect -- Open memcached server persistent connection

Description

bool Memcache::pconnect ( string host [, int port [, int timeout]] )

Memcache::pconnect() is similar to Memcache::connect() with the difference, that the connection it establishes is persistent. This connection is not closed after the end of script execution and by Memcache::close() function.

Also you can use memcache_pconnect() function. See example below.

Пример 1. Memcache::pconnect() example

<?php

/* procedural API */
$memcache_obj = memcache_pconnect('memcache_host', 11211);

/* OO API */

$memcache_obj = new Memcache;
$memcache_obj->pconnect('memcache_host', 11211);

?>

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also Memcache::connect().

Пред. | Начало | След.
Memcache::increment | Уровень выше | Memcache::replace


Memcache::replace

(no version information, might be only in CVS)

Memcache::replace -- Replace value of the existing item

Description

bool Memcache::replace ( string key, mixed var [, int flag [, int expire]] )

Memcache::replace() should be used to replace value of
existing item with key. In case if item with such
key doesn't exists, Memcache::replace() returns
FALSE. For the rest Memcache::replace() behaves
similarly to Memcache::set().

Also you can use memcache_replace() function. See example below.

Пример 1. Memcache::replace() example

<?php

$memcache_obj = memcache_connect('memcache_host', 11211);

/* procedural API */
memcache_replace($memcache_obj, "test_key", "some variable", false, 30);

/* OO API */
$memcache_obj->replace("test_key", "some variable", false, 30);

?>

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also Memcache::set(), Memcache::add().

Пред. | Начало | След.
Memcache::pconnect | Уровень выше | Memcache::set


Memcache::set

(no version information, might be only in CVS)

Memcache::set -- Store data at the server

Description

bool Memcache::set ( string key, mixed var [, int flag [, int expire]] )

Memcache::set() stores an item var with key on the memcached server. Parameter expire is expiration time in seconds. If it's 0, the item never expires (but memcached server doesn't guarantee this item to be stored all the time, it could be deleted from the cache to make place for other items).

You can use MEMCACHE_COMPRESSED constant as flag value if you want to use on-the-fly compression (uses zlib).

Also you can use memcache_set() function. See example below.

Замечание: Remember that resource variables (i.e. file and connection descriptors) cannot be stored in the cache, because they cannot be adequately represented in serialized state.

Пример 1. Memcache::set() example

<?php
/* procedural API */

/* connect to memcached server */
$memcache_obj = memcache_connect('memcache_host', 11211);

/*
set value of item with key 'var_key'
using 0 as flag value, compression is not used
expire time is 30 seconds
*/
memcache_set($memcache_obj, 'var_key', 'some variable', 0, 30);

echo memcache_get($memcache_obj, 'var_key');

?>

Пример 2. Memcache::set() example

<?php
/* OO API */

$memcache_obj = new Memcache;

/* connect to memcached server */
$memcache_obj->connect('memcache_host', 11211);

/*
set value of item with key 'var_key', using on-the-fly compression
expire time is 50 seconds
*/
$memcache_obj->set('var_key', 'some really big variable', MEMCACHE_COMPRESSED, 50);

echo $memcache_obj->get('var_key');

?>

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also Memcache::add(), Memcache::replace().

Пред. | Начало | След.
Memcache::replace | Уровень выше | Mhash Functions


Mhash Functions

Руководство по PHP
Пред. След.

LXXVI. Mhash Functions

Введение

These functions are intended to work with mhash. Mhash can be used to create checksums, message digests, message authentication codes, and more.

This is an interface to the mhash library. mhash supports a wide variety of hash algorithms such as MD5, SHA1, GOST, and many others. For a complete list of supported hashes, refer to the documentation of mhash. The general rule is that you can access the hash algorithm from PHP with MHASH_HASHNAME. For example, to access TIGER you use the PHP constant MHASH_TIGER.

Требования

To use it, download the mhash distribution from its web site and follow the included installation instructions.

Установка

You need to compile PHP with the --with-mhash[=DIR] parameter to enable this extension. DIR is the mhash install directory.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

Here is a list of hashes which are currently supported by mhash. If a hash is not listed here, but is listed by mhash as supported, you can safely assume that this documentation is outdated.

  • MHASH_ADLER32

  • MHASH_CRC32

  • MHASH_CRC32B

  • MHASH_GOST

  • MHASH_HAVAL128

  • MHASH_HAVAL160

  • MHASH_HAVAL192

  • MHASH_HAVAL256

  • MHASH_MD4

  • MHASH_MD5

  • MHASH_RIPEMD160

  • MHASH_SHA1

  • MHASH_SHA256

  • MHASH_TIGER

  • MHASH_TIGER128

  • MHASH_TIGER160

Примеры

Пример 1. Compute the MD5 digest and hmac and print it out as hex

<?php
$input = "what do ya want for nothing?";
$hash = mhash(MHASH_MD5, $input);
echo "The hash is " . bin2hex($hash) . "<br />\n";
$hash = mhash(MHASH_MD5, $input, "Jefe");
echo "The hmac is " . bin2hex($hash) . "<br />\n";
?>

This will produce:
The hash is d03cb659cbf9192dcd066272249f8412
The hmac is 750c783e6ab0b503eaa86e310a5db738

Содержание
mhash_count -- Get the highest available hash id
mhash_get_block_size -- Get the block size of the specified hash
mhash_get_hash_name -- Get the name of the specified hash
mhash_keygen_s2k -- Generates a key
mhash -- Compute hash

Пред. | Начало | След.
Memcache::set | Уровень выше | mhash_count


mhash_count

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

mhash_count -- Get the highest available hash id

Description

int mhash_count ( void )

mhash_count() returns the highest available hash id. Hashes are numbered from 0 to this hash id.

Пример 1. Traversing all hashes

<?php

$nr = mhash_count();

for ($i = 0; $i <= $nr; $i++) {
    echo sprintf("The blocksize of %s is %d\n",
        mhash_get_hash_name($i),
        mhash_get_block_size($i));
}
?>

Пред. | Начало | След.
Mhash Functions | Уровень выше | mhash_get_block_size


mhash_get_block_size

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

mhash_get_block_size -- Get the block size of the specified hash

Description

int mhash_get_block_size ( int hash )

mhash_get_block_size() is used to get the size of a block of the specified hash.

mhash_get_block_size() takes one argument, the hash and returns the size in bytes or FALSE, if the hash does not exist.

Пред. | Начало | След.
mhash_count | Уровень выше | mhash_get_hash_name


mhash_get_hash_name

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

mhash_get_hash_name -- Get the name of the specified hash

Description

string mhash_get_hash_name ( int hash )

mhash_get_hash_name() is used to get the name of the specified hash.

mhash_get_hash_name() takes the hash id as an argument and returns the name of the hash or FALSE, if the hash does not exist.

Пример 1. mhash_get_hash_name() example

<?php
$hash = MHASH_MD5;

echo mhash_get_hash_name($hash);
?>

Результат выполнения данного примера:

MD5

Пред. | Начало | След.
mhash_get_block_size | Уровень выше | mhash_keygen_s2k


mhash_keygen_s2k

(PHP 4 >= 4.0.4, PHP 5)

mhash_keygen_s2k -- Generates a key

Description

string mhash_keygen_s2k ( int hash, string password, string salt, int bytes )

mhash_keygen_s2k() generates a key that is bytes long, from a user given password. This is the Salted S2K algorithm as specified in the OpenPGP document (RFC 2440). That algorithm will use the specified hash algorithm to create the key. The salt must be different and random enough for every key you generate in order to create different keys. That salt must be known when you check the keys, thus it is a good idea to append the key to it. Salt has a fixed length of 8 bytes and will be padded with zeros if you supply less bytes.

Keep in mind that user supplied passwords are not really suitable to be used as keys in cryptographic algorithms, since users normally choose keys they can write on keyboard. These passwords use only 6 to 7 bits per character (or less). It is highly recommended to use some kind of transformation (like this function) to the user supplied key.

Пред. | Начало | След.
mhash_get_hash_name | Уровень выше | mhash


mhash

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

mhash -- Compute hash

Description

string mhash ( int hash, string data [, string key] )

mhash() applies a hash function specified by hash to the data and returns the resulting hash (also called digest). If the key is specified it will return the resulting HMAC. HMAC is keyed hashing for message authentication, or simply a message digest that depends on the specified key. Not all algorithms supported in mhash can be used in HMAC mode. In case of an error returns FALSE.

Пред. | Начало | След.
mhash_keygen_s2k | Уровень выше | Mimetype Functions


Mimetype Functions

Руководство по PHP
Пред. След.

LXXVII. Mimetype Functions

Введение

Внимание

This extension has been deprecated as the PECL extension fileinfo provides the same functionality (and more) in a much cleaner way.

The functions in this module try to guess the content type and encoding of a file by looking for certain magic byte sequences at specific positions within the file. While this is not a bullet proof approach the heuristics used do a very good job.

This extension is derived from Apache mod_mime_magic, which is itself based on the file command maintained by Ian F. Darwin. See the source code for further historic and copyright information.

Требования

Эти функции всегда доступны.

Установка

You must compile PHP with the configure switch --with-mime-magic to get support for mime-type functions. The extension needs a copy of the simplified magic file that is distributed with the Apache httpd.

Замечание: The configure option has been changed from --enable-mime-magic to --with-mime-magic since PHP 4.3.2

Замечание: This extension is not capable of handling the fully decorated magic file that generally comes with standard Linux distro's and is supposed to be used with recent versions of file command.

Note to Win32 Users: In order to use this module on a Windows environment, you must set the path to the bundled magic.mime file in your php.ini.

Пример 1. Setting the path to magic.mime

mime_magic.magicfile = "$PHP_INSTALL_DIR\magic.mime"

Remember to substitute the $PHP_INSTALL_DIR for your actual path to PHP in the above example. e.g. c:\php

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Mimetype configuration options

Name | Default | Changeable | Changelog
mime_magic.debug | "0" | PHP_INI_SYSTEM | Available since PHP 5.0.0.
mime_magic.magicfile | "/path/to/php/magic.mime" | PHP_INI_SYSTEM | Available since PHP 4.3.0.
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

mime_magic.debug bool

Enable/disable debugging.

mime_magic.magicfile string

The path to the magic.mime file.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Содержание
mime_content_type -- Detect MIME Content-type for a file

Пред. | Начало | След.
mhash | Уровень выше | mime_content_type


mime_content_type

(PHP 4 >= 4.3.0, PHP 5)

mime_content_type -- Detect MIME Content-type for a file

Description

string mime_content_type ( string filename )

Returns the MIME content type for a file as determined by using information from the magic.mime file. Content types are returned in MIME format, like text/plain or application/octet-stream.

Пример 1. mime_content_type() example

<?php
echo mime_content_type('php.gif') . "\n";
echo mime_content_type('test.php');
?>

Результат выполнения данного примера:

image/gif
text/plain

Пред. | Начало | След.
Mimetype Functions | Уровень выше | Ming functions for Flash


Ming functions for Flash

Руководство по PHP
Пред. След.

LXXVIII. Ming functions for Flash

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

Введение

First of all: Ming is not an acronym. Ming is an open-source (LGPL) library which allows you to create SWF ("Flash") format movies. Ming supports almost all of Flash 4's features, including: shapes, gradients, bitmaps (pngs and jpegs), morphs ("shape tweens"), text, buttons, actions, sprites ("movie clips"), streaming mp3, and color transforms --the only thing that's missing is sound events.

Note that all values specifying length, distance, size, etc. are in "twips", twenty units per pixel. That's pretty much arbitrary, though, since the player scales the movie to whatever pixel size is specified in the embed/object tag, or the entire frame if not embedded.

Ming offers a number of advantages over the existing PHP/libswf module. You can use Ming anywhere you can compile the code, whereas libswf is closed-source and only available for a few platforms, Windows not one of them. Ming provides some insulation from the mundane details of the SWF file format, wrapping the movie elements in PHP objects. Also, Ming is still being maintained; if there's a feature that you want to see, just let us know ming@opaque.net.

Ming was added in PHP 4.0.5.

Требования

To use Ming with PHP, you first need to build and install the Ming library. Source code and installation instructions are available at the Ming home page: http://ming.sourceforge.net/ along with examples, a small tutorial, and the latest news.

Download the ming archive. Unpack the archive. Go in the Ming directory. make. make install.

This will build libming.so and install it into /usr/lib/, and copy ming.h into /usr/include/. Edit the PREFIX= line in the Makefile to change the installation directory.

Установка

Пример 1. built into PHP (Unix)

mkdir <phpdir>/ext/ming
cp php_ext/* <phpdir>/ext/ming
cd <phpdir>
./buildconf
./configure --with-ming <other config options>

Build and install PHP as usual, restart web server if necessary.

Now either just add extension=php_ming.so to your php.ini file, or put dl('php_ming.so'); at the head of all of your Ming scripts.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

SWFBUTTON_HIT (integer)

SWFBUTTON_DOWN (integer)

SWFBUTTON_OVER (integer)

SWFBUTTON_UP (integer)

SWFBUTTON_MOUSEUPOUTSIDE (integer)

SWFBUTTON_DRAGOVER (integer)

SWFBUTTON_DRAGOUT (integer)

SWFBUTTON_MOUSEUP (integer)

SWFBUTTON_MOUSEDOWN (integer)

SWFBUTTON_MOUSEOUT (integer)

SWFBUTTON_MOUSEOVER (integer)

SWFFILL_RADIAL_GRADIENT (integer)

SWFFILL_LINEAR_GRADIENT (integer)

SWFFILL_TILED_BITMAP (integer)

SWFFILL_CLIPPED_BITMAP (integer)

SWFTEXTFIELD_HASLENGTH (integer)

SWFTEXTFIELD_NOEDIT (integer)

SWFTEXTFIELD_PASSWORD (integer)

SWFTEXTFIELD_MULTILINE (integer)

SWFTEXTFIELD_WORDWRAP (integer)

SWFTEXTFIELD_DRAWBOX (integer)

SWFTEXTFIELD_NOSELECT (integer)

SWFTEXTFIELD_HTML (integer)

SWFTEXTFIELD_ALIGN_LEFT (integer)

SWFTEXTFIELD_ALIGN_RIGHT (integer)

SWFTEXTFIELD_ALIGN_CENTER (integer)

SWFTEXTFIELD_ALIGN_JUSTIFY (integer)

SWFACTION_ONLOAD (integer)

SWFACTION_ENTERFRAME (integer)

SWFACTION_UNLOAD (integer)

SWFACTION_MOUSEMOVE (integer)

SWFACTION_MOUSEDOWN (integer)

SWFACTION_MOUSEUP (integer)

SWFACTION_KEYDOWN (integer)

SWFACTION_KEYUP (integer)

SWFACTION_DATA (integer)

Предопределенные классы

Перечисленные ниже классы определяются данным расширением и доступны только когда PHP был собран с этим расширением или это расширение было динамически загружено во время выполнения скрипта.

Ming introduces 13 new objects in PHP, all with matching methods and attributes. To use them, you need to know about objects.

swfshape

swffill

swfgradient

swfbitmap

swftext

swftextfield

swffont

swfdisplayitem

swfmovie

swfbutton

swfaction

swfmorph

swfsprite

Содержание
ming_setcubicthreshold -- Set cubic threshold (?)
ming_setscale -- Set scale (?)
ming_useswfversion -- Use SWF version (?)
SWFAction -- Creates a new Action
SWFBitmap->getHeight -- Returns the bitmap's height
SWFBitmap->getWidth -- Returns the bitmap's width
SWFBitmap -- Loads Bitmap object
swfbutton_keypress -- Returns the action flag for keyPress(char)
SWFbutton->addAction -- Adds an action
SWFbutton->addShape -- Adds a shape to a button
SWFbutton->setAction -- Sets the action
SWFbutton->setdown -- Alias for addShape(shape, SWFBUTTON_DOWN)
SWFbutton->setHit -- Alias for addShape(shape, SWFBUTTON_HIT)
SWFbutton->setOver -- Alias for addShape(shape, SWFBUTTON_OVER)
SWFbutton->setUp -- Alias for addShape(shape, SWFBUTTON_UP)
SWFbutton -- Creates a new Button
SWFDisplayItem->addColor -- Adds the given color to this item's color transform
SWFDisplayItem->move -- Moves object in relative coordinates
SWFDisplayItem->moveTo -- Moves object in global coordinates
SWFDisplayItem->multColor -- Multiplies the item's color transform
SWFDisplayItem->remove -- Removes the object from the movie
SWFDisplayItem->Rotate -- Rotates in relative coordinates
SWFDisplayItem->rotateTo -- Rotates the object in global coordinates
SWFDisplayItem->scale -- Scales the object in relative coordinates
SWFDisplayItem->scaleTo -- Scales the object in global coordinates
SWFDisplayItem->setDepth -- Sets z-order
SWFDisplayItem->setName -- Sets the object's name
SWFDisplayItem->setRatio -- Sets the object's ratio
SWFDisplayItem->skewX -- Sets the X-skew
SWFDisplayItem->skewXTo -- Sets the X-skew
SWFDisplayItem->skewY -- Sets the Y-skew
SWFDisplayItem->skewYTo -- Sets the Y-skew
SWFDisplayItem -- Creates a new displayitem object
SWFFill->moveTo -- Moves fill origin
SWFFill->rotateTo -- Sets fill's rotation
SWFFill->scaleTo -- Sets fill's scale
SWFFill->skewXTo -- Sets fill x-skew
SWFFill->skewYTo -- Sets fill y-skew
SWFFill -- Loads SWFFill object
swffont->getwidth -- Returns the string's width
SWFFont -- Loads a font definition
SWFGradient->addEntry -- Adds an entry to the gradient list
SWFGradient -- Creates a gradient object
SWFMorph->getshape1 -- Gets a handle to the starting shape
SWFMorph->getshape2 -- Gets a handle to the ending shape
SWFMorph -- Creates a new SWFMorph object
SWFMovie->add -- Adds any type of data to a movie
SWFMovie->nextframe -- Moves to the next frame of the animation
SWFMovie->output -- Dumps your lovingly prepared movie out
swfmovie->remove -- Removes the object instance from the display list
SWFMovie->save -- Saves your movie in a file
SWFMovie->setbackground -- Sets the background color
SWFMovie->setdimension -- Sets the movie's width and height
SWFMovie->setframes -- Sets the total number of frames in the animation
SWFMovie->setrate -- Sets the animation's frame rate
SWFMovie->streammp3 -- Streams a MP3 file
SWFMovie -- Creates a new movie object, representing an SWF version 4 movie
SWFShape->addFill -- Adds a solid fill to the shape
SWFShape->drawCurve -- Draws a curve (relative)
SWFShape->drawCurveTo -- Draws a curve
SWFShape->drawLine -- Draws a line (relative)
SWFShape->drawLineTo -- Draws a line
SWFShape->movePen -- Moves the shape's pen (relative)
SWFShape->movePenTo -- Moves the shape's pen
SWFShape->setLeftFill -- Sets left rasterizing color
SWFShape->setLine -- Sets the shape's line style
SWFShape->setRightFill -- Sets right rasterizing color
SWFShape -- Creates a new shape object
swfsprite->add -- Adds an object to a sprite
SWFSprite->nextframe -- Moves to the next frame of the animation
SWFSprite->remove -- Removes an object to a sprite
SWFSprite->setframes -- Sets the total number of frames in the animation
SWFSprite -- Creates a movie clip (a sprite)
SWFText->addString -- Draws a string
SWFText->getWidth -- Computes string's width
SWFText->moveTo -- Moves the pen
SWFText->setColor -- Sets the current font color
SWFText->setFont -- Sets the current font
SWFText->setHeight -- Sets the current font height
SWFText->setSpacing -- Sets the current font spacing
SWFText -- Creates a new SWFText object
SWFTextField->addstring -- Concatenates the given string to the text field
SWFTextField->align -- Sets the text field alignment
SWFTextField->setbounds -- Sets the text field width and height
SWFTextField->setcolor -- Sets the color of the text field
SWFTextField->setFont -- Sets the text field font
SWFTextField->setHeight -- Sets the font height of this text field font
SWFTextField->setindentation -- Sets the indentation of the first line
SWFTextField->setLeftMargin -- Sets the left margin width of the text field
SWFTextField->setLineSpacing -- Sets the line spacing of the text field
SWFTextField->setMargins -- Sets the margins width of the text field
SWFTextField->setname -- Sets the variable name
SWFTextField->setrightMargin -- Sets the right margin width of the text field
SWFTextField -- Creates a text field object

Пред. | Начало | След.
mime_content_type | Уровень выше | ming_setcubicthreshold


ming_setcubicthreshold

(PHP 4 >= 4.0.5, PHP 5)

ming_setcubicthreshold -- Set cubic threshold (?)

Description

void ming_setcubicthreshold ( int threshold )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
Ming functions for Flash | Уровень выше | ming_setscale


ming_setscale

(PHP 4 >= 4.0.5, PHP 5)

ming_setscale -- Set scale (?)

Description

void ming_setscale ( int scale )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ming_setcubicthreshold | Уровень выше | ming_useswfversion


ming_useswfversion

(PHP 4 >= 4.2.0, PHP 5)

ming_useswfversion -- Use SWF version (?)

Description

void ming_useswfversion ( int version )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ming_setscale | Уровень выше | SWFAction


SWFAction

(PHP 4 >= 4.0.5)

SWFAction -- Creates a new Action

Description

SWFAction swfaction ( string script )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfaction() creates a new Action, and compiles the given script into an SWFAction object.

The script syntax is based on the C language, but with a lot taken out- the SWF bytecode machine is just too simpleminded to do a lot of things we might like. For instance, we can't implement function calls without a tremendous amount of hackery because the jump bytecode has a hardcoded offset value. No pushing your calling address to the stack and returning- every function would have to know exactly where to return to.

So what's left? The compiler recognises the following tokens:

  • break

  • for

  • continue

  • if

  • else

  • do

  • while

There is no typed data; all values in the SWF action machine are stored as strings. The following functions can be used in expressions:

time()

Returns the number of milliseconds (?) elapsed since the movie started.

random(seed)

Returns a pseudo-random number in the range 0-seed.

length(expr)

Returns the length of the given expression.

int(number)

Returns the given number rounded down to the nearest integer.

concat(expr, expr)

Returns the concatenation of the given expressions.

ord(expr)

Returns the ASCII code for the given character

chr(num)

Returns the character for the given ASCII code

substr(string, location, length)

Returns the substring of length length at location location of the given string string.

Additionally, the following commands may be used:

duplicateClip(clip, name, depth)

Duplicate the named movie clip (aka sprite). The new movie clip has name name and is at depth depth.

removeClip(expr)

Removes the named movie clip.

trace(expr)

Write the given expression to the trace log. Doubtful that the browser plugin does anything with this.

startDrag(target, lock, [left, top, right, bottom])

Start dragging the movie clip target. The lock argument indicates whether to lock the mouse (?)- use 0 (FALSE) or 1 (TRUE). Optional parameters define a bounding area for the dragging.

stopDrag()

Stop dragging my heart around. And this movie clip, too.

callFrame(expr)

Call the named frame as a function.

getURL(url, target, [method])

Load the given URL into the named target. The target argument corresponds to HTML document targets (such as "_top" or "_blank"). The optional method argument can be POST or GET if you want to submit variables back to the server.

loadMovie(url, target)

Load the given URL into the named target. The target argument can be a frame name (I think), or one of the magical values "_level0" (replaces current movie) or "_level1" (loads new movie on top of current movie).

nextFrame()

Go to the next frame.

prevFrame()

Go to the last (or, rather, previous) frame.

play()

Start playing the movie.

stop()

Stop playing the movie.

toggleQuality()

Toggle between high and low quality.

stopSounds()

Stop playing all sounds.

gotoFrame(num)

Go to frame number num. Frame numbers start at 0.

gotoFrame(name)

Go to the frame named name. Which does a lot of good, since I haven't added frame labels yet.

setTarget(expr)

Sets the context for action. Or so they say- I really have no idea what this does.

And there's one weird extra thing. The expression frameLoaded(num) can be used in if statements and while loops to check if the given frame number has been loaded yet. Well, it's supposed to, anyway, but I've never tested it and I seriously doubt it actually works. You can just use /:framesLoaded instead.

Movie clips (all together now- aka sprites) have properties. You can read all of them (or can you?), you can set some of them, and here they are:

  • x

  • y

  • xScale

  • yScale

  • currentFrame - (read-only)

  • totalFrames - (read-only)

  • alpha - transparency level

  • visible - 1=on, 0=off (?)

  • width - (read-only)

  • height - (read-only)

  • rotation

  • target - (read-only) (???)

  • framesLoaded - (read-only)

  • name

  • dropTarget - (read-only) (???)

  • url - (read-only) (???)

  • highQuality - 1=high, 0=low (?)

  • focusRect - (???)

  • soundBufTime - (???)

So, setting a sprite's x position is as simple as /box.x = 100;. Why the slash in front of the box, though? That's how flash keeps track of the sprites in the movie, just like a Unix filesystem- here it shows that box is at the top level. If the sprite named box had another sprite named biff inside of it, you'd set its x position with /box/biff.x = 100;. At least, I think so; correct me if I'm wrong here.

This simple example will move the red square across the window.

Пример 1. swfaction() example

<?php
  $s = new SWFShape();
  $f = $s->addFill(0xff, 0, 0);
  $s->setRightFill($f);

  $s->movePenTo(-500, -500);
  $s->drawLineTo(500, -500);
  $s->drawLineTo(500, 500);
  $s->drawLineTo(-500, 500);
  $s->drawLineTo(-500, -500);

  $p = new SWFSprite();
  $i = $p->add($s);
  $i->setDepth(1);
  $p->nextFrame();

  for ($n=0; $n<5; ++$n) {
    $i->rotate(-15);
    $p->nextFrame();
  }

  $m = new SWFMovie();
  $m->setBackground(0xff, 0xff, 0xff);
  $m->setDimension(6000, 4000);

  $i = $m->add($p);
  $i->setDepth(1);
  $i->moveTo(-500,2000);
  $i->setName("box");

  $m->add(new SWFAction("/box.x += 3;"));
  $m->nextFrame();
  $m->add(new SWFAction("gotoFrame(0); play();"));
  $m->nextFrame();

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

This simple example tracks down your mouse on the screen.

Пример 2. swfaction() example

<?php

  $m = new SWFMovie();
  $m->setRate(36.0);
  $m->setDimension(1200, 800);
  $m->setBackground(0, 0, 0);

  /* mouse tracking sprite - empty, but follows mouse so we can
     get its x and y coordinates */

  $i = $m->add(new SWFSprite());
  $i->setName('mouse');

  $m->add(new SWFAction("
    startDrag('/mouse', 1); /* '1' means lock sprite to the mouse */
  "));

  /* might as well turn off antialiasing, since these are just squares. */

  $m->add(new SWFAction("
    this.quality = 0;
  "));

  /* morphing box */
  $r = new SWFMorph();
  $s = $r->getShape1();

  /* Note this is backwards from normal shapes.  No idea why. */
  $s->setLeftFill($s->addFill(0xff, 0xff, 0xff));
  $s->movePenTo(-40, -40);
  $s->drawLine(80, 0);
  $s->drawLine(0, 80);
  $s->drawLine(-80, 0);
  $s->drawLine(0, -80);

  $s = $r->getShape2();

  $s->setLeftFill($s->addFill(0x00, 0x00, 0x00));
  $s->movePenTo(-1, -1);
  $s->drawLine(2, 0);
  $s->drawLine(0, 2);
  $s->drawLine(-2, 0);
  $s->drawLine(0, -2);

  /* sprite container for morphing box -
     this is just a timeline w/ the box morphing */

  $box = new SWFSprite();
  $box->add(new SWFAction("
    stop();
  "));
  $i = $box->add($r);

  for ($n=0; $n<=20; ++$n) {
    $i->setRatio($n/20);
    $box->nextFrame();
  }

  /* this container sprite allows us to use the same action code many times */

  $cell = new SWFSprite();
  $i = $cell->add($box);
  $i->setName('box');

  $cell->add(new SWFAction("

    setTarget('box');

    /* ...x means the x coordinate of the parent, i.e. (..).x */
    dx = (/mouse.x + random(6)-3 - ...x)/5;
    dy = (/mouse.y + random(6)-3 - ...y)/5;
    gotoFrame(int(dx*dx + dy*dy));

  "));

  $cell->nextFrame();
  $cell->add(new SWFAction("

    gotoFrame(0);
    play();

  "));

  $cell->nextFrame();

  /* finally, add a bunch of the cells to the movie */

  for ($x=0; $x<12; ++$x) {
    for ($y=0; $y<8; ++$y) {
      $i = $m->add($cell);
      $i->moveTo(100*$x+50, 100*$y+50);
    }
  }

  $m->nextFrame();

  $m->add(new SWFAction("

    gotoFrame(1);
    play();

  "));

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Same as above, but with nice colored balls...

Пример 3. swfaction() example

<?php

  $m = new SWFMovie();
  $m->setDimension(11000, 8000);
  $m->setBackground(0x00, 0x00, 0x00);

  $m->add(new SWFAction("

this.quality = 0;
/frames.visible = 0;
startDrag('/mouse', 1);

  "));

  // mouse tracking sprite
  $t = new SWFSprite();
  $i = $m->add($t);
  $i->setName('mouse');

  $g = new SWFGradient();
  $g->addEntry(0, 0xff, 0xff, 0xff, 0xff);
  $g->addEntry(0.1, 0xff, 0xff, 0xff, 0xff);
  $g->addEntry(0.5, 0xff, 0xff, 0xff, 0x5f);
  $g->addEntry(1.0, 0xff, 0xff, 0xff, 0);

  // gradient shape thing
  $s = new SWFShape();
  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.03);
  $s->setRightFill($f);
  $s->movePenTo(-600, -600);
  $s->drawLine(1200, 0);
  $s->drawLine(0, 1200);
  $s->drawLine(-1200, 0);
  $s->drawLine(0, -1200);

  // need to make this a sprite so we can multColor it
  $p = new SWFSprite();
  $p->add($s);
  $p->nextFrame();

  // put the shape in here, each frame a different color
  $q = new SWFSprite();
  $q->add(new SWFAction("gotoFrame(random(7)+1); stop();"));
  $i = $q->add($p);

  $i->multColor(1.0, 1.0, 1.0);
  $q->nextFrame();
  $i->multColor(1.0, 0.5, 0.5);
  $q->nextFrame();
  $i->multColor(1.0, 0.75, 0.5);
  $q->nextFrame();
  $i->multColor(1.0, 1.0, 0.5);
  $q->nextFrame();
  $i->multColor(0.5, 1.0, 0.5);
  $q->nextFrame();
  $i->multColor(0.5, 0.5, 1.0);
  $q->nextFrame();
  $i->multColor(1.0, 0.5, 1.0);
  $q->nextFrame();

  // finally, this one contains the action code
  $p = new SWFSprite();
  $i = $p->add($q);
  $i->setName('frames');
  $p->add(new SWFAction("

dx = (/:mousex-/:lastx)/3 + random(10)-5;
dy = (/:mousey-/:lasty)/3;
x = /:mousex;
y = /:mousey;
alpha = 100;

  "));
  $p->nextFrame();

  $p->add(new SWFAction("

this.x = x;
this.y = y;
this.alpha = alpha;
x += dx;
y += dy;
dy += 3;
alpha -= 8;

  "));
  $p->nextFrame();

  $p->add(new SWFAction("prevFrame(); play();"));
  $p->nextFrame();

  $i = $m->add($p);
  $i->setName('frames');
  $m->nextFrame();

  $m->add(new SWFAction("

lastx = mousex;
lasty = mousey;
mousex = /mouse.x;
mousey = /mouse.y;

++num;

if (num == 11)
  num = 1;

removeClip('char' & num);
duplicateClip(/frames, 'char' & num, num);

  "));

  $m->nextFrame();
  $m->add(new SWFAction("prevFrame(); play();"));

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Пред. | Начало | След.
ming_useswfversion | Уровень выше | SWFBitmap->getHeight


SWFBitmap->getHeight

(no version information, might be only in CVS)

SWFBitmap->getHeight -- Returns the bitmap's height

Description

float swfbitmap->getheight ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfbitmap->getheight() returns the bitmap's height in pixels.

See also swfbitmap->getwidth().

Пред. | Начало | След.
SWFAction | Уровень выше | SWFBitmap->getWidth


SWFBitmap->getWidth

(no version information, might be only in CVS)

SWFBitmap->getWidth -- Returns the bitmap's width

Description

float swfbitmap->getwidth ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfbitmap->getwidth() returns the bitmap's width in pixels.

See also swfbitmap->getheight().

Пред. | Начало | След.
SWFBitmap->getHeight | Уровень выше | SWFBitmap


SWFBitmap

(PHP 4 >= 4.0.5)

SWFBitmap -- Loads Bitmap object

Description

SWFBitmap swfbitmap ( mixed file [, mixed alphafile] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfbitmap() creates a new SWFBitmap object from the Jpeg or DBL file in file. alphafile is a MSK file to be used as an alpha mask for a Jpeg image. Both parameters can be fopen() resources or binary strings.

Замечание: We can only deal with baseline (frame 0) jpegs, no baseline optimized or progressive scan jpegs!

SWFBitmap has the following methods : swfbitmap->getwidth() and swfbitmap->getheight().

You can't import png images directly, though- have to use the png2dbl utility to make a dbl ("define bits lossless") file from the png. The reason for this is that I don't want a dependency on the png library in ming- autoconf should solve this, but that's not set up yet.

Пример 1. Import PNG files

<?php
  $s = new SWFShape();
  $f = $s->addFill(new SWFBitmap(file_get_contents("png.dbl")));
  $s->setRightFill($f);

  $s->drawLine(32, 0);
  $s->drawLine(0, 32);
  $s->drawLine(-32, 0);
  $s->drawLine(0, -32);

  $m = new SWFMovie();
  $m->setDimension(32, 32);
  $m->add($s);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

And you can put an alpha mask on a jpeg fill.

Пример 2. swfbitmap() example

<?php

  $s = new SWFShape();

  // .msk file generated with "gif2mask" utility
  $f = $s->addFill(new SWFBitmap(file_get_contents("alphafill.jpg"), file_get_contents("alphafill.msk")));
  $s->setRightFill($f);

  $s->drawLine(640, 0);
  $s->drawLine(0, 480);
  $s->drawLine(-640, 0);
  $s->drawLine(0, -480);

  $c = new SWFShape();
  $c->setRightFill($c->addFill(0x99, 0x99, 0x99));
  $c->drawLine(40, 0);
  $c->drawLine(0, 40);
  $c->drawLine(-40, 0);
  $c->drawLine(0, -40);

  $m = new SWFMovie();
  $m->setDimension(640, 480);
  $m->setBackground(0xcc, 0xcc, 0xcc);

  // draw checkerboard background
  for ($y=0; $y<480; $y+=40) {
    for ($x=0; $x<640; $x+=80) {
      $i = $m->add($c);
      $i->moveTo($x, $y);
    }

    $y+=40;

    for ($x=40; $x<640; $x+=80) {
      $i = $m->add($c);
      $i->moveTo($x, $y);
    }
  }

  $m->add($s);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Пред. | Начало | След.
SWFBitmap->getWidth | Уровень выше | swfbutton_keypress


swfbutton_keypress

(PHP 4 >= 4.0.5)

swfbutton_keypress -- Returns the action flag for keyPress(char)

Description

int swfbutton_keypress ( string str )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
SWFBitmap | Уровень выше | SWFbutton->addAction


SWFbutton->addAction

(no version information, might be only in CVS)

SWFbutton->addAction -- Adds an action

Description

void swfbutton->addaction ( resource action, int flags )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfbutton->addaction() adds the action action to this button for the given conditions. The following flags are valid: SWFBUTTON_MOUSEOVER, SWFBUTTON_MOUSEOUT, SWFBUTTON_MOUSEUP, SWFBUTTON_MOUSEUPOUTSIDE, SWFBUTTON_MOUSEDOWN, SWFBUTTON_DRAGOUT and SWFBUTTON_DRAGOVER.

See also swfbutton->addshape() and swfaction().

Пред. | Начало | След.
swfbutton_keypress | Уровень выше | SWFbutton->addShape


SWFbutton->addShape

(no version information, might be only in CVS)

SWFbutton->addShape -- Adds a shape to a button

Description

void swfbutton->addshape ( resource shape, int flags )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfbutton->addshape() adds the shape shape to this button. The following flags' values are valid: SWFBUTTON_UP, SWFBUTTON_OVER, SWFBUTTON_DOWN or SWFBUTTON_HIT. SWFBUTTON_HIT isn't ever displayed, it defines the hit region for the button. That is, everywhere the hit shape would be drawn is considered a "touchable" part of the button.

Пред. | Начало | След.
SWFbutton->addAction | Уровень выше | SWFbutton->setAction


SWFbutton->setAction

(no version information, might be only in CVS)

SWFbutton->setAction -- Sets the action

Description

void swfbutton->setaction ( resource action )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfbutton->setaction() sets the action to be performed when the button is clicked. Alias for addAction(shape, SWFBUTTON_MOUSEUP). action is a swfaction().

See also swfbutton->addshape() and swfaction().

Пред. | Начало | След.
SWFbutton->addShape | Уровень выше | SWFbutton->setdown


SWFbutton->setdown

(no version information, might be only in CVS)

SWFbutton->setdown -- Alias for addShape(shape, SWFBUTTON_DOWN)

Description

void swfbutton->setdown ( resource shape )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfbutton->setdown() alias for addShape(shape, SWFBUTTON_DOWN).

See also swfbutton->addshape() and swfaction().

Пред. | Начало | След.
SWFbutton->setAction | Уровень выше | SWFbutton->setHit


SWFbutton->setHit

(no version information, might be only in CVS)

SWFbutton->setHit -- Alias for addShape(shape, SWFBUTTON_HIT)

Description

void swfbutton->sethit ( resource shape )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfbutton->sethit() alias for addShape(shape, SWFBUTTON_HIT).

See also swfbutton->addshape() and swfaction().

Пред. | Начало | След.
SWFbutton->setdown | Уровень выше | SWFbutton->setOver


SWFbutton->setOver

(no version information, might be only in CVS)

SWFbutton->setOver -- Alias for addShape(shape, SWFBUTTON_OVER)

Description

void swfbutton->setover ( resource shape )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfbutton->setover() alias for addShape(shape, SWFBUTTON_OVER).

See also swfbutton->addshape() and swfaction().

Пред. | Начало | След.
SWFbutton->setHit | Уровень выше | SWFbutton->setUp


SWFbutton->setUp

(no version information, might be only in CVS)

SWFbutton->setUp -- Alias for addShape(shape, SWFBUTTON_UP)

Description

void swfbutton->setup ( resource shape )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfbutton->setup() alias for addShape(shape, SWFBUTTON_UP).

See also swfbutton->addshape() and swfaction().

Пред. | Начало | След.
SWFbutton->setOver | Уровень выше | SWFbutton


SWFbutton

(PHP 4 >= 4.0.5)

SWFbutton -- Creates a new Button

Description

SWFButton swfbutton ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfbutton() creates a new Button. Roll over it, click it, see it call action code. Swank.

SWFButton has the following methods : swfbutton->addshape(),
swfbutton->setup(), swfbutton->setover()
swfbutton->setdown(), swfbutton->sethit()
swfbutton->setaction() and
swfbutton->addaction().

This simple example will show your usual interactions with buttons : rollover, rollon, mouseup, mousedown, noaction.

Пример 1. swfbutton() example

<?php

  $f = new SWFFont("_serif");

  $p = new SWFSprite();

  function label($string)
  {
    global $f;

    $t = new SWFTextField();
    $t->setFont($f);
    $t->addString($string);
    $t->setHeight(200);
    $t->setBounds(3200, 200);
    return $t;
  }

  function addLabel($string)
  {
    global $p;

    $i = $p->add(label($string));
    $p->nextFrame();
    $p->remove($i);
  }

  $p->add(new SWFAction("stop();"));
  addLabel("NO ACTION");
  addLabel("SWFBUTTON_MOUSEUP");
  addLabel("SWFBUTTON_MOUSEDOWN");
  addLabel("SWFBUTTON_MOUSEOVER");
  addLabel("SWFBUTTON_MOUSEOUT");
  addLabel("SWFBUTTON_MOUSEUPOUTSIDE");
  addLabel("SWFBUTTON_DRAGOVER");
  addLabel("SWFBUTTON_DRAGOUT");

  function rect($r, $g, $b)
  {
    $s = new SWFShape();
    $s->setRightFill($s->addFill($r, $g, $b));
    $s->drawLine(600, 0);
    $s->drawLine(0, 600);
    $s->drawLine(-600, 0);
    $s->drawLine(0, -600);

    return $s;
  }

  $b = new SWFButton();
  $b->addShape(rect(0xff, 0, 0), SWFBUTTON_UP | SWFBUTTON_HIT);
  $b->addShape(rect(0, 0xff, 0), SWFBUTTON_OVER);
  $b->addShape(rect(0, 0, 0xff), SWFBUTTON_DOWN);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(1);"),
            SWFBUTTON_MOUSEUP);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(2);"),
        SWFBUTTON_MOUSEDOWN);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(3);"),
        SWFBUTTON_MOUSEOVER);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(4);"),
        SWFBUTTON_MOUSEOUT);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(5);"),
        SWFBUTTON_MOUSEUPOUTSIDE);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(6);"),
        SWFBUTTON_DRAGOVER);

  $b->addAction(new SWFAction("setTarget('/label'); gotoFrame(7);"),
        SWFBUTTON_DRAGOUT);

  $m = new SWFMovie();
  $m->setDimension(4000, 3000);

  $i = $m->add($p);
  $i->setName("label");
  $i->moveTo(400, 1900);

  $i = $m->add($b);
  $i->moveTo(400, 900);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

This simple example will enables you to drag draw a big red button on the windows. No drag-and-drop, just moving around.

Пример 2. swfbutton->addaction() example

<?php

  $s = new SWFShape();
  $s->setRightFill($s->addFill(0xff, 0, 0));
  $s->drawLine(1000,0);
  $s->drawLine(0,1000);
  $s->drawLine(-1000,0);
  $s->drawLine(0,-1000);

  $b = new SWFButton();
  $b->addShape($s, SWFBUTTON_HIT | SWFBUTTON_UP | SWFBUTTON_DOWN | SWFBUTTON_OVER);

  $b->addAction(new SWFAction("startDrag('/test', 0);"), // '0' means don't lock to mouse
        SWFBUTTON_MOUSEDOWN);

  $b->addAction(new SWFAction("stopDrag();"),
        SWFBUTTON_MOUSEUP | SWFBUTTON_MOUSEUPOUTSIDE);

  $p = new SWFSprite();
  $p->add($b);
  $p->nextFrame();

  $m = new SWFMovie();
  $i = $m->add($p);
  $i->setName('test');
  $i->moveTo(1000,1000);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Пред. | Начало | След.
SWFbutton->setUp | Уровень выше | SWFDisplayItem->addColor


SWFDisplayItem->addColor

(no version information, might be only in CVS)

SWFDisplayItem->addColor -- Adds the given color to this item's color transform

Description

void swfdisplayitem->addcolor ( int red, int green, int blue [, int a] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem->addcolor() adds the color to this item's color transform. The color is given in its RGB form.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Пред. | Начало | След.
SWFbutton | Уровень выше | SWFDisplayItem->move


SWFDisplayItem->move

(no version information, might be only in CVS)

SWFDisplayItem->move -- Moves object in relative coordinates

Description

void swfdisplayitem->move ( int dx, int dy )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem->move() moves the current object by (dx,dy) from its current position.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->moveto().

Пред. | Начало | След.
SWFDisplayItem->addColor | Уровень выше | SWFDisplayItem->moveTo


SWFDisplayItem->moveTo

(no version information, might be only in CVS)

SWFDisplayItem->moveTo -- Moves object in global coordinates

Description

void swfdisplayitem->moveto ( int x, int y )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem->moveto() moves the current object to (x,y) in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->move().

Пред. | Начало | След.
SWFDisplayItem->move | Уровень выше | SWFDisplayItem->multColor


SWFDisplayItem->multColor

(no version information, might be only in CVS)

SWFDisplayItem->multColor -- Multiplies the item's color transform

Description

void swfdisplayitem->multcolor ( int red, int green, int blue [, int a] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem->multcolor() multiplies the item's color transform by the given values.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

This simple example will modify your picture's atmosphere to Halloween (use a landscape or bright picture).

Пример 1. swfdisplayitem->multcolor() example

<?php

  $b = new SWFBitmap(file_get_contents("backyard.jpg"));
  // note use your own picture :-)
  $s = new SWFShape();
  $s->setRightFill($s->addFill($b));
  $s->drawLine($b->getWidth(), 0);
  $s->drawLine(0, $b->getHeight());
  $s->drawLine(-$b->getWidth(), 0);
  $s->drawLine(0, -$b->getHeight());

  $m = new SWFMovie();
  $m->setDimension($b->getWidth(), $b->getHeight());

  $i = $m->add($s);

  for ($n=0; $n<=20; ++$n) {
    $i->multColor(1.0-$n/10, 1.0, 1.0);
    $i->addColor(0xff*$n/20, 0, 0);
    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Пред. | Начало | След.
SWFDisplayItem->moveTo | Уровень выше | SWFDisplayItem->remove


SWFDisplayItem->remove

(no version information, might be only in CVS)

SWFDisplayItem->remove -- Removes the object from the movie

Description

void swfdisplayitem->remove ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem->remove() removes this object from the movie's display list.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfmovie->add().

Пред. | Начало | След.
SWFDisplayItem->multColor | Уровень выше | SWFDisplayItem->Rotate


SWFDisplayItem->Rotate

(no version information, might be only in CVS)

SWFDisplayItem->Rotate -- Rotates in relative coordinates

Description

void swfdisplayitem->rotate ( float ddegrees )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem->rotate() rotates the current object by ddegrees degrees from its current rotation.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->rotateto().

Пред. | Начало | След.
SWFDisplayItem->remove | Уровень выше | SWFDisplayItem->rotateTo


SWFDisplayItem->rotateTo

(no version information, might be only in CVS)

SWFDisplayItem->rotateTo -- Rotates the object in global coordinates

Description

void swfdisplayitem->rotateto ( float degrees )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem->rotateto() set the current object rotation to degrees degrees in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

This example bring three rotating string from the background to the foreground. Pretty nice.

Пример 1. swfdisplayitem->rotateto() example

<?php
  $thetext =  "ming!";

  $f = new SWFFont("Bauhaus 93.fdb");

  $m = new SWFMovie();
  $m->setRate(24.0);
  $m->setDimension(2400, 1600);
  $m->setBackground(0xff, 0xff, 0xff);

  // functions with huge numbers of arbitrary
  // arguments are always a good idea!  Really!

  function text($r, $g, $b, $a, $rot, $x, $y, $scale, $string)
  {
    global $f, $m;

    $t = new SWFText();
    $t->setFont($f);
    $t->setColor($r, $g, $b, $a);
    $t->setHeight(960);
    $t->moveTo(-($f->getWidth($string))/2, $f->getAscent()/2);
    $t->addString($string);

    // we can add properties just like a normal PHP var,
    // as long as the names aren't already used.
    // e.g., we can't set $i->scale, because that's a function

    $i = $m->add($t);
    $i->x = $x;
    $i->y = $y;
    $i->rot = $rot;
    $i->s = $scale;
    $i->rotateTo($rot);
    $i->scale($scale, $scale);

    // but the changes are local to the function, so we have to
    // return the changed object.  kinda weird..

    return $i;
 }

  function step($i)
  {
    $oldrot = $i->rot;
    $i->rot = 19*$i->rot/20;
    $i->x = (19*$i->x + 1200)/20;
    $i->y = (19*$i->y + 800)/20;
    $i->s = (19*$i->s + 1.0)/20;

    $i->rotateTo($i->rot);
    $i->scaleTo($i->s, $i->s);
    $i->moveTo($i->x, $i->y);

    return $i;
  }

  // see?  it sure paid off in legibility:

  $i1 = text(0xff, 0x33, 0x33, 0xff, 900, 1200, 800, 0.03, $thetext);
  $i2 = text(0x00, 0x33, 0xff, 0x7f, -560, 1200, 800, 0.04, $thetext);
  $i3 = text(0xff, 0xff, 0xff, 0x9f, 180, 1200, 800, 0.001, $thetext);

  for ($i=1; $i<=100; ++$i) {
    $i1 = step($i1);
    $i2 = step($i2);
    $i3 = step($i3);

    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

See also swfdisplayitem->rotate().

Пред. | Начало | След.
SWFDisplayItem->Rotate | Уровень выше | SWFDisplayItem->scale


SWFDisplayItem->scale

(no version information, might be only in CVS)

SWFDisplayItem->scale -- Scales the object in relative coordinates

Description

void swfdisplayitem->scale ( int dx, int dy )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem->scale() scales the current object by (dx,dy) from its current size.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->scaleto().

Пред. | Начало | След.
SWFDisplayItem->rotateTo | Уровень выше | SWFDisplayItem->scaleTo


SWFDisplayItem->scaleTo

(no version information, might be only in CVS)

SWFDisplayItem->scaleTo -- Scales the object in global coordinates

Description

void swfdisplayitem->scaleto ( int x [, int y] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem->scaleto() scales the current object to (x,y) in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also swfdisplayitem->scale().

Пред. | Начало | След.
SWFDisplayItem->scale | Уровень выше | SWFDisplayItem->setDepth


SWFDisplayItem->setDepth

(no version information, might be only in CVS)

SWFDisplayItem->setDepth -- Sets z-order

Description

void swfdisplayitem->setdepth ( float depth )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem->setdepth() sets the object's z-order to depth. Depth defaults to the order in which instances are created (by adding a shape/text to a movie)- newer ones are on top of older ones. If two objects are given the same depth, only the later-defined one can be moved.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Пред. | Начало | След.
SWFDisplayItem->scaleTo | Уровень выше | SWFDisplayItem->setName


SWFDisplayItem->setName

(no version information, might be only in CVS)

SWFDisplayItem->setName -- Sets the object's name

Description

void swfdisplayitem->setname ( string name )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem->setname() sets the object's name to name, for targetting with action script. Only useful on sprites.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

Пред. | Начало | След.
SWFDisplayItem->setDepth | Уровень выше | SWFDisplayItem->setRatio


SWFDisplayItem->setRatio

(no version information, might be only in CVS)

SWFDisplayItem->setRatio -- Sets the object's ratio

Description

void swfdisplayitem->setratio ( float ratio )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem->setratio() sets the object's ratio to ratio. Obviously only useful for morphs.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

This simple example will morph nicely three concentric circles.

Пример 1. swfdisplayitem->setname() example

<?php

  $p = new SWFMorph();

  $g = new SWFGradient();
  $g->addEntry(0.0, 0, 0, 0);
  $g->addEntry(0.16, 0xff, 0xff, 0xff);
  $g->addEntry(0.32, 0, 0, 0);
  $g->addEntry(0.48, 0xff, 0xff, 0xff);
  $g->addEntry(0.64, 0, 0, 0);
  $g->addEntry(0.80, 0xff, 0xff, 0xff);
  $g->addEntry(1.00, 0, 0, 0);

  $s = $p->getShape1();
  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.05);
  $s->setLeftFill($f);
  $s->movePenTo(-160, -120);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $g = new SWFGradient();
  $g->addEntry(0.0, 0, 0, 0);
  $g->addEntry(0.16, 0xff, 0, 0);
  $g->addEntry(0.32, 0, 0, 0);
  $g->addEntry(0.48, 0, 0xff, 0);
  $g->addEntry(0.64, 0, 0, 0);
  $g->addEntry(0.80, 0, 0, 0xff);
  $g->addEntry(1.00, 0, 0, 0);

  $s = $p->getShape2();
  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.05);
  $f->skewXTo(1.0);
  $s->setLeftFill($f);
  $s->movePenTo(-160, -120);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $m = new SWFMovie();
  $m->setDimension(320, 240);
  $i = $m->add($p);
  $i->moveTo(160, 120);

  for ($n=0; $n<=1.001; $n+=0.01) {
    $i->setRatio($n);
    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Пред. | Начало | След.
SWFDisplayItem->setName | Уровень выше | SWFDisplayItem->skewX


SWFDisplayItem->skewX

(no version information, might be only in CVS)

SWFDisplayItem->skewX -- Sets the X-skew

Description

void swfdisplayitem->skewx ( float ddegrees )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem->skewx() adds ddegrees to current x-skew.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also
swfdisplayitem->skewx(),
swfdisplayitem->skewy() and
swfdisplayitem->skewyto().

Пред. | Начало | След.
SWFDisplayItem->setRatio | Уровень выше | SWFDisplayItem->skewXTo


SWFDisplayItem->skewXTo

(no version information, might be only in CVS)

SWFDisplayItem->skewXTo -- Sets the X-skew

Description

void swfdisplayitem->skewxto ( float degrees )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem->skewxto() sets the x-skew to degrees. For degrees is 1.0, it means a 45-degree forward slant. More is more forward, less is more backward.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also
swfdisplayitem->skewx(),
swfdisplayitem->skewy() and
swfdisplayitem->skewyto().

Пред. | Начало | След.
SWFDisplayItem->skewX | Уровень выше | SWFDisplayItem->skewY


SWFDisplayItem->skewY

(no version information, might be only in CVS)

SWFDisplayItem->skewY -- Sets the Y-skew

Description

void swfdisplayitem->skewy ( float ddegrees )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem->skewy() adds ddegrees to current y-skew.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also
swfdisplayitem->skewyto(),
swfdisplayitem->skewx() and
swfdisplayitem->skewxto().

Пред. | Начало | След.
SWFDisplayItem->skewXTo | Уровень выше | SWFDisplayItem->skewYTo


SWFDisplayItem->skewYTo

(no version information, might be only in CVS)

SWFDisplayItem->skewYTo -- Sets the Y-skew

Description

void swfdisplayitem->skewyto ( float degrees )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem->skewyto() sets the y-skew to degrees. For degrees is 1.0, it means a 45-degree forward slant. More is more upward, less is more downward.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie->add().

See also
swfdisplayitem->skewy(),
swfdisplayitem->skewx() and
swfdisplayitem->skewxto().

Пред. | Начало | След.
SWFDisplayItem->skewY | Уровень выше | SWFDisplayItem


SWFDisplayItem

(no version information, might be only in CVS)

SWFDisplayItem -- Creates a new displayitem object

Description

SWFDisplayItem swfdisplayitem ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem() creates a new swfdisplayitem object.

Here's where all the animation takes place. After you define a shape, a text object, a sprite, or a button, you add it to the movie, then use the returned handle to move, rotate, scale, or skew the thing.

SWFDisplayItem has the following methods : swfdisplayitem->move(),
swfdisplayitem->moveto(), swfdisplayitem->scaleto(),
swfdisplayitem->scale(), swfdisplayitem->rotate(),
swfdisplayitem->rotateto(), swfdisplayitem->skewxto(),
swfdisplayitem->skewx(), swfdisplayitem->skewyto()
swfdisplayitem->skewyto(), swfdisplayitem->setdepth()
swfdisplayitem->remove(), swfdisplayitem->setname()
swfdisplayitem->setratio(), swfdisplayitem->addcolor()
and swfdisplayitem->multcolor().

Пред. | Начало | След.
SWFDisplayItem->skewYTo | Уровень выше | SWFFill->moveTo


SWFFill->moveTo

(no version information, might be only in CVS)

SWFFill->moveTo -- Moves fill origin

Description

void swffill->moveto ( int x, int y )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swffill->moveto() moves fill's origin to (x,y) in global coordinates.

Пред. | Начало | След.
SWFDisplayItem | Уровень выше | SWFFill->rotateTo


SWFFill->rotateTo

(no version information, might be only in CVS)

SWFFill->rotateTo -- Sets fill's rotation

Description

void swffill->rotateto ( float degrees )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swffill->rotateto() sets fill's rotation to degrees degrees.

Пред. | Начало | След.
SWFFill->moveTo | Уровень выше | SWFFill->scaleTo


SWFFill->scaleTo

(no version information, might be only in CVS)

SWFFill->scaleTo -- Sets fill's scale

Description

void swffill->scaleto ( int x [, int y] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swffill->scaleto() sets fill's scale to x in the x-direction, y in the y-direction.

Пред. | Начало | След.
SWFFill->rotateTo | Уровень выше | SWFFill->skewXTo


SWFFill->skewXTo

(no version information, might be only in CVS)

SWFFill->skewXTo -- Sets fill x-skew

Description

void swffill->skewxto ( float x )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swffill->skewxto() sets fill x-skew to x. For x is 1.0, it is a 45-degree forward slant. More is more forward, less is more backward.

Пред. | Начало | След.
SWFFill->scaleTo | Уровень выше | SWFFill->skewYTo


SWFFill->skewYTo

(no version information, might be only in CVS)

SWFFill->skewYTo -- Sets fill y-skew

Description

void swffill->skewyto ( float y )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swffill->skewyto() sets fill y-skew to y. For y is 1.0, it is a 45-degree upward slant. More is more upward, less is more downward.

Пред. | Начало | След.
SWFFill->skewXTo | Уровень выше | SWFFill


SWFFill

(PHP 4 >= 4.0.5)

SWFFill -- Loads SWFFill object

Description

SWFFill swffill ( void )

The swffill() object allows you to transform (scale, skew, rotate) bitmap and gradient fills. swffill() objects are created by the swfshape->addfill() methods.

SWFFill has the following methods: swffill->moveto()
and swffill->scaleto(), swffill->rotateto(),
swffill->skewxto() and swffill->skewyto().

Пред. | Начало | След.
SWFFill->skewYTo | Уровень выше | swffont->getwidth


swffont->getwidth

(no version information, might be only in CVS)

swffont->getwidth -- Returns the string's width

Description

float swffont->getwidth ( string string )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swffont->getwidth() returns the string string's width, using font's default scaling. You'll probably want to use the swftext() version of this method which uses the text object's scale.

Пред. | Начало | След.
SWFFill | Уровень выше | SWFFont


SWFFont

(PHP 4 >= 4.0.5)

SWFFont -- Loads a font definition

Description

SWFFont swffont ( string filename )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

If filename is the name of an FDB file (i.e., it ends in ".fdb"), load the font definition found in said file. Otherwise, create a browser-defined font reference.

FDB ("font definition block") is a very simple wrapper for the SWF DefineFont2 block which contains a full description of a font. One may create FDB files from SWT Generator template files with the included makefdb utility- look in the util directory off the main ming distribution directory.

Browser-defined fonts don't contain any information about the font other than its name. It is assumed that the font definition will be provided by the movie player. The fonts _serif, _sans, and _typewriter should always be available. For example:
<?php
$f = newSWFFont("_sans");
?>
will give you the standard sans-serif font, probably the same as what you'd get with <font name="sans-serif"> in HTML.

swffont() returns a reference to the font definition, for use in the swftext->setfont() and the swftextfield->setfont() methods.

SWFFont has the following methods : swffont->getwidth().

Пред. | Начало | След.
swffont->getwidth | Уровень выше | SWFGradient->addEntry


SWFGradient->addEntry

(no version information, might be only in CVS)

SWFGradient->addEntry -- Adds an entry to the gradient list

Description

void swfgradient->addentry ( float ratio, int red, int green, int blue [, int a] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfgradient->addentry() adds an entry to the gradient list. ratio is a number between 0 and 1 indicating where in the gradient this color appears. Thou shalt add entries in order of increasing ratio.

red, green, blue is a color (RGB mode). Last parameter a is optional.

Пред. | Начало | След.
SWFFont | Уровень выше | SWFGradient


SWFGradient

(PHP 4 >= 4.0.5)

SWFGradient -- Creates a gradient object

Description

SWFGradient swfgradient ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfgradient() creates a new SWFGradient object.

After you've added the entries to your gradient, you can use the gradient in a shape fill with the swfshape->addfill() method.

SWFGradient has the following methods : swfgradient->addentry().

This simple example will draw a big black-to-white gradient as background, and a reddish disc in its center.

Пример 1. swfgradient() example

<?php

  $m = new SWFMovie();
  $m->setDimension(320, 240);

  $s = new SWFShape();

  // first gradient- black to white
  $g = new SWFGradient();
  $g->addEntry(0.0, 0, 0, 0);
  $g->addEntry(1.0, 0xff, 0xff, 0xff);

  $f = $s->addFill($g, SWFFILL_LINEAR_GRADIENT);
  $f->scaleTo(0.01);
  $f->moveTo(160, 120);
  $s->setRightFill($f);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $m->add($s);

  $s = new SWFShape();

  // second gradient- radial gradient from red to transparent
  $g = new SWFGradient();
  $g->addEntry(0.0, 0xff, 0, 0, 0xff);
  $g->addEntry(1.0, 0xff, 0, 0, 0);

  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.005);
  $f->moveTo(160, 120);
  $s->setRightFill($f);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $m->add($s);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Пред. | Начало | След.
SWFGradient->addEntry | Уровень выше | SWFMorph->getshape1


SWFMorph->getshape1

(no version information, might be only in CVS)

SWFMorph->getshape1 -- Gets a handle to the starting shape

Description

mixed swfmorph->getshape1 ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfmorph->getshape1() gets a handle to the morph's starting shape. swfmorph->getshape1() returns an swfshape() object.

Пред. | Начало | След.
SWFGradient | Уровень выше | SWFMorph->getshape2


SWFMorph->getshape2

(no version information, might be only in CVS)

SWFMorph->getshape2 -- Gets a handle to the ending shape

Description

mixed swfmorph->getshape2 ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfmorph->getshape2() gets a handle to the morph's ending shape. swfmorph->getshape2() returns an swfshape() object.

Пред. | Начало | След.
SWFMorph->getshape1 | Уровень выше | SWFMorph


SWFMorph

(PHP 4 >= 4.0.5)

SWFMorph -- Creates a new SWFMorph object

Description

SWFMorph swfmorph ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfmorph() creates a new SWFMorph object.

Also called a "shape tween". This thing lets you make those tacky twisting things that make your computer choke. Oh, joy!

The methods here are sort of weird. It would make more sense to just have newSWFMorph(shape1, shape2);, but as things are now, shape2 needs to know that it's the second part of a morph. (This, because it starts writing its output as soon as it gets drawing commands- if it kept its own description of its shapes and wrote on completion this and some other things would be much easier.)

SWFMorph has the following methods : swfmorph->getshape1() and swfmorph->getshape1().

This simple example will morph a big red square into a smaller blue black-bordered square.

Пример 1. swfmorph() example

<?php
  $p = new SWFMorph();

  $s = $p->getShape1();
  $s->setLine(0, 0, 0, 0);

  /* Note that this is backwards from normal shapes (left instead of right).
     I have no idea why, but this seems to work.. */

  $s->setLeftFill($s->addFill(0xff, 0, 0));
  $s->movePenTo(-1000,-1000);
  $s->drawLine(2000,0);
  $s->drawLine(0,2000);
  $s->drawLine(-2000,0);
  $s->drawLine(0,-2000);

  $s = $p->getShape2();
  $s->setLine(60,0,0,0);
  $s->setLeftFill($s->addFill(0, 0, 0xff));
  $s->movePenTo(0,-1000);
  $s->drawLine(1000,1000);
  $s->drawLine(-1000,1000);
  $s->drawLine(-1000,-1000);
  $s->drawLine(1000,-1000);

  $m = new SWFMovie();
  $m->setDimension(3000,2000);
  $m->setBackground(0xff, 0xff, 0xff);

  $i = $m->add($p);
  $i->moveTo(1500,1000);

  for ($r=0.0; $r<=1.0; $r+=0.1) {
    $i->setRatio($r);
    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Пред. | Начало | След.
SWFMorph->getshape2 | Уровень выше | SWFMovie->add


SWFMovie->add

(no version information, might be only in CVS)

SWFMovie->add -- Adds any type of data to a movie

Description

void swfmovie->add ( resource instance )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfmovie->add() adds instance to the current movie. instance is any type of data : Shapes, text, fonts, etc. must all be added to the movie to make this work.

For displayable types (shape, text, button, sprite), this returns an swfdisplayitem(), a handle to the object in a display list. Thus, you can add the same shape to a movie multiple times and get separate handles back for each separate instance.

See also all other objects (adding this later), and swfmovie->remove()

See examples in : swfdisplayitem->rotateto() and swfshape->addfill().

Пред. | Начало | След.
SWFMorph | Уровень выше | SWFMovie->nextframe


SWFMovie->nextframe

(no version information, might be only in CVS)

SWFMovie->nextframe -- Moves to the next frame of the animation

Description

void swfmovie->nextframe ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfmovie->nextframe() moves to the next frame of the animation.

Пред. | Начало | След.
SWFMovie->add | Уровень выше | SWFMovie->output


SWFMovie->output

(no version information, might be only in CVS)

SWFMovie->output -- Dumps your lovingly prepared movie out

Description

int swfmovie->output ( [int compression] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfmovie->output() dumps your lovingly prepared movie out. In PHP, preceding this with the command
<?php
header('Content-type: application/x-shockwave-flash');
?>
convinces the browser to display this as a flash movie.

The compression level can be a value between 0 and 9, defining the swf compression similar to gzip compression.

See also swfmovie->save().

See examples in :
swfmovie->streammp3(),
swfdisplayitem->rotateto(),
swfaction()...
Any example will use this method.

Пред. | Начало | След.
SWFMovie->nextframe | Уровень выше | swfmovie->remove


swfmovie->remove

(no version information, might be only in CVS)

swfmovie->remove -- Removes the object instance from the display list

Description

void swfmovie->remove ( resource instance )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfmovie->remove() removes the object instance instance from the display list.

See also swfmovie->add().

Пред. | Начало | След.
SWFMovie->output | Уровень выше | SWFMovie->save


SWFMovie->save

(no version information, might be only in CVS)

SWFMovie->save -- Saves your movie in a file

Description

int swfmovie->save ( string filename [, int compression] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfmovie->save() saves your movie to the file named filename.

The compression level can be a value between 0 and 9, defining the swf compression similar to gzip compression.

See also swfmovie->output().

Пред. | Начало | След.
swfmovie->remove | Уровень выше | SWFMovie->setbackground


SWFMovie->setbackground

(no version information, might be only in CVS)

SWFMovie->setbackground -- Sets the background color

Description

void swfmovie->setbackground ( int red, int green, int blue )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfmovie->setbackground() sets the background color. Why is there no rgba version? Think about it. (Actually, that's not such a dumb question after all- you might want to let the HTML background show through. There's a way to do that, but it only works on IE4. Search the http://www.macromedia.com/ site for details.)

Пред. | Начало | След.
SWFMovie->save | Уровень выше | SWFMovie->setdimension


SWFMovie->setdimension

(no version information, might be only in CVS)

SWFMovie->setdimension -- Sets the movie's width and height

Description

void swfmovie->setdimension ( int width, int height )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfmovie->setdimension() sets the movie's width to width and height to height.

Пред. | Начало | След.
SWFMovie->setbackground | Уровень выше | SWFMovie->setframes


SWFMovie->setframes

(no version information, might be only in CVS)

SWFMovie->setframes -- Sets the total number of frames in the animation

Description

void swfmovie->setframes ( string numberofframes )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfmovie->setframes() sets the total number of frames in the animation to numberofframes.

Пред. | Начало | След.
SWFMovie->setdimension | Уровень выше | SWFMovie->setrate


SWFMovie->setrate

(no version information, might be only in CVS)

SWFMovie->setrate -- Sets the animation's frame rate

Description

void swfmovie->setrate ( int rate )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfmovie->setrate() sets the frame rate to rate, in frame per seconds. Animation will slow down if the player can't render frames fast enough- unless there's a streaming sound, in which case display frames are sacrificed to keep sound from skipping.

Пред. | Начало | След.
SWFMovie->setframes | Уровень выше | SWFMovie->streammp3


SWFMovie->streammp3

(no version information, might be only in CVS)

SWFMovie->streammp3 -- Streams a MP3 file

Description

void swfmovie->streammp3 ( mixed mp3File )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfmovie->streammp3() streams the mp3 file mp3File. Not very robust in dealing with oddities (can skip over an initial ID3 tag, but that's about it). Like swfshape->addjpegfill(), this isn't a stable function- we'll probably need to make a separate SWFSound object to contain sound types. Parameter mp3File can be a fopen() resource or a binary string.

Note that the movie isn't smart enough to put enough frames in to contain the entire mp3 stream- you'll have to add (length of song * frames per second) frames to get the entire stream in.

Yes, now you can use ming to put that rock and roll devil worship music into your SWF files. Just don't tell the RIAA.

Пример 1. swfmovie->streammp3() example

<?php
  $m = new SWFMovie();
  $m->setRate(12.0);
  $m->streamMp3(file_get_contents("distortobass.mp3"));
  // use your own MP3

  // 11.85 seconds at 12.0 fps = 142 frames
  $m->setFrames(142);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Пред. | Начало | След.
SWFMovie->setrate | Уровень выше | SWFMovie


SWFMovie

(PHP 4 >= 4.0.5)

SWFMovie -- Creates a new movie object, representing an SWF version 4 movie

Description

SWFMovie swfmovie ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfmovie() creates a new movie object, representing an SWF version 4 movie.

SWFMovie has the following methods :
swfmovie->output(),swfmovie->save(),
swfmovie->add(), swfmovie->remove(),
swfmovie->nextframe(), swfmovie->setbackground(),
swfmovie->setrate(), swfmovie->setdimension(),
swfmovie->setframes() and swfmovie->streammp3().

See examples in : swfdisplayitem->rotateto(), swfshape->setline(), swfshape->addfill()... Any example will use this object.

Пред. | Начало | След.
SWFMovie->streammp3 | Уровень выше | SWFShape->addFill


SWFShape->addFill

(no version information, might be only in CVS)

SWFShape->addFill -- Adds a solid fill to the shape

Description

SWFFill SWFShape->addFill ( int red, int green, int blue [, int a] )

SWFFill SWFShape->addFill ( SWFBitmap bitmap [, int flags] )

SWFFill SWFShape->addFill ( SWFGradient gradient [, int flags] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

SWFShape->addFill() adds a solid fill to the shape's list of fill styles. SWFShape->addFill() accepts three different types of arguments.

red, green, blue is a color (RGB mode). Last parameter a is optional.

The bitmap argument is an SWFBitmap() object. The flags argument can be one of the following values: SWFFILL_CLIPPED_BITMAP, SWFFILL_TILED_BITMAP, SWFFILL_LINEAR_GRADIENT or SWFFILL_RADIAL_GRADIENT. Default is SWFFILL_TILED_BITMAP for SWFBitmap and SWFFILL_LINEAR_GRADIENT for SWFGradient.

The gradient argument is an SWFGradient() object. The flags argument can be one of the following values : SWFFILL_RADIAL_GRADIENT or SWFFILL_LINEAR_GRADIENT. Default is SWFFILL_LINEAR_GRADIENT. I'm sure about this one. Really.

SWFShape->addFill() returns an SWFFill()
object for use with the SWFShape->setLeftFill()
and SWFShape->setRightFill() functions
described below.

This simple example will draw a frame on a bitmap. Ah, here's another buglet in the flash player- it doesn't seem to care about the second shape's bitmap's transformation in a morph. According to spec, the bitmap should stretch along with the shape in this example..

Пример 1. SWFShape->addFill() example

<?php

  $p = new SWFMorph();

  $b = new SWFBitmap(file_get_contents("alphafill.jpg"));
  // use your own bitmap
  $width = $b->getWidth();
  $height = $b->getHeight();

  $s = $p->getShape1();
  $f = $s->addFill($b, SWFFILL_TILED_BITMAP);
  $f->moveTo(-$width/2, -$height/4);
  $f->scaleTo(1.0, 0.5);
  $s->setLeftFill($f);
  $s->movePenTo(-$width/2, -$height/4);
  $s->drawLine($width, 0);
  $s->drawLine(0, $height/2);
  $s->drawLine(-$width, 0);
  $s->drawLine(0, -$height/2);

  $s = $p->getShape2();
  $f = $s->addFill($b, SWFFILL_TILED_BITMAP);

  // these two have no effect!
  $f->moveTo(-$width/4, -$height/2);
  $f->scaleTo(0.5, 1.0);

  $s->setLeftFill($f);
  $s->movePenTo(-$width/4, -$height/2);
  $s->drawLine($width/2, 0);
  $s->drawLine(0, $height);
  $s->drawLine(-$width/2, 0);
  $s->drawLine(0, -$height);

  $m = new SWFMovie();
  $m->setDimension($width, $height);
  $i = $m->add($p);
  $i->moveTo($width/2, $height/2);

  for ($n=0; $n<1.001; $n+=0.03) {
    $i->setRatio($n);
    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

See also SWFShape->setLeftFill() and SWFShape->setRightFill().

Пред. | Начало | След.
SWFMovie | Уровень выше | SWFShape->drawCurve


SWFShape->drawCurve

(no version information, might be only in CVS)

SWFShape->drawCurve -- Draws a curve (relative)

Description

int swfshape->drawcurve ( int controldx, int controldy, int anchordx, int anchordy [, int targetdx, int targetdy] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfshape->drawcurve() draws a quadratic curve (using the current line style,set by swfshape->setline()) from the current pen position to the relative position (anchorx,anchory) using relative control point (controlx,controly). That is, head towards the control point, then smoothly turn to the anchor point.

With 6 parameters, it draws a cubic bezier to point (x+targetdx, x+targetdy) with control points (x+controldx, y+controldy) and (x+anchordx, y+anchordy).

See also
swfshape->drawlineto(),
swfshape->drawline(),
swfshape->movepento() and
swfshape->movepen().

Пред. | Начало | След.
SWFShape->addFill | Уровень выше | SWFShape->drawCurveTo


SWFShape->drawCurveTo

(no version information, might be only in CVS)

SWFShape->drawCurveTo -- Draws a curve

Description

int swfshape->drawcurveto ( int controlx, int controly, int anchorx, int anchory [, int targetx, int targety] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfshape->drawcurveto() draws a quadratic curve (using the current line style, set by swfshape->setline()) from the current pen position to (anchorx,anchory) using (controlx,controly) as a control point. That is, head towards the control point, then smoothly turn to the anchor point.

With 6 parameters, it draws a cubic bezier to point (targetx, targety) with control points (controlx, controly) and (anchorx, anchory).

See also
swfshape->drawlineto(),
swfshape->drawline(),
swfshape->movepento() and
swfshape->movepen().

Пред. | Начало | След.
SWFShape->drawCurve | Уровень выше | SWFShape->drawLine


SWFShape->drawLine

(no version information, might be only in CVS)

SWFShape->drawLine -- Draws a line (relative)

Description

void swfshape->drawline ( int dx, int dy )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfshape->drawline() draws a line (using the current line style set by swfshape->setline()) from the current pen position to displacement (dx,dy).

See also
swfshape->movepento(),
swfshape->drawcurveto(),
swfshape->movepen() and
swfshape->drawlineto().

Пред. | Начало | След.
SWFShape->drawCurveTo | Уровень выше | SWFShape->drawLineTo


SWFShape->drawLineTo

(no version information, might be only in CVS)

SWFShape->drawLineTo -- Draws a line

Description

void swfshape->drawlineto ( int x, int y )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfshape->setrightfill() draws a line (using the current line style, set by swfshape->setline()) from the current pen position to point (x,y) in the shape's coordinate space.

See also
swfshape->movepento(),
swfshape->drawcurveto(),
swfshape->movepen() and
swfshape->drawline().

Пред. | Начало | След.
SWFShape->drawLine | Уровень выше | SWFShape->movePen


SWFShape->movePen

(no version information, might be only in CVS)

SWFShape->movePen -- Moves the shape's pen (relative)

Description

void swfshape->movepen ( int dx, int dy )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfshape->setrightfill() move the shape's pen from coordinates (current x,current y) to (current x + dx, current y + dy) in the shape's coordinate space.

See also
swfshape->movepento(),
swfshape->drawcurveto(),
swfshape->drawlineto() and
swfshape->drawline().

Пред. | Начало | След.
SWFShape->drawLineTo | Уровень выше | SWFShape->movePenTo


SWFShape->movePenTo

(no version information, might be only in CVS)

SWFShape->movePenTo -- Moves the shape's pen

Description

void swfshape->movepento ( int x, int y )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfshape->setrightfill() move the shape's pen to (x,y) in the shape's coordinate space.

See also
swfshape->movepen(),
swfshape->drawcurveto(),
swfshape->drawlineto() and
swfshape->drawline().

Пред. | Начало | След.
SWFShape->movePen | Уровень выше | SWFShape->setLeftFill


SWFShape->setLeftFill

(no version information, might be only in CVS)

SWFShape->setLeftFill -- Sets left rasterizing color

Description

void swfshape->setleftfill ( swfgradient fill )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

void swfshape->setleftfill ( int red, int green, int blue [, int a] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

What this nonsense is about is, every edge segment borders at most two fills. When rasterizing the object, it's pretty handy to know what those fills are ahead of time, so the swf format requires these to be specified.

swfshape->setleftfill() sets the fill on the left side of the edge- that is, on the interior if you're defining the outline of the shape in a counter-clockwise fashion. The fill object is an SWFFill object returned from one of the addFill functions above.

This seems to be reversed when you're defining a shape in a morph, though. If your browser crashes, just try setting the fill on the other side.

Shortcut for swfshape->setleftfill($s->addfill($r, $g, $b [, $a]));.

See also swfshape->setrightfill().

Пред. | Начало | След.
SWFShape->movePenTo | Уровень выше | SWFShape->setLine


SWFShape->setLine

(no version information, might be only in CVS)

SWFShape->setLine -- Sets the shape's line style

Description

void swfshape->setline ( swfshape shape )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

void swfshape->setline ( int width, int red, int green, int blue [, int a] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfshape->setline() sets the shape's line style. width is the line's width. If width is 0, the line's style is removed (then, all other arguments are ignored). If width > 0, then line's color is set to red, green, blue. Last parameter a is optional.

You must declare all line styles before you use them (see example).

This simple example will draw a big "!#%*@", in funny colors and gracious style.

Пример 1. swfshape->setline() example

<?php
  $s = new SWFShape();
  $f1 = $s->addFill(0xff, 0, 0);
  $f2 = $s->addFill(0xff, 0x7f, 0);
  $f3 = $s->addFill(0xff, 0xff, 0);
  $f4 = $s->addFill(0, 0xff, 0);
  $f5 = $s->addFill(0, 0, 0xff);

  // bug: have to declare all line styles before you use them
  $s->setLine(40, 0x7f, 0, 0);
  $s->setLine(40, 0x7f, 0x3f, 0);
  $s->setLine(40, 0x7f, 0x7f, 0);
  $s->setLine(40, 0, 0x7f, 0);
  $s->setLine(40, 0, 0, 0x7f);

  $f = new SWFFont('Techno.fdb');

  $s->setRightFill($f1);
  $s->setLine(40, 0x7f, 0, 0);
  $s->drawGlyph($f, '!');
  $s->movePen($f->getWidth('!'), 0);

  $s->setRightFill($f2);
  $s->setLine(40, 0x7f, 0x3f, 0);
  $s->drawGlyph($f, '#');
  $s->movePen($f->getWidth('#'), 0);

  $s->setRightFill($f3);
  $s->setLine(40, 0x7f, 0x7f, 0);
  $s->drawGlyph($f, '%');
  $s->movePen($f->getWidth('%'), 0);

  $s->setRightFill($f4);
  $s->setLine(40, 0, 0x7f, 0);
  $s->drawGlyph($f, '*');
  $s->movePen($f->getWidth('*'), 0);

  $s->setRightFill($f5);
  $s->setLine(40, 0, 0, 0x7f);
  $s->drawGlyph($f, '@');

  $m = new SWFMovie();
  $m->setDimension(3000,2000);
  $m->setRate(12.0);
  $i = $m->add($s);
  $i->moveTo(1500-$f->getWidth("!#%*@")/2, 1000+$f->getAscent()/2);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Пред. | Начало | След.
SWFShape->setLeftFill | Уровень выше | SWFShape->setRightFill


SWFShape->setRightFill

(no version information, might be only in CVS)

SWFShape->setRightFill -- Sets right rasterizing color

Description

void swfshape->setrightfill ( swfgradient fill )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

void swfshape->setrightfill ( int red, int green, int blue [, int a] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

See also swfshape->setleftfill().

Shortcut for swfshape->setrightfill($s->addfill($r, $g, $b [, $a]));.

Пред. | Начало | След.
SWFShape->setLine | Уровень выше | SWFShape


SWFShape

(PHP 4 >= 4.0.5)

SWFShape -- Creates a new shape object

Description

SWFShape swfshape ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfshape() creates a new shape object.

SWFShape has the following methods : swfshape->setline(),
swfshape->addfill(), swfshape->setleftfill(),
swfshape->setrightfill(), swfshape->movepento(),
swfshape->movepen(), swfshape->drawlineto(),
swfshape->drawline(), swfshape->drawcurveto()
and swfshape->drawcurve().

This simple example will draw a big red elliptic quadrant.

Пример 1. swfshape() example

<?php
  $s = new SWFShape();
  $s->setLine(40, 0x7f, 0, 0);
  $s->setRightFill($s->addFill(0xff, 0, 0));
  $s->movePenTo(200, 200);
  $s->drawLineTo(6200, 200);
  $s->drawLineTo(6200, 4600);
  $s->drawCurveTo(200, 4600, 200, 200);

  $m = new SWFMovie();
  $m->setDimension(6400, 4800);
  $m->setRate(12.0);
  $m->add($s);
  $m->nextFrame();

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Пред. | Начало | След.
SWFShape->setRightFill | Уровень выше | swfsprite->add


swfsprite->add

(no version information, might be only in CVS)

swfsprite->add -- Adds an object to a sprite

Description

void swfsprite->add ( resource object )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfsprite->add() adds a swfshape(), a
swfbutton(), a swftext(),
a swfaction() or a swfsprite() object.

For displayable types (swfshape(),
swfbutton(), swftext(),
swfaction() or swfsprite()),
this returns a handle  to the object in a display list.

Пред. | Начало | След.
SWFShape | Уровень выше | SWFSprite->nextframe


SWFSprite->nextframe

(no version information, might be only in CVS)

SWFSprite->nextframe -- Moves to the next frame of the animation

Description

void swfsprite->nextframe ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfsprite->setframes() moves to the next frame of the animation.

Пред. | Начало | След.
swfsprite->add | Уровень выше | SWFSprite->remove


SWFSprite->remove

(no version information, might be only in CVS)

SWFSprite->remove -- Removes an object to a sprite

Description

void swfsprite->remove ( resource object )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfsprite->remove() remove a swfshape(), a
swfbutton(), a swftext(),
a swfaction() or a swfsprite() object
from the sprite.

Пред. | Начало | След.
SWFSprite->nextframe | Уровень выше | SWFSprite->setframes


SWFSprite->setframes

(no version information, might be only in CVS)

SWFSprite->setframes -- Sets the total number of frames in the animation

Description

void swfsprite->setframes ( int numberofframes )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfsprite->setframes() sets the total number of frames in the animation to numberofframes.

Пред. | Начало | След.
SWFSprite->remove | Уровень выше | SWFSprite


SWFSprite

(PHP 4 >= 4.0.5)

SWFSprite -- Creates a movie clip (a sprite)

Description

SWFSprite swfsprite ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfsprite() are also known as a "movie clip", this allows one to create objects which are animated in their own timelines. Hence, the sprite has most of the same methods as the movie.

swfsprite() has the following methods :
swfsprite->add(),
swfsprite->remove(), swfsprite->nextframe()
and swfsprite->setframes().

This simple example will spin gracefully a big red square.

Пример 1. swfsprite() example

<?php
  $s = new SWFShape();
  $s->setRightFill($s->addFill(0xff, 0, 0));
  $s->movePenTo(-500, -500);
  $s->drawLineTo(500, -500);
  $s->drawLineTo(500, 500);
  $s->drawLineTo(-500, 500);
  $s->drawLineTo(-500, -500);

  $p = new SWFSprite();
  $i = $p->add($s);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();
  $i->rotate(15);
  $p->nextFrame();

  $m = new SWFMovie();
  $i = $m->add($p);
  $i->moveTo(1500, 1000);
  $i->setName("blah");

  $m->setBackground(0xff, 0xff, 0xff);
  $m->setDimension(3000, 2000);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Пред. | Начало | След.
SWFSprite->setframes | Уровень выше | SWFText->addString


SWFText->addString

(no version information, might be only in CVS)

SWFText->addString -- Draws a string

Description

void swftext->addstring ( string string )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftext->addstring() draws the string string at the current pen (cursor) location. Pen is at the baseline of the text; i.e., ascending text is in the -y direction.

Пред. | Начало | След.
SWFSprite | Уровень выше | SWFText->getWidth


SWFText->getWidth

(no version information, might be only in CVS)

SWFText->getWidth -- Computes string's width

Description

float swftext->getwidth ( string string )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftext->addstring() returns the rendered width of the string string at the text object's current font, scale, and spacing settings.

Пред. | Начало | След.
SWFText->addString | Уровень выше | SWFText->moveTo


SWFText->moveTo

(no version information, might be only in CVS)

SWFText->moveTo -- Moves the pen

Description

void swftext->moveto ( int x, int y )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftext->moveto() moves the pen (or cursor, if that makes more sense) to (x,y) in text object's coordinate space. If either is zero, though, value in that dimension stays the same. Annoying, should be fixed.

Пред. | Начало | След.
SWFText->getWidth | Уровень выше | SWFText->setColor


SWFText->setColor

(no version information, might be only in CVS)

SWFText->setColor -- Sets the current font color

Description

void swftext->setcolor ( int red, int green, int blue [, int a] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftext->setspacing() changes the current text color. Default is black. I think. Color is represented using the RGB system.

Пред. | Начало | След.
SWFText->moveTo | Уровень выше | SWFText->setFont


SWFText->setFont

(no version information, might be only in CVS)

SWFText->setFont -- Sets the current font

Description

void swftext->setfont ( string font )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftext->setfont() sets the current font to font.

Пред. | Начало | След.
SWFText->setColor | Уровень выше | SWFText->setHeight


SWFText->setHeight

(no version information, might be only in CVS)

SWFText->setHeight -- Sets the current font height

Description

void swftext->setheight ( int height )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftext->setheight() sets the current font height to height. Default is 240.

Пред. | Начало | След.
SWFText->setFont | Уровень выше | SWFText->setSpacing


SWFText->setSpacing

(no version information, might be only in CVS)

SWFText->setSpacing -- Sets the current font spacing

Description

void swftext->setspacing ( float spacing )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftext->setspacing() sets the current font spacing to spacingspacing. Default is 1.0. 0 is all of the letters written at the same point. This doesn't really work that well because it inflates the advance across the letter, doesn't add the same amount of spacing between the letters. I should try and explain that better, prolly. Or just fix the damn thing to do constant spacing. This was really just a way to figure out how letter advances work, anyway.. So nyah.

Пред. | Начало | След.
SWFText->setHeight | Уровень выше | SWFText


SWFText

(PHP 4 >= 4.0.5)

SWFText -- Creates a new SWFText object

Description

SWFText swftext ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftext() creates a new SWFText object, fresh for manipulating.

SWFText has the following methods : swftext->setfont(),
swftext->setheight(), swftext->setspacing(),
swftext->setcolor(), swftext->moveto(),
swftext->addstring() and swftext->getwidth().

This simple example will draw a big yellow "PHP generates Flash with Ming" text, on white background.

Пример 1. swftext() example

<?php
  $f = new SWFFont("Techno.fdb");
  $t = new SWFText();
  $t->setFont($f);
  $t->moveTo(200, 2400);
  $t->setColor(0xff, 0xff, 0);
  $t->setHeight(1200);
  $t->addString("PHP generates Flash with Ming!!");

  $m = new SWFMovie();
  $m->setDimension(5400, 3600);

  $m->add($t);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Пред. | Начало | След.
SWFText->setSpacing | Уровень выше | SWFTextField->addstring


SWFTextField->addstring

(no version information, might be only in CVS)

SWFTextField->addstring -- Concatenates the given string to the text field

Description

void swftextfield->addstring ( string string )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield->setname() concatenates the string string to the text field.

Пред. | Начало | След.
SWFText | Уровень выше | SWFTextField->align


SWFTextField->align

(no version information, might be only in CVS)

SWFTextField->align -- Sets the text field alignment

Description

void swftextfield->align ( int alignement )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield->align() sets the text field alignment to alignement. Valid values for alignement are : SWFTEXTFIELD_ALIGN_LEFT, SWFTEXTFIELD_ALIGN_RIGHT, SWFTEXTFIELD_ALIGN_CENTER and SWFTEXTFIELD_ALIGN_JUSTIFY.

Пред. | Начало | След.
SWFTextField->addstring | Уровень выше | SWFTextField->setbounds


SWFTextField->setbounds

(no version information, might be only in CVS)

SWFTextField->setbounds -- Sets the text field width and height

Description

void swftextfield->setbounds ( int width, int height )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield->setbounds() sets the text field width to width and height to height. If you don't set the bounds yourself, Ming makes a poor guess at what the bounds are.

Пред. | Начало | След.
SWFTextField->align | Уровень выше | SWFTextField->setcolor


SWFTextField->setcolor

(no version information, might be only in CVS)

SWFTextField->setcolor -- Sets the color of the text field

Description

void swftextfield->setcolor ( int red, int green, int blue [, int a] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield->setcolor() sets the color of the text field. Default is fully opaque black. Color is represented using RGB system.

Пред. | Начало | След.
SWFTextField->setbounds | Уровень выше | SWFTextField->setFont


SWFTextField->setFont

(no version information, might be only in CVS)

SWFTextField->setFont -- Sets the text field font

Description

void swftextfield->setfont ( string font )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield->setfont() sets the text field font to the [browser-defined?] font font.

Пред. | Начало | След.
SWFTextField->setcolor | Уровень выше | SWFTextField->setHeight


SWFTextField->setHeight

(no version information, might be only in CVS)

SWFTextField->setHeight -- Sets the font height of this text field font

Description

void swftextfield->setheight ( int height )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield->setheight() sets the font height of this text field font to the given height height. Default is 240.

Пред. | Начало | След.
SWFTextField->setFont | Уровень выше | SWFTextField->setindentation


SWFTextField->setindentation

(no version information, might be only in CVS)

SWFTextField->setindentation -- Sets the indentation of the first line

Description

void swftextfield->setindentation ( int width )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield->setindentation() sets the indentation of the first line in the text field, to width.

Пред. | Начало | След.
SWFTextField->setHeight | Уровень выше | SWFTextField->setLeftMargin


SWFTextField->setLeftMargin

(no version information, might be only in CVS)

SWFTextField->setLeftMargin -- Sets the left margin width of the text field

Description

void swftextfield->setleftmargin ( int width )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield->setleftmargin() sets the left margin width of the text field to width. Default is 0.

Пред. | Начало | След.
SWFTextField->setindentation | Уровень выше | SWFTextField->setLineSpacing


SWFTextField->setLineSpacing

(no version information, might be only in CVS)

SWFTextField->setLineSpacing -- Sets the line spacing of the text field

Description

void swftextfield->setlinespacing ( int height )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield->setlinespacing() sets the line spacing of the text field to the height of height. Default is 40.

Пред. | Начало | След.
SWFTextField->setLeftMargin | Уровень выше | SWFTextField->setMargins


SWFTextField->setMargins

(no version information, might be only in CVS)

SWFTextField->setMargins -- Sets the margins width of the text field

Description

void swftextfield->setmargins ( int left, int right )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield->setmargins() set both margins at once, for the man on the go.

Пред. | Начало | След.
SWFTextField->setLineSpacing | Уровень выше | SWFTextField->setname


SWFTextField->setname

(no version information, might be only in CVS)

SWFTextField->setname -- Sets the variable name

Description

void swftextfield->setname ( string name )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield->setname() sets the variable name of this text field to name, for form posting and action scripting purposes.

Пред. | Начало | След.
SWFTextField->setMargins | Уровень выше | SWFTextField->setrightMargin


SWFTextField->setrightMargin

(no version information, might be only in CVS)

SWFTextField->setrightMargin -- Sets the right margin width of the text field

Description

void swftextfield->setrightmargin ( int width )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield->setrightmargin() sets the right margin width of the text field to width. Default is 0.

Пред. | Начало | След.
SWFTextField->setname | Уровень выше | SWFTextField


SWFTextField

(PHP 4 >= 4.0.5)

SWFTextField -- Creates a text field object

Description

SWFTextField swftextfield ( [int flags] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield() creates a new text field object. Text Fields are less flexible than swftext() objects- they can't be rotated, scaled non-proportionally, or skewed, but they can be used as form entries, and they can use browser-defined fonts.

The optional flags change the text field's behavior. It has the following possibles values :

  • SWFTEXTFIELD_DRAWBOX draws the outline of the textfield

  • SWFTEXTFIELD_HASLENGTH

  • SWFTEXTFIELD_HTML allows text markup using HTML-tags

  • SWFTEXTFIELD_MULTILINE allows multiple lines

  • SWFTEXTFIELD_NOEDIT indicates that the field shouldn't be user-editable

  • SWFTEXTFIELD_NOSELECT makes the field non-selectable

  • SWFTEXTFIELD_PASSWORD obscures the data entry

  • SWFTEXTFIELD_WORDWRAP allows text to wrap

Flags are combined with the bitwise OR operation. For example,
<?php
$t = newSWFTextField(SWFTEXTFIELD_PASSWORD | SWFTEXTFIELD_NOEDIT);
?>
creates a totally useless non-editable password field.

SWFTextField has the following methods : swftextfield->setfont(),
swftextfield->setbounds(), swftextfield->align(),
swftextfield->setheight(), swftextfield->setleftmargin(),
swftextfield->setrightmargin(), swftextfield->setmargins(),
swftextfield->setindentation(), swftextfield->setlinespacing(),
swftextfield->setcolor(), swftextfield->setname() and
swftextfield->addstring().

Пред. | Начало | След.
SWFTextField->setrightMargin | Уровень выше | Miscellaneous Functions


Miscellaneous Functions

Руководство по PHP
Пред. След.

LXXIX. Miscellaneous Functions

Введение

These functions were placed here because none of the other categories seemed to fit.

Требования

Эти функции всегда доступны.

Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Misc. Configuration Options

Name | Default | Changeable | Changelog
ignore_user_abort | "0" | PHP_INI_ALL |
highlight.string | "#DD0000" | PHP_INI_ALL |
highlight.comment | "#FF8000" | PHP_INI_ALL |
highlight.keyword | "#007700" | PHP_INI_ALL |
highlight.bg | "#FFFFFF" | PHP_INI_ALL |
highlight.default | "#0000BB" | PHP_INI_ALL |
highlight.html | "#000000" | PHP_INI_ALL |
browscap | NULL | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

ignore_user_abort boolean

TRUE by default. If changed to FALSE scripts will be terminated as soon as they try to output something after a client has aborted their connection.

See also ignore_user_abort().

highlight.bg string, highlight.comment string, highlight.default string, highlight.html string, highlight.keyword string, highlight.string string

Colors for Syntax Highlighting mode. Anything that's acceptable in <font color="??????"> would work.

browscap string

Name (e.g.: browscap.ini) and location of browser capabilities file. See also get_browser().

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

CONNECTION_ABORTED (integer)

CONNECTION_NORMAL (integer)

CONNECTION_TIMEOUT (integer)

__COMPILER_HALT_OFFSET__ (integer)

Added in PHP 5.1.

Содержание
connection_aborted -- Returns TRUE if client disconnected
connection_status -- Returns connection status bitfield
connection_timeout -- Return TRUE if script timed out
constant -- Returns the value of a constant
define -- Defines a named constant
defined -- Checks whether a given named constant exists
die -- Equivalent to exit()
eval -- Evaluate a string as PHP code
exit -- Output a message and terminate the current script
get_browser -- Tells what the user's browser is capable of
__halt_compiler -- Halts the compiler execution
highlight_file -- Syntax highlighting of a file
highlight_string -- Syntax highlighting of a string
ignore_user_abort -- Set whether a client disconnect should abort script execution
pack -- Pack data into binary string
php_check_syntax -- Check the PHP syntax of (and execute) the specified file
php_strip_whitespace -- Return source with stripped comments and whitespace
show_source -- Alias of highlight_file()
sleep -- Delay execution
time_nanosleep -- Delay for a number of seconds and nanoseconds
time_sleep_until -- Make the script sleep until the specified time
uniqid -- Generate a unique ID
unpack -- Unpack data from binary string
usleep -- Delay execution in microseconds

Пред. | Начало | След.
SWFTextField | Уровень выше | connection_aborted


connection_aborted

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

connection_aborted -- Returns TRUE if client disconnected

Description

int connection_aborted ( void )

Returns TRUE if client disconnected. See the Connection Handling description in the Features chapter for a complete explanation.

See also connection_status(), and ignore_user_abort().

Пред. | Начало | След.
Miscellaneous Functions | Уровень выше | connection_status


connection_status

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

connection_status -- Returns connection status bitfield

Description

int connection_status ( void )

Returns the connection status bitfield. See the Connection Handling description in the Features chapter for a complete explanation.

See also connection_aborted(), and ignore_user_abort().

Пред. | Начало | След.
connection_aborted | Уровень выше | connection_timeout


connection_timeout

(PHP 3 >= 3.0.7, PHP 4 <= 4.0.4)

connection_timeout -- Return TRUE if script timed out

Description

bool connection_timeout ( void )

Returns TRUE if script timed out.

Deprecated

This function is deprecated, and doesn't even exist anymore as of 4.0.5.

See the Connection Handling description in the Features chapter for a complete explanation.

See also connection_status().

Пред. | Начало | След.
connection_status | Уровень выше | constant


constant

(PHP 4 >= 4.0.4, PHP 5)

constant -- Returns the value of a constant

Description

mixed constant ( string name )

constant() will return the value of the constant indicated by name.

constant() is useful if you need to retrieve the value of a constant, but do not know its name. I.e. it is stored in a variable or returned by a function.

This function works also with class constants.

Пример 1. constant() example

<?php

define("MAXSIZE", 100);

echo MAXSIZE;
echo constant("MAXSIZE"); // same thing as the previous line

?>

See also define(), defined() and the section on Constants.

Пред. | Начало | След.
connection_timeout | Уровень выше | define


define

(PHP 3, PHP 4, PHP 5)

define -- Defines a named constant

Description

bool define ( string name, mixed value [, bool case_insensitive] )

Defines a named constant. See the section on constants for more details.

The name of the constant is given by name; the value is given by value.

The optional third parameter case_insensitive is also available. If the value TRUE is given, then the constant will be defined case-insensitive. The default behaviour is case-sensitive; i.e. CONSTANT and Constant represent different values.

Пример 1. Defining Constants

<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // outputs "Constant" and issues a notice.

define("GREETING", "Hello you.", true);
echo GREETING; // outputs "Hello you."
echo Greeting; // outputs "Hello you."

?>

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also defined(), constant() and the section on Constants.

Пред. | Начало | След.
constant | Уровень выше | defined


defined

(PHP 3, PHP 4, PHP 5)

defined -- Checks whether a given named constant exists

Description

bool defined ( string name )

Returns TRUE if the named constant given by name has been defined, FALSE otherwise.

Пример 1. Checking Constants

<?php
/* Note the use of quotes, this is important.  This example is checking
 * if the string 'CONSTANT' is the name of a constant named CONSTANT */
if (defined('CONSTANT')) {
    echo CONSTANT;
}
?>

Замечание: If you want to see if a variable exists, use isset() as defined() only applies to constants. If you want to see if a function exists, use function_exists().

See also define(),
constant(),
get_defined_constants(),
function_exists(), and the section on
Constants.

Пред. | Начало | След.
define | Уровень выше | die


die

(PHP 3, PHP 4, PHP 5)

die -- Equivalent to exit()

Description

This language construct is equivalent to exit().

Пред. | Начало | След.
defined | Уровень выше | eval


eval

(PHP 3, PHP 4, PHP 5)

eval -- Evaluate a string as PHP code

Description

mixed eval ( string code_str )

eval() evaluates the string given in code_str as PHP code. Among other things, this can be useful for storing code in a database text field for later execution.

There are some factors to keep in mind when using eval(). Remember that the string passed must be valid PHP code, including things like terminating statements with a semicolon so the parser doesn't die on the line after the eval(), and properly escaping things in code_str.

Also remember that variables given values under eval() will retain these values in the main script afterwards.

A return statement will terminate the evaluation of the string immediately. As of PHP 4, eval() returns NULL unless return is called in the evaluated code, in which case the value passed to return is returned. In case of a parse error in the evaluated code, eval() returns FALSE. In case of a fatal error in the evaluated code, the whole script exits. In PHP 3, eval() does not return a value.

Пример 1. eval() example - simple text merge

<?php
$string = 'cup';
$name = 'coffee';
$str = 'This is a $string with my $name in it.';
echo $str. "\n";
eval("\$str = \"$str\";");
echo $str. "\n";
?>

Результат выполнения данного примера:

This is a $string with my $name in it.
This is a cup with my coffee in it.

Подсказка: Как и с любой другой функцией, осуществляющей вывод непосредственно в браузер, вы можете использовать функции контроля вывода, чтобы перехватывать выводимые этой функцией данные и сохранять их, например, в string.

See also call_user_func().

Пред. | Начало | След.
die | Уровень выше | exit


exit

(PHP 3, PHP 4, PHP 5)

exit -- Output a message and terminate the current script

Description

void exit ( [string status] )

void exit ( int status )

Замечание: This is not a real function, but a language construct.

Замечание: PHP >= 4.2.0 does NOT print the status if it is an integer.

The exit() function terminates execution of the script. It prints status just before exiting.

If status is an integer, that value will also be used as the exit status. Exit statuses should be in the range 0 to 254, the exit status 255 is reserved by PHP and shall not be used. The status 0 is used to terminate the program successfully.

Пример 1. exit() example

<?php

$filename = '/path/to/data-file';
$file = fopen($filename, 'r')
    or exit("unable to open file ($filename)");

?>

Пример 2. exit() status example

<?php

//exit program normally
exit;
exit();
exit(0);

//exit with an error code
exit(1);
exit(0376); //octal

?>

Замечание: The die() function is an alias for exit().

See also: register_shutdown_function().

Пред. | Начало | След.
eval | Уровень выше | get_browser


get_browser

(PHP 3, PHP 4, PHP 5)

get_browser -- Tells what the user's browser is capable of

Description

mixed get_browser ( [string user_agent [, bool return_array]] )

get_browser() attempts to determine the capabilities of the user's browser. This is done by looking up the browser's information in the browscap.ini file.

By default, the value of HTTP User-Agent header is used; however, you can alter this (i.e., look up another browser's info) by passing the optional user_agent parameter to get_browser(). You can bypass user_agent parameter with NULL value.

The information is returned in an object, which will contain various data elements representing, for instance, the browser's major and minor version numbers and ID string; TRUE/FALSE values for features such as frames, JavaScript, and cookies; and so forth.

As of PHP 4.3.2, if the optional parameter return_array is TRUE, this function will return an array instead of an object.

Пример 1. Listing all information about the users browser

<?php
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";

$browser = get_browser(null, true);
print_r($browser);
?>

Результатом выполнения данного примера будет что-то подобное:

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3

Array
(
    [browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
    [browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
    [parent] => Firefox 0.9
    [platform] => WinXP
    [browser] => Firefox
    [version] => 0.9
    [majorver] => 0
    [minorver] => 9
    [css] => 2
    [frames] => 1
    [iframes] => 1
    [tables] => 1
    [cookies] => 1
    [backgroundsounds] =>
    [vbscript] =>
    [javascript] => 1
    [javaapplets] => 1
    [activexcontrols] =>
    [cdf] =>
    [aol] =>
    [beta] => 1
    [win16] =>
    [crawler] =>
    [stripper] =>
    [wap] =>
    [netclr] =>
)

The cookies value simply means that the browser itself is capable of accepting cookies and does not mean the user has enabled the browser to accept cookies or not. The only way to test if cookies are accepted is to set one with setcookie(), reload, and check for the value.

Замечание: In order for this to work, your browscap configuration setting in php.ini must point to the correct location of the browscap.ini file on your system.

browscap.ini is not bundled with PHP, but you may find an up-to-date php_browscap.ini file here.

While browscap.ini contains information on many browsers, it relies on user updates to keep the database current. The format of the file is fairly self-explanatory.

Пред. | Начало | След.
exit | Уровень выше | __halt_compiler


highlight_file

(PHP 4, PHP 5)

highlight_file -- Syntax highlighting of a file

Description

mixed highlight_file ( string filename [, bool return] )

The highlight_file() function prints out a syntax highlighted version of the code contained in filename using the colors defined in the built-in syntax highlighter for PHP.

If the second parameter return is set to TRUE then highlight_file() will return the highlighted code as a string instead of printing it out. If the second parameter is not set to TRUE then highlight_file() will return TRUE on success, FALSE on failure.

Замечание: The return parameter became available in PHP 4.2.0. Before this time it behaved like the default, which is FALSE

Замечание: Since PHP 4.2.1 this function is also affected by safe_mode and open_basedir.

Предостережение

Care should be taken when using the highlight_file() function to make sure that you do not inadvertently reveal sensitive information such as passwords or any other type of information that might create a potential security risk.

Many servers are configured to automatically highlight files with a phps extension. For example, example.phps when viewed will show the syntax highlighted source of the file. To enable this, add this line to the httpd.conf:

AddType application/x-httpd-php-source .phps

See also highlight_string().

Пред. | Начало | След.
__halt_compiler | Уровень выше | highlight_string


highlight_string

(PHP 4, PHP 5)

highlight_string -- Syntax highlighting of a string

Description

mixed highlight_string ( string str [, bool return] )

The highlight_string() function outputs a syntax highlighted version of str using the colors defined in the built-in syntax highlighter for PHP.

If the second parameter return is set to TRUE then highlight_string() will return the highlighted code as a string instead of printing it out. If the second parameter is not set to TRUE then highlight_string() will return TRUE on success, FALSE on failure.

Пример 1. highlight_string() example

<?php
highlight_string('<?php phpinfo(); ?>');
?>

The above example will output (in PHP 4):

<code><font color="#000000">
<font color="#0000BB">&lt;?php phpinfo</font><font color="#007700">(); </font><font color="#0000BB">?&gt;</font>
</font>
</code>

The above example will output (in PHP 5):

<code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php phpinfo</span><span style="color: #007700">(); </span><span style="color: #0000BB">?&gt;</span>
</span>
</code>

Замечание: The return parameter became available in PHP 4.2.0. Before this time it behaved like the default, which is FALSE

See also highlight_file().

Пред. | Начало | След.
highlight_file | Уровень выше | ignore_user_abort


ignore_user_abort

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ignore_user_abort -- Set whether a client disconnect should abort script execution

Description

int ignore_user_abort ( [bool setting] )

This function sets whether a client disconnect should cause a script to be aborted. It will return the previous setting and can be called without an argument to not change the current setting and only return the current setting. See the Connection Handling section in the Features chapter for a complete description of connection handling in PHP.

See also connection_aborted(), and connection_status().

Пред. | Начало | След.
highlight_string | Уровень выше | pack


pack

(PHP 3, PHP 4, PHP 5)

pack -- Pack data into binary string

Description

string pack ( string format [, mixed args [, mixed ...]] )

Pack given arguments into binary string according to format. Returns binary string containing data.

The idea to this function was taken from Perl and all formatting codes work the same as there, however, there are some formatting codes that are missing such as Perl's "u" format code. The format string consists of format codes followed by an optional repeater argument. The repeater argument can be either an integer value or * for repeating to the end of the input data. For a, A, h, H the repeat count specifies how many characters of one data argument are taken, for @ it is the absolute position where to put the next data, for everything else the repeat count specifies how many data arguments are consumed and packed into the resulting binary string. Currently implemented are

Таблица 1. pack() format characters

Code | Description
a | NUL-padded string
A | SPACE-padded string
h | Hex string, low nibble first
H | Hex string, high nibble first
c | signed char
C | unsigned char
s | signed short (always 16 bit, machine byte order)
S | unsigned short (always 16 bit, machine byte order)
n | unsigned short (always 16 bit, big endian byte order)
v | unsigned short (always 16 bit, little endian byte order)
i | signed integer (machine dependent size and byte order)
I | unsigned integer (machine dependent size and byte order)
l | signed long (always 32 bit, machine byte order)
L | unsigned long (always 32 bit, machine byte order)
N | unsigned long (always 32 bit, big endian byte order)
V | unsigned long (always 32 bit, little endian byte order)
f | float (machine dependent size and representation)
d | double (machine dependent size and representation)
x | NUL byte
X | Back up one byte
@ | NUL-fill to absolute position

Пример 1. pack() example

<?php
$binarydata = pack("nvc*", 0x1234, 0x5678, 65, 66);
?>

The resulting binary string will be 6 bytes long and contain the byte sequence 0x12, 0x34, 0x78, 0x56, 0x41, 0x42.

Note that the distinction between signed and unsigned values only affects the function unpack(), where as function pack() gives the same result for signed and unsigned format codes.

Also note that PHP internally stores integer values as signed values of a machine dependent size. If you give it an unsigned integer value too large to be stored that way it is converted to a float which often yields an undesired result.

See also unpack().

Пред. | Начало | След.
ignore_user_abort | Уровень выше | php_check_syntax


php_check_syntax

(PHP 5 <= 5.0.4)

php_check_syntax -- Check the PHP syntax of (and execute) the specified file

Описание

bool php_check_syntax ( string file_name [, string &error_message] )

For technical reasons, this function is deprecated and removed from PHP. Instead, use php -l somefile.php from the commandline.

The php_check_syntax() function performs a syntax (lint) check on the specified filename testing for scripting errors. This is similar to using php -l from the commandline except php_check_syntax() will execute (but not output) the checked file_name. For example, if a function is defined in file_name, this defined function will be available to the file that executed php_check_syntax(), but output from file_name will be suppressed.

Список параметров

file_name

The name of the file being checked.

error_message

If the error_message parameter is used, it will contain the error message generated by the syntax check. error_message is passed by reference.

Возвращаемые значения

Returns TRUE if the lint check passed, and FALSE if the link check failed or if file_name cannot be opened.

Список изменений

Версия | Описание
5.0.5 | This function was removed from PHP.
5.0.3 | Calling exit() after php_check_syntax() resulted in a Segfault.
5.0.1 | error_message is passed by reference.

Примеры

php -l somefile.php

Результатом выполнения данного примера будет что-то подобное:

PHP Parse error: unexpected T_STRING in /tmp/somefile.php on line 81

Смотрите также

include()
is_readable()

Пред. | Начало | След.
pack | Уровень выше | php_strip_whitespace


php_strip_whitespace

(PHP 5)

php_strip_whitespace -- Return source with stripped comments and whitespace

Описание

string php_strip_whitespace ( string filename )

Returns the PHP source code in filename with PHP comments and whitespace removed. This may be useful for determining the amount of actual code in your scripts compared with the amount of comments. This is similar to using php -w from the commandline.

Замечание: This function works as described as of PHP 5.0.1. Before this it would only return an empty string. For more information on this bug and its prior behavior, see bug report #29606.

Возвращаемые значения

The stripped source code will be returned on success, or an empty string on failure.

Примеры

Пример 1. php_strip_whitespace() example

<?php
// PHP comment here

/*
 * Another PHP comment
 */

echo        php_strip_whitespace(__FILE__);
// Newlines are considered whitespace, and are removed too:
do_nothing();
?>

Результат выполнения данного примера:

<?php
 echo php_strip_whitespace(__FILE__); do_nothing(); ?>

Notice the PHP comments are gone, as are the whitespace and newline after the first echo statement.

Пред. | Начало | След.
php_check_syntax | Уровень выше | show_source


show_source

(PHP 4, PHP 5)

show_source -- Alias of highlight_file()

Описание

This function is an alias of: highlight_file().

Пред. | Начало | След.
php_strip_whitespace | Уровень выше | sleep


sleep

(PHP 3, PHP 4, PHP 5)

sleep -- Delay execution

Description

int sleep ( int seconds )

The sleep() function delays program execution for the given number of seconds.

Пример 1. sleep() example

<?php

// current time
echo date('h:i:s') . "\n";

// sleep for 10 seconds
sleep(10);

// wake up !
echo date('h:i:s') . "\n";

?>

This example will output (after 10 seconds)

05:31:23
05:31:33

See also usleep() and set_time_limit()

Пред. | Начало | След.
show_source | Уровень выше | time_nanosleep


time_nanosleep

(PHP 5)

time_nanosleep -- Delay for a number of seconds and nanoseconds

Описание

mixed time_nanosleep ( int seconds, int nanoseconds )

Delays program execution for the given number of seconds and nanoseconds.

seconds must be a positive integer, and nanoseconds must be a positive integer less than 1 billion.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

If the delay was interrupted by a signal, an associative array will be returned with the components:

  • seconds - number of seconds remaining in the delay

  • nanoseconds - number of nanoseconds remaining in the delay

Смотрите также

sleep(),
usleep(),
set_time_limit()

Примеры

Пример 1. time_nanosleep() example

<?php
// Careful! This won't work as expected if an array is returned
if (time_nanosleep(0, 500000000)) {
    echo "Slept for half a second.\n";
}

// This is better:
if (time_nanosleep(0, 500000000) === true) {
    echo "Slept for half a second.\n";
}

// And this is the best:
$nano = time_nanosleep(2, 100000);

if ($nano === true) {
    echo "Slept for 2 seconds, 100 milliseconds.\n";
} elseif ($nano === false) {
    echo "Sleeping failed.\n";
} elseif (is_array($nano)) {
    $seconds = $nano['seconds'];
    $nanoseconds = $nano['nanoseconds'];
    echo "Interrupted by a signal.\n";
    echo "Time remaining: $seconds seconds, $nanoseconds nanoseconds.";
}
?>

Замечание: Для Windows-платформ эта функция не реализована.

Пред. | Начало | След.
sleep | Уровень выше | time_sleep_until


uniqid

(PHP 3, PHP 4, PHP 5)

uniqid -- Generate a unique ID

Description

string uniqid ( [string prefix [, bool more_entropy]] )

uniqid() returns a prefixed unique identifier based on the current time in microseconds. prefix is optional but can be useful, for instance, if you generate identifiers simultaneously on several hosts that might happen to generate the identifier at the same microsecond. Up until PHP 4.3.1, prefix could only be a maximum of 114 characters long.

If the optional more_entropy parameter is TRUE, uniqid() will add additional entropy (using the combined linear congruential generator) at the end of the return value, which should make the results more unique.

With an empty prefix, the returned string will be 13 characters long. If more_entropy is TRUE, it will be 23 characters.

Замечание: The prefix parameter became optional in PHP 5.

If you need a unique identifier or token and you intend to give out that token to the user via the network (i.e. session cookies), it is recommended that you use something along these lines:

<?php
// no prefix
$token = md5(uniqid());

// better, difficult to guess
$better_token = md5(uniqid(rand(), true));
?>

This will create a 32 character identifier (a 128 bit hex number) that is extremely difficult to predict.

Пред. | Начало | След.
time_sleep_until | Уровень выше | unpack


unpack

(PHP 3, PHP 4, PHP 5)

unpack -- Unpack data from binary string

Description

array unpack ( string format, string data )

unpack() from binary string into array according to format. Returns array containing unpacked elements of binary string.

unpack() works slightly different from Perl as the unpacked data is stored in an associative array. To accomplish this you have to name the different format codes and separate them by a slash /.

Пример 1. unpack() example

<?php
$array = unpack("c2chars/nint", $binarydata);
?>

The resulting array will contain the entries "chars1", "chars2" and "int".

Предостережение

Note that PHP internally stores integral values as signed. If you unpack a large unsigned long and it is of the same size as PHP internally stored values the result will be a negative number even though unsigned unpacking was specified.

See also pack() for an explanation of the format codes.

Пред. | Начало | След.
uniqid | Уровень выше | usleep


usleep

(PHP 3, PHP 4, PHP 5)

usleep -- Delay execution in microseconds

Description

void usleep ( int micro_seconds )

The usleep() function delays program execution for the given number of micro_seconds. A microsecond is one millionth of a second.

Пример 1. usleep() example

<?php

// Current time
echo date('h:i:s') . "\n";

// wait for 2 secondes
usleep(2000000);

// back!
echo date('h:i:s') . "\n";

?>

This script will output :

11:13:28
11:13:30

Замечание: This function did not work on Windows systems until PHP 5.0.0

See also sleep() and set_time_limit().

Пред. | Начало | След.
unpack | Уровень выше | mnoGoSearch Functions


mnoGoSearch Functions

Руководство по PHP
Пред. След.

LXXX. mnoGoSearch Functions

Введение

These functions allow you to access the mnoGoSearch (former UdmSearch) free search engine. mnoGoSearch is a full-featured search engine software for intranet and internet servers, distributed under the GNU license. mnoGoSearch has a number of unique features, which makes it appropriate for a wide range of applications from search within your site to a specialized search system such as cooking recipes or newspaper search, FTP archive search, news articles search, etc. It offers full-text indexing and searching for HTML, PDF, and text documents. mnoGoSearch consists of two parts. The first is an indexing mechanism (indexer). The purpose of the indexer is to walk through HTTP, FTP, NEWS servers or local files, recursively grabbing all the documents and storing meta-data about that documents in a SQL database in a smart and effective manner. After every document is referenced by its corresponding URL, meta-data is collected by the indexer for later use in a search process. The search is performed via Web interface. C, CGI, PHP and Perl search front ends are included.

More information about mnoGoSearch can be found at http://www.mnogosearch.org/.

Замечание: This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 5.1.0.

Замечание: Для Windows-платформ это расширение недоступно.

Требования

Download mnoGosearch from http://www.mnogosearch.org/ and install it on your system. You need at least version 3.1.10 of mnoGoSearch installed to use these functions.

Установка

In order to have these functions available, you must compile PHP with mnoGosearch support by using the --with-mnogosearchoption. If you use this option without specifying the path to mnoGosearch, PHP will look for mnoGosearch under /usr/local/mnogosearch path by default. If you installed mnoGosearch at a different location you should specify it: --with-mnogosearch=DIR.

Замечание: PHP contains built-in MySQL access library, which can be used to access MySQL. It is known that mnoGoSearch is not compatible with this built-in library and can work only with generic MySQL libraries. Thus, if you use mnoGoSearch with MySQL, during PHP configuration you have to indicate the directory of your MySQL installation, that was used during mnoGoSearch configuration, i.e. for example: --with-mnogosearch --with-mysql=/usr.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

UDM_FIELD_URLID (integer)

UDM_FIELD_URL (integer)

UDM_FIELD_CONTENT (integer)

UDM_FIELD_TITLE (integer)

UDM_FIELD_KEYWORDS (integer)

UDM_FIELD_DESC (integer)

UDM_FIELD_DESCRIPTION (integer)

UDM_FIELD_TEXT (integer)

UDM_FIELD_SIZE (integer)

UDM_FIELD_RATING (integer)

UDM_FIELD_SCORE (integer)

UDM_FIELD_MODIFIED (integer)

UDM_FIELD_ORDER (integer)

UDM_FIELD_CRC (integer)

UDM_FIELD_CATEGORY (integer)

UDM_FIELD_LANG (integer)

UDM_FIELD_CHARSET (integer)

UDM_PARAM_PAGE_SIZE (integer)

UDM_PARAM_PAGE_NUM (integer)

UDM_PARAM_SEARCH_MODE (integer)

UDM_PARAM_CACHE_MODE (integer)

UDM_PARAM_TRACK_MODE (integer)

UDM_PARAM_PHRASE_MODE (integer)

UDM_PARAM_CHARSET (integer)

UDM_PARAM_LOCAL_CHARSET (integer)

UDM_PARAM_BROWSER_CHARSET (integer)

UDM_PARAM_STOPTABLE (integer)

UDM_PARAM_STOP_TABLE (integer)

UDM_PARAM_STOPFILE (integer)

UDM_PARAM_STOP_FILE (integer)

UDM_PARAM_WEIGHT_FACTOR (integer)

UDM_PARAM_WORD_MATCH (integer)

UDM_PARAM_MAX_WORD_LEN (integer)

UDM_PARAM_MAX_WORDLEN (integer)

UDM_PARAM_MIN_WORD_LEN (integer)

UDM_PARAM_MIN_WORDLEN (integer)

UDM_PARAM_ISPELL_PREFIXES (integer)

UDM_PARAM_ISPELL_PREFIX (integer)

UDM_PARAM_PREFIXES (integer)

UDM_PARAM_PREFIX (integer)

UDM_PARAM_CROSS_WORDS (integer)

UDM_PARAM_CROSSWORDS (integer)

UDM_PARAM_VARDIR (integer)

UDM_PARAM_DATADIR (integer)

UDM_PARAM_HLBEG (integer)

UDM_PARAM_HLEND (integer)

UDM_PARAM_SYNONYM (integer)

UDM_PARAM_SEARCHD (integer)

UDM_PARAM_QSTRING (integer)

UDM_PARAM_REMOTE_ADDR (integer)

UDM_LIMIT_CAT (integer)

UDM_LIMIT_URL (integer)

UDM_LIMIT_TAG (integer)

UDM_LIMIT_LANG (integer)

UDM_LIMIT_DATE (integer)

UDM_PARAM_FOUND (integer)

UDM_PARAM_NUM_ROWS (integer)

UDM_PARAM_WORDINFO (integer)

UDM_PARAM_WORD_INFO (integer)

UDM_PARAM_SEARCHTIME (integer)

UDM_PARAM_SEARCH_TIME (integer)

UDM_PARAM_FIRST_DOC (integer)

UDM_PARAM_LAST_DOC (integer)

UDM_MODE_ALL (integer)

UDM_MODE_ANY (integer)

UDM_MODE_BOOL (integer)

UDM_MODE_PHRASE (integer)

UDM_CACHE_ENABLED (integer)

UDM_CACHE_DISABLED (integer)

UDM_TRACK_ENABLED (integer)

UDM_TRACK_DISABLED (integer)

UDM_PHRASE_ENABLED (integer)

UDM_PHRASE_DISABLED (integer)

UDM_CROSS_WORDS_ENABLED (integer)

UDM_CROSSWORDS_ENABLED (integer)

UDM_CROSS_WORDS_DISABLED (integer)

UDM_CROSSWORDS_DISABLED (integer)

UDM_PREFIXES_ENABLED (integer)

UDM_PREFIX_ENABLED (integer)

UDM_ISPELL_PREFIXES_ENABLED (integer)

UDM_ISPELL_PREFIX_ENABLED (integer)

UDM_PREFIXES_DISABLED (integer)

UDM_PREFIX_DISABLED (integer)

UDM_ISPELL_PREFIXES_DISABLED (integer)

UDM_ISPELL_PREFIX_DISABLED (integer)

UDM_ISPELL_TYPE_AFFIX (integer)

UDM_ISPELL_TYPE_SPELL (integer)

UDM_ISPELL_TYPE_DB (integer)

UDM_ISPELL_TYPE_SERVER (integer)

UDM_MATCH_WORD (integer)

UDM_MATCH_BEGIN (integer)

UDM_MATCH_SUBSTR (integer)

UDM_MATCH_END (integer)

Содержание
udm_add_search_limit -- Add various search limits
udm_alloc_agent_array -- Allocate mnoGoSearch session
udm_alloc_agent -- Allocate mnoGoSearch session
udm_api_version -- Get mnoGoSearch API version
udm_cat_list -- Get all the categories on the same level with the current one
udm_cat_path -- Get the path to the current category
udm_check_charset -- Check if the given charset is known to mnogosearch
udm_check_stored -- Check connection to stored
udm_clear_search_limits -- Clear all mnoGoSearch search restrictions
udm_close_stored -- Close connection to stored
udm_crc32 -- Return CRC32 checksum of given string
udm_errno -- Get mnoGoSearch error number
udm_error -- Get mnoGoSearch error message
udm_find -- Perform search
udm_free_agent -- Free mnoGoSearch session
udm_free_ispell_data -- Free memory allocated for ispell data
udm_free_res -- Free mnoGoSearch result
udm_get_doc_count -- Get total number of documents in database
udm_get_res_field -- Fetch mnoGoSearch result field
udm_get_res_param -- Get mnoGoSearch result parameters
udm_hash32 -- Return Hash32 checksum of gived string
udm_load_ispell_data -- Load ispell data
udm_open_stored -- Open connection to stored
udm_set_agent_param -- Set mnoGoSearch agent session parameters

Пред. | Начало | След.
usleep | Уровень выше | udm_add_search_limit


udm_add_search_limit

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_add_search_limit -- Add various search limits

Description

bool udm_add_search_limit ( resource agent, int var, string val )

udm_add_search_limit() adds search restrictions. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

agent - a link to Agent, received after call to udm_alloc_agent().

var - defines parameter, indicating limit.

val - defines the value of the current parameter.

Possible var values:

  • UDM_LIMIT_URL - defines document URL limitations to limit the search through subsection of the database. It supports SQL % and _ LIKE wildcards, where % matches any number of characters, even zero characters, and _ matches exactly one character. E.g. http://www.example.___/catalog may stand for http://www.example.com/catalog and http://www.example.net/catalog.

  • UDM_LIMIT_TAG - defines site TAG limitations. In indexer-conf you can assign specific TAGs to various sites and parts of a site. Tags in mnoGoSearch 3.1.x are lines, that may contain metasymbols % and _. Metasymbols allow searching among groups of tags. E.g. there are links with tags ABCD and ABCE, and search restriction is by ABC_ - the search will be made among both of the tags.

  • UDM_LIMIT_LANG - defines document language limitations.

  • UDM_LIMIT_CAT - defines document category limitations. Categories are similar to tag feature, but nested. So you can have one category inside another and so on. You have to use two characters for each level. Use a hex number going from 0-F or a 36 base number going from 0-Z. Therefore a top-level category like 'Auto' would be 01. If it has a subcategory like 'Ford', then it would be 01 (the parent category) and then 'Ford' which we will give 01. Put those together and you get 0101. If 'Auto' had another subcategory named 'VW', then it's id would be 01 because it belongs to the 'Ford' category and then 02 because it's the next category. So it's id would be 0102. If VW had a sub category called 'Engine' then it's id would start at 01 again and it would get the 'VW' id 02 and 'Auto' id of 01, making it 010201. If you want to search for sites under that category then you pass it cat=010201 in the URL.

  • UDM_LIMIT_DATE - defines limitation by date the document was modified.

    Format of parameter value: a string with first character < or >, then with no space - date in unixtime format, for example:

    Пример 1.

    <?php
          Udm_Add_Search_Limit    ($udm, UDM_LIMIT_DATE, "&lt;908012006");
    ?>

    If > character is used, then the search will be restricted to those documents having a modification date greater than entered, if <, then smaller.

Пред. | Начало | След.
mnoGoSearch Functions | Уровень выше | udm_alloc_agent_array


udm_alloc_agent_array

(PHP 4 >= 4.3.3, PHP 5 <= 5.0.4)

udm_alloc_agent_array -- Allocate mnoGoSearch session

Description

resource udm_alloc_agent_array ( array databases )

udm_alloc_agent_array() will create an agent with multiple database connections. The array databases must contain one database URL per element, analog to the first parameter of udm_alloc_agent().

See also: udm_alloc_agent().

Пред. | Начало | След.
udm_add_search_limit | Уровень выше | udm_alloc_agent


udm_alloc_agent

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_alloc_agent -- Allocate mnoGoSearch session

Description

resource udm_alloc_agent ( string dbaddr [, string dbmode] )

Returns a mnogosearch agent identifier on success, FALSE on failure. This function creates a session with database parameters.

dbaddr - URL-style database description, with options (type, host, database name, port, user and password) to connect to SQL database. Do not matter for built-in text files support. Format for dbaddr: DBType:[//[DBUser[:DBPass]@]DBHost[:DBPort]]/DBName/. Currently supported DBType values are: mysql, pgsql, msql, solid, mssql, oracle, and ibase. Actually, it does not matter for native libraries support, but ODBC users should specify one of the supported values. If your database type is not supported, you may use unknown instead.

dbmode - You may select the SQL database mode of words storage. Possible values of dbmode are: single, multi, crc, or crc-multi. When single is specified, all words are stored in the same table. If multi is selected, words will be located in different tables depending of their lengths. "multi" mode is usually faster, but requires more tables in the database. If "crc" mode is selected, mnoGoSearch will store 32 bit integer word IDs calculated by CRC32 algorithm instead of words. This mode requires less disk space and it is faster comparing with "single" and "multi" modes. crc-multi uses the same storage structure with the "crc" mode, but also stores words in different tables depending on words lengths like in "multi" mode.

Замечание: dbaddr and dbmode must match those used during indexing.

Замечание: In fact this function does not open a connection to the database and thus does not check the entered login and password. Establishing a connection to the database and login/password verification is done by udm_find().

Пред. | Начало | След.
udm_alloc_agent_array | Уровень выше | udm_api_version


udm_api_version

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_api_version -- Get mnoGoSearch API version

Description

int udm_api_version ( void )

udm_api_version() returns the mnoGoSearch API version number. E.g. if mnoGoSearch 3.1.10 API is used, this function will return 30110.

This function allows the user to identify which API functions are available, e.g. udm_get_doc_count() function is only available in mnoGoSearch 3.1.11 or later.

Пример 1. udm_api_version() example

<?php
if (udm_api_version() >= 30111) {
    echo  "Total number of URLs in database: " . udm_get_doc_count($udm) . "<br />\n";
}
?>

Пред. | Начало | След.
udm_alloc_agent | Уровень выше | udm_cat_list


udm_cat_list

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

udm_cat_list -- Get all the categories on the same level with the current one

Description

array udm_cat_list ( resource agent, string category )

Returns an array listing all categories of the same level as the current category in the categories tree. agent is the agent identifier returned by a previous call to >udm_alloc_agent().

The function can be useful for developing categories tree browser.

The returned array consists of pairs. Elements with even index numbers contain the category paths, odd elements contain the corresponding category names.

$array[0] will contain '020300'
  $array[1] will contain 'Audi'
  $array[2] will contain '020301'
  $array[3] will contain 'BMW'
  $array[4] will contain '020302'
  $array[5] will contain 'Opel'
  ...
 etc.

Following is an example of displaying links of the current level in format:
Audi
  BMW
  Opel
  ...

Пример 1. udm_cat_list()example

<?php
 $cat_list_arr = udm_cat_list($udm_agent, $cat);
 $cat_list = '';
 for ($i=0; $i<count($cat_list_arr); $i+=2) {
    $path = $cat_list_arr[$i];
    $name = $cat_list_arr[$i+1];
    $cat_list .= "<a href=\"$_SERVER[PHP_SELF]?cat=$path\">$name</a><br />";
 }
?>

See also udm_cat_path().

Пред. | Начало | След.
udm_api_version | Уровень выше | udm_cat_path


udm_cat_path

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

udm_cat_path -- Get the path to the current category

Description

array udm_cat_path ( resource agent, string category )

Returns an array describing the path in the categories tree from the tree root to the current one, specified by category. agent is the agent identifier returned by a previous call to >udm_alloc_agent().

The returned array consists of pairs. Elements with even index numbers contain the category paths, odd elements contain the corresponding category names.

For example, the call $array=udm_cat_path($agent, '02031D'); may return the following array:
$array[0] will contain ''
 $array[1] will contain 'Root'
 $array[2] will contain '02'
 $array[3] will contain 'Sport'
 $array[4] will contain '0203'
 $array[5] will contain 'Auto'
 $array[4] will contain '02031D'
 $array[5] will contain 'Ferrari'

Пример 1. Specifying path to the current category in the following format: '> Root > Sport > Auto > Ferrari'

<?php
  $cat_path_arr = udm_cat_path($udm_agent, $cat);
  $cat_path = '';
  for ($i=0; $i<count($cat_path_arr); $i+=2) {
    $path = $cat_path_arr[$i];
    $name = $cat_path_arr[$i+1];
    $cat_path .= " > <a href=\"$_SERVER[PHP_SELF]?cat=$path\">$name</a> ";
  }
?>

See also udm_cat_list().

Пред. | Начало | След.
udm_cat_list | Уровень выше | udm_check_charset


udm_check_charset

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.4)

udm_check_charset -- Check if the given charset is known to mnogosearch

Description

bool udm_check_charset ( resource agent, string charset )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
udm_cat_path | Уровень выше | udm_check_stored


udm_check_stored

(PHP 4 >= 4.2.0)

udm_check_stored -- Check connection to stored

Description

int udm_check_stored ( resource agent, int link, string doc_id )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
udm_check_charset | Уровень выше | udm_clear_search_limits


udm_clear_search_limits

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_clear_search_limits -- Clear all mnoGoSearch search restrictions

Description

bool udm_clear_search_limits ( resource agent )

udm_clear_search_limits() resets defined search limitations and returns TRUE.

See also udm_add_search_limit().

Пред. | Начало | След.
udm_check_stored | Уровень выше | udm_close_stored


udm_close_stored

(PHP 4 >= 4.2.0)

udm_close_stored -- Close connection to stored

Description

int udm_close_stored ( resource agent, int link )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
udm_clear_search_limits | Уровень выше | udm_crc32


udm_crc32

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.4)

udm_crc32 -- Return CRC32 checksum of given string

Description

int udm_crc32 ( resource agent, string str )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
udm_close_stored | Уровень выше | udm_errno


udm_errno

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_errno -- Get mnoGoSearch error number

Description

int udm_errno ( resource agent )

udm_errno() returns mnoGoSearch error number, zero if no error.

agent - link to agent identifier, received after call to udm_alloc_agent().

Receiving numeric agent error code.

Пред. | Начало | След.
udm_crc32 | Уровень выше | udm_error


udm_error

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_error -- Get mnoGoSearch error message

Description

string udm_error ( resource agent )

udm_error() returns mnoGoSearch error message, empty string if no error.

agent - link to agent identifier, received after call to udm_alloc_agent().

Receiving agent error message.

Пред. | Начало | След.
udm_errno | Уровень выше | udm_find


udm_find

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_find -- Perform search

Description

resource udm_find ( resource agent, string query )

Returns a result link identifier on success, or FALSE on failure.

The search itself. The first argument - session, the next one - query itself. To find something just type words you want to find and press SUBMIT button. For example, "mysql odbc". You should not use quotes " in query, they are written here only to divide a query from other text. mnoGoSearch will find all documents that contain word "mysql" and/or word "odbc". Best documents having bigger weights will be displayed first. If you use search mode ALL, search will return documents that contain both (or more) words you entered. In case you use mode ANY, the search will return list of documents that contain any of the words you entered. If you want more advanced results you may use query language. You should select "bool" match mode in the search from.

mnoGoSearch understands the following boolean operators:

& - logical AND. For example, "mysql & odbc". mnoGoSearch will find any URLs that contain both "mysql" and "odbc".

| - logical OR. For example "mysql|odbc". mnoGoSearch will find any URLs, that contain word "mysql" or word "odbc".

~ - logical NOT. For example "mysql & ~odbc". mnoGoSearch will find URLs that contain word "mysql" and do not contain word "odbc" at the same time. Note that ~ just excludes given word from results. Query "~odbc" will find nothing!

() - group command to compose more complex queries. For example "(mysql | msql) & ~postgres". Query language is simple and powerful at the same time. Just consider query as usual boolean expression.

Пред. | Начало | След.
udm_error | Уровень выше | udm_free_agent


udm_free_agent

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_free_agent -- Free mnoGoSearch session

Description

int udm_free_agent ( resource agent )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

agent - link to agent identifier, received ` after call to udm_alloc_agent().

Freeing up memory allocated for agent session.

Пред. | Начало | След.
udm_find | Уровень выше | udm_free_ispell_data


udm_free_ispell_data

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_free_ispell_data -- Free memory allocated for ispell data

Description

bool udm_free_ispell_data ( int agent )

udm_free_ispell_data() always returns TRUE.

agent - agent link identifier, received after call to udm_alloc_agent().

Замечание: This function is supported beginning from version 3.1.12 of mnoGoSearch and it does not do anything in previous versions.

Пред. | Начало | След.
udm_free_agent | Уровень выше | udm_free_res


udm_free_res

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_free_res -- Free mnoGoSearch result

Description

bool udm_free_res ( resource res )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

res - a link to result identifier, received after call to udm_find().

Freeing up memory allocated for results.

Пред. | Начало | След.
udm_free_ispell_data | Уровень выше | udm_get_doc_count


udm_get_doc_count

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_get_doc_count -- Get total number of documents in database

Description

int udm_get_doc_count ( resource agent )

udm_get_doc_count() returns the number of documents in the database.

agent - link to agent identifier, received after call to udm_alloc_agent().

Замечание: This function is supported only in mnoGoSearch 3.1.11 or later.

Пред. | Начало | След.
udm_free_res | Уровень выше | udm_get_res_field


udm_get_res_field

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_get_res_field -- Fetch mnoGoSearch result field

Description

string udm_get_res_field ( resource res, int row, int field )

udm_get_res_field() returns result field value on success, FALSE on error.

res - a link to result identifier, received after call to udm_find().

row - the number of the link on the current page. May have values from 0 to UDM_PARAM_NUM_ROWS-1.

field - field identifier, may have the following values:

  • UDM_FIELD_URL - document URL field

  • UDM_FIELD_CONTENT - document Content-type field (for example, text/html).

  • UDM_FIELD_CATEGORY - document category field. Use udm_cat_path() to get full path to current category from the categories tree root. (This parameter is available only in PHP 4.0.6 or later).

  • UDM_FIELD_TITLE - document title field.

  • UDM_FIELD_KEYWORDS - document keywords field (from META KEYWORDS tag).

  • UDM_FIELD_DESC - document description field (from META DESCRIPTION tag).

  • UDM_FIELD_TEXT - document body text (the first couple of lines to give an idea of what the document is about).

  • UDM_FIELD_SIZE - document size.

  • UDM_FIELD_URLID - unique URL ID of the link.

  • UDM_FIELD_RATING - page rating (as calculated by mnoGoSearch).

  • UDM_FIELD_MODIFIED - last-modified field in unixtime format.

  • UDM_FIELD_ORDER - the number of the current document in set of found documents.

  • UDM_FIELD_CRC - document CRC.

Пред. | Начало | След.
udm_get_doc_count | Уровень выше | udm_get_res_param


udm_get_res_param

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_get_res_param -- Get mnoGoSearch result parameters

Description

string udm_get_res_param ( resource res, int param )

udm_get_res_param() returns result parameter value on success, FALSE on error.

res - a link to result identifier, received after call to udm_find().

param - parameter identifier, may have the following values:

  • UDM_PARAM_NUM_ROWS - number of received found links on the current page. It is equal to UDM_PARAM_PAGE_SIZE for all search pages, on the last page - the rest of links.

  • UDM_PARAM_FOUND - total number of results matching the query.

  • UDM_PARAM_WORDINFO - information on the words found. E.g. search for "a good book" will return "a: stopword, good:5637, book: 120"

  • UDM_PARAM_SEARCHTIME - search time in seconds.

  • UDM_PARAM_FIRST_DOC - the number of the first document displayed on current page.

  • UDM_PARAM_LAST_DOC - the number of the last document displayed on current page.

Пред. | Начало | След.
udm_get_res_field | Уровень выше | udm_hash32


udm_hash32

(PHP 4 >= 4.3.3, PHP 5 <= 5.0.4)

udm_hash32 -- Return Hash32 checksum of gived string

Description

int udm_hash32 ( resource agent, string str )

udm_hash32() will take a string str and return a quite unique 32-bit hash number from it. Requires an allocated agent.

See also: udm_alloc_agent().

Пред. | Начало | След.
udm_get_res_param | Уровень выше | udm_load_ispell_data


udm_load_ispell_data

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_load_ispell_data -- Load ispell data

Description

bool udm_load_ispell_data ( resource agent, int var, string val1, string val2, int flag )

udm_load_ispell_data() loads ispell data. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

agent - agent link identifier, received after call to udm_alloc_agent().

var - parameter, indicating the source for ispell data. May have the following values:

After using this function to free memory allocated for ispell data, please use udm_free_ispell_data(), even if you use UDM_ISPELL_TYPE_SERVER mode.

The fastest mode is UDM_ISPELL_TYPE_SERVER. UDM_ISPELL_TYPE_TEXT is slower and UDM_ISPELL_TYPE_DB is the slowest. The above pattern is TRUE for mnoGoSearch 3.1.10 - 3.1.11. It is planned to speed up DB mode in future versions and it is going to be faster than TEXT mode.

  • UDM_ISPELL_TYPE_DB - indicates that ispell data should be loaded from SQL. In this case, parameters val1 and val2 are ignored and should be left blank. flag should be equal to 1.

    Замечание: flag indicates that after loading ispell data from defined source it should be sorted (it is necessary for correct functioning of ispell). In case of loading ispell data from files there may be several calls to udm_load_ispell_data(), and there is no sense to sort data after every call, but only after the last one. Since in db mode all the data is loaded by one call, this parameter should have the value 1. In this mode in case of error, e.g. if ispell tables are absent, the function will return FALSE and code and error message will be accessible through udm_error() and udm_errno().

    Пример 1. udm_load_ispell_data()example

    <?php
    if (! udm_load_ispell_data($udm, UDM_ISPELL_TYPE_DB, '', '', 1)) {
          printf("Error #%d: '%s'\n", udm_errno($udm), udm_error($udm));
      exit;
    }
    ?>

  • UDM_ISPELL_TYPE_AFFIX - indicates that ispell data should be loaded from file and initiates loading affixes file. In this case val1 defines double letter language code for which affixes are loaded, and val2 - file path. Please note, that if a relative path entered, the module looks for the file not in UDM_CONF_DIR, but in relation to current path, i.e. to the path where the script is executed. In case of error in this mode, e.g. if file is absent, the function will return FALSE, and an error message will be displayed. Error message text cannot be accessed through udm_error() and udm_errno(), since those functions can only return messages associated with SQL. Please, see flag parameter description in UDM_ISPELL_TYPE_DB.

    Пример 2. udm_load_ispell_data() example

    <?php
    if ((! udm_load_ispell_data($udm, UDM_ISPELL_TYPE_AFFIX, 'en', '/opt/ispell/en.aff', 0)) ||
        (!     udm_load_ispell_data($udm, UDM_ISPELL_TYPE_AFFIX, 'ru', '/opt/ispell/ru.aff', 0)) ||
        (!     udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SPELL, 'en', '/opt/ispell/en.dict', 0)) ||
        (!     udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SPELL, 'ru', '/opt/ispell/ru.dict', 1))) {
        exit;
    }
    ?>

    Замечание: flag is equal to 1 only in the last call.

  • UDM_ISPELL_TYPE_SPELL - indicates that ispell data should be loaded from file and initiates loading of ispell dictionary file. In this case val1 defines double letter language code for which affixes are loaded, and val2 - file path. Please note, that if a relative path entered, the module looks for the file not in UDM_CONF_DIR, but in relation to current path, i.e. to the path where the script is executed. In case of error in this mode, e.g. if file is absent, the function will return FALSE, and an error message will be displayed. Error message text cannot be accessed through udm_error() and udm_errno(), since those functions can only return messages associated with SQL. Please, see flag parameter description in UDM_ISPELL_TYPE_DB.

    <?php
             if ((! Udm_Load_Ispell_Data($udm, UDM_ISPELL_TYPE_AFFIX, 'en', '/opt/ispell/en.aff', 0)) ||
            (!     Udm_Load_Ispell_Data($udm, UDM_ISPELL_TYPE_AFFIX, 'ru', '/opt/ispell/ru.aff', 0)) ||
            (!     Udm_Load_Ispell_Data($udm, UDM_ISPELL_TYPE_SPELL, 'en', '/opt/ispell/en.dict', 0)) ||
            (!     Udm_Load_Ispell_Data($udm, UDM_ISPELL_TYPE_SPELL, 'ru', '/opt/ispell/ru.dict', 1))) {
          exit;
          }
    ?>

    Замечание: flag is equal to 1 only in the last call.

  • UDM_ISPELL_TYPE_SERVER - enables spell server support. val1 parameter indicates address of the host running spell server. val2 ` is not used yet, but in future releases it is going to indicate number of port used by spell server. flag parameter in this case is not needed since ispell data is stored on spellserver already sorted.

    Spelld server reads spell-data from a separate configuration file (/usr/local/mnogosearch/etc/spelld.conf by default), sorts it and stores in memory. With clients server communicates in two ways: to indexer all the data is transferred (so that indexer starts faster), from search.cgi server receives word to normalize and then passes over to client (search.cgi) list of normalized word forms. This allows fastest, compared to db and text modes processing of search queries (by omitting loading and sorting all the spell data).

    udm_load_ispell_data() function in UDM_ISPELL_TYPE_SERVER mode does not actually load ispell data, but only defines server address. In fact, server is automatically used by udm_find() function when performing search. In case of errors, e.g. if spellserver is not running or invalid host indicated, there are no messages returned and ispell conversion does not work.

    Замечание: This function is available in mnoGoSearch 3.1.12 or later.

    Example:

    <?php
    if (!udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SERVER, '', '', 1)) {
        echo     "Error loading ispell data from server<br />\n";
        exit;
    }
    ?>

Пред. | Начало | След.
udm_hash32 | Уровень выше | udm_open_stored


udm_open_stored

(PHP 4 >= 4.2.0)

udm_open_stored -- Open connection to stored

Description

int udm_open_stored ( resource agent, string storedaddr )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
udm_load_ispell_data | Уровень выше | udm_set_agent_param


udm_set_agent_param

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.4)

udm_set_agent_param -- Set mnoGoSearch agent session parameters

Description

bool udm_set_agent_param ( resource agent, int var, string val )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Defines mnoGoSearch session parameters.

The following parameters and their values are available:

  • UDM_PARAM_PAGE_NUM - used to choose search results page number (results are returned by pages beginning from 0, with UDM_PARAM_PAGE_SIZE results per page).

  • UDM_PARAM_PAGE_SIZE - number of search results displayed on one page.

  • UDM_PARAM_SEARCH_MODE - search mode. The following values available: UDM_MODE_ALL - search for all words; UDM_MODE_ANY - search for any word; UDM_MODE_PHRASE - phrase search; UDM_MODE_BOOL - boolean search. See udm_find() for details on boolean search.

  • UDM_PARAM_CACHE_MODE - turns on or off search result cache mode. When enabled, the search engine will store search results to disk. In case a similar search is performed later, the engine will take results from the cache for faster performance. Available values: UDM_CACHE_ENABLED, UDM_CACHE_DISABLED.

  • UDM_PARAM_TRACK_MODE - turns on or off trackquery mode. Since version 3.1.2 mnoGoSearch has a query tracking support. Note that tracking is implemented in SQL version only and not available in built-in database. To use tracking, you have to create tables for tracking support. For MySQL, use create/mysql/track.txt. When doing a search, front-end uses those tables to store query words, a number of found documents and current Unix timestamp in seconds. Available values: UDM_TRACK_ENABLED, UDM_TRACK_DISABLED.

  • UDM_PARAM_PHRASE_MODE - defines whether index database using phrases ("phrase" parameter in indexer.conf). Possible values: UDM_PHRASE_ENABLED and UDM_PHRASE_DISABLED. Please note, that if phrase search is enabled (UDM_PHRASE_ENABLED), it is still possible to do search in any mode (ANY, ALL, BOOL or PHRASE). In 3.1.10 version of mnoGoSearch phrase search is supported only in sql and built-in database modes, while beginning with 3.1.11 phrases are supported in cachemode as well.

    Examples of phrase search:

    "Arizona desert" - This query returns all indexed documents that contain "Arizona desert" as a phrase. Notice that you need to put double quotes around the phrase

  • UDM_PARAM_CHARSET - defines local charset. Available values: set of charsets supported by mnoGoSearch, e.g. koi8-r, cp1251, ...

  • UDM_PARAM_STOPFILE - Defines name and path to stopwords file. (There is a small difference with mnoGoSearch - while in mnoGoSearch if relative path or no path entered, it looks for this file in relation to UDM_CONF_DIR, the module looks for the file in relation to current path, i.e. to the path where the PHP script is executed.)

  • UDM_PARAM_STOPTABLE - Load stop words from the given SQL table. You may use several StopwordTable commands. This command has no effect when compiled without SQL database support.

  • UDM_PARAM_WEIGHT_FACTOR - represents weight factors for specific document parts. Currently body, title, keywords, description, url are supported. To activate this feature please use degrees of 2 in *Weight commands of the indexer.conf. Let's imagine that we have these weights:

    URLWeight 1
    BodyWeight 2
    TitleWeight 4
    KeywordWeight 8
    DescWeight 16

    As far as indexer uses bit OR operation for word weights when some word presents several time in the same document, it is possible at search time to detect word appearance in different document parts. Word which appears only in the body will have 00000010 aggregate weight (in binary notation). Word used in all document parts will have 00011111 aggregate weight.

    This parameter's value is a string of hex digits ABCDE. Each digit is a factor for corresponding bit in word weight. For the given above weights configuration:

    E is a factor for weight 1 (URL Weight bit)
    D is a factor for weight 2 (BodyWeight bit)
    C is a factor for weight 4 (TitleWeight bit)
    B is a factor for weight 8 (KeywordWeight bit)
    A is a factor for weight 16 (DescWeight bit)

    Examples:

    UDM_PARAM_WEIGHT_FACTOR=00001 will search through URLs only.

    UDM_PARAM_WEIGHT_FACTOR=00100 will search through Titles only.

    UDM_PARAM_WEIGHT_FACTOR=11100 will search through Title,Keywords,Description but not through URL and Body.

    UDM_PARAM_WEIGHT_FACTOR=F9421 will search through:

    Description with factor 15 (F hex)
    Keywords with factor 9
    Title with factor 4
    Body with factor 2
    URL with factor 1

    If UDM_PARAM_WEIGHT_FACTOR variable is omitted, original weight value is taken to sort results. For a given above weight configuration it means that document description has a most big weight 16.

  • UDM_PARAM_WORD_MATCH - word match. You may use this parameter to choose word match type. This feature works only in "single" and "multi" modes using SQL based and built-in database. It does not work in cachemode and other modes since they use word CRC and do not support substring search. Available values:

    UDM_MATCH_BEGIN - word beginning match;

    UDM_MATCH_END - word ending match;

    UDM_MATCH_WORD - whole word match;

    UDM_MATCH_SUBSTR - word substring match.

  • UDM_PARAM_MIN_WORD_LEN - defines minimal word length. Any word shorter this limit is considered to be a stopword. Please note that this parameter value is inclusive, i.e. if UDM_PARAM_MIN_WORD_LEN=3, a word 3 characters long will not be considered a stopword, while a word 2 characters long will be. Default value is 1.

  • UDM_PARAM_ISPELL_PREFIXES - Possible values: UDM_PREFIXES_ENABLED and UDM_PREFIXES_DISABLED, that respectively enable or disable using prefixes. E.g. if a word "tested" is in search query, also words like "test", "testing", etc. Only suffixes are supported by default. Prefixes usually change word meanings, for example if somebody is searching for the word "tested" one hardly wants "untested" to be found. Prefixes support may also be found useful for site's spelling checking purposes. In order to enable ispell, you have to load ispell data with udm_load_ispell_data().

  • UDM_PARAM_CROSS_WORDS - enables or disables crosswords support. Possible values: UDM_CROSS_WORDS_ENABLED and UDM_CROSS_WORDS_DISABLED.

    The crosswords feature allows to assign words between <a href="xxx"> and </a> also to a document this link leads to. It works in SQL database mode and is not supported in built-in database and Cachemode.

    Замечание: Crosswords are supported only in mnoGoSearch 3.1.11 or later.

  • UDM_PARAM_VARDIR - specifies a custom path to directory where indexer stores data when using built-in database and in cache mode. By default /var directory of mnoGoSearch installation is used. Can have only string values. The parameter is available in PHP 4.1.0 or later.

Пред. | Начало | След.
udm_open_stored | Уровень выше | Microsoft SQL Server Functions


Mohawk Software Session Handler Functions

Руководство по PHP
Пред. След.

LXXXIII. Mohawk Software Session Handler Functions

Введение

msession is an interface to a high speed session daemon which can run either locally or remotely. It is designed to provide consistent session management for a PHP web farm. More Information about msession and the session server software itself can be found at http://devel.mohawksoft.com/msession.html.

Замечание: Для Windows-платформ это расширение недоступно.

Требования

Установка

To enable Msession support configure PHP --with-msession[=DIR], where DIR is the Msession install directory.

Настройка во время выполнения

Типы ресурсов

Предопределенные константы

Содержание
msession_connect -- Connect to msession server
msession_count -- Get session count
msession_create -- Create a session
msession_destroy -- Destroy a session
msession_disconnect -- Close connection to msession server
msession_find -- Find all sessions with name and value
msession_get_array -- Get array of msession variables
msession_get_data -- Get data session unstructured data
msession_get -- Get value from session
msession_inc -- Increment value in session
msession_list -- List all sessions
msession_listvar -- List sessions with variable
msession_lock -- Lock a session
msession_plugin -- Call an escape function within the msession personality plugin
msession_randstr -- Get random string
msession_set_array -- Set msession variables from an array
msession_set_data -- Set data session unstructured data
msession_set -- Set value in session
msession_timeout -- Set/get session timeout
msession_uniq -- Get unique id
msession_unlock -- Unlock a session

Пред. | Начало | След.
PDO_DBLIB DSN | Уровень выше | msession_connect


msession_connect

(PHP 4 >= 4.2.0, PHP 5)

msession_connect -- Connect to msession server

Description

bool msession_connect ( string host, string port )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
Mohawk Software Session Handler Functions | Уровень выше | msession_count


msession_count

(PHP 4 >= 4.2.0, PHP 5)

msession_count -- Get session count

Description

int msession_count ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
msession_connect | Уровень выше | msession_create


msession_create

(PHP 4 >= 4.2.0, PHP 5)

msession_create -- Create a session

Description

bool msession_create ( string session )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
msession_count | Уровень выше | msession_destroy


msession_destroy

(PHP 4 >= 4.2.0, PHP 5)

msession_destroy -- Destroy a session

Description

bool msession_destroy ( string name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
msession_create | Уровень выше | msession_disconnect


msession_disconnect

(PHP 4 >= 4.2.0, PHP 5)

msession_disconnect -- Close connection to msession server

Description

void msession_disconnect ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
msession_destroy | Уровень выше | msession_find


msession_find

(PHP 4 >= 4.2.0, PHP 5)

msession_find -- Find all sessions with name and value

Description

array msession_find ( string name, string value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
msession_disconnect | Уровень выше | msession_get_array


msession_get_array

(PHP 4 >= 4.2.0, PHP 5)

msession_get_array -- Get array of msession variables

Description

array msession_get_array ( string session )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
msession_find | Уровень выше | msession_get_data


msession_get_data

(PHP 4 >= 4.2.0, PHP 5)

msession_get_data -- Get data session unstructured data

Description

string msession_get_data ( string session )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
msession_get_array | Уровень выше | msession_get


msession_get

(PHP 4 >= 4.2.0, PHP 5)

msession_get -- Get value from session

Description

string msession_get ( string session, string name, string value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
msession_get_data | Уровень выше | msession_inc


msession_inc

(PHP 4 >= 4.2.0, PHP 5)

msession_inc -- Increment value in session

Description

string msession_inc ( string session, string name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
msession_get | Уровень выше | msession_list


msession_list

(PHP 4 >= 4.2.0, PHP 5)

msession_list -- List all sessions

Description

array msession_list ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
msession_inc | Уровень выше | msession_listvar


msession_listvar

(PHP 4 >= 4.2.0, PHP 5)

msession_listvar -- List sessions with variable

Description

array msession_listvar ( string name )

Returns an associative array of value/session for all sessions with a variable named name.

Used for searching sessions with common attributes.

Пред. | Начало | След.
msession_list | Уровень выше | msession_lock


msession_lock

(PHP 4 >= 4.2.0, PHP 5)

msession_lock -- Lock a session

Description

int msession_lock ( string name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
msession_listvar | Уровень выше | msession_plugin


msession_plugin

(PHP 4 >= 4.2.0, PHP 5)

msession_plugin -- Call an escape function within the msession personality plugin

Description

string msession_plugin ( string session, string val [, string param] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
msession_lock | Уровень выше | msession_randstr


msession_randstr

(PHP 4 >= 4.2.0, PHP 5)

msession_randstr -- Get random string

Description

string msession_randstr ( int param )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
msession_plugin | Уровень выше | msession_set_array


msession_set_array

(PHP 4 >= 4.2.0, PHP 5)

msession_set_array -- Set msession variables from an array

Description

void msession_set_array ( string session, array tuples )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
msession_randstr | Уровень выше | msession_set_data


msession_set_data

(PHP 4 >= 4.2.0, PHP 5)

msession_set_data -- Set data session unstructured data

Description

bool msession_set_data ( string session, string value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
msession_set_array | Уровень выше | msession_set


msession_set

(PHP 4 >= 4.2.0, PHP 5)

msession_set -- Set value in session

Description

bool msession_set ( string session, string name, string value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
msession_set_data | Уровень выше | msession_timeout


msession_timeout

(PHP 4 >= 4.2.0, PHP 5)

msession_timeout -- Set/get session timeout

Description

int msession_timeout ( string session [, int param] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
msession_set | Уровень выше | msession_uniq


msession_uniq

(PHP 4 >= 4.2.0, PHP 5)

msession_uniq -- Get unique id

Description

string msession_uniq ( int param )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
msession_timeout | Уровень выше | msession_unlock


msession_unlock

(PHP 4 >= 4.2.0, PHP 5)

msession_unlock -- Unlock a session

Description

int msession_unlock ( string session, int key )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
msession_uniq | Уровень выше | mSQL Functions


mSQL Functions

Руководство по PHP
Пред. След.

LXXXIV. mSQL Functions

Введение

These functions allow you to access mSQL database servers. More information about mSQL can be found at http://www.hughes.com.au/.

Установка

In order to have these functions available, you must compile PHP with msql support by using the --with-msql[=DIR] option. DIR is the mSQL base install directory, defaults to /usr/local/msql3.

Note to Win32 Users: In order to enable this module on a Windows environment, you must copy msql.dll from the DLL folder of the PHP/Win32 binary package to the SYSTEM32 folder of your windows machine. (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM32)

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. mSQL configuration options

Name | Default | Changeable | Changelog
msql.allow_persistent | "1" | PHP_INI_ALL |
msql.max_persistent | "-1" | PHP_INI_ALL |
msql.max_links | "-1" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

msql.allow_persistent boolean

Whether to allow persistent mSQL connections.

msql.max_persistent integer

The maximum number of persistent mSQL connections per process.

msql.max_links integer

The maximum number of mSQL connections per process, including persistent connections.

Типы ресурсов

There are two resource types used in the mSQL module. The first one is the link identifier for a database connection, the second a resource which holds the result of a query.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

MSQL_ASSOC (integer)

MSQL_NUM (integer)

MSQL_BOTH (integer)

Примеры

This simple example shows how to connect, execute a query, print resulting rows and disconnect from a mSQL database.

Пример 1. mSQL usage example

<?php
/* Connecting, selecting database */
$link = msql_connect('localhost', 'username', 'password')
    or die('Could not connect : ' . msql_error($link));

msql_select_db('database', $link)
    or die('Could not select database');

/* Issue SQL query */
$query = 'SELECT * FROM my_table';
$result = msql_query($query, $link) or die('Query failed : ' . msql_error($link));

/* Printing results in HTML */
echo "<table>\n";
while ($row = msql_fetch_array($result, MSQL_ASSOC)) {
    echo "\t<tr>\n";
    foreach ($row as $col_value) {
        echo "\t\t<td>$col_value</td>\n";
    }
    echo "\t</tr>\n";
}
echo "</table>\n";

/* Free result set */
msql_free_result($result);

/* Close connection */
msql_close($link);
?>

Содержание
msql_affected_rows -- Returns number of affected rows
msql_close -- Close mSQL connection
msql_connect -- Open mSQL connection
msql_create_db -- Create mSQL database
msql_createdb -- Alias of msql_create_db()
msql_data_seek -- Move internal row pointer
msql_db_query -- Send mSQL query
msql_dbname -- Alias of msql_result()
msql_drop_db -- Drop (delete) mSQL database
msql_error -- Returns error message of last msql call
msql_fetch_array -- Fetch row as array
msql_fetch_field -- Get field information
msql_fetch_object -- Fetch row as object
msql_fetch_row -- Get row as enumerated array
msql_field_flags -- Get field flags
msql_field_len -- Get field length
msql_field_name -- Get the name of the specified field in a result
msql_field_seek -- Set field offset
msql_field_table -- Get table name for field
msql_field_type -- Get field type
msql_fieldflags -- Alias of msql_field_flags()
msql_fieldlen -- Alias of msql_field_len()
msql_fieldname -- Alias of msql_field_name()
msql_fieldtable -- Alias of msql_field_table()
msql_fieldtype -- Alias of msql_field_type()
msql_free_result -- Free result memory
msql_list_dbs -- List mSQL databases on server
msql_list_fields -- List result fields
msql_list_tables -- List tables in an mSQL database
msql_num_fields -- Get number of fields in result
msql_num_rows -- Get number of rows in result
msql_numfields -- Alias of msql_num_fields()
msql_numrows -- Alias of msql_num_rows()
msql_pconnect -- Open persistent mSQL connection
msql_query -- Send mSQL query
msql_regcase -- Alias of sql_regcase()
msql_result -- Get result data
msql_select_db -- Select mSQL database
msql_tablename -- Alias of msql_result()
msql -- Alias of msql_db_query()

Пред. | Начало | След.
msession_unlock | Уровень выше | msql_affected_rows


msql_affected_rows

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

msql_affected_rows -- Returns number of affected rows

Описание

int msql_affected_rows ( resource result )

Returns number of affected rows by the last SELECT, UPDATE or DELETE query associated with result.

Список параметров

result

The result resource that is being evaluated. This result comes from a call to msql_query().

Возвращаемые значения

Returns the number of affected rows on success, or FALSE on error.

Смотрите также

msql_query()

Пред. | Начало | След.
mSQL Functions | Уровень выше | msql_close


msql_close

(PHP 3, PHP 4, PHP 5)

msql_close -- Close mSQL connection

Описание

bool msql_close ( [resource link_identifier] )

msql_close() closes the non-persistent connection to the mSQL server that's associated with the specified link identifier.

Using msql_close() isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution. See also freeing resources.

Список параметров

link_identifier

The mSQL connection. If not specified, the last link opened by msql_connect() is assumed. If no such link is found, the function will try to establish a link as if msql_connect() was called, and use it.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

msql_connect()
msql_pconnect()

Пред. | Начало | След.
msql_affected_rows | Уровень выше | msql_connect


msql_connect

(PHP 3, PHP 4, PHP 5)

msql_connect -- Open mSQL connection

Описание

resource msql_connect ( [string hostname] )

msql_connect() establishes a connection to a mSQL server.

In case a second call is made to msql_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned.

The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling msql_close().

Список параметров

hostname

The hostname can also include a port number. e.g. hostname,port.

If not specified, the connection is established by the means of a Unix domain socket, being then more efficient then a localhost TCP socket connection.

Замечание: While this function will accept a colon (:) as a host/port separator, a comma (,) is the preferred method.

Возвращаемые значения

Returns a positive mSQL link identifier on success, or FALSE on error.

Смотрите также

msql_pconnect()
msql_close()

Пред. | Начало | След.
msql_close | Уровень выше | msql_create_db


msql_create_db

(PHP 3, PHP 4, PHP 5)

msql_create_db -- Create mSQL database

Описание

bool msql_create_db ( string database_name [, resource link_identifier] )

msql_create_db() attempts to create a new database on the mSQL server.

Список параметров

database_name

The name of the mSQL database.

link_identifier

The mSQL connection. If not specified, the last link opened by msql_connect() is assumed. If no such link is found, the function will try to establish a link as if msql_connect() was called, and use it.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

msql_drop_db()

Пред. | Начало | След.
msql_connect | Уровень выше | msql_createdb


msql_createdb

(PHP 3, PHP 4, PHP 5)

msql_createdb -- Alias of msql_create_db()

Описание

This function is an alias of: msql_create_db().

Пред. | Начало | След.
msql_create_db | Уровень выше | msql_data_seek


msql_data_seek

(PHP 3, PHP 4, PHP 5)

msql_data_seek -- Move internal row pointer

Описание

bool msql_data_seek ( resource result, int row_number )

msql_data_seek() moves the internal row pointer of the mSQL result associated with the specified query identifier to point to the specified row number. The next call to msql_fetch_row() would return that row.

Список параметров

result

The result resource that is being evaluated. This result comes from a call to msql_query().

row_number

The seeked row number.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

msql_fetch_array()
msql_fetch_object()
msql_fetch_row()
msql_result()

Пред. | Начало | След.
msql_createdb | Уровень выше | msql_db_query


msql_db_query

(PHP 3, PHP 4, PHP 5)

msql_db_query -- Send mSQL query

Описание

resource msql_db_query ( string database, string query [, resource link_identifier] )

msql_db_query() selects a database and executes a query on it.

Список параметров

database

The name of the mSQL database.

query

The SQL query.

link_identifier

The mSQL connection. If not specified, the last link opened by msql_connect() is assumed. If no such link is found, the function will try to establish a link as if msql_connect() was called, and use it.

Возвращаемые значения

Returns a positive mSQL query identifier to the query result, or FALSE on error.

Смотрите также

msql_query()

Пред. | Начало | След.
msql_data_seek | Уровень выше | msql_dbname


msql_dbname

(PHP 3, PHP 4, PHP 5)

msql_dbname -- Alias of msql_result()

Описание

This function is an alias of: msql_result().

Пред. | Начало | След.
msql_db_query | Уровень выше | msql_drop_db


msql_drop_db

(PHP 3, PHP 4, PHP 5)

msql_drop_db -- Drop (delete) mSQL database

Описание

bool msql_drop_db ( string database_name [, resource link_identifier] )

msql_drop_db() attempts to drop (remove) a database from the mSQL server.

Список параметров

database_name

The name of the database.

link_identifier

The mSQL connection. If not specified, the last link opened by msql_connect() is assumed. If no such link is found, the function will try to establish a link as if msql_connect() was called, and use it.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

msql_create_db()

Пред. | Начало | След.
msql_dbname | Уровень выше | msql_error


msql_error

(PHP 3, PHP 4, PHP 5)

msql_error -- Returns error message of last msql call

Описание

string msql_error ( void )

msql_error() returns the last issued error by the mSQL server. Note that only the last error message is accessible with msql_error().

Возвращаемые значения

The last error message or an empty string if no error was issued.

Пред. | Начало | След.
msql_drop_db | Уровень выше | msql_fetch_array


msql_fetch_array

(PHP 3, PHP 4, PHP 5)

msql_fetch_array -- Fetch row as array

Описание

array msql_fetch_array ( resource result [, int result_type] )

msql_fetch_array() is an extended version of msql_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

An important thing to note is that using msql_fetch_array() is NOT significantly slower than using msql_fetch_row(), while it provides a significant added value.

Список параметров

result

The result resource that is being evaluated. This result comes from a call to msql_query().

result_type

A constant that can take the following values: MSQL_ASSOC, MSQL_NUM, and MSQL_BOTH with MSQL_BOTH being the default.

Возвращаемые значения

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

Примеры

Пример 1. msql_fetch_array() example

<?php
$con = msql_connect();
if (!$con) {
    die('Server connection problem: ' . msql_error());
}

if (!msql_select_db('test', $con)) {
    die('Database connection problem: ' . msql_error());
}

$result = msql_query('SELECT id, name FROM people', $con);
if (!$result) {
    die('Query execution problem: ' . msql_error());
}

while ($row = msql_fetch_array($result, MSQL_ASSOC)) {
    echo $row['id'] . ': ' . $row['name'] . "\n";
}

msql_free_result($result);
?>

Список изменений

Версия | Описание
4.3.11 and 5.0.4 | A bug was fixed when retrieving data from columns containing NULL values. Such columns were not placed into the resulting array.

Смотрите также

msql_fetch_row()
msql_fetch_object()
msql_data_seek()
msql_result()

Пред. | Начало | След.
msql_error | Уровень выше | msql_fetch_field


msql_fetch_field

(PHP 3, PHP 4, PHP 5)

msql_fetch_field -- Get field information

Описание

object msql_fetch_field ( resource result [, int field_offset] )

msql_fetch_field() can be used in order to obtain information about fields in a certain query result.

Список параметров

result

The result resource that is being evaluated. This result comes from a call to msql_query().

field_offset

The field offset. If not specified, the next field that wasn't yet retrieved by msql_fetch_field() is retrieved.

Возвращаемые значения

Returns an object containing field information. The properties of the object are:

  • name - column name

  • table - name of the table the column belongs to

  • not_null - 1 if the column cannot be NULL

  • unique - 1 if the column is a unique key

  • type - the type of the column

Смотрите также

msql_field_seek()

Пред. | Начало | След.
msql_fetch_array | Уровень выше | msql_fetch_object


msql_fetch_object

(PHP 3, PHP 4, PHP 5)

msql_fetch_object -- Fetch row as object

Описание

object msql_fetch_object ( resource result )

msql_fetch_object() is similar to msql_fetch_array(), with one difference - an object is returned, instead of an array. Indirectly, that means that you can only access the data by the field names, and not by their offsets (numbers are illegal property names).

Speed-wise, the function is identical to msql_fetch_array(), and almost as quick as msql_fetch_row() (the difference is insignificant).

Список параметров

result

The result resource that is being evaluated. This result comes from a call to msql_query().

Возвращаемые значения

Returns an object with properties that correspond to the fetched row, or FALSE if there are no more rows.

Примеры

Пример 1. msql_fetch_object() example

<?php
$con = msql_connect();
if (!$con) {
    die('Server connection problem: ' . msql_error());
}

if (!msql_select_db('test', $con)) {
    die('Database connection problem: ' . msql_error());
}

$result = msql_query('SELECT id, name FROM people', $con);
if (!$result) {
    die('Query execution problem: ' . msql_error());
}

while ($row = msql_fetch_object($result, MSQL_ASSOC)) {
    echo $row->id . ': ' . $row->name . "\n";
}

msql_free_result($result);
?>

Список изменений

Версия | Описание
4.3.11 and 5.0.4 | A bug was fixed when retrieving data from columns containing NULL values. Such columns were not placed into the resulting array.

Смотрите также

msql_fetch_array()
msql_fetch_row()
msql_data_seek()
msql_result()

Пред. | Начало | След.
msql_fetch_field | Уровень выше | msql_fetch_row


msql_fetch_row

(PHP 3, PHP 4, PHP 5)

msql_fetch_row -- Get row as enumerated array

Описание

array msql_fetch_row ( resource result )

msql_fetch_row() fetches one row of data from the result associated with the specified query identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0.

Subsequent call to msql_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

Список параметров

result

The result resource that is being evaluated. This result comes from a call to msql_query().

Возвращаемые значения

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

Примеры

Пример 1. msql_fetch_row() example

<?php
$con = msql_connect();
if (!$con) {
    die('Server connection problem: ' . msql_error());
}

if (!msql_select_db('test', $con)) {
    die('Database connection problem: ' . msql_error());
}

$result = msql_query('SELECT id, name FROM people', $con);
if (!$result) {
    die('Query execution problem: ' . msql_error());
}

while ($row = msql_fetch_row($result)) {
    echo $row[0] . ': ' . $row[1] . "\n";
}

msql_free_result($result);
?>

Список изменений

Версия | Описание
4.3.11 and 5.0.4 | A bug was fixed when retrieving data from columns containing NULL values. Such columns were not placed into the resulting array.

Смотрите также

msql_fetch_array()
msql_fetch_object()
msql_data_seek()
msql_result()

Пред. | Начало | След.
msql_fetch_object | Уровень выше | msql_field_flags


msql_field_flags

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

msql_field_flags -- Get field flags

Описание

string msql_field_flags ( resource result, int field_offset )

msql_field_flags() returns the field flags of the specified field.

Список параметров

result

The result resource that is being evaluated. This result comes from a call to msql_query().

field_offset

The numerical field offset. The field_offset starts at 1.

Возвращаемые значения

Returns a string containing the field flags of the specified key. This can be: primary key not null, not null, primary key, unique not null or unique.

Пред. | Начало | След.
msql_fetch_row | Уровень выше | msql_field_len


msql_field_len

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

msql_field_len -- Get field length

Описание

int msql_field_len ( resource result, int field_offset )

msql_field_len() returns the length of the specified field.

Список параметров

result

The result resource that is being evaluated. This result comes from a call to msql_query().

field_offset

The numerical field offset. The field_offset starts at 1.

Возвращаемые значения

Returns the length of the specified field or FALSE on error.

Пред. | Начало | След.
msql_field_flags | Уровень выше | msql_field_name


msql_field_name

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

msql_field_name -- Get the name of the specified field in a result

Описание

string msql_field_name ( resource result, int field_offset )

msql_field_name() gets the name of the specified field index.

Список параметров

result

The result resource that is being evaluated. This result comes from a call to msql_query().

field_offset

The numerical field offset. The field_offset starts at 1.

Возвращаемые значения

The name of the field or FALSE on failure.

Смотрите также

msql_field_len()

Пред. | Начало | След.
msql_field_len | Уровень выше | msql_field_seek


msql_field_seek

(PHP 3, PHP 4, PHP 5)

msql_field_seek -- Set field offset

Описание

bool msql_field_seek ( resource result, int field_offset )

Seeks to the specified field offset. If the next call to msql_fetch_field() won't include a field offset, this field would be returned.

Список параметров

result

The result resource that is being evaluated. This result comes from a call to msql_query().

field_offset

The numerical field offset. The field_offset starts at 1.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

msql_fetch_field()

Пред. | Начало | След.
msql_field_name | Уровень выше | msql_field_table


msql_field_table

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

msql_field_table -- Get table name for field

Описание

int msql_field_table ( resource result, int field_offset )

Returns the name of the table that the specified field is in.

Список параметров

result

The result resource that is being evaluated. This result comes from a call to msql_query().

field_offset

The numerical field offset. The field_offset starts at 1.

Возвращаемые значения

The name of the table on success, or FALSE on failure.

Пред. | Начало | След.
msql_field_seek | Уровень выше | msql_field_type


msql_field_type

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

msql_field_type -- Get field type

Описание

string msql_field_type ( resource result, int field_offset )

msql_field_type() gets the type of the specified field index.

Список параметров

result

The result resource that is being evaluated. This result comes from a call to msql_query().

field_offset

The numerical field offset. The field_offset starts at 1.

Возвращаемые значения

The type of the field. One of int, char, real, ident, null or unknown. This functions will return FALSE on failure.

Пред. | Начало | След.
msql_field_table | Уровень выше | msql_fieldflags


msql_fieldflags

(PHP 3, PHP 4, PHP 5)

msql_fieldflags -- Alias of msql_field_flags()

Описание

This function is an alias of msql_field_flags().

Пред. | Начало | След.
msql_field_type | Уровень выше | msql_fieldlen


msql_fieldlen

(PHP 3, PHP 4, PHP 5)

msql_fieldlen -- Alias of msql_field_len()

Описание

This function is an alias of msql_field_len().

Пред. | Начало | След.
msql_fieldflags | Уровень выше | msql_fieldname


msql_fieldname

(PHP 3, PHP 4, PHP 5)

msql_fieldname -- Alias of msql_field_name()

Описание

This function is an alias of msql_field_name().

Пред. | Начало | След.
msql_fieldlen | Уровень выше | msql_fieldtable


msql_fieldtable

(PHP 3, PHP 4, PHP 5)

msql_fieldtable -- Alias of msql_field_table()

Описание

This function is an alias of msql_field_table().

Пред. | Начало | След.
msql_fieldname | Уровень выше | msql_fieldtype


msql_fieldtype

(PHP 3, PHP 4, PHP 5)

msql_fieldtype -- Alias of msql_field_type()

Описание

This function is an alias of msql_field_type().

Пред. | Начало | След.
msql_fieldtable | Уровень выше | msql_free_result


msql_free_result

(PHP 3, PHP 4, PHP 5)

msql_free_result -- Free result memory

Описание

bool msql_free_result ( resource result )

msql_free_result() frees the memory associated with query_identifier. When PHP completes a request, this memory is freed automatically, so you only need to call this function when you want to make sure you don't use too much memory while the script is running.

Список параметров

result

The result resource that is being evaluated. This result comes from a call to msql_query().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
msql_fieldtype | Уровень выше | msql_list_dbs


msql_list_dbs

(PHP 3, PHP 4, PHP 5)

msql_list_dbs -- List mSQL databases on server

Описание

resource msql_list_dbs ( [resource link_identifier] )

msql_list_tables() lists the databases available on the specified link_identifier.

Список параметров

link_identifier

The mSQL connection. If not specified, the last link opened by msql_connect() is assumed. If no such link is found, the function will try to establish a link as if msql_connect() was called, and use it.

Возвращаемые значения

Returns a result set which may be traversed with any function that fetches result sets, such as msql_fetch_array(). On failure, this function will return FALSE.

Смотрите также

msql_list_tables()
msql_list_fields()

Пред. | Начало | След.
msql_free_result | Уровень выше | msql_list_fields


msql_list_fields

(PHP 3, PHP 4, PHP 5)

msql_list_fields -- List result fields

Описание

resource msql_list_fields ( string database, string tablename [, resource link_identifier] )

msql_list_fields() returns information about the given table.

Список параметров

database

The name of the database.

tablename

The name of the table.

link_identifier

The mSQL connection. If not specified, the last link opened by msql_connect() is assumed. If no such link is found, the function will try to establish a link as if msql_connect() was called, and use it.

Возвращаемые значения

Returns a result set which may be traversed with any function that fetches result sets, such as msql_fetch_array(). On failure, this function will return FALSE.

Смотрите также

msql_list_tables()
msql_list_dbs()

Пред. | Начало | След.
msql_list_dbs | Уровень выше | msql_list_tables


msql_list_tables

(PHP 3, PHP 4, PHP 5)

msql_list_tables -- List tables in an mSQL database

Описание

resource msql_list_tables ( string database [, resource link_identifier] )

msql_list_tables() lists the tables on the specified database.

Список параметров

database

The name of the database.

link_identifier

The mSQL connection. If not specified, the last link opened by msql_connect() is assumed. If no such link is found, the function will try to establish a link as if msql_connect() was called, and use it.

Возвращаемые значения

Returns a result set which may be traversed with any function that fetches result sets, such as msql_fetch_array(). On failure, this function will return FALSE.

Смотрите также

msql_list_fields()
msql_list_dbs()

Пред. | Начало | След.
msql_list_fields | Уровень выше | msql_num_fields


msql_num_fields

(PHP 3, PHP 4, PHP 5)

msql_num_fields -- Get number of fields in result

Описание

int msql_num_fields ( resource result )

msql_num_fields() returns the number of fields in a result set.

Список параметров

result

The result resource that is being evaluated. This result comes from a call to msql_query().

Возвращаемые значения

Returns the number of fields in the result set.

Смотрите также

msql_query()
msql_fetch_field()
msql_num_rows()

Пред. | Начало | След.
msql_list_tables | Уровень выше | msql_num_rows


msql_num_rows

(PHP 3, PHP 4, PHP 5)

msql_num_rows -- Get number of rows in result

Описание

int msql_num_rows ( resource query_identifier )

msql_num_rows() returns the number of rows in a result set.

Список параметров

result

The result resource that is being evaluated. This result comes from a call to msql_query().

Возвращаемые значения

Returns the number of rows in the result set.

Смотрите также

msql_num_fields()

Пред. | Начало | След.
msql_num_fields | Уровень выше | msql_numfields


msql_numfields

(PHP 3, PHP 4, PHP 5)

msql_numfields -- Alias of msql_num_fields()

Описание

This function is an alias of msql_num_fields().

Пред. | Начало | След.
msql_num_rows | Уровень выше | msql_numrows


msql_numrows

(PHP 3, PHP 4, PHP 5)

msql_numrows -- Alias of msql_num_rows()

Описание

This function is an alias of msql_num_rows().

Пред. | Начало | След.
msql_numfields | Уровень выше | msql_pconnect


msql_pconnect

(PHP 3, PHP 4, PHP 5)

msql_pconnect -- Open persistent mSQL connection

Описание

resource msql_pconnect ( [string hostname] )

msql_pconnect() acts very much like msql_connect() with two major differences.

First, when connecting, the function would first try to find a (persistent) link that's already open with the same host. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (msql_close() will not close links established by this function).

Список параметров

hostname

The hostname can also include a port number. e.g. hostname,port.

If not specified, the connection is established by the means of a Unix domain socket, being then more efficient then a localhost TCP socket connection.

Замечание: While this function will accept a colon (:) as a host/port separator, a comma (,) is the preferred method.

Возвращаемые значения

Returns a positive mSQL link identifier on success, or FALSE on error.

Смотрите также

msql_connect()
msql_close()

Пред. | Начало | След.
msql_numrows | Уровень выше | msql_query


msql_query

(PHP 3, PHP 4, PHP 5)

msql_query -- Send mSQL query

Описание

resource msql_query ( string query [, resource link_identifier] )

msql_query() sends a query to the currently active database on the server that's associated with the specified link identifier.

Список параметров

query

The SQL query.

link_identifier

The mSQL connection. If not specified, the last link opened by msql_connect() is assumed. If no such link is found, the function will try to establish a link as if msql_connect() was called, and use it.

Возвращаемые значения

Returns a positive mSQL query identifier on success, or FALSE on error.

Примеры

Пример 1. msql_query() example

<?php
$link = msql_connect("dbserver")
   or die("unable to connect to msql server: " . msql_error());
msql_select_db("db", $link)
   or die("unable to select database 'db': " . msql_error());

$result = msql_query("SELECT * FROM table WHERE id=1", $link);
if (!$result) {
   die("query failed: " . msql_error());
}

while ($row = msql_fetch_array($result)) {
    echo $row["id"];
}
?>

Смотрите также

msql_db_query()
msql_select_db()
msql_connect()

Пред. | Начало | След.
msql_pconnect | Уровень выше | msql_regcase


msql_regcase

(PHP 3, PHP 4, PHP 5)

msql_regcase -- Alias of sql_regcase()

Описание

This function is an alias of sql_regcase().

Пред. | Начало | След.
msql_query | Уровень выше | msql_result


msql_result

(PHP 3, PHP 4, PHP 5)

msql_result -- Get result data

Описание

string msql_result ( resource result, int row [, mixed field] )

msql_result() returns the contents of one cell from a mSQL result set.

When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they are often much quicker than msql_result().

Recommended high-performance alternatives:
msql_fetch_row(),
msql_fetch_array(), and
msql_fetch_object().

Список параметров

result

The result resource that is being evaluated. This result comes from a call to msql_query().

row

The row offset.

field

Can be the field's offset, or the field's name, or the field's table dot field's name (tablename.fieldname.). If the column name has been aliased ('select foo as bar from ...'), use the alias instead of the column name.

Замечание: Specifying a numeric field offset is much quicker than specifying a fieldname or tablename.fieldname.

Возвращаемые значения

Returns the contents of the cell at the row and offset in the specified mSQL result set.

Пред. | Начало | След.
msql_regcase | Уровень выше | msql_select_db


msql_select_db

(PHP 3, PHP 4, PHP 5)

msql_select_db -- Select mSQL database

Описание

bool msql_select_db ( string database_name [, resource link_identifier] )

msql_select_db() sets the current active database on the server that's associated with the specified link_identifier.

Subsequent calls to msql_query() will be made on the active database.

Список параметров

database_name

The database name.

link_identifier

The mSQL connection. If not specified, the last link opened by msql_connect() is assumed. If no such link is found, the function will try to establish a link as if msql_connect() was called, and use it.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

msql_connect()
msql_pconnect()
msql_query()

Пред. | Начало | След.
msql_result | Уровень выше | msql_tablename


msql_tablename

(PHP 3, PHP 4, PHP 5)

msql_tablename -- Alias of msql_result()

Описание

This function is an alias of msql_result().

Пред. | Начало | След.
msql_select_db | Уровень выше | msql


msql

(PHP 3, PHP 4, PHP 5)

msql -- Alias of msql_db_query()

Описание

This function is an alias of msql_db_query().

Пред. | Начало | След.
msql_tablename | Уровень выше | Multibyte String Functions


Microsoft SQL Server Functions

Руководство по PHP
Пред. След.

LXXXI. Microsoft SQL Server Functions

Введение

These functions allow you to access MS SQL Server database.

Требования

Requirements for Win32 platforms.

The extension requires the MS SQL Client Tools to be installed on the system where PHP is installed. The Client Tools can be installed from the MS SQL Server CD or by copying ntwdblib.dll from \winnt\system32 on the server to \winnt\system32 on the PHP box. Copying ntwdblib.dll will only provide access. Configuration of the client will require installation of all the tools.

Requirements for Unix/Linux platforms.

To use the MSSQL extension on Unix/Linux, you first need to build and install the FreeTDS library. Source code and installation instructions are available at the FreeTDS home page: http://www.freetds.org/

Замечание: In Windows, the DBLIB from Microsoft is used. Functions that return a column name are based on the dbcolname() function in DBLIB. DBLIB was developed for SQL Server 6.x where the max identifier length is 30. For this reason, the maximum column length is 30 characters. On platforms where FreeTDS is used (Linux), this is not a problem.

Установка

The MSSQL extension is enabled by adding extension=php_mssql.dll to php.ini.

To get these functions to work, you have to compile PHP with --with-mssql[=DIR], where DIR is the FreeTDS install prefix. And FreeTDS should be compiled using --enable-msdblib.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. MS SQL Server configuration options

Name | Default | Changeable | Changelog
mssql.allow_persistent | "1" | PHP_INI_SYSTEM |
mssql.max_persistent | "-1" | PHP_INI_SYSTEM |
mssql.max_links | "-1" | PHP_INI_SYSTEM |
mssql.min_error_severity | "10" | PHP_INI_ALL |
mssql.min_message_severity | "10" | PHP_INI_ALL |
mssql.compatability_mode | "0" | PHP_INI_ALL |
mssql.connect_timeout | "5" | PHP_INI_ALL |
mssql.timeout | "60" | PHP_INI_ALL | Available since PHP 4.1.0.
mssql.textsize | "-1" | PHP_INI_ALL |
mssql.textlimit | "-1" | PHP_INI_ALL |
mssql.batchsize | "0" | PHP_INI_ALL | Available since PHP 4.0.4.
mssql.datetimeconvert | "1" | PHP_INI_ALL | Available since PHP 4.2.0.
mssql.secure_connection | "0" | PHP_INI_SYSTEM | Available since PHP 4.3.0.
mssql.max_procs | "25" | PHP_INI_ALL | Available since PHP 4.3.0.
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Типы ресурсов

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

MSSQL_ASSOC (integer)

MSSQL_NUM (integer)

MSSQL_BOTH (integer)

SQLTEXT (integer)

SQLVARCHAR (integer)

SQLCHAR (integer)

SQLINT1 (integer)

SQLINT2 (integer)

SQLINT4 (integer)

SQLBIT (integer)

SQLFLT8 (integer)

Содержание
mssql_bind -- Adds a parameter to a stored procedure or a remote stored procedure
mssql_close -- Close MS SQL Server connection
mssql_connect -- Open MS SQL server connection
mssql_data_seek -- Moves internal row pointer
mssql_execute -- Executes a stored procedure on a MS SQL server database
mssql_fetch_array -- Fetch a result row as an associative array, a numeric array, or both
mssql_fetch_assoc -- Returns an associative array of the current row in the result set specified by result_id
mssql_fetch_batch -- Returns the next batch of records
mssql_fetch_field -- Get field information
mssql_fetch_object -- Fetch row as object
mssql_fetch_row -- Get row as enumerated array
mssql_field_length -- Get the length of a field
mssql_field_name -- Get the name of a field
mssql_field_seek -- Seeks to the specified field offset
mssql_field_type -- Gets the type of a field
mssql_free_result -- Free result memory
mssql_free_statement -- Free statement memory
mssql_get_last_message -- Returns the last message from the server
mssql_guid_string -- Converts a 16 byte binary GUID to a string
mssql_init -- Initializes a stored procedure or a remote stored procedure
mssql_min_error_severity -- Sets the lower error severity
mssql_min_message_severity -- Sets the lower message severity
mssql_next_result -- Move the internal result pointer to the next result
mssql_num_fields -- Gets the number of fields in result
mssql_num_rows -- Gets the number of rows in result
mssql_pconnect -- Open persistent MS SQL connection
mssql_query -- Send MS SQL query
mssql_result -- Get result data
mssql_rows_affected -- Returns the number of records affected by the query
mssql_select_db -- Select MS SQL database

Пред. | Начало | След.
udm_set_agent_param | Уровень выше | mssql_bind


mssql_bind

(PHP 4 >= 4.1.0, PHP 5)

mssql_bind -- Adds a parameter to a stored procedure or a remote stored procedure

Description

bool mssql_bind ( resource stmt, string param_name, mixed &var, int type [, int is_output [, int is_null [, int maxlen]]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

See also mssql_execute(),
mssql_free_statement(), and
mssql_init().

Пред. | Начало | След.
Microsoft SQL Server Functions | Уровень выше | mssql_close


mssql_close

(PHP 3, PHP 4, PHP 5)

mssql_close -- Close MS SQL Server connection

Description

bool mssql_close ( [resource link_identifier] )

mssql_close() closes the link to a MS SQL Server database that's associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Note that this isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.

mssql_close() will not close persistent links generated by mssql_pconnect().

See also mssql_connect(), and mssql_pconnect().

Пред. | Начало | След.
mssql_bind | Уровень выше | mssql_connect


mssql_connect

(PHP 3, PHP 4, PHP 5)

mssql_connect -- Open MS SQL server connection

Description

resource mssql_connect ( [string servername [, string username [, string password]]] )

Returns: A MS SQL link identifier on success, or FALSE on error.

mssql_connect() establishes a connection to a MS SQL server. The servername argument has to be a valid servername that is defined in the 'interfaces' file.

In case a second call is made to mssql_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned.

The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling mssql_close().

See also mssql_pconnect(), mssql_close().

Пред. | Начало | След.
mssql_close | Уровень выше | mssql_data_seek


mssql_data_seek

(PHP 3, PHP 4, PHP 5)

mssql_data_seek -- Moves internal row pointer

Description

bool mssql_data_seek ( resource result_identifier, int row_number )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

mssql_data_seek() moves the internal row pointer of the MS SQL result associated with the specified result identifier to point to the specified row number, first row being number 0. The next call to mssql_fetch_row() would return that row.

Пред. | Начало | След.
mssql_connect | Уровень выше | mssql_execute


mssql_execute

(PHP 4 >= 4.1.0, PHP 5)

mssql_execute -- Executes a stored procedure on a MS SQL server database

Description

mixed mssql_execute ( resource stmt [, bool skip_results] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Замечание: If the stored procedure returns parameters or a return value these will be available after the call to mssql_execute() unless the stored procedure returns more than one result set. In that case use mssql_next_result() to shift through the results. When the last result has been processed the output parameters and return values will be available.

See also mssql_bind(),
mssql_free_statement(), and
mssql_init().

Пред. | Начало | След.
mssql_data_seek | Уровень выше | mssql_fetch_array


mssql_fetch_array

(PHP 3, PHP 4, PHP 5)

mssql_fetch_array -- Fetch a result row as an associative array, a numeric array, or both

Description

array mssql_fetch_array ( resource result [, int result_type] )

Returns: An array that corresponds to the fetched row, or FALSE if there are no more rows.

mssql_fetch_array() is an extended version of mssql_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

An important thing to note is that using mssql_fetch_array() is NOT significantly slower than using mssql_fetch_row(), while it provides a significant added value.

Замечание: Имена полей, возвращаемые этой функцией, регистро-зависимы.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

For further details, also see mssql_fetch_row().

Пред. | Начало | След.
mssql_execute | Уровень выше | mssql_fetch_assoc


mssql_fetch_assoc

(PHP 4 >= 4.2.0, PHP 5)

mssql_fetch_assoc -- Returns an associative array of the current row in the result set specified by result_id

Description

array mssql_fetch_assoc ( resource result_id )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mssql_fetch_array | Уровень выше | mssql_fetch_batch


mssql_fetch_batch

(PHP 4 >= 4.0.4, PHP 5)

mssql_fetch_batch -- Returns the next batch of records

Description

int mssql_fetch_batch ( resource result_index )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mssql_fetch_assoc | Уровень выше | mssql_fetch_field


mssql_fetch_field

(PHP 3, PHP 4, PHP 5)

mssql_fetch_field -- Get field information

Description

object mssql_fetch_field ( resource result [, int field_offset] )

Returns an object containing field information.

mssql_fetch_field() can be used in order to obtain information about fields in a certain query result. If the field offset isn't specified, the next field that wasn't yet retrieved by mssql_fetch_field() is retrieved.

The properties of the object are:

  • name - column name. if the column is a result of a function, this property is set to computed#N, where #N is a serial number.

  • column_source - the table from which the column was taken

  • max_length - maximum length of the column

  • numeric - 1 if the column is numeric

  • type - the column type.

See also mssql_field_seek().

Пред. | Начало | След.
mssql_fetch_batch | Уровень выше | mssql_fetch_object


mssql_fetch_object

(PHP 3, PHP 4, PHP 5)

mssql_fetch_object -- Fetch row as object

Description

object mssql_fetch_object ( resource result )

Returns: An object with properties that correspond to the fetched row, or FALSE if there are no more rows.

mssql_fetch_object() is similar to mssql_fetch_array(), with one difference - an object is returned, instead of an array. Indirectly, that means that you can only access the data by the field names, and not by their offsets (numbers are illegal property names).

Замечание: Имена полей, возвращаемые этой функцией, регистро-зависимы.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Speed-wise, the function is identical to mssql_fetch_array(), and almost as quick as mssql_fetch_row() (the difference is insignificant).

See also mssql_fetch_array(), and mssql_fetch_row().

Пред. | Начало | След.
mssql_fetch_field | Уровень выше | mssql_fetch_row


mssql_fetch_row

(PHP 3, PHP 4, PHP 5)

mssql_fetch_row -- Get row as enumerated array

Description

array mssql_fetch_row ( resource result )

Returns: An array that corresponds to the fetched row, or FALSE if there are no more rows.

mssql_fetch_row() fetches one row of data from the result associated with the specified result identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0.

Subsequent call to mssql_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

See also
mssql_fetch_array(),
mssql_fetch_object(),
mssql_data_seek(),
mssql_fetch_lengths(), and
mssql_result().

Пред. | Начало | След.
mssql_fetch_object | Уровень выше | mssql_field_length


mssql_field_length

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

mssql_field_length -- Get the length of a field

Description

int mssql_field_length ( resource result [, int offset] )

This function returns the length of field no. offset in result result. If offset is omitted, the current field is used.

Note to Win32 Users: Due to a limitation in the underlying API used by PHP (MS DbLib C API), the length of VARCHAR fields is limited to 255. If you need to store more data, use a TEXT field instead.

Пред. | Начало | След.
mssql_fetch_row | Уровень выше | mssql_field_name


mssql_field_name

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

mssql_field_name -- Get the name of a field

Description

string mssql_field_name ( resource result [, int offset] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mssql_field_length | Уровень выше | mssql_field_seek


mssql_field_seek

(PHP 3, PHP 4, PHP 5)

mssql_field_seek -- Seeks to the specified field offset

Description

bool mssql_field_seek ( resource result, int field_offset )

Seeks to the specified field offset. If the next call to mssql_fetch_field() won't include a field offset, this field would be returned.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also mssql_fetch_field().

Пред. | Начало | След.
mssql_field_name | Уровень выше | mssql_field_type


mssql_field_type

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

mssql_field_type -- Gets the type of a field

Description

string mssql_field_type ( resource result [, int offset] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mssql_field_seek | Уровень выше | mssql_free_result


mssql_free_result

(PHP 3, PHP 4, PHP 5)

mssql_free_result -- Free result memory

Description

bool mssql_free_result ( resource result )

mssql_free_result() only needs to be called if you are worried about using too much memory while your script is running. All result memory will automatically be freed when the script ends. You may call mssql_free_result() with the result identifier as an argument and the associated result memory will be freed.

Пред. | Начало | След.
mssql_field_type | Уровень выше | mssql_free_statement


mssql_free_statement

(PHP 4 >= 4.3.2, PHP 5)

mssql_free_statement -- Free statement memory

Description

bool mssql_free_statement ( resource statement )

mssql_free_statement() only needs to be called if you are worried about using too much memory while your script is running. All statement memory will automatically be freed when the script ends. You may call mssql_free_statement() with the statement identifier as an argument and the associated statement memory will be freed.

See also mssql_bind(),
mssql_execute(), and
mssql_init()

Пред. | Начало | След.
mssql_free_result | Уровень выше | mssql_get_last_message


mssql_get_last_message

(PHP 3, PHP 4, PHP 5)

mssql_get_last_message -- Returns the last message from the server

Description

string mssql_get_last_message ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mssql_free_statement | Уровень выше | mssql_guid_string


mssql_guid_string

(PHP 4 >= 4.1.0, PHP 5)

mssql_guid_string -- Converts a 16 byte binary GUID to a string

Description

string mssql_guid_string ( string binary [, int short_format] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mssql_get_last_message | Уровень выше | mssql_init


mssql_init

(PHP 4 >= 4.1.0, PHP 5)

mssql_init -- Initializes a stored procedure or a remote stored procedure

Description

resource mssql_init ( string sp_name [, resource conn_id] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

See also mssql_bind(),
mssql_execute(), and
mssql_free_statement()

Пред. | Начало | След.
mssql_guid_string | Уровень выше | mssql_min_error_severity


mssql_min_error_severity

(PHP 3, PHP 4, PHP 5)

mssql_min_error_severity -- Sets the lower error severity

Description

void mssql_min_error_severity ( int severity )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mssql_init | Уровень выше | mssql_min_message_severity


mssql_min_message_severity

(PHP 3, PHP 4, PHP 5)

mssql_min_message_severity -- Sets the lower message severity

Description

void mssql_min_message_severity ( int severity )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mssql_min_error_severity | Уровень выше | mssql_next_result


mssql_next_result

(PHP 4 >= 4.0.5, PHP 5)

mssql_next_result -- Move the internal result pointer to the next result

Description

bool mssql_next_result ( resource result_id )

When sending more than one SQL statement to the server or executing a stored procedure with multiple results, it will cause the server to return multiple result sets. This function will test for additional results available form the server. If an additional result set exists it will free the existing result set and prepare to fetch the rows from the new result set. The function will return TRUE if an additional result set was available or FALSE otherwise.

Пример 1. mssql_next_result() example

<?php
    $link = mssql_connect("localhost", "userid", "secret");
    mssql_select_db("MyDB", $link);
    $SQL = "Select * from table1 select * from table2";
    $rs = mssql_query($SQL, $link);
    do {
        while ($row = mssql_fetch_row($rs)) {
        }
    } while (mssql_next_result($rs));
    mssql_free_result($rs);
    mssql_close($link);
?>

Пред. | Начало | След.
mssql_min_message_severity | Уровень выше | mssql_num_fields


mssql_num_fields

(PHP 3, PHP 4, PHP 5)

mssql_num_fields -- Gets the number of fields in result

Description

int mssql_num_fields ( resource result )

mssql_num_fields() returns the number of fields in a result set.

See also
mssql_query(),
mssql_fetch_field(), and
mssql_num_rows().

Пред. | Начало | След.
mssql_next_result | Уровень выше | mssql_num_rows


mssql_num_rows

(PHP 3, PHP 4, PHP 5)

mssql_num_rows -- Gets the number of rows in result

Description

int mssql_num_rows ( resource result )

mssql_num_rows() returns the number of rows in a result set.

See also mssql_query() and mssql_fetch_row().

Пред. | Начало | След.
mssql_num_fields | Уровень выше | mssql_pconnect


mssql_pconnect

(PHP 3, PHP 4, PHP 5)

mssql_pconnect -- Open persistent MS SQL connection

Description

resource mssql_pconnect ( [string servername [, string username [, string password]]] )

Returns: A positive MS SQL persistent link identifier on success, or FALSE on error.

mssql_pconnect() acts very much like mssql_connect() with two major differences.

First, when connecting, the function would first try to find a (persistent) link that's already open with the same host, username and password. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (mssql_close() will not close links established by mssql_pconnect()).

This type of links is therefore called 'persistent'.

Пред. | Начало | След.
mssql_num_rows | Уровень выше | mssql_query


mssql_query

(PHP 3, PHP 4, PHP 5)

mssql_query -- Send MS SQL query

Description

mixed mssql_query ( string query [, resource link_identifier [, int batch_size]] )

Returns: A MS SQL result resource on success, TRUE if no rows were returned, or FALSE on error.

mssql_query() sends a query to the currently active database on the server that's associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed. If no link is open, the function tries to establish a link as if mssql_connect() was called, and use it.

See also mssql_select_db() and mssql_connect().

Пред. | Начало | След.
mssql_pconnect | Уровень выше | mssql_result


mssql_result

(PHP 3, PHP 4, PHP 5)

mssql_result -- Get result data

Description

string mssql_result ( resource result, int row, mixed field )

mssql_result() returns the contents of one cell from a MS SQL result set. The field argument can be the field's offset, the field's name or the field's table dot field's name (tablename.fieldname). If the column name has been aliased ('select foo as bar from...'), it uses the alias instead of the column name.

When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they're MUCH quicker than mssql_result(). Also, note that specifying a numeric offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname argument.

Recommended high-performance alternatives:
mssql_fetch_row(),
mssql_fetch_array(), and
mssql_fetch_object().

Пред. | Начало | След.
mssql_query | Уровень выше | mssql_rows_affected


mssql_rows_affected

(PHP 4 >= 4.0.4, PHP 5)

mssql_rows_affected -- Returns the number of records affected by the query

Description

int mssql_rows_affected ( resource conn_id )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mssql_result | Уровень выше | mssql_select_db


mssql_select_db

(PHP 3, PHP 4, PHP 5)

mssql_select_db -- Select MS SQL database

Description

bool mssql_select_db ( string database_name [, resource link_identifier] )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

mssql_select_db() sets the current active database on the server that's associated with the specified link identifier. If no link identifier is specified, the last opened link is assumed. If no link is open, the function will try to establish a link as if mssql_connect() was called, and use it.

Every subsequent call to mssql_query() will be made on the active database.

To escape the name of a database that contains spaces, hyphens ("-"), or any other exceptional characters, the database name must be enclosed in brackets, as is shown in the example, below. This technique must also be applied when selecting a database name that is also a reserved word (such as "primary").

Пример 1. mssql_select_db() example

<?php
    $conn = mssql_connect('MYSQLSERVER', 'sa', 'password');
    mssql_select_db('[my data-base]', $conn);
?>

See also:
    mssql_connect(),
    mssql_pconnect(), and
    mssql_query()

Пред. | Начало | След.
mssql_rows_affected | Уровень выше | Microsoft SQL Server and Sybase Functions (PDO_DBLIB)


muscat Functions

Руководство по PHP
Пред. След.

LXXXVI. muscat Functions

Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

Установка

These functions are only available if PHP was configured with --with-muscat[=DIR].

Содержание
muscat_close -- Shuts down the muscat session and releases any memory back to PHP
muscat_get -- Gets a line back from the core muscat API
muscat_give -- Sends string to the core muscat API
muscat_setup_net -- Creates a new muscat session and returns the handle
muscat_setup -- Creates a new muscat session and returns the handle

Пред. | Начало | След.
mb_substr | Уровень выше | muscat_close


muscat_close

(4.0.5 - 4.2.3 only, PECL)

muscat_close -- Shuts down the muscat session and releases any memory back to PHP

Description

void muscat_close ( resource muscat_handle )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

[Not back to the system, note!]

Пред. | Начало | След.
muscat Functions | Уровень выше | muscat_get


muscat_get

(4.0.5 - 4.2.3 only, PECL)

muscat_get -- Gets a line back from the core muscat API

Description

string muscat_get ( resource muscat_handle )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и не относящееся к логическому типу значение, которое приводится к FALSE, например, 0 или "". За более подробной информации обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Пред. | Начало | След.
muscat_close | Уровень выше | muscat_give


muscat_give

(4.0.5 - 4.2.3 only, PECL)

muscat_give -- Sends string to the core muscat API

Description

void muscat_give ( resource muscat_handle, string string )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
muscat_get | Уровень выше | muscat_setup_net


muscat_setup_net

(4.0.5 - 4.2.3 only, PECL)

muscat_setup_net -- Creates a new muscat session and returns the handle

Description

resource muscat_setup_net ( string muscat_host )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

muscat_setup_net() creates a new muscat session and returns the handle.

muscat_host is the hostname to connect to. port is the port number to connect to.

Пред. | Начало | След.
muscat_give | Уровень выше | muscat_setup


muscat_setup

(4.0.5 - 4.2.3 only, PECL)

muscat_setup -- Creates a new muscat session and returns the handle

Description

resource muscat_setup ( int size [, string muscat_dir] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

size is the amount of memory in bytes to allocate for muscat. muscat_dir is the muscat installation dir e.g. "/usr/local/empower", it defaults to the compile time muscat directory.

Пред. | Начало | След.
muscat_setup_net | Уровень выше | Функции СУБД MySQL


Функции СУБД MySQL

Руководство по PHP
Пред. След.

LXXXVII. Функции СУБД MySQL

Введение

Расширение позволяет вам работать с СУБД MySQL. За информацией о MySQL обращайтесь к http://www.mysql.com/.

Документация MySQL находится по адресу http://dev.mysql.com/doc/.

Требования

Чтобы работать с функциями, вы должны скомпилировать PHP с поддержкой MySQL.

Установка

Используя директиву --with-mysql[=DIR] вы можете включить в PHP поддержку СУБД MySQL.

В PHP 4, директива --with-mysql включена по умолчанию. Чтобы отключить её, используйте директиву конфигурации --without-mysql. Кроме того, в PHP 4, при включении директивы без указания пути к папке установки MySQL, PHP будет использовать встроенную библиотеку MySQL-клиента. В Windows специальные DLL отсутствуют, клиент всегда встроен в PHP4. При использовании приложений использующих MySQL (к примеру, auth-mysql) не стоит использовать встроенную библиотеку -- укажите путь к папке установки MySQL, что будет выглядеть примерно так: --with-mysql=/path/to/mysql. Это заставит PHP использовать библиотеку, установленную MySQL, что позволит избежать любых конфликтов.

В PHP 5 поддержка MySQL больше не включена по умолчанию, кроме того в нём отсутствует встроенная библиотека-клиент. Подробнее о причине можно прочитать в FAQ.

Расширение работает с MySQL версий >= 4.1.0, но не эксплуатирует всю возможную функциональность этих версий. Для этого используйте MySQLi.

Внимание

Сбои в работе PHP могут иметь место при загрузке совместно этого расширения и расширения для работы с библиотекой GNU Recode. За дополнительной информацией обращайтесь к разделу о расширении для recode.

Замечание: Если вам требуется поддержка кодировок (отличных от latin, установленной по умолчанию), вам придётся установить внешнюю библиотеку, скомпилированную с их поддержкой.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Директивы конфигурации MySQL

Имя | Значение по умолчанию | Область изменения
mysql.allow_persistent | "On" | PHP_INI_SYSTEM
mysql.max_persistent | "-1" | PHP_INI_SYSTEM
mysql.max_links | "-1" | PHP_INI_SYSTEM
mysql.default_port | NULL | PHP_INI_ALL
mysql.default_socket | NULL | PHP_INI_ALL
mysql.default_host | NULL | PHP_INI_ALL
mysql.default_user | NULL | PHP_INI_ALL
mysql.default_password | NULL | PHP_INI_ALL
mysql.connect_timeout | "0" | PHP_INI_SYSTEM
За дальнейшей информацией и значениями PHP_INI_* констант обращайтесь к ini_set().

Краткое разъяснение конфигурационных директив.

mysql.allow_persistent логическое

Позволять ли постоянные соединения с MySQL.

mysql.max_persistent целое

Максимальное количество постоянных соединений на один процесс.

mysql.max_links целое

Максимальное количество соединений с MySQL на один процесс, включая постоянные соединения.

mysql.default_port строка

TCP-порт, используемый для соединения с базой данных по умолчанию (если не был указан другой). Если эта директива опущена, порт будет взят из переменной среды MYSQL_TCP_PORT, значения mysql-tcp в /etc/services или константы MYSQL_PORT, указанной при компиляции, в указанном порядке. Win32 использует только константу MYSQL_PORT.

mysql.default_socket строка

Тип сокета, используемого для соединения с локальной базой данных, если не был указан другой.

mysql.default_host строка

Адрес сервера, используемый для соединения с базой данных, если не указан другой. Не работает в безопасном режиме.

mysql.default_user строка

Имя пользователя, используемое для соединения с базой данных, если не указано другое. Не работает в безопасном режиме.

mysql.default_password строка

Пароль, используемый для соединения с базой данных, если не указан другой. Не работает в безопасном режиме.

mysql.connect_timeout целое

Время ожидания овета до разрыва соединения в секундах. Linux также использует это значение при ожидании первого ответа от сервера.

Типы ресурсов

Модуль MySQL исползует два дополнительных типа указателей. Первый является указателем на соединение с базой данных, второй указывает на ресурс, содержащий результат запроса.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

Начиная с PHP 4.3.0 можно указать дополнительные флаги для функций mysql_connect() и mysql_pconnect() functions. Предопределены следующие константы:

Таблица 2. MySQL константы

константа | описание
MYSQL_CLIENT_COMPRESS | использовать протокол сжатия
MYSQL_CLIENT_IGNORE_SPACE | Позволяет вставлять пробелы после имён функций
MYSQL_CLIENT_INTERACTIVE | Ждать interactive_timeout секунд (виесто wait_timeout) бездействия, до закрытия соединения.

Функция mysql_fetch_array() использует константы для определения типа возвращаемого массива. Предопределены следующие константы:

Таблица 3. Константы выборки MySQL

константа | описание
MYSQL_ASSOC | Результат возвращается в ассоциативном массиве с индексами под именами колонок.
MYSQL_BOTH | Результат возвращается в массиве, содержащем как численные индексы, так и индексы под именами колонок.
MYSQL_NUM | Результат возвращается в массиве, содержащем численные индексы. Индексы стартуют с 0 (0 содержит первую колонку).

Примеры

Этот пример показывает, как соединиться с базой данных, выполнить запрос, распечатать результат и отсоединиться.

Пример 1. Пример работы с MySQL

<?php
    /* Соединяемся, выбираем базу данных */
    $link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
        or die("Could not connect : " . mysql_error());
    print "Connected successfully";
    mysql_select_db("my_database") or die("Could not select database");

    /* Выполняем SQL-запрос */
    $query = "SELECT * FROM my_table";
    $result = mysql_query($query) or die("Query failed : " . mysql_error());

    /* Выводим результаты в html */
    print "<table>\n";
    while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
        print "\t<tr>\n";
        foreach ($line as $col_value) {
            print "\t\t<td>$col_value</td>\n";
        }
        print "\t</tr>\n";
    }
    print "</table>\n";

    /* Освобождаем память от результата */
    mysql_free_result($result);

    /* Закрываем соединение */
    mysql_close($link);
?>

Содержание
mysql_affected_rows -- Возвращает число затронуиых прошлой операцией рядов.
mysql_change_user -- Изменяет пользователя для указанного соединения.
mysql_client_encoding -- Возвращает кодировку соединения
mysql_close -- Закрывает соединение с сервером MySQL
mysql_connect -- Открывает соединение с сервером MySQL
mysql_create_db -- Создаёт базу данных MySQL
mysql_data_seek -- Перемещает внутренний указатель в результате запроса
mysql_db_name -- Возвращает название базы данных
mysql_db_query -- Переключается к указанной базе данных и посылает запрос
mysql_drop_db -- Уничтожает базу данных MySQL
mysql_errno -- Возвращает численный код ошибки выполнения последней операции с MySQL
mysql_error -- Возвращает строку ошибки последней операции с MySQL.
mysql_escape_string -- Экранирует SQL спец-символы для mysql_query.
mysql_fetch_array -- Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба.
mysql_fetch_assoc -- Обрабатывает ряд результата запроса и возвращает ассоциативный массив.
mysql_fetch_field -- Возвращает информацию о колонке из результата запроса в виде объекта.
mysql_fetch_lengths -- Возвращает длину каждого поля в результате.
mysql_fetch_object -- Обрабатывает ряд результата запроса и возвращает объект
mysql_fetch_row -- Орабатывает ряд результата запроса и возвращает неассоциативный массив.
mysql_field_flags -- Возвращает флаги указанного поля результата запроса.
mysql_field_len -- Возвращает длину указанного поля.
mysql_field_name -- Возвращает название указанной колонки результата запроса.
mysql_field_seek -- Устанавливает внутренний указатель поля на переданное смещение.
mysql_field_table -- Возвращает название таблицы, которой принадлежит указанное поле.
mysql_field_type -- Возвращает тип указанного поля результата запроса.
mysql_free_result -- Освобождает память от результата запроса
mysql_get_client_info -- Возвращает данные о MySQL-клиенте
mysql_get_host_info -- Возвращает информацию о соединении с MySQL
mysql_get_proto_info -- Возвращает информацию о протоколе MySQL
mysql_get_server_info -- Возвращает информацию о сервере MySQL
mysql_info -- Возвращает информацию о последнем запросе
mysql_insert_id -- Возвращает ID, сгенерированный при последнем INSERT-запросе.
mysql_list_dbs -- Возвращает список баз данных, доступных на сервере.
mysql_list_fields -- Возвращает список колонок таблицы
mysql_list_processes -- Возвращает список процессов MySQL
mysql_list_tables -- Возвращает список таблиц базы данных MySQL
mysql_num_fields -- Возвращает количество полей результата запроса
mysql_num_rows -- Возвращает количество рядов результата запроса
mysql_pconnect -- Устанавливает постоянное соединение с сервером MySQL.
mysql_ping -- Проверяет соединение с сервером и пересоединяется при необходимости
mysql_query -- Посылает запрос MySQL
mysql_real_escape_string -- Экранирует специальные символы в строках для использования в выражениях SQL
mysql_result -- Возвращает данные результата запроса
mysql_select_db -- Выбирает базу данных MySQL
mysql_stat -- Возвращает текущий статус сервера
mysql_tablename -- Возвращает имя таблицы, содержащей указанное поле
mysql_thread_id -- Возвращает ID текущего потока
mysql_unbuffered_query -- Посылает MySQL SQL-запрос без авто-обработки результата и её буфферизации.

Пред. | Начало | След.
muscat_setup | Уровень выше | mysql_affected_rows


mysql_affected_rows

(PHP 3, PHP 4, PHP 5)

mysql_affected_rows -- Возвращает число затронуиых прошлой операцией рядов.

Описание

int mysql_affected_rows ( [resource link_identifier] )

mysql_affected_rows() возвращает количество рядов, затронутых последним INSERT, UPDATE, DELETE запросом к серверу, на который ссылается указатель link_identifier. Если ресурс не указан, функция использует последнее, успешное соединение, выполненное с помощью функции mysql_connect().

Замечание: При использовании транзакций mysql_affected_rows() надо вызывать после INSERT, UPDATE, DELETE запроса, но не после подтверждения.

Если последний запрос был DELETE без указания WHERE и, соответственно, таблица была очищена, функция вернёт ноль (0).

Замечание: При использовании UPDATE, MySQL не обновит колонки, уже содержащие новое значение. Вследствие этого, функция mysql_affected_rows() не всегда возвращает количество рядов, подошедших по условия, только количество рядов, обновлённых запросом.

mysql_affected_rows() не работает с SELECT -- только с запросами, модифицирующими таблицу. Чтобы получить количество рядов, возвращённых SELECT-запросом, используйте функцию mysql_num_rows().

Если последний запрос был неудачным, функция вернёт -1.

Пример 1. DELETE-запрос

<?php
    /* соединямеся с базой данных */
    mysql_pconnect("localhost", "mysql_user", "mysql_password") or
        die("Could not connect: " . mysql_error());
    mysql_select_db("mydb");

    /* здесь функция вернёт корректное число удалённых записей */
    mysql_query("DELETE FROM mytable WHERE id < 10");
    printf ("Records deleted: %d\n", mysql_affected_rows());

    /* без указания WHERE в запросе, функция всегда возвращает 0  */
    mysql_query("DELETE FROM mytable");
    printf ("Records deleted: %d\n", mysql_affected_rows());
?>

Вышеописанный пример выдаст следующий результат:

Records deleted: 10
Records deleted: 0

Пример 2. UPDATE-запрос

<?php
    /* соединямеся с базой данных */
    mysql_pconnect("localhost", "mysql_user", "mysql_password") or
        die("Could not connect: " . mysql_error());
    mysql_select_db("mydb");

    /* Обновляем ряды */
    mysql_query("UPDATE mytable SET used=1 WHERE id < 10");
    printf ("Updated records: %d\n", mysql_affected_rows());
    mysql_query("COMMIT");
?>

Вышеописанный пример выдаст следующий результат:

Updated Records: 10

См. также mysql_num_rows(), mysql_info().

Пред. | Начало | След.
Функции СУБД MySQL | Уровень выше | mysql_change_user


mysql_change_user

(PHP 3 >= 3.0.13)

mysql_change_user -- Изменяет пользователя для указанного соединения.

Описание

int mysql_change_user ( string user, string password [, string database [, resource link_identifier]] )

mysql_change_user() изменяет пользователя для указанного текущего активного соединения, или соединения переданного опциональным параметром link_identifier. Если параметр указателя передан, то после выполнения операции, соединение с сервером, на который он ссылается становится текущим соединением. Если авторизация по переданным параметрам не успешна, то пользователь не изменяется. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: Эта функция была введена в PHP 3.0.13 и требует MySQL 3.23.3 или выше. Она недоступна в PHP4.

Пред. | Начало | След.
mysql_affected_rows | Уровень выше | mysql_client_encoding


mysql_client_encoding

(PHP 4 >= 4.3.0, PHP 5)

mysql_client_encoding -- Возвращает кодировку соединения

Описание

string mysql_client_encoding ( [resource link_identifier] )

mysql_client_encoding() возвращает название кодировки, с которой работет текущее соединения.

Пример 1. Пример использования mysql_client_encoding()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$charset = mysql_client_encoding($link);
printf ("current character set is %s\n", $charset);
?>

Вышеописанный пример выдаст следующий результат:

current character set is latin1

Cм. таже mysql_real_escape_string()

Пред. | Начало | След.
mysql_change_user | Уровень выше | mysql_close


mysql_close

(PHP 3, PHP 4, PHP 5)

mysql_close -- Закрывает соединение с сервером MySQL

Описание

bool mysql_close ( [resource link_identifier] )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

mysql_close() закрывает соедиение с базой данных MySQL, на которое указывает переданный указатель. Если параметр link_identifier не указан, закрывается последнее открытое (текущее) соединение.

Использование mysql_close() не необходимо для непостоянных соединений. Они автоматически закрываются в конце скрипта. См. также высвобождение ресурсов.

Замечание: mysql_close() не может закрывать постоянные соединения, открытые функцией mysql_pconnect().

Пример 1. Пример использования

<?php
    $link = mysql_connect("localhost", "mysql_user", "mysql_password")
        or die("Could not connect: " . mysql_error());
    print ("Connected successfully");
    mysql_close($link);
?>

См. также mysql_connect() и mysql_pconnect().

Пред. | Начало | След.
mysql_client_encoding | Уровень выше | mysql_connect


mysql_connect

(PHP 3, PHP 4, PHP 5)

mysql_connect -- Открывает соединение с сервером MySQL

Описание

resource mysql_connect ( [string server [, string username [, string password [, bool new_link [, int client_flags]]]]] )

Возвращает указатель на соединение с MySQL в случае успешного выполнения, или FALSE при неудаче.

mysql_connect() устанавливает соединение с сервером MySQL. Следующие значения по умолчанию установлены для отсутствующих параметров: server = 'localhost:3306', username = имя пользователя владельца процесса сервера и password = пустой пароль.

Параметр server может также включать номер порта, к примеру "hostname:port" или путь к сокету, к примеру ":/path/to/socket" для локального сервера.

Замечание: При указании параметру server значения "localhost" или "localhost:port" клиентская библиотека MySQL будет пытаться соединиться с локальным сокетом. Если вы всё же хотите использовать TCP/IP, используйте адрес "127.0.0.1" вместо "localhost". Если клиентская библиотека пытается подключиться не к тому локальному сокету, это можно исправить через указание директивы mysql.default_host в конфигурации PHP, после чего можно оставлять параметр server пустым.

Поддержка указания порта через ":port" была добавлена в PHP 3.0B4.

Поддержка указания локального сокета как ":/path/to/socket" была добавлена в PHP 3.0.10.

Подавить вывод ошибок можно добавив @ в начало названия функции (@mysql_connect())

Если второй вызов функции произошёл с теми же аргументами mysql_connect(), новое соединение не будет установлено. Вместо этого функция вернёт ссылку на уже установленное соединение. Параметр new_link может заставить функцию mysql_connect() открыть ещё одно соединение, даже если соединение с аналогичными параметрами уже открыто. Параметр client_flags должен быть комбинацией из следующих констант: MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE, MYSQL_CLIENT_INTERACTIVE.

Замечание: Параметр new_link добавлен в PHP 4.2.0

Параметр client_flags добавлен PHP 4.3.0

Соединение с сервером будет закрыто при завершении исполнения скрипта, если до этого оно не будет закрыто с помощью функции mysql_close().

Пример 1. Пример использования mysql_connect()

<?php
    $link = mysql_connect("localhost", "mysql_user", "mysql_password")
        or die("Could not connect: " . mysql_error());
    print ("Connected successfully");
    mysql_close($link);
?>

См. также mysql_pconnect() and mysql_close().

Пред. | Начало | След.
mysql_close | Уровень выше | mysql_create_db


mysql_create_db

(PHP 3, PHP 4, PHP 5)

mysql_create_db -- Создаёт базу данных MySQL

Описание

bool mysql_create_db ( string database_name [, resource link_identifier] )

mysql_create_db() пытается создать базу данных на сервере, на который ссылается переданный указатель.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. Пример создания базы данных MySQL

<?php
    $link = mysql_pconnect("localhost", "mysql_user", "mysql_password")
        or die("Could not connect: " . mysql_error());

    if (mysql_create_db("my_db")) {
        print ("Database created successfully\n");
    } else {
        printf ("Error creating database: %s\n", mysql_error());
    }
?>

Для совместимости, как алиас, доступна устаревшая функция mysql_createdb() Однако, использовать её крайне не рекомандуется.

Замечание: Функция mysql_create_db() не рекомендуется к использованию. Предпочтительнее использовать mysql_query() с SQL-запросов создания базы данных SQL CREATE DATABASE.

Внимание

Эта функция недоступна в библиотеке для MySQL версий 4.x.

См. также mysql_drop_db() и mysql_query().

Пред. | Начало | След.
mysql_connect | Уровень выше | mysql_data_seek


mysql_data_seek

(PHP 3, PHP 4, PHP 5)

mysql_data_seek -- Перемещает внутренний указатель в результате запроса

Описание

bool mysql_data_seek ( resource result_identifier, int row_number )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

mysql_data_seek() перемещает внутренний указатель в результате запроса к ряду с указанным номером. Следующий вызов mysql_fetch_row() вернёт именно его.

Параметр Row_number должен быть значением от 0 до mysql_num_rows - 1.

Замечание:
      Функция mysql_data_seek() может быть использована
      только с mysql_query(), но не с
      mysql_unbuffered_query().

Пример 1. Пример использования mysql_data_seek()

<?php
    $link = mysql_pconnect("localhost", "mysql_user", "mysql_password")
        or die("Could not connect: " . mysql_error());

    mysql_select_db("samp_db")
        or die("Could not select database: " . mysql_error());

    $query = "SELECT last_name, first_name FROM friends";
    $result = mysql_query($query)
        or die("Query failed: " . mysql_error());

    /* получение рядов в обратном порядке */
    for ($i = mysql_num_rows($result) - 1; $i >= 0; $i--) {
        if (!mysql_data_seek($result, $i)) {
            echo "Cannot seek to row $i: " . mysql_error() . "\n";
            continue;
        }

        if(!($row = mysql_fetch_object($result)))
            continue;

        echo "$row->last_name $row->first_name<br />\n";
    }

    mysql_free_result($result);
?>

См. также mysql_query() и mysql_num_rows().

Пред. | Начало | След.
mysql_create_db | Уровень выше | mysql_db_name


mysql_db_name

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

mysql_db_name -- Возвращает название базы данных

Описание

string mysql_db_name ( resource result, int row [, mixed field] )

mysql_db_name() принимает первым параметром указатель на результат функции mysql_list_dbs(). Параметр row является индексом ряда в результате.

В случае ошибки функция возвращает FALSE. Используйте mysql_errno() и mysql_error(), чтобы определить природу ошибок.

Пример 1. Пример использования mysql_db_name()

<?php
    error_reporting(E_ALL);

    mysql_connect('dbhost', 'username', 'password');
    $db_list = mysql_list_dbs();

    $i = 0;
    $cnt = mysql_num_rows($db_list);
    while ($i < $cnt) {
        echo mysql_db_name($db_list, $i) . "\n";
        $i++;
    }
?>

Для совместимости, как алиас, доступна устаревшая функция mysql_dbname(). Однако, использовать её крайне не рекомендуется.

Пред. | Начало | След.
mysql_data_seek | Уровень выше | mysql_db_query


mysql_db_query

(PHP 3, PHP 4, PHP 5)

mysql_db_query -- Переключается к указанной базе данных и посылает запрос

Описание

resource mysql_db_query ( string database, string query [, resource link_identifier] )

Возвращает указатель на результат запроса к MySQL или FALSE при ошибке. Функция также возвращает TRUE/FALSE для INSERT/UPDATE/DELETE запросов для индикации успеха/провала.

mysql_db_query() выбирает указанную базу данных и выполняет указанный запрос. Если опциональный параметр указателя на соединение не указан, функция будет использовать последнее открытое соединение. Если нет ни одного открытого соединения, функция попытается создать новое, аналогично функции mysql_connect(), вызванной без параметров.

Учтите, что эта функция НЕ переключает соединение обратно к предыдущей базе данных. Другими словами, вы не можете использовать эту функцию, чтобы временно переключиться на другую базу данных и выполнить запрос. Переключиться обратно вам придётся вручную. Крайне рекомендуется использовать синтаксис database.table в SQL-запросах, вместо использования этой функции.

См. также mysql_connect() и mysql_query().

Замечание: Функция устарела с выходом PHP 4.0.6. Не используйте её. Используйте комбинацию из mysql_select_db() м mysql_query().

Пред. | Начало | След.
mysql_db_name | Уровень выше | mysql_drop_db


mysql_drop_db

(PHP 3, PHP 4, PHP 5)

mysql_drop_db -- Уничтожает базу данных MySQL

Описание

bool mysql_drop_db ( строка database_name [, resource link_identifier] )

mysql_drop_db() пытается уничтожить базу данных на сервере, на который ссылается переданный указатель.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Для совместимости, как алиас, доступна устаревшая функция mysql_dropdb(). Однако, использовать её крайне не рекомендуется.

Замечание: Функция mysql_drop_db() не рекомендуется к использованию. Использование mysql_query() и SQL-синтаксиса SQL DROP DATABASE предпочтительнее.

Внимание

Эта функция недоступна в библиотеке для MySQL версий 4.x.

См. также mysql_create_db() и mysql_query().

Пред. | Начало | След.
mysql_db_query | Уровень выше | mysql_errno


mysql_errno

(PHP 3, PHP 4, PHP 5)

mysql_errno -- Возвращает численный код ошибки выполнения последней операции с MySQL

Описание

int mysql_errno ( [resource link_identifier] )

Возвращает код ошибки последней функции работы с MySQL, или 0 (ноль) если операция выполнена успешно.

Ошибки работы с MySQL больше не вызывают сообщений в PHP. Вместо этого используйте функцию mysql_errno(), чтобы получить код ошибки. Учтите, что функция возвращает код ошибки только последней выполненной функции (исключая mysql_error() и mysql_errno()). Проверяйте результат работы функции до вызова следующей.

Пример 1. Пример использования mysql_errno()

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password");

    mysql_select_db("nonexistentdb");
    echo mysql_errno() . ": " . mysql_error(). "\n";

    mysql_select_db("kossu");
    mysql_query("SELECT * FROM nonexistenttable");
    echo mysql_errno() . ": " . mysql_error() . "\n";
?>

Вышеописаный пример выдаст следующий результат:

1049: Unknown database 'nonexistentdb'
1146: Table 'kossu.nonexistenttable' doesn't exist

Замечание: Если опциональный параметр указан, будет использовано соединение, на которое он указывает. В противном случае, будет использовано последнее открытое.

См. также mysql_error().

Пред. | Начало | След.
mysql_drop_db | Уровень выше | mysql_error


mysql_error

(PHP 3, PHP 4, PHP 5)

mysql_error -- Возвращает строку ошибки последней операции с MySQL.

Описание

string mysql_error ( [resource link_identifier] )

Возвращает строку, содержащую текст ошибки выполнения последней функции MySQL, или '' (пустая строка) если операция выполнена успешно. Если в функцию не передан параметр ссылки на соединение, последнее открытое соединение будет использовано.

Ошибки работы с MySQL больше не вызывают сообщений в PHP. Вместо этого используйте функцию mysql_errno(), чтобы получить код ошибки. Учтите, что функция возвращает код ошибки только последней выполненной функции (исключая mysql_error() и mysql_errno()). Проверяйте результат работы функции до вызова следующей.

Пример 1. Пример использования mysql_error

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password");

    mysql_select_db("nonexistentdb");
    echo mysql_errno() . ": " . mysql_error(). "\n";

    mysql_select_db("kossu");
    mysql_query("SELECT * FROM nonexistenttable");
    echo mysql_errno() . ": " . mysql_error() . "\n";
?>

Вышеописанный код выдаст следующий результат:

1049: Unknown database 'nonexistentdb'
1146: Table 'kossu.nonexistenttable' doesn't exist

См. также mysql_errno().

Пред. | Начало | След.
mysql_errno | Уровень выше | mysql_escape_string


mysql_escape_string

(PHP 4 >= 4.0.3, PHP 5)

mysql_escape_string -- Экранирует SQL спец-символы для mysql_query.

Описание

string mysql_escape_string ( string unescaped_string )

Функция экранирует все спец-символы в unescaped_string, вследствие чего, её можно безопасно использовать в mysql_query().

Замечание: mysql_escape_string() не экраинрует % и _.

Функция идентична mysql_real_escape_string(), исключая то, что mysql_real_escape_string() принимает параметром ещё и указатель на соединение и экранирует в зависимости от кодировки. mysql_escape_string() не делает этого и результат работы не зависит от кодировки, в который вы работаете с БД.

Пример 1. Пример использования mysql_escape_string()

<?php
    $item = "Zak's Laptop";
    $escaped_item = mysql_escape_string($item);
    printf ("Escaped string: %s\n", $escaped_item);
?>

Вышеописанный пример выдаст следующий результат:

Escaped string: Zak\'s Laptop

См. также mysql_real_escape_string(), addslashes() и директиву magic_quotes_gpc.

Пред. | Начало | След.
mysql_error | Уровень выше | mysql_fetch_array


mysql_fetch_array

(PHP 3, PHP 4, PHP 5)

mysql_fetch_array -- Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба.

Описание

array mysql_fetch_array ( resource result [, int result_type] )

Возвращает массив с обработанным рядом результата запроса, или FALSE, если рядов больше нет.

mysql_fetch_array() расширенная версия функции mysql_fetch_row(). В дополнении к хранению значений в массиве с численными индексами, функция возвращает значения в массиве с индексами по названию колонок.

Если несколько колонок в результате будут иметь одинаковые названия, последняя колонка будет возвращена. Чтобы получить доступ к первым, используйте численные индексы массива или алиасы в запросе. В случае алиасов используйте именно их -- вы не сможете использовать настоящие имена колонок, как например не сможете использовать 'field' в нижеописанном примере.

Пример 1. Запрос с дублирующимися именами колонок

select table1.field as foo, table2.field as bar from table1, table2

Важно заметить, что mysql_fetch_array() работает НЕ медленне, чем mysql_fetch_row(), в то время, как предоставляет более удобный доступ к данным.

Второй опциональный аргумент result_type в функции mysql_fetch_array() -- константа и может принимать следующие значения: MYSQL_ASSOC, MYSQL_NUM и MYSQL_BOTH. Эта возможность добавлена в PHP 3.0.7. Значением по умолчанию является: MYSQL_BOTH.

Используя MYSQL_BOTH, вы получите массив, состоящий как из ассоциативных индексов, так и из численных. MYSQL_ASSOC вернёт только ассоциативные соответствия (аналогично функции mysql_fetch_assoc() и MYSQL_NUM только численные (аналогично функции mysql_fetch_row()).

Замечание: Имена полей, возвращаемые этой функцией, регистро-зависимы.

Пример 2. mysql_fetch_array() с MYSQL_NUM

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("Could not connect: " . mysql_error());
    mysql_select_db("mydb");

    $result = mysql_query("SELECT id, name FROM mytable");

    while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
        printf ("ID: %s  Name: %s", $row[0], $row[1]);
    }

    mysql_free_result($result);
?>

Пример 3. mysql_fetch_array() с MYSQL_ASSOC

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("Could not connect: " . mysql_error());
    mysql_select_db("mydb");

    $result = mysql_query("SELECT id, name FROM mytable");

    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        printf ("ID: %s  Name: %s", $row["id"], $row["name"]);
    }

    mysql_free_result($result);
?>

Пример 4. mysql_fetch_array() с MYSQL_BOTH

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("Could not connect: " . mysql_error());
    mysql_select_db("mydb");

    $result = mysql_query("SELECT id, name FROM mytable");

    while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
        printf ("ID: %s  Name: %s", $row[0], $row["name"]);
    }

    mysql_free_result($result);
?>

См. также mysql_fetch_row() и mysql_fetch_assoc().

Пред. | Начало | След.
mysql_escape_string | Уровень выше | mysql_fetch_assoc


mysql_fetch_assoc

(PHP 4 >= 4.0.3, PHP 5)

mysql_fetch_assoc -- Обрабатывает ряд результата запроса и возвращает ассоциативный массив.

Описание

array mysql_fetch_assoc ( resource result )

Возвращает ассоциативный массив с названиями индексов, соответсвующими названиям колонок или FALSE если рядов больше нет.

Функция mysql_fetch_assoc() аналогична вызову функции mysql_fetch_array() со вторым параметром, равным MYSQL_ASSOC. Функция возвращает только ассоциативный массив. Если вам нужны как ассоциативные, так и численные индексы в массиве, обратитесь к функции mysql_fetch_array().

Если несколько колонок в запросе имеют одинаковые имена, значение ключа массива с индексом названия колонок будет равно значению последней из колонок. Чтобы работать с первыми, используйте функции, возвращающие не ассоциативный массив: mysql_fetch_row(), либо используйте алиасы. Смотрите пример использования алиасов в SQL в описании функции mysql_fetch_array().

Важно заметить, что mysql_fetch_assoc() работает НЕ медленнее, чем mysql_fetch_row(), предоставляя более удобный доступ к данным.

Замечание: Имена полей, возвращаемые этой функцией, регистро-зависимы.

Пример 1. Расширенный пример использования mysql_fetch_assoc()

<?php

    $conn = mysql_connect("localhost", "mysql_user", "mysql_password");

    if (!$conn) {
        echo "Unable to connect to DB: " . mysql_error();
        exit;
    }

    if (!mysql_select_db("mydbname")) {
        echo "Unable to select mydbname: " . mysql_error();
        exit;
    }

    $sql = "SELECT id as userid, fullname, userstatus
            FROM   sometable
            WHERE  userstatus = 1";

    $result = mysql_query($sql);

    if (!$result) {
        echo "Could not successfully run query ($sql) from DB: " . mysql_error();
        exit;
    }

    if (mysql_num_rows($result) == 0) {
        echo "No rows found, nothing to print so am exiting";
        exit;
    }

    // До тех пор, пока в результате содержатся ряды, помещаем их в
    // ассоциативный массив.
    // Заметка: если запрос возвращает только один ряд -- нет нужды в цикле.
    // Заметка: если вы добавите extract($row); в начало цикла, вы сделаете
    //          доступными переменные $userid, $fullname, $userstatus.
    while ($row = mysql_fetch_assoc($result)) {
        echo $row["userid"];
        echo $row["fullname"];
        echo $row["userstatus"];
    }

    mysql_free_result($result);

?>

См. также
mysql_fetch_row(),
mysql_fetch_array(),
mysql_query() и
mysql_error().

Пред. | Начало | След.
mysql_fetch_array | Уровень выше | mysql_fetch_field


mysql_fetch_field

(PHP 3, PHP 4, PHP 5)

mysql_fetch_field -- Возвращает информацию о колонке из результата запроса в виде объекта.

Описание

object mysql_fetch_field ( resource result [, int field_offset] )

Возвращает объект, содержащий информацию о колонке.

mysql_fetch_field() может использоваться для получения информации о колонках конкретного запроса. Если смещение не указано, функция возвращает информацию о первой колонке, которая ещё не была обработана функцией mysql_fetch_field().

Свойства объекта:

  • name - название колонки

  • table - название таблицы, которой принадлежит колонка

  • max_length - максимальная длинна содержания

  • not_null - 1, если колонка не может быть равна NULL

  • primary_key - 1, если колонка -- первичный индекс

  • unique_key - 1, если колона -- уникальный индекс

  • multiple_key - 1, если колонка -- не уникальный индекс

  • numeric - 1, если колонка численная

  • blob - 1, если колонка -- BLOB

  • type - тип колонки

  • unsigned - 1, если колонка строго положительная (unsigned)

  • zerofill - 1, если колонка заполняется нулями (zero-filled)

Замечание: Имена полей, возвращаемые этой функцией, регистро-зависимы.

Пример 1. Пример использования mysql_fetch_field()

<?php
mysql_connect('localhost:3306', $user, $password)
    or die("Could not connect: " . mysql_error());
mysql_select_db("database");
$result = mysql_query("select * from table")
    or die("Query failed: " . mysql_error());
/* получаем данные о колонке */
$i = 0;
while ($i < mysql_num_fields($result)) {
    echo "Information for column $i:<br />\n";
    $meta = mysql_fetch_field($result, $i);
    if (!$meta) {
        echo "No information available<br />\n";
    }
    echo "<pre>
blob:         $meta->blob
max_length:   $meta->max_length
multiple_key: $meta->multiple_key
name:         $meta->name
not_null:     $meta->not_null
numeric:      $meta->numeric
primary_key:  $meta->primary_key
table:        $meta->table
type:         $meta->type
unique_key:   $meta->unique_key
unsigned:     $meta->unsigned
zerofill:     $meta->zerofill
</pre>";
    $i++;
}
mysql_free_result($result);
?>

См. также mysql_field_seek().

Пред. | Начало | След.
mysql_fetch_assoc | Уровень выше | mysql_fetch_lengths


mysql_fetch_lengths

(PHP 3, PHP 4, PHP 5)

mysql_fetch_lengths -- Возвращает длину каждого поля в результате.

Описание

array mysql_fetch_lengths ( resource result )

Возвращает массив длин для каждого поля, содержащегося в последнем, обработанном функцией mysql_fetch_row(), ряду. При неудаче возвращает FALSE.

mysql_fetch_lengths() возвращает длины каждого поля,
содержащегося в последнем ряду, обработанном функциями
mysql_fetch_row(),
mysql_fetch_array(), и
mysql_fetch_object() в массиве, начинающемся с 0.

См. также mysql_fetch_row().

Пред. | Начало | След.
mysql_fetch_field | Уровень выше | mysql_fetch_object


mysql_fetch_object

(PHP 3, PHP 4, PHP 5)

mysql_fetch_object -- Обрабатывает ряд результата запроса и возвращает объект

Описание

object mysql_fetch_object ( resource result )

Возвращает объект со свойствами, соответствующими колонкам в обработанном ряду или FALSE, если рядов больше нет.

mysql_fetch_object() работает аналогично mysql_fetch_array(), с единственным отличием -- функция возвращает объект, вместо массива. Это, кроме всего прочего, означает, что вы сможете работать с полями только по имени колонок. Числа не могут быть свойствами объекта.

Замечание: Имена полей, возвращаемые этой функцией, регистро-зависимы.

<?php

/* корректно */
echo $row->field;
/* не корректно */
echo $row->0;

?>

В плане скорости эта функция аналогична mysql_fetch_array() и почти также быстра, как mysql_fetch_row() (разница незначительна).

Пример 1. Пример использования mysql_fetch_object()

<?php
mysql_connect("hostname", "user", "password");
mysql_select_db("mydb");
$result = mysql_query("select * from mytable");
while ($row = mysql_fetch_object($result)) {
    echo $row->user_id;
    echo $row->fullname;
}
mysql_free_result($result);
?>

См. также
mysql_fetch_array(),
mysql_fetch_assoc() и
mysql_fetch_row().

Пред. | Начало | След.
mysql_fetch_lengths | Уровень выше | mysql_fetch_row


mysql_fetch_row

(PHP 3, PHP 4, PHP 5)

mysql_fetch_row -- Орабатывает ряд результата запроса и возвращает неассоциативный массив.

Описание

array mysql_fetch_row ( resource result )

Возвращает массив, содержашей данные обработанного ряда, или FALSE, если рядов больше нет.

mysql_fetch_row() обрабатывает один ряд результата, на который ссылается переданный указатель. Ряд возвращается в массиве. Каждая колонка распологается в следующей ячейке массива. Массив начинается с индекса 0.

Последующие вызовы функции mysql_fetch_row() вернут следующие ряды или FALSE, если рядов не осталось.

Замечание: Имена полей, возвращаемые этой функцией, регистро-зависимы.

См. также
mysql_fetch_array(),
mysql_fetch_assoc(),
mysql_fetch_object(),
mysql_data_seek(),
mysql_fetch_lengths() и
mysql_result().

Пред. | Начало | След.
mysql_fetch_object | Уровень выше | mysql_field_flags


mysql_field_flags

(PHP 3, PHP 4, PHP 5)

mysql_field_flags -- Возвращает флаги указанного поля результата запроса.

Описание

string mysql_field_flags ( resource result, int field_offset )

mysql_field_flags() возвращает флаги указанной колонки. Каждый флаг возвращается как отдельное слово отделённое от предыдущего пробелом. Полученное значение можно разбить в массив, используя функцию explode()

Возвращаются следующие флаги (если ваша версия MySQL уже содержит работу с ними): "not_null", "primary_key", "unique_key", "multiple_key", "blob", "unsigned", "zerofill", "binary", "enum", "auto_increment", "timestamp".

Для совместимости, как алиас, доступна устаревшая функция mysql_fieldflags(). Однако, использовать её крайне не рекомендуется.

Пред. | Начало | След.
mysql_fetch_row | Уровень выше | mysql_field_len


mysql_field_len

(PHP 3, PHP 4, PHP 5)

mysql_field_len -- Возвращает длину указанного поля.

Описание

int mysql_field_len ( resource result, int field_offset )

mysql_field_len() возвращает длину указанной колонки.

Для совместимости, как алиас, доступна устаревшая функция mysql_fieldlen(). Однако, использовать её крайне не рекомендуется.

Пред. | Начало | След.
mysql_field_flags | Уровень выше | mysql_field_name


mysql_field_name

(PHP 3, PHP 4, PHP 5)

mysql_field_name -- Возвращает название указанной колонки результата запроса.

Описание

string mysql_field_name ( resource result, int field_index )

mysql_field_name() возвращает название колонки с указанным индексом. Параметр result должен быть указателем на результат запроса, а field_index -- индексом колонки в запросе.

Замечание: field_index начинается с 0.

К примеру, индекс третьей колонки будет 2, а индекс четвёртой -- 3.

Замечание: Имена полей, возвращаемые этой функцией, регистро-зависимы.

Пример 1. Пример использования mysql_field_name()

<?php
/* Таблица пользователей состоит из трёх колонок:
 *   user_id
 *   username
 *   password.
 */
$link = mysql_connect('localhost', "mysql_user", "mysql_password");
$dbname = "mydb";
mysql_select_db($dbname, $link)
    or die("Could not set $dbname: " . mysql_error());
$res = mysql_query("select * from users", $link);

echo mysql_field_name($res, 0) . "\n";
echo mysql_field_name($res, 2);
?>

Вышеописанный пример выдаст следующий результат:

user_id
password

Для совместимости, как алиас, доступна устаревшая функция mysql_fieldname(). Однако, использовать её крайне не рекомендуется.

Пред. | Начало | След.
mysql_field_len | Уровень выше | mysql_field_seek


mysql_field_seek

(PHP 3, PHP 4, PHP 5)

mysql_field_seek -- Устанавливает внутренний указатель поля на переданное смещение.

Описание

array mysql_field_seek ( resource result, int field_offset )

Перемещает указатель к колонке с переданным индексом. Если следующий вызов функции не содержит смещения, будет возвращено смещение, содержащееся в mysql_field_seek().

См. также mysql_fetch_field().

Пред. | Начало | След.
mysql_field_name | Уровень выше | mysql_field_table


mysql_field_table

(PHP 3, PHP 4, PHP 5)

mysql_field_table -- Возвращает название таблицы, которой принадлежит указанное поле.

Описание

string mysql_field_table ( resource result, int field_offset )

Возвращает название таблицы, которой принадлежит указанное поле.

Для совместимости доступна к использованию функция mysql_fieldtable(). Однако, использовать её крайне не рекомендуется.

Пред. | Начало | След.
mysql_field_seek | Уровень выше | mysql_field_type


mysql_field_type

(PHP 3, PHP 4, PHP 5)

mysql_field_type -- Возвращает тип указанного поля результата запроса.

Описание

string mysql_field_type ( resource result, int field_offset )

Функция mysql_field_type() аналогична функции mysql_field_name(). Аргументы одинаковы, но вместо имени колонки возвращается её тип. Поля могут быть типов "int", "real", "string", "blob", а также других, описанных в документации MySQL.

Пример 1. Пример использования mysql_field_type()

<?php
    mysql_connect("localhost", "mysql_username", "mysql_password");
    mysql_select_db("mysql");
    $result = mysql_query("SELECT * FROM func");
    $fields = mysql_num_fields($result);
    $rows   = mysql_num_rows($result);
    $table = mysql_field_table($result, 0);
    echo "Your '".$table."' table has ".$fields." fields and ".$rows." record(s)\n";
    echo "The table has the following fields:\n";
    for ($i=0; $i < $fields; $i++) {
        $type  = mysql_field_type($result, $i);
        $name  = mysql_field_name($result, $i);
        $len   = mysql_field_len($result, $i);
        $flags = mysql_field_flags($result, $i);
        echo $type." ".$name." ".$len." ".$flags."\n";
    }
    mysql_free_result($result);
    mysql_close();
?>

Вышеописанный пример выдаст следующий результат:

Your 'func' table has 4 fields and 1 record(s)
The table has the following fields:
string name 64 not_null primary_key binary
int ret 1 not_null
string dl 128 not_null
string type 9 not_null enum

Для совместимости доступна функция mysql_fieldtype(). Однако, её использование крайне не рекомендуется.

Пред. | Начало | След.
mysql_field_table | Уровень выше | mysql_free_result


mysql_free_result

(PHP 3, PHP 4, PHP 5)

mysql_free_result -- Освобождает память от результата запроса

Описание

bool mysql_free_result ( resource result )

mysql_free_result() высвободит всю память, занимаемую результатом, на который ссылается переданный функции указатель result.

mysql_free_result() нуждается в вызове только в том случае, если вы всерьёз обеспокоены тем, сколько памяти используют ваши запросы к БД, возвращающие большое количество данных. Вся память, используемая для хранения этих данных автоматически очистится в конце работы скрипта.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Для совместимости, как алиас, доступна устаревшая функция mysql_freeresult(). Однако, использовать её крайне не рекомендуется.

Пред. | Начало | След.
mysql_field_type | Уровень выше | mysql_get_client_info


mysql_get_client_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_client_info -- Возвращает данные о MySQL-клиенте

Описание

string mysql_get_client_info ( void )

mysql_get_client_info() возвращает строку, содержащую версию клиентской библиотеки.

Пример 1. Пример использования mysql_get_client_info()

<?php
    printf ("MySQL client info: %s\n", mysql_get_client_info());
?>

Вышеописанный пример выдаст следующий результат:

MySQL client info: 3.23.39

См. также
mysql_get_host_info(),
mysql_get_proto_info() и
mysql_get_server_info().

Пред. | Начало | След.
mysql_free_result | Уровень выше | mysql_get_host_info


mysql_get_host_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_host_info -- Возвращает информацию о соединении с MySQL

Описание

string mysql_get_host_info ( [resource link_identifier] )

mysql_get_host_info() возвращает строку, описывающую соединение, на которое ссылается переданный указатель link_identifier, включая имя хоста. Если параметр link_identifier опущен, будет использовано последнее соединение.

Пример 1. Пример использования mysql_get_host_info()

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("Could not connect: " . mysql_error());
    printf ("MySQL host info: %s\n", mysql_get_host_info());
?>

Вышеописанный пример выдаст следующий результат:

MySQL host info: Localhost via UNIX socket

См. также
mysql_get_client_info(),
mysql_get_proto_info() и
mysql_get_server_info().

Пред. | Начало | След.
mysql_get_client_info | Уровень выше | mysql_get_proto_info


mysql_get_proto_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_proto_info -- Возвращает информацию о протоколе MySQL

Описание

int mysql_get_proto_info ( [resource link_identifier] )

mysql_get_proto_info() возвращает версию протокола, используемую соединением, на которое ссылается указатель link_identifier. Если параметр link_identifier опущен, используется последнее открытое соединение.

Пример 1. Пример использования mysql_get_proto_info()

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("Could not connect: " . mysql_error());
    printf ("MySQL protocol version: %s\n", mysql_get_proto_info());
?>

Вышеописанный пример выдаст следующий результат:

MySQL protocol version: 10

См. также
mysql_get_client_info(),
mysql_get_host_info() и
mysql_get_server_info().

Пред. | Начало | След.
mysql_get_host_info | Уровень выше | mysql_get_server_info


mysql_get_server_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_server_info -- Возвращает информацию о сервере MySQL

Описание

string mysql_get_server_info ( [resource link_identifier] )

mysql_get_server_info() возвращает версию сервера, на соединение с которым ссылается переданный функции указатель link_identifier. Если параметр link_identifier опущен, будет использовано последнее открытое соединение.

Пример 1. Пример использования mysql_get_server_info()

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("Could not connect: " . mysql_error());
    printf ("MySQL server version: %s\n", mysql_get_server_info());
?>

Вышеописанный пример выдаст следующий результат:

MySQL server version: 4.0.1-alpha

См. также
mysql_get_client_info(),
mysql_get_host_info() и
mysql_get_proto_info().

Пред. | Начало | След.
mysql_get_proto_info | Уровень выше | mysql_info


mysql_info

(PHP 4 >= 4.3.0, PHP 5)

mysql_info -- Возвращает информацию о последнем запросе

Описание

string mysql_info ( [resource link_identifier] )

mysql_info() возвращает детальную информацию о последнем запросе к серверу, на который ссылается переданный функции указатель link_identifier. Если параметр link_identifier не указан, используется последнее открытое соединение.

mysql_info() возвращает строку для всех описанных ниже запросов. Для всего остального она возвращает FALSE. Формат строки зависит от вида запроса.

Пример 1. Виды запросы MySQL

INSERT INTO ... SELECT ...
String format: Records: 23 Duplicates: 0 Warnings: 0
INSERT INTO ... VALUES (...),(...),(...)...
String format: Records: 37 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ...
String format: Records: 42 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE
String format: Records: 60 Duplicates: 0 Warnings: 0
UPDATE
String format: Rows matched: 65 Changed: 65 Warnings: 0
Числа расставлены только для примера -- их значения зависят от результата запроса.

Замечание: mysql_info() возвращает значение не равное FALSE для INSERT ... VALUES только в том, случае, если в запросе присутствует несколько списков значений.

См. также mysql_affected_rows().

Пред. | Начало | След.
mysql_get_server_info | Уровень выше | mysql_insert_id


mysql_insert_id

(PHP 3, PHP 4, PHP 5)

mysql_insert_id -- Возвращает ID, сгенерированный при последнем INSERT-запросе.

Описание

int mysql_insert_id ( [resource link_identifier] )

mysql_insert_id() возвращает ID, сгенерированный колонкой с AUTO_INCREMENT последним запросом INSERT к серверу, на который ссылается переданный функции указатель link_identifier. Если параметр link_identifier не указан, используется последнее открытое соединение.

mysql_insert_id() возвращает 0, если последний запрос не работал с AUTO_INCREMENT полями. Если вам надо сохранить значение, убедитесь, что mysql_insert_id() вызывается сразу после запроса.

Замечание: Значение в SQL функции MySQL LAST_INSERT_ID() всегда содержит последний сгенерированный ID и не обнуляется между запросами.

Внимание

mysql_insert_id() конвертирует возвращаемый функцией MySQL C API тип значения функции mysql_insert_id() в тип long int (называемый int в PHP). Если ваша колонка AUTO_INCREMENT имеет тип BIGINT, значение, возвращаемое функцией mysql_insert_id(), будет искажено. Вместо него используйте функцию SQL LAST_INSERT_ID().

Пример 1. Пример использования mysql_insert_id()

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("Could not connect: " . mysql_error());
    mysql_select_db("mydb");

    mysql_query("INSERT INTO mytable (product) values ('kossu')");
    printf ("Last inserted record has id %d\n", mysql_insert_id());
?>

См. также mysql_query().

Пред. | Начало | След.
mysql_info | Уровень выше | mysql_list_dbs


mysql_list_dbs

(PHP 3, PHP 4, PHP 5)

mysql_list_dbs -- Возвращает список баз данных, доступных на сервере.

Описание

resource mysql_list_dbs ( [resource link_identifier] )

mysql_list_dbs() возвратит указатель на результат, содержащий список баз данных, доступных на указанном сервере. Используйте функцию mysql_tablename(), чтобы получить данные из результата, или любую другую функцию, работающую с результатами запросов, например mysql_fetch_array().

Пример 1. Пример использования mysql_list_dbs()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$db_list = mysql_list_dbs($link);

while ($row = mysql_fetch_object($db_list)) {
    echo $row->Database . "\n";
}
?>

Вышеописанный пример выдаст следующий результат:

database1
database2
database3
...

Замечание: Вышеописанный код мог бы работать с mysql_fetch_row() или любой другой аналогичной функцией.

Для совместимости, как алиас, доступна устаревшая функция mysql_listdbs(). Однако, использовать её крайне не рекомендуется.

См. также mysql_db_name().

Пред. | Начало | След.
mysql_insert_id | Уровень выше | mysql_list_fields


mysql_list_fields

(PHP 3, PHP 4, PHP 5)

mysql_list_fields -- Возвращает список колонок таблицы

Описание

resource mysql_list_fields ( string database_name, string table_name [, resource link_identifier] )

mysql_list_fields() возвращает информацию о таблице с
переданным именем. Параметрами функции являются имена таблицы и базы
данных. Возвращаемый результат может быть обработан с помощью следующих
функций:
mysql_field_flags(),
mysql_field_len(),
mysql_field_name(),
mysql_field_type().

Пример 1. Пример использования mysql_list_fields()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

$fields = mysql_list_fields("database1", "table1", $link);
$columns = mysql_num_fields($fields);

for ($i = 0; $i < $columns; $i++) {
    echo mysql_field_name($fields, $i) . "\n";
}

Вышеописанный пример выдаст следующий результат:

field1
field2
field3
...

Для совместимости, как алиас, доступна функция mysql_listfields(). Однако, использовать её крайне не рекомендуется.

Замечание: Функция mysql_list_fields() устарела. Предпочтительным является исползьзование SQL-запроса SHOW COLUMNS FROM table [LIKE 'name'].

Пред. | Начало | След.
mysql_list_dbs | Уровень выше | mysql_list_processes


mysql_list_processes

(PHP 4 >= 4.3.0, PHP 5)

mysql_list_processes -- Возвращает список процессов MySQL

Описание

resource mysql_list_processes ( [resource link_identifier] )

mysql_list_processes() возвращает указатель на результат, содержащий в себе текущие, выполняемые сервером, процессы.

Пример 1. Пример использования mysql_list_processes()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

$result = mysql_list_processes($link);
while ($row = mysql_fetch_assoc($result)){
    printf("%s %s %s %s %s\n", $row["Id"], $row["Host"], $row["db"],
       $row["Command"], $row["Time"]);
}
mysql_free_result ($result);
?>

Вышеописанный пример выдаст следующий результат:

1 localhost test Processlist 0
4 localhost mysql sleep 5

См. также mysql_thread_id().

Пред. | Начало | След.
mysql_list_fields | Уровень выше | mysql_list_tables


mysql_list_tables

(PHP 3, PHP 4, PHP 5)

mysql_list_tables -- Возвращает список таблиц базы данных MySQL

Описание

resource mysql_list_tables ( string database [, resource link_identifier] )

mysql_list_tables(), принимая параметром имя базы данных, возвращает указатель на результат (аналогично mysql_query()), содержащий список её таблиц. Используйте функцию mysql_tablename() для обработки полученного указателя, либо любую другую функцию для обработки результатов, такую как mysql_fetch_array().

Параметр database -- имя базы данных, список таблиц которой будет возвращён. В случае ошибки, функция возвращает FALSE.

Для совместимости, как алиас, доступна устаревшая функция mysql_listtables(). Однако, использовать её крайне не рекомендуется.

Замечание: Функция устарела и не должна быть использована. Используйте SQL-запрос SHOW TABLES FROM DATABASE вместо неё.

Пример 1. Пример использования mysql_list_tables()

<?php
    $dbname = 'mysql_dbname';

    if (!mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
        print 'Could not connect to mysql';
        exit;
    }

    $result = mysql_list_tables($dbname);

    if (!$result) {
        print "DB Error, could not list tables\n";
        print 'MySQL Error: ' . mysql_error();
        exit;
    }

    while ($row = mysql_fetch_row($result)) {
        print "Table: $row[0]\n";
    }

    mysql_free_result($result);
?>

См. также mysql_list_dbs() и mysql_tablename().

Пред. | Начало | След.
mysql_list_processes | Уровень выше | mysql_num_fields


mysql_num_fields

(PHP 3, PHP 4, PHP 5)

mysql_num_fields -- Возвращает количество полей результата запроса

Описание

int mysql_num_fields ( resource result )

mysql_num_fields() возвращает количество полей результата запрооса result.

См. также
mysql_select_db(),
mysql_query(),
mysql_fetch_field() и
mysql_num_rows().

Для совместимости, как алиас, доступна устаревшая функция mysql_numfields(). Однако, использовать её крайне не рекомендуется.

Пред. | Начало | След.
mysql_list_tables | Уровень выше | mysql_num_rows


mysql_num_rows

(PHP 3, PHP 4, PHP 5)

mysql_num_rows -- Возвращает количество рядов результата запроса

Описание

int mysql_num_rows ( resource result )

mysql_num_rows() возвращает количество рядов результата запроса. Эта команда работает только с запросами SELECT. Чтобы получить количество рядов, обработанных функцями INSERT, UPDATE, DELETE, используйте функцию mysql_affected_rows().

Пример 1. Пример использования mysql_num_rows()

<?php

$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("database", $link);

$result = mysql_query("SELECT * FROM table1", $link);
$num_rows = mysql_num_rows($result);

echo "$num_rows Rows\n";

?>

Замечание: При использовании mysql_unbuffered_query() функция mysql_num_rows() не вернёт корректного значения до тех пор, пока все ряды не будут получены.

См. также
mysql_affected_rows(),
mysql_connect(),
mysql_data_seek(),
mysql_select_db() и
mysql_query().

Для совместимости, как алиас, доступна устаревшая функция mysql_numrows(). Однако, использовать её крайне не рекомендуется.

Пред. | Начало | След.
mysql_num_fields | Уровень выше | mysql_pconnect


mysql_pconnect

(PHP 3, PHP 4, PHP 5)

mysql_pconnect -- Устанавливает постоянное соединение с сервером MySQL.

Описание

resource mysql_pconnect ( [string server [, string username [, string password [, int client_flags]]]] )

Возвращает указатель на постоянное соединение с MySQL или FALSE, в случае ошибки.

mysql_pconnect() устанавливает постоянное соединение с сервером MySQL. Следующие значения по умолчанию установлены для отсутсвующих параметров: server = 'localhost:3306', username = имя пользователя владельца процесса сервера и password = пустой пароль. Параметр client_flags может быть комбинацией следующих констант: MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE, MYSQL_CLIENT_INTERACTIVE.

Параметр server может также включать номер порта, к примеру "hostname:port" или путь к сокету, к примеру ":/path/to/socket" для локального сервера.

Замечание: Поддержка указания порта через ":port" была добавлена в PHP 3.0B4.

Поддержка указания локального сокета как ":/path/to/socket" была добавлена в PHP 3.0.10.

mysql_pconnect() работает аналогично mysql_connect() с двумя отличиями.

Во-первых, при соединении, функция пытается найти уже открытый (постоянный) указатель на тот же сервер с тем же пользователем и паролем. Если он найден, возвращён функцией будет именно он, вместо открытия нового соединения.

Во-вторых, соединение с SQL-сервером не будет закрыто, когда работа скрипта закончится. Вместо этого, оно останется рабочим для будущего использования (mysql_close() также не закрывает постоянные соединения)

Опциональный параметр client_flags появился в PHP 4.3.0.

Соединения такого типа называют 'постоянными'.

Замечание: Учтите, что соединения такого типа работают только, если PHP установлен как модуль. За дополнительной информацией обращайтесь к разделу Постоянные Соединения с Базами Данных.

Внимание

Использование устойчивых соединений может потребовать некоторой настройки Apache и MySQL. Убедитесь, что вы не превысите максимальное число дозволенных соединений.

Пред. | Начало | След.
mysql_num_rows | Уровень выше | mysql_ping


mysql_ping

(PHP 4 >= 4.3.0, PHP 5)

mysql_ping -- Проверяет соединение с сервером и пересоединяется при необходимости

Описание

bool mysql_ping ( [resource link_identifier] )

mysql_ping() проверяет соединение с сервером. Если оно утеряно, автоматически предпринимается попытка пересоединения. Эта функция может быть использована в скриптах, работающих на протяжении долгого времени. mysql_ping() возвращает TRUE, если соединение в рабочем состоянии и FALSE в противном случае.

См. также mysql_thread_id() и mysql_list_processes().

Пред. | Начало | След.
mysql_pconnect | Уровень выше | mysql_query


mysql_query

(PHP 3, PHP 4, PHP 5)

mysql_query -- Посылает запрос MySQL

Описание

resource mysql_query ( string query [, resource link_identifier] )

mysql_query() посылает запрос активной базе данных сервера, на который ссылается переданный указатель. Если параметр link_identifier опущен, используется последнее открытое соединение. Если открытые соединения отсутствуют, функция пытается соединиться с СУБД, аналогично функции mysql_connect() без параметров. Результат запроса буфферизируется.

Замечание: Строка запроса НЕ должна заканчиваться точкой с запятой.

Только для запросов SELECT, SHOW, EXPLAIN, DESCRIBE, mysql_query() возвращает указатель на результат запроса, или FALSE если запрос не был выполнен. В остальных случаях, mysql_query() возвращает TRUE в случае успешного запроса и FALSE в случае ошибки. Значение не равное FALSE говорит о том, что запрос был выполнен успешно. Он не говорит о количестве затронутых или возвращённых рядов. Вполне возможна ситуация, когда успешный запрос не затронет ни одного ряда.

Следующий запрос составлен неправильно и mysql_query() вернёт FALSE:

Пример 1. Пример использования mysql_query()

<php
$result = mysql_query("SELECT * WHERE 1=1")
    or die("Invalid query: " . mysql_error());
?>

Следующий запрос ошибочен, если колонки my_col нет в таблице my_tbl, в таком случае mysql_query() вернёт FALSE:

Пример 2. Пример использования mysql_query()

<?php
$result = mysql_query("SELECT my_col FROM my_tbl")
    or die("Invalid query: " . mysql_error());
?>

mysql_query() также считается ошибочным и вернёт FALSE, если у вас не хватает прав на работу с указанной в запросе таблицей.

Работая с результатами запросов, вы можете использовать функцию mysql_num_rows(), чтобы найти число, возвращённых запросом SELECT, рядов, или mysql_affected_rows(), чтобы найти число рядов, обработанных запросами DELETE, INSERT, REPLACE, или UPDATE.

Только для запросов SELECT, SHOW, DESCRIBE, EXPLAIN, функция mysql_query() возвращает указатель на результат, который можно использовать в функции mysql_fetch_array() и других функциях, работающих с результатами запросов. Когда работа с результатом окончена, вы можете освободить ресурсы, используемые для его хранения, с помощью функции mysql_free_result(), хотя память в любом случае будет очищена в конце исполнения скрипта.

См. также
mysql_num_rows(),
mysql_affected_rows(),
mysql_unbuffered_query(),
mysql_free_result(),
mysql_fetch_array(),
mysql_fetch_row(),
mysql_fetch_assoc(),
mysql_result(),
mysql_select_db() и
mysql_connect().

Пред. | Начало | След.
mysql_ping | Уровень выше | mysql_real_escape_string


mysql_real_escape_string

(PHP 4 >= 4.3.0, PHP 5)

mysql_real_escape_string -- Экранирует специальные символы в строках для использования в выражениях SQL

Описание

string mysql_real_escape_string ( string unescaped_string [, resource link_identifier] )

Экранирует специальные символы в unescaped_string, принимая во внимание кодировку соединения, таким образом, что результат можно безопасно использовать в SQL-запросе в функци mysql_query(). Если вставляются бинарные данные, то к ним так же необходимо применять эту функцию.

mysql_real_escape_string() вызывает библиотечную функцмю MySQL mysql_real_escape_string, которая добавляет обратную косую черту к следующим символам: \x00, \n, \r, \, ', " and \x1a.

Эта функция должна всегда (за несколькими исключениями) использоваться для того, чтобы обезопасить данные, вставляемые в запрос перед отправкой его в MySQL.

Список параметров

unescaped_string

Строка, которая должна быть экранирована.

link_identifier

The MySQL connection. If the link identifier is not specified, the last link opened by mysql_connect() is assumed. If no such link is found, it will try to create one as if mysql_connect() was called with no arguments. If by chance no connection is found or established, an E_WARNING level warning is generated.

Возвращаемые значения

Возвращает строку, в которой экранированы все необходимые символы, или FALSE в случае ошибки.

Примеры

Пример 1. Простой пример использования mysql_real_escape_string()

<?php
// Connect
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    OR die(mysql_error());

// Query
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
            mysql_real_escape_string($user),
            mysql_real_escape_string($password));
?>

Пример 2. Пример взлома с использованием SQL Injection

<?php
// посылаем запрос, чтобы проверить имя и пароль пользователя
$query = "SELECT * FROM users WHERE user='{$_POST['username']}' AND password='{$_POST['password']}'";
mysql_query($query);

// Мы не никак проверили переменную $_POST['password'],
// а она может содержать совсем не то, что мы ожидали. Например:
$_POST['username'] = 'aidan';
$_POST['password'] = "' OR ''='";

// посмотрим, какой запрос будет отправлен в MySQL:
echo $query;
?>

Запрос, который будет отправлен в MySQL:

SELECT * FROM users WHERE name='aidan' AND password='' OR ''=''

Это позволит кому угодно войти в систему без пароля.

Пример 3. Лучший вариант составления запроса

Применение mysql_real_escape_string() к каждой переменной, вставляемой в запрос, предотвращает SQL Injection. Нижеследующий код является наилучшим вариантом составления запросов и не зависит от установки Magic Quotes.

<?php
// Функция экранирования переменных
function quote_smart($value)
{
    // если magic_quotes_gpc включена - используем stripslashes
    if (get_magic_quotes_gpc()) {
        $value = stripslashes($value);
    }
    // Если переменная - число, то экранировать её не нужно
    // если нет - то окружем её кавычками, и экранируем
    if (!is_numeric($value)) {
        $value = "'" . mysql_real_escape_string($value) . "'";
    }
    return $value;
}

// Соединяемся
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    OR die(mysql_error());

// Составляем безопасный запрос
$query = sprintf("SELECT * FROM users WHERE user=%s AND password=%s",
            quote_smart($_POST['username']),
            quote_smart($_POST['password']));

mysql_query($query);
?>

Запрос, составленный таким образом, будет выполнен без ошибок, и взлом с помощью SQL Injection окажется невозможен.

Примечания

Замечание: Функцию mysql_real_escape_string() можно использовать только после того, как установлено соединение с MySQL. В противном случае возникнет ошибка уровня E_WARNING, а функция возвратит FALSE. Если link_identifier не указан, используется последнее открытое соединение.

Замечание: Если magic_quotes_gpc включены, то сначала данные следует обработать функцией stripslashes(). Если mysql_real_escape_string() применяется к данным, которые уже были прослешены, то в результате слеши в данных будут удваиваться.

Замечание: Если не пользоваться этой функцией, то запрос становится уязвимым для взлома с помощью SQL Injection.

Замечание: mysql_real_escape_string() не экранирует символы % и _. Эти знаки являются масками групп символов в операторах MySQL LIKE, GRANT или REVOKE.

Смотрите также

mysql_client_encoding()
addslashes()
stripslashes()
Директива magic_quotes_gpc
Директива magic_quotes_runtime

Пред. | Начало | След.
mysql_query | Уровень выше | mysql_result


mysql_result

(PHP 3, PHP 4, PHP 5)

mysql_result -- Возвращает данные результата запроса

Описание

mixed mysql_result ( resource result, int row [, mixed field] )

mysql_result() возвращает значение одной ячейки результата запроса. Аргументом поля может быть смещение, имя поля, или имя поля и имя таблицы через точку (tablename.fieldname). Если к имени колонки, в запросе, был использован алиас ('select foo as bar from...'), используйте его вместо реального имени колонки.

Работая с большими результатами запросов, следует использовать одну из функций, обрабатывающих сразу целый ряд результата. Так как эти функции возвращают значение нескольких ячеек сразу, они НАМНОГО быстрее mysql_result(). Кроме того учтите, что указание численного смещения работает намного быстрее, чем указание колонки, или колонки и таблицы через точку.

Вызовы функции mysql_result() не должны смешиваться с другими функциями, работающими с результатом запроса.

Пример 1. Пример использования mysql_result()

<?php
    $link = mysql_connect("localhost", "mysql_user", "mysql_password")
            or die("Could not connect: " . mysql_error());

    $result = mysql_query("SELECT name FROM work.employee")
            or die("Could not query: . mysql_error());

    echo mysql_result($result,2); // outputs third employee's name

    mysql_close($link);
?>

Рекомендуемые скоростные альтернативы :
mysql_fetch_row(),
mysql_fetch_array(),
mysql_fetch_assoc() и
mysql_fetch_object().

Пред. | Начало | След.
mysql_real_escape_string | Уровень выше | mysql_select_db


mysql_select_db

(PHP 3, PHP 4, PHP 5)

mysql_select_db -- Выбирает базу данных MySQL

Описание

bool mysql_select_db ( string database_name [, resource link_identifier] )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

mysql_select_db() выбирает для работы указанную базу данных на сервере, на который ссылается переданный указатель. Если параметр указателя опущен, используется последнее открытое соединение. Если нет ни одного открытого соединения, функция попытается соединиться с сервером аналогично функции mysql_connect(), вызванной без параметров.

Каждый последующий вызов функции mysql_query() будет работать с выбранной базой данных.

Пример 1. Пример использования mysql_select_db()

<?php

$lnk = mysql_connect('localhost', 'mysql_user', 'mysql_password')
       or die ('Not connected : ' . mysql_error());

// сделать foo текущей базой данных
mysql_select_db('foo', $lnk) or die ('Can\'t use foo : ' . mysql_error());

?>

См. также
mysql_connect(),
mysql_pconnect() и
mysql_query().

Для совместимости, как алиас, доступна устаревшая функцмия mysql_selectdb(). Однако, использовать её крайне не рекомендуется.

Пред. | Начало | След.
mysql_result | Уровень выше | mysql_stat


mysql_stat

(PHP 4 >= 4.3.0, PHP 5)

mysql_stat -- Возвращает текущий статус сервера

Описание

string mysql_stat ( [resource link_identifier] )

mysql_stat() возвращает текущий статус сервера.

Замечание: mysql_stat() возвращает только время работы, количество потоков, запросов, открытых таблиц и количество запросов в секунду. Для полного списка переменных статуса, используйте SQL-запрос SHOW STATUS.

Пример 1. Пример использования mysql_stat()

<?php
$link = mysql_connect('localhost', "mysql_user", "mysql_password");
$status = explode('  ', mysql_stat($link));
print_r($status);
?>

Вышеописанный пример приведёт к следующему результату:

Array
(
    [0] => Uptime: 5380
    [1] => Threads: 2
    [2] => Questions: 1321299
    [3] => Slow queries: 0
    [4] => Opens: 26
    [5] => Flush tables: 1
    [6] => Open tables: 17
    [7] => Queries per second avg: 245.595
)

Пред. | Начало | След.
mysql_select_db | Уровень выше | mysql_tablename


mysql_tablename

(PHP 3, PHP 4, PHP 5)

mysql_tablename -- Возвращает имя таблицы, содержащей указанное поле

Описание

string mysql_tablename ( string result, int i )

mysql_tablename() принимает указатель на результат функции mysql_list_tables() и индекс, возвращая имя таблицы. Функцию mysql_num_rows() можно использовать для определения количества таблиц результата запроса. Используйте функцию mysql_tablename() для работы с результатом запроса, либо любую другую функцию, способную это делать. Например, mysql_fetch_array().

Пример 1. Пример использования mysql_tablename()

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password");
    $result = mysql_list_tables("mydb");

    for ($i = 0; $i < mysql_num_rows($result); $i++)
        printf ("Table: %s\n", mysql_tablename($result, $i));

    mysql_free_result($result);
?>

См. также mysql_list_tables().

Пред. | Начало | След.
mysql_stat | Уровень выше | mysql_thread_id


mysql_thread_id

(PHP 4 >= 4.3.0, PHP 5)

mysql_thread_id -- Возвращает ID текущего потока

Описание

int mysql_thread_id ( [resource link_identifier] )

mysql_thread_id() возвращает ID текущего соединения. Если соединение потеряно и вы пересоединились с помощью mysql_ping(), ID изменится. Это означает, что вам не следует получать ID и хранить его для дальнейщего использования. Вызывайте функцию тогда, когда ID вам нужен.

Пример 1. Пример использования mysql_thread_id()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$thread_id = mysql_thread_id($link);
if ($thread_id){
    printf ("current thread id is %d\n", $thread_id);
}
?>

Вышеописанный пример выдаст следующий результат:

current thread id is 73

См. также mysql_ping() and mysql_list_processes().

Пред. | Начало | След.
mysql_tablename | Уровень выше | mysql_unbuffered_query


mysql_unbuffered_query

(PHP 4 >= 4.0.6, PHP 5)

mysql_unbuffered_query -- Посылает MySQL SQL-запрос без авто-обработки результата и её буфферизации.

Описание

resource mysql_unbuffered_query ( string query [, resource link_identifier] )

mysql_unbuffered_query() посылает MySQL SQL-запрос query без автоматической обработки и буфферизации её результата, в отличе от функции mysql_query(). Это позволяет сохранить достаточно большое количество памяти для SQL-запросов, возвращающих большое количество данных. Кроме того, вы можете начать работу с полученными данными сразу после того, как первый ряд был получен: вам не приходится ждать до конца SQL-запроса. При использовании нескольких соединений с MySQL, вы можете указать опциональный параметр link_identifier.

Замечание: Однако, плюсы использования mysql_unbuffered_query() имеют свою цену: вы не можете использовать функции mysql_num_rows() и mysql_data_seek() с результатом запроса, возвращённым этой функцией. Кроме того, вы должны будете обработать все ряды запроса до отправки нового запроса.

См. также mysql_query().

Пред. | Начало | След.
mysql_thread_id | Уровень выше | MySQL Functions (PDO_MYSQL)


MySQL Improved Extension

Руководство по PHP
Пред. След.

LXXXIX. MySQL Improved Extension

Введение

The mysqli extension allows you to access the functionality provided by MySQL 4.1 and above. More information about the MySQL Database server can be found at http://www.mysql.com/

Documentation for MySQL can be found at http://dev.mysql.com/doc/.

Parts of this documentation included from MySQL manual with permissions of MySQL AB.

Требования

In order to have these functions available, you must compile PHP with support for the mysqli extension.

Замечание: The mysqli extension is designed to work with the version 4.1.3 or above of MySQL. For previous versions, please see the MySQL extension documentation.

Установка

To install the mysqli extension for PHP, use the --with-mysqli=mysql_config_path/mysql_config configuration option where mysql_config_path represents the location of the mysql_config program that comes with MySQL versions greater than 4.1.

If you would like to install the mysql extension along with the mysqli extension you have to use the same client library to avoid any conflicts.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. MySQLi Configuration Options

Name | Default | Changeable | Changelog
mysqli.max_links | "-1" | PHP_INI_SYSTEM | Available since PHP 5.0.0.
mysqli.default_port | "3306" | PHP_INI_ALL | Available since PHP 5.0.0.
mysqli.default_socket | NULL | PHP_INI_ALL | Available since PHP 5.0.0.
mysqli.default_host | NULL | PHP_INI_ALL | Available since PHP 5.0.0.
mysqli.default_user | NULL | PHP_INI_ALL | Available since PHP 5.0.0.
mysqli.default_pw | NULL | PHP_INI_ALL | Available since PHP 5.0.0.

For further details and definitions of the above PHP_INI_* constants, see the chapter on configuration changes.

Краткое разъяснение конфигурационных директив.

mysqli.max_links integer

The maximum number of MySQL connections per process.

mysqli.default_port string

The default TCP port number to use when connecting to the database server if no other port is specified. If no default is specified, the port will be obtained from the MYSQL_TCP_PORT environment variable, the mysql-tcp entry in /etc/services or the compile-time MYSQL_PORT constant, in that order. Win32 will only use the MYSQL_PORT constant.

mysqli.default_socket string

The default socket name to use when connecting to a local database server if no other socket name is specified.

mysqli.default_host string

The default server host to use when connecting to the database server if no other host is specified. Doesn't apply in safe mode.

mysqli.default_user string

The default user name to use when connecting to the database server if no other name is specified. Doesn't apply in safe mode.

mysqli.default_pw string

The default password to use when connecting to the database server if no other password is specified. Doesn't apply in safe mode.

Предопределенные классы

mysqli

Represents a connection between PHP and a MySQL database.

Конструктор

  • mysqli - construct a new mysqli object

Методы

  • autocommit - turns on or off auto-commiting database modifications

  • change_user - changes the user of the specified database connection

  • character_set_name - returns the default character set for the database connection

  • close - closes a previously opened connection

  • commit - commits the current transaction

  • connect - opens a new connection to MySQL database server

  • debug - performs debugging operations

  • dump_debug_info - dumps debug information

  • get_client_info - returns client version

  • get_host_info - returns type of connection used

  • get_server_info - returns version of the MySQL server

  • get_server_version - returns version of the MySQL server

  • init - initializes mysqli object

  • info - retrieves information about the most recently executed query

  • kill - asks the server to kill a mysql thread

  • multi_query - performs multiple queries

  • more_results - check if more results exist from currently executed multi-query

  • next_result - reads next result from currently executed multi-query

  • options - set options

  • ping - pings a server connection or reconnects if there is no connection

  • prepare - prepares a SQL query

  • query - performs a query

  • real_connect - attempts to open a connection to MySQL database server

  • escape_string - escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection

  • rollback - rolls back the current transaction

  • select_db - selects the default database

  • set_charset - sets the default client character set

  • ssl_set - sets ssl parameters

  • stat - gets the current system status

  • stmt_init- initializes a statement for use with mysqli_stmt_prepare

  • store_result - transfers a resultset from last query

  • use_result - transfers an unbuffered resultset from last query

  • thread_safe - returns whether thread safety is given or not

Свойства

  • affected_rows - gets the number of affected rows in a previous MySQL operation

  • client_info - returns the MySQL client version as a string

  • client_version - returns the MySQL client version as an integer

  • errno - returns the error code for the most recent function call

  • error - returns the error string for the most recent function call

  • field_count - returns the number of columns for the most recent query

  • host_info - returns a string representing the type of connection used

  • info - retrieves information about the most recently executed query

  • insert_id - returns the auto generated id used in the last query

  • protocol_version - returns the version of the MySQL protocol used

  • server_info - returns a string that represents the server version number

  • server_version - returns the version number of the server as an integer

  • sqlstate - returns a string containing the SQLSTATE error code for the last error

  • thread_id - returns the thread ID for the current connection

  • warning_count - returns the number of warnings generated during execution of the previous SQL statement

mysqli_stmt

Represents a prepared statement.

Методы

  • bind_param - binds variables to a prepared statement

  • bind_result - binds variables to a prepared statement for result storage

  • close - closes a prepared statement

  • data_seek - seeks to an arbitrary row in a statement result set

  • execute - executes a prepared statement

  • fetch - fetches result from a prepared statement into bound variables

  • free_result - frees stored result memory for the given statement handle

  • result_metadata - retrieves a resultset from a prepared statement for metadata information

  • prepare - prepares a SQL query

  • send_long_data - sends data in chunks

  • reset - resets a prepared statement

  • store_result - buffers complete resultset from a prepared statement

Свойства

  • affected_rows - returns affected rows from last statement execution

  • errno - returns errorcode for last statement function

  • error - returns errormessage for last statement function

  • field_count - returns the number of columns in a result set

  • id - returns the statement identifier

  • insert_id - returns the value generated for an AUTO_INCREMENT column by the prepared statement

  • num_rows - returns the number of rows in the result set

  • param_count - returns number of parameter for a given prepare statement

  • sqlstate - returns a string containing the SQLSTATE error code for the last statement function

mysqli_result

Represents the result set obtained from a query against the database.

Методы

  • close - closes resultset

  • data_seek - moves internal result pointer

  • fetch_field - gets column information from a resultset

  • fetch_fields - gets information for all columns from a resulset

  • fetch_field_direct - gets column information for specified column

  • fetch_array - fetches a result row as an associative array, a numeric array, or both.

  • fetch_assoc - fetches a result row as an associative array

  • fetch_object - fetches a result row as an object

  • fetch_row - gets a result row as an enumerated array

  • close - frees result memory

  • field_seek - set result pointer to a specified field offset

Свойства

  • current_field - returns offset of current fieldpointer

  • field_count - returns number of fields in resultset

  • lengths - returns an array of columnlengths

  • num_rows - returns number of rows in resultset

  • type - returns MYSQLI_STORE_RESULT or MYSQLI_USE_RESULT

Предопределенные константы

Таблица 2. MySQLi Constants

Name | Description
MYSQLI_READ_DEFAULT_GROUP (integer) | Read options from the named group from `my.cnf' or the file specified with MYSQLI_READ_DEFAULT_FILE
MYSQLI_READ_DEFAULT_FILE (integer) | Read options from the named option file instead of from my.cnf
MYSQLI_OPT_CONNECT_TIMEOUT (integer) | Connect timeout in seconds
MYSQLI_OPT_LOCAL_INFILE (integer) | Enables command LOAD LOCAL INFILE
MYSQLI_INIT_COMMAND (integer) | Command to execute when connecting to MySQL server. Will automatically be re-executed when reconnecting.
MYSQLI_CLIENT_SSL (integer) | Use SSL (encrypted protocol). This option should not be set by application programs; it is set internally in the MySQL client library
MYSQLI_CLIENT_COMPRESS (integer) | Use compression protocol
MYSQLI_CLIENT_INTERACTIVE (integer) | Allow interactive_timeout seconds (instead of wait_timeout seconds) of inactivity before closing the connection. The client's session wait_timeout variable will be set to the value of the session interactive_timeout variable.
MYSQLI_CLIENT_IGNORE_SPACE (integer) | Allow spaces after function names. Makes all functions names reserved words.
MYSQLI_CLIENT_NO_SCHEMA (integer) | Don't allow the db_name.tbl_name.col_name syntax.
MYSQLI_CLIENT_MULTI_QUERIES (integer) |
MYSQLI_STORE_RESULT (integer) | For using buffered resultsets
MYSQLI_USE_RESULT (integer) | For using unbuffered resultsets
MYSQLI_ASSOC (integer) | Columns are returned into the array having the fieldname as the array index.
MYSQLI_NUM (integer) | Columns are returned into the array having an enumerated index.
MYSQLI_BOTH (integer) | Columns are returned into the array having both a numerical index and the fieldname as the associative index.
MYSQLI_NOT_NULL_FLAG (integer) | Indicates that a field is defined as NOT NULL
MYSQLI_PRI_KEY_FLAG (integer) | Field is part of a primary index
MYSQLI_UNIQUE_KEY_FLAG (integer) | Field is part of a unique index.
MYSQLI_MULTIPLE_KEY_FLAG (integer) | Field is part of an index.
MYSQLI_BLOB_FLAG (integer) | Field is defined as BLOB
MYSQLI_UNSIGNED_FLAG (integer) | Field is defined as UNSIGNED
MYSQLI_ZEROFILL_FLAG (integer) | Field is defined as ZEROFILL
MYSQLI_AUTO_INCREMENT_FLAG (integer) | Field is defined as AUTO_INCREMENT
MYSQLI_TIMESTAMP_FLAG (integer) | Field is defined as TIMESTAMP
MYSQLI_SET_FLAG (integer) | Field is defined as SET
MYSQLI_NUM_FLAG (integer) | Field is defined as NUMERIC
MYSQLI_PART_KEY_FLAG (integer) | Field is part of an multi-index
MYSQLI_GROUP_FLAG (integer) | Field is part of GROUP BY
MYSQLI_TYPE_DECIMAL (integer) | Field is defined as DECIMAL
MYSQLI_TYPE_TINY (integer) | Field is defined as TINYINT
MYSQLI_TYPE_SHORT (integer) | Field is defined as INT
MYSQLI_TYPE_LONG (integer) | Field is defined as INT
MYSQLI_TYPE_FLOAT (integer) | Field is defined as FLOAT
MYSQLI_TYPE_DOUBLE (integer) | Field is defined as DOUBLE
MYSQLI_TYPE_NULL (integer) | Field is defined as DEFAULT NULL
MYSQLI_TYPE_TIMESTAMP (integer) | Field is defined as TIMESTAMP
MYSQLI_TYPE_LONGLONG (integer) | Field is defined as BIGINT
MYSQLI_TYPE_INT24 (integer) | Field is defined as MEDIUMINT
MYSQLI_TYPE_DATE (integer) | Field is defined as DATE
MYSQLI_TYPE_TIME (integer) | Field is defined as TIME
MYSQLI_TYPE_DATETIME (integer) | Field is defined as DATETIME
MYSQLI_TYPE_YEAR (integer) | Field is defined as YEAR
MYSQLI_TYPE_NEWDATE (integer) | Field is defined as DATE
MYSQLI_TYPE_ENUM (integer) | Field is defined as ENUM
MYSQLI_TYPE_SET (integer) | Field is defined as SET
MYSQLI_TYPE_TINY_BLOB (integer) | Field is defined as TINYBLOB
MYSQLI_TYPE_MEDIUM_BLOB (integer) | Field is defined as MEDIUMBLOB
MYSQLI_TYPE_LONG_BLOB (integer) | Field is defined as LONGBLOB
MYSQLI_TYPE_BLOB (integer) | Field is defined as BLOB
MYSQLI_TYPE_VAR_STRING (integer) | Field is defined as VARCHAR
MYSQLI_TYPE_STRING (integer) | Field is defined as CHAR
MYSQLI_TYPE_GEOMETRY (integer) | Field is defined as GEOMETRY
MYSQLI_NEED_DATA (integer) | More data available for bind variable
MYSQLI_NO_DATA (integer) | No more data available for bind variable
MYSQLI_DATA_TRUNCATED (integer) | Data truncation occurred. Available since PHP 5.1.0 and MySQL 5.0.5.

Examples

All Examples in the MySQLI documentation use the world database from MySQL AB. The world database can be found at http://dev.mysql.com/get/Downloads/Manual/world.sql.gz/from/pick

Содержание
mysqli_affected_rows -- Gets the number of affected rows in a previous MySQL operation
mysqli_autocommit -- Turns on or off auto-commiting database modifications
mysqli_bind_param -- Alias for mysqli_stmt_bind_param()
mysqli_bind_result -- Alias for mysqli_stmt_bind_result()
mysqli_change_user -- Changes the user of the specified database connection
mysqli_character_set_name -- Returns the default character set for the database connection
mysqli_client_encoding -- Alias of mysqli_character_set_name()
mysqli_close -- Closes a previously opened database connection
mysqli_commit -- Commits the current transaction
mysqli_connect_errno -- Returns the error code from last connect call
mysqli_connect_error -- Returns a string description of the last connect error
mysqli_connect -- Open a new connection to the MySQL server
mysqli_data_seek -- Adjusts the result pointer to an arbitary row in the result
mysqli_debug -- Performs debugging operations
mysqli_disable_reads_from_master -- Disable reads from master
mysqli_disable_rpl_parse -- Disable RPL parse
mysqli_dump_debug_info -- Dump debugging information into the log
mysqli_embedded_connect -- Open a connection to an embedded mysql server
mysqli_enable_reads_from_master -- Enable reads from master
mysqli_enable_rpl_parse -- Enable RPL parse
mysqli_errno -- Returns the error code for the most recent function call
mysqli_error -- Returns a string description of the last error
mysqli_escape_string -- Alias of mysqli_real_escape_string()
mysqli_execute -- Alias for mysqli_stmt_execute()
mysqli_fetch_array -- Fetch a result row as an associative, a numeric array, or both
mysqli_fetch_assoc -- Fetch a result row as an associative array
mysqli_fetch_field_direct -- Fetch meta-data for a single field
mysqli_fetch_field -- Returns the next field in the result set
mysqli_fetch_fields -- Returns an array of objects representing the fields in a result set
mysqli_fetch_lengths -- Returns the lengths of the columns of the current row in the result set
mysqli_fetch_object -- Returns the current row of a result set as an object
mysqli_fetch_row -- Get a result row as an enumerated array
mysqli_fetch -- Alias for mysqli_stmt_fetch()
mysqli_field_count -- Returns the number of columns for the most recent query
mysqli_field_seek -- Set result pointer to a specified field offset
mysqli_field_tell -- Get current field offset of a result pointer
mysqli_free_result -- Frees the memory associated with a result
mysqli_get_client_info -- Returns the MySQL client version as a string
mysqli_get_client_version -- Get MySQL client info
mysqli_get_host_info -- Returns a string representing the type of connection used
mysqli_get_metadata -- Alias for mysqli_stmt_result_metadata()
mysqli_get_proto_info -- Returns the version of the MySQL protocol used
mysqli_get_server_info -- Returns the version of the MySQL server
mysqli_get_server_version -- Returns the version of the MySQL server as an integer
mysqli_info -- Retrieves information about the most recently executed query
mysqli_init -- Initializes MySQLi and returns a resource for use with mysqli_real_connect()
mysqli_insert_id -- Returns the auto generated id used in the last query
mysqli_kill -- Asks the server to kill a MySQL thread
mysqli_master_query -- Enforce execution of a query on the master in a master/slave setup
mysqli_more_results -- Check if there any more query results from a multi query
mysqli_multi_query -- Performs a query on the database
mysqli_next_result -- Prepare next result from multi_query
mysqli_num_fields -- Get the number of fields in a result
mysqli_num_rows -- Gets the number of rows in a result
mysqli_options -- Set options
mysqli_param_count -- Alias for mysqli_stmt_param_count()
mysqli_ping -- Pings a server connection, or tries to reconnect if the connection has gone down
mysqli_prepare -- Prepare a SQL statement for execution
mysqli_query -- Performs a query on the database
mysqli_real_connect -- Opens a connection to a mysql server
mysqli_real_escape_string -- Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection
mysqli_real_query -- Execute an SQL query
mysqli_report -- Enables or disables internal report functions
mysqli_rollback -- Rolls back current transaction
mysqli_rpl_parse_enabled -- Check if RPL parse is enabled
mysqli_rpl_probe -- RPL probe
mysqli_rpl_query_type -- Returns RPL query type
mysqli_select_db -- Selects the default database for database queries
mysqli_send_long_data -- Alias for mysqli_stmt_send_long_data()
mysqli_send_query -- Send the query and return
mysqli_server_end -- Shut down the embedded server
mysqli_server_init -- Initialize embedded server
mysqli_set_charset -- Sets the default client character set
mysqli_set_opt -- Alias of mysqli_options()
mysqli_sqlstate -- Returns the SQLSTATE error from previous MySQL operation
mysqli_ssl_set -- Used for establishing secure connections using SSL
mysqli_stat -- Gets the current system status
mysqli_stmt_affected_rows -- Returns the total number of rows changed, deleted, or inserted by the last executed statement
mysqli_stmt_bind_param -- Binds variables to a prepared statement as parameters
mysqli_stmt_bind_result -- Binds variables to a prepared statement for result storage
mysqli_stmt_close -- Closes a prepared statement
mysqli_stmt_data_seek -- Seeks to an arbitray row in statement result set
mysqli_stmt_errno -- Returns the error code for the most recent statement call
mysqli_stmt_error -- Returns a string description for last statement error
mysqli_stmt_execute -- Executes a prepared Query
mysqli_stmt_fetch -- Fetch results from a prepared statement into the bound variables
mysqli_stmt_free_result -- Frees stored result memory for the given statement handle
mysqli_stmt_init -- Initializes a statement and returns an object for use with mysqli_stmt_prepare
mysqli_stmt_num_rows -- Return the number of rows in statements result set
mysqli_stmt_param_count -- Returns the number of parameter for the given statement
mysqli_stmt_prepare -- Prepare a SQL statement for execution
mysqli_stmt_reset -- Resets a prepared statement
mysqli_stmt_result_metadata -- Returns result set metadata from a prepared statement
mysqli_stmt_send_long_data -- Send data in blocks
mysqli_stmt_sqlstate -- Returns SQLSTATE error from previous statement operation
mysqli_stmt_store_result -- Transfers a result set from a prepared statement
mysqli_store_result -- Transfers a result set from the last query
mysqli_thread_id -- Returns the thread ID for the current connection
mysqli_thread_safe -- Returns whether thread safety is given or not
mysqli_use_result -- Initiate a result set retrieval
mysqli_warning_count -- Returns the number of warnings from the last query for the given link

Пред. | Начало | След.
PDO_MYSQL DSN | Уровень выше | mysqli_affected_rows


mysqli_affected_rows

(PHP 5)

mysqli_affected_rows

(no version information, might be only in CVS)

mysqli->affected_rows -- Gets the number of affected rows in a previous MySQL operation

Description

Procedural style:

int mysqli_affected_rows ( mysqli link )

Object oriented style (property):

class mysqli {

int affected_rows

}

mysqli_affected_rows() returns the number of rows affected by the last INSERT, UPDATE, or DELETE query associated with the provided link parameter. If the last query was invalid, this function will return -1.

Замечание: For SELECT statements mysqli_affected_rows() works like mysqli_num_rows().

The mysqli_affected_rows() function only works with queries which modify a table. In order to return the number of rows from a SELECT query, use the mysqli_num_rows() function instead.

Возвращаемые значения

An integer greater than zero indicates the number of rows affected or retrieved. Zero indicates that no records where updated for an UPDATE statement, no rows matched the WHERE clause in the query or that no query has yet been executed. -1 indicates that the query returned an error.

Замечание: If the number of affected rows is greater than maximal int value, the number of affected rows will be returned as a string.

Смотрите также

mysqli_num_rows() и mysqli_info().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Insert rows */
$mysqli->query("CREATE TABLE Language SELECT * from CountryLanguage");
printf("Affected rows (INSERT): %d\n", $mysqli->affected_rows);

$mysqli->query("ALTER TABLE Language ADD Status int default 0");

/* update rows */
$mysqli->query("UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Affected rows (UPDATE): %d\n", $mysqli->affected_rows);

/* delete rows */
$mysqli->query("DELETE FROM Language WHERE Percentage < 50");
printf("Affected rows (DELETE): %d\n", $mysqli->affected_rows);

/* select all rows */
$result = $mysqli->query("SELECT CountryCode FROM Language");
printf("Affected rows (SELECT): %d\n", $mysqli->affected_rows);

$result->close();

/* Delete table Language */
$mysqli->query("DROP TABLE Language");

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

if (!$link) {
    printf("Can't connect to localhost. Error: %s\n", mysqli_connect_error());
    exit();
}

/* Insert rows */
mysqli_query($link, "CREATE TABLE Language SELECT * from CountryLanguage");
printf("Affected rows (INSERT): %d\n", mysqli_affected_rows($link));

mysqli_query($link, "ALTER TABLE Language ADD Status int default 0");

/* update rows */
mysqli_query($link, "UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Affected rows (UPDATE): %d\n", mysqli_affected_rows($link));

/* delete rows */
mysqli_query($link, "DELETE FROM Language WHERE Percentage < 50");
printf("Affected rows (DELETE): %d\n", mysqli_affected_rows($link));

/* select all rows */
$result = mysqli_query($link, "SELECT CountryCode FROM Language");
printf("Affected rows (SELECT): %d\n", mysqli_affected_rows($link));

mysqli_free_result($result);

/* Delete table Language */
mysqli_query($link, "DROP TABLE Language");

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Affected rows (INSERT): 984
Affected rows (UPDATE): 168
Affected rows (DELETE): 815
Affected rows (SELECT): 169

Пред. | Начало | След.
MySQL Improved Extension | Уровень выше | mysqli_autocommit


mysqli_autocommit

(PHP 5)

mysqli_autocommit

(no version information, might be only in CVS)

mysqli->autocommit -- Turns on or off auto-commiting database modifications

Description

Procedural style:

bool mysqli_autocommit ( mysqli link, bool mode )

Object oriented style (method)

class mysqli {

bool autocommit ( bool mode )

}

mysqli_autocommit() is used to turn on or off auto-commit mode on queries for the database connection represented by the link object.

Замечание: mysqli_autocommit() doesn't work with non transactional table types (like MyISAM or ISAM).

To determine the current state of autocommit use the SQL command 'SELECT @@autocommit'.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

mysqli_commit() и mysqli_rollback().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* turn autocommit on */
$mysqli->autocommit(TRUE);

if ($result = $mysqli->query("SELECT @@autocommit")) {
    $row = $result->fetch_row();
    printf("Autocommit is %s\n", $row[0]);
    $result->free();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

if (!$link) {
    printf("Can't connect to localhost. Error: %s\n", mysqli_connect_error());
    exit();
}

/* turn autocommit on */
mysqli_autocommit($link, TRUE);

if ($result = mysqli_query($link, "SELECT @@autocommit")) {
    $row = mysqli_fetch_row($result);
    printf("Autocommit is %s\n", $row[0]);
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Autocommit is 1

Пред. | Начало | След.
mysqli_affected_rows | Уровень выше | mysqli_bind_param


mysqli_bind_param

(PHP 5)

mysqli_bind_param -- Alias for mysqli_stmt_bind_param()

Description

This function is an alias of mysqli_stmt_bind_param(). For a detailled descripton see description of mysqli_stmt_bind_param().

Замечание: mysqli_bind_param() is deprecated and will be removed.

Смотрите также

mysqli_stmt_bind_param().

Пред. | Начало | След.
mysqli_autocommit | Уровень выше | mysqli_bind_result


mysqli_bind_result

(PHP 5)

mysqli_bind_result -- Alias for mysqli_stmt_bind_result()

Description

This function is an alias of mysqli_stmt_bind_result(). For a detailled descripton see description of mysqli_stmt_bind_result().

Замечание: mysqli_bind_result() is deprecated and will be removed.

Смотрите также

mysqli_stmt_bind_result().

Пред. | Начало | След.
mysqli_bind_param | Уровень выше | mysqli_change_user


mysqli_change_user

(PHP 5)

mysqli_change_user

(no version information, might be only in CVS)

mysqli->change_user -- Changes the user of the specified database connection

Description

Procedural style:

bool mysqli_change_user ( mysqli link, string user, string password, string database )

Object oriented style (method):

class mysqli {

bool change_user ( string user, string password, string database )

}

mysqli_change_user() is used to change the user of the specified database connection as given by the link parameter and to set the current database to that specified by the database parameter.

If desired, the NULL value may be passed in place of the database parameter resulting in only changing the user and not selecting a database. To select a database in this case use the mysqli_select_db() function.

In order to successfully change users a valid username and password parameters must be provided and that user must have sufficient permissions to access the desired database. If for any reason authorization fails, the current user authentication will remain.

Замечание: Using this command will always cause the current database connection to behave as if was a completely new database connection, regardless of if the operation was completed successfully. This reset includes performing a rollback on any active transactions, closing all temporary tables, and unlocking all locked tables.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

mysqli_connect() и mysqli_select_db().

Примеры

Пример 1. Object oriented style

<?php

/* connect database test */
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Set Variable a */
$mysqli->query("SET @a:=1");

/* reset all and select a new database */
$mysqli->change_user("my_user", "my_password", "world");

if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database: %s\n", $row[0]);
    $result->close();
}

if ($result = $mysqli->query("SELECT @a")) {
    $row = $result->fetch_row();
    if ($row[0] === NULL) {
        printf("Value of variable a is NULL\n");
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
/* connect database test */
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Set Variable a */
mysqli_query($link, "SET @a:=1");

/* reset all and select a new database */
mysqli_change_user($link, "my_user", "my_password", "world");

if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("Default database: %s\n", $row[0]);
    mysqli_free_result($result);
}

if ($result = mysqli_query($link, "SELECT @a")) {
    $row = mysqli_fetch_row($result);
    if ($row[0] === NULL) {
        printf("Value of variable a is NULL\n");
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Default database: world
Value of variable a is NULL

Пред. | Начало | След.
mysqli_bind_result | Уровень выше | mysqli_character_set_name


mysqli_character_set_name

(PHP 5)

mysqli_character_set_name

(no version information, might be only in CVS)

mysqli->character_set_name -- Returns the default character set for the database connection

Description

Procedural style:

string mysqli_character_set_name ( mysqli link )

Object oriented style (method):

class mysqli {

string character_set_name ( void )

}

Returns the current character set for the database connection specified by the link parameter.

Возвращаемые значения

The default character set for the current connection

Смотрите также

mysqli_client_encoding() и mysqli_real_escape_string().

Примеры

Пример 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Print current character set */
$charset = $mysqli->character_set_name();
printf ("Current character set is %s\n", $charset);

$mysqli->close();
?>

Пример 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Print current character set */
$charset = mysqli_character_set_name($link);
printf ("Current character set is %s\n",$charset);

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Current character set is latin1_swedish_ci

Пред. | Начало | След.
mysqli_change_user | Уровень выше | mysqli_client_encoding


mysqli_client_encoding

(PHP 5)

mysqli_client_encoding -- Alias of mysqli_character_set_name()

Description

This function is an alias of mysqli_character_set_name(). For a detailled descripton see description of mysqli_character_set_name().

Смотрите также

mysqli_real_escape_string().

Пред. | Начало | След.
mysqli_character_set_name | Уровень выше | mysqli_close


mysqli_close

(PHP 5)

mysqli_close

(no version information, might be only in CVS)

mysqli->close -- Closes a previously opened database connection

Description

Procedural style:

bool mysqli_close ( mysqli link )

Object oriented style (method):

class mysqli {

bool close ( void )

}

The mysqli_close() function closes a previously opened database connection specified by the link parameter.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

mysqli_connect(),
mysqli_init() и
mysqli_real_connect().

Пред. | Начало | След.
mysqli_client_encoding | Уровень выше | mysqli_commit


mysqli_commit

(PHP 5)

mysqli_commit

(no version information, might be only in CVS)

mysqli->commit -- Commits the current transaction

Description

Procedural style:

bool mysqli_commit ( mysqli link )

Object oriented style (method)

class mysqli {

bool commit ( void )

}

Commits the current transaction for the database connection specified by the link parameter.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

mysqli_autocommit() и mysqli_rollback().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE Language LIKE CountryLanguage Type=InnoDB");

/* set autocommit to off */
$mysqli->autocommit(FALSE);

/* Insert some values */
$mysqli->query("INSERT INTO Language VALUES ('DEU', 'Bavarian', 'F', 11.2)");
$mysqli->query("INSERT INTO Language VALUES ('DEU', 'Swabian', 'F', 9.4)");

/* commit transaction */
$mysqli->commit();

/* drop table */
$mysqli->query("DROP TABLE Language");

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* set autocommit to off */
mysqli_autocommit($link, FALSE);

mysqli_query($link, "CREATE TABLE Language LIKE CountryLanguage Type=InnoDB");

/* Insert some values */
mysqli_query($link, "INSERT INTO Language VALUES ('DEU', 'Bavarian', 'F', 11.2)");
mysqli_query($link, "INSERT INTO Language VALUES ('DEU', 'Swabian', 'F', 9.4)");

/* commit transaction */
mysqli_commit($link);

/* close connection */
mysqli_close($link);
?>

Пред. | Начало | След.
mysqli_close | Уровень выше | mysqli_connect_errno


mysqli_connect_errno

(PHP 5)

mysqli_connect_errno -- Returns the error code from last connect call

Description

int mysqli_connect_errno ( void )

The mysqli_connect_errno() function will return the last error code number for last call to mysqli_connect(). If no errors have occured, this function will return zero.

Замечание: Client error message numbers are listed in the MySQL errmsg.h header file, server error message numbers are listed in mysqld_error.h. In the MySQL source distribution you can find a complete list of error messages and error numbers in the file Docs/mysqld_error.txt.

Возвращаемые значения

An error code value for the last call to mysqli_connect(), if it failed. zero means no error occurred.

Смотрите также

mysqli_connect(),
mysqli_connect_error(),
mysqli_errno(),
mysqli_error() и
mysqli_sqlstate().

Примеры

Пример 1. mysqli_connect_errno sample

<?php

$link = @mysqli_connect("localhost", "nonexisting_user", "");

if (!$link) {
    printf("Can't connect to localhost. Errorcode: %d\n", mysqli_connect_errno());
}
?>

Пред. | Начало | След.
mysqli_commit | Уровень выше | mysqli_connect_error


mysqli_connect_error

(PHP 5)

mysqli_connect_error -- Returns a string description of the last connect error

Description

string mysqli_connect_error ( void )

The mysqli_connect_error() function is identical to the corresponding mysqli_connect_errno() function in every way, except instead of returning an integer error code the mysqli_connect_error() function will return a string representation of the last error to occur for the last mysqli_connect() call. If no error has occured, this function will return an empty string.

Возвращаемые значения

A string that describes the error. An empty string if no error occurred.

Смотрите также

mysqli_connect(),
mysqli_connect_errno(),
mysqli_errno(),
mysqli_error() и
mysqli_sqlstate().

Примеры

Пример 1. mysqli_connect_error sample

<?php

$link = @mysqli_connect("localhost", "nonexisting_user", "");

if (!$link) {
    printf("Can't connect to localhost. Error: %s\n", mysqli_connect_error());
}
?>

Пред. | Начало | След.
mysqli_connect_errno | Уровень выше | mysqli_connect


mysqli_connect

(PHP 5)

mysqli_connect

(no version information, might be only in CVS)

mysqli() -- Open a new connection to the MySQL server

Description

Procedural style

mysqli mysqli_connect ( [string host [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]] )

Object oriented style (constructor):

class mysqli {

__construct ( [string host [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]] )

}

The mysqli_connect() function attempts to open a connection to the MySQL Server running on host which can be either a host name or an IP address. Passing the NULL value or the string "localhost" to this parameter, the local host is assumed. When possible, pipes will be used instead of the TCP/IP protocol. If successful, the mysqli_connect() will return an object representing the connection to the database, or FALSE on failure.

The username and password parameters specify the username and password under which to connect to the MySQL server. If the password is not provided (the NULL value is passed), the MySQL server will attempt to authenticate the user against those user records which have no password only. This allows one username to be used with different permissions (depending on if a password as provided or not).

The dbname parameter if provided will specify the default database to be used when performing queries.

The port and socket parameters are used in conjunction with the host parameter to further control how to connect to the database server. The port parameter specifies the port number to attempt to connect to the MySQL server on, while the socket parameter specifies the socket or named pipe that should be used.

Замечание: Specifying the socket parameter will not explicitly determine the type of connection to be used when connecting to the MySQL server. How the connection is made to the MySQL database is determined by the host parameter.

Возвращаемые значения

Returns a object which represents the connection to a MySQL Server or FALSE if the connection failed.

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf("Host information: %s\n", $mysqli->host_info);

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf("Host information: %s\n", mysqli_get_host_info($link));

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Host information: Localhost via UNIX socket

Пред. | Начало | След.
mysqli_connect_error | Уровень выше | mysqli_data_seek


mysqli_data_seek

(PHP 5)

mysqli_data_seek

(no version information, might be only in CVS)

result->data_seek -- Adjusts the result pointer to an arbitary row in the result

Description

Procedural style:

bool mysqli_data_seek ( mysqli_result result, int offset )

Object oriented style (method):

class mysqli_result {

bool data_seek ( int offset )

}

The mysqli_data_seek() function seeks to an arbitrary result pointer specified by the offset in the result set represented by result. The offset parameter must be between zero and the total number of rows minus one (0..mysqli_num_rows() - 1).

Замечание: This function can only be used with buffered results attained from the use of the mysqli_store_result() or mysqli_query() functions.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

mysqli_store_result(),
mysqli_fetch_row(),
mysqli_fetch_array(),
mysqli_fetch_assoc(),
mysqli_fetch_object(),
mysqli_query() и
mysqli_num_rows().

Примеры

Пример 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($result = $mysqli->query( $query)) {

    /* seek to row no. 400 */
    $result->data_seek(399);

    /* fetch row */
    $row = $result->fetch_row();

    printf ("City: %s  Countrycode: %s\n", $row[0], $row[1]);

    /* free result set*/
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";

if ($result = mysqli_query($link, $query)) {

    /* seek to row no. 400 */
    mysqli_data_seek($result, 399);

    /* fetch row */
    $row = mysqli_fetch_row($result);

    printf ("City: %s  Countrycode: %s\n", $row[0], $row[1]);

    /* free result set*/
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

City: Benin City  Countrycode: NGA

Пред. | Начало | След.
mysqli_connect | Уровень выше | mysqli_debug


mysqli_debug

(PHP 5)

mysqli_debug -- Performs debugging operations

Description

bool mysqli_debug ( string debug )

The mysqli_debug() function is used to perform debugging operations using the Fred Fish debugging library. The debug parameter is a string representing the debugging operation to perform.

Замечание: To use the mysqli_debug() function you must complile the MySQL client library to support debugging.

Возвращаемые значения

mysqli_debug() doesn't return any value.

Смотрите также

mysqli_dump_debug_info() и mysqli_report().

Примеры

Пример 1. Generating a Trace File

<?php

/* Create a trace file in '/tmp/client.trace' on the local (client) machine: */
mysqli_debug("d:t:0,/tmp/client.trace");

?>

Пред. | Начало | След.
mysqli_data_seek | Уровень выше | mysqli_disable_reads_from_master


mysqli_disable_reads_from_master

(PHP 5)

mysqli_disable_reads_from_master

(no version information, might be only in CVS)

mysqli->disable_reads_from_master -- Disable reads from master

Description

Procedural style:

bool mysqli_disable_reads_from_master ( mysqli link )

Object oriented style (method):

class mysqli {

void disable_reads_from_master ( void )

}

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mysqli_debug | Уровень выше | mysqli_disable_rpl_parse


mysqli_disable_rpl_parse

(PHP 5)

mysqli_disable_rpl_parse -- Disable RPL parse

Description

bool mysqli_disable_rpl_parse ( mysqli link )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mysqli_disable_reads_from_master | Уровень выше | mysqli_dump_debug_info


mysqli_dump_debug_info

(PHP 5)

mysqli_dump_debug_info

(no version information, might be only in CVS)

mysqli->dump_debug_info -- Dump debugging information into the log

Description

bool mysqli_dump_debug_info ( mysqli link )

This function is designed to be executed by an user with the SUPER privilege and is used to dump debugging information into the log for the MySQL Server relating to the connection specified by the link parameter.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

mysqli_debug().

Пред. | Начало | След.
mysqli_disable_rpl_parse | Уровень выше | mysqli_embedded_connect


mysqli_embedded_connect

(PHP 5 <= 5.0.4)

mysqli_embedded_connect -- Open a connection to an embedded mysql server

Description

mysqli mysqli_embedded_connect ( [string dbname] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mysqli_dump_debug_info | Уровень выше | mysqli_enable_reads_from_master


mysqli_enable_reads_from_master

(PHP 5)

mysqli_enable_reads_from_master -- Enable reads from master

Description

bool mysqli_enable_reads_from_master ( mysqli link )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mysqli_embedded_connect | Уровень выше | mysqli_enable_rpl_parse


mysqli_enable_rpl_parse

(PHP 5)

mysqli_enable_rpl_parse -- Enable RPL parse

Description

bool mysqli_enable_rpl_parse ( mysqli link )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mysqli_enable_reads_from_master | Уровень выше | mysqli_errno


mysqli_errno

(PHP 5)

mysqli_errno

(no version information, might be only in CVS)

mysqli->errno -- Returns the error code for the most recent function call

Description

Procedural style:

int mysqli_errno ( mysqli link )

Object oriented style (property):

class mysqli {

int errno

}

The mysqli_errno() function will return the last error code for the most recent MySQLi function call that can succeed or fail with respect to the database link defined by the link parameter. If no errors have occured, this function will return zero.

Замечание: Client error message numbers are listed in the MySQL errmsg.h header file, server error message numbers are listed in mysqld_error.h. In the MySQL source distribution you can find a complete list of error messages and error numbers in the file Docs/mysqld_error.txt.

Возвращаемые значения

An error code value for the last call, if it failed. zero means no error occurred.

Смотрите также

mysqli_connect_errno(),
mysqli_connect_error(),
mysqli_error() и
mysqli_sqlstate().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!$mysqli->query("SET a=1")) {
    printf("Errorcode: %d\n", $mysqli->errno);
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!mysqli_query($link, "SET a=1")) {
    printf("Errorcode: %d\n", mysqli_errno($link));
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Errorcode: 1193

Пред. | Начало | След.
mysqli_enable_rpl_parse | Уровень выше | mysqli_error


mysqli_error

(PHP 5)

mysqli_error -- Returns a string description of the last error

Description

Procedural style:

string mysqli_error ( mysqli link )

Object oriented style (property)

class mysqli {

string error

}

The mysqli_error() function is identical to the corresponding mysqli_errno() function in every way, except instead of returning an integer error code the mysqli_error() function will return a string representation of the last error to occur for the database connection represented by the link parameter. If no error has occured, this function will return an empty string.

Возвращаемые значения

A string that describes the error. An empty string if no error occurred.

Смотрите также

mysqli_connect_errno(),
mysqli_connect_error(),
mysqli_errno() и
mysqli_sqlstate().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!$mysqli->query("SET a=1")) {
    printf("Errormessage: %s\n", $mysqli->error);
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!mysqli_query($link, "SET a=1")) {
    printf("Errormessage: %s\n", mysqli_error($link));
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Errormessage: Unknown system variable 'a'

Пред. | Начало | След.
mysqli_errno | Уровень выше | mysqli_escape_string


mysqli_escape_string

(PHP 5)

mysqli_escape_string -- Alias of mysqli_real_escape_string()

Description

This function is an alias of mysqli_real_escape_string().

Пред. | Начало | След.
mysqli_error | Уровень выше | mysqli_execute


mysqli_execute

(PHP 5)

mysqli_execute -- Alias for mysqli_stmt_execute()

Description

This function is an alias of mysqli_stmt_execute(). For a detailled descripton see description of mysqli_stmt_execute().

Замечание: mysqli_execute() is deprecated and will be removed.

Смотрите также

mysqli_stmt_execute().

Пред. | Начало | След.
mysqli_escape_string | Уровень выше | mysqli_fetch_array


mysqli_fetch_array

(PHP 5)

mysqli_fetch_array

(no version information, might be only in CVS)

result->fetch_array -- Fetch a result row as an associative, a numeric array, or both

Description

Procedural style:

mixed mysqli_fetch_array ( mysqli_result result [, int resulttype] )

Object oriented style (method):

class mysqli_result {

mixed fetch_array ( [int resulttype] )

}

Returns an array that corresponds to the fetched row or NULL if there are no more rows for the resultset represented by the result parameter.

mysqli_fetch_array() is an extended version of the mysqli_fetch_row() function. In addition to storing the data in the numeric indices of the result array, the mysqli_fetch_array() function can also store the data in associative indices, using the field names of the result set as keys.

Замечание: Имена полей, возвращаемые этой функцией, регистро-зависимы.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

If two or more columns of the result have the same field names, the last column will take precedence and overwrite the earlier data. In order to access multiple columns with the same name, the numerically indexed version of the row must be used.

The optional second argument resulttype is a constant indicating what type of array should be produced from the current row data. The possible values for this parameter are the constants MYSQLI_ASSOC, MYSQLI_NUM, or MYSQLI_BOTH. By default the mysqli_fetch_array() function will assume MYSQLI_BOTH for this parameter.

By using the MYSQLI_ASSOC constant this function will behave identically to the mysqli_fetch_assoc(), while MYSQLI_NUM will behave identically to the mysqli_fetch_row() function. The final option MYSQLI_BOTH will create a single array with the attributes of both.

Возвращаемые значения

Returns an array that corresponds to the fetched row or NULL if there are no more rows in resultset.

Смотрите также

mysqli_fetch_assoc(),
mysqli_fetch_row(),
mysqli_fetch_object(),
mysqli_query() и
mysqli_data_seek().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = $mysqli->query($query);

/* numeric array */
$row = $result->fetch_array(MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* associative array */
$row = $result->fetch_array(MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);

/* associative and numeric array */
$row = $result->fetch_array(MYSQLI_BOTH);
printf ("%s (%s)\n", $row[0], $row["CountryCode"]);

/* free result set */
$result->close();

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = mysqli_query($link, $query);

/* numeric array */
$row = mysqli_fetch_array($result, MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* associative array */
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);

/* associative and numeric array */
$row = mysqli_fetch_array($result, MYSQLI_BOTH);
printf ("%s (%s)\n", $row[0], $row["CountryCode"]);

/* free result set */
mysqli_free_result($result);

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Kabul (AFG)
Qandahar (AFG)
Herat (AFG)

Пред. | Начало | След.
mysqli_execute | Уровень выше | mysqli_fetch_assoc


mysqli_fetch_assoc

(PHP 5)

mysqli_fetch_assoc

(no version information, might be only in CVS)

mysqli->fetch_assoc -- Fetch a result row as an associative array

Description

Procedural style:

array mysqli_fetch_assoc ( mysqli_result result )

Object oriented style (method):

class mysqli_result {

array fetch_assoc ( void )

}

Returns an associative array that corresponds to the fetched row or NULL if there are no more rows.

The mysqli_fetch_assoc() function is used to return an associative array representing the next row in the result set for the result represented by the result parameter, where each key in the array represents the name of one of the result set's columns.

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you either need to access the result with numeric indices by using mysqli_fetch_row() or add alias names.

Замечание: Имена полей, возвращаемые этой функцией, регистро-зависимы.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Возвращаемые значения

Returns an array that corresponds to the fetched row or NULL if there are no more rows in resultset.

Смотрите также

mysqli_fetch_array(),
mysqli_fetch_row(),
mysqli_fetch_object(),
mysqli_query() и
mysqli_data_seek().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* fetch associative array */
    while ($row = $result->fetch_assoc()) {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    /* free result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = mysqli_query($link, $query)) {

    /* fetch associative array */
    while ($row = mysqli_fetch_assoc($result)) {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    /* free result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Пред. | Начало | След.
mysqli_fetch_array | Уровень выше | mysqli_fetch_field_direct


mysqli_fetch_field_direct

(PHP 5)

mysqli_fetch_field_direct

(no version information, might be only in CVS)

result->fetch_field_direct -- Fetch meta-data for a single field

Description

Procedural style:

object mysqli_fetch_field_direct ( mysqli_result result, int fieldnr )

Object oriented style (method):

class mysqli_result {

object fetch_field_direct ( int fieldnr )

}

mysqli_fetch_field_direct() returns an object which contains field definition informations from specified resultset. The value of fieldnr must be in the range from 0 to number of fields - 1.

Возвращаемые значения

Returns an object which contains field definition information or FALSE if no field information for specified fieldnr is available.

Таблица 1. Object attributes

Attribute | Description
name | The name of the column
orgname | Original column name if an alias was specified
table | The name of the table this field belongs to (if not calculated)
orgtable | Original table name if an alias was specified
def | The default value for this field, represented as a string
max_length | The maximum width of the field for the result set.
flags | An integer representing the bit-flags for the field.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

Смотрите также

mysqli_num_fields(),
mysqli_fetch_field() и
mysqli_fetch_fields().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for column 'SurfaceArea' */
    $finfo = $result->fetch_field_direct(1);

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n", $finfo->type);

    $result->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for column 'SurfaceArea' */
    $finfo = mysqli_fetch_field_direct($result, 1);

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n", $finfo->type);

    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Пред. | Начало | След.
mysqli_fetch_assoc | Уровень выше | mysqli_fetch_field


mysqli_fetch_field

(PHP 5)

mysqli_fetch_field

(no version information, might be only in CVS)

result->fetch_field -- Returns the next field in the result set

Description

Procedural style:

object mysqli_fetch_field ( mysqli_result result )

Object oriented style (method):

class mysqli_result {

object fetch_field ( void )

}

The mysqli_fetch_field() returns the definition of one column of a result set as an object. Call this function repeatedly to retrieve information about all columns in the result set. mysqli_fetch_field() returns FALSE when no more fields are left.

Возвращаемые значения

Returns an object which contains field definition information or FALSE if no field information is available.

Таблица 1. Object properties

Property | Description
name | The name of the column
orgname | Original column name if an alias was specified
table | The name of the table this field belongs to (if not calculated)
orgtable | Original table name if an alias was specified
def | The default value for this field, represented as a string
max_length | The maximum width of the field for the result set.
flags | An integer representing the bit-flags for the field.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

Смотрите также

mysqli_num_fields(),
mysqli_fetch_field_direct(),
mysqli_fetch_fields() и
mysqli_field_seek().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for all columns */
    while ($finfo = $result->fetch_field()) {

        printf("Name:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("max. Len: %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for all fields */
    while ($finfo = mysqli_fetch_field($result)) {

        printf("Name:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("max. Len: %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Name:     Name
Table:    Country
max. Len: 11
Flags:    1
Type:     254

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Пред. | Начало | След.
mysqli_fetch_field_direct | Уровень выше | mysqli_fetch_fields


mysqli_fetch_fields

(PHP 5)

mysqli_fetch_fields

(no version information, might be only in CVS)

result->fetch_fields -- Returns an array of objects representing the fields in a result set

Description

Procedural Style:

array mysqli_fetch_fields ( mysqli_result result )

Object oriented style (method):

class mysqli_result {

array fetch_fields ( void )

}

This function serves an identical purpose to the mysqli_fetch_field() function with the single difference that, instead of returning one object at a time for each field, the columns are returned as an array of objects.

Возвращаемые значения

Returns an array of objects which contains field definition information or FALSE if no field information is available.

Таблица 1. Object properties

Property | Description
name | The name of the column
orgname | Original column name if an alias was specified
table | The name of the table this field belongs to (if not calculated)
orgtable | Original table name if an alias was specified
def | The default value for this field, represented as a string
max_length | The maximum width of the field for the result set.
flags | An integer representing the bit-flags for the field.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

Смотрите также

mysqli_num_fields(),
mysqli_fetch_field() и
mysqli_fetch_field_direct().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for all columns */
    $finfo = $result->fetch_fields();

    foreach ($finfo as $val) {
        printf("Name:     %s\n", $val->name);
        printf("Table:    %s\n", $val->table);
        printf("max. Len: %d\n", $val->max_length);
        printf("Flags:    %d\n", $val->flags);
        printf("Type:     %d\n\n", $val->type);
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for all columns */
    $finfo = mysqli_fetch_fields($result);

    foreach ($finfo as $val) {
        printf("Name:     %s\n", $val->name);
        printf("Table:    %s\n", $val->table);
        printf("max. Len: %d\n", $val->max_length);
        printf("Flags:    %d\n", $val->flags);
        printf("Type:     %d\n\n", $val->type);
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Name:     Name
Table:    Country
max. Len: 11
Flags:    1
Type:     254

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Пред. | Начало | След.
mysqli_fetch_field | Уровень выше | mysqli_fetch_lengths


mysqli_fetch_lengths

(PHP 5)

mysqli_fetch_lengths

(no version information, might be only in CVS)

result->lengths -- Returns the lengths of the columns of the current row in the result set

Description

Procedural style:

array mysqli_fetch_lengths ( mysqli_result result )

Object oriented style (property):

class mysqli_result {

array lengths

}

The mysqli_fetch_lengths() function returns an array containing the lengths of every column of the current row within the result set represented by the result parameter. If successful, a numerically indexed array representing the lengths of each column is returned or FALSE on failure.

Возвращаемые значения

An array of integers representing the size of each column (not including any terminating null characters). FALSE if an error occurred.

mysqli_fetch_lengths() is valid only for the current row of the result set. It returns FALSE if you call it before calling mysqli_fetch_row/array/object or after retrieving all rows in the result.

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT * from Country ORDER BY Code LIMIT 1";

if ($result = $mysqli->query($query)) {

    $row = $result->fetch_row();

    /* display column lengths */
    foreach ($result->lengths as $i => $val) {
        printf("Field %2d has Length %2d\n", $i+1, $val);
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT * from Country ORDER BY Code LIMIT 1";

if ($result = mysqli_query($link, $query)) {

    $row = mysqli_fetch_row($result);

    /* display column lengths */
    foreach (mysqli_fetch_lengths($result) as $i => $val) {
        printf("Field %2d has Length %2d\n", $i+1, $val);
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Field  1 has Length  3
Field  2 has Length  5
Field  3 has Length 13
Field  4 has Length  9
Field  5 has Length  6
Field  6 has Length  1
Field  7 has Length  6
Field  8 has Length  4
Field  9 has Length  6
Field 10 has Length  6
Field 11 has Length  5
Field 12 has Length 44
Field 13 has Length  7
Field 14 has Length  3
Field 15 has Length  2

Пред. | Начало | След.
mysqli_fetch_fields | Уровень выше | mysqli_fetch_object


mysqli_fetch_object

(PHP 5)

mysqli_fetch_object

(no version information, might be only in CVS)

result->fetch_object -- Returns the current row of a result set as an object

Description

Procedural style:

mixed mysqli_fetch_object ( mysqli_result result )

Object oriented style (method):

class mysqli_result {

mixed fetch_object ( void )

}

The mysqli_fetch_object() will return the current row result set as an object where the attributes of the object represent the names of the fields found within the result set. If no more rows exist in the current result set, NULL is returned.

Возвращаемые значения

Returns an object that corresponds to the fetched row or NULL if there are no more rows in resultset.

Замечание: Имена полей, возвращаемые этой функцией, регистро-зависимы.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Смотрите также

mysqli_fetch_array(),
mysqli_fetch_assoc(),
mysqli_fetch_row(),
mysqli_query() и
mysqli_data_seek().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* fetch object array */
    while ($obj = $result->fetch_object()) {
        printf ("%s (%s)\n", $obj->Name, $obj->CountryCode);
    }

    /* free result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = mysqli_query($link, $query)) {

    /* fetch associative array */
    while ($obj = mysqli_fetch_object($result)) {
        printf ("%s (%s)\n", $obj->Name, $obj->CountryCode);
    }

    /* free result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Пред. | Начало | След.
mysqli_fetch_lengths | Уровень выше | mysqli_fetch_row


mysqli_fetch_row

(PHP 5)

mysqli_fetch_row

(no version information, might be only in CVS)

result->fetch_row -- Get a result row as an enumerated array

Description

Procedural style:

mixed mysqli_fetch_row ( mysqli_result result )

Object oriented style (method):

class mysqli_result {

mixed fetch_row ( void )

}

Returns an array that corresponds to the fetched row, or NULL if there are no more rows.

mysqli_fetch_row() fetches one row of data from the result set represented by result and returns it as an enumerated array, where each column is stored in an array offset starting from 0 (zero). Each subsequent call to the mysqli_fetch_row() function will return the next row within the result set, or FALSE if there are no more rows.

Возвращаемые значения

mysqli_fetch_row() returns an array that corresponds to the fetched row or NULL if there are no more rows in result set.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Смотрите также

mysqli_fetch_array(),
mysqli_fetch_assoc(),
mysqli_fetch_object(),
mysqli_query() и
mysqli_data_seek().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* fetch object array */
    while ($row = $result->fetch_row()) {
        printf ("%s (%s)\n", $row[0], $row[1]);
    }

    /* free result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = mysqli_query($link, $query)) {

    /* fetch associative array */
    while ($row = mysqli_fetch_row($result)) {
        printf ("%s (%s)\n", $row[0], $row[1]);
    }

    /* free result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Пред. | Начало | След.
mysqli_fetch_object | Уровень выше | mysqli_fetch


mysqli_fetch

(PHP 5)

mysqli_fetch -- Alias for mysqli_stmt_fetch()

Description

This function is an alias of mysqli_stmt_fetch(). For a detailled descripton see description of mysqli_stmt_fetch().

Замечание: mysqli_fetch() is deprecated and will be removed.

Смотрите также

mysqli_stmt_fetch().

Пред. | Начало | След.
mysqli_fetch_row | Уровень выше | mysqli_field_count


mysqli_field_count

(PHP 5)

mysqli_field_count

(no version information, might be only in CVS)

mysqli->field_count -- Returns the number of columns for the most recent query

Description

Procedural style:

int mysqli_field_count ( mysqli link )

Object oriented style (method):

class mysqli_result {

int field_count ( void )

}

Returns the number of columns for the most recent query on the connection represented by the link parameter. This function can be useful when using the mysqli_store_result() function to determine if the query should have produced a non-empty result set or not without knowing the nature of the query.

Возвращаемые значения

An integer representing the number of fields in a result set

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

$mysqli->query( "DROP TABLE IF EXISTS friends");
$mysqli->query( "CREATE TABLE friends (id int, name varchar(20))");

$mysqli->query( "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$mysqli->real_query($HTTP_POST_VARS['query']);

if (mysqli_field_count($link)) {
    /* this was a select/show or describe query */
    $result = $mysqli->store_result();

    /* process resultset */
    $row = $result->fetch_row();

    /* free resultset */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

mysqli_query($link, "DROP TABLE IF EXISTS friends");
mysqli_query($link, "CREATE TABLE friends (id int, name varchar(20))");

mysqli_query($link, "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

mysqli_real_query($link, $HTTP_POST_VARS['query']);

if (mysqli_field_count($link)) {
    /* this was a select/show or describe query */
    $result = mysqli_store_result($link);

    /* process resultset */
    $row = mysqli_fetch_row($result);

    /* free resultset */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Пред. | Начало | След.
mysqli_fetch | Уровень выше | mysqli_field_seek


mysqli_field_seek

(PHP 5)

mysqli_field_seek

(no version information, might be only in CVS)

result->field_seek -- Set result pointer to a specified field offset

Description

Procedural style:

bool mysqli_field_seek ( mysqli_result result, int fieldnr )

Object oriented style (method):

class mysqli_result {

bool field_seek ( int fieldnr )

}

Sets the field cursor to the given offset. The next call to mysqli_fetch_field() will retrieve the field definition of the column associated with that offset.

Замечание: To seek to the beginning of a row, pass an offset value of zero.

Возвращаемые значения

mysqli_field_seek() returns previuos value of field cursor.

Смотрите также

mysqli_fetch_field().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for 2nd column */
    $result->field_seek(1);
    $finfo = $result->fetch_field();

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n\n", $finfo->type);

    $result->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for 2nd column */
    mysqli_field_seek($result, 1);
    $finfo = mysqli_fetch_field($result);

    printf("Name:     %s\n", $finfo->name);
    printf("Table:    %s\n", $finfo->table);
    printf("max. Len: %d\n", $finfo->max_length);
    printf("Flags:    %d\n", $finfo->flags);
    printf("Type:     %d\n\n", $finfo->type);

    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Пред. | Начало | След.
mysqli_field_count | Уровень выше | mysqli_field_tell


mysqli_field_tell

(PHP 5)

mysqli_field_tell

(no version information, might be only in CVS)

result->current_field -- Get current field offset of a result pointer

Description

Procedural style:

int mysqli_field_tell ( mysqli_result result )

Object oriented style (property):

class mysqli_result {

int current_field

}

Returns the position of the field cursor used for the last mysqli_fetch_field() call. This value can be used as an argument to mysqli_field_seek().

Возвращаемые значения

Returns current offset of field cursor.

Смотрите также

mysqli_fetch_field() и mysqli_field_seek().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Get field information for all columns */
    while ($finfo = $result->fetch_field()) {

        /* get fieldpointer offset */
        $currentfield = $result->current_field;

        printf("Column %d:\n", $currentfield);
        printf("Name:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("max. Len: %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Get field information for all fields */
    while ($finfo = mysqli_fetch_field($result)) {

        /* get fieldpointer offset */
        $currentfield = mysqli_field_tell($result);

        printf("Column %d:\n", $currentfield);
        printf("Name:     %s\n", $finfo->name);
        printf("Table:    %s\n", $finfo->table);
        printf("max. Len: %d\n", $finfo->max_length);
        printf("Flags:    %d\n", $finfo->flags);
        printf("Type:     %d\n\n", $finfo->type);
    }
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Column 1:
Name:     Name
Table:    Country
max. Len: 11
Flags:    1
Type:     254

Column 2:
Name:     SurfaceArea
Table:    Country
max. Len: 10
Flags:    32769
Type:     4

Пред. | Начало | След.
mysqli_field_seek | Уровень выше | mysqli_free_result


mysqli_free_result

(PHP 5)

mysqli_free_result

(no version information, might be only in CVS)

result->free -- Frees the memory associated with a result

Description

Procedural style:

void mysqli_free_result ( mysqli_result result )

Object oriented style (all methods are equivalent):

class mysqli_result {

void free ( void )

void close ( void )

void free_result ( void )

}

The mysqli_free_result() function frees the memory associated with the result represented by the result parameter, which was allocated by mysqli_query(), mysqli_store_result() or mysqli_use_result().

Замечание: You should always free your result with mysqli_free_result(), when your result object is not needed anymore.

Возвращаемые значения

This function doesn't return any value.

Смотрите также

mysqli_query(),
mysqli_stmt_store_result(),
mysqli_store_result() и
mysqli_use_result().

Пред. | Начало | След.
mysqli_field_tell | Уровень выше | mysqli_get_client_info


mysqli_get_client_info

(PHP 5)

mysqli_get_client_info -- Returns the MySQL client version as a string

Description

string mysqli_get_client_info ( void )

The mysqli_get_client_info() function is used to return a string representing the client version being used in the MySQLi extension.

Возвращаемые значения

A string that represents the MySQL client library version

Смотрите также

mysqli_get_client_version(),
mysqli_get_server_info() и
mysqli_get_server_version().

Примеры

Пример 1. mysqli_get_client_info

<?php

/* We don't need a connection to determine
   the version of mysql client library */

printf("Client library version: %s\n", mysqli_get_client_info());
?>

Пред. | Начало | След.
mysqli_free_result | Уровень выше | mysqli_get_client_version


mysqli_get_client_version

(PHP 5)

mysqli_get_client_version -- Get MySQL client info

Description

int mysqli_get_client_version ( void )

Returns client version number as an integer.

Возвращаемые значения

A number that represents the MySQL client library version in format: main_version*10000 + minor_version *100 + sub_version. For example, 4.1.0 is returned as 40100.

This is useful to quickly determine the version of the client library to know if some capability exits.

Смотрите также

mysqli_get_client_info(),
mysqli_get_server_info() и
mysqli_get_server_version().

Примеры

Пример 1. mysqli_get_client_version

<?php

/* We don't need a connection to determine
   the version of mysql client library */

printf("Client library version: %d\n", mysqli_get_client_version());
?>

Пред. | Начало | След.
mysqli_get_client_info | Уровень выше | mysqli_get_host_info


mysqli_get_host_info

(PHP 5)

mysqli_get_host_info

(no version information, might be only in CVS)

mysqli->get_host_info -- Returns a string representing the type of connection used

Description

Procdural style:

string mysqli_get_host_info ( mysqli link )

Object oriented style (property):

class mysqli {

string host_info

}

The mysqli_get_host_info() function returns a string describing the connection represented by the link parameter is using (including the server host name).

Возвращаемые значения

A character string representing the server hostname and the connection type.

Смотрите также

mysqli_get_proto_info().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print host information */
printf("Host info: %s\n", $mysqli->host_info);

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print host information */
printf("Host info: %s\n", mysqli_get_host_info($link));

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Host info: Localhost via UNIX socket

Пред. | Начало | След.
mysqli_get_client_version | Уровень выше | mysqli_get_metadata


mysqli_get_metadata

(PHP 5)

mysqli_get_metadata -- Alias for mysqli_stmt_result_metadata()

Description

This function is an alias of mysqli_stmt_result_metadata(). For a detailled descripton see description of mysqli_stmt_result_metadata().

Замечание: mysqli_get_metadata() is deprecated and will be removed.

Смотрите также

mysqli_stmt_result_metadata().

Пред. | Начало | След.
mysqli_get_host_info | Уровень выше | mysqli_get_proto_info


mysqli_get_proto_info

(PHP 5)

mysqli_get_proto_info

(no version information, might be only in CVS)

mysqli->protocol_version -- Returns the version of the MySQL protocol used

Description

Procedural style:

int mysqli_get_proto_info ( mysqli link )

Object oriented style (property):

class mysqli {

string protocol_version

}

Returns an integer representing the MySQL protocol version used by the connection represented by the link parameter.

Возвращаемые значения

Returns an integer representing the protocol version.

Смотрите также

mysqli_get_host_info().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print protocol version */
printf("Protocol version: %d\n", $mysqli->protocol_version);

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print protocol version */
printf("Protocol version: %d\n", mysqli_get_proto_info($link));

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Protocol version: 10

Пред. | Начало | След.
mysqli_get_metadata | Уровень выше | mysqli_get_server_info


mysqli_get_server_info

(PHP 5)

mysqli_get_server_info

(no version information, might be only in CVS)

mysqli->server_info -- Returns the version of the MySQL server

Description

Procedural style:

string mysqli_get_server_info ( mysqli link )

Object oriented style (property):

class mysqli {

string server_info

}

Returns a string representing the version of the MySQL server that the MySQLi extension is connected to (represented by the link parameter).

Возвращаемые значения

A character string representing the server version.

Смотрите также

mysqli_get_client_info(),
mysqli_get_client_version() и
mysqli_get_server_version().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print server version */
printf("Server version: %s\n", $mysqli->server_info);

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print server version */
printf("Server version: %s\n", mysqli_get_server_info($link));

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Server version: 4.1.2-alpha-debug

Пред. | Начало | След.
mysqli_get_proto_info | Уровень выше | mysqli_get_server_version


mysqli_get_server_version

(PHP 5)

mysqli_get_server_version -- Returns the version of the MySQL server as an integer

Description

Procedural style:

int mysqli_get_server_version ( mysqli link )

Object oriented style (property):

class mysqli {

int server_version

}

The mysqli_get_server_version() function returns the version of the server connected to (represented by the link parameter) as an integer.

The form of this version number is main_version * 10000 + minor_version * 100 + sub_version (i.e. version 4.1.0 is 40100).

Возвращаемые значения

An integer representing the server version.

Смотрите также

mysqli_get_client_info(),
mysqli_get_client_version() и
mysqli_get_server_info().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print server version */
printf("Server version: %d\n", $mysqli->server_version);

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* print server version */
printf("Server version: %d\n", mysqli_get_server_version($link));

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Server version: 40102

Пред. | Начало | След.
mysqli_get_server_info | Уровень выше | mysqli_info


mysqli_info

(PHP 5)

mysqli_info

(no version information, might be only in CVS)

mysqli->info -- Retrieves information about the most recently executed query

Description

Procedural style:

string mysqli_info ( mysqli link )

Object oriented style (property)

class mysqli {

string info

}

The mysqli_info() function returns a string providing information about the last query executed. The nature of this string is provided below:

Таблица 1. Possible mysqli_info return values

Query type | Example result string
INSERT INTO...SELECT... | Records: 100 Duplicates: 0 Warnings: 0
INSERT INTO...VALUES (...),(...),(...) | Records: 3 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ... | Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE ... | Records: 3 Duplicates: 0 Warnings: 0
UPDATE ... | Rows matched: 40 Changed: 40 Warnings: 0

Замечание: Queries which do not fall into one of the above formats are not supported. In these situations, mysqli_info() will return an empty string.

Возвращаемые значения

A character string representing additional information about the most recently executed query.

Смотрите также

mysqli_affected_rows(),
mysqli_warning_count() и
mysqli_num_rows().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TEMPORARY TABLE t1 LIKE City");

/* INSERT INTO .. SELECT */
$mysqli->query("INSERT INTO t1 SELECT * FROM City ORDER BY ID LIMIT 150");
printf("%s\n", $mysqli->info);

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TEMPORARY TABLE t1 LIKE City");

/* INSERT INTO .. SELECT */
mysqli_query($link, "INSERT INTO t1 SELECT * FROM City ORDER BY ID LIMIT 150");
printf("%s\n", mysqli_info($link));

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Records: 150  Duplicates: 0  Warnings: 0

Пред. | Начало | След.
mysqli_get_server_version | Уровень выше | mysqli_init


mysqli_init

(PHP 5)

mysqli_init -- Initializes MySQLi and returns a resource for use with mysqli_real_connect()

Description

mysqli mysqli_init ( void )

Allocates or initializes a MYSQL object suitable for mysqli_options() and mysqli_real_connect().

Замечание: Any subsequent calls to any mysqli function (except mysqli_options()) will fail until mysqli_real_connect() was called.

Возвращаемые значения

Returns an object.

Смотрите также

mysqli_options(),
mysqli_close(),
mysqli_real_connect() и
mysqli_connect().

Пред. | Начало | След.
mysqli_info | Уровень выше | mysqli_insert_id


mysqli_insert_id

(PHP 5)

mysqli_insert_id

(no version information, might be only in CVS)

mysqli->insert_id -- Returns the auto generated id used in the last query

Description

Procedural style:

int mysqli_insert_id ( mysqli link )

Object oriented style (property):

class mysqli {

int insert_id

}

The mysqli_insert_id() function returns the ID generated by a query on a table with a column having the AUTO_INCREMENT attribute. If the last query wasn't an INSERT or UPDATE statement or if the modified table does not have a column with the AUTO_INCREMENT attribute, this function will return zero.

Замечание: Performing an INSERT or UPDATE statement using the LAST_INSERT_ID() function will also modify the value returned by the mysqli_insert_id() function.

Возвращаемые значения

The value of the AUTO_INCREMENT field that was updated by the previous query. Returns zero if there was no previous query on the connection or if the query did not update an AUTO_INCREMENT value.

Замечание: If the number is greater than maximal int value, mysqli_insert_id() will return a string.

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);

printf ("New Record has id %d.\n", $mysqli->insert_id);

/* drop table */
$mysqli->query("DROP TABLE myCity");

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
mysqli_query($link, $query);

printf ("New Record has id %d.\n", mysqli_insert_id($link));

/* drop table */
mysqli_query($link, "DROP TABLE myCity");

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

New Record has id 1.

Пред. | Начало | След.
mysqli_init | Уровень выше | mysqli_kill


mysqli_kill

(PHP 5)

mysqli_kill

(no version information, might be only in CVS)

mysqli->kill -- Asks the server to kill a MySQL thread

Description

Procedural style:

bool mysqli_kill ( mysqli link, int processid )

Object oriented style (method)

class mysqli {

bool kill ( int processid )

}

This function is used to ask the server to kill a MySQL thread specified by the processid parameter. This value must be retrieved by calling the mysqli_thread_id() function.

Замечание: To stop a running query you should use the SQL command KILL QUERY processid.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

mysqli_thread_id().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* determine our thread id */
$thread_id = $mysqli->thread_id;

/* Kill connection */
$mysqli->kill($thread_id);

/* This should produce an error */
if (!$mysqli->query("CREATE TABLE myCity LIKE City")) {
    printf("Error: %s\n", $mysqli->error);
    exit;
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* determine our thread id */
$thread_id = mysqli_thread_id($link);

/* Kill connection */
mysqli_kill($link, $thread_id);

/* This should produce an error */
if (!mysqli_query($link, "CREATE TABLE myCity LIKE City")) {
    printf("Error: %s\n", mysqli_error($link));
    exit;
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Error: MySQL server has gone away

Пред. | Начало | След.
mysqli_insert_id | Уровень выше | mysqli_master_query


mysqli_master_query

(PHP 5)

mysqli_master_query -- Enforce execution of a query on the master in a master/slave setup

Description

bool mysqli_master_query ( mysqli link, string query )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mysqli_kill | Уровень выше | mysqli_more_results


mysqli_more_results

(PHP 5)

mysqli_more_results

(no version information, might be only in CVS)

mysqli->more_results -- Check if there any more query results from a multi query

Description

bool mysqli_more_results ( mysqli link )

mysqli_more_results() indicates if one or more result sets are available from a previous call to mysqli_multi_query().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

mysqli_multi_query(),
mysqli_next_result(),
mysqli_store_result() и
mysqli_use_result().

Примеры

See mysqli_multi_query().

Пред. | Начало | След.
mysqli_master_query | Уровень выше | mysqli_multi_query


mysqli_multi_query

(PHP 5)

mysqli_multi_query

(no version information, might be only in CVS)

mysqli->multi_query -- Performs a query on the database

Description

Procedural style:

bool mysqli_multi_query ( mysqli link, string query )

Object oriented style (method):

class mysqli {

bool multi_query ( string query )

}

The mysqli_multi_query() executes one or multiple queries which are concatenated by a semicolon.

To retrieve the resultset from the first query you can use mysqli_use_result() or mysqli_store_result(). All subsequent query results can be processed using mysqli_more_results() and mysqli_next_result().

Возвращаемые значения

mysqli_multi_query() only returns FALSE if the first statement failed. To retrieve subsequent errors from other statements you have to call mysqli_next_result() first.

Смотрите также

mysqli_use_result(),
mysqli_store_result(),
mysqli_next_result() и
mysqli_more_results().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if ($mysqli->multi_query($query)) {
    do {
        /* store first result set */
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->close();
        }
        /* print divider */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if (mysqli_multi_query($link, $query)) {
    do {
        /* store first result set */
        if ($result = mysqli_store_result($link)) {
            while ($row = mysqli_fetch_row($result)) {
                printf("%s\n", $row[0]);
            }
            mysqli_free_result($result);
        }
        /* print divider */
        if (mysqli_more_results($link)) {
            printf("-----------------\n");
        }
    } while (mysqli_next_result($link));
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

Пред. | Начало | След.
mysqli_more_results | Уровень выше | mysqli_next_result


mysqli_next_result

(PHP 5)

mysqli_next_result

(no version information, might be only in CVS)

mysqli->next_result -- Prepare next result from multi_query

Description

bool mysqli_next_result ( mysqli link )

mysqli_next_result() prepares next result set from a previous call to mysqli_multi_query() which can be retrieved by mysqli_store_result() or mysqli_use_result().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

mysqli_multi_query(),
mysqli_more_results(),
mysqli_store_result() и
mysqli_use_result().

Примеры

See mysqli_multi_query().

Пред. | Начало | След.
mysqli_multi_query | Уровень выше | mysqli_num_fields


mysqli_num_fields

(PHP 5)

mysqli_num_fields

(no version information, might be only in CVS)

result->field_count -- Get the number of fields in a result

Description

Procedural style:

int mysqli_num_fields ( mysqli_result result )

Object oriented style (property):

class mysqli_result {

int field_count

}

mysqli_num_fields() returns the number of fields from specified result set.

Возвращаемые значения

The number of fields from a result set

Смотрите также

mysqli_fetch_field().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($result = $mysqli->query("SELECT * FROM City ORDER BY ID LIMIT 1")) {

    /* determine number of fields in result set */
    $field_cnt = $result->field_count;

    printf("Result set has %d fields.\n", $field_cnt);

    /* close result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($result = mysqli_query($link, "SELECT * FROM City ORDER BY ID LIMIT 1")) {

    /* determine number of fields in result set */
    $field_cnt = mysqli_num_fields($result);

    printf("Result set has %d fields.\n", $field_cnt);

    /* close result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Result set has 5 fields.

Пред. | Начало | След.
mysqli_next_result | Уровень выше | mysqli_num_rows


mysqli_num_rows

(PHP 5)

mysqli_num_rows -- Gets the number of rows in a result

Description

Procedural style:

int mysqli_num_rows ( mysqli result )

Object oriented style (property):

class mysqli {

int num_rows

}

Returns the number of rows in the result set.

The use of mysqli_num_rows() depends on whether you use buffered or unbuffered result sets. In case you use unbuffered resultsets mysqli_num_rows() will not correct the correct number of rows until all the rows in the result have been retrieved.

Возвращаемые значения

Returns number of rows in the result set.

Замечание: If the number of rows is greater than maximal int value, the number will be returned as a string.

Смотрите также

mysqli_affected_rows(),
mysqli_store_result(),
mysqli_use_result() и
mysqli_query().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($result = $mysqli->query("SELECT Code, Name FROM Country ORDER BY Name")) {

    /* determine number of rows result set */
    $row_cnt = $result->num_rows;

    printf("Result set has %d rows.\n", $row_cnt);

    /* close result set */
    $result->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($result = mysqli_query($link, "SELECT Code, Name FROM Country ORDER BY Name")) {

    /* determine number of rows result set */
    $row_cnt = mysqli_num_rows($result);

    printf("Result set has %d rows.\n", $row_cnt);

    /* close result set */
    mysqli_free_result($result);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Result set has 239 rows.

Пред. | Начало | След.
mysqli_num_fields | Уровень выше | mysqli_options


mysqli_options

(PHP 5)

mysqli_options

(no version information, might be only in CVS)

mysqli->options -- Set options

Description

Procedural style:

bool mysqli_options ( mysqli link, int option, mixed value )

Object oriented style (method)

class mysqli {

bool options ( int option, mixed value )

}

mysqli_options() can be used to set extra connect options and affect behavior for a connection.

This function may be called multiple times to set several options.

mysqli_options() should be called after mysqli_init() and before mysqli_real_connect().

The parameter option is the option that you want to set, the value is the value for the option. The parameter option can be one of the following values:

Таблица 1. Valid options

Name | Description
MYSQLI_OPT_CONNECT_TIMEOUT | connection timeout in seconds
MYSQLI_OPT_LOCAL_INFILE | enable/disable use of LOAD LOCAL INFILE
MYSQLI_INIT_COMMAND | command to execute after when connecting to MySQL server
MYSQLI_READ_DEFAULT_FILE | Read options from named option file instead of my.cnf
MYSQLI_READ_DEFAULT_GROUP | Read options from the named group from my.cnf or the file specified with MYSQL_READ_DEFAULT_FILE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

mysqli_init() и mysqli_real_connect().

Примеры

See mysqli_real_connect().

Пред. | Начало | След.
mysqli_num_rows | Уровень выше | mysqli_param_count


mysqli_param_count

(PHP 5)

mysqli_param_count -- Alias for mysqli_stmt_param_count()

Description

This function is an alias of mysqli_stmt_param_count(). For a detailled descripton see description of mysqli_stmt_param_count().

Замечание: mysqli_param_count() is deprecated and will be removed.

Смотрите также

mysqli_stmt_param_count().

Пред. | Начало | След.
mysqli_options | Уровень выше | mysqli_ping


mysqli_ping

(PHP 5)

mysqli_ping

(no version information, might be only in CVS)

mysqli->ping -- Pings a server connection, or tries to reconnect if the connection has gone down

Description

Procedural style:

bool mysqli_ping ( mysqli link )

Object oriented style (method):

class mysqli {

bool ping ( void )

}

Checks whether the connection to the server is working. If it has gone down, and global option mysqli.reconnect is enabled an automatic reconnection is attempted.

This function can be used by clients that remain idle for a long while, to check whether the server has closed the connection and reconnect if necessary.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* check if server is alive */
if ($mysqli->ping()) {
    printf ("Our connection is ok!\n");
} else {
    printf ("Error: %s\n", $mysqli->error);
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* check if server is alive */
if (mysqli_ping($link)) {
    printf ("Our connection is ok!\n");
} else {
    printf ("Error: %s\n", mysqli_error($link));
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Our connection is ok!

Пред. | Начало | След.
mysqli_param_count | Уровень выше | mysqli_prepare


mysqli_prepare

(PHP 5)

mysqli_prepare

(no version information, might be only in CVS)

mysqli->prepare -- Prepare a SQL statement for execution

Description

Procedure style:

mysqli_stmt mysqli_prepare ( mysqli link, string query )

Object oriented style (method)

class mysqli {

mysqli_stmt prepare ( string query )

}

mysqli_prepare() prepares the SQL query pointed to by the null-terminated string query, and returns a statement handle to be used for further operations on the statement. The query must consist of a single SQL statement.

Замечание: You should not add a terminating semicolon or \g to the statement.

The parameter query can include one or more parameter markers in the SQL statement by embedding question mark (?) characters at the appropriate positions.

Замечание: The markers are legal only in certain places in SQL statements. For example, they are allowed in the VALUES() list of an INSERT statement (to specify column values for a row), or in a comparison with a column in a WHERE clause to specify a comparison value.

However, they are not allowed for identifiers (such as table or column names), in the select list that names the columns to be returned by a SELECT statement, or to specify both operands of a binary operator such as the = equal sign. The latter restriction is necessary because it would be impossible to determine the parameter type. It's not allowed to compare marker with NULL by ? IS NULL too. In general, parameters are legal only in Data Manipulation Languange (DML) statements, and not in Data Defination Language (DDL) statements.

The parameter markers must be bound to application variables using mysqli_stmt_bind_param() and/or mysqli_stmt_bind_result() before executing the statement or fetching rows.

Возвращаемые значения

mysqli_prepare() returns a statement object or FALSE if an error occured.

Смотрите также

mysqli_stmt_execute(),
mysqli_stmt_fetch(),
mysqli_stmt_bind_param(),
mysqli_stmt_bind_result() и
mysqli_stmt_close().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* create a prepared statement */
if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {

    /* bind parameters for markers */
    $stmt->bind_param("s", $city);

    /* execute query */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($district);

    /* fetch value */
    $stmt->fetch();

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* create a prepared statement */
if ($stmt = mysqli_prepare($link, "SELECT District FROM City WHERE Name=?")) {

    /* bind parameters for markers */
    mysqli_stmt_bind_param($stmt, "s", $city);

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* bind result variables */
    mysqli_stmt_bind_result($stmt, $district);

    /* fetch value */
    mysqli_stmt_fetch($stmt);

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Amersfoort is in district Utrecht

Пред. | Начало | След.
mysqli_ping | Уровень выше | mysqli_query


mysqli_query

(PHP 5)

mysqli_query

(no version information, might be only in CVS)

mysqli->query -- Performs a query on the database

Description

Procedural style:

mixed mysqli_query ( mysqli link, string query [, int resultmode] )

Object oriented style (method):

class mysqli {

mixed query ( string query [, int resultmode] )

}

The mysqli_query() function is used to simplify the act of performing a query against the database represented by the link parameter.

Functionally, using this function is identical to calling mysqli_real_query() followed either by mysqli_use_result() or mysqli_store_result() where query is the query string itself and resultmode is either the constant MYSQLI_USE_RESULT or MYSQLI_STORE_RESULT depending on the desired behavior. By default, if the resultmode is not provided MYSQLI_STORE_RESULT is used.

If you execute mysqli_query() with resultmode MYSQLI_USE_RESULT all subsequent calls will return error Commands out of sync unless you call mysqli_free_result().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. For SELECT, SHOW, DESCRIBE or EXPLAIN mysqli_query() will return a result object.

Смотрите также

mysqli_real_query(),
mysqli_multi_query() и
mysqli_free_result().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Create table doesn't return a resultset */
if ($mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity successfully created.\n");
}

/* Select queries return a resultset */
if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10")) {
    printf("Select returned %d rows.\n", $result->num_rows);

    /* free result set */
    $result->close();
}

/* If we have to retrieve large amount of data we use MYSQLI_USE_RESULT */
if ($result = $mysqli->query("SELECT * FROM City", MYSQLI_USE_RESULT)) {

    /* Note, that we can't execute any functions which interact with the
       server until result set was closed. All calls will return an
       'out of sync' error */
    if (!$mysqli->query("SET @a:='this will not work'")) {
        printf("Error: %s\n", $mysqli->error);
    }
    $result->close();
}

$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Create table doesn't return a resultset */
if (mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Table myCity successfully created.\n");
}

/* Select queries return a resultset */
if ($result = mysqli_query($link, "SELECT Name FROM City LIMIT 10")) {
    printf("Select returned %d rows.\n", mysqli_num_rows($result));

    /* free result set */
    mysqli_free_result($result);
}

/* If we have to retrieve large amount of data we use MYSQLI_USE_RESULT */
if ($result = mysqli_query($link, "SELECT * FROM City", MYSQLI_USE_RESULT)) {

    /* Note, that we can't execute any functions which interact with the
       server until result set was closed. All calls will return an
       'out of sync' error */
    if (!mysqli_query($link, "SET @a:='this will not work'")) {
        printf("Error: %s\n", mysqli_error($link));
    }
    mysqli_free_result($result);
}

mysqli_close($link);
?>

Результат выполнения данного примера:

Table myCity successfully created.
Select returned 10 rows.
Error: Commands out of sync;  You can't run this command now

Пред. | Начало | След.
mysqli_prepare | Уровень выше | mysqli_real_connect


mysqli_real_connect

(PHP 5)

mysqli_real_connect

(no version information, might be only in CVS)

mysqli->real_connect -- Opens a connection to a mysql server

Description

Procedural style

bool mysqli_real_connect ( mysqli link [, string hostname [, string username [, string passwd [, string dbname [, int port [, string socket [, int flags]]]]]]] )

Object oriented style (method)

class mysqli {

bool real_connect ( [string hostname [, string username [, string passwd [, string dbname [, int port [, string socket [, int flags]]]]]]] )

}

mysqli_real_connect() attempts to establish a connection to a MySQL database engine running on hostname.

This function differs from mysqli_connect():

  • mysqli_real_connect() needs a valid object which has to be created by function mysqli_init()

  • With function mysqli_options() you can set various options for connection.

  • With the parameter flags you can set different connection options:

    Таблица 1. Supported flags

    Name | Description
    MYSQLI_CLIENT_COMPRESS | Use compression protocol
    MYSQLI_CLIENT_FOUND_ROWS | return number of matched rows, not the number of affected rows
    MYSQLI_CLIENT_IGNORE_SPACE | Allow spaces after function names. Makes all function names reserved words.
    MYSQLI_CLIENT_INTERACTIVE | Allow interactive_timeout seconds (instead of wait_timeout seconds) of inactivity before closing the connection
    MYSQLI_CLIENT_SSL | Use SSL (encryption)

    Замечание: For security reasons the MULTI_STATEMENT flag is not supported in PHP. If you want to execute multiple queries use the mysqli_multi_query() function.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

mysqli_connect(),
mysqli_init(),
mysqli_options(),
mysqli_ssl_set() и
mysqli_close().

Примеры

Пример 1. Object oriented style

<?php

/* create a connection object which is not connected */
$mysqli = mysqli_init();

/* set connection options */
$mysqli->options(MYSQLI_INIT_COMMAND, "SET AUTOCOMMIT=0");
$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5);

/* connect to server */
$mysqli->real_connect('localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf ("Connection: %s\n.", $mysqli->host_info);

$mysqli->close();
?>

Пример 2. Procedural style

<?php

/* create a connection object which is not connected */
$link = mysqli_init();

/* set connection options */
mysqli_options($link, MYSQLI_INIT_COMMAND, "SET AUTOCOMMIT=0");
mysqli_options($link, MYSQLI_OPT_CONNECT_TIMEOUT, 5);

/* connect to server */
mysqli_real_connect($link, 'localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf ("Connection: %s\n.", mysqli_get_host_info($link));

mysqli_close($link);
?>

Результат выполнения данного примера:

Connection: Localhost via UNIX socket

Пред. | Начало | След.
mysqli_query | Уровень выше | mysqli_real_escape_string


mysqli_real_escape_string

(PHP 5)

mysqli_real_escape_string

(no version information, might be only in CVS)

mysqli->real_escape_string -- Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection

Description

Procedural style:

string mysqli_real_escape_string ( mysqli link, string escapestr )

Object oriented style (method):

class mysqli {

string real_escape_string ( string escapestr )

}

This function is used to create a legal SQL string that you can use in a SQL statement. The string escapestr is encoded to an escaped SQL string, taking into account the current character set of the connection.

Characters encoded are NUL (ASCII 0), \n, \r, \, ', ", and Control-Z.

Возвращаемые значения

Returns an escaped string.

Смотрите также

mysqli_character_set_name().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City");

$city = "'s Hertogenbosch";

/* this query will fail, cause we didn't escape $city */
if (!$mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    printf("Error: %s\n", $mysqli->sqlstate);
}

$city = $mysqli->real_escape_string($city);

/* this query with escaped $city will work */
if ($mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    printf("%d Row inserted.\n", $mysqli->affected_rows);
}

$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City");

$city = "'s Hertogenbosch";

/* this query will fail, cause we didn't escape $city */
if (!mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
    printf("Error: %s\n", mysqli_sqlstate($link));
}

$city = mysqli_real_escape_string($link, $city);

/* this query with escaped $city will work */
if (mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
    printf("%d Row inserted.\n", mysqli_affected_rows($link));
}

mysqli_close($link);
?>

Результат выполнения данного примера:

Error: 42000
1 Row inserted.

Пред. | Начало | След.
mysqli_real_connect | Уровень выше | mysqli_real_query


mysqli_real_query

(PHP 5)

mysqli_real_query

(no version information, might be only in CVS)

mysqli->real_query -- Execute an SQL query

Description

Procedural style

bool mysqli_real_query ( mysqli link, string query )

Object oriented style (method):

class mysqli {

bool real_query ( string query )

}

The mysqli_real_query() function is used to execute only a query against the database represented by the link whose result can then be retrieved or stored using the mysqli_store_result() or mysqli_use_result() functions.

Замечание: In order to determine if a given query should return a result set or not, see mysqli_field_count().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

mysqli_query(),
mysqli_store_result() и
mysqli_use_result().

Пред. | Начало | След.
mysqli_real_escape_string | Уровень выше | mysqli_report


mysqli_report

(PHP 5)

mysqli_report -- Enables or disables internal report functions

Description

bool mysqli_report ( int flags )

mysqli_report() is a powerful function to improve your queries and code during development and testing phase. Depending on the flags it reports errors from mysqli function calls or queries which don't use an index (or use a bad index).

Таблица 1. Supported flags

Name | Description
MYSQLI_REPORT_OFF | Turns reporting off
MYSQLI_REPORT_ERROR | Report errors from mysqli function calls
MYSQLI_REPORT_INDEX | Report if no index or bad index was used in a query
MYSQLI_REPORT_ALL | Set all options (report all)

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

mysqli_debug() и mysqli_dump_debug_info().

Примеры

Пример 1. Object oriented style

<?php
/* activate reporting */
mysqli_report(MYSQLI_REPORT_ALL);

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* this query should report an error */
$result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");

/* this query should report a warning */
$result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");
$result->close();

$mysqli->close();
?>

Пред. | Начало | След.
mysqli_real_query | Уровень выше | mysqli_rollback


mysqli_rollback

(PHP 5)

mysqli_rollback

(no version information, might be only in CVS)

mysqli->rollback -- Rolls back current transaction

Description

bool mysqli_rollback ( mysqli link )

class mysqli {

bool rollback ( void )

}

Rollbacks the current transaction for the database specified by the link parameter.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

mysqli_commit() и mysqli_autocommit().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* disable autocommit */
$mysqli->autocommit(FALSE);

$mysqli->query("CREATE TABLE myCity LIKE City");
$mysqli->query("ALTER TABLE myCity Type=InnoDB");
$mysqli->query("INSERT INTO myCity SELECT * FROM City LIMIT 50");

/* commit insert */
$mysqli->commit();

/* delete all rows */
$mysqli->query("DELETE FROM myCity");

if ($result = $mysqli->query("SELECT COUNT(*) FROM myCity")) {
    $row = $result->fetch_row();
    printf("%d rows in table myCity.\n", $row[0]);
    /* Free result */
    $result->close();
}

/* Rollback */
$mysqli->rollback();

if ($result = $mysqli->query("SELECT COUNT(*) FROM myCity")) {
    $row = $result->fetch_row();
    printf("%d rows in table myCity (after rollback).\n", $row[0]);
    /* Free result */
    $result->close();
}

/* Drop table myCity */
$mysqli->query("DROP TABLE myCity");

$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* disable autocommit */
mysqli_autocommit($link, FALSE);

mysqli_query($link, "CREATE TABLE myCity LIKE City");
mysqli_query($link, "ALTER TABLE myCity Type=InnoDB");
mysqli_query($link, "INSERT INTO myCity SELECT * FROM City LIMIT 50");

/* commit insert */
mysqli_commit($link);

/* delete all rows */
mysqli_query($link, "DELETE FROM myCity");

if ($result = mysqli_query($link, "SELECT COUNT(*) FROM myCity")) {
    $row = mysqli_fetch_row($result);
    printf("%d rows in table myCity.\n", $row[0]);
    /* Free result */
    mysqli_free_result($result);
}

/* Rollback */
mysqli_rollback($link);

if ($result = mysqli_query($link, "SELECT COUNT(*) FROM myCity")) {
    $row = mysqli_fetch_row($result);
    printf("%d rows in table myCity (after rollback).\n", $row[0]);
    /* Free result */
    mysqli_free_result($result);
}

/* Drop table myCity */
mysqli_query($link, "DROP TABLE myCity");

mysqli_close($link);
?>

Результат выполнения данного примера:

0 rows in table myCity.
50 rows in table myCity (after rollback).

Пред. | Начало | След.
mysqli_report | Уровень выше | mysqli_rpl_parse_enabled


mysqli_rpl_parse_enabled

(PHP 5)

mysqli_rpl_parse_enabled -- Check if RPL parse is enabled

Description

int mysqli_rpl_parse_enabled ( mysqli link )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mysqli_rollback | Уровень выше | mysqli_rpl_probe


mysqli_rpl_probe

(PHP 5)

mysqli_rpl_probe -- RPL probe

Description

bool mysqli_rpl_probe ( mysqli link )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mysqli_rpl_parse_enabled | Уровень выше | mysqli_rpl_query_type


mysqli_rpl_query_type

(PHP 5)

mysqli_rpl_query_type

(no version information, might be only in CVS)

mysqli->rpl_query_type -- Returns RPL query type

Description

Procedural style:

int mysqli_rpl_query_type ( mysqli link, string query )

Object oriented style (method)

class mysqli {

int rpl_query_type ( string query )

}

Returns MYSQLI_RPL_MASTER, MYSQLI_RPL_SLAVE or MYSQLI_RPL_ADMIN depending on a query type. INSERT, UPDATE and similar are master queries, SELECT is slave, and FLUSH, REPAIR and similar are admin.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mysqli_rpl_probe | Уровень выше | mysqli_select_db


mysqli_select_db

(PHP 5)

mysqli_select_db

(no version information, might be only in CVS)

mysqli->select_db -- Selects the default database for database queries

Description

bool mysqli_select_db ( mysqli link, string dbname )

The mysqli_select_db() function selects the default database (specified by the dbname parameter) to be used when performing queries against the database connection represented by the link parameter.

Замечание: This function should only be used to change the default database for the connection. You can select the default database with 4th parameter in mysqli_connect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

mysqli_connect() и mysqli_real_connect().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* return name of current default database */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database is %s.\n", $row[0]);
    $result->close();
}

/* change db to world db */
$mysqli->select_db("world");

/* return name of current default database */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database is %s.\n", $row[0]);
    $result->close();
}

$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* return name of current default database */
if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("Default database is %s.\n", $row[0]);
    mysqli_free_result($result);
}

/* change db to world db */
mysqli_select_db($link, "world");

/* return name of current default database */
if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("Default database is %s.\n", $row[0]);
    mysqli_free_result($result);
}

mysqli_close($link);
?>

Результат выполнения данного примера:

Default database is test.
Default database is world.

Пред. | Начало | След.
mysqli_rpl_query_type | Уровень выше | mysqli_send_long_data


mysqli_send_long_data

(PHP 5)

mysqli_send_long_data -- Alias for mysqli_stmt_send_long_data()

Description

This function is an alias of mysqli_stmt_send_long_data(). For a detailled descripton see description of mysqli_stmt_send_long_data().

Замечание: mysqli_send_long_data() is deprecated and will be removed.

Смотрите также

mysqli_stmt_send_long_data().

Пред. | Начало | След.
mysqli_select_db | Уровень выше | mysqli_send_query


mysqli_send_query

(PHP 5)

mysqli_send_query

(no version information, might be only in CVS)

mysqli->send_query -- Send the query and return

Description

Procedural style:

bool mysqli_send_query ( mysqli link, string query )

Object oriented style (method)

class mysqli {

bool send_query ( string query )

}

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mysqli_send_long_data | Уровень выше | mysqli_server_end


mysqli_server_end

(PHP 5 <= 5.0.4)

mysqli_server_end -- Shut down the embedded server

Description

void mysqli_server_end ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mysqli_send_query | Уровень выше | mysqli_server_init


mysqli_server_init

(PHP 5 <= 5.0.4)

mysqli_server_init -- Initialize embedded server

Description

bool mysqli_server_init ( [array server [, array groups]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
mysqli_server_end | Уровень выше | mysqli_set_charset


mysqli_set_opt

(PHP 5)

mysqli_set_opt -- Alias of mysqli_options()

Description

This function is an alias of mysqli_options().

Пред. | Начало | След.
mysqli_set_charset | Уровень выше | mysqli_sqlstate


mysqli_sqlstate

(PHP 5)

mysqli_sqlstate

(no version information, might be only in CVS)

mysqli->sqlstate -- Returns the SQLSTATE error from previous MySQL operation

Description

Procedural style:

string mysqli_sqlstate ( mysqli link )

Object oriented style (property):

class mysqli {

string sqlstate

}

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error. The values are specified by ANSI SQL and ODBC. For a list of possible values, see http://dev.mysql.com/doc/mysql/en/error-handling.html.

Замечание: Note that not all MySQL errors are yet mapped to SQLSTATE's. The value HY000 (general error) is used for unmapped errors.

Возвращаемые значения

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error.

Смотрите также

mysqli_errno() и mysqli_error().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Table City already exists, so we should get an error */
if (!$mysqli->query("CREATE TABLE City (ID INT, Name VARCHAR(30))")) {
    printf("Error - SQLSTATE %s.\n", $mysqli->sqlstate);
}

$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Table City already exists, so we should get an error */
if (!mysqli_query($link, "CREATE TABLE City (ID INT, Name VARCHAR(30))")) {
    printf("Error - SQLSTATE %s.\n", mysqli_sqlstate($link));
}

mysqli_close($link);
?>

Результат выполнения данного примера:

Error - SQLSTATE 42S01.

Пред. | Начало | След.
mysqli_set_opt | Уровень выше | mysqli_ssl_set


mysqli_ssl_set

(PHP 5)

mysqli_ssl_set

(no version information, might be only in CVS)

mysqli->ssl_set -- Used for establishing secure connections using SSL

Description

Procedural style:

bool mysqli_ssl_set ( mysqli link, string key, string cert, string ca, string capath, string cipher )

Object oriented style (method):

class mysqli {

bool ssl_set ( string key, string cert, string ca, string capath, string cipher )

}

The function mysqli_ssl_set() is used for establishing secure connections using SSL. It must be called before mysqli_real_connect(). This function does nothing unless OpenSSL support is enabled.

key is the pathname to the key file. cert is the pathname to the certificate file. ca is the pathname to the certificate authority file. capath is the pathname to a directory that contains trusted SSL CA certificates in pem format. cipher is a list of allowable ciphers to use for SSL encryption. Any unused SSL parameters may be given as NULL

Возвращаемые значения

This function always returns TRUE value. If SSL setup is incorrect mysqli_real_connect() will return an error when you attempt to connect.

Смотрите также

mysqli_options() и mysqli_real_connect().

Пред. | Начало | След.
mysqli_sqlstate | Уровень выше | mysqli_stat


mysqli_stat

(PHP 5)

mysqli_stat

(no version information, might be only in CVS)

mysqli->stat -- Gets the current system status

Description

Procedural style:

string mysqli_stat ( mysqli link )

Object oriented style (method):

class mysqli {

string stat ( void )

}

mysqli_stat() returns a string containing information similar to that provided by the 'mysqladmin status' command. This includes uptime in seconds and the number of running threads, questions, reloads, and open tables.

Возвращаемые значения

A string describing the server status. FALSE if an error occurred.

Смотрите также

mysqli_get_server_info().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf ("System status: %s\n", $mysqli->stat());

$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

printf("System status: %s\n", mysqli_stat($link));

mysqli_close($link);
?>

Результат выполнения данного примера:

System status: Uptime: 272  Threads: 1  Questions: 5340  Slow queries: 0
Opens: 13  Flush tables: 1  Open tables: 0  Queries per second avg: 19.632
Memory in use: 8496K  Max memory used: 8560K

Пред. | Начало | След.
mysqli_ssl_set | Уровень выше | mysqli_stmt_affected_rows


mysqli_stmt_affected_rows

(PHP 5)

mysqli_stmt_affected_rows

(no version information, might be only in CVS)

mysqli_stmt->affected_rows -- Returns the total number of rows changed, deleted, or inserted by the last executed statement

Description

Procedural style :

int mysqli_stmt_affected_rows ( mysqli_stmt stmt )

Object oriented style (property):

class mysqli_stmt {

int affected_rows

}

mysqli_stmt_affected_rows() returns the number of rows affected by INSERT, UPDATE, or DELETE query. If the last query was invalid, this function will return -1.

The mysqli_stmt_affected_rows() function only works with queries which update a table. In order to return the number of rows from a SELECT query, use the mysqli_stmt_num_rows() function instead.

Возвращаемые значения

An integer greater than zero indicates the number of rows affected or retrieved. Zero indicates that no records where updated for an UPDATE/DELETE statement, no rows matched the WHERE clause in the query or that no query has yet been executed. -1 indicates that the query has returned an error.

Замечание: If the number of affected rows is greater than maximal PHP int value, the number of affected rows will be returned as a string value.

Смотрите также

mysqli_stmt_num_rows() и mysqli_prepare().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* create temp table */
$mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* prepare statement */
if ($stmt = $mysqli->prepare($query)) {

    /* Bind variable for placeholder */
    $code = 'A%';
    $stmt->bind_param("s", $code);

    /* execute statement */
    $stmt->execute();

    printf("rows inserted: %d\n", $stmt->affected_rows);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* create temp table */
mysqli_query($link, "CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* prepare statement */
if ($stmt = mysqli_prepare($link, $query)) {

    /* Bind variable for placeholder */
    $code = 'A%';
    mysqli_stmt_bind_param($stmt, "s", $code);

    /* execute statement */
    mysqli_stmt_execute($stmt);

    printf("rows inserted: %d\n", mysqli_stmt_affected_rows($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

rows inserted: 17

Пред. | Начало | След.
mysqli_stat | Уровень выше | mysqli_stmt_bind_param


mysqli_stmt_bind_param

(PHP 5)

mysqli_stmt_bind_param

(no version information, might be only in CVS)

stmt->bind_param -- Binds variables to a prepared statement as parameters

Description

Procedural style:

bool mysqli_stmt_bind_param ( mysqli_stmt stmt, string types, mixed &var1 [, mixed &...] )

Object oriented style (method):

class mysqli_stmt {

bool bind_param ( string types, mixed &var1 [, mixed &...] )

}

mysqli_stmt_bind_param() is used to bind variables for the parameter markers in the SQL statement that was passed to mysqli_prepare(). The string types contains one or more characters which specify the types for the corresponding bind variables

Таблица 1. Type specification chars

Character | Description
i | corresponding variable has type integer
d | corresponding variable has type double
s | corresponding variable has type string
b | corresponding variable is a blob and will be send in packets

Замечание: If data size of a variable exceeds max. allowed packet size (max_allowed_packet), you have to specify b in types and use mysqli_stmt_send_long_data() to send the data in packets.

The number of variables and length of string types must match the parameters in the statement.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

mysqli_stmt_bind_result(),
mysqli_stmt_execute(),
mysqli_stmt_fetch(),
mysqli_prepare(),
mysqli_stmt_send_long_data(),
mysqli_stmt_errno() и
mysqli_stmt_error().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

/* execute prepared statement */
$stmt->execute();

printf("%d Row inserted.\n", $stmt->affected_rows);

/* close statement and connection */
$stmt->close();

/* Clean up table CountryLanguage */
$mysqli->query("DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d Row deleted.\n", $mysqli->affected_rows);

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$stmt = mysqli_prepare($link, "INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
mysqli_stmt_bind_param($stmt, 'sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

/* execute prepared statement */
mysqi_stmt_execute($stmt);

printf("%d Row inserted.\n", mysqli_stmt_affected_rows($stmt));

/* close statement and connection */
mysqli_stmt_close($stmt);

/* Clean up table CountryLanguage */
mysqli_query($link, "DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d Row deleted.\n", mysqli_affected_rows($link));

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

1 Row inserted.
1 Row deleted.

Пред. | Начало | След.
mysqli_stmt_affected_rows | Уровень выше | mysqli_stmt_bind_result


mysqli_stmt_bind_result

(PHP 5)

mysqli_stmt_bind_result

(no version information, might be only in CVS)

stmt->bind_result -- Binds variables to a prepared statement for result storage

Description

Procedural style:

bool mysqli_stmt_bind_result ( mysqli_stmt stmt, mixed &var1 [, mixed &...] )

Object oriented style (method):

class mysqli_stmt {

bool bind_result ( mixed &var1 [, mixed &...] )

}

mysqli_stmt_bind_result() is used to associate (bind) columns in the result set to variables. When mysqli_stmt_fetch() is called to fetch data, the MySQL client/server protocol places the data for the bound columns into the specified variables var1, ....

Замечание: Note that all columns must be bound prior to calling mysqli_stmt_fetch(). Depending on column types bound variables can silently change to the corresponding PHP type.

A column can be bound or rebound at any time, even after a result set has been partially retrieved. The new binding takes effect the next time mysqli_stmt_fetch() is called.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

mysqli_stmt_bind_param(),
mysqli_stmt_execute(),
mysqli_stmt_fetch(),
mysqli_prepare(),
mysqli_stmt_prepare(),
mysqli_stmt_init(),
mysqli_stmt_errno() и
mysqli_stmt_error().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* prepare statement */
if ($stmt = $mysqli->prepare("SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
    $stmt->execute();

    /* bind variables to prepared statement */
    $stmt->bind_result($col1, $col2);

    /* fetch values */
    while ($stmt->fetch()) {
        printf("%s %s\n", $col1, $col2);
    }

    /* close statement */
    $stmt->close();
}
/* close connection */
$mysqli->close();

?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* prepare statement */
if ($stmt = mysqli_prepare($link, "SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
    mysqli_stmt_execute($stmt);

    /* bind variables to prepared statement */
    mysqli_stmt_bind_result($stmt, $col1, $col2);

    /* fetch values */
    while (mysqli_stmt_fetch($stmt)) {
        printf("%s %s\n", $col1, $col2);
    }

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

AFG Afghanistan
ALB Albania
DZA Algeria
ASM American Samoa
AND Andorra

Пред. | Начало | След.
mysqli_stmt_bind_param | Уровень выше | mysqli_stmt_close


mysqli_stmt_close

(PHP 5)

mysqli_stmt_close

(no version information, might be only in CVS)

mysqli_stmt->close -- Closes a prepared statement

Description

Procedural style:

bool mysqli_stmt_close ( mysqli_stmt stmt )

Object oriented style (method):

class mysqli_stmt {

bool close ( void )

}

Closes a prepared statement. mysqli_stmt_close() also deallocates the statement handle pointed to by stmt. If the current statement has pending or unread results, this function cancels them so that the next query can be executed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

mysqli_prepare().

Пред. | Начало | След.
mysqli_stmt_bind_result | Уровень выше | mysqli_stmt_data_seek


mysqli_stmt_data_seek

(PHP 5)

mysqli_stmt_data_seek

(no version information, might be only in CVS)

stmt->data_seek -- Seeks to an arbitray row in statement result set

Description

Procedural style:

void mysqli_stmt_data_seek ( mysqli_stmt statement, int offset )

Object oriented style (method):

class mysqli_stmt {

void data_seek ( int offset )

}

The mysqli_stmt_data_seek() function seeks to an arbitrary result pointer specified by the offset in the statement result set represented by statement. The offset parameter must be between zero and the total number of rows minus one (0..mysqli_stmt_num_rows() - 1).

Возвращаемые значения

Returns NULL on success or FALSE on failure.

Смотрите также

mysqli_prepare().

Примеры

Пример 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* execute query */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($name, $code);

    /* store result */
    $stmt->store_result();

    /* seek to row no. 400 */
    $stmt->data_seek(399);

    /* fetch values */
    $stmt->fetch();

    printf ("City: %s  Countrycode: %s\n", $name, $code);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* bind result variables */
    mysqli_stmt_bind_result($stmt, $name, $code);

    /* store result */
    mysqli_stmt_store_result($stmt);

    /* seek to row no. 400 */
    mysqli_stmt_data_seek($stmt, 399);

    /* fetch values */
    mysqli_stmt_fetch($stmt);

    printf ("City: %s  Countrycode: %s\n", $name, $code);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

City: Benin City  Countrycode: NGA

Пред. | Начало | След.
mysqli_stmt_close | Уровень выше | mysqli_stmt_errno


mysqli_stmt_errno

(PHP 5)

mysqli_stmt_errno

(no version information, might be only in CVS)

mysqli_stmt->errno -- Returns the error code for the most recent statement call

Description

Procedural style :

int mysqli_stmt_errno ( mysqli_stmt stmt )

Object oriented style (property):

class mysqli_stmt {

int errno

}

For the statement specified by stmt, mysqli_stmt_errno() returns the error code for the most recently invoked statement function that can succeed or fail.

Замечание: Client error message numbers are listed in the MySQL errmsg.h header file, server error message numbers are listed in mysqld_error.h. In the MySQL source distribution you can find a complete list of error messages and error numbers in the file Docs/mysqld_error.txt.

Возвращаемые значения

An error code value. Zero means no error occurred.

Смотрите также

mysqli_stmt_error() и mysqli_stmt_sqlstate().

Примеры

Пример 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* drop table */
    $mysqli->query("DROP TABLE myCountry");

    /* execute query */
    $stmt->execute();

    printf("Error: %d.\n", $stmt->errno);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* drop table */
    mysqli_query($link, "DROP TABLE myCountry");

    /* execute query */
    mysqli_stmt_execute($stmt);

    printf("Error: %d.\n", mysqli_stmt_errno($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Error: 1146.

Пред. | Начало | След.
mysqli_stmt_data_seek | Уровень выше | mysqli_stmt_error


mysqli_stmt_error

(PHP 5)

mysqli_stmt_error

(no version information, might be only in CVS)

mysqli_stmt->error -- Returns a string description for last statement error

Description

Procedural style:

string mysqli_stmt_error ( mysqli_stmt stmt )

Object oriented style (property):

class mysqli_stmt {

string error

}

For the statement specified by stmt, mysqli_stmt_error() returns a containing the error message for the most recently invoked statement function that can succeed or fail.

Возвращаемые значения

A string that describes the error. An empty string if no error occurred.

Смотрите также

mysqli_stmt_errno() и mysqli_stmt_sqlstate().

Примеры

Пример 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* drop table */
    $mysqli->query("DROP TABLE myCountry");

    /* execute query */
    $stmt->execute();

    printf("Error: %s.\n", $stmt->error);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* drop table */
    mysqli_query($link, "DROP TABLE myCountry");

    /* execute query */
    mysqli_stmt_execute($stmt);

    printf("Error: %s.\n", mysqli_stmt_error($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Error: Table 'world.myCountry' doesn't exist.

Пред. | Начало | След.
mysqli_stmt_errno | Уровень выше | mysqli_stmt_execute


mysqli_stmt_execute

(PHP 5)

mysqli_stmt_execute

(no version information, might be only in CVS)

stmt->execute -- Executes a prepared Query

Description

Procedural style:

bool mysqli_stmt_execute ( mysqli_stmt stmt )

Object oriented style (method):

class mysqli_stmt {

bool execute ( void )

}

The mysqli_stmt_execute() function executes a query that has been previously prepared using the mysqli_prepare() function represented by the stmt object. When executed any parameter markers which exist will automatically be replaced with the appropiate data.

If the statement is UPDATE, DELETE, or INSERT, the total number of affected rows can be determined by using the mysqli_stmt_affected_rows() function. Likewise, if the query yields a result set the mysqli_stmt_fetch() function is used.

Замечание: When using mysqli_stmt_execute(), the mysqli_stmt_fetch() function must be used to fetch the data prior to performing any additional queries.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

mysqli_prepare() и mysqli_stmt_bind_param().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

/* Prepare an insert statement */
$query = "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$stmt = $mysqli->prepare($query);

$stmt->bind_param("sss", $val1, $val2, $val3);

$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';

/* Execute the statement */
$stmt->execute();

$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* Execute the statement */
$stmt->execute();

/* close statement */
$stmt->close();

/* retrieve all rows from myCity */
$query = "SELECT Name, CountryCode, District FROM myCity";
if ($result = $mysqli->query($query)) {
    while ($row = $result->fetch_row()) {
        printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
    }
    /* free result set */
    $result->close();
}

/* remove table */
$mysqli->query("DROP TABLE myCity");

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

/* Prepare an insert statement */
$query = "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$stmt = mysqli_prepare($link, $query);

mysqli_stmt_bind_param($stmt, "sss", $val1, $val2, $val3);

$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';

/* Execute the statement */
mysqli_stmt_execute($stmt);

$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* Execute the statement */
mysqli_stmt_execute($stmt);

/* close statement */
mysqli_stmt_close($stmt);

/* retrieve all rows from myCity */
$query = "SELECT Name, CountryCode, District FROM myCity";
if ($result = mysqli_query($link, $query)) {
    while ($row = mysqli_fetch_row($result)) {
        printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
    }
    /* free result set */
    mysqli_free_result($result);
}

/* remove table */
mysqli_query($link, "DROP TABLE myCity");

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Stuttgart (DEU,Baden-Wuerttemberg)
Bordeaux (FRA,Aquitaine)

Пред. | Начало | След.
mysqli_stmt_error | Уровень выше | mysqli_stmt_fetch


mysqli_stmt_fetch

(PHP 5)

mysqli_stmt_fetch

(no version information, might be only in CVS)

stmt->fetch -- Fetch results from a prepared statement into the bound variables

Description

Procedural style:

bool mysqli_stmt_fetch ( mysqli_stmt stmt )

Object oriented style (method):

class mysqli_stmt {

bool fetch ( void )

}

mysqli_stmt_fetch() fetch the result from a prepared statement into the variables bound by mysqli_stmt_bind_result().

Замечание: Note that all columns must be bound by the application before calling mysqli_stmt_fetch().

Возвращаемые значения

Таблица 1. Возвращаемые значения

Value | Description
TRUE | Success. Data has been fetched
FALSE | Error occured
NULL | No more rows/data exists or data truncation occurred

Смотрите также

mysqli_prepare(),
mysqli_stmt_errno(),
mysqli_stmt_error() и
mysqli_stmt_bind_result().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if ($stmt = $mysqli->prepare($query)) {

    /* execute statement */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($name, $code);

    /* fetch values */
    while ($stmt->fetch()) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if ($stmt = mysqli_prepare($link, $query)) {

    /* execute statement */
    mysqli_stmt_execute($stmt);

    /* bind result variables */
    mysqli_stmt_bind_result($stmt, $name, $code);

    /* fetch values */
    while (mysqli_stmt_fetch($stmt)) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Rockford (USA)
Tallahassee (USA)
Salinas (USA)
Santa Clarita (USA)
Springfield (USA)

Пред. | Начало | След.
mysqli_stmt_execute | Уровень выше | mysqli_stmt_free_result


mysqli_stmt_free_result

(PHP 5)

mysqli_stmt_free_result

(no version information, might be only in CVS)

stmt->free_result -- Frees stored result memory for the given statement handle

Description

Procedural style:

void mysqli_stmt_free_result ( mysqli_stmt stmt )

Object oriented style (method):

class mysqli_stmt {

void free_result ( void )

}

The mysqli_stmt_free_result() function frees the result memory associated with the statement represented by the stmt parameter, which was allocated by mysqli_stmt_store_result().

Возвращаемые значения

This function doesn't return any value.

Смотрите также

mysqli_stmt_store_result().

Пред. | Начало | След.
mysqli_stmt_fetch | Уровень выше | mysqli_stmt_init


mysqli_stmt_init

(PHP 5)

mysqli_stmt_init

(no version information, might be only in CVS)

mysqli->stmt_init -- Initializes a statement and returns an object for use with mysqli_stmt_prepare

Description

Procedural style :

mysqli_stmt mysqli_stmt_init ( mysqli link )

Object oriented style (property):

class mysqli {

mysqli_stmt stmt_init ( void )

}

Allocates and initializes a statement object suitable for mysqli_stmt_prepare().

Замечание: Any subsequent calls to any mysqli_stmt function will fail until mysqli_stmt_prepare() was called.

Возвращаемые значения

Returns an object.

Смотрите также

mysqli_stmt_prepare().

Пред. | Начало | След.
mysqli_stmt_free_result | Уровень выше | mysqli_stmt_num_rows


mysqli_stmt_num_rows

(PHP 5)

mysqli_stmt_num_rows

(no version information, might be only in CVS)

stmt->num_rows -- Return the number of rows in statements result set

Description

Procedural style :

int mysqli_stmt_num_rows ( mysqli_stmt stmt )

Object oriented style (property):

class mysqli_stmt {

int num_rows

}

Returns the number of rows in the result set. The use of mysqli_stmt_num_rows() depends on whether or not you used mysqli_stmt_store_result() to buffer the entire result set in the statement handle.

If you use mysqli_stmt_store_result(), mysqli_stmt_num_rows() may be called immediately.

Возвращаемые значения

An integer representing the number of rows in result set.

Смотрите также

mysqli_stmt_affected_rows(),
mysqli_prepare() и
mysqli_stmt_store_result().

Примеры

Пример 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = $mysqli->prepare($query)) {

    /* execute query */
    $stmt->execute();

    /* store result */
    $stmt->store_result();

    printf("Number of rows: %d.\n", $stmt->num_rows);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = mysqli_prepare($link, $query)) {

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* store result */
    mysqli_stmt_store_result($stmt);

    printf("Number of rows: %d.\n", mysqli_stmt_num_rows($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Number of rows: 20.

Пред. | Начало | След.
mysqli_stmt_init | Уровень выше | mysqli_stmt_param_count


mysqli_stmt_param_count

(PHP 5)

mysqli_stmt_param_count

(no version information, might be only in CVS)

stmt->param_count -- Returns the number of parameter for the given statement

Description

Procedural style:

int mysqli_stmt_param_count ( mysqli_stmt stmt )

Object oriented style (property):

class mysqli_stmt {

int param_count

}

mysqli_stmt_param_count() returns the number of parameter markers present in the prepared statement.

Возвращаемые значения

returns an integer representing the number of parameters.

Смотрите также

mysqli_prepare().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($stmt = $mysqli->prepare("SELECT Name FROM Country WHERE Name=? OR Code=?")) {

    $marker = $stmt->param_count;
    printf("Statement has %d markers.\n", $marker);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if ($stmt = mysqli_prepare($link, "SELECT Name FROM Country WHERE Name=? OR Code=?")) {

    $marker = mysqli_stmt_param_count($stmt);
    printf("Statement has %d markers.\n", $marker);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Statement has 2 markers.

Пред. | Начало | След.
mysqli_stmt_num_rows | Уровень выше | mysqli_stmt_prepare


mysqli_stmt_prepare

(PHP 5)

mysqli_stmt_prepare

(no version information, might be only in CVS)

stmt->prepare -- Prepare a SQL statement for execution

Description

Procedure style:

bool mysqli_stmt_prepare ( mysqli_stmt stmt, string query )

Object oriented style (method)

class mysqli_stmt {

mixed prepare ( string query )

}

mysqli_stmt_prepare() prepares the SQL query pointed to by the null-terminated string query. The statement object has to be allocated by mysqli_stmt_init(). The query must consist of a single SQL statement.

Замечание: You should not add a terminating semicolon or \g to the statement.

The parameter query can include one or more parameter markers in the SQL statement by embedding question mark (?) characters at the appropriate positions.

Замечание: The markers are legal only in certain places in SQL statements. For example, they are allowed in the VALUES() list of an INSERT statement (to specify column values for a row), or in a comparison with a column in a WHERE clause to specify a comparison value.

However, they are not allowed for identifiers (such as table or column names), in the select list that names the columns to be returned by a SELECT statement), or to specify both operands of a binary operator such as the = equal sign. The latter restriction is necessary because it would be impossible to determine the parameter type. In general, parameters are legal only in Data Manipulation Languange (DML) statements, and not in Data Defination Language (DDL) statements.

The parameter markers must be bound to application variables using mysqli_stmt_bind_param() and/or mysqli_stmt_bind_result() before executing the statement or fetching rows.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

mysqli_stmt_init(),
mysqli_stmt_execute(),
mysqli_stmt_fetch(),
mysqli_stmt_bind_param(),
mysqli_stmt_bind_result() и
mysqli_stmt_close().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* create a prepared statement */
$stmt =  $mysqli->stmt_init();
if ($stmt->prepare("SELECT District FROM City WHERE Name=?")) {

    /* bind parameters for markers */
    $stmt->bind_param("s", $city);

    /* execute query */
    $stmt->execute();

    /* bind result variables */
    $stmt->bind_result($district);

    /* fetch value */
    $stmt->fetch();

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* create a prepared statement */
$stmt = mysqli_stmt_init();
if ($stmt = mysqli_stmt_prepare($stmt, "SELECT District FROM City WHERE Name=?")) {

    /* bind parameters for markers */
    mysqli_stmt_bind_param($stmt, "s", $city);

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* bind result variables */
    mysqli_stmt_bind_result($stmt, $district);

    /* fetch value */
    mysqli_stmt_fetch($stmt);

    printf("%s is in district %s\n", $city, $district);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Amersfoort is in district Utrecht

Пред. | Начало | След.
mysqli_stmt_param_count | Уровень выше | mysqli_stmt_reset


mysqli_stmt_reset

(PHP 5)

mysqli_stmt_reset

(no version information, might be only in CVS)

stmt->reset -- Resets a prepared statement

Description

Procedural style:

bool mysqli_stmt_reset ( mysqli_stmt stmt )

Object oriented style (method):

class mysqli_stmt {

bool reset ( void )

}

The mysqli_stmt_reset() resets a prepared statement on client and server to state after prepare. For now this is mainly used to reset data sent with mysqli_stmt_send_long_data().

Замечание: To prepare a statement with another query use function mysqli_stmt_prepare().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

mysqli_prepare().

Пред. | Начало | След.
mysqli_stmt_prepare | Уровень выше | mysqli_stmt_result_metadata


mysqli_stmt_result_metadata

(PHP 5)

mysqli_stmt_result_metadata -- Returns result set metadata from a prepared statement

Description

Procedural style:

mysqli_result mysqli_stmt_result_metadata ( mysqli_stmt stmt )

Object oriented style (method):

class mysqli_stmt {

mysqli_result result_metadata ( void )

}

If a statement passed to mysqli_prepare() is one that produces a result set, mysqli_stmt_result_metadata() returns the result object that can be used to process the meta information such as total number of fields and individual field information.

Замечание: This result set pointer can be passed as an argument to any of the field-based functions that process result set metadata, such as:

  • mysqli_num_fields()

  • mysqli_fetch_field()

  • mysqli_fetch_field_direct()

  • mysqli_fetch_fields()

  • mysqli_field_count()

  • mysqli_field_seek()

  • mysqli_field_tell()

  • mysqli_free_result()

The result set structure should be freed when you are done with it, which you can do by passing it to mysqli_free_result()

Замечание: The result set returned by mysqli_stmt_result_metadata() contains only metadata. It does not contain any row results. The rows are obtained by using the statement handle with mysqli_stmt_fetch().

Возвращаемые значения

mysqli_stmt_result_metadata() returns a result object or FALSE if an error occured.

Смотрите также

mysqli_prepare() и mysqli_free_result().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

$mysqli->query("DROP TABLE IF EXISTS friends");
$mysqli->query("CREATE TABLE friends (id int, name varchar(20))");

$mysqli->query("INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$stmt = $mysqli->prepare("SELECT id, name FROM friends");
$stmt->execute();

/* get resultset for metadata */
$result = $stmt->result_metadata();

/* retrieve field information from metadata result set */
$field = $result->fetch_field();

printf("Fieldname: %s\n", $field->name);

/* close resultset */
$result->close();

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

mysqli_query($link, "DROP TABLE IF EXISTS friends");
mysqli_query($link, "CREATE TABLE friends (id int, name varchar(20))");

mysqli_query($link, "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$stmt = mysqli_prepare($link, "SELECT id, name FROM friends");
mysqli_stmt_execute($stmt);

/* get resultset for metadata */
$result = mysqli_stmt_result_metadata($stmt);

/* retrieve field information from metadata result set */
$field = mysqli_fetch_field($result);

printf("Fieldname: %s\n", $field->name);

/* close resultset */
mysqli_free_result($result);

/* close connection */
mysqli_close($link);
?>

Пред. | Начало | След.
mysqli_stmt_reset | Уровень выше | mysqli_stmt_send_long_data


mysqli_stmt_send_long_data

(PHP 5)

mysqli_stmt_send_long_data

(no version information, might be only in CVS)

stmt->send_long_data -- Send data in blocks

Description

Procedural style:

bool mysqli_stmt_send_long_data ( mysqli_stmt stmt, int param_nr, string data )

Object oriented style (method)

class mysqli_stmt {

bool send_long_data ( int param_nr, string data )

}

Allows to send parameter data to the server in pieces (or chunks), e.g. if the size of a blob exceeds the size of max_allowed_packet. This function can be called multiple times to send the parts of a character or binary data value for a column, which must be one of the TEXT or BLOB datatypes.

param_nr indicates which parameter to associate the data with. Parameters are numbered beginning with 0. data is a string containing data to be sent.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

mysqli_prepare() и mysqli_stmt_bind_param().

Пред. | Начало | След.
mysqli_stmt_result_metadata | Уровень выше | mysqli_stmt_sqlstate


mysqli_stmt_sqlstate

(PHP 5)

mysqli_stmt_sqlstate -- Returns SQLSTATE error from previous statement operation

Description

string mysqli_stmt_sqlstate ( mysqli_stmt stmt )

Returns a string containing the SQLSTATE error code for the most recently invoked prepared statement function that can succeed or fail. The error code consists of five characters. '00000' means no error. The values are specified by ANSI SQL and ODBC. For a list of possible values, see http://dev.mysql.com/doc/mysql/en/error-handling.html.

Замечание: Note that not all MySQL errors are yet mapped to SQLSTATE's. The value HY000 (general error) is used for unmapped errors.

Возвращаемые значения

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error.

Смотрите также

mysqli_stmt_errno() и mysqli_stmt_error().

Примеры

Пример 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* drop table */
    $mysqli->query("DROP TABLE myCountry");

    /* execute query */
    $stmt->execute();

    printf("Error: %s.\n", $stmt->sqlstate);

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* drop table */
    mysqli_query($link, "DROP TABLE myCountry");

    /* execute query */
    mysqli_stmt_execute($stmt);

    printf("Error: %s.\n", mysqli_stmt_sqlstate($stmt));

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Error: 42S02.

Пред. | Начало | След.
mysqli_stmt_send_long_data | Уровень выше | mysqli_stmt_store_result


mysqli_stmt_store_result

(PHP 5)

mysqli_stmt_store_result

(no version information, might be only in CVS)

mysqli_stmt->store_result -- Transfers a result set from a prepared statement

Description

Procedural style:

bool mysqli_stmt_store_result ( mysqli_stmt stmt )

Object oriented style (method):

class mysqli_stmt {

bool store_result ( void )

}

You must call mysqli_stmt_store_result() for every query that successfully produces a result set (SELECT, SHOW, DESCRIBE, EXPLAIN), and only if you want to buffer the complete result set by the client, so that the subsequent mysqli_stmt_fetch() call returns buffered data.

Замечание: It is unnecessary to call mysqli_stmt_store_result() for other queries, but if you do, it will not harm or cause any notable performance in all cases. You can detect whether the query produced a result set by checking if mysqli_stmt_result_metadata() returns NULL.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

mysqli_prepare(),
mysqli_stmt_result_metadata() и
mysqli_stmt_fetch().

Примеры

Пример 1. Object oriented style

<?php
/* Open a connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = $mysqli->prepare($query)) {

    /* execute query */
    $stmt->execute();

    /* store result */
    $stmt->store_result();

    printf("Number of rows: %d.\n", $stmt->num_rows);

    /* free result */
    $stmt->free_result();

    /* close statement */
    $stmt->close();
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
/* Open a connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = mysqli_prepare($link, $query)) {

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* store result */
    mysqli_stmt_store_result($stmt);

    printf("Number of rows: %d.\n", mysqli_stmt_num_rows($stmt));

    /* free result */
    mysqli_stmt_free_result($stmt);

    /* close statement */
    mysqli_stmt_close($stmt);
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Number of rows: 20.

Пред. | Начало | След.
mysqli_stmt_sqlstate | Уровень выше | mysqli_store_result


mysqli_store_result

(PHP 5)

mysqli_store_result

(no version information, might be only in CVS)

mysqli->store_result -- Transfers a result set from the last query

Description

Procedural style:

mysqli_result mysqli_store_result ( mysqli link )

Object oriented style (method):

class mysqli {

mysqli_result store_result ( void )

}

Transfers the result set from the last query on the database connection represented by the link parameter to be used with the mysqli_data_seek() function.

Замечание: Although it is always good practice to free the memory used by the result of a query using the mysqli_free_result() function, when transfering large result sets using the mysqli_store_result() this becomes particularly important.

Замечание: mysqli_store_result() returns FALSE in case the query didn't return a result set (if the query was, for example an INSERT statement). This function also returns FALSE if the reading of the result set failed. You can check if you have got an error by checking if mysqli_error() doesn't return an empty string, if mysqli_errno() returns a non zero value, or if mysqli_field_count() returns a non zero value. Also possible reason for this function returning FALSE after successfull call to mysqli_query() can be too large result set (memory for it cannot be allocated). If mysqli_field_count() returns a non-zero value, the statement should have produced a non-empty result set.

Возвращаемые значения

Returns a buffered result object or FALSE if an error occurred.

Смотрите также

mysqli_real_query() и mysqli_use_result().

Примеры

See mysqli_multi_query().

Пред. | Начало | След.
mysqli_stmt_store_result | Уровень выше | mysqli_thread_id


mysqli_thread_id

(PHP 5)

mysqli_thread_id

(no version information, might be only in CVS)

mysqli->thread_id -- Returns the thread ID for the current connection

Description

Procedural style:

int mysqli_thread_id ( mysqli link )

Object oriented style (property):

class mysqli {

int thread_id

}

The mysqli_thread_id() function returns the thread ID for the current connection which can then be killed using the mysqli_kill() function. If the connection is lost and you reconnect with mysqli_ping(), the thread ID will be other. Therefore you should get the thread ID only when you need it.

Замечание: The thread ID is assigned on a connection-by-connection basis. Hence, if the connection is broken and then re-established a new thread ID will be assigned.

To kill a running query you can use the SQL command KILL QUERY processid.

Возвращаемые значения

mysqli_thread_id() returns the Thread ID for the current connection.

Смотрите также

mysqli_kill().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* determine our thread id */
$thread_id = $mysqli->thread_id;

/* Kill connection */
$mysqli->kill($thread_id);

/* This should produce an error */
if (!$mysqli->query("CREATE TABLE myCity LIKE City")) {
    printf("Error: %s\n", $mysqli->error);
    exit;
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* determine our thread id */
$thread_id = mysqli_thread_id($link);

/* Kill connection */
mysqli_kill($link, $thread_id);

/* This should produce an error */
if (!mysqli_query($link, "CREATE TABLE myCity LIKE City")) {
    printf("Error: %s\n", mysqli_error($link));
    exit;
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Error: MySQL server has gone away

Пред. | Начало | След.
mysqli_store_result | Уровень выше | mysqli_thread_safe


mysqli_thread_safe

(PHP 5)

mysqli_thread_safe -- Returns whether thread safety is given or not

Description

Procedural style:

bool mysqli_thread_safe ( void )

mysqli_thread_safe() indicates whether the client library is compiled as thread-safe.

Возвращаемые значения

TRUE if the client library is thread-safe, otherwise FALSE.

Пред. | Начало | След.
mysqli_thread_id | Уровень выше | mysqli_use_result


mysqli_use_result

(PHP 5)

mysqli_use_result

(no version information, might be only in CVS)

mysqli->use_result -- Initiate a result set retrieval

Description

Procedural style:

mysqli_result mysqli_use_result ( mysqli link )

Object oriented style (method):

class mysqli {

mysqli_result use_result ( void )

}

mysqli_use_result() is used to initiate the retrieval of a result set from the last query executed using the mysqli_real_query() function on the database connection specified by the link parameter. Either this or the mysqli_store_result() function must be called before the results of a query can be retrieved, and one or the other must be called to prevent the next query on that database connection from failing.

Замечание: The mysqli_use_result() function does not transfer the entire result set from the database and hence cannot be used functions such as mysqli_data_seek() to move to a particular row within the set. To use this functionality, the result set must be stored using mysqli_store_result(). One should not use mysqli_use_result() if a lot of processing on the client side is performed, since this will tie up the server and prevent other threads from updating any tables from which the data is being fetched.

Возвращаемые значения

Returns an unbuffered result object or FALSE if an error occurred.

Смотрите также

mysqli_real_query() и mysqli_store_result().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if ($mysqli->multi_query($query)) {
    do {
        /* store first result set */
        if ($result = $mysqli->use_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->close();
        }
        /* print divider */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if (mysqli_multi_query($link, $query)) {
    do {
        /* store first result set */
        if ($result = mysqli_use_result($link)) {
            while ($row = mysqli_fetch_row($result)) {
                printf("%s\n", $row[0]);
            }
            mysqli_free_result($result);
        }
        /* print divider */
        if (mysqli_more_results($link)) {
            printf("-----------------\n");
        }
    } while (mysqli_next_result($link));
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

Пред. | Начало | След.
mysqli_thread_safe | Уровень выше | mysqli_warning_count


mysqli_warning_count

(PHP 5)

mysqli_warning_count

(no version information, might be only in CVS)

mysqli->warning_count -- Returns the number of warnings from the last query for the given link

Description

Procedural style:

int mysqli_warning_count ( mysqli link )

Object oriented style (property):

class mysqli {

int warning_count

}

mysqli_warning_count() returns the number of warnings from the last query in the connection represented by the link parameter.

Замечание: For retrieving warning messages you can use the SQL command SHOW WARNINGS [limit row_count].

Возвращаемые значения

Number of warnings or zero if there are no warnings.

Смотрите также

mysqli_errno(),
mysqli_error() и
mysqli_sqlstate().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

/* a remarkable city in Wales */
$query = "INSERT INTO myCity (CountryCode, Name) VALUES('GBR',
        'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

$mysqli->query($query);

if ($mysqli->warning_count) {
    if ($result = $mysqli->query("SHOW WARNINGS")) {
        $row = $result->fetch_row();
        printf("%s (%d): %s\n", $row[0], $row[1], $row[2]);
        $result->close();
    }
}

/* close connection */
$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

/* a remarkable long city name in Wales */
$query = "INSERT INTO myCity (CountryCode, Name) VALUES('GBR',
        'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

mysqli_query($link, $query);

if (mysqli_warning_count($link)) {
    if ($result = mysqli_query($link, "SHOW WARNINGS")) {
        $row = mysqli_fetch_row($result);
        printf("%s (%d): %s\n", $row[0], $row[1], $row[2]);
        mysqli_free_result($result);
    }
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данного примера:

Warning (1264): Data truncated for column 'Name' at row 1

Пред. | Начало | След.
mysqli_use_result | Уровень выше | Ncurses Terminal Screen Control Functions


Ncurses Terminal Screen Control Functions

Руководство по PHP
Пред. След.

XC. Ncurses Terminal Screen Control Functions

Введение

ncurses (new curses) is a free software emulation of curses in System V Rel 4.0 (and above). It uses terminfo format, supports pads, colors, multiple highlights, form characters and function key mapping. Because of the interactive nature of this library, it will be of little use for writing Web applications, but may be useful when writing scripts meant using PHP from the command line.

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

Ncurses is available for the following platforms:

  • AIX

  • BeOS

  • Cygwin

  • Digital Unix (aka OSF1)

  • FreeBSD

  • GNU/Linux

  • HPUX

  • IRIX

  • OS/2

  • SCO OpenServer

  • Solaris

  • SunOS

Требования

You need the ncurses libraries and headerfiles. Download the latest version from the ftp://ftp.gnu.org/pub/gnu/ncurses/ or from an other GNU-Mirror.

Установка

To get these functions to work, you have to compile the CGI or CLI version of PHP with --with-ncurses[=DIR].

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Ncurses configuration options

Name | Default | Changeable | Changelog
ncurses.value | "42" | PHP_INI_ALL |
ncurses.string | "foobar" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

Error codes

On error ncurses functions return NCURSES_ERR.

Colors

Таблица 2. ncurses color constants

constant | meaning
NCURSES_COLOR_BLACK | no color (black)
NCURSES_COLOR_WHITE | white
NCURSES_COLOR_RED | red - supported when terminal is in color mode
NCURSES_COLOR_GREEN | green - supported when terminal is in color mode
NCURSES_COLOR_YELLOW | yellow - supported when terminal is in color mode
NCURSES_COLOR_BLUE | blue - supported when terminal is in color mode
NCURSES_COLOR_CYAN | cyan - supported when terminal is in color mode
NCURSES_COLOR_MAGENTA | magenta - supported when terminal is in color mode

Keys

Таблица 3. ncurses key constants

constant | meaning
NCURSES_KEY_F0 - NCURSES_KEY_F64 | function keys F1 - F64
NCURSES_KEY_DOWN | down arrow
NCURSES_KEY_UP | up arrow
NCURSES_KEY_LEFT | left arrow
NCURSES_KEY_RIGHT | right arrow
NCURSES_KEY_HOME | home key (upward+left arrow)
NCURSES_KEY_BACKSPACE | backspace
NCURSES_KEY_DL | delete line
NCURSES_KEY_IL | insert line
NCURSES_KEY_DC | delete character
NCURSES_KEY_IC | insert char or enter insert mode
NCURSES_KEY_EIC | exit insert char mode
NCURSES_KEY_CLEAR | clear screen
NCURSES_KEY_EOS | clear to end of screen
NCURSES_KEY_EOL | clear to end of line
NCURSES_KEY_SF | scroll one line forward
NCURSES_KEY_SR | scroll one line backward
NCURSES_KEY_NPAGE | next page
NCURSES_KEY_PPAGE | previous page
NCURSES_KEY_STAB | set tab
NCURSES_KEY_CTAB | clear tab
NCURSES_KEY_CATAB | clear all tabs
NCURSES_KEY_SRESET | soft (partial) reset
NCURSES_KEY_RESET | reset or hard reset
NCURSES_KEY_PRINT | print
NCURSES_KEY_LL | lower left
NCURSES_KEY_A1 | upper left of keypad
NCURSES_KEY_A3 | upper right of keypad
NCURSES_KEY_B2 | center of keypad
NCURSES_KEY_C1 | lower left of keypad
NCURSES_KEY_C3 | lower right of keypad
NCURSES_KEY_BTAB | back tab
NCURSES_KEY_BEG | beginning
NCURSES_KEY_CANCEL | cancel
NCURSES_KEY_CLOSE | close
NCURSES_KEY_COMMAND | cmd (command)
NCURSES_KEY_COPY | copy
NCURSES_KEY_CREATE | create
NCURSES_KEY_END | end
NCURSES_KEY_EXIT | exit
NCURSES_KEY_FIND | find
NCURSES_KEY_HELP | help
NCURSES_KEY_MARK | mark
NCURSES_KEY_MESSAGE | message
NCURSES_KEY_MOVE | move
NCURSES_KEY_NEXT | next
NCURSES_KEY_OPEN | open
NCURSES_KEY_OPTIONS | options
NCURSES_KEY_PREVIOUS | previous
NCURSES_KEY_REDO | redo
NCURSES_KEY_REFERENCE | ref (reference)
NCURSES_KEY_REFRESH | refresh
NCURSES_KEY_REPLACE | replace
NCURSES_KEY_RESTART | restart
NCURSES_KEY_RESUME | resume
NCURSES_KEY_SAVE | save
NCURSES_KEY_SBEG | shiftet beg (beginning)
NCURSES_KEY_SCANCEL | shifted cancel
NCURSES_KEY_SCOMMAND | shifted command
NCURSES_KEY_SCOPY | shifted copy
NCURSES_KEY_SCREATE | shifted create
NCURSES_KEY_SDC | shifted delete char
NCURSES_KEY_SDL | shifted delete line
NCURSES_KEY_SELECT | select
NCURSES_KEY_SEND | shifted end
NCURSES_KEY_SEOL | shifted end of line
NCURSES_KEY_SEXIT | shifted exit
NCURSES_KEY_SFIND | shifted find
NCURSES_KEY_SHELP | shifted help
NCURSES_KEY_SHOME | shifted home
NCURSES_KEY_SIC | shifted input
NCURSES_KEY_SLEFT | shifted left arrow
NCURSES_KEY_SMESSAGE | shifted message
NCURSES_KEY_SMOVE | shifted move
NCURSES_KEY_SNEXT | shifted next
NCURSES_KEY_SOPTIONS | shifted options
NCURSES_KEY_SPREVIOUS | shifted previous
NCURSES_KEY_SPRINT | shifted print
NCURSES_KEY_SREDO | shifted redo
NCURSES_KEY_SREPLACE | shifted replace
NCURSES_KEY_SRIGHT | shifted right arrow
NCURSES_KEY_SRSUME | shifted resume
NCURSES_KEY_SSAVE | shifted save
NCURSES_KEY_SSUSPEND | shifted suspend
NCURSES_KEY_UNDO | undo
NCURSES_KEY_MOUSE | mouse event has occurred
NCURSES_KEY_MAX | maximum key value

Mouse

Таблица 4. mouse constants

Constant | meaning
NCURSES_BUTTON1_RELEASED - NCURSES_BUTTON4_RELEASED | button (1-4) released
NCURSES_BUTTON1_PRESSED - NCURSES_BUTTON4_PRESSED | button (1-4) pressed
NCURSES_BUTTON1_CLICKED - NCURSES_BUTTON4_CLICKED | button (1-4) clicked
NCURSES_BUTTON1_DOUBLE_CLICKED - NCURSES_BUTTON4_DOUBLE_CLICKED | button (1-4) double clicked
NCURSES_BUTTON1_TRIPLE_CLICKED - NCURSES_BUTTON4_TRIPLE_CLICKED | button (1-4) triple clicked
NCURSES_BUTTON_CTRL | ctrl pressed during click
NCURSES_BUTTON_SHIFT | shift pressed during click
NCURSES_BUTTON_ALT | alt pressed during click
NCURSES_ALL_MOUSE_EVENTS | report all mouse events
NCURSES_REPORT_MOUSE_POSITION | report mouse position
Содержание
ncurses_addch -- Add character at current position and advance cursor
ncurses_addchnstr -- Add attributed string with specified length at current position
ncurses_addchstr -- Add attributed string at current position
ncurses_addnstr -- Add string with specified length at current position
ncurses_addstr -- Output text at current position
ncurses_assume_default_colors -- Define default colors for color 0
ncurses_attroff -- Turn off the given attributes
ncurses_attron -- Turn on the given attributes
ncurses_attrset -- Set given attributes
ncurses_baudrate -- Returns baudrate of terminal
ncurses_beep -- Let the terminal beep
ncurses_bkgd -- Set background property for terminal screen
ncurses_bkgdset -- Control screen background
ncurses_border -- Draw a border around the screen using attributed characters
ncurses_bottom_panel -- Moves a visible panel to the bottom of the stack
ncurses_can_change_color -- Check if we can change terminals colors
ncurses_cbreak -- Switch of input buffering
ncurses_clear -- Clear screen
ncurses_clrtobot -- Clear screen from current position to bottom
ncurses_clrtoeol -- Clear screen from current position to end of line
ncurses_color_content -- Gets the RGB value for color
ncurses_color_set -- Set fore- and background color
ncurses_curs_set -- Set cursor state
ncurses_def_prog_mode -- Saves terminals (program) mode
ncurses_def_shell_mode -- Saves terminals (shell) mode
ncurses_define_key -- Define a keycode
ncurses_del_panel -- Remove panel from the stack and delete it (but not the associated window)
ncurses_delay_output -- Delay output on terminal using padding characters
ncurses_delch -- Delete character at current position, move rest of line left
ncurses_deleteln -- Delete line at current position, move rest of screen up
ncurses_delwin -- Delete a ncurses window
ncurses_doupdate -- Write all prepared refreshes to terminal
ncurses_echo -- Activate keyboard input echo
ncurses_echochar -- Single character output including refresh
ncurses_end -- Stop using ncurses, clean up the screen
ncurses_erase -- Erase terminal screen
ncurses_erasechar -- Returns current erase character
ncurses_filter -- Set LINES for iniscr() and newterm() to 1
ncurses_flash -- Flash terminal screen (visual bell)
ncurses_flushinp -- Flush keyboard input buffer
ncurses_getch -- Read a character from keyboard
ncurses_getmaxyx -- Returns the size of a window
ncurses_getmouse -- Reads mouse event
ncurses_getyx -- Returns the current cursor position for a window
ncurses_halfdelay -- Put terminal into halfdelay mode
ncurses_has_colors -- Check if terminal has colors
ncurses_has_ic -- Check for insert- and delete-capabilities
ncurses_has_il -- Check for line insert- and delete-capabilities
ncurses_has_key -- Check for presence of a function key on terminal keyboard
ncurses_hide_panel -- Remove panel from the stack, making it invisible
ncurses_hline -- Draw a horizontal line at current position using an attributed character and max. n characters long
ncurses_inch -- Get character and attribute at current position
ncurses_init_color -- Set new RGB value for color
ncurses_init_pair -- Allocate a color pair
ncurses_init -- Initialize ncurses
ncurses_insch -- Insert character moving rest of line including character at current position
ncurses_insdelln -- Insert lines before current line scrolling down (negative numbers delete and scroll up)
ncurses_insertln -- Insert a line, move rest of screen down
ncurses_insstr -- Insert string at current position, moving rest of line right
ncurses_instr -- Reads string from terminal screen
ncurses_isendwin -- Ncurses is in endwin mode, normal screen output may be performed
ncurses_keyok -- Enable or disable a keycode
ncurses_keypad -- Turns keypad on or off
ncurses_killchar -- Returns current line kill character
ncurses_longname -- Returns terminals description
ncurses_meta -- Enables/Disable 8-bit meta key information
ncurses_mouse_trafo -- Transforms coordinates
ncurses_mouseinterval -- Set timeout for mouse button clicks
ncurses_mousemask -- Sets mouse options
ncurses_move_panel -- Moves a panel so that its upper-left corner is at [startx, starty]
ncurses_move -- Move output position
ncurses_mvaddch -- Move current position and add character
ncurses_mvaddchnstr -- Move position and add attributed string with specified length
ncurses_mvaddchstr -- Move position and add attributed string
ncurses_mvaddnstr -- Move position and add string with specified length
ncurses_mvaddstr -- Move position and add string
ncurses_mvcur -- Move cursor immediately
ncurses_mvdelch -- Move position and delete character, shift rest of line left
ncurses_mvgetch -- Move position and get character at new position
ncurses_mvhline -- Set new position and draw a horizontal line using an attributed character and max. n characters long
ncurses_mvinch -- Move position and get attributed character at new position
ncurses_mvvline -- Set new position and draw a vertical line using an attributed character and max. n characters long
ncurses_mvwaddstr -- Add string at new position in window
ncurses_napms -- Sleep
ncurses_new_panel -- Create a new panel and associate it with window
ncurses_newpad -- Creates a new pad (window)
ncurses_newwin -- Create a new window
ncurses_nl -- Translate newline and carriage return / line feed
ncurses_nocbreak -- Switch terminal to cooked mode
ncurses_noecho -- Switch off keyboard input echo
ncurses_nonl -- Do not translate newline and carriage return / line feed
ncurses_noqiflush -- Do not flush on signal characters
ncurses_noraw -- Switch terminal out of raw mode
ncurses_pair_content -- Gets the RGB value for color
ncurses_panel_above -- Returns the panel above panel
ncurses_panel_below -- Returns the panel below panel
ncurses_panel_window -- Returns the window associated with panel
ncurses_pnoutrefresh -- Copies a region from a pad into the virtual screen
ncurses_prefresh -- Copies a region from a pad into the virtual screen
ncurses_putp -- Apply padding information to the string and output it
ncurses_qiflush -- Flush on signal characters
ncurses_raw -- Switch terminal into raw mode
ncurses_refresh -- Refresh screen
ncurses_replace_panel -- Replaces the window associated with panel
ncurses_reset_prog_mode -- Resets the prog mode saved by def_prog_mode
ncurses_reset_shell_mode -- Resets the shell mode saved by def_shell_mode
ncurses_resetty -- Restores saved terminal state
ncurses_savetty -- Saves terminal state
ncurses_scr_dump -- Dump screen content to file
ncurses_scr_init -- Initialize screen from file dump
ncurses_scr_restore -- Restore screen from file dump
ncurses_scr_set -- Inherit screen from file dump
ncurses_scrl -- Scroll window content up or down without changing current position
ncurses_show_panel -- Places an invisible panel on top of the stack, making it visible
ncurses_slk_attr -- Returns current soft label key attribute
ncurses_slk_attroff -- Turn off the given attributes for soft function-key labels
ncurses_slk_attron -- Turn on the given attributes for soft function-key labels
ncurses_slk_attrset -- Set given attributes for soft function-key labels
ncurses_slk_clear -- Clears soft labels from screen
ncurses_slk_color -- Sets color for soft label keys
ncurses_slk_init -- Initializes soft label key functions
ncurses_slk_noutrefresh -- Copies soft label keys to virtual screen
ncurses_slk_refresh -- Copies soft label keys to screen
ncurses_slk_restore -- Restores soft label keys
ncurses_slk_set -- Sets function key labels
ncurses_slk_touch -- Forces output when ncurses_slk_noutrefresh is performed
ncurses_standend -- Stop using 'standout' attribute
ncurses_standout -- Start using 'standout' attribute
ncurses_start_color -- Start using colors
ncurses_termattrs -- Returns a logical OR of all attribute flags supported by terminal
ncurses_termname -- Returns terminals (short)-name
ncurses_timeout -- Set timeout for special key sequences
ncurses_top_panel -- Moves a visible panel to the top of the stack
ncurses_typeahead -- Specify different filedescriptor for typeahead checking
ncurses_ungetch -- Put a character back into the input stream
ncurses_ungetmouse -- Pushes mouse event to queue
ncurses_update_panels -- Refreshes the virtual screen to reflect the relations between panels in the stack
ncurses_use_default_colors -- Assign terminal default colors to color id -1
ncurses_use_env -- Control use of environment information about terminal size
ncurses_use_extended_names -- Control use of extended names in terminfo descriptions
ncurses_vidattr -- Display the string on the terminal in the video attribute mode
ncurses_vline -- Draw a vertical line at current position using an attributed character and max. n characters long
ncurses_waddch -- Adds character at current position in a window and advance cursor
ncurses_waddstr -- Outputs text at current postion in window
ncurses_wattroff -- Turns off attributes for a window
ncurses_wattron -- Turns on attributes for a window
ncurses_wattrset -- Set the attributes for a window
ncurses_wborder -- Draws a border around the window using attributed characters
ncurses_wclear -- Clears window
ncurses_wcolor_set -- Sets windows color pairings
ncurses_werase -- Erase window contents
ncurses_wgetch -- Reads a character from keyboard (window)
ncurses_whline -- Draws a horizontal line in a window at current position using an attributed character and max. n characters long
ncurses_wmouse_trafo -- Transforms window/stdscr coordinates
ncurses_wmove -- Moves windows output position
ncurses_wnoutrefresh -- Copies window to virtual screen
ncurses_wrefresh -- Refresh window on terminal screen
ncurses_wstandend -- End standout mode for a window
ncurses_wstandout -- Enter standout mode for a window
ncurses_wvline -- Draws a vertical line in a window at current position using an attributed character and max. n characters long

Пред. | Начало | След.
mysqli_warning_count | Уровень выше | ncurses_addch


ncurses_addch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_addch -- Add character at current position and advance cursor

Description

int ncurses_addch ( int ch )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
Ncurses Terminal Screen Control Functions | Уровень выше | ncurses_addchnstr


ncurses_addchnstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_addchnstr -- Add attributed string with specified length at current position

Description

int ncurses_addchnstr ( string s, int n )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_addch | Уровень выше | ncurses_addchstr


ncurses_addchstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_addchstr -- Add attributed string at current position

Description

int ncurses_addchstr ( string s )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_addchnstr | Уровень выше | ncurses_addnstr


ncurses_addnstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_addnstr -- Add string with specified length at current position

Description

int ncurses_addnstr ( string s, int n )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_addchstr | Уровень выше | ncurses_addstr


ncurses_addstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_addstr -- Output text at current position

Description

int ncurses_addstr ( string text )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_addnstr | Уровень выше | ncurses_assume_default_colors


ncurses_assume_default_colors

(PHP 4 >= 4.2.0, PHP 5)

ncurses_assume_default_colors -- Define default colors for color 0

Description

int ncurses_assume_default_colors ( int fg, int bg )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_addstr | Уровень выше | ncurses_attroff


ncurses_attroff

(PHP 4 >= 4.1.0, PHP 5)

ncurses_attroff -- Turn off the given attributes

Description

int ncurses_attroff ( int attributes )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_assume_default_colors | Уровень выше | ncurses_attron


ncurses_attron

(PHP 4 >= 4.1.0, PHP 5)

ncurses_attron -- Turn on the given attributes

Description

int ncurses_attron ( int attributes )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_attroff | Уровень выше | ncurses_attrset


ncurses_attrset

(PHP 4 >= 4.1.0, PHP 5)

ncurses_attrset -- Set given attributes

Description

int ncurses_attrset ( int attributes )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_attron | Уровень выше | ncurses_baudrate


ncurses_baudrate

(PHP 4 >= 4.1.0, PHP 5)

ncurses_baudrate -- Returns baudrate of terminal

Description

int ncurses_baudrate ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_attrset | Уровень выше | ncurses_beep


ncurses_beep

(PHP 4 >= 4.1.0, PHP 5)

ncurses_beep -- Let the terminal beep

Description

int ncurses_beep ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_beep() sends an audible alert (bell) and if its not possible flashes the screen. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also ncurses_flash()

Пред. | Начало | След.
ncurses_baudrate | Уровень выше | ncurses_bkgd


ncurses_bkgd

(PHP 4 >= 4.1.0, PHP 5)

ncurses_bkgd -- Set background property for terminal screen

Description

int ncurses_bkgd ( int attrchar )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_beep | Уровень выше | ncurses_bkgdset


ncurses_bkgdset

(PHP 4 >= 4.1.0, PHP 5)

ncurses_bkgdset -- Control screen background

Description

void ncurses_bkgdset ( int attrchar )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_bkgd | Уровень выше | ncurses_border


ncurses_border

(PHP 4 >= 4.2.0, PHP 5)

ncurses_border -- Draw a border around the screen using attributed characters

Description

int ncurses_border ( int left, int right, int top, int bottom, int tl_corner, int tr_corner, int bl_corner, int br_corner )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_border() draws the specified lines and corners around the main window. Each parameter expects 0 to draw a line and 1 to skip it. The corners are top left, top right, bottom left and bottom right.

Use ncurses_wborder() for borders around subwindows!

See also ncurses_wborder().

Пред. | Начало | След.
ncurses_bkgdset | Уровень выше | ncurses_bottom_panel


ncurses_bottom_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_bottom_panel -- Moves a visible panel to the bottom of the stack

Description

int ncurses_bottom_panel ( resource panel )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_border | Уровень выше | ncurses_can_change_color


ncurses_can_change_color

(PHP 4 >= 4.1.0, PHP 5)

ncurses_can_change_color -- Check if we can change terminals colors

Description

bool ncurses_can_change_color ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

The function ncurses_can_change_color() returns TRUE or FALSE, depending on whether the terminal has color capabilities and whether the programmer can change the colors.

Пред. | Начало | След.
ncurses_bottom_panel | Уровень выше | ncurses_cbreak


ncurses_cbreak

(PHP 4 >= 4.1.0, PHP 5)

ncurses_cbreak -- Switch of input buffering

Description

bool ncurses_cbreak ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_cbreak() disables line buffering and character processing (interrupt and flow control characters are unaffected), making characters typed by the user immediately available to the program.

ncurses_cbreak() returns TRUE or NCURSES_ERR if any error occurred.

See also: ncurses_nocbreak()

Пред. | Начало | След.
ncurses_can_change_color | Уровень выше | ncurses_clear


ncurses_clear

(PHP 4 >= 4.1.0, PHP 5)

ncurses_clear -- Clear screen

Description

bool ncurses_clear ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_clear() clears the screen completely without setting blanks. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Note: ncurses_clear() clears the screen without setting blanks, which have the current background rendition. To clear screen with blanks, use ncurses_erase().

See also ncurses_erase().

Пред. | Начало | След.
ncurses_cbreak | Уровень выше | ncurses_clrtobot


ncurses_clrtobot

(PHP 4 >= 4.1.0, PHP 5)

ncurses_clrtobot -- Clear screen from current position to bottom

Description

bool ncurses_clrtobot ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_clrtobot() erases all lines from cursor to end of screen and creates blanks. Blanks created by ncurses_clrtobot() have the current background rendition. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also ncurses_clear(), and ncurses_clrtoeol()

Пред. | Начало | След.
ncurses_clear | Уровень выше | ncurses_clrtoeol


ncurses_clrtoeol

(PHP 4 >= 4.1.0, PHP 5)

ncurses_clrtoeol -- Clear screen from current position to end of line

Description

bool ncurses_clrtoeol ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_clrtoeol() erases the current line from cursor position to the end. Blanks created by ncurses_clrtoeol() have the current background rendition. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also ncurses_clear(), and ncurses_clrtobot()

Пред. | Начало | След.
ncurses_clrtobot | Уровень выше | ncurses_color_content


ncurses_color_content

(PHP 4 >= 4.3.0, PHP 5)

ncurses_color_content -- Gets the RGB value for color

Description

int ncurses_color_content ( int color, int &r, int &g, int &b )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_clrtoeol | Уровень выше | ncurses_color_set


ncurses_color_set

(PHP 4 >= 4.1.0, PHP 5)

ncurses_color_set -- Set fore- and background color

Description

int ncurses_color_set ( int pair )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_color_content | Уровень выше | ncurses_curs_set


ncurses_curs_set

(PHP 4 >= 4.1.0, PHP 5)

ncurses_curs_set -- Set cursor state

Description

int ncurses_curs_set ( int visibility )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_color_set | Уровень выше | ncurses_def_prog_mode


ncurses_def_prog_mode

(PHP 4 >= 4.1.0, PHP 5)

ncurses_def_prog_mode -- Saves terminals (program) mode

Description

bool ncurses_def_prog_mode ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_def_prog_mode() saves the current terminal modes for program (in curses) for use by ncurses_reset_prog_mode(). Returns FALSE on success, otherwise TRUE.

See also: ncurses_reset_prog_mode()

Пред. | Начало | След.
ncurses_curs_set | Уровень выше | ncurses_def_shell_mode


ncurses_def_shell_mode

(PHP 4 >= 4.1.0, PHP 5)

ncurses_def_shell_mode -- Saves terminals (shell) mode

Description

bool ncurses_def_shell_mode ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_def_shell_mode() saves the current terminal modes for shell (not in curses) for use by ncurses_reset_shell_mode(). Returns FALSE on success, otherwise TRUE.

See also: ncurses_reset_shell_mode()

Пред. | Начало | След.
ncurses_def_prog_mode | Уровень выше | ncurses_define_key


ncurses_define_key

(PHP 4 >= 4.2.0, PHP 5)

ncurses_define_key -- Define a keycode

Description

int ncurses_define_key ( string definition, int keycode )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_def_shell_mode | Уровень выше | ncurses_del_panel


ncurses_del_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_del_panel -- Remove panel from the stack and delete it (but not the associated window)

Description

bool ncurses_del_panel ( resource panel )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_define_key | Уровень выше | ncurses_delay_output


ncurses_delay_output

(PHP 4 >= 4.1.0, PHP 5)

ncurses_delay_output -- Delay output on terminal using padding characters

Description

int ncurses_delay_output ( int milliseconds )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_del_panel | Уровень выше | ncurses_delch


ncurses_delch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_delch -- Delete character at current position, move rest of line left

Description

bool ncurses_delch ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_delch() deletes the character under the cursor. All characters to the right of the cursor on the same line are moved to the left one position and the last character on the line is filled with a blank. The cursor position does not change. Returns FALSE on success, otherwise TRUE.

See also: ncurses_deleteln()

Пред. | Начало | След.
ncurses_delay_output | Уровень выше | ncurses_deleteln


ncurses_deleteln

(PHP 4 >= 4.1.0, PHP 5)

ncurses_deleteln -- Delete line at current position, move rest of screen up

Description

bool ncurses_deleteln ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_deleteln() deletes the current line under cursorposition. All lines below the current line are moved up one line. The bottom line of window is cleared. Cursor position does not change. Returns FALSE on success, otherwise TRUE.

See also: ncurses_delch()

Пред. | Начало | След.
ncurses_delch | Уровень выше | ncurses_delwin


ncurses_delwin

(PHP 4 >= 4.1.0, PHP 5)

ncurses_delwin -- Delete a ncurses window

Description

bool ncurses_delwin ( resource window )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_deleteln | Уровень выше | ncurses_doupdate


ncurses_doupdate

(PHP 4 >= 4.1.0, PHP 5)

ncurses_doupdate -- Write all prepared refreshes to terminal

Description

bool ncurses_doupdate ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_doupdate() compares the virtual screen to the physical screen and updates the physical screen. This way is more effective than using multiple refresh calls. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
ncurses_delwin | Уровень выше | ncurses_echo


ncurses_echo

(PHP 4 >= 4.1.0, PHP 5)

ncurses_echo -- Activate keyboard input echo

Description

bool ncurses_echo ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_echo() enables echo mode. All characters typed by user are echoed by ncurses_getch(). Returns FALSE on success, TRUE if any error occurred.

To disable echo mode use ncurses_noecho().

Пред. | Начало | След.
ncurses_doupdate | Уровень выше | ncurses_echochar


ncurses_echochar

(PHP 4 >= 4.1.0, PHP 5)

ncurses_echochar -- Single character output including refresh

Description

int ncurses_echochar ( int character )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_echo | Уровень выше | ncurses_end


ncurses_end

(PHP 4 >= 4.1.0, PHP 5)

ncurses_end -- Stop using ncurses, clean up the screen

Description

int ncurses_end ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_echochar | Уровень выше | ncurses_erase


ncurses_erase

(PHP 4 >= 4.1.0, PHP 5)

ncurses_erase -- Erase terminal screen

Description

bool ncurses_erase ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_erase() fills the terminal screen with blanks. Created blanks have the current background rendition, set by ncurses_bkgd(). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also ncurses_bkgd(), and ncurses_clear()

Пред. | Начало | След.
ncurses_end | Уровень выше | ncurses_erasechar


ncurses_erasechar

(PHP 4 >= 4.1.0, PHP 5)

ncurses_erasechar -- Returns current erase character

Description

string ncurses_erasechar ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_erasechar() returns the current erase char character.

See also: ncurses_killchar()

Пред. | Начало | След.
ncurses_erase | Уровень выше | ncurses_filter


ncurses_filter

(PHP 4 >= 4.1.0, PHP 5)

ncurses_filter -- Set LINES for iniscr() and newterm() to 1

Description

void ncurses_filter ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_erasechar | Уровень выше | ncurses_flash


ncurses_flash

(PHP 4 >= 4.1.0, PHP 5)

ncurses_flash -- Flash terminal screen (visual bell)

Description

bool ncurses_flash ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_flash() flashes the screen, and if its not possible, sends an audible alert (bell). Returns FALSE on success, otherwise TRUE.

See also: ncurses_beep()

Пред. | Начало | След.
ncurses_filter | Уровень выше | ncurses_flushinp


ncurses_flushinp

(PHP 4 >= 4.1.0, PHP 5)

ncurses_flushinp -- Flush keyboard input buffer

Description

bool ncurses_flushinp ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

The ncurses_flushinp() throws away any typeahead that has been typed and has not yet been read by your program. Returns FALSE on success, otherwise TRUE.

Пред. | Начало | След.
ncurses_flash | Уровень выше | ncurses_getch


ncurses_getch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_getch -- Read a character from keyboard

Description

int ncurses_getch ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_flushinp | Уровень выше | ncurses_getmaxyx


ncurses_getmaxyx

(PHP 4 >= 4.3.0, PHP 5)

ncurses_getmaxyx -- Returns the size of a window

Description

void ncurses_getmaxyx ( resource window, int &y, int &x )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_getmaxyx() puts the horizontal and vertical size of the window window into the given variables y and x. Variables must be passed as reference, so they are updated when the user changes terminal size.

Пред. | Начало | След.
ncurses_getch | Уровень выше | ncurses_getmouse


ncurses_getmouse

(PHP 4 >= 4.2.0, PHP 5)

ncurses_getmouse -- Reads mouse event

Description

bool ncurses_getmouse ( array &mevent )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_getmouse() reads mouse event out of queue. Function ncurses_getmouse() will return ;FALSE if a mouse event is actually visible in the given window, otherwise it will return TRUE. Event options will be delivered in parameter mevent, which has to be an array, passed by reference (see example below). On success an associative array with following keys will be delivered:

  • "id" : Id to distinguish multiple devices

  • "x" : screen relative x-position in character cells

  • "y" : screen relative y-position in character cells

  • "z" : currently not supported

  • "mmask" : Mouse action

Пример 1. ncurses_getmouse() example

<?php
switch (ncurses_getch()){
  case NCURSES_KEY_MOUSE:
    if (!ncurses_getmouse(&$mevent)){
      if ($mevent["mmask"] & NCURSES_MOUSE_BUTTON1_PRESSED){
        $mouse_x = $mevent["x"]; // Save mouse position
        $mouse_y = $mevent["y"];
      }
    }
  break;

  default:
    /* .... */
}
?>

See also ncurses_ungetmouse()

Пред. | Начало | След.
ncurses_getmaxyx | Уровень выше | ncurses_getyx


ncurses_getyx

(PHP 4 >= 4.3.0, PHP 5)

ncurses_getyx -- Returns the current cursor position for a window

Description

void ncurses_getyx ( resource window, int &y, int &x )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_getmouse | Уровень выше | ncurses_halfdelay


ncurses_halfdelay

(PHP 4 >= 4.1.0, PHP 5)

ncurses_halfdelay -- Put terminal into halfdelay mode

Description

int ncurses_halfdelay ( int tenth )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_getyx | Уровень выше | ncurses_has_colors


ncurses_has_colors

(PHP 4 >= 4.1.0, PHP 5)

ncurses_has_colors -- Check if terminal has colors

Description

bool ncurses_has_colors ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_has_colors() returns TRUE or FALSE depending on whether the terminal has color capacities.

See also: ncurses_can_change_color()

Пред. | Начало | След.
ncurses_halfdelay | Уровень выше | ncurses_has_ic


ncurses_has_ic

(PHP 4 >= 4.1.0, PHP 5)

ncurses_has_ic -- Check for insert- and delete-capabilities

Description

bool ncurses_has_ic ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_has_ic() checks terminals insert- and delete capabilities. It returns TRUE when terminal has insert/delete-capabilities, otherwise FALSE.

See also: ncurses_has_il()

Пред. | Начало | След.
ncurses_has_colors | Уровень выше | ncurses_has_il


ncurses_has_il

(PHP 4 >= 4.1.0, PHP 5)

ncurses_has_il -- Check for line insert- and delete-capabilities

Description

bool ncurses_has_il ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_has_il() checks terminals insert- and delete-line-capabilities. It returns TRUE when terminal has insert/delete-line capabilities, otherwise FALSE

See also: ncurses_has_ic()

Пред. | Начало | След.
ncurses_has_ic | Уровень выше | ncurses_has_key


ncurses_has_key

(PHP 4 >= 4.1.0, PHP 5)

ncurses_has_key -- Check for presence of a function key on terminal keyboard

Description

int ncurses_has_key ( int keycode )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_has_il | Уровень выше | ncurses_hide_panel


ncurses_hide_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_hide_panel -- Remove panel from the stack, making it invisible

Description

int ncurses_hide_panel ( resource panel )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_has_key | Уровень выше | ncurses_hline


ncurses_hline

(PHP 4 >= 4.2.0, PHP 5)

ncurses_hline -- Draw a horizontal line at current position using an attributed character and max. n characters long

Description

int ncurses_hline ( int charattr, int n )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_hide_panel | Уровень выше | ncurses_inch


ncurses_inch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_inch -- Get character and attribute at current position

Description

string ncurses_inch ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_inch() returns the character from the current position.

Пред. | Начало | След.
ncurses_hline | Уровень выше | ncurses_init_color


ncurses_init_color

(PHP 4 >= 4.2.0, PHP 5)

ncurses_init_color -- Set new RGB value for color

Description

int ncurses_init_color ( int color, int r, int g, int b )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_inch | Уровень выше | ncurses_init_pair


ncurses_init_pair

(PHP 4 >= 4.1.0, PHP 5)

ncurses_init_pair -- Allocate a color pair

Description

int ncurses_init_pair ( int pair, int fg, int bg )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_init_color | Уровень выше | ncurses_init


ncurses_init

(PHP 4 >= 4.1.0, PHP 5)

ncurses_init -- Initialize ncurses

Description

void ncurses_init ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_init() initializes the ncurses interface and must be used before any other ncurses function.

Пред. | Начало | След.
ncurses_init_pair | Уровень выше | ncurses_insch


ncurses_insch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_insch -- Insert character moving rest of line including character at current position

Description

int ncurses_insch ( int character )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_init | Уровень выше | ncurses_insdelln


ncurses_insdelln

(PHP 4 >= 4.1.0, PHP 5)

ncurses_insdelln -- Insert lines before current line scrolling down (negative numbers delete and scroll up)

Description

int ncurses_insdelln ( int count )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_insch | Уровень выше | ncurses_insertln


ncurses_insertln

(PHP 4 >= 4.1.0, PHP 5)

ncurses_insertln -- Insert a line, move rest of screen down

Description

bool ncurses_insertln ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_insertln() inserts a new line above the current line. The bottom line will be lost.

Пред. | Начало | След.
ncurses_insdelln | Уровень выше | ncurses_insstr


ncurses_insstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_insstr -- Insert string at current position, moving rest of line right

Description

int ncurses_insstr ( string text )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_insertln | Уровень выше | ncurses_instr


ncurses_instr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_instr -- Reads string from terminal screen

Description

int ncurses_instr ( string &buffer )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_instr() returns the number of characters read from the current character position until end of line. buffer contains the characters. Attributes are stripped from the characters.

Пред. | Начало | След.
ncurses_insstr | Уровень выше | ncurses_isendwin


ncurses_isendwin

(PHP 4 >= 4.1.0, PHP 5)

ncurses_isendwin -- Ncurses is in endwin mode, normal screen output may be performed

Description

bool ncurses_isendwin ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_isendwin() returns TRUE, if
ncurses_endwin() has been called without any
subsequent calls to ncurses_wrefresh(),
otherwise FALSE.

See also ncurses_endwin() and ncurses_wrefresh().

Пред. | Начало | След.
ncurses_instr | Уровень выше | ncurses_keyok


ncurses_keyok

(PHP 4 >= 4.2.0, PHP 5)

ncurses_keyok -- Enable or disable a keycode

Description

int ncurses_keyok ( int keycode, bool enable )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_isendwin | Уровень выше | ncurses_keypad


ncurses_keypad

(PHP 4 >= 4.2.0, PHP 5)

ncurses_keypad -- Turns keypad on or off

Description

int ncurses_keypad ( resource window, bool bf )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_keyok | Уровень выше | ncurses_killchar


ncurses_killchar

(PHP 4 >= 4.1.0, PHP 5)

ncurses_killchar -- Returns current line kill character

Description

string ncurses_killchar ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_killchar() returns the current line kill character.

See also: ncurses_erasechar()

Пред. | Начало | След.
ncurses_keypad | Уровень выше | ncurses_longname


ncurses_longname

(PHP 4 >= 4.2.0, PHP 5)

ncurses_longname -- Returns terminals description

Description

string ncurses_longname ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_longname() returns a verbose description of the terminal. The description is truncated to 128 characters. On Error ncurses_longname() returns NULL.

See also: ncurses_termname()

Пред. | Начало | След.
ncurses_killchar | Уровень выше | ncurses_meta


ncurses_meta

(PHP 4 >= 4.3.0, PHP 5)

ncurses_meta -- Enables/Disable 8-bit meta key information

Description

int ncurses_meta ( resource window, bool 8bit )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_longname | Уровень выше | ncurses_mouse_trafo


ncurses_mouse_trafo

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mouse_trafo -- Transforms coordinates

Description

bool ncurses_mouse_trafo ( int &y, int &x, bool toscreen )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_meta | Уровень выше | ncurses_mouseinterval


ncurses_mouseinterval

(PHP 4 >= 4.1.0, PHP 5)

ncurses_mouseinterval -- Set timeout for mouse button clicks

Description

int ncurses_mouseinterval ( int milliseconds )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_mouse_trafo | Уровень выше | ncurses_mousemask


ncurses_mousemask

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mousemask -- Sets mouse options

Description

int ncurses_mousemask ( int newmask, int &oldmask )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Function ncurses_mousemask() will set mouse events to be reported. By default no mouse events will be reported. The function ncurses_mousemask() will return a mask to indicated which of the in parameter newmask specified mouse events can be reported. On complete failure, it returns 0. In parameter oldmask, which is passed by reference ncurses_mousemask() returns the previous value of mouse event mask. Mouse events are represented by NCURSES_KEY_MOUSE in the ncurses_wgetch() input stream. To read the event data and pop the event of queue, call ncurses_getmouse().

As a side effect, setting a zero mousemask in newmask turns off the mouse pointer. Setting a non zero value turns mouse pointer on.

mouse mask options can be set with the following predefined constants:

  • NCURSES_BUTTON1_PRESSED

  • NCURSES_BUTTON1_RELEASED

  • NCURSES_BUTTON1_CLICKED

  • NCURSES_BUTTON1_DOUBLE_CLICKED

  • NCURSES_BUTTON1_TRIPLE_CLICKED

  • NCURSES_BUTTON2_PRESSED

  • NCURSES_BUTTON2_RELEASED

  • NCURSES_BUTTON2_CLICKED

  • NCURSES_BUTTON2_DOUBLE_CLICKED

  • NCURSES_BUTTON2_TRIPLE_CLICKED

  • NCURSES_BUTTON3_PRESSED

  • NCURSES_BUTTON3_RELEASED

  • NCURSES_BUTTON3_CLICKED

  • NCURSES_BUTTON3_DOUBLE_CLICKED

  • NCURSES_BUTTON3_TRIPLE_CLICKED

  • NCURSES_BUTTON4_PRESSED

  • NCURSES_BUTTON4_RELEASED

  • NCURSES_BUTTON4_CLICKED

  • NCURSES_BUTTON4_DOUBLE_CLICKED

  • NCURSES_BUTTON4_TRIPLE_CLICKED

  • NCURSES_BUTTON_SHIFT>

  • NCURSES_BUTTON_CTRL

  • NCURSES_BUTTON_ALT

  • NCURSES_ALL_MOUSE_EVENTS

  • NCURSES_REPORT_MOUSE_POSITION

Пример 1. ncurses_mousemask() example

<?php
$newmask = NCURSES_BUTTON1_CLICKED + NCURSES_BUTTON1_RELEASED;
$mask = ncurses_mousemask($newmask, &$oldmask);
if ($mask & $newmask){
  printf ("All specified mouse options will be supported\n");
}
?>

See also ncurses_getmouse(),
ncurses_ungetmouse() and
ncurese_getch().

Пред. | Начало | След.
ncurses_mouseinterval | Уровень выше | ncurses_move_panel


ncurses_move_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_move_panel -- Moves a panel so that its upper-left corner is at [startx, starty]

Description

int ncurses_move_panel ( resource panel, int startx, int starty )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_mousemask | Уровень выше | ncurses_move


ncurses_move

(PHP 4 >= 4.1.0, PHP 5)

ncurses_move -- Move output position

Description

int ncurses_move ( int y, int x )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_move_panel | Уровень выше | ncurses_mvaddch


ncurses_mvaddch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddch -- Move current position and add character

Description

int ncurses_mvaddch ( int y, int x, int c )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_move | Уровень выше | ncurses_mvaddchnstr


ncurses_mvaddchnstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddchnstr -- Move position and add attributed string with specified length

Description

int ncurses_mvaddchnstr ( int y, int x, string s, int n )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_mvaddch | Уровень выше | ncurses_mvaddchstr


ncurses_mvaddchstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddchstr -- Move position and add attributed string

Description

int ncurses_mvaddchstr ( int y, int x, string s )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_mvaddchnstr | Уровень выше | ncurses_mvaddnstr


ncurses_mvaddnstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddnstr -- Move position and add string with specified length

Description

int ncurses_mvaddnstr ( int y, int x, string s, int n )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_mvaddchstr | Уровень выше | ncurses_mvaddstr


ncurses_mvaddstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvaddstr -- Move position and add string

Description

int ncurses_mvaddstr ( int y, int x, string s )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_mvaddnstr | Уровень выше | ncurses_mvcur


ncurses_mvcur

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvcur -- Move cursor immediately

Description

int ncurses_mvcur ( int old_y, int old_x, int new_y, int new_x )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_mvaddstr | Уровень выше | ncurses_mvdelch


ncurses_mvdelch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvdelch -- Move position and delete character, shift rest of line left

Description

int ncurses_mvdelch ( int y, int x )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_mvcur | Уровень выше | ncurses_mvgetch


ncurses_mvgetch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvgetch -- Move position and get character at new position

Description

int ncurses_mvgetch ( int y, int x )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_mvdelch | Уровень выше | ncurses_mvhline


ncurses_mvhline

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvhline -- Set new position and draw a horizontal line using an attributed character and max. n characters long

Description

int ncurses_mvhline ( int y, int x, int attrchar, int n )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_mvgetch | Уровень выше | ncurses_mvinch


ncurses_mvinch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvinch -- Move position and get attributed character at new position

Description

int ncurses_mvinch ( int y, int x )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_mvhline | Уровень выше | ncurses_mvvline


ncurses_mvvline

(no version information, might be only in CVS)

ncurses_mvvline -- Set new position and draw a vertical line using an attributed character and max. n characters long

Description

int ncurses_mvvline ( int y, int x, int attrchar, int n )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_mvinch | Уровень выше | ncurses_mvwaddstr


ncurses_mvwaddstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_mvwaddstr -- Add string at new position in window

Description

int ncurses_mvwaddstr ( resource window, int y, int x, string text )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_mvvline | Уровень выше | ncurses_napms


ncurses_napms

(PHP 4 >= 4.1.0, PHP 5)

ncurses_napms -- Sleep

Description

int ncurses_napms ( int milliseconds )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_mvwaddstr | Уровень выше | ncurses_new_panel


ncurses_new_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_new_panel -- Create a new panel and associate it with window

Description

resource ncurses_new_panel ( resource window )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_napms | Уровень выше | ncurses_newpad


ncurses_newpad

(PHP 4 >= 4.3.0, PHP 5)

ncurses_newpad -- Creates a new pad (window)

Description

resource ncurses_newpad ( int rows, int cols )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_new_panel | Уровень выше | ncurses_newwin


ncurses_newwin

(PHP 4 >= 4.1.0, PHP 5)

ncurses_newwin -- Create a new window

Description

resource ncurses_newwin ( int rows, int cols, int y, int x )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_newwin() creates a new window to draw elements in. Windows can be positioned using x, y, rows and cols. When creating additional windows, remember to use ncurses_getmaxyx() to check for available space, as terminal size is individual and may vary. The return value is a resource ID used to differ between multiple windows.

Пред. | Начало | След.
ncurses_newpad | Уровень выше | ncurses_nl


ncurses_nl

(PHP 4 >= 4.1.0, PHP 5)

ncurses_nl -- Translate newline and carriage return / line feed

Description

bool ncurses_nl ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_newwin | Уровень выше | ncurses_nocbreak


ncurses_nocbreak

(PHP 4 >= 4.1.0, PHP 5)

ncurses_nocbreak -- Switch terminal to cooked mode

Description

bool ncurses_nocbreak ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_nocbreak() routine returns terminal to normal (cooked) mode. Initially the terminal may or may not in cbreak mode as the mode is inherited. Therefore a program should call ncurses_cbreak() and ncurses_nocbreak() explicitly. Returns TRUE if any error occurred, otherwise FALSE.

See also: ncurses_cbreak()

Пред. | Начало | След.
ncurses_nl | Уровень выше | ncurses_noecho


ncurses_noecho

(PHP 4 >= 4.1.0, PHP 5)

ncurses_noecho -- Switch off keyboard input echo

Description

bool ncurses_noecho ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_noecho() prevents echoing of user typed characters. Returns TRUE if any error occurred, otherwise FALSE.

See also: ncurses_echo(), ncurses_getch()

Пред. | Начало | След.
ncurses_nocbreak | Уровень выше | ncurses_nonl


ncurses_nonl

(PHP 4 >= 4.1.0, PHP 5)

ncurses_nonl -- Do not translate newline and carriage return / line feed

Description

bool ncurses_nonl ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_noecho | Уровень выше | ncurses_noqiflush


ncurses_noqiflush

(PHP 4 >= 4.1.0, PHP 5)

ncurses_noqiflush -- Do not flush on signal characters

Description

void ncurses_noqiflush ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_nonl | Уровень выше | ncurses_noraw


ncurses_noraw

(PHP 4 >= 4.1.0, PHP 5)

ncurses_noraw -- Switch terminal out of raw mode

Description

bool ncurses_noraw ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_noraw() switches the terminal out of raw mode. Raw mode is similar to cbreak mode, in that characters typed are immediately passed through to the user program. The differences that are that in raw mode, the interrupt, quit, suspend and flow control characters are all passed through uninterpreted, instead of generating a signal. Returns TRUE if any error occurred, otherwise FALSE.

See also: ncurses_raw(),
ncurses_cbreak(),
ncurses_nocbreak()

Пред. | Начало | След.
ncurses_noqiflush | Уровень выше | ncurses_pair_content


ncurses_pair_content

(PHP 4 >= 4.3.0, PHP 5)

ncurses_pair_content -- Gets the RGB value for color

Description

int ncurses_pair_content ( int pair, int &f, int &b )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_noraw | Уровень выше | ncurses_panel_above


ncurses_panel_above

(PHP 4 >= 4.3.0, PHP 5)

ncurses_panel_above -- Returns the panel above panel

Description

resource ncurses_panel_above ( resource panel )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

If panel is null, returns the bottom panel in the stack.

Пред. | Начало | След.
ncurses_pair_content | Уровень выше | ncurses_panel_below


ncurses_panel_below

(PHP 4 >= 4.3.0, PHP 5)

ncurses_panel_below -- Returns the panel below panel

Description

resource ncurses_panel_below ( resource panel )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

If panel is null, returns the top panel in the stack.

Пред. | Начало | След.
ncurses_panel_above | Уровень выше | ncurses_panel_window


ncurses_panel_window

(PHP 4 >= 4.3.0, PHP 5)

ncurses_panel_window -- Returns the window associated with panel

Description

resource ncurses_panel_window ( resource panel )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_panel_below | Уровень выше | ncurses_pnoutrefresh


ncurses_pnoutrefresh

(PHP 4 >= 4.3.0, PHP 5)

ncurses_pnoutrefresh -- Copies a region from a pad into the virtual screen

Description

int ncurses_pnoutrefresh ( resource pad, int pminrow, int pmincol, int sminrow, int smincol, int smaxrow, int smaxcol )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_panel_window | Уровень выше | ncurses_prefresh


ncurses_prefresh

(PHP 4 >= 4.3.0, PHP 5)

ncurses_prefresh -- Copies a region from a pad into the virtual screen

Description

int ncurses_prefresh ( resource pad, int pminrow, int pmincol, int sminrow, int smincol, int smaxrow, int smaxcol )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_pnoutrefresh | Уровень выше | ncurses_putp


ncurses_putp

(PHP 4 >= 4.2.0, PHP 5)

ncurses_putp -- Apply padding information to the string and output it

Description

int ncurses_putp ( string text )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_prefresh | Уровень выше | ncurses_qiflush


ncurses_qiflush

(PHP 4 >= 4.1.0, PHP 5)

ncurses_qiflush -- Flush on signal characters

Description

void ncurses_qiflush ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_putp | Уровень выше | ncurses_raw


ncurses_raw

(PHP 4 >= 4.1.0, PHP 5)

ncurses_raw -- Switch terminal into raw mode

Description

bool ncurses_raw ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_raw() places the terminal in raw mode. Raw mode is similar to cbreak mode, in that characters typed are immediately passed through to the user program. The differences that are that in raw mode, the interrupt, quit, suspend and flow control characters are all passed through uninterpreted, instead of generating a signal. Returns TRUE if any error occurred, otherwise FALSE.

See also: ncurses_noraw(),
ncurses_cbreak(),
ncurses_nocbreak()

Пред. | Начало | След.
ncurses_qiflush | Уровень выше | ncurses_refresh


ncurses_refresh

(PHP 4 >= 4.1.0, PHP 5)

ncurses_refresh -- Refresh screen

Description

int ncurses_refresh ( int ch )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_raw | Уровень выше | ncurses_replace_panel


ncurses_replace_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_replace_panel -- Replaces the window associated with panel

Description

int ncurses_replace_panel ( resource panel, resource window )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_refresh | Уровень выше | ncurses_reset_prog_mode


ncurses_reset_prog_mode

(PHP 4 >= 4.3.0, PHP 5)

ncurses_reset_prog_mode -- Resets the prog mode saved by def_prog_mode

Description

int ncurses_reset_prog_mode ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_replace_panel | Уровень выше | ncurses_reset_shell_mode


ncurses_reset_shell_mode

(PHP 4 >= 4.3.0, PHP 5)

ncurses_reset_shell_mode -- Resets the shell mode saved by def_shell_mode

Description

int ncurses_reset_shell_mode ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_reset_prog_mode | Уровень выше | ncurses_resetty


ncurses_resetty

(PHP 4 >= 4.1.0, PHP 5)

ncurses_resetty -- Restores saved terminal state

Description

bool ncurses_resetty ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Function ncurses_resetty() restores the terminal state, which was previously saved by calling ncurses_savetty(). This function always returns FALSE.

See also: ncurses_savetty()

Пред. | Начало | След.
ncurses_reset_shell_mode | Уровень выше | ncurses_savetty


ncurses_savetty

(PHP 4 >= 4.1.0, PHP 5)

ncurses_savetty -- Saves terminal state

Description

bool ncurses_savetty ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Function ncurses_savetty() saves the current terminal state. The saved terminal state can be restored with function ncurses_resetty(). ncurses_savetty() always returns FALSE.

See also: ncurses_resetty()

Пред. | Начало | След.
ncurses_resetty | Уровень выше | ncurses_scr_dump


ncurses_scr_dump

(PHP 4 >= 4.2.0, PHP 5)

ncurses_scr_dump -- Dump screen content to file

Description

int ncurses_scr_dump ( string filename )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_savetty | Уровень выше | ncurses_scr_init


ncurses_scr_init

(PHP 4 >= 4.2.0, PHP 5)

ncurses_scr_init -- Initialize screen from file dump

Description

int ncurses_scr_init ( string filename )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_scr_dump | Уровень выше | ncurses_scr_restore


ncurses_scr_restore

(PHP 4 >= 4.2.0, PHP 5)

ncurses_scr_restore -- Restore screen from file dump

Description

int ncurses_scr_restore ( string filename )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_scr_init | Уровень выше | ncurses_scr_set


ncurses_scr_set

(PHP 4 >= 4.2.0, PHP 5)

ncurses_scr_set -- Inherit screen from file dump

Description

int ncurses_scr_set ( string filename )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_scr_restore | Уровень выше | ncurses_scrl


ncurses_scrl

(PHP 4 >= 4.1.0, PHP 5)

ncurses_scrl -- Scroll window content up or down without changing current position

Description

int ncurses_scrl ( int count )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_scr_set | Уровень выше | ncurses_show_panel


ncurses_show_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_show_panel -- Places an invisible panel on top of the stack, making it visible

Description

int ncurses_show_panel ( resource panel )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_scrl | Уровень выше | ncurses_slk_attr


ncurses_slk_attr

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_attr -- Returns current soft label key attribute

Description

bool ncurses_slk_attr ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_slk_attr() returns the current soft label key attribute. On error returns TRUE, otherwise FALSE.

Пред. | Начало | След.
ncurses_show_panel | Уровень выше | ncurses_slk_attroff


ncurses_slk_attroff

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_attroff -- Turn off the given attributes for soft function-key labels

Description

int ncurses_slk_attroff ( int intarg )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_slk_attr | Уровень выше | ncurses_slk_attron


ncurses_slk_attron

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_attron -- Turn on the given attributes for soft function-key labels

Description

int ncurses_slk_attron ( int intarg )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_slk_attroff | Уровень выше | ncurses_slk_attrset


ncurses_slk_attrset

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_attrset -- Set given attributes for soft function-key labels

Description

int ncurses_slk_attrset ( int intarg )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_slk_attron | Уровень выше | ncurses_slk_clear


ncurses_slk_clear

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_clear -- Clears soft labels from screen

Description

bool ncurses_slk_clear ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

The function ncurses_slk_clear() clears soft label keys from screen. Returns TRUE on error, otherwise FALSE.

Пред. | Начало | След.
ncurses_slk_attrset | Уровень выше | ncurses_slk_color


ncurses_slk_color

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_color -- Sets color for soft label keys

Description

int ncurses_slk_color ( int intarg )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_slk_clear | Уровень выше | ncurses_slk_init


ncurses_slk_init

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_init -- Initializes soft label key functions

Description

bool ncurses_slk_init ( int format )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Function ncurses_slk_init() must be called before ncurses_initscr() or ncurses_newterm() is called. If ncurses_initscr() eventually uses a line from stdscr to emulate the soft labels, then format determines how the labels are arranged of the screen. Setting format to 0 indicates a 3-2-3 arrangement of the labels, 1 indicates a 4-4 arrangement and 2 indicates the PC like 4-4-4 mode, but in addition an index line will be created.

Пред. | Начало | След.
ncurses_slk_color | Уровень выше | ncurses_slk_noutrefresh


ncurses_slk_noutrefresh

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_noutrefresh -- Copies soft label keys to virtual screen

Description

bool ncurses_slk_noutrefresh ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_slk_init | Уровень выше | ncurses_slk_refresh


ncurses_slk_refresh

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_refresh -- Copies soft label keys to screen

Description

bool ncurses_slk_refresh ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_slk_refresh() copies soft label keys from virtual screen to physical screen. Returns TRUE on error, otherwise FALSE.

Пред. | Начало | След.
ncurses_slk_noutrefresh | Уровень выше | ncurses_slk_restore


ncurses_slk_restore

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_restore -- Restores soft label keys

Description

bool ncurses_slk_restore ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

The function ncurses_slk_restore() restores the soft label keys after ncurses_slk_clear() has been performed.

Пред. | Начало | След.
ncurses_slk_refresh | Уровень выше | ncurses_slk_set


ncurses_slk_set

(PHP 4 >= 4.2.0, PHP 5)

ncurses_slk_set -- Sets function key labels

Description

bool ncurses_slk_set ( int labelnr, string label, int format )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_slk_restore | Уровень выше | ncurses_slk_touch


ncurses_slk_touch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_slk_touch -- Forces output when ncurses_slk_noutrefresh is performed

Description

bool ncurses_slk_touch ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

The ncurses_slk_touch() function forces all the soft labels to be output the next time a ncurses_slk_noutrefresh() is performed.

Пред. | Начало | След.
ncurses_slk_set | Уровень выше | ncurses_standend


ncurses_standend

(PHP 4 >= 4.1.0, PHP 5)

ncurses_standend -- Stop using 'standout' attribute

Description

int ncurses_standend ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_slk_touch | Уровень выше | ncurses_standout


ncurses_standout

(PHP 4 >= 4.1.0, PHP 5)

ncurses_standout -- Start using 'standout' attribute

Description

int ncurses_standout ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_standend | Уровень выше | ncurses_start_color


ncurses_start_color

(PHP 4 >= 4.1.0, PHP 5)

ncurses_start_color -- Start using colors

Description

int ncurses_start_color ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_standout | Уровень выше | ncurses_termattrs


ncurses_termattrs

(PHP 4 >= 4.1.0, PHP 5)

ncurses_termattrs -- Returns a logical OR of all attribute flags supported by terminal

Description

bool ncurses_termattrs ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_start_color | Уровень выше | ncurses_termname


ncurses_termname

(PHP 4 >= 4.2.0, PHP 5)

ncurses_termname -- Returns terminals (short)-name

Description

string ncurses_termname ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_termname() returns terminals shortname. The shortname is truncated to 14 characters. On error ncurses_termname() returns NULL.

See also: ncurses_longname()

Пред. | Начало | След.
ncurses_termattrs | Уровень выше | ncurses_timeout


ncurses_timeout

(PHP 4 >= 4.1.0, PHP 5)

ncurses_timeout -- Set timeout for special key sequences

Description

void ncurses_timeout ( int millisec )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_termname | Уровень выше | ncurses_top_panel


ncurses_top_panel

(PHP 4 >= 4.3.0, PHP 5)

ncurses_top_panel -- Moves a visible panel to the top of the stack

Description

int ncurses_top_panel ( resource panel )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_timeout | Уровень выше | ncurses_typeahead


ncurses_typeahead

(PHP 4 >= 4.1.0, PHP 5)

ncurses_typeahead -- Specify different filedescriptor for typeahead checking

Description

int ncurses_typeahead ( int fd )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_top_panel | Уровень выше | ncurses_ungetch


ncurses_ungetch

(PHP 4 >= 4.1.0, PHP 5)

ncurses_ungetch -- Put a character back into the input stream

Description

int ncurses_ungetch ( int keycode )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_typeahead | Уровень выше | ncurses_ungetmouse


ncurses_ungetmouse

(PHP 4 >= 4.2.0, PHP 5)

ncurses_ungetmouse -- Pushes mouse event to queue

Description

bool ncurses_ungetmouse ( array mevent )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_getmouse() pushes a KEY_MOUSE event onto the unput queue and associates with this event the given state sata and screen-relative character cell coordinates, specified in mevent. Event options will be specified in associative array mevent:

  • "id" : Id to distinguish multiple devices

  • "x" : screen relative x-position in character cells

  • "y" : screen relative y-position in character cells

  • "z" : currently not supported

  • "mmask" : Mouse action

ncurses_ungetmouse() returns FALSE on success, otherwise TRUE.

See also: ncurses_getmouse()

Пред. | Начало | След.
ncurses_ungetch | Уровень выше | ncurses_update_panels


ncurses_update_panels

(PHP 4 >= 4.3.0, PHP 5)

ncurses_update_panels -- Refreshes the virtual screen to reflect the relations between panels in the stack

Description

void ncurses_update_panels ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_ungetmouse | Уровень выше | ncurses_use_default_colors


ncurses_use_default_colors

(PHP 4 >= 4.1.0, PHP 5)

ncurses_use_default_colors -- Assign terminal default colors to color id -1

Description

bool ncurses_use_default_colors ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_update_panels | Уровень выше | ncurses_use_env


ncurses_use_env

(PHP 4 >= 4.1.0, PHP 5)

ncurses_use_env -- Control use of environment information about terminal size

Description

void ncurses_use_env ( bool flag )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_use_default_colors | Уровень выше | ncurses_use_extended_names


ncurses_use_extended_names

(PHP 4 >= 4.1.0, PHP 5)

ncurses_use_extended_names -- Control use of extended names in terminfo descriptions

Description

int ncurses_use_extended_names ( bool flag )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_use_env | Уровень выше | ncurses_vidattr


ncurses_vidattr

(PHP 4 >= 4.1.0, PHP 5)

ncurses_vidattr -- Display the string on the terminal in the video attribute mode

Description

int ncurses_vidattr ( int intarg )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_use_extended_names | Уровень выше | ncurses_vline


ncurses_vline

(PHP 4 >= 4.2.0, PHP 5)

ncurses_vline -- Draw a vertical line at current position using an attributed character and max. n characters long

Description

int ncurses_vline ( int charattr, int n )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_vidattr | Уровень выше | ncurses_waddch


ncurses_waddch

(PHP 4 >= 4.3.0, PHP 5)

ncurses_waddch -- Adds character at current position in a window and advance cursor

Description

int ncurses_waddch ( resource window, int ch )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_vline | Уровень выше | ncurses_waddstr


ncurses_waddstr

(PHP 4 >= 4.2.0, PHP 5)

ncurses_waddstr -- Outputs text at current postion in window

Description

int ncurses_waddstr ( resource window, string str [, int n] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_waddch | Уровень выше | ncurses_wattroff


ncurses_wattroff

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wattroff -- Turns off attributes for a window

Description

int ncurses_wattroff ( resource window, int attrs )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_waddstr | Уровень выше | ncurses_wattron


ncurses_wattron

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wattron -- Turns on attributes for a window

Description

int ncurses_wattron ( resource window, int attrs )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_wattroff | Уровень выше | ncurses_wattrset


ncurses_wattrset

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wattrset -- Set the attributes for a window

Description

int ncurses_wattrset ( resource window, int attrs )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_wattron | Уровень выше | ncurses_wborder


ncurses_wborder

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wborder -- Draws a border around the window using attributed characters

Description

int ncurses_wborder ( resource window, int left, int right, int top, int bottom, int tl_corner, int tr_corner, int bl_corner, int br_corner )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_wborder() draws the specified lines and corners around the passed window window. Each parameter expects 0 to draw a line and 1 to skip it. The corners are top left, top right, bottom left and bottom right.

Use ncurses_border() for borders around the main window.

See also ncurses_border().

Пред. | Начало | След.
ncurses_wattrset | Уровень выше | ncurses_wclear


ncurses_wclear

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wclear -- Clears window

Description

int ncurses_wclear ( resource window )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_wborder | Уровень выше | ncurses_wcolor_set


ncurses_wcolor_set

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wcolor_set -- Sets windows color pairings

Description

int ncurses_wcolor_set ( resource window, int color_pair )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_wclear | Уровень выше | ncurses_werase


ncurses_werase

(PHP 4 >= 4.3.0, PHP 5)

ncurses_werase -- Erase window contents

Description

int ncurses_werase ( resource window )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_wcolor_set | Уровень выше | ncurses_wgetch


ncurses_wgetch

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wgetch -- Reads a character from keyboard (window)

Description

int ncurses_wgetch ( resource window )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_werase | Уровень выше | ncurses_whline


ncurses_whline

(PHP 4 >= 4.3.0, PHP 5)

ncurses_whline -- Draws a horizontal line in a window at current position using an attributed character and max. n characters long

Description

int ncurses_whline ( resource window, int charattr, int n )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_wgetch | Уровень выше | ncurses_wmouse_trafo


ncurses_wmouse_trafo

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wmouse_trafo -- Transforms window/stdscr coordinates

Description

bool ncurses_wmouse_trafo ( resource window, int &y, int &x, bool toscreen )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_whline | Уровень выше | ncurses_wmove


ncurses_wmove

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wmove -- Moves windows output position

Description

int ncurses_wmove ( resource window, int y, int x )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_wmouse_trafo | Уровень выше | ncurses_wnoutrefresh


ncurses_wnoutrefresh

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wnoutrefresh -- Copies window to virtual screen

Description

int ncurses_wnoutrefresh ( resource window )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_wmove | Уровень выше | ncurses_wrefresh


ncurses_wrefresh

(PHP 4 >= 4.2.0, PHP 5)

ncurses_wrefresh -- Refresh window on terminal screen

Description

int ncurses_wrefresh ( resource window )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_wnoutrefresh | Уровень выше | ncurses_wstandend


ncurses_wstandend

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wstandend -- End standout mode for a window

Description

int ncurses_wstandend ( resource window )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_wrefresh | Уровень выше | ncurses_wstandout


ncurses_wstandout

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wstandout -- Enter standout mode for a window

Description

int ncurses_wstandout ( resource window )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_wstandend | Уровень выше | ncurses_wvline


ncurses_wvline

(PHP 4 >= 4.3.0, PHP 5)

ncurses_wvline -- Draws a vertical line in a window at current position using an attributed character and max. n characters long

Description

int ncurses_wvline ( resource window, int charattr, int n )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ncurses_wstandout | Уровень выше | Network Functions


Network Functions

Руководство по PHP
Пред. След.

XCI. Network Functions

Введение

Требования

Эти функции всегда доступны.

Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Network Configuration Options

Name | Default | Changeable | Changelog
define_syslog_variables | "0" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

define_syslog_variables boolean

Whether or not to define the various syslog variables (e.g. $LOG_PID, $LOG_CRON, etc.). Turning it off is a good idea performance-wise. At runtime, you can define these variables by calling define_syslog_variables().

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы всегда доступны как часть ядра PHP.

Таблица 2. openlog() Options

Constant | Description
LOG_CONS | if there is an error while sending data to the system logger, write directly to the system console
LOG_NDELAY | open the connection to the logger immediately
LOG_ODELAY | (default) delay opening the connection until the first message is logged
LOG_NOWAIT |
LOG_PERROR | print log message also to standard error
LOG_PID | include PID with each message

Таблица 3. openlog() Facilities

Constant | Description
LOG_AUTH | security/authorization messages (use LOG_AUTHPRIV instead in systems where that constant is defined)
LOG_AUTHPRIV | security/authorization messages (private)
LOG_CRON | clock daemon (cron and at)
LOG_DAEMON | other system daemons
LOG_KERN | kernel messages
LOG_LOCAL0 ... LOG_LOCAL7 | reserved for local use, these are not available in Windows
LOG_LPR | line printer subsystem
LOG_MAIL | mail subsystem
LOG_NEWS | USENET news subsystem
LOG_SYSLOG | messages generated internally by syslogd
LOG_USER | generic user-level messages
LOG_UUCP | UUCP subsystem

Таблица 4. syslog() Priorities (in descending order)

Constant | Description
LOG_EMERG | system is unusable
LOG_ALERT | action must be taken immediately
LOG_CRIT | critical conditions
LOG_ERR | error conditions
LOG_WARNING | warning conditions
LOG_NOTICE | normal, but significant, condition
LOG_INFO | informational message
LOG_DEBUG | debug-level message

Таблица 5. dns_get_record() Options

Constant | Description
DNS_A | IPv4 Address Resource
DNS_MX | Mail Exchanger Resource
DNS_CNAME | Alias (Canonical Name) Resource
DNS_NS | Authoritative Name Server Resource
DNS_PTR | Pointer Resource
DNS_HINFO | Host Info Resource (See IANA's Operating System Names for the meaning of these values)
DNS_SOA | Start of Authority Resource
DNS_TXT | Text Resource
DNS_ANY | Any Resource Record. On most systems this returns all resource records, however it should not be counted upon for critical uses. Try DNS_ALL instead.
DNS_AAAA | IPv6 Address Resource
DNS_ALL | Iteratively query the name server for each available record type.
Содержание
checkdnsrr -- Check DNS records corresponding to a given Internet host name or IP address
closelog -- Close connection to system logger
debugger_off -- Disable internal PHP debugger (PHP 3)
debugger_on -- Enable internal PHP debugger (PHP 3)
define_syslog_variables -- Initializes all syslog related constants
dns_check_record -- Synonym for checkdnsrr()
dns_get_mx -- Synonym for getmxrr()
dns_get_record -- Fetch DNS Resource Records associated with a hostname
fsockopen -- Open Internet or Unix domain socket connection
gethostbyaddr -- Get the Internet host name corresponding to a given IP address
gethostbyname -- Get the IP address corresponding to a given Internet host name
gethostbynamel -- Get a list of IP addresses corresponding to a given Internet host name
getmxrr -- Get MX records corresponding to a given Internet host name
getprotobyname -- Get protocol number associated with protocol name
getprotobynumber -- Get protocol name associated with protocol number
getservbyname -- Get port number associated with an Internet service and protocol
getservbyport -- Get Internet service which corresponds to port and protocol
inet_ntop -- Converts a packed internet address to a human readable representation
inet_pton -- Converts a human readable IP address to its packed in_addr representation
ip2long -- Converts a string containing an (IPv4) Internet Protocol dotted address into a proper address
long2ip -- Converts an (IPv4) Internet network address into a string in Internet standard dotted format
openlog -- Open connection to system logger
pfsockopen -- Open persistent Internet or Unix domain socket connection
socket_get_status -- Alias of stream_get_meta_data()
socket_set_blocking -- Alias of stream_set_blocking()
socket_set_timeout -- Alias of stream_set_timeout()
syslog -- Generate a system log message

Пред. | Начало | След.
ncurses_wvline | Уровень выше | checkdnsrr


checkdnsrr

(PHP 3, PHP 4, PHP 5)

checkdnsrr -- Check DNS records corresponding to a given Internet host name or IP address

Description

int checkdnsrr ( string host [, string type] )

Searches DNS for records of type type corresponding to host. Returns TRUE if any records are found; returns FALSE if no records were found or if an error occurred.

type may be any one of: A, MX, NS, SOA, PTR, CNAME, AAAA, A6, SRV, NAPTR or ANY. The default is MX.

host may either be the IP address in dotted-quad notation or the host name.

Замечание: AAAA type added with PHP 5.0.0

Замечание: This function is not implemented on Windows platforms. Try the PEAR class Net_DNS.

See also dns_get_record(),
getmxrr(),
gethostbyaddr(),
gethostbyname(),
gethostbynamel(), and the named(8) manual
page.

Пред. | Начало | След.
Network Functions | Уровень выше | closelog


closelog

(PHP 3, PHP 4, PHP 5)

closelog -- Close connection to system logger

Description

bool closelog ( void )

closelog() closes the descriptor being used to write to the system logger. The use of closelog() is optional.

See also define_syslog_variables(),
syslog() and
openlog().

Пред. | Начало | След.
checkdnsrr | Уровень выше | debugger_off


debugger_off

(PHP 3)

debugger_off -- Disable internal PHP debugger (PHP 3)

Description

int debugger_off ( void )

Disables the internal PHP debugger. This function is only available in PHP 3.

For more information see the appendix on Debugging PHP.

Пред. | Начало | След.
closelog | Уровень выше | debugger_on


debugger_on

(PHP 3)

debugger_on -- Enable internal PHP debugger (PHP 3)

Description

int debugger_on ( string address )

Enables the internal PHP debugger, connecting it to address. This function is only available in PHP 3.

For more information see the appendix on Debugging PHP.

Пред. | Начало | След.
debugger_off | Уровень выше | define_syslog_variables


define_syslog_variables

(PHP 3, PHP 4, PHP 5)

define_syslog_variables -- Initializes all syslog related constants

Description

void define_syslog_variables ( void )

Initializes all constants used in the syslog functions.

See also openlog(),
syslog() and
closelog().

Пред. | Начало | След.
debugger_on | Уровень выше | dns_check_record


dns_check_record

(PHP 5)

dns_check_record -- Synonym for checkdnsrr()

Description

bool dns_check_record ( string host [, string type] )

Check DNS records corresponding to a given Internet host name or IP address

Пред. | Начало | След.
define_syslog_variables | Уровень выше | dns_get_mx


dns_get_mx

(PHP 5)

dns_get_mx -- Synonym for getmxrr()

Description

bool dns_get_mx ( string hostname, array &mxhosts [, array &weight] )

Get MX records corresponding to a given Internet host name.

Пред. | Начало | След.
dns_check_record | Уровень выше | dns_get_record


dns_get_record

(PHP 5)

dns_get_record -- Fetch DNS Resource Records associated with a hostname

Description

array dns_get_record ( string hostname [, int type [, array &authns, array &addtl]] )

Замечание: This function is not implemented on Windows platforms, nor does it (currently) work on *BSD systems. Try the PEAR class Net_DNS.

This function returns an array of associative arrays. Each associative array contains at minimum the following keys:

Таблица 1. Basic DNS attributes

Attribute | Meaning
host | The record in the DNS namespace to which the rest of the associated data refers.
class | dns_get_record() only returns Internet class records and as such this parameter will always return IN.
type | String containing the record type. Additional attributes will also be contained in the resulting array dependant on the value of type. See table below.
ttl | Time To Live remaining for this record. This will not equal the record's original ttl, but will rather equal the original ttl minus whatever length of time has passed since the authoritative name server was queried.

hostname should be a valid DNS hostname such as "www.example.com". Reverse lookups can be generated using in-addr.arpa notation, but gethostbyaddr() is more suitable for the majority of reverse lookups.

By default, dns_get_record() will search for any resource records associated with hostname. To limit the query, specify the optional type parameter. type may be any one of the following: DNS_A, DNS_CNAME, DNS_HINFO, DNS_MX, DNS_NS, DNS_PTR, DNS_SOA, DNS_TXT, DNS_AAAA, DNS_SRV, DNS_NAPTR, DNS_A6, DNS_ALL or DNS_ANY. The default is DNS_ANY.

Замечание: Because of eccentricities in the performance of libresolv between platforms, DNS_ANY will not always return every record, the slower DNS_ALL will collect all records more reliably.

The optional third and fourth arguments to this function, authns and addtl are passed by reference and, if given, will be populated with Resource Records for the Authoritative Name Servers, and any Additional Records respectively. See the example below.

Таблица 2. Other keys in associative arrays dependant on 'type'

Type | Extra Columns
A | ip: An IPv4 addresses in dotted decimal notation.
MX | pri: Priority of mail exchanger. Lower numbers indicate greater priority. target: FQDN of the mail exchanger. See also dns_get_mx().
CNAME | target: FQDN of location in DNS namespace to which the record is aliased.
NS | target: FQDN of the name server which is authoritative for this hostname.
PTR | target: Location within the DNS namespace to which this record points.
TXT | txt: Arbitrary string data associated with this record.
HINFO | cpu: IANA number designating the CPU of the machine referenced by this record. os: IANA number designating the Operating System on the machine referenced by this record. See IANA's Operating System Names for the meaning of these values.
SOA | mname: FQDN of the machine from which the resource records originated. rname: Email address of the administrative contain for this domain. serial: Serial # of this revision of the requested domain. refresh: Refresh interval (seconds) secondary name servers should use when updating remote copies of this domain. retry: Length of time (seconds) to wait after a failed refresh before making a second attempt. expire: Maximum length of time (seconds) a secondary DNS server should retain remote copies of the zone data without a successful refresh before discarding. minimum-ttl: Minimum length of time (seconds) a client can continue to use a DNS resolution before it should request a new resolution from the server. Can be overridden by individual resource records.
AAAA | ipv6: IPv6 address
A6(PHP >= 5.1.0) | masklen: Length (in bits) to inherit from the target specified by chain. ipv6: Address for this specific record to merge with chain. chain: Parent record to merge with ipv6 data.
SRV | pri: (Priority) lowest priorities should be used first. weight: Ranking to weight which of commonly prioritized targets should be chosen at random. target and port: hostname and port where the requested service can be found. For additional information see: RFC 2782
NAPTR | order and pref: Equivalent to pri and weight above. flags, services, regex, and replacement: Parameters as defined by RFC 2915.

Замечание: Per DNS standards, email addresses are given in user.host format (for example: hostmaster.example.com as opposed to hostmaster@example.com), be sure to check this value and modify if necessary before using it with a functions such as mail().

Пример 1. Using dns_get_record()

<?php
$result = dns_get_record("php.net");
print_r($result);
?>

Produces output similar to the following:

Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => MX
            [pri] => 5
            [target] => pair2.php.net
            [class] => IN
            [ttl] => 6765
        )

    [1] => Array
        (
            [host] => php.net
            [type] => A
            [ip] => 64.246.30.37
            [class] => IN
            [ttl] => 8125
        )

)

Since it's very common to want the IP address of a mail server once the MX record has been resolved, dns_get_record() also returns an array in addtl which contains associate records. authns is returned as well containing a list of authoritative name servers.

Пример 2. Using dns_get_record() and DNS_ANY

<?php
/* Request "ANY" record for php.net,
   and create $authns and $addtl arrays
   containing list of name servers and
   any additional records which go with
   them */
$result = dns_get_record("php.net", DNS_ANY, $authns, $addtl);
echo "Result = ";
print_r($result);
echo "Auth NS = ";
print_r($authns);
echo "Additional = ";
print_r($addtl);
?>

Produces output similar to the following:

Result = Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => MX
            [pri] => 5
            [target] => pair2.php.net
            [class] => IN
            [ttl] => 6765
        )

    [1] => Array
        (
            [host] => php.net
            [type] => A
            [ip] => 64.246.30.37
            [class] => IN
            [ttl] => 8125
        )

)
Auth NS = Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => remote1.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [1] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => remote2.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [2] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => ns1.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [3] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => ns2.easydns.com
            [class] => IN
            [ttl] => 10722
        )

)
Additional = Array
(
    [0] => Array
        (
            [host] => pair2.php.net
            [type] => A
            [ip] => 216.92.131.5
            [class] => IN
            [ttl] => 6766
        )

    [1] => Array
        (
            [host] => remote1.easydns.com
            [type] => A
            [ip] => 64.39.29.212
            [class] => IN
            [ttl] => 100384
        )

    [2] => Array
        (
            [host] => remote2.easydns.com
            [type] => A
            [ip] => 212.100.224.80
            [class] => IN
            [ttl] => 81241
        )

    [3] => Array
        (
            [host] => ns1.easydns.com
            [type] => A
            [ip] => 216.220.40.243
            [class] => IN
            [ttl] => 81241
        )

    [4] => Array
        (
            [host] => ns2.easydns.com
            [type] => A
            [ip] => 216.220.40.244
            [class] => IN
            [ttl] => 81241
        )

)

See also dns_get_mx(), and dns_check_record()

Пред. | Начало | След.
dns_get_mx | Уровень выше | fsockopen


fsockopen

(PHP 3, PHP 4, PHP 5)

fsockopen -- Open Internet or Unix domain socket connection

Description

resource fsockopen ( string target [, int port [, int &errno [, string &errstr [, float timeout]]]] )

Initiates a socket connection to the resource specified by target. PHP supports targets in the Internet and Unix domains as described in Прил. O. A list of supported transports can also be retrieved using stream_get_transports().

Замечание: If you need to set a timeout for reading/writing data over the socket, use stream_set_timeout(), as the timeout parameter to fsockopen() only applies while connecting the socket.

As of PHP 4.3.0, if you have compiled in OpenSSL support, you may prefix the hostname with either 'ssl://' or 'tls://' to use an SSL or TLS client connection over TCP/IP to connect to the remote host.

fsockopen() returns a file pointer which may
be used together with the other file functions (such as
fgets(), fgetss(),
fwrite(), fclose(), and
feof()).

If the call fails, it will return FALSE and if the optional errno and errstr arguments are present they will be set to indicate the actual system level error that occurred in the system-level connect() call. If the value returned in errno is 0 and the function returned FALSE, it is an indication that the error occurred before the connect() call. This is most likely due to a problem initializing the socket. Note that the errno and errstr arguments will always be passed by reference.

Depending on the environment, the Unix domain or the optional connect timeout may not be available.

The socket will by default be opened in blocking mode. You can switch it to non-blocking mode by using stream_set_blocking().

Пример 1. fsockopen() Example

<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.example.com\r\n";
    $out .= "Connection: Close\r\n\r\n";

    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>
The example below shows how to retrieve the day and time from the UDP service "daytime" (port 13) in your own machine.

Пример 2. Using UDP connection

<?php
$fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr);
if (!$fp) {
    echo "ERROR: $errno - $errstr<br />\n";
} else {
    fwrite($fp, "\n");
    echo fread($fp, 26);
    fclose($fp);
}
?>

Внимание

UDP sockets will sometimes appear to have opened without an error, even if the remote host is unreachable. The error will only become apparent when you read or write data to/from the socket. The reason for this is because UDP is a "connectionless" protocol, which means that the operating system does not try to establish a link for the socket until it actually needs to send or receive data.

Замечание: При указании числового адреса IPv6 (например, fe80::1) вы должны заключать его в квадратные скобки. Например, tcp://[fe80::1]:80.

Замечание: The timeout parameter was introduced in PHP 3.0.9 and UDP support was added in PHP 4.

See also pfsockopen(), stream_set_blocking(), stream_set_timeout(), fgets(), fgetss(), fwrite(), fclose(), feof(), and the Curl extension.

Пред. | Начало | След.
dns_get_record | Уровень выше | gethostbyaddr


gethostbyaddr

(PHP 3, PHP 4, PHP 5)

gethostbyaddr -- Get the Internet host name corresponding to a given IP address

Description

string gethostbyaddr ( string ip_address )

Returns the host name of the Internet host specified by ip_address or a string containing the unmodified ip_address on failure.

Пример 1. A simple gethostbyaddr() example

<?php
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);

echo $hostname;
?>

See also gethostbyname(), and gethostbynamel().

Пред. | Начало | След.
fsockopen | Уровень выше | gethostbyname


gethostbyname

(PHP 3, PHP 4, PHP 5)

gethostbyname -- Get the IP address corresponding to a given Internet host name

Description

string gethostbyname ( string hostname )

Returns the IP address of the Internet host specified by hostname or a string containing the unmodified hostname on failure.

Пример 1. A simple gethostbyname() example

<?php
$ip = gethostbyname('www.example.com');

echo $ip;
?>

See also gethostbyaddr(), and gethostbynamel().

Пред. | Начало | След.
gethostbyaddr | Уровень выше | gethostbynamel


gethostbynamel

(PHP 3, PHP 4, PHP 5)

gethostbynamel -- Get a list of IP addresses corresponding to a given Internet host name

Description

array gethostbynamel ( string hostname )

Returns a list of IP addresses to which the Internet host specified by hostname resolves. Returns FALSE if hostname could not be resolved.

Пример 1. gethostbynamel() example

<?php
  $hosts = gethostbynamel('www.example.com');
  print_r($hosts);
?>

The printout of the above program will be:

Array
(
    [0] => 192.0.34.166
)

See also gethostbyname(),
gethostbyaddr(),
checkdnsrr(), getmxrr(),
and the named(8) manual page.

Пред. | Начало | След.
gethostbyname | Уровень выше | getmxrr


getmxrr

(PHP 3, PHP 4, PHP 5)

getmxrr -- Get MX records corresponding to a given Internet host name

Description

bool getmxrr ( string hostname, array &mxhosts [, array &weight] )

Searches DNS for MX records corresponding to hostname. Returns TRUE if any records are found; returns FALSE if no records were found or if an error occurred.

A list of the MX records found is placed into the array mxhosts. If the weight array is given, it will be filled with the weight information gathered.

Замечание: This function should not be used for the purposes of address verification. Only the mailexchangers found in DNS are returned, however, according to RFC 2821 when no mail exchangers are listed, hostname itself should be used as the only mail exchanger with a priority of 0.

Замечание: This function is not implemented on Windows platforms. Try the PEAR class Net_DNS.

See also checkdnsrr(),
dns_get_record(),
gethostbyname(),
gethostbynamel(),
gethostbyaddr(), and the
named(8) manual page.

Пред. | Начало | След.
gethostbynamel | Уровень выше | getprotobyname


getprotobyname

(PHP 4, PHP 5)

getprotobyname -- Get protocol number associated with protocol name

Description

int getprotobyname ( string name )

getprotobyname() returns the protocol number associated with the protocol name as per /etc/protocols.

Пример 1. getprotobyname() example

<?php
$protocol = 'tcp';
$get_prot = getprotobyname($protocol);
if ($get_prot == -1) {
    // if nothing found, returns -1
    echo 'Invalid Protocol';
} else {
    echo 'Protocol #' . $get_prot;
}
?>

See also: getprotobynumber().

Пред. | Начало | След.
getmxrr | Уровень выше | getprotobynumber


getprotobynumber

(PHP 4, PHP 5)

getprotobynumber -- Get protocol name associated with protocol number

Description

string getprotobynumber ( int number )

getprotobynumber() returns the protocol name associated with protocol number as per /etc/protocols.

See also: getprotobyname().

Пред. | Начало | След.
getprotobyname | Уровень выше | getservbyname


getservbyname

(PHP 4, PHP 5)

getservbyname -- Get port number associated with an Internet service and protocol

Description

int getservbyname ( string service, string protocol )

getservbyname() returns the Internet port which corresponds to service for the specified protocol as per /etc/services. protocol is either "tcp" or "udp" (in lowercase). Returns FALSE if service or protocol is not found.

Пример 1. getservbyname() example

<?php
$services = array('http', 'ftp', 'ssh', 'telnet', 'imap',
'smtp', 'nicname', 'gopher', 'finger', 'pop3', 'www');

foreach ($services as $service) {
    $port = getservbyname($service, 'tcp');
    echo $service . ": " . $port . "<br />\n";
}
?>

For complete list of port numbers see: http://www.iana.org/assignments/port-numbers.

See also: getservbyport().

Пред. | Начало | След.
getprotobynumber | Уровень выше | getservbyport


getservbyport

(PHP 4, PHP 5)

getservbyport -- Get Internet service which corresponds to port and protocol

Description

string getservbyport ( int port, string protocol )

getservbyport() returns the Internet service associated with port for the specified protocol as per /etc/services. protocol is either "tcp" or "udp" (in lowercase).

See also: getservbyname().

Пред. | Начало | След.
getservbyname | Уровень выше | inet_ntop


inet_ntop

(PHP 5 >= 5.1.0RC1)

inet_ntop -- Converts a packed internet address to a human readable representation

Description

string inet_ntop ( string in_addr )

This function converts a 32bit IPv4, or 128bit IPv6 address (if PHP was built with IPv6 support enabled) into an address family appropriate string representation. Returns FALSE on failure.

Пример 1. inet_ntop() Example

<?php
$packed = chr(127) . chr(0) . chr(0) . chr(1);
$expanded = inet_ntop($packed);

/* Outputs: 127.0.0.1 */
echo $expanded;

$packed = str_repeat(chr(0), 15) . chr(1);
$expanded = inet_ntop($packed);

/* Outputs: ::1 */
echo $expanded;
?>

Замечание: Для Windows-платформ эта функция не реализована.

See also long2ip(),
inet_pton(), and
ip2long().

Пред. | Начало | След.
getservbyport | Уровень выше | inet_pton


inet_pton

(PHP 5 >= 5.1.0RC1)

inet_pton -- Converts a human readable IP address to its packed in_addr representation

Description

string inet_pton ( string address )

This function converts a human readable IPv4 or IPv6 address (if PHP was built with IPv6 support enabled) into an address family appropriate 32bit or 128bit binary structure.

Пример 1. inet_pton() Example

<?php
$in_addr = inet_pton('127.0.0.1');

$in6_addr = inet_pton('::1');

?>

Замечание: Для Windows-платформ эта функция не реализована.

See also ip2long(),
inet_ntop(), and
long2ip().

Пред. | Начало | След.
inet_ntop | Уровень выше | ip2long


ip2long

(PHP 4, PHP 5)

ip2long -- Converts a string containing an (IPv4) Internet Protocol dotted address into a proper address

Description

int ip2long ( string ip_address )

The function ip2long() generates an IPv4 Internet network address from its Internet standard format (dotted string) representation. If ip_address is invalid then -1 is returned. Note that -1 does not evaluate as FALSE in PHP.

Замечание: As of PHP 5.0.0 ip2long() returns FALSE when ip_address is invalid.

Пример 1. ip2long() Example

<?php
$ip = gethostbyname('www.example.com');
$out = "The following URLs are equivalent:<br />\n";
$out .= 'http://www.example.com/, http://' . $ip . '/, and http://' . sprintf("%u", ip2long($ip)) . "/<br />\n";
echo $out;
?>

Замечание: Because PHP's integer type is signed, and many IP addresses will result in negative integers, you need to use the "%u" formatter of sprintf() or printf() to get the string representation of the unsigned IP address.

This second example shows how to print a converted address with the printf() function in both PHP 4 and PHP 5:

Пример 2. Displaying an IP address

<?php
$ip   = gethostbyname('www.example.com');
$long = ip2long($ip);

if ($long == -1 || $long === FALSE) {
    echo 'Invalid IP, please try again';
} else {
    echo $ip   . "\n";           // 192.0.34.166
    echo $long . "\n";           // -1073732954
    printf("%u\n", ip2long($ip)); // 3221234342
}
?>

ip2long() should not be used as the sole form of IP validation. Combine it with long2ip():

Пример 3. IP validation

<?php
// make sure IPs are valid. also converts a non-complete IP into
// a proper dotted quad as explained below.
$ip = long2ip(ip2long("127.0.0.1")); // "127.0.0.1"
$ip = long2ip(ip2long("10.0.0")); // "10.0.0.0"
$ip = long2ip(ip2long("10.0.256")); // "10.0.1.0"
?>

ip2long() will also work with non-complete IP addresses. Read http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm for more info.

Замечание: ip2long() will return FALSE for the IP 255.255.255.255 in PHP 5 <= 5.0.2. It was fixed in PHP 5.0.3 where it returns -1 (same as PHP 4).

See also long2ip() and sprintf().

Пред. | Начало | След.
inet_pton | Уровень выше | long2ip


long2ip

(PHP 4, PHP 5)

long2ip -- Converts an (IPv4) Internet network address into a string in Internet standard dotted format

Description

string long2ip ( int proper_address )

The function long2ip() generates an Internet address in dotted format (i.e.: aaa.bbb.ccc.ddd) from the proper address representation.

See also: ip2long()

Пред. | Начало | След.
ip2long | Уровень выше | openlog


openlog

(PHP 3, PHP 4, PHP 5)

openlog -- Open connection to system logger

Description

bool openlog ( string ident, int option, int facility )

openlog() opens a connection to the system logger for a program. The string ident is added to each message. Values for option and facility are given below. The option argument is used to indicate what logging options will be used when generating a log message. The facility argument is used to specify what type of program is logging the message. This allows you to specify (in your machine's syslog configuration) how messages coming from different facilities will be handled. The use of openlog() is optional. It will automatically be called by syslog() if necessary, in which case ident will default to FALSE.

Таблица 1. openlog() Options

Constant | Description
LOG_CONS | if there is an error while sending data to the system logger, write directly to the system console
LOG_NDELAY | open the connection to the logger immediately
LOG_ODELAY | (default) delay opening the connection until the first message is logged
LOG_PERROR | print log message also to standard error
LOG_PID | include PID with each message
You can use one or more of this options. When using multiple options you need to OR them, i.e. to open the connection immediately, write to the console and include the PID in each message, you will use: LOG_CONS | LOG_NDELAY | LOG_PID

Таблица 2. openlog() Facilities

Constant | Description
LOG_AUTH | security/authorization messages (use LOG_AUTHPRIV instead in systems where that constant is defined)
LOG_AUTHPRIV | security/authorization messages (private)
LOG_CRON | clock daemon (cron and at)
LOG_DAEMON | other system daemons
LOG_KERN | kernel messages
LOG_LOCAL0 ... LOG_LOCAL7 | reserved for local use, these are not available in Windows
LOG_LPR | line printer subsystem
LOG_MAIL | mail subsystem
LOG_NEWS | USENET news subsystem
LOG_SYSLOG | messages generated internally by syslogd
LOG_USER | generic user-level messages
LOG_UUCP | UUCP subsystem

Замечание: LOG_USER is the only valid log type under Windows operating systems

See also define_syslog_variables(),
syslog() and
closelog().

Пред. | Начало | След.
long2ip | Уровень выше | pfsockopen


pfsockopen

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

pfsockopen -- Open persistent Internet or Unix domain socket connection

Description

resource pfsockopen ( string hostname [, int port [, int &errno [, string &errstr [, float timeout]]]] )

This function behaves exactly as fsockopen() with the difference that the connection is not closed after the script finishes. It is the persistent version of fsockopen().

Пред. | Начало | След.
openlog | Уровень выше | socket_get_status


socket_get_status

(PHP 4, PHP 5)

socket_get_status -- Alias of stream_get_meta_data()

Описание

This function is an alias of: stream_get_meta_data().

Пред. | Начало | След.
pfsockopen | Уровень выше | socket_set_blocking


socket_set_blocking

(PHP 4, PHP 5)

socket_set_blocking -- Alias of stream_set_blocking()

Описание

This function is an alias of: stream_set_blocking().

Пред. | Начало | След.
socket_get_status | Уровень выше | socket_set_timeout


socket_set_timeout

(PHP 4, PHP 5)

socket_set_timeout -- Alias of stream_set_timeout()

Описание

This function is an alias of: stream_set_timeout().

Пред. | Начало | След.
socket_set_blocking | Уровень выше | syslog


syslog

(PHP 3, PHP 4, PHP 5)

syslog -- Generate a system log message

Description

bool syslog ( int priority, string message )

syslog() generates a log message that will be distributed by the system logger. priority is a combination of the facility and the level, values for which are given in the next section. The remaining argument is the message to send, except that the two characters %m will be replaced by the error message string (strerror) corresponding to the present value of errno.

Таблица 1. syslog() Priorities (in descending order)

Constant | Description
LOG_EMERG | system is unusable
LOG_ALERT | action must be taken immediately
LOG_CRIT | critical conditions
LOG_ERR | error conditions
LOG_WARNING | warning conditions
LOG_NOTICE | normal, but significant, condition
LOG_INFO | informational message
LOG_DEBUG | debug-level message

Пример 1. Using syslog()

<?php
define_syslog_variables();
// open syslog, include the process ID and also send
// the log to standard error, and use a user defined
// logging mechanism
openlog("myScriptLog", LOG_PID | LOG_PERROR, LOG_LOCAL0);

// some code

if (authorized_client()) {
    // do something
} else {
    // unauthorized client!
    // log the attempt
    $access = date("Y/m/d H:i:s");
    syslog(LOG_WARNING, "Unauthorized client: $access $_SERVER[REMOTE_ADDR] ($_SERVER[HTTP_USER_AGENT])");
}

closelog();
?>
For information on setting up a user defined log handler, see the syslog.conf(5) Unix manual page. More information on the syslog facilities and option can be found in the man pages for syslog(3) on Unix machines.

On Windows NT, the syslog service is emulated using the Event Log.

Замечание: Use of LOG_LOCAL0 through LOG_LOCAL7 for the facility parameter of openlog() is not available in Windows.

See also define_syslog_variables(),
openlog() and
closelog().

Пред. | Начало | След.
socket_set_timeout | Уровень выше | Newt Functions


YP/NIS Functions

Руководство по PHP
Пред. След.

CLXVIII. YP/NIS Functions

Введение

NIS (formerly called Yellow Pages) allows network management of important administrative files (e.g. the password file). For more information refer to the NIS manpage and The Linux NIS(YP)/NYS/NIS+ HOWTO. There is also a book called Managing NFS and NIS by Hal Stern.

Замечание: This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 5.1.0.

Замечание: Для Windows-платформ это расширение недоступно.

Требования

None besides functions from standard Unix libraries which are always available (either libc or libnsl, configure will detect which one to use).

Установка

To get these functions to work, you have to configure PHP with --enable-yp.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

YPERR_BADARGS (integer)

YPERR_BADDB (integer)

YPERR_BUSY (integer)

YPERR_DOMAIN (integer)

YPERR_KEY (integer)

YPERR_MAP (integer)

YPERR_NODOM (integer)

YPERR_NOMORE (integer)

YPERR_PMAP (integer)

YPERR_RESRC (integer)

YPERR_RPC (integer)

YPERR_YPBIND (integer)

YPERR_YPERR (integer)

YPERR_YPSERV (integer)

YPERR_VERS (integer)

Содержание
yp_all -- Traverse the map and call a function on each entry
yp_cat -- Return an array containing the entire map
yp_err_string -- Returns the error string associated with the given error code
yp_errno -- Returns the error code of the previous operation
yp_first -- Returns the first key-value pair from the named map
yp_get_default_domain -- Fetches the machine's default NIS domain
yp_master -- Returns the machine name of the master NIS server for a map
yp_match -- Returns the matched line
yp_next -- Returns the next key-value pair in the named map
yp_order -- Returns the order number for a map

Пред. | Начало | След.
yaz_wait | Уровень выше | yp_all


yp_all

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

yp_all -- Traverse the map and call a function on each entry

Description

void yp_all ( string domain, string map, string callback )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
YP/NIS Functions | Уровень выше | yp_cat


yp_cat

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

yp_cat -- Return an array containing the entire map

Description

array yp_cat ( string domain, string map )

yp_cat() returns all map entries as an array with the maps key values as array indices and the maps entries as array data.

Пред. | Начало | След.
yp_all | Уровень выше | yp_err_string


yp_err_string

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

yp_err_string -- Returns the error string associated with the given error code

Description

string yp_err_string ( int errorcode )

yp_err_string() returns the error message associated with the given error code. Useful to indicate what exactly went wrong.

Пример 1. Example for NIS errors

<?php
    echo "Error: " . yp_err_string(yp_errno());
?>

See also yp_errno().

Пред. | Начало | След.
yp_cat | Уровень выше | yp_errno


yp_errno

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.4)

yp_errno -- Returns the error code of the previous operation

Description

int yp_errno ( void )

yp_errno() returns the error code of the previous operation.

Possible errors are:

1 args to function are bad
2 RPC failure - domain has been unbound
3 can't bind to server on this domain
4 no such map in server's domain
5 no such key in map
6 internal yp server or client error
7 resource allocation failure
8 no more records in map database
9 can't communicate with portmapper
10 can't communicate with ypbind
11 can't communicate with ypserv
12 local domain name not set
13 yp database is bad
14 yp version mismatch
15 access violation
16 database busy

See also yp_err_string().

Пред. | Начало | След.
yp_err_string | Уровень выше | yp_first


yp_first

(PHP 3 >= 3.0.7, PHP 4, PHP 5 <= 5.0.4)

yp_first -- Returns the first key-value pair from the named map

Description

array yp_first ( string domain, string map )

yp_first() returns the first key-value pair from the named map in the named domain, otherwise FALSE.

Пример 1. Example for the NIS first

<?php
$entry = yp_first($domain, "passwd.byname");

$key = key($entry);
$value = $entry[$key];

echo "First entry in this map has key " . $key . " and value " . $value;
?>

See also yp_next() and yp_get_default_domain().

Пред. | Начало | След.
yp_errno | Уровень выше | yp_get_default_domain


yp_get_default_domain

(PHP 3 >= 3.0.7, PHP 4, PHP 5 <= 5.0.4)

yp_get_default_domain -- Fetches the machine's default NIS domain

Description

string yp_get_default_domain ( void )

yp_get_default_domain() returns the default domain of the node or FALSE. Can be used as the domain parameter for successive NIS calls.

A NIS domain can be described a group of NIS maps. Every host that needs to look up information binds itself to a certain domain. Refer to the documents mentioned at the beginning for more detailed information.

Пример 1. Example for the default domain

<?php
$domain = yp_get_default_domain();
echo "Default NIS domain is: " . $domain;
?>

Пред. | Начало | След.
yp_first | Уровень выше | yp_master


yp_master

(PHP 3 >= 3.0.7, PHP 4, PHP 5 <= 5.0.4)

yp_master -- Returns the machine name of the master NIS server for a map

Description

string yp_master ( string domain, string map )

yp_master() returns the machine name of the master NIS server for a map.

Пример 1. Example for the NIS master

<?php
$number = yp_master($domain, $mapname);
echo "Master for this map is: " . $master;
?>

See also yp_get_default_domain().

Пред. | Начало | След.
yp_get_default_domain | Уровень выше | yp_match


yp_match

(PHP 3 >= 3.0.7, PHP 4, PHP 5 <= 5.0.4)

yp_match -- Returns the matched line

Description

string yp_match ( string domain, string map, string key )

yp_match() returns the value associated with the passed key out of the specified map or FALSE. This key must be exact.

Пример 1. Example for NIS match

<?php
$entry = yp_match($domain, "passwd.byname", "joe");
echo "Matched entry is: " . $entry;
?>

The above code will produce :

joe:##joe:11111:100:Joe User:/home/j/joe:/usr/local/bin/bash

See also yp_get_default_domain().

Пред. | Начало | След.
yp_master | Уровень выше | yp_next


yp_next

(PHP 3 >= 3.0.7, PHP 4, PHP 5 <= 5.0.4)

yp_next -- Returns the next key-value pair in the named map

Description

array yp_next ( string domain, string map, string key )

yp_next() returns the next key-value pair in the named map after the specified key or FALSE.

Пример 1. Example for NIS next

<?php
$entry = yp_next($domain, "passwd.byname", "joe");

if (!$entry) {
    echo "No more entries found\n";
    echo "<!--" . yp_errno() . ": " . yp_err_string() . "-->";
}

$key = key($entry);

echo "The next entry after joe has key " . $key
      . " and value " . $entry[$key];
?>

See also yp_first() and yp_get_default_domain().

Пред. | Начало | След.
yp_match | Уровень выше | yp_order


yp_order

(PHP 3 >= 3.0.7, PHP 4, PHP 5 <= 5.0.4)

yp_order -- Returns the order number for a map

Description

int yp_order ( string domain, string map )

yp_order() returns the order number for a map or FALSE.

Пример 1. Example for the NIS order

<?php
    $number = yp_order($domain, $mapname);
    echo "Order number for this map is: " . $number;
?>

See also yp_get_default_domain().

Пред. | Начало | След.
yp_next | Уровень выше | Zip File Functions (Read Only Access)


Lotus Notes Functions

Руководство по PHP
Пред. След.

LXVI. Lotus Notes Functions

Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

Замечание: This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 5.0.0. Дополнительная информация, такая как новый версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, могут быть найдены здесь: http://pecl.php.net/package/notes.

Внимание

This extension is currently not supported, thus looking for a maintainer.

Содержание
notes_body -- Open the message msg_number in the specified mailbox on the specified server (leave serv
notes_copy_db -- Copy a Lotus Notes database
notes_create_db -- Create a Lotus Notes database
notes_create_note -- Create a note using form form_name
notes_drop_db -- Drop a Lotus Notes database
notes_find_note -- Returns a note id found in database_name
notes_header_info -- Open the message msg_number in the specified mailbox on the specified server (leave serv
notes_list_msgs -- Returns the notes from a selected database_name
notes_mark_read -- Mark a note_id as read for the User user_name
notes_mark_unread -- Mark a note_id as unread for the User user_name
notes_nav_create -- Create a navigator name, in database_name
notes_search -- Find notes that match keywords in database_name
notes_unread -- Returns the unread note id's for the current User user_name
notes_version -- Get the version Lotus Notes

Пред. | Начало | След.
libxml_use_internal_errors | Уровень выше | notes_body


notes_body

(PHP 4 >= 4.0.5, PECL)

notes_body -- Open the message msg_number in the specified mailbox on the specified server (leave serv

Description

array notes_body ( string server, string mailbox, int msg_number )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
Lotus Notes Functions | Уровень выше | notes_copy_db


notes_copy_db

(PHP 4 >= 4.0.5, PECL)

notes_copy_db -- Copy a Lotus Notes database

Description

bool notes_copy_db ( string from_database_name, string to_database_name )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
notes_body | Уровень выше | notes_create_db


notes_create_db

(PHP 4 >= 4.0.5, PECL)

notes_create_db -- Create a Lotus Notes database

Description

bool notes_create_db ( string database_name )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
notes_copy_db | Уровень выше | notes_create_note


notes_create_note

(PHP 4 >= 4.0.5, PECL)

notes_create_note -- Create a note using form form_name

Description

bool notes_create_note ( string database_name, string form_name )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
notes_create_db | Уровень выше | notes_drop_db


notes_drop_db

(PHP 4 >= 4.0.5, PECL)

notes_drop_db -- Drop a Lotus Notes database

Description

bool notes_drop_db ( string database_name )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
notes_create_note | Уровень выше | notes_find_note


notes_find_note

(PHP 4 >= 4.0.5, PECL)

notes_find_note -- Returns a note id found in database_name

Description

int notes_find_note ( string database_name, string name [, string type] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
notes_drop_db | Уровень выше | notes_header_info


notes_header_info

(PHP 4 >= 4.0.5, PECL)

notes_header_info -- Open the message msg_number in the specified mailbox on the specified server (leave serv

Description

object notes_header_info ( string server, string mailbox, int msg_number )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
notes_find_note | Уровень выше | notes_list_msgs


notes_list_msgs

(PHP 4 >= 4.0.5, PECL)

notes_list_msgs -- Returns the notes from a selected database_name

Description

bool notes_list_msgs ( string db )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
notes_header_info | Уровень выше | notes_mark_read


notes_mark_read

(PHP 4 >= 4.0.5, PECL)

notes_mark_read -- Mark a note_id as read for the User user_name

Description

bool notes_mark_read ( string database_name, string user_name, string note_id )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
notes_list_msgs | Уровень выше | notes_mark_unread


notes_mark_unread

(PHP 4 >= 4.0.5, PECL)

notes_mark_unread -- Mark a note_id as unread for the User user_name

Description

bool notes_mark_unread ( string database_name, string user_name, string note_id )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
notes_mark_read | Уровень выше | notes_nav_create


notes_nav_create

(PHP 4 >= 4.0.5, PECL)

notes_nav_create -- Create a navigator name, in database_name

Description

bool notes_nav_create ( string database_name, string name )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
notes_mark_unread | Уровень выше | notes_search


notes_search

(PHP 4 >= 4.0.5, PECL)

notes_search -- Find notes that match keywords in database_name

Description

array notes_search ( string database_name, string keywords )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
notes_nav_create | Уровень выше | notes_unread


notes_unread

(PHP 4 >= 4.0.5, PECL)

notes_unread -- Returns the unread note id's for the current User user_name

Description

array notes_unread ( string database_name, string user_name )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
notes_search | Уровень выше | notes_version


notes_version

(PHP 4 >= 4.0.5, PECL)

notes_version -- Get the version Lotus Notes

Description

float notes_version ( string database_name )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
notes_unread | Уровень выше | LZF Functions


NSAPI-specific Functions

Руководство по PHP
Пред. След.

XCIII. NSAPI-specific Functions

Введение

These functions are only available when running PHP as a NSAPI module in Netscape/iPlanet/SunONE webservers.

Установка

For PHP installation on Netscape/iPlanet/SunONE webservers see the NSAPI section (UNIX, Windows) in the installation chapter.

Настройка во время выполнения

The behaviour of the NSAPI PHP module is affected by settings in php.ini. Configuration settings from php.ini may be overridden by additional parameters to the php4_execute call in obj.conf

Таблица 1. NSAPI configuration options

Name | Default | Changeable | Changelog
nsapi.read_timeout | "60" | PHP_INI_ALL | Available since PHP 4.3.3.
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

nsapi.read_timeout integer

Sets the time in seconds the plugin is waiting for POST data from the client.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Смотрите также

NSAPI implements a subset of the functions from the Apache module for maximum compatibility.

Таблица 2. Apache functions implemented by NSAPI

Apache function (only as alias) | NSAPI function | Description
apache_request_headers() | nsapi_request_headers() | Fetch all HTTP request headers
apache_response_headers() | nsapi_response_headers() | Fetch all HTTP response headers
getallheaders() | nsapi_request_headers() | Fetch all HTTP request headers
virtual() | nsapi_virtual() | Make NSAPI sub-request

Содержание
nsapi_request_headers -- Fetch all HTTP request headers
nsapi_response_headers -- Fetch all HTTP response headers
nsapi_virtual -- Perform an NSAPI sub-request

Пред. | Начало | След.
newt_win_ternary | Уровень выше | nsapi_request_headers


nsapi_request_headers

(PHP 4 >= 4.3.3, PHP 5)

nsapi_request_headers -- Fetch all HTTP request headers

Описание

array nsapi_request_headers ( void )

nsapi_request_headers() gets all the HTTP headers in the current request. This is only supported when PHP runs as a NSAPI module.

Замечание: Prior to PHP 4.3.3, getallheaders() was only available for the Apache servers. After PHP 4.3.3, getallheaders() is an alias for nsapi_request_headers() if you use the NSAPI module.

Замечание: You can also get at the value of the common CGI variables by reading them from the $_SERVER superglobal, which works whether or not you are using PHP as a NSAPI module.

Возвращаемые значения

Returns an associative array with all the HTTP headers.

Примеры

Пример 1. nsapi_request_headers() example

<?php
$headers = nsapi_request_headers();

foreach ($headers as $header => $value) {
  echo "$header: $value <br />\n";
}
?>

Пред. | Начало | След.
NSAPI-specific Functions | Уровень выше | nsapi_response_headers


nsapi_response_headers

(PHP 4 >= 4.3.3, PHP 5)

nsapi_response_headers -- Fetch all HTTP response headers

Описание

array nsapi_response_headers ( void )

Gets all the NSAPI response headers.

Возвращаемые значения

Returns an associative array with all the NSAPI response headers.

Смотрите также

nsapi_request_headers()
headers_sent()

Пред. | Начало | След.
nsapi_request_headers | Уровень выше | nsapi_virtual


nsapi_virtual

(PHP 4 >= 4.3.3, PHP 5)

nsapi_virtual -- Perform an NSAPI sub-request

Описание

bool nsapi_virtual ( string uri )

nsapi_virtual() is an NSAPI-specific function which is equivalent to <!--#include virtual...--> in SSI (.shtml files). It does an NSAPI sub-request. It is useful for including CGI scripts or .shtml files, or anything else that you'd parse through webserver.

To run the sub-request, all buffers are terminated and flushed to the browser, pending headers are sent too.

You cannot make recursive requests with this function to other PHP scripts. If you want to include PHP scripts, use include() or require().

Замечание: This function depends on a undocumented feature of the Netscape/iPlanet/SunONE webservers. Use phpinfo() to determine if it is available. In the Unix environment it should always work, in windows it depends on the name of a ns-httpdXX.dll file.

Read the note about subrequests in the NSAPI section (UNIX, Windows) if you experience this problem.

Список параметров

uri

The URI of the script.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
nsapi_response_headers | Уровень выше | Object Aggregation/Composition Functions


Object Aggregation/Composition Functions

Руководство по PHP
Пред. След.

XCIV. Object Aggregation/Composition Functions

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

Введение

In Object Oriented Programming, it is common to see the composition of simple classes (and/or instances) into a more complex one. This is a flexible strategy for building complicated objects and object hierarchies and can function as a dynamic alternative to multiple inheritance. There are two ways to perform class (and/or object) composition depending on the relationship between the composed elements: Association and Aggregation.

An Association is a composition of independently constructed and externally visible parts. When we associate classes or objects, each one keeps a reference to the ones it is associated with. When we associate classes statically, one class will contain a reference to an instance of the other class. For example:

Пример 1. Class association

<?php
class DateTime {

   function DateTime()
   {
       // empty constructor
   }

   function now()
   {
       return date("Y-m-d H:i:s");
   }
}

class Report {
   var $_dt;
   // more properties ...

   function Report()
   {
       $this->_dt = new DateTime();
       // initialization code ...
   }

   function generateReport()
   {
       $dateTime = $this->_dt->now();
       // more code ...
   }

   // more methods ...
}

$rep = new Report();
?>
We can also associate instances at runtime by passing a reference in a constructor (or any other method), which allow us to dynamically change the association relationship between objects. We will modify the example above to illustrate this point:

Пример 2. Object association

<?php
class DateTime {
   // same as previous example
}

class DateTimePlus {
   var $_format;

   function DateTimePlus($format="Y-m-d H:i:s")
   {
       $this->_format = $format;
   }

   function now()
   {
       return date($this->_format);
   }
}

class Report {
   var $_dt;    // we'll keep the reference to DateTime here
   // more properties ...

   function Report()
   {
       // do some initialization
   }

   function setDateTime(&$dt)
   {
       $this->_dt =& $dt;
   }

   function generateReport()
   {
       $dateTime = $this->_dt->now();
       // more code ...
   }

   // more methods ...
}

$rep = new Report();
$dt = new DateTime();
$dtp = new DateTimePlus("l, F j, Y (h:i:s a, T)");

// generate report with simple date for web display
$rep->setDateTime(&$dt);
echo $rep->generateReport();

// later on in the code ...

// generate report with fancy date
$rep->setDateTime(&$dtp);
$output = $rep->generateReport();
// save $output in database
// ... etc ...
?>

Aggregation, on the other hand, implies encapsulation (hidding) of the parts of the composition. We can aggregate classes by using a (static) inner class (PHP does not yet support inner classes), in this case the aggregated class definition is not accessible, except through the class that contains it. The aggregation of instances (object aggregation) involves the dynamic creation of subobjects inside an object, in the process, expanding the properties and methods of that object.

Object aggregation is a natural way of representing a whole-part relationship, (for example, molecules are aggregates of atoms), or can be used to obtain an effect equivalent to multiple inheritance, without having to permanently bind a subclass to two or more parent classes and their interfaces. In fact object aggregation can be more flexible, in which we can select what methods or properties to "inherit" in the aggregated object.

Примеры

We define 3 classes, each implementing a different storage method:

Пример 3. storage_classes.inc

<?php
class FileStorage {
    var $data;

    function FileStorage($data)
    {
        $this->data = $data;
    }

    function write($name)
    {
        $fp = fopen(name, "w");
        fwrite($fp, $this->data);
        fclose($data);
    }
}

class WDDXStorage {
    var $data;
    var $version = "1.0";
    var $_id; // "private" variable

    function WDDXStorage($data)
    {
        $this->data = $data;
        $this->_id = $this->_genID();
    }

    function store()
    {
        if ($this->_id) {
            $pid = wddx_packet_start($this->_id);
            wddx_add_vars($pid, "this->data");
            $packet = wddx_packet_end($pid);
        } else {
            $packet = wddx_serialize_value($this->data);
        }
        $dbh = dba_open("varstore", "w", "gdbm");
        dba_insert(md5(uniqid("", true)), $packet, $dbh);
        dba_close($dbh);
    }

    // a private method
    function _genID()
    {
        return md5(uniqid(rand(), true));
    }
}

class DBStorage {
    var $data;
    var $dbtype = "mysql";

    function DBStorage($data)
    {
        $this->data = $data;
    }

    function save()
    {
        $dbh = mysql_connect();
        mysql_select_db("storage", $dbh);
        $serdata = serialize($this->data);
        mysql_query("insert into vars ('$serdata',now())", $dbh);
        mysql_close($dbh);
    }
}

?>

We then instantiate a couple of objects from the defined classes, and perform some aggregations and deaggregations, printing some object information along the way:

Пример 4. test_aggregation.php

<?php
include "storageclasses.inc";

// some utilty functions

function p_arr($arr)
{
    foreach ($arr as $k => $v)
        $out[] = "\t$k => $v";
    return implode("\n", $out);
}

function object_info($obj)
{
    $out[] = "Class: " . get_class($obj);
    foreach (get_object_vars($obj) as $var=>$val) {
        if (is_array($val)) {
            $out[] = "property: $var (array)\n" . p_arr($val);
        } else {
            $out[] = "property: $var = $val";
        }
    }
    foreach (get_class_methods($obj) as $method) {
        $out[] = "method: $method";
    }
    return implode("\n", $out);
}

$data = array(M_PI, "kludge != cruft");

// we create some basic objects
$fs = new FileStorage($data);
$ws = new WDDXStorage($data);

// print information on the objects
echo "\$fs object\n";
echo object_info($fs) . "\n";
echo "\n\$ws object\n";
echo object_info($ws) . "\n";

// do some aggregation

echo "\nLet's aggregate \$fs to the WDDXStorage class\n";
aggregate($fs, "WDDXStorage");
echo "\$fs object\n";
echo object_info($fs) . "\n";

echo "\nNow let us aggregate it to the DBStorage class\n";
aggregate($fs, "DBStorage");
echo "\$fs object\n";
echo object_info($fs) . "\n";

echo "\nAnd finally deaggregate WDDXStorage\n";
deaggregate($fs, "WDDXStorage");
echo "\$fs object\n";
echo object_info($fs) . "\n";

?>

We will now consider the output to understand some of the side-effects and limitation of object aggregation in PHP. First, the newly created $fs and $ws objects give the expected output (according to their respective class declaration). Note that for the purposes of object aggregation, private elements of a class/object begin with an underscore character ("_"), even though there is not real distinction between public and private class/object elements in PHP.

$fs object
Class: filestorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
method: filestorage
method: write

$ws object
Class: wddxstorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
property: version = 1.0
property: _id = ID::9bb2b640764d4370eb04808af8b076a5
method: wddxstorage
method: store
method: _genid

We then aggregate $fs with the WDDXStorage class, and print out the object information. We can see now that even though nominally the $fs object is still of FileStorage, it now has the property $version, and the method store(), both defined in WDDXStorage. One important thing to note is that it has not aggregated the private elements defined in the class, which are present in the $ws object. Also absent is the constructor from WDDXStorage, which will not be logical to aggegate.

Let's aggregate $fs to the WDDXStorage class
$fs object
Class: filestorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
property: version = 1.0
method: filestorage
method: write
method: store

The process of aggregation is cumulative, so when we aggregate $fs with the class DBStorage, generating an object that can use the storage methods of all the defined classes.

Now let us aggregate it to the DBStorage class
$fs object
Class: filestorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
property: version = 1.0
property: dbtype = mysql
method: filestorage
method: write
method: store
method: save

Finally, the same way we aggregated properties and methods dynamically, we can also deaggregate them from the object. So, if we deaggregate the class WDDXStorage from $fs, we will obtain:

And deaggregate the WDDXStorage methods and properties
$fs object
Class: filestorage
property: data (array)
    0 => 3.1415926535898
    1 => kludge != cruft
property: dbtype = mysql
method: filestorage
method: write
method: save

One point that we have not mentioned above, is that the process of aggregation will not override existing properties or methods in the objects. For example, the class FileStorage defines a $data property, and the class WDDXStorage also defines a similar property which will not override the one in the object acquired during instantiation from the class FileStorage.

Содержание
aggregate_info -- Returns an associative array of the methods and properties from each class that has been aggregated to the object
aggregate_methods_by_list -- Selective dynamic class methods aggregation to an object
aggregate_methods_by_regexp -- Selective class methods aggregation to an object using a regular expression
aggregate_methods -- Dynamic class and object aggregation of methods
aggregate_properties_by_list -- Selective dynamic class properties aggregation to an object
aggregate_properties_by_regexp -- Selective class properties aggregation to an object using a regular expression
aggregate_properties -- Dynamic aggregation of class properties to an object
aggregate -- Dynamic class and object aggregation of methods and properties
aggregation_info -- Alias of aggregate_info()
deaggregate -- Removes the aggregated methods and properties from an object

Пред. | Начало | След.
nsapi_virtual | Уровень выше | aggregate_info


aggregate_info

(no version information, might be only in CVS)

aggregate_info -- Returns an associative array of the methods and properties from each class that has been aggregated to the object

Description

array aggregate_info ( object object )

Will return the aggregation information for a particular object as an associative array of arrays of methods and properties. The key for the main array is the name of the aggregated class.

For example the code below

Пример 1. Using aggregate_info()

<?php

class Slicer {
    var $vegetable;

    function Slicer($vegetable)
    {
        $this->vegetable = $vegetable;
    }

    function slice_it($num_cuts)
    {
        echo "Doing some simple slicing\n";
        for ($i=0; $i < $num_cuts; $i++) {
            // do some slicing
        }
    }
}

class Dicer {
    var $vegetable;
    var $rotation_angle = 90;   // degrees

    function Dicer($vegetable)
    {
        $this->vegetable = $vegetable;
    }

    function dice_it($num_cuts)
    {
        echo "Cutting in one direction\n";
        for ($i=0; $i < $num_cuts; $i++) {
            // do some cutting
        }
        $this->rotate($this->rotation_angle);
        echo "Cutting in a second direction\n";
        for ($i=0; $i < $num_cuts; $i++) {
            // do some more cutting
        }
    }

    function rotate($deg)
    {
        echo "Now rotating {$this->vegetable} {$deg} degrees\n";
    }

    function _secret_super_dicing($num_cuts)
    {
        // so secret we cannot show you ;-)
    }
}

$obj = new Slicer('onion');
aggregate($obj, 'Dicer');
print_r(aggregate_info($obj));
?>

Will produce the output

Array
(
    [dicer] => Array
        (
            [methods] => Array
                (
                    [0] => dice_it
                    [1] => rotate
                )

            [properties] => Array
                (
                    [0] => rotation_angle
                )

        )

)
As you can see, all properties and methods of the Dicer class have been aggregated into our new object, with the exception of the class constructor and the method _secret_super_dicing

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Пред. | Начало | След.
Object Aggregation/Composition Functions | Уровень выше | aggregate_methods_by_list


aggregate_methods_by_list

(PHP 4 >= 4.2.0)

aggregate_methods_by_list -- Selective dynamic class methods aggregation to an object

Description

void aggregate_methods_by_list ( object object, string class_name, array methods_list [, bool exclude] )

Aggregates methods from a class to an existing object using a list of method names. The optional parameter exclude is used to decide whether the list contains the names of methods to include in the aggregation (i.e. exclude is FALSE, which is the default value), or to exclude from the aggregation (exclude is TRUE).

The class constructor or methods whose names start with an underscore character (_), which are considered private to the aggregated class, are always excluded.

See also
aggregate(),
aggregate_info(),
aggregate_methods(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Пред. | Начало | След.
aggregate_info | Уровень выше | aggregate_methods_by_regexp


aggregate_methods_by_regexp

(PHP 4 >= 4.2.0)

aggregate_methods_by_regexp -- Selective class methods aggregation to an object using a regular expression

Description

void aggregate_methods_by_regexp ( object object, string class_name, string regexp [, bool exclude] )

Aggregates methods from a class to an existing object using a regular expression to match method names. The optional parameter exclude is used to decide whether the regular expression will select the names of methods to include in the aggregation (i.e. exclude is FALSE, which is the default value), or to exclude from the aggregation (exclude is TRUE).

The class constructor or methods whose names start with an underscore character (_), which are considered private to the aggregated class, are always excluded.

See also
aggregate(),
aggregate_info(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Пред. | Начало | След.
aggregate_methods_by_list | Уровень выше | aggregate_methods


aggregate_methods

(PHP 4 >= 4.2.0)

aggregate_methods -- Dynamic class and object aggregation of methods

Description

void aggregate_methods ( object object, string class_name )

Aggregates all methods defined in a class to an existing object, except for the class constructor, or methods whose names start with an underscore character (_) which are considered private to the aggregated class.

See also
aggregate(),
aggregate_info(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Пред. | Начало | След.
aggregate_methods_by_regexp | Уровень выше | aggregate_properties_by_list


aggregate_properties_by_list

(PHP 4 >= 4.2.0)

aggregate_properties_by_list -- Selective dynamic class properties aggregation to an object

Description

void aggregate_properties_by_list ( object object, string class_name, array properties_list [, bool exclude] )

Aggregates properties from a class to an existing object using a list of property names. The optional parameter exclude is used to decide whether the list contains the names of class properties to include in the aggregation (i.e. exclude is FALSE, which is the default value), or to exclude from the aggregation (exclude is TRUE).

The properties whose names start with an underscore character (_), which are considered private to the aggregated class, are always excluded.

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_regexp(),
aggregate_info(),
deaggregate()

Пред. | Начало | След.
aggregate_methods | Уровень выше | aggregate_properties_by_regexp


aggregate_properties_by_regexp

(PHP 4 >= 4.2.0)

aggregate_properties_by_regexp -- Selective class properties aggregation to an object using a regular expression

Description

void aggregate_properties_by_regexp ( object object, string class_name, string regexp [, bool exclude] )

Aggregates properties from a class to an existing object using a regular expression to match their names. The optional parameter exclude is used to decide whether the regular expression will select the names of class properties to include in the aggregation (i.e. exclude is FALSE, which is the default value), or to exclude from the aggregation (exclude is TRUE).

The properties whose names start with an underscore character (_), which are considered private to the aggregated class, are always excluded.

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_info(),
deaggregate()

Пред. | Начало | След.
aggregate_properties_by_list | Уровень выше | aggregate_properties


aggregate_properties

(PHP 4 >= 4.2.0)

aggregate_properties -- Dynamic aggregation of class properties to an object

Description

void aggregate_properties ( object object, string class_name )

Aggregates all properties defined in a class to an existing object, except for properties whose names start with an underscore character (_) which are considered private to the aggregated class.

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
aggregate_info(),
deaggregate()

Пред. | Начало | След.
aggregate_properties_by_regexp | Уровень выше | aggregate


aggregate

(PHP 4 >= 4.2.0)

aggregate -- Dynamic class and object aggregation of methods and properties

Description

void aggregate ( object object, string class_name )

Aggregates methods and properties defined in a class to an existing object. Methods and properties with names starting with an underscore character (_) are considered private to the aggregated class and are not used, constructors are also excluded from the aggregation procedure.

See also
aggregate_info(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
deaggregate()

Пред. | Начало | След.
aggregate_properties | Уровень выше | aggregation_info


aggregation_info

(PHP 4 >= 4.2.0)

aggregation_info -- Alias of aggregate_info()

Описание

This function is an alias of: aggregate_info().

Пред. | Начало | След.
aggregate | Уровень выше | deaggregate


deaggregate

(PHP 4 >= 4.2.0)

deaggregate -- Removes the aggregated methods and properties from an object

Description

void deaggregate ( object object [, string class_name] )

Removes the methods and properties from classes that were aggregated to an object. If the optional class_name parameters is passed, only those methods and properties defined in that class are removed, otherwise all aggregated methods and properties are eliminated.

See also
aggregate(),
aggregate_methods(),
aggregate_methods_by_list(),
aggregate_methods_by_regexp(),
aggregate_properties(),
aggregate_properties_by_list(),
aggregate_properties_by_regexp(),
aggregate_info()

Пред. | Начало | След.
aggregation_info | Уровень выше | Object property and method call overloading


Функции для работы с Oracle

Руководство по PHP
Пред. След.

XCVI. Функции для работы с Oracle

Введение

Эти функции позволяют вам работать с Oracle версий 9/8/7. Для этого используется библиотека Oracle Call Interface (OCI).

Данный модуль много гибче прежнего. Он содержит функции привязки переменных PHP к соответствующим меткам Oracle, расширенную поддержка LOB, FILE и ROWID. Использование этого модуля рекомендуется вместо старого модуля.

Требования

Вам понадобятся клиентские библиотеки Oracle для того, чтобы использовать этот модуль. Пользователям Windows будет необходим Oracle версии минимум 8.1 для того, чтобы использовать php_oci8.dll.

Перед использованием этого модуля, проверьте, что вы установили все необходимые переменные окружения. Эти переменные, перечисленные ниже, должны быть доступны пользователю Oracle и пользователю, с правами которого работает веб-сервер. Переменные окружения, необходимые для корректной работы с Oracle:

  • ORACLE_HOME

  • ORACLE_SID

  • LD_PRELOAD

  • LD_LIBRARY_PATH

  • NLS_LANG

  • ORA_NLS33

После установки среды окружения для веб-сервера, добавьте пользователя, с правами которого работает веб-сервер, в группу oracle.

Если ваш веб-сервер не стартует или возвращает ошибку при старте: Проверьте, что Apache был слинкован с библиотекой pthread:

# ldd /www/apache/bin/httpd
    libpthread.so.0 => /lib/libpthread.so.0 (0x4001c000)
    libm.so.6 => /lib/libm.so.6 (0x4002f000)
    libcrypt.so.1 => /lib/libcrypt.so.1 (0x4004c000)
    libdl.so.2 => /lib/libdl.so.2 (0x4007a000)
    libc.so.6 => /lib/libc.so.6 (0x4007e000)
    /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

Если libpthread не присутствует в списке, то вам придется переустановить Apache:

# cd /usr/src/apache_1.3.xx
# make clean
# LIBS=-lpthread ./config.status
# make
# make install

Обратите внимание на то, что на некоторых системах, например, UnixWare, вместо libthread присутствует libpthread. PHP и Apache также должны быть собраны с EXTRA_LIBS=-lthread.

Установка

PHP должен быть сконфигурирован с опцией --with-oci8[=DIR], где DIR соответствует директории, в которой находится установленный ранее сервер и/или клиент Oracle. По умолчанию значение DIR соответствует переменной окружения ORACLE_HOME.

Если вы используете Oracle Instant Client, то для поддержки модуля OCI8 нужно, чтобы PHP был сконфигурирован с опцией --with-oci8-instant-client[=DIR]. Обратите внимание: поддержка Oracle Instant Client появилась только начиная с версий 4.3.11 и 5.0.4.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

OCI_DEFAULT (integer)

Режим выполнения выражения SQL. В этом режиме транзакция не завершается автоматически оператором COMMIT.

OCI_DESCRIBE_ONLY (integer)

Режим выполнения выражения SQL. Используйте этот режим, если вы хотите получить данные о выполнении запроса, а не выполнить сам запрос.

OCI_COMMIT_ON_SUCCESS (integer)

Режим выполнения выражения SQL. Транзакция автоматически завершается вызовом оператора COMMIT после выполнения oci_execute().

OCI_EXACT_FETCH (integer)

Режим получения результатов запроса. Используется в том случае, если приложению известно заранее сколько строк будет получено в результате. Oracle 8 и более поздние версии не используют выборку результатов с упреждением в этом режиме, а курсоры уничтожаются автоматически после выборки ожидаемого количества строк, что может уменьшить требования сервера к ресурсам.

OCI_SYSDATE (integer)

OCI_B_BFILE (integer)

Используется функцией oci_bind_by_name() для привязки переменных типа BFILE.

OCI_B_CFILEE (integer)

Используется функцией oci_bind_by_name() для привязки переменных типа CFILE.

OCI_B_CLOB (integer)

Используется функцией oci_bind_by_name() для привязки переменных типа CLOB.

OCI_B_BLOB (integer)

Используется функцией oci_bind_by_name() для привязки переменных типа BLOB.

OCI_B_ROWID (integer)

Используется функцией oci_bind_by_name() для привязки переменных типа ROWID.

OCI_B_CURSOR (integer)

Используется функцией oci_bind_by_name() для привязки курсоров, созданных ранее с помощью oci_new_cursor().

OCI_B_NTY (integer)

Используется функцией oci_bind_by_name() для привязки именованных типов данных. В PHP < 5.0 эта константа называлась OCI_B_SQLT_NTY.

OCI_B_BIN (integer)

SQLT_BFILEE (integer)

То же, что и OCI_B_BFILE.

SQLT_CFILEE (integer)

То же, что и OCI_B_CFILEE.

SQLT_CLOB (integer)

То же, что и OCI_B_CLOB.

SQLT_BLOB (integer)

То же, что и OCI_B_BLOB.

SQLT_RDD (integer)

То же, что и OCI_B_ROWID.

SQLT_NTY (integer)

То же, что и OCI_B_NTY.

OCI_FETCHSTATEMENT_BY_COLUMN (integer)

Режим oci_fetch_all() по умолчанию.

OCI_FETCHSTATEMENT_BY_ROW (integer)

Альтернативный режим oci_fetch_all().

OCI_ASSOC (integer)

Используется с oci_fetch_all() и oci_fetch_array() для получения ассоциативного массива.

OCI_NUM (integer)

Используется с oci_fetch_all() и oci_fetch_array() для получения массива с числовыми индексами.

OCI_BOTH (integer)

Используется с oci_fetch_all() и oci_fetch_array() для получения массива с ассоциативными и числовыми индексами.

OCI_RETURN_NULLS (integer)

Используется с oci_fetch_array() для получения пустых элементов массива, если соответствующее поле в результате равно NULL.

OCI_RETURN_LOBS (integer)

Используется oci_fetch_array() для получения содержания объекта LOB вместо дескриптора.

OCI_DTYPE_FILE (integer)

Флаг используется oci_new_descriptor() для инициализации дескриптора типа FILE.

OCI_DTYPE_LOB (integer)

Флаг используется oci_new_descriptor() для инициализации дескриптора типа LOB.

OCI_DTYPE_ROWID (integer)

Флаг используется oci_new_descriptor() для инициализации дескриптора типа ROWID.

OCI_D_FILE (integer)

То же, что и OCI_DTYPE_FILE.

OCI_D_LOB (integer)

То же, что и OCI_DTYPE_LOB.

OCI_D_ROWID (integer)

То же, что и OCI_DTYPE_ROWID.

Примеры

Пример 1. Примеры использования

<?php
// by sergo at bacup dot ru

// Use option: OCI_DEFAULT for execute command to delay execution
OCIExecute($stmt, OCI_DEFAULT);

// for retrieve data use (after fetch):

$result = OCIResult($stmt, $n);
if (is_object($result)) $result = $result->load();

// For INSERT or UPDATE statement use:

$sql = "insert into table (field1, field2) values (field1 = 'value',
 field2 = empty_clob()) returning field2 into :field2";
OCIParse($conn, $sql);
$clob = OCINewDescriptor($conn, OCI_D_LOB);
OCIBindByName($stmt, ":field2", &$clob, -1, OCI_B_CLOB);
OCIExecute($stmt, OCI_DEFAULT);
$clob->save("some text");
OCICommit($conn);

?>

Вы можете использовать хранимые процедуры так же, как это делается из командной строки.

Пример 2. Использование хранимых процедур

<?php
// by webmaster at remoterealty dot com
$sth = OCIParse($dbh, "begin sp_newaddress( :address_id, '$firstname',
 '$lastname', '$company', '$address1', '$address2', '$city', '$state',
 '$postalcode', '$country', :error_code );end;");

// This calls stored procedure sp_newaddress, with :address_id being an
// in/out variable and :error_code being an out variable.
// Then you do the binding:

   OCIBindByName($sth, ":address_id", $addr_id, 10);
   OCIBindByName($sth, ":error_code", $errorcode, 10);
   OCIExecute($sth);

?>

Содержание
OCI-Collection->append -- Appends element to the collection
OCI-Collection->assign -- Assigns a value to the collection from another existing collection
OCI-Collection->assignElem -- Assigns a value to the element of the collection
OCI-Collection->free -- Frees the resources associated with the collection object
OCI-Collection->getElem -- Returns value of the element
OCI-Collection->max -- Returns the maximum number of elements in the collection
OCI-Collection->size -- Returns size of the collection
OCI-Collection->trim -- Trims elements from the end of the collection
OCI-Lob->append -- Appends data from the large object to another large object
OCI-Lob->close -- Closes LOB descriptor
OCI-Lob->eof -- Tests for end-of-file on a large object's descriptor
OCI-Lob->erase -- Erases a specified portion of the internal LOB data
OCI-Lob->export -- Exports LOB's contents to a file
OCI-Lob->flush -- Flushes/writes buffer of the LOB to the server
OCI-Lob->free -- Frees resources associated with the LOB descriptor
OCI-Lob->getBuffering -- Returns current state of buffering for the large object
OCI-Lob->import -- Imports file data to the LOB
OCI-Lob->load -- Returns large object's contents
OCI-Lob->read -- Reads part of the large object
OCI-Lob->rewind -- Moves the internal pointer to the beginning of the large object
OCI-Lob->save -- Saves data to the large object
OCI-Lob->saveFile -- Alias of oci_lob_import()
OCI-Lob->seek -- Sets the internal pointer of the large object
OCI-Lob->setBuffering -- Changes current state of buffering for the large object
OCI-Lob->size -- Returns size of large object
OCI-Lob->tell -- Returns current position of internal pointer of large object
OCI-Lob->truncate -- Truncates large object
OCI-Lob->write -- Writes data to the large object
OCI-Lob->writeTemporary -- Writes temporary large object
OCI-Lob->writeToFile -- Alias of oci_lob_export()
oci_bind_by_name -- Привязывает переменную PHP к соответствующей метке в SQL-выражении.
oci_cancel -- Заканчивает процесс чтения из курсора
oci_close -- Закрывает соединение с сервером Oracle
oci_commit -- Завершает и подтверждает транзакцию
oci_connect -- Устанавливает соединение с сервером Oracle
oci_define_by_name -- Определяет переменную PHP, в которую будет возвращено соответствующее поле из результата
oci_error -- Возвращает последнюю ошибку
oci_execute -- Выполняет выражение SQL
oci_fetch_all -- Выбирает все строки из результата запроса в массив
oci_fetch_array -- Возвращает следующую строку из результата запроса в виде ассоциативного массива, числового массива или оба сразу
oci_fetch_assoc -- Возвращает следующую строку из результата запроса в виде ассоциативного массива
oci_fetch_object -- Возвращает следующую строку из результата запроса в виде объекта
oci_fetch_row -- Возвращает следующую строку из результата запроса в виде массива с числовыми индексами
oci_fetch -- Выбирает следующую строку из результата в буфер
oci_field_is_null -- Проверяет, равняется ли поле NULL
oci_field_name -- Возвращает имя поля из результата запроса
oci_field_precision -- Возвращает точность поля
oci_field_scale -- Возвращает масштаб поля
oci_field_size -- Возвращает размер поля
oci_field_type_raw -- Возвращает тип исходный тип поля
oci_field_type -- Возвращает тип поля
oci_free_statement -- Освобождает ресурсы, занимаемые курсором или SQL-выражением
oci_internal_debug -- Включает и выключает внутреннюю отладку
oci_lob_copy -- Копирует содержание или часть содержания одного объекта LOB в другой
oci_lob_is_equal -- Сравнивает два объекта LOB
oci_new_collection -- Создает новый объект коллекции
oci_new_connect -- Устанавливает новое соединение с сервером Oracle
oci_new_cursor -- Возвращает идентификатор созданного курсора
oci_new_descriptor -- Инициализирует новый дескриптор объекта LOB или FILE
oci_num_fields -- Возвращает количество полей в результате запроса
oci_num_rows -- Возвращает количество строк, измененных в процессе выполнения запроса
oci_parse -- Подготавливает запрос к выполнению
oci_password_change -- Изменяет пароль пользователя Oracle
oci_pconnect -- Устанавливает постоянное соединение с сервером Oracle
oci_result -- Возвращает значение поля из результата запроса
oci_rollback -- Откатывает транзакции, ожидающие обработки
oci_server_version -- Возвращает строку с информацией о версии сервера Oracle
oci_set_prefetch -- Устанавливает количество строк, которые будут автоматически выбраны в буфер
oci_statement_type -- Возвращает тип выражения
ocibindbyname -- Alias of oci_bind_by_name()
ocicancel -- Alias of oci_cancel()
ocicloselob -- Alias of OCI-Lob->close
ocicollappend -- Alias of OCI-Collection->append
ocicollassign -- Alias of OCI-Collection->assign
ocicollassignelem -- Alias of OCI-Collection->assignElem
ocicollgetelem -- Alias of OCI-Collection->getElem
ocicollmax -- Alias of OCI-Collection->max
ocicollsize -- Alias of OCI-Collection->size
ocicolltrim -- Alias of OCI-Collection->trim
ocicolumnisnull -- Alias of oci_field_is_null()
ocicolumnname -- Alias of oci_field_name()
ocicolumnprecision -- Alias of oci_field_precision()
ocicolumnscale -- Alias of oci_field_scale()
ocicolumnsize -- Alias of oci_field_size()
ocicolumntype -- Alias of oci_field_type()
ocicolumntyperaw -- Alias of oci_field_type_raw()
ocicommit -- Alias of oci_commit()
ocidefinebyname -- Alias of oci_define_by_name()
ocierror -- Alias of oci_error()
ociexecute -- Alias of oci_execute()
ocifetch -- Alias of oci_fetch()
ocifetchinto -- Выбирает следующую строку из результата запроса в массив
ocifetchstatement -- Выбирает все строки из результата запроса в массив
ocifreecollection -- Alias of OCI-Collection->free
ocifreecursor -- Alias of oci_free_statement()
ocifreedesc -- Alias of OCI-Lob->free
ocifreestatement -- Alias of oci_free_statement()
ociinternaldebug -- Alias of oci_internal_debug()
ociloadlob -- Alias of OCI-Lob->load
ocilogoff -- Alias of oci_close()
ocilogon -- Alias of oci_connect()
ocinewcollection -- Alias of oci_new_collection()
ocinewcursor -- Alias of oci_new_cursor()
ocinewscriptor -- Alias of oci_new_descriptor()
ocinlogon -- Alias of oci_new_connect()
ocinumcols -- Alias of oci_num_fields()
ociparse -- Alias of oci_parse()
ociplogon -- Alias of oci_pconnect()
ociresult -- Alias of oci_result()
ocirollback -- Alias of oci_rollback()
ocirowcount -- Alias of oci_num_rows()
ocisavelob -- Alias of OCI-Lob->save
ocisavelobfile -- Alias of OCI-Lob->import
ociserverversion -- Alias of oci_server_version()
ocisetprefetch -- Alias of oci_set_prefetch()
ocistatementtype -- Alias of oci_statement_type()
ociwritelobtofile -- Alias of OCI-Lob->export
ociwritetemporarylob -- Alias of OCI-Lob->writeTemporary

Пред. | Начало | След.
overload | Уровень выше | OCI-Collection->append


oci_bind_by_name

(PHP 5)

oci_bind_by_name -- Привязывает переменную PHP к соответствующей метке в SQL-выражении.

Описание

bool oci_bind_by_name ( resource stmt, string ph_name, mixed &variable [, int maxlength [, int type]] )

oci_bind_by_name() привязывает переменную variable к метке ph_name. Будет ли она использоваться для вывода или ввода - выяснится в процессе выполнения и необходимые ресурсы будут выделены по необходимости. Параметр length устанавливает максимальный объем в байтах получаемой переменной. Если параметр length равен -1, то oci_bind_by_name() будет использовать текущую длину variable как максимальную.

Если вы хотите привязать абстрактный тип данных (LOB/ROWID/BFILE), то вам необходимо сначала создать дескриптор с помощью oci_new_descriptor(). Параметр length не используется с абстрактными типами данных и должен быть равен -1. Параметр type говорит Oracle, какой тип дескриптора мы хотим использовать. Возможные значения этого параметра:

  • OCI_B_FILE - для BFILE;

  • OCI_B_CFILE - для CFILE;

  • OCI_B_CLOB - для CLOB;

  • OCI_B_BLOB - для BLOB;

  • OCI_B_ROWID - для ROWID;

  • OCI_B_NTY - для именованных типов данных;

  • OCI_B_CURSOR - для курсоров, созданных ранее с помощью oci_new_cursor().

Пример 1. Пример использования oci_bind_by_name()

<?php
/* oci_bind_by_name example thies at thieso dot net (980221)
  inserts 3 records into emp, and uses the ROWID for updating the
  records just after the insert.
*/

$conn = oci_connect("scott", "tiger");

$stmt = oci_parse($conn, "
                          INSERT INTO
                                     emp (empno, ename)
                   VALUES
                                     (:empno,:ename)
                            RETURNING
                                     ROWID
                                 INTO
                                     :rid
                                         ");

$data = array(
              1111 => "Larry",
              2222 => "Bill",
              3333 => "Jim"
             );

$rowid = oci_new_descriptor($conn, OCI_D_ROWID);

oci_bind_by_name($stmt, ":empno", $empno, 32);
oci_bind_by_name($stmt, ":ename", $ename, 32);
oci_bind_by_name($stmt, ":rid",   $rowid, -1, OCI_B_ROWID);

$update = oci_parse($conn, "
                            UPDATE
                                  emp
                               SET
                                  sal = :sal
                             WHERE
                                  ROWID = :rid
                             ");
oci_bind_by_name($update, ":rid", $rowid, -1, OCI_B_ROWID);
oci_bind_by_name($update, ":sal", $sal,   32);

$sal = 10000;

while (list($empno, $ename) = each($data)) {
    oci_execute($stmt);
    oci_execute($update);
}

$rowid->free();

oci_free_statement($update);
oci_free_statement($stmt);

$stmt = oci_parse($conn, "
                          SELECT
                                *
                            FROM
                                emp
                           WHERE
                                empno
                              IN
                                (1111,2222,3333)
                              ");
oci_execute($stmt);

while ($row = oci_fetch_assoc($stmt)) {
    var_dump($row);
}

oci_free_statement($stmt);

/* delete our "junk" from the emp table.... */
$stmt = oci_parse($conn, "
                          DELETE FROM
                                     emp
                                WHERE
                                     empno
                                   IN
                                     (1111,2222,3333)
                                   ");
oci_execute($stmt);
oci_free_statement($stmt);

oci_close($conn);
?>

Помните о том, что при использовании этой функции, конечные пробелы у строки будут обрезаны. Смотрите следующий пример:

Пример 2. Пример oci_bind_by_name()

<?php
    $connection = oci_connect('apelsin','kanistra');
    $query = "INSERT INTO test_table VALUES(:id, :text)";

    $statement = oci_parse($query);
    oci_bind_by_name($statement, ":id", 1);
    oci_bind_by_name($statement, ":text", "trailing spaces follow     ");
    oci_execute($statement);
    /*
     Этот код добавит в базу только строку 'trailing spaces follow', без
     пробелов в конце строки
    */
?>

Пример 3. Пример oci_bind_by_name()

<?php
    $connection = oci_connect('apelsin','kanistra');
    $query = "INSERT INTO test_table VALUES(:id, 'trailing spaces follow      ')";

    $statement = oci_parse($query);
    oci_bind_by_name($statement, ":id", 1);
    oci_execute($statement);
    /*
     А этот код добавит в базу строку 'trailing spaces follow      ' вместе с
     пробелами в конце строки
    */
?>

Внимание

Использовать magic_quotes_gpc, magic_quotes_runtime или addslashes() вместе с oci_bind_by_name() - это определенно плохая идея, т.к. в этих случаях кавычки будут записаны в базу вместе с данными. oci_bind_by_name() не может отличить "магические кавычки" от тех, что были добавлены намеренно.

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocinewcollection(). В PHP 5.0.0 и выше ocinewcollection() является алиасом oci_new_collection(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
OCI-Lob->writeToFile | Уровень выше | oci_cancel


oci_cancel

(PHP 5)

oci_cancel -- Заканчивает процесс чтения из курсора

Описание

bool oci_cancel ( resource stmt )

Если вы больше не собираетесь использовать курсор для получения данных, то используйте oci_cancel() для освобождения ресурсов, которые ассоциированы с ним.

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocicancel(). В PHP 5.0.0 и выше ocicancel() является алиасом oci_cancel(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
oci_bind_by_name | Уровень выше | oci_close


oci_close

(PHP 5)

oci_close -- Закрывает соединение с сервером Oracle

Описание

bool oci_close ( resource connection )

Закрывает соединение с сервером Oracle.

Использование oci_close() не является необходимым. На данный момент все соединения являются постоянными (persistent) и не будут закрыты при использовании этой функции или после окончания работы скрипта.

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ociclose(). В PHP 5.0.0 и выше ociclose() является алиасом oci_close(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

В версиях PHP < 5.0.0 эту функцию так же не рекомендуется использовать, т.к. задача освобождения ресурсов соединения возложена на сервер Oracle.

Пред. | Начало | След.
oci_cancel | Уровень выше | oci_commit


OCI-Collection->append

(no version information, might be only in CVS)

OCI-Collection->append -- Appends element to the collection

Описание

class OCI-Collection {

bool append ( mixed value )

}

Appends element to the end of the collection. Parameter value can be a string or a number.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список параметров

value

The value to be added to the collection.

Смотрите также

OCI-Collection->assign

Пред. | Начало | След.
Функции для работы с Oracle | Уровень выше | OCI-Collection->assign


OCI-Collection->assign

(no version information, might be only in CVS)

OCI-Collection->assign -- Assigns a value to the collection from another existing collection

Описание

class OCI-Collection {

bool assign ( OCI-Collection from )

}

Assigns a value to the collection from another, previously created collection. Both collections must be created with oci_new_collection() prior to using them.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список параметров

from

An instance of OCI-Collection.

Смотрите также

OCI-Collection->append

Пред. | Начало | След.
OCI-Collection->append | Уровень выше | OCI-Collection->assignElem


OCI-Collection->assignElem

(no version information, might be only in CVS)

OCI-Collection->assignElem -- Assigns a value to the element of the collection

Описание

class OCI-Collection {

bool assignElem ( int index, mixed value )

}

Assigns a value to the element with index index. Parameter value can be a string or a number.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список параметров

index

value

Смотрите также

OCI-Collection->getElem

Пред. | Начало | След.
OCI-Collection->assign | Уровень выше | OCI-Collection->free


OCI-Collection->getElem

(no version information, might be only in CVS)

OCI-Collection->getElem -- Returns value of the element

Описание

class OCI-Collection {

mixed getElem ( int index )

}

Returns element's value with the index index (1-based).

OCI-Collection->getElem() returns FALSE if such element doesn't exist; NULL if element is NULL; string if element is column of a string datatype or number if element is numeric field.

Список параметров

index

Смотрите также

OCI-Collection->assignElem

Пред. | Начало | След.
OCI-Collection->free | Уровень выше | OCI-Collection->max


OCI-Collection->free

(no version information, might be only in CVS)

OCI-Collection->free -- Frees the resources associated with the collection object

Описание

class OCI-Collection {

bool free ( void )

}

Frees the resources associated with the collection object.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

oci_new_collection

Пред. | Начало | След.
OCI-Collection->assignElem | Уровень выше | OCI-Collection->getElem


OCI-Collection->max

(no version information, might be only in CVS)

OCI-Collection->max -- Returns the maximum number of elements in the collection

Описание

class OCI-Collection {

int max ( void )

}

Returns the maximum number of elements in the collection. If the returned value is 0, then the number of elements is not limited. OCI-Collection->max() returns FALSE in case of error.

Смотрите также

OCI-Collection->size

Пред. | Начало | След.
OCI-Collection->getElem | Уровень выше | OCI-Collection->size


OCI-Collection->size

(no version information, might be only in CVS)

OCI-Collection->size -- Returns size of the collection

Описание

class OCI-Collection {

int size ( void )

}

Returns the number of elements in the collection or FALSE on error.

Смотрите также

OCI-Collection->max

Пред. | Начало | След.
OCI-Collection->max | Уровень выше | OCI-Collection->trim


OCI-Collection->trim

(no version information, might be only in CVS)

OCI-Collection->trim -- Trims elements from the end of the collection

Описание

class OCI-Collection {

bool trim ( int num )

}

Trims num of elements from the end of the collection.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список параметров

num

Смотрите также

OCI-Collection->size

Пред. | Начало | След.
OCI-Collection->size | Уровень выше | OCI-Lob->append


oci_commit

(PHP 5)

oci_commit -- Завершает и подтверждает транзакцию

Описание

bool oci_commit ( resource connection )

oci_commit() завершает и подтверждает транзакцию, вводя в действие все ожидающие SQL-выражения для соединения connection.

Пример 1. Пример использования oci_commit()

<?php
    // Login to Oracle server
    $conn = oci_connect('scott', 'tiger');

    // Parse SQL
    $stmt = oci_parse($conn, "
                              INSERT INTO
                                         employees (name, surname)
                                   VALUES
                                         ('Maxim', 'Maletsky')
                             ");

    /* Execute statement
       OCI_DEFAULT tells oci_execute()
       not to commit statement immediately */
    oci_execute($stmt, OCI_DEFAULT);

    /*
    ....
    Parsing and executing other statements here ...
    ....
    */

    // Commit transaction
    $committed = oci_commit($conn);

    // Test whether commit was successful. If error occurred, return error message
    if (!$committed) {
        $error = oci_error($conn);
        echo 'Commit failed. Oracle reports: ' . $error['message'];
    }

?>

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocicommit(). В PHP 5.0.0 и выше ocicommit() является алиасом oci_commit(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

См. также oci_rollback() и oci_execute().

Пред. | Начало | След.
oci_close | Уровень выше | oci_connect


oci_connect

(PHP 5)

oci_connect -- Устанавливает соединение с сервером Oracle

Описание

resource oci_connect ( string username, string password [, string db [, string charset]] )

oci_connect() возвращает идентификатор соединения, который используется большинством функций данного модуля. Необязательный третий параметр может содержать имя локального экземпляра Oracle или имя одной из записей в файле tnsnames.ora. Если третий параметр не указан, PHP использует переменные окружения ORACLE_SID и TWO_TASK, которые используются для определения имени локального экземпляра Oracle и местонахождения файла tnsnames.ora соответственно.

Замечание: oci_connect() не устанавливает соединение повторно, если соединение с такими параметрами (логин, пароль, имя сервера) уже было установлено. Вместо этого, oci_connect() вернет идентификатор уже открытого соединения. Это означает, что вам не следует использовать oci_connect() для разделения нескольких транзакций. Если вы уверены, что хотите установить соединение с теми же параметрами заново, то вам следует использовать oci_new_connect().

Если вы используете сервер Oracle версии 9.2 и выше, то вы можете указать кодировку, которая будет использована в новом соединении. Кодировка указывается в параметре charset. Если же вы используете версии сервера Oracle младше 9.2, то этот параметр будет проигнорирован, а вместо него будет использована переменная окружения NLS_LANG.

Пример 1. Пример использования oci_connect()

<?php
echo "<pre>";
$db = "";

$c1 = oci_connect("scott", "tiger", $db);
$c2 = oci_connect("scott", "tiger", $db);

function create_table($conn)
{
  $stmt = oci_parse($conn, "create table scott.hallo (test varchar2(64))");
  oci_execute($stmt);
  echo $conn . " created table\n\n";
}

function drop_table($conn)
{
  $stmt = oci_parse($conn, "drop table scott.hallo");
  oci_execute($stmt);
  echo $conn . " dropped table\n\n";
}

function insert_data($conn)
{
  $stmt = oci_parse($conn, "insert into scott.hallo
            values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " inserted hallo\n\n";
}

function delete_data($conn)
{
  $stmt = oci_parse($conn, "delete from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " deleted hallo\n\n";
}

function commit($conn)
{
  oci_commit($conn);
  echo $conn . " committed\n\n";
}

function rollback($conn)
{
  oci_rollback($conn);
  echo $conn . " rollback\n\n";
}

function select_data($conn)
{
  $stmt = oci_parse($conn, "select * from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn."----selecting\n\n";
  while (oci_fetch($stmt)) {
    echo $conn . " [" . oci_result($stmt, "TEST") . "]\n\n";
  }
  echo $conn . "----done\n\n";
}

create_table($c1);
insert_data($c1);   // Insert a row using c1
insert_data($c2);   // Insert a row using c2

select_data($c1);   // Results of both inserts are returned
select_data($c2);

rollback($c1);      // Rollback using c1

select_data($c1);   // Both inserts have been rolled back
select_data($c2);

insert_data($c2);   // Insert a row using c2
commit($c2);        // Commit using c2

select_data($c1);   // Result of c2 insert is returned

delete_data($c1);   // Delete all rows in table using c1
select_data($c1);   // No rows returned
select_data($c2);   // No rows returned
commit($c1);        // Commit using c1

select_data($c1);   // No rows returned
select_data($c2);   // No rows returned

drop_table($c1);
echo "</pre>";
?>

В случае ошибки oci_connect() возвращает FALSE.

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocilogon(). В PHP 5.0.0 и выше ocilogon() является алиасом oci_connect(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

См. также oci_pconnect() и oci_new_connect().

Пред. | Начало | След.
oci_commit | Уровень выше | oci_define_by_name


oci_define_by_name

(PHP 5)

oci_define_by_name -- Определяет переменную PHP, в которую будет возвращено соответствующее поле из результата

Описание

bool oci_define_by_name ( resource stmt, string column_name, mixed &variable [, int type] )

oci_define_by_name() назначает переменную PHP, которая будет использована, как получатель результата выполнения выборки.

Замечание: Не забывайте о том, что Oracle всегда возвращает имена полей в ВЕРХНЕМ регистре (если, конечно, вы не используете синтаксис 'SELECT field_name "field_name" FROM table_name'). Поэтому oci_define_by_name() обычно ожидает параметр column_name в верхнем регистр. Заметьте, что эта функция не возвратит ошибку, если соответствующее поле будет отсутствовать в результате выборки.

Если вам нужно назначить переменную абстрактного дипа данных (LOB/ROWID/BFILE), то ее необходимо сначала создать с помощью oci_new_descriptor(). См. также oci_bind_by_name().

Пример 1. Пример использования oci_define_by_name()

<?php
/* oci_define_by_name example - thies at thieso dot net (980219) */

$conn = oci_connect("scott", "tiger");

$stmt = oci_parse($conn, "SELECT empno, ename FROM emp");

/* the define MUST be done BEFORE ociexecute! */

oci_define_by_name($stmt, "EMPNO", $empno);
oci_define_by_name($stmt, "ENAME", $ename);

oci_execute($stmt);

while (oci_fetch($stmt)) {
    echo "empno:" . $empno . "\n";
    echo "ename:" . $ename . "\n";
}

oci_free_statement($stmt);
oci_close($conn);
?>

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocidefinebyname(). В PHP 5.0.0 и выше ocidefinebyname() является алиасом oci_define_by_name(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Пред. | Начало | След.
oci_connect | Уровень выше | oci_error


oci_error

(PHP 5)

oci_error -- Возвращает последнюю ошибку

Описание

array oci_error ( [resource source] )

Для большинства ошибок параметром source является соответствующий идентификатор соединения или выражения. Для ошибок во время выполнения функций oci_connect(), oci_new_connect() и oci_pconnect() этот параметр указывать не следует. oci_error() возвращает последнюю ошибку, которая была обнаружена в указанном ресурсе. В случае, если ошибок не было найдено, oci_error() возвращает FALSE.

oci_error() возвращает ошибку в виде ассоциативного массива из четырех элементов. Элемент code содержит код ошибки Oracle; элемент message - строку с текстом ошибки; sqltext - строка, содержащая выражение SQL, которое вызвало ошибку, а элемент offset - указатель на место в выражении, которое вызвало ошибку.

Замечание: Элементы массива offset и sqltext были добавлены начиная с версии PHP 4.3.

Пример 1. Вывод сообщения при ошибке соединения

$conn = @oci_connect("scott", "tiger", "mydb");
if (!$conn) {
  $e = oci_error();   // For oci_connect errors pass no handle
  echo htmlentities($e['message']);
}

Пример 2. Вывод сообщения при ошибке парсинга выражения

$stmt = @oci_parse($conn, "select ' from dual");  // note mismatched quote
if (!$stmt) {
  $e = oci_parse($conn);  // For oci_parse errors pass the connection handle
  echo htmlentities($e['message']);
}

Пример 3. Вывод сообщения об ошибке и SQL-выражения, в котором она возникла

$r = oci_execute($stmt);
if (!$r) {
  $e = oci_error($stmt); // For oci_execute errors pass the statementhandle
  echo htmlentities($e['message']);
  echo "<pre>";
  echo htmlentities($e['sqltext']);
  printf("\n%".($e['offset']+1)."s", "^");
  echo "</pre>";
}

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocierror(). В PHP 5.0.0 и выше ocierror() является алиасом oci_error(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Пред. | Начало | След.
oci_define_by_name | Уровень выше | oci_execute


oci_execute

(PHP 5)

oci_execute -- Выполняет выражение SQL

Описание

bool oci_execute ( resource stmt [, int mode] )

oci_execute() выполняет предварительно подготовленное к выполнению выражение SQL (см. oci_parse()). Необязательный третий параметр mode позволяет вам указывать режим выполнения (по умолчанию он равен OCI_COMMIT_ON_SUCCESS). Если вы не хотите, чтобы после выполнения выражения автоматически выполнялся оператор COMMIT, завершающий транзакцию, то вам необходимо указать OCI_DEFAULT, как значение параметра mode.

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ociexecute(). В PHP 5.0.0 и выше ociexecute() является алиасом oci_execute(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
oci_error | Уровень выше | oci_fetch_all


oci_fetch_all

(PHP 5)

oci_fetch_all -- Выбирает все строки из результата запроса в массив

Описание

int oci_fetch_all ( resource statement, array &output [, int skip [, int maxrows [, int flags]]] )

oci_fetch_all() выбирает все строки из результата запроса в указанный пользователем массив. oci_fetch_all() возвращает количество выбранных строк или FALSE в случае ошибки. Параметр skip указывает количество строк с начала резульата, которые следует пропустить (по умолчанию этот параметр равен 0, т.е. обработка начинается с самого начала). Параметр maxrows - это количество строк, которое требуется прочесть, начиная со строки, указанной в параметре\ skip (по умолчанию равно -1, т.е. все строки).

Аргумент flags может быть комбинацией следующих флагов:

OCI_FETCHSTATEMENT_BY_ROW
OCI_FETCHSTATEMENT_BY_COLUMN (значение по умолчанию)
OCI_NUM
OCI_ASSOC

Пример 1. Пример использования oci_fetch_all()

<?php
/* oci_fetch_all example mbritton at verinet dot com (990624) */

$conn = oci_connect("scott", "tiger");

$stmt = oci_parse($conn, "select * from emp");

oci_execute($stmt);

$nrows = oci_fetch_all($stmt, $results);
if ($nrows > 0) {
   echo "<table border=\"1\">\n";
   echo "<tr>\n";
   while (list($key, $val) = each($results)) {
      echo "<th>$key</th>\n";
   }
   echo "</tr>\n";

   for ($i = 0; $i < $nrows; $i++) {
      reset($results);
      echo "<tr>\n";
      while ($column = each($results)) {
         $data = $column['value'];
         echo "<td>$data[$i]</td>\n";
      }
      echo "</tr>\n";
   }
   echo "</table>\n";
} else {
   echo "No data found<br />\n";
}
echo "$nrows Records Selected<br />\n";

oci_free_statement($stmt);
oci_close($conn);
?>

oci_fetch_all() возвращает FALSE в случае ошибки.

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocifetchstatement(). В PHP 5.0.0 и выше ocifetchstatement() является алиасом oci_fetch_all(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Пред. | Начало | След.
oci_execute | Уровень выше | oci_fetch_array


oci_fetch_array

(PHP 5)

oci_fetch_array -- Возвращает следующую строку из результата запроса в виде ассоциативного массива, числового массива или оба сразу

Описание

array oci_fetch_array ( resource statement [, int mode] )

Возвращает массив, который соответствует строке из результата запроса или FALSE, если строк в результате больше не осталось.

По умолчанию, oci_fetch_array() возвращает массив с ассоциативными и числовыми индексами.

Необязательный второй параметр может принимать значение одной или суммы из нескольких констант. Вы можете использовать следующие константы:

OCI_BOTH - возвращать массив с ассоциативными и числовыми индексами (то же, что и OCI_ASSOC + OCI_NUM), это значение используется по умолчанию.
OCI_ASSOC - возвращать массив с ассоциативными индексами (именно так работает oci_fetch_assoc()).
OCI_NUM - возвращать массив с числовыми индексами, начинающимися с нуля (именно так работает oci_fetch_row()).
OCI_RETURN_NULLS - создавать пустые элементы для полей со значением NULL.
OCI_RETURN_LOBS - возвращать значение поля LOB вместо дескриптора.

Значение по умолчанию для mode равно OCI_BOTH + OCI_RETURN_NULLS.

Нужно также упомянуть тот факт, что oci_fetch_array() незначительно медленней, чем oci_fetch_row(), но предоставляет более гибкий интерфейс.

Замечание: Вам не следует забывать о том, что Oracle возвращает имена полей в ВЕРХНЕМ регистре, поэтому индексы ассоциативного массива будут также в ВЕРХНЕМ регистре.

Пример 1. Пример использования oci_fetch_array() с флагом OCI_BOTH

<?php
$connection = oci_connect("apelsin", "kanistra");

$query = "SELECT id, name FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while ($row = oci_fetch_array ($statement, OCI_BOTH)) {
    echo $row[0]." and ".$row['ID']." is the same<br>";
    echo $row[1]." and ".$row['NAME']." is the same<br>";
}
?>

Пример 2. Пример использования oci_fetch_array() с флагом OCI_NUM

<?php
$connection = oci_connect("user", "password");

$query = "SELECT id, name, lob_field FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while ($row = oci_fetch_array ($statement, OCI_NUM)) {
    echo $row[0]."<br>";
    echo $row[1]."<br>";
    echo $row[2]->read(100)."<br>";  //this will output first 100 bytes from LOB
}
?>

Пример 3. Пример использования oci_fetch_array() с флагом OCI_ASSOC

<?php
$connection = oci_connect("user", "password");

$query = "SELECT id, name, lob_field FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while ($row = oci_fetch_array ($statement, OCI_NUM)) {
    echo $row['ID']."<br>";
    echo $row['NAME']."<br>";
    echo $row['LOB_FIELD']."<br>";  //this will output "Object id #1"
}
?>

Пример 4. Пример использования oci_fetch_array() с флагом OCI_RETURN_LOBS

<?php
$connection = oci_connect("user", "password");

$query = "SELECT id, name, lob_field FROM fruits";

$statement = oci_parse ($connection, $query);
oci_execute ($statement);

while ($row = oci_fetch_array ($statement, OCI_NUM)) {
    echo $row[0]."<br>";
    echo $row[1]."<br>";
    echo $row['LOB_FIELD']."<br>";  //this will output LOB's content
}
?>

См. также oci_fetch_assoc(),
oci_fetch_object(),
oci_fetch_row() и
oci_fetch_all().

Пред. | Начало | След.
oci_fetch_all | Уровень выше | oci_fetch_assoc


oci_fetch_assoc

(PHP 5)

oci_fetch_assoc -- Возвращает следующую строку из результата запроса в виде ассоциативного массива

Описание

array oci_fetch_assoc ( resource statement )

oci_fetch_assoc() возвращает следующую строку из результата выполнения запроса в виде ассоциативного массива, что аналогично вызову oci_fetch_array() с флагом OCI_ASSOC.

Следующий вызов oci_fetch_assoc() вернет следующую строку из результата или FALSE, если больше нет строк.

Замечание: Вам не следует забывать о том, что Oracle возвращает имена полей в ВЕРХНЕМ регистре, поэтому индексы ассоциативного массива будут также в ВЕРХНЕМ регистре.

См. также oci_fetch_array(),
oci_fetch_object(),
oci_fetch_row() и
oci_fetch_all().

Пред. | Начало | След.
oci_fetch_array | Уровень выше | oci_fetch_object


oci_fetch_object

(PHP 5)

oci_fetch_object -- Возвращает следующую строку из результата запроса в виде объекта

Описание

object oci_fetch_object ( resource statement )

oci_fetch_object() возвращает следующую строку из результата выполнения запроса в виде объекта, имена свойств которого соответствуют именам полей в результате.

Следующий вызов oci_fetch_object() вернет следующую строку из результата или FALSE, если больше нет строк.

Замечание: Вам не следует забывать о том, что Oracle возвращает имена полей в ВЕРХНЕМ регистре, поэтому имена атрибутов объекта будут также в ВЕРХНЕМ регистре.

См. также oci_fetch_array(),
oci_fetch_assoc(),
oci_fetch_row() и
oci_fetch_all().

Пред. | Начало | След.
oci_fetch_assoc | Уровень выше | oci_fetch_row


oci_fetch_row

(PHP 5)

oci_fetch_row -- Возвращает следующую строку из результата запроса в виде массива с числовыми индексами

Описание

array oci_fetch_row ( resource statement )

Вызов oci_fetch_row() аналогичен вызову oci_fetch_array() с флагом OCI_NUM. Она возвращает следующую строку из результата запроса в виде массива с числовыми индексами.

Последующий вызов oci_fetch_row() вернет следующий ряд из результата или FALSE, если в нем больше нет рядов.

См. также oci_fetch_array(),
oci_fetch_object(),
oci_fetch_assoc() и
oci_fetch_all().

Пред. | Начало | След.
oci_fetch_object | Уровень выше | oci_fetch


oci_fetch

(PHP 5)

oci_fetch -- Выбирает следующую строку из результата в буфер

Описание

bool oci_fetch ( resource stmt )

oci_fetch() выбирает следующую строку из результата запроса во внутренний буфер.

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocifetch(). В PHP 5.0.0 и выше ocifetch() является алиасом oci_fetch(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
oci_fetch_row | Уровень выше | oci_field_is_null


oci_field_is_null

(PHP 5)

oci_field_is_null -- Проверяет, равняется ли поле NULL

Описание

bool oci_field_is_null ( resource stmt, mixed field )

oci_field_is_null() возвращает TRUE, если поле field из результата выражения stmt равняется NULL. В качестве параметра field может быть использовано имя поля (в верхнем регистре) или его порядковый номер в результате запроса (нумерация начинается с 1).

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocicolumnisnull(). В PHP 5.0.0 и выше ocicolumnisnull() является алиасом oci_field_is_null(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Пред. | Начало | След.
oci_fetch | Уровень выше | oci_field_name


oci_field_name

(PHP 5)

oci_field_name -- Возвращает имя поля из результата запроса

Описание

string oci_field_name ( resource stmt, int field )

oci_field_name() возвращает имя поля из результата запроса. Параметр field указывает номер поля в результате запроса (нумерация начинается с 1).

Пример 1. Пример использования oci_field_name()

<?php
    $conn = oci_connect("scott", "tiger");
    $stmt = oci_parse($conn, "SELECT * FROM emp");
    oci_execute($stmt);

    echo "<table border=\"1\">";
    echo "<tr>";
    echo "<th>Name</th>";
    echo "<th>Type</th>";
    echo "<th>Length</th>";
    echo "</tr>";

    $ncols = oci_num_fields($stmt);

    for ($i = 1; $i <= $ncols; $i++) {
        $column_name  = oci_field_name($stmt, $i);
        $column_type  = oci_field_type($stmt, $i);
        $column_size  = oci_field_size($stmt, $i);

        echo "<tr>";
        echo "<td>$column_name</td>";
        echo "<td>$column_type</td>";
        echo "<td>$column_size</td>";
        echo "</tr>";
    }

    echo "</table>\n";
    oci_free_statement($stmt);
    oci_close($conn);
?>

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocicolumnname(). В PHP 5.0.0 и выше ocicolumnname() является алиасом oci_field_name(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

См. также oci_num_fields(),
oci_field_type(),
и oci_field_size().

Пред. | Начало | След.
oci_field_is_null | Уровень выше | oci_field_precision


oci_field_precision

(PHP 5)

oci_field_precision -- Возвращает точность поля

Описание

int oci_field_precision ( resource stmt, int field )

Возвращает точность поля под номером field в результате запроса. Нумерация начинается с 1.

Для полей типа FLOAT точность больше нуля, а масштаб, получаемый с помощью oci_field_scale(), равен -127. Если точность поля равна нулю, то тип поля - NUMBER. Иначе же, тип поля может быть описан как NUMBER(precision, scale).

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocicolumnprecision(). В PHP 5.0.0 и выше ocicolumnprecision() является алиасом oci_field_scale(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

См. также oci_field_scale() и oci_field_type().

Пред. | Начало | След.
oci_field_name | Уровень выше | oci_field_scale


oci_field_scale

(PHP 5)

oci_field_scale -- Возвращает масштаб поля

Описание

int oci_field_scale ( resource stmt, int field )

Возвращает масштаб поля под номером field из результата запроса (нумерация начинается с 1) или FALSE, если поля с таким индексом не найдено.

Для полей типа FLOAT точность, получаемая с помощью oci_field_precision(), больше нуля, а масштаб равен -127. Если точность поля равна нулю, то тип поля - NUMBER. Иначе же, тип поля может быть описан как NUMBER(precision, scale).

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocicolumnscale(). В PHP 5.0.0 и выше ocicolumnscale() является алиасом oci_field_scale(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

См. также oci_field_precision() и oci_field_type().

Пред. | Начало | След.
oci_field_precision | Уровень выше | oci_field_size


oci_field_size

(PHP 5)

oci_field_size -- Возвращает размер поля

Описание

int oci_field_size ( resource stmt, mixed field )

oci_field_size() возвращает размер поля в байтах. В качестве параметра field может быть использовано имя поля или его номер (нумерация начинается с 1).

Пример 1. Пример использования oci_field_size()

<?php
    $conn = oci_connect("scott", "tiger");
    $stmt = oci_parse($conn, "SELECT * FROM emp");
    oci_execute($stmt);

    echo "<table border=\"1\">";
    echo "<tr>";
    echo "<th>Name</th>";
    echo "<th>Type</th>";
    echo "<th>Length</th>";
    echo "</tr>";

    $ncols = oci_num_fields($stmt);

    for ($i = 1; $i <= $ncols; $i++) {
        $column_name  = oci_field_name($stmt, $i);
        $column_type  = oci_field_type($stmt, $i);
        $column_size  = oci_field_size($stmt, $i);
        echo "<tr>";
        echo "<td>$column_name</td>";
        echo "<td>$column_type</td>";
        echo "<td>$column_size</td>";
        echo "</tr>";
    }

    echo "</table>";

    oci_free_statement($stmt);
    oci_close($conn);
?>

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocicolumnsize(). В PHP 5.0.0 и выше ocicolumnsize() является алиасом oci_field_size(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

См. также oci_num_fields() и oci_field_name().

Пред. | Начало | След.
oci_field_scale | Уровень выше | oci_field_type_raw


oci_field_type_raw

(PHP 5)

oci_field_type_raw -- Возвращает тип исходный тип поля

Описание

int oci_field_type_raw ( resource stmt, int field )

oci_field_type_raw() возвращает тип поля из результата запроса в виде числа, которое соответствует внутреннему типу Oracle.

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocicolumntyperaw(). В PHP 5.0.0 и выше ocicolumntyperaw() является алиасом oci_field_type_raw(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Вероятнее всего, вам больше подойдет функция oci_field_type() для получения типа поля. См. oci_field_type() за дополнительной информацией.

Пред. | Начало | След.
oci_field_size | Уровень выше | oci_field_type


oci_field_type

(PHP 5)

oci_field_type -- Возвращает тип поля

Описание

mixed oci_field_type ( resource stmt, int field )

oci_field_type() возвращает название типа поля в результате выборки. Аргумент field указывает номер поля, нумерация начинается с единицы.

Пример 1. Пример использования oci_field_type()

<?php
    $conn = oci_connect("scott", "tiger");
    $stmt = oci_parse($conn, "SELECT * FROM emp");
    oci_execute($stmt);

    echo "<table border=\"1\">";
    echo "<tr>";
    echo "<th>Name</th>";
    echo "<th>Type</th>";
    echo "<th>Length</th>";
    echo "</tr>";

    $ncols = oci_num_fields($stmt);

    for ($i = 1; $i <= $ncols; $i++) {
        $column_name  = oci_field_name($stmt, $i);
        $column_type  = oci_field_type($stmt, $i);
        $column_size  = oci_field_size($stmt, $i);

        echo "<tr>";
        echo "<td>$column_name</td>";
        echo "<td>$column_type</td>";
        echo "<td>$column_size</td>";
        echo "</tr>";
    }

    echo "</table>\n";

    oci_free_statement($stmt);
    oci_close($conn);
?>

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocicolumntype(). В PHP 5.0.0 и выше ocicolumntype() является алиасом oci_field_type(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

См. также oci_num_fields(),
oci_field_name(),
и oci_field_size().

Пред. | Начало | След.
oci_field_type_raw | Уровень выше | oci_free_statement


oci_free_statement

(PHP 5)

oci_free_statement -- Освобождает ресурсы, занимаемые курсором или SQL-выражением

Описание

bool oci_free_statement ( resource stmt )

oci_free_statementr() освобождает все ресурсы, занимаемые курсором или SQL-выражением, которое было получено с помощью функции oci_parse().

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
oci_field_type | Уровень выше | oci_internal_debug


oci_internal_debug

(PHP 5)

oci_internal_debug -- Включает и выключает внутреннюю отладку

Описание

void oci_internal_debug ( int onoff )

oci_internal_debug() включает внутреннюю отладку модуля OCI8. Укажите значение параметра onoff равное нулю, чтобы выключить отладку и равное единице, чтобы включить её.

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ociinternaldebug(). В PHP 5.0.0 и выше ociinternaldebug() является алиасом oci_internal_debug(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Пред. | Начало | След.
oci_free_statement | Уровень выше | oci_lob_copy


OCI-Lob->append

(no version information, might be only in CVS)

OCI-Lob->append -- Appends data from the large object to another large object

Описание

class OCI-Lob {

bool append ( OCI-Lob lob_from )

}

Appends data from the large object to the end of another large object.

Writing to the large object with OCI-Lob->append() will fail if buffering was previously enabled. You must disable buffering before appending. You may need to flush buffers with OCI-Lob->flush before disabling buffering.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список параметров

lob_from

Смотрите также

OCI-Lob->flush
OCI-Lob->setBuffering
OCI-Lob->getBuffering

Пред. | Начало | След.
OCI-Collection->trim | Уровень выше | OCI-Lob->close


OCI-Lob->close

(no version information, might be only in CVS)

OCI-Lob->close -- Closes LOB descriptor

Описание

class OCI-Lob {

bool close ( void )

}

OCI-Lob->close() closes descriptor of LOB or FILE. This function should be used only with OCI-Lob->writeTemporary.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

OCI-Lob->writeTemporary

Пред. | Начало | След.
OCI-Lob->append | Уровень выше | OCI-Lob->eof


oci_lob_copy

(PHP 5)

oci_lob_copy -- Копирует содержание или часть содержания одного объекта LOB в другой

Описание

bool oci_lob_copy ( [int length] )

Копирует содержание или часть содержания объекта LOB в другой объект LOB. Параметр length указывает длину данных, которые следует скопировать.

Если вам необходимо скопировать определенную часть объекта, то для этого можно использовать oci_lob_seek(), чтобы передвинуть внутренние указатели объектов на нужные позиции.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
oci_internal_debug | Уровень выше | oci_lob_is_equal


OCI-Lob->eof

(no version information, might be only in CVS)

OCI-Lob->eof -- Tests for end-of-file on a large object's descriptor

Описание

class OCI-Lob {

bool eof ( void )

}

Returns TRUE if internal pointer of large object is at the end of LOB. Otherwise returns FALSE.

Смотрите также

OCI-Lob->size

Пред. | Начало | След.
OCI-Lob->close | Уровень выше | OCI-Lob->erase


OCI-Lob->erase

(no version information, might be only in CVS)

OCI-Lob->erase -- Erases a specified portion of the internal LOB data

Описание

class OCI-Lob {

int erase ( [int offset [, int length]] )

}

Erases a specified portion of the internal LOB data starting at a specified offset. Parameters length and offset are optional. OCI-Lob->erase() erases all LOB data by default.

For BLOBs, erasing means that the existing LOB value is overwritten with zero-bytes. For CLOBs, the existing LOB value is overwritten with spaces.

OCI-Lob->erase() returns the actual number of characters/bytes erased or FALSE in case of error.

Список параметров

offset

length

Смотрите также

OCI-Lob->truncate

Пред. | Начало | След.
OCI-Lob->eof | Уровень выше | OCI-Lob->export


OCI-Lob->export

(no version information, might be only in CVS)

OCI-Lob->export -- Exports LOB's contents to a file

Описание

class OCI-Lob {

bool export ( string filename [, int start [, int length]] )

}

Exports LOB contents to a file. The file name is given in the parameter filename. The optional parameter start indicates from where to start exporting and the parameter length - indicates the length of data to be exported.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список параметров

filename

start

length

Смотрите также

OCI-Lob->import

Пред. | Начало | След.
OCI-Lob->erase | Уровень выше | OCI-Lob->flush


OCI-Lob->flush

(no version information, might be only in CVS)

OCI-Lob->flush -- Flushes/writes buffer of the LOB to the server

Описание

class OCI-Lob {

bool flush ( [int flag] )

}

OCI-Lob->flush() actually writes data to the server. By default, resources are not freed, but using flag OCI_LOB_BUFFER_FREE you can do it explicitly. Be sure you know what you're doing - next read/write operation to the same part of LOB will involve a round-trip to the server and initialize new buffer resources. It is recommended to use OCI_LOB_BUFFER_FREE flag only when you are not going to work with the LOB anymore.

OCI-Lob->flush() returns FALSE if buffering was not enabled or an error occurred.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список параметров

flag

Смотрите также

OCI-Lob->getBuffering
OCI-Lob->setBuffering

Пред. | Начало | След.
OCI-Lob->export | Уровень выше | OCI-Lob->free


OCI-Lob->import

(no version information, might be only in CVS)

OCI-Lob->import -- Imports file data to the LOB

Описание

class OCI-Lob {

bool import ( string filename )

}

Writes data from the filename in to the current position of large object.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список параметров

filename

Смотрите также

OCI-Lob->export
OCI-Lob->write

Пред. | Начало | След.
OCI-Lob->getBuffering | Уровень выше | OCI-Lob->load


oci_lob_is_equal

(PHP 5)

oci_lob_is_equal -- Сравнивает два объекта LOB

Описание

bool oci_lob_is_equal ( object lob1, object lob2 )

Сравнивает два объекта LOB. Возвращает TRUE, если объекты идентичны, и FALSE в обратном случае или в случае ошибки.

Пред. | Начало | След.
oci_lob_copy | Уровень выше | oci_new_collection


OCI-Lob->load

(no version information, might be only in CVS)

OCI-Lob->load -- Returns large object's contents

Описание

class OCI-Lob {

string load ( void )

}

Returns large object's contents. As script execution is terminated when the memory_limit is reached, ensure that the LOB does not exceed this limit. In most cases it's recommended to use OCI-Lob->read instead. In case of error OCI-Lob->load() returns FALSE.

Смотрите также

OCI-Lob->read

Пред. | Начало | След.
OCI-Lob->import | Уровень выше | OCI-Lob->read


OCI-Lob->read

(no version information, might be only in CVS)

OCI-Lob->read -- Reads part of the large object

Описание

class OCI-Lob {

string read ( int length )

}

Reads length bytes from the current position of LOB's internal pointer. Reading stops when length bytes have been read or end of the large object is reached. Internal pointer of the large object will be shifted on the amount of bytes read.

Returns FALSE in case of error.

Список параметров

length

Смотрите также

OCI-Lob->load
OCI-Lob->write

Пред. | Начало | След.
OCI-Lob->load | Уровень выше | OCI-Lob->rewind


OCI-Lob->rewind

(no version information, might be only in CVS)

OCI-Lob->rewind -- Moves the internal pointer to the beginning of the large object

Описание

class OCI-Lob {

bool rewind ( void )

}

Sets the internal pointer to the beginning of the large object.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

OCI-Lob->seek
OCI-Lob->tell

Пред. | Начало | След.
OCI-Lob->read | Уровень выше | OCI-Lob->save


OCI-Lob->save

(no version information, might be only in CVS)

OCI-Lob->save -- Saves data to the large object

Описание

class OCI-Lob {

bool save ( string data [, int offset] )

}

Saves data to the large object. Parameter offset can be used to indicate offset from the beginning of the large object.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список параметров

data

offset

Смотрите также

OCI-Lob->write
OCI-Lob->import

Пред. | Начало | След.
OCI-Lob->rewind | Уровень выше | OCI-Lob->saveFile


OCI-Lob->seek

(no version information, might be only in CVS)

OCI-Lob->seek -- Sets the internal pointer of the large object

Описание

class OCI-Lob {

bool seek ( int offset [, int whence] )

}

Sets the internal pointer of the large object. Parameter offset indicates the amount of bytes, on which internal pointer should be moved from the position, pointed by whence:

OCI_SEEK_SET - sets the position equal to offset
OCI_SEEK_CUR - adds offset bytes to the current position
OCI_SEEK_END - adds offset bytes to the end of large object (use negative value to move to a position before the end of large object)

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список параметров

offset

whence

Смотрите также

OCI-Lob->rewind
OCI-Lob->tell
OCI-Lob->eof

Пред. | Начало | След.
OCI-Lob->saveFile | Уровень выше | OCI-Lob->setBuffering


OCI-Lob->size

(no version information, might be only in CVS)

OCI-Lob->size -- Returns size of large object

Описание

class OCI-Lob {

int size ( void )

}

Returns length of large object value or FALSE in case of error. Empty objects have zero length.

Пред. | Начало | След.
OCI-Lob->setBuffering | Уровень выше | OCI-Lob->tell


OCI-Lob->tell

(no version information, might be only in CVS)

OCI-Lob->tell -- Returns current position of internal pointer of large object

Описание

class OCI-Lob {

int tell ( void )

}

Returns current position of a LOB's internal pointer or FALSE if an error occurred.

Смотрите также

OCI-Lob->rewind
OCI-Lob->size
OCI-Lob->eof

Пред. | Начало | След.
OCI-Lob->size | Уровень выше | OCI-Lob->truncate


OCI-Lob->truncate

(no version information, might be only in CVS)

OCI-Lob->truncate -- Truncates large object

Описание

class OCI-Lob {

bool truncate ( [int length] )

}

If parameter length is given, OCI-Lob->truncate() truncates large object to length bytes. Otherwise, OCI-Lob->truncate() will purge the LOB completely.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список параметров

length

Смотрите также

OCI-Lob->erase

Пред. | Начало | След.
OCI-Lob->tell | Уровень выше | OCI-Lob->write


OCI-Lob->write

(no version information, might be only in CVS)

OCI-Lob->write -- Writes data to the large object

Описание

class OCI-Lob {

int write ( string data [, int length] )

}

Writes data from the parameter data into the current position of LOB's internal pointer. If the parameter length is given, writing will stop after length bytes have been written or the end of data is reached, whichever comes first.

OCI-Lob->write() returns the number of bytes written or FALSE in case of error.

Список параметров

data

length

Смотрите также

OCI-Lob->read

Пред. | Начало | След.
OCI-Lob->truncate | Уровень выше | OCI-Lob->writeTemporary


oci_new_collection

(PHP 5)

oci_new_collection -- Создает новый объект коллекции

Описание

object oci_new_collection ( resource connection, string tdo [, string schema] )

Создает новый объект коллекции. Параметр tdo указывает на ранее созданный именованный тип данных. Имя типа указывается в верхнем регистре. Третий, необязательный параметр schema указывает схему, в которой был ранее создан соответствующий именованный тип.

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocinewcollection(). В PHP 5.0.0 и выше ocinewcollection() является алиасом oci_new_collection(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Пред. | Начало | След.
oci_lob_is_equal | Уровень выше | oci_new_connect


oci_new_connect

(PHP 5)

oci_new_connect -- Устанавливает новое соединение с сервером Oracle

Описание

resource oci_new_connect ( string username, string password [, string db [, string charset]] )

oci_new_connect() создает новое соединение с сервером Oracle. Необязательный третий параметр может содержать имя локального экземпляра Oracle или имя сервера, указанного в tnsnames.ora. Если параметр db не указан, PHP будет использовать переменные ORACLE_SID и TWO_TASK для определения имени локального экземпляра Oracle и местонахождения файла tnsnames.ora соответственно.

Если вы используете сервер Oracle версии 9.2 и выше, то вы можете указать кодировку, которая будет использована в новом соединении. Кодировка указывается в параметре charset. Если же вы используете версии сервера Oracle младше 9.2, то этот параметр будет проигнорирован, а вместо него будет использована переменная окружения NLS_LANG.

oci_new_connect() принудительно создает новое соединение. Это может быть использовано в том случае, если вы хотите изолировать набор транзакций. По умолчанию, новое соединение не создается в том случае, если соединение с такими параметрами уже было создано, поэтому oci_connect() и oci_pconnect() вернут идентификатор уже существующего соединения. Но oci_new_connect(), в отличие от них, всегда создает новое соединение.

Этот пример демонстрирует разделение соединений.

Пример 1. Пример использования ocinlogon()

<?php
echo "<html><pre>";
$db = "";

$c1 = oci_connect("scott", "tiger", $db);
$c2 = oci_new_connect("scott", "tiger", $db);

function create_table($conn)
{
  $stmt = oci_parse($conn, "create table scott.hallo (test
varchar2(64))");
  oci_execute($stmt);
  echo $conn . " created table\n\n";
}

function drop_table($conn)
{
  $stmt = oci_parse($conn, "drop table scott.hallo");
  oci_execute($stmt);
  echo $conn . " dropped table\n\n";
}

function insert_data($conn)
{
  $stmt = oci_parse($conn, "insert into scott.hallo
            values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " inserted hallo\n\n";
}

function delete_data($conn)
{
  $stmt = oci_parse($conn, "delete from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . " deleted hallo\n\n";
}

function commit($conn)
{
  oci_commit($conn);
  echo $conn . " committed\n\n";
}

function rollback($conn)
{
  oci_rollback($conn);
  echo $conn . " rollback\n\n";
}

function select_data($conn)
{
  $stmt = oci_parse($conn, "select * from scott.hallo");
  oci_execute($stmt, OCI_DEFAULT);
  echo $conn . "----selecting\n\n";
  while (oci_fetch($stmt)) {
    echo $conn . " <" . oci_result($stmt, "TEST") . ">\n\n";
  }
  echo $conn . "----done\n\n";
}

create_table($c1);
insert_data($c1);

select_data($c1);
select_data($c2);

rollback($c1);

select_data($c1);
select_data($c2);

insert_data($c2);
commit($c2);

select_data($c1);

delete_data($c1);
select_data($c1);
select_data($c2);
commit($c1);

select_data($c1);
select_data($c2);

drop_table($c1);
echo "</pre></html>";
?>

В случае ошибки oci_new_connect() возвращает FALSE.

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocinlogon(). В PHP 5.0.0 и выше ocinlogon() является алиасом oci_new_connect(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

См. также oci_connect() и oci_pconnect().

Пред. | Начало | След.
oci_new_collection | Уровень выше | oci_new_cursor


oci_new_cursor

(PHP 5)

oci_new_cursor -- Возвращает идентификатор созданного курсора

Описание

resource oci_new_cursor ( resource connection )

oci_new_cursor() создает новый курсор для указанного соединения и возвращает его идентификатор.

Пример 1. Использование REF CURSOR'ов в хранимых процедурах Oracle

<?php
// suppose your stored procedure info.output returns a ref cursor in :data

$conn = oci_connect("scott", "tiger");
$curs = oci_new_cursor($conn);
$stmt = oci_parse($conn, "begin info.output(:data); end;");

oci_bind_by_name($stmt, "data", $curs, -1, OCI_B_CURSOR);
oci_execute($stmt);
oci_execute($curs);

while ($data = oci_fetch_row($curs)) {
    var_dump($data);
}

oci_free_statement($stmt);
oci_free_statement($curs);
oci_close($conn);
?>

Пример 2. Использование REF CURSOR'ов в запросах Oracle

<?php
echo "<html><body>";
$conn = oci_connect("scott", "tiger");
$count_cursor = "CURSOR(select count(empno) num_emps from emp " .
                "where emp.deptno = dept.deptno) as EMPCNT from dept";
$stmt = oci_parse($conn, "select deptno,dname,$count_cursor");

oci_execute($stmt);
echo "<table border=\"1\">";
echo "<tr>";
echo "<th>DEPT NAME</th>";
echo "<th>DEPT #</th>";
echo "<th># EMPLOYEES</th>";
echo "</tr>";

while ($data = oci_fetch_assoc($stmt)) {
    echo "<tr>";
    $dname  = $data["DNAME"];
    $deptno = $data["DEPTNO"];
    echo "<td>$dname</td>";
    echo "<td>$deptno</td>";
    oci_execute($data["EMPCNT"]);
    while ($subdata = oci_fetch_assoc($data["EMPCNT"])) {
        $num_emps = $subdata["NUM_EMPS"];
        echo  "<td>$num_emps</td>";
    }
    echo "</tr>";
}
echo "</table>";
echo "</body></html>";
oci_free_statement($stmt);
oci_close($conn);
?>

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocinewcursor(). В PHP 5.0.0 и выше ocinewcursor() является алиасом oci_new_cursor(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Пред. | Начало | След.
oci_new_connect | Уровень выше | oci_new_descriptor


oci_new_descriptor

(PHP 5)

oci_new_descriptor -- Инициализирует новый дескриптор объекта LOB или FILE

Описание

object oci_new_descriptor ( resource connection [, int type] )

oci_new_descriptor() выделяет ресурсы, необходимые для хранения дескриптора объекта. Аргумент type может принимать следующие значения: OCI_D_FILE, OCI_D_LOB или OCI_D_ROWID.

Пример 1. Пример использования oci_new_descriptor()

<?php
    /* This script is designed to be called from a HTML form.
     * It expects $user, $password, $table, $where, and $commitsize
     * to be passed in from the form.  The script then deletes
     * the selected rows using the ROWID and commits after each
     * set of $commitsize rows. (Use with care, there is no rollback)
     */
    $conn = oci_connect($user, $password);
    $stmt = oci_parse($conn, "select rowid from $table $where");
    $rowid = oci_new_descriptor($conn, OCI_D_ROWID);
    oci_define_by_name($stmt, "ROWID", $rowid);
    oci_execute($stmt);
    while (oci_fetch($stmt)) {
       $nrows = oci_num_rows($stmt);
       $delete = oci_parse($conn, "delete from $table where ROWID = :rid");
       oci_bind_by_name($delete, ":rid", $rowid, -1, OCI_B_ROWID);
       oci_execute($delete);
       echo "$nrows\n";
       if (($nrows % $commitsize) == 0) {
           oci_commit($conn);
       }
    }
    $nrows = oci_num_rows($stmt);
    echo "$nrows deleted...\n";
    oci_free_statement($stmt);
    oci_close($conn);
?>
<?php
    /* This script demonstrates file upload to LOB columns
     * The formfield used for this example looks like this
     * <form action="upload.php" method="post" enctype="multipart/form-data">
     * <input type="file" name="lob_upload" />
     * ...
     */
  if (!isset($lob_upload) || $lob_upload == 'none'){
?>
<form action="upload.php" method="post" enctype="multipart/form-data">
Upload file: <input type="file" name="lob_upload" /><br />
<input type="submit" value="Upload" /> - <input type="reset" value="Reset" />
</form>
<?php
  } else {

     // $lob_upload contains the temporary filename of the uploaded file

     // see also the features section on file upload,
     // if you would like to use secure uploads

     $conn = oci_connect($user, $password);
     $lob = oci_new_descriptor($conn, OCI_D_LOB);
     $stmt = oci_parse($conn, "insert into $table (id, the_blob)
               values(my_seq.NEXTVAL, EMPTY_BLOB()) returning the_blob into :the_blob");
     oci_bind_by_name($stmt, ':the_blob', &$lob, -1, OCI_B_BLOB);
     oci_execute($stmt, OCI_DEFAULT);
     if ($lob->savefile($lob_upload)){
        oci_execute($conn);
        echo "Blob successfully uploaded\n";
     }else{
        echo "Couldn't upload Blob\n";
     }
     oci_free_descriptor($lob);
     oci_free_statement($stmt);
     oci_close($conn);
  }
?>

Пример 2. Второй пример использования oci_new_descriptor()

<?php
    /* Calling PL/SQL stored procedures which contain clobs as input
     * parameters (PHP 4 >= 4.0.6).
     * Example PL/SQL stored procedure signature is:
     *
     * PROCEDURE save_data
     *   Argument Name                  Type                    In/Out Default?
     *   ------------------------------ ----------------------- ------ --------
     *   KEY                            NUMBER(38)              IN
     *   DATA                           CLOB                    IN
     *
     */

    $conn = oci_connect($user, $password);
    $stmt = oci_parse($conn, "begin save_data(:key, :data); end;");
    $clob = oci_new_descriptor($conn, OCI_D_LOB);
    oci_bind_by_name($stmt, ':key', $key);
    oci_bind_by_name($stmt, ':data', $clob, -1, OCI_B_CLOB);
    $clob->write($data);
    oci_execute($stmt, OCI_DEFAULT);
    oci_commit($conn);
    $clob->free();
    oci_free_statement($stmt);
?>

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocinewdescriptor(). В PHP 5.0.0 и выше ocinewdescriptor() является алиасом oci_new_descriptor(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

oci_new_descriptor() вернет FALSE в случае ошибки.

Пред. | Начало | След.
oci_new_cursor | Уровень выше | oci_num_fields


oci_num_fields

(PHP 5)

oci_num_fields -- Возвращает количество полей в результате запроса

Описание

int oci_num_fields ( resource stmt )

oci_num_fields() возвращает количество полей в результате выполнения выражения stmt.

Пример 1. Пример использования oci_num_fields()

<?php
    echo "<pre>\n";
    $conn = oci_connect("scott", "tiger");
    $stmt = oci_parse($conn, "select * from emp");

    oci_execute($stmt);

    while (oci_fetch($stmt)) {
        echo "\n";
        $ncols = oci_num_fields($stmt);
        for ($i = 1; $i <= $ncols; $i++) {
            $column_name  = oci_field_name($stmt, $i);
            $column_value = oci_result($stmt, $i);
            echo $column_name . ': ' . $column_value . "\n";
        }
        echo "\n";
    }

    oci_free_statement($stmt);
    oci_close($conn);

    echo "</pre>";
?>

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocinumcols(). В PHP 5.0.0 и выше ocinumcols() является алиасом oci_num_fields(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

В случае ошибки oci_num_fields() возвращает FALSE.

Пред. | Начало | След.
oci_new_descriptor | Уровень выше | oci_num_rows


oci_num_rows

(PHP 5)

oci_num_rows -- Возвращает количество строк, измененных в процессе выполнения запроса

Описание

int oci_num_rows ( resource stmt )

oci_num_rows() возвращает количество строк, которые были изменены в процессе выполнения выражения UPDATE.

Замечание: Эта функция не возвращает количество строк в результате выражения SELECT! Для запросов SELECT oci_num_rows() вернет количество строк, которые были считаны в буфер с помощью функций oci_fetch*().

Пример 1. Пример использования oci_num_rows()

<?php
    echo "<pre>";
    $conn = oci_connect("scott", "tiger");

    $stmt = oci_parse($conn, "create table emp2 as select * from emp");
    oci_execute($stmt);
    echo oci_num_rows($stmt) . " rows inserted.<br />";
    oci_free_statement($stmt);

    $stmt = oci_parse($conn, "delete from emp2");
    oci_execute($stmt, OCI_DEFAULT);
    echo oci_num_rows($stmt) . " rows deleted.<br />";
    oci_commit($conn);
    oci_free_statement($stmt);

    $stmt = oci_parse($conn, "drop table emp2");
    oci_execute($stmt);
    oci_free_statement($stmt);

    oci_close($conn);
    echo "</pre>";
?>

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocirowcount(). В PHP 5.0.0 и выше ocirowcount() является алиасом oci_num_rows(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

В случае ошибки oci_num_rows() возвращает FALSE.

Пред. | Начало | След.
oci_num_fields | Уровень выше | oci_parse


oci_parse

(PHP 5)

oci_parse -- Подготавливает запрос к выполнению

Описание

resource oci_parse ( resource connection, string query )

oci_parse() подготавливает query к выполнению, используя соединение connection и возвращает идентификатор выражения. Параметр query может быть выражением SQL или набором команд PL/SQL.

Замечание: Эта функция не проверяет синтаксис запроса query. Единственный способ проверить правильность запроса - это выполнить его.

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ociparse(). В PHP 5.0.0 и выше ociparse() является алиасом oci_parse(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

oci_parse() возвращает FALSE в случае ошибки.

Пред. | Начало | След.
oci_num_rows | Уровень выше | oci_password_change


oci_password_change

(PHP 5)

oci_password_change -- Изменяет пароль пользователя Oracle

Описание

boolean oci_password_change ( resource connection, string username, string old_password, string new_password )

Изменяет пароль указанного пользователя. Для этого вы должны указать имя пользователя, старый пароль и новый пароль, который вы хотите установить.

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocipasswordchange(). В PHP 5.0.0 и выше ocipasswordchange() является алиасом oci_password_change(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
oci_parse | Уровень выше | oci_pconnect


oci_pconnect

(PHP 5)

oci_pconnect -- Устанавливает постоянное соединение с сервером Oracle

Описание

resource oci_pconnect ( string username, string password [, string db [, string charset]] )

oci_pconnect() создает постоянное соединение с сервером Oracle. Необязательный третий параметр db может содержать имя локального экземпляра Oracle или имя сервера, указанного в файле tnsnames.ora, с которым вы хотите соединиться. Если третий параметр не указан, PHP будет использовать переменные ORACLE_SID и TWO_TASK для определения имени локального экземпляра Oracle и местонахождения файла tnsnames.ora соответственно.

Если вы используете сервер Oracle версии 9.2 и выше, то вы можете указать кодировку, которая будет использована в новом соединении. Кодировка указывается в параметре charset. Если же вы используете версии сервера Oracle младше 9.2, то этот параметр будет проигнорирован, а вместо него будет использована переменная окружения NLS_LANG.

oci_pconnect() возвращает идентификатор соединения или FALSE в случае ошибки.

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ociplogon(). В PHP 5.0.0 и выше ociplogon() является алиасом oci_pconnect(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

См. также oci_connect() и oci_new_connect().

Пред. | Начало | След.
oci_password_change | Уровень выше | oci_result


oci_result

(PHP 5)

oci_result -- Возвращает значение поля из результата запроса

Описание

mixed oci_result ( resource statement, mixed field )

oci_result() возвращает данные из поля field текущей строки результата (см. oci_fetch()). oci_result() возвращает данные в виде строк, кроме абстрактных типов (ROWID, LOB и FILE). В случае ошибки oci_result() возвращает FALSE.

В качестве параметра field вы можете использовать номер поля (начиная с 1) или его имя в верхнем регистре.

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ociresult(). В PHP 5.0.0 и выше ociresult() является алиасом oci_result(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

См. также oci_fetch_array(),
oci_fetch_assoc(),
oci_fetch_object(),
oci_fetch_row() и
oci_fetch_all().

Пред. | Начало | След.
oci_pconnect | Уровень выше | oci_rollback


oci_rollback

(PHP 5)

oci_rollback -- Откатывает транзакции, ожидающие обработки

Описание

bool oci_rollback ( resource connection )

oci_rollback() откатывает все ожидающие подтверждения транзакции для соединения connection. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocirollback(). В PHP 5.0.0 и выше ocirollback() является алиасом oci_rollback(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

См. также oci_commit().

Пред. | Начало | След.
oci_result | Уровень выше | oci_server_version


oci_server_version

(PHP 5)

oci_server_version -- Возвращает строку с информацией о версии сервера Oracle

Описание

string oci_server_version ( resource connection )

Возвращает строку с информацией о версии сервера Oracle, с которым установлено соединение connection или FALSE в случае ошибки.

Пример 1. Пример использования oci_server_version()

<?php
    $conn = oci_connect("scott", "tiger");
    echo "Server Version: " . oci_server_version($conn);
    oci_close($conn);
?>

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ociserverversion(). В PHP 5.0.0 и выше ociserverversion() является алиасом oci_server_version(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Пред. | Начало | След.
oci_rollback | Уровень выше | oci_set_prefetch


oci_set_prefetch

(PHP 5)

oci_set_prefetch -- Устанавливает количество строк, которые будут автоматически выбраны в буфер

Описание

bool oci_set_prefetch ( resource statement, int rows )

Устанавливает количество строк, которые будут выбраны в буфер сразу после удачного вызова oci_execute(). Значение параметра rows по умолчанию равно 1.

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocisetprefetch(). В PHP 5.0.0 и выше ocisetprefetch() является алиасом oci_set_prefetch(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
oci_server_version | Уровень выше | oci_statement_type


oci_statement_type

(PHP 5)

oci_statement_type -- Возвращает тип выражения

Описание

string oci_statement_type ( resource statement )

oci_statement_type() возвращает одно из нижеперечисленных значений:

  1. SELECT

  2. UPDATE

  3. DELETE

  4. INSERT

  5. CREATE

  6. DROP

  7. ALTER

  8. BEGIN

  9. DECLARE

  10. UNKNOWN

Параметр statement должен быть равен идентификатору выражения, который был получен в результате выполнения oci_parse().

Пример 1. Примеры использования oci_statement_type()

<?php
    $conn = oci_connect("scott", "tiger");
    $sql  = "delete from emp where deptno = 10";

    $stmt = oci_parse($conn, $sql);
    if (oci_statement_type($stmt) == "DELETE") {
        die("You are not allowed to delete from this table<br />");
    }

    oci_close($conn);
?>

Замечание: В версиях PHP ниже 5.0.0 эта функция называлась ocistatementtype(). В PHP 5.0.0 и выше ocistatementtype() является алиасом oci_statement_type(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

oci_statement_type() возвращает FALSE в случае ошибки.

Пред. | Начало | След.
oci_set_prefetch | Уровень выше | ocibindbyname


ocibindbyname

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ocibindbyname -- Alias of oci_bind_by_name()

Описание

This function is an alias of: oci_bind_by_name().

Пред. | Начало | След.
oci_statement_type | Уровень выше | ocicancel


ocicancel

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

ocicancel -- Alias of oci_cancel()

Описание

This function is an alias of: oci_cancel().

Пред. | Начало | След.
ocibindbyname | Уровень выше | ocicloselob


ocicloselob

(no version information, might be only in CVS)

ocicloselob -- Alias of OCI-Lob->close

Описание

This function is an alias of: OCI-Lob->close.

Пред. | Начало | След.
ocicancel | Уровень выше | ocicollappend


ocicollappend

(PHP 4 >= 4.0.6, PHP 5)

ocicollappend -- Alias of OCI-Collection->append

Описание

This function is an alias of: OCI-Collection->append.

Пред. | Начало | След.
ocicloselob | Уровень выше | ocicollassign


ocicollassign

(PHP 4 >= 4.0.6)

ocicollassign -- Alias of OCI-Collection->assign

Описание

This function is an alias of: OCI-Collection->assign.

Пред. | Начало | След.
ocicollappend | Уровень выше | ocicollassignelem


ocicollassignelem

(PHP 4 >= 4.0.6, PHP 5)

ocicollassignelem -- Alias of OCI-Collection->assignElem

Описание

This function is an alias of: OCI-Collection->assignElem.

Пред. | Начало | След.
ocicollassign | Уровень выше | ocicollgetelem


ocicollgetelem

(PHP 4 >= 4.0.6, PHP 5)

ocicollgetelem -- Alias of OCI-Collection->getElem

Описание

This function is an alias of: OCI-Collection->getElem.

Пред. | Начало | След.
ocicollassignelem | Уровень выше | ocicollmax


ocicollmax

(PHP 4 >= 4.0.6, PHP 5)

ocicollmax -- Alias of OCI-Collection->max

Описание

This function is an alias of: OCI-Collection->max.

Пред. | Начало | След.
ocicollgetelem | Уровень выше | ocicollsize


ocicollsize

(PHP 4 >= 4.0.6, PHP 5)

ocicollsize -- Alias of OCI-Collection->size

Описание

This function is an alias of: OCI-Collection->size.

Пред. | Начало | След.
ocicollmax | Уровень выше | ocicolltrim


ocicolltrim

(PHP 4 >= 4.0.6, PHP 5)

ocicolltrim -- Alias of OCI-Collection->trim

Описание

This function is an alias of: OCI-Collection->trim.

Пред. | Начало | След.
ocicollsize | Уровень выше | ocicolumnisnull


ocicolumnisnull

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ocicolumnisnull -- Alias of oci_field_is_null()

Описание

This function is an alias of: oci_field_is_null().

Пред. | Начало | След.
ocicolltrim | Уровень выше | ocicolumnname


ocicolumnname

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ocicolumnname -- Alias of oci_field_name()

Описание

This function is an alias of: oci_field_name().

Пред. | Начало | След.
ocicolumnisnull | Уровень выше | ocicolumnprecision


ocicolumnprecision

(PHP 4, PHP 5)

ocicolumnprecision -- Alias of oci_field_precision()

Описание

This function is an alias of: oci_field_precision().

Пред. | Начало | След.
ocicolumnname | Уровень выше | ocicolumnscale


ocicolumnscale

(PHP 4, PHP 5)

ocicolumnscale -- Alias of oci_field_scale()

Описание

This function is an alias of: oci_field_scale().

Пред. | Начало | След.
ocicolumnprecision | Уровень выше | ocicolumnsize


ocicolumnsize

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ocicolumnsize -- Alias of oci_field_size()

Описание

This function is an alias of: oci_field_size().

Пред. | Начало | След.
ocicolumnscale | Уровень выше | ocicolumntype


ocicolumntype

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ocicolumntype -- Alias of oci_field_type()

Описание

This function is an alias of: oci_field_type().

Пред. | Начало | След.
ocicolumnsize | Уровень выше | ocicolumntyperaw


ocicolumntyperaw

(PHP 4, PHP 5)

ocicolumntyperaw -- Alias of oci_field_type_raw()

Описание

This function is an alias of: oci_field_type_raw().

Пред. | Начало | След.
ocicolumntype | Уровень выше | ocicommit


ocicommit

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ocicommit -- Alias of oci_commit()

Описание

This function is an alias of: oci_commit().

Пред. | Начало | След.
ocicolumntyperaw | Уровень выше | ocidefinebyname


ocidefinebyname

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ocidefinebyname -- Alias of oci_define_by_name()

Описание

This function is an alias of: oci_define_by_name().

Пред. | Начало | След.
ocicommit | Уровень выше | ocierror


ocierror

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ocierror -- Alias of oci_error()

Описание

This function is an alias of: oci_error().

Пред. | Начало | След.
ocidefinebyname | Уровень выше | ociexecute


ociexecute

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ociexecute -- Alias of oci_execute()

Описание

This function is an alias of: oci_execute().

Пред. | Начало | След.
ocierror | Уровень выше | ocifetch


ocifetch

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ocifetch -- Alias of oci_fetch()

Описание

This function is an alias of: oci_fetch().

Пред. | Начало | След.
ociexecute | Уровень выше | ocifetchinto


ocifetchinto

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ocifetchinto -- Выбирает следующую строку из результата запроса в массив

Описание

int ocifetchinto ( resource statement, array &result [, int mode] )

Замечание:
      Эта функция устарела и не рекомендуется к использованию. Вместо неё вы
      можете использовать функции oci_fetch_array(),
      oci_fetch_object(), oci_fetch_assoc(),
      oci_fetch_row().

ocifetchinto() выбирает следующую строку из результат запроса в массив result. ocifetchinto() перезапишет сверху содержимое переменной result. По умолчанию result будет содержать массив с числовыми индексами и значениями полей, которые не равны NULL.

Параметр mode позволяет менять поведение по умолчанию. Вы можете указывать несколько флагов одновременно, просто суммируя их (например, OCI_ASSOC+OCI_RETURN_NULLS). Возможные флаги:

OCI_ASSOC - возврашать ассоциативный массив.
OCI_NUM - возвращать массив с числовыми индексами (поведение по умолчанию).
OCI_RETURN_NULLS - возвращать поля, которые равны NULL.
OCI_RETURN_LOBS - возвращать значение LOB вместо дескриптора.

Пример 1. Пример использования ocifetchinto()

<?php
$conn = ocilogon("username", "password");

$query = "SELECT apples FROM oranges";

$statement = OCIParse ($conn, $query);
OCIExecute ($statement);

while (OCIFetchInto ($statement, $row, OCI_ASSOC)) {
    echo $row['apples'];
}
?>

См. также
oci_fetch_array(),
oci_fetch_object(),
oci_fetch_assoc(),
oci_fetch_row(),
oci_fetch() и
oci_execute().

Пред. | Начало | След.
ocifetch | Уровень выше | ocifetchstatement


ocifetchstatement

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

ocifetchstatement -- Выбирает все строки из результата запроса в массив

Описание

int ocifetchstatement ( resource stmt, array &output [, int skip [, int maxrows [, int flags]]] )

Замечание: В PHP 5.0.0 и выше ocifetchstatement() является алиасом oci_fetch_all(). Вы можете продолжать использовать это имя, однако это не рекомендуется.

См. также oci_fetch_array(),
oci_fetch_assoc(),
oci_fetch_object(),
oci_fetch_row().

Пред. | Начало | След.
ocifetchinto | Уровень выше | ocifreecollection


ocifreecollection

(PHP 4 >= 4.1.0, PHP 5)

ocifreecollection -- Alias of OCI-Collection->free

Описание

This function is an alias of: OCI-Collection->free.

Пред. | Начало | След.
ocifetchstatement | Уровень выше | ocifreecursor


ocifreecursor

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

ocifreecursor -- Alias of oci_free_statement()

Описание

This function is an alias of: oci_free_statement().

Пред. | Начало | След.
ocifreecollection | Уровень выше | ocifreedesc


ocifreedesc

(PHP 4, PHP 5)

ocifreedesc -- Alias of OCI-Lob->free

Описание

This function is an alias of: OCI-Lob->free.

Пред. | Начало | След.
ocifreecursor | Уровень выше | ocifreestatement


ocifreestatement

(PHP 3 >= 3.0.5, PHP 4, PHP 5)

ocifreestatement -- Alias of oci_free_statement()

Описание

This function is an alias of: oci_free_statement().

Пред. | Начало | След.
ocifreedesc | Уровень выше | ociinternaldebug


ociinternaldebug

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ociinternaldebug -- Alias of oci_internal_debug()

Описание

This function is an alias of: oci_internal_debug().

Пред. | Начало | След.
ocifreestatement | Уровень выше | ociloadlob


ociloadlob

(PHP 4, PHP 5)

ociloadlob -- Alias of OCI-Lob->load

Описание

This function is an alias of: OCI-Lob->load.

Пред. | Начало | След.
ociinternaldebug | Уровень выше | ocilogoff


ocilogoff

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ocilogoff -- Alias of oci_close()

Описание

This function is an alias of: oci_close().

Пред. | Начало | След.
ociloadlob | Уровень выше | ocilogon


ocilogon

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ocilogon -- Alias of oci_connect()

Описание

This function is an alias of: oci_connect().

Пред. | Начало | След.
ocilogoff | Уровень выше | ocinewcollection


ocinewcollection

(PHP 4 >= 4.0.6, PHP 5)

ocinewcollection -- Alias of oci_new_collection()

Описание

This function is an alias of: oci_new_collection().

Пред. | Начало | След.
ocilogon | Уровень выше | ocinewcursor


ocinewcursor

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

ocinewcursor -- Alias of oci_new_cursor()

Описание

This function is an alias of: oci_new_cursor().

Пред. | Начало | След.
ocinewcollection | Уровень выше | ocinewscriptor


ocinlogon

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

ocinlogon -- Alias of oci_new_connect()

Описание

This function is an alias of: oci_new_connect().

Пред. | Начало | След.
ocinewscriptor | Уровень выше | ocinumcols


ocinumcols

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ocinumcols -- Alias of oci_num_fields()

Описание

This function is an alias of: oci_num_fields().

Пред. | Начало | След.
ocinlogon | Уровень выше | ociparse


ociparse

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ociparse -- Alias of oci_parse()

Описание

This function is an alias of: oci_parse().

Пред. | Начало | След.
ocinumcols | Уровень выше | ociplogon


ociplogon

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

ociplogon -- Alias of oci_pconnect()

Описание

This function is an alias of: oci_pconnect().

Пред. | Начало | След.
ociparse | Уровень выше | ociresult


ociresult

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ociresult -- Alias of oci_result()

Описание

This function is an alias of: oci_result().

Пред. | Начало | След.
ociplogon | Уровень выше | ocirollback


ocirollback

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ocirollback -- Alias of oci_rollback()

Описание

This function is an alias of: oci_rollback().

Пред. | Начало | След.
ociresult | Уровень выше | ocirowcount


ocirowcount

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

ocirowcount -- Alias of oci_num_rows()

Описание

This function is an alias of: oci_num_rows().

Пред. | Начало | След.
ocirollback | Уровень выше | ocisavelob


ocisavelob

(PHP 4, PHP 5)

ocisavelob -- Alias of OCI-Lob->save

Описание

This function is an alias of: OCI-Lob->save.

Пред. | Начало | След.
ocirowcount | Уровень выше | ocisavelobfile


ocisavelobfile

(PHP 4, PHP 5)

ocisavelobfile -- Alias of OCI-Lob->import

Описание

This function is an alias of: OCI-Lob->import.

Пред. | Начало | След.
ocisavelob | Уровень выше | ociserverversion


ociserverversion

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

ociserverversion -- Alias of oci_server_version()

Описание

This function is an alias of: oci_server_version().

Пред. | Начало | След.
ocisavelobfile | Уровень выше | ocisetprefetch


ocisetprefetch

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

ocisetprefetch -- Alias of oci_set_prefetch()

Описание

This function is an alias of: oci_set_prefetch().

Пред. | Начало | След.
ociserverversion | Уровень выше | ocistatementtype


ocistatementtype

(PHP 3 >= 3.0.5, PHP 4, PHP 5)

ocistatementtype -- Alias of oci_statement_type()

Описание

This function is an alias of: oci_statement_type().

Пред. | Начало | След.
ocisetprefetch | Уровень выше | ociwritelobtofile


ociwritelobtofile

(PHP 4, PHP 5)

ociwritelobtofile -- Alias of OCI-Lob->export

Описание

This function is an alias of: OCI-Lob->export.

Пред. | Начало | След.
ocistatementtype | Уровень выше | ociwritetemporarylob


ociwritetemporarylob

(no version information, might be only in CVS)

ociwritetemporarylob -- Alias of OCI-Lob->writeTemporary

Описание

This function is an alias of: OCI-Lob->writeTemporary.

Пред. | Начало | След.
ociwritelobtofile | Уровень выше | ODBC Functions (Unified)


OpenAL Audio Bindings

Руководство по PHP
Пред. След.

C. OpenAL Audio Bindings

Введение

Platform independent audio bindings. Requires the OpenAL library.

Установка

Это расширение PECL не поставляется вместе с PHP.

Дополнительная информация, такая как новый версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, могут быть найдены здесь: http://pecl.php.net/package/openal.

Вы можете скачать DLL этого расширения PECL со страницы PHP Downloads или http://snaps.php.net/.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

This extension defines four resource types:
Open AL(Device) - Returned by openal_device_open(),
Open AL(Context) - Returned by openal_context_create(),
Open AL(Buffer) - Returned by openal_buffer_create(),
and Open AL(Source) - Returned by openal_source_create().

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

ALC_FREQUENCY (integer)

Context Attribute

ALC_REFRESH (integer)

Context Attribute

ALC_SYNC (integer)

Context Attribute

AL_FREQUENCY (integer)

Buffer Setting

AL_BITS (integer)

Buffer Setting

AL_CHANNELS (integer)

Buffer Setting

AL_SIZE (integer)

Buffer Setting

AL_BUFFER (integer)

Source/Listener Setting (Integer)

AL_SOURCE_RELATIVE (integer)

Source/Listener Setting (Integer)

AL_SOURCE_STATE (integer)

Source/Listener Setting (Integer)

AL_PITCH (integer)

Source/Listener Setting (Float)

AL_GAIN (integer)

Source/Listener Setting (Float)

AL_MIN_GAIN (integer)

Source/Listener Setting (Float)

AL_MAX_GAIN (integer)

Source/Listener Setting (Float)

AL_MAX_DISTANCE (integer)

Source/Listener Setting (Float)

AL_ROLLOFF_FACTOR (integer)

Source/Listener Setting (Float)

AL_CONE_OUTER_GAIN (integer)

Source/Listener Setting (Float)

AL_CONE_INNER_ANGLE (integer)

Source/Listener Setting (Float)

AL_CONE_OUTER_ANGLE (integer)

Source/Listener Setting (Float)

AL_REFERENCE_DISTANCE (integer)

Source/Listener Setting (Float)

AL_POSITION (integer)

Source/Listener Setting (Float Vector)

AL_VELOCITY (integer)

Source/Listener Setting (Float Vector)

AL_DIRECTION (integer)

Source/Listener Setting (Float Vector)

AL_ORIENTATION (integer)

Source/Listener Setting (Float Vector)

AL_FORMAT_MONO8 (integer)

PCM Format

AL_FORMAT_MONO16 (integer)

PCM Format

AL_FORMAT_STEREO8 (integer)

PCM Format

AL_FORMAT_STEREO16 (integer)

PCM Format

AL_INITIAL (integer)

Source State

AL_PLAYING (integer)

Source State

AL_PAUSED (integer)

Source State

AL_STOPPED (integer)

Source State

AL_LOOPING (integer)

Source State

AL_TRUE (integer)

Boolean value recognized by OpenAL

AL_FALSE (integer)

Boolean value recognized by OpenAL

Содержание
openal_buffer_create -- Generate OpenAL buffer
openal_buffer_data -- Load a buffer with data
openal_buffer_destroy -- Destroys an OpenAL buffer
openal_buffer_get -- Retrieve an OpenAL buffer property
openal_buffer_loadwav -- Load a .wav file into a buffer
openal_context_create -- Create an audio processing context
openal_context_current -- Make the specified context current
openal_context_destroy -- Destroys a context
openal_context_process -- Process the specified context
openal_context_suspend -- Suspend the specified context
openal_device_close -- Close an OpenAL device
openal_device_open -- Initialize the OpenAL audio layer
openal_listener_get -- Retrieve a listener property
openal_listener_set -- Set a listener property
openal_source_create -- Generate a source resource
openal_source_destroy -- Destroy a source resource
openal_source_get -- Retrieve an OpenAL source property
openal_source_pause -- Pause the source
openal_source_play -- Start playing the source
openal_source_rewind -- Rewind the source
openal_source_set -- Set source property
openal_source_stop -- Stop playing the source
openal_stream -- Begin streaming on a source

Пред. | Начало | След.
Usage | Уровень выше | openal_buffer_create


openal_buffer_create

(PECL)

openal_buffer_create -- Generate OpenAL buffer

Описание

resource openal_buffer_create ( void )

Возвращаемые значения

Returns an Open AL(Buffer) resource on success or FALSE on failure.

Смотрите также

openal_buffer_loadwav()
openal_buffer_data()

Пред. | Начало | След.
OpenAL Audio Bindings | Уровень выше | openal_buffer_data


openal_buffer_data

(PECL)

openal_buffer_data -- Load a buffer with data

Описание

bool openal_buffer_data ( resource buffer, int format, string data, int freq )

Список параметров

buffer

An Open AL(Buffer) resource (previously created by openal_buffer_create()).

format

Format of data, one of: AL_FORMAT_MONO8, AL_FORMAT_MONO16, AL_FORMAT_STEREO8 и AL_FORMAT_STEREO16

data

Block of binary audio data in the format and freq specified.

frew

Frequency of data given in Hz.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

openal_buffer_loadwav()
openal_stream()

Пред. | Начало | След.
openal_buffer_create | Уровень выше | openal_buffer_destroy


openal_buffer_destroy

(PECL)

openal_buffer_destroy -- Destroys an OpenAL buffer

Описание

bool openal_buffer_destroy ( resource buffer )

Список параметров

buffer

An Open AL(Buffer) resource (previously created by openal_buffer_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

openal_buffer_create()

Пред. | Начало | След.
openal_buffer_data | Уровень выше | openal_buffer_get


openal_buffer_get

(PECL)

openal_buffer_get -- Retrieve an OpenAL buffer property

Описание

int openal_buffer_get ( resource buffer, int property )

Список параметров

buffer

An Open AL(Buffer) resource (previously created by openal_buffer_create()).

property

Specific property, one of: AL_FREQUENCY, AL_BITS, AL_CHANNELS и AL_SIZE.

Возвращаемые значения

Returns an integer value appropriate to the property requested or FALSE on failure.

Смотрите также

openal_buffer_create()

Пред. | Начало | След.
openal_buffer_destroy | Уровень выше | openal_buffer_loadwav


openal_buffer_loadwav

(PECL)

openal_buffer_loadwav -- Load a .wav file into a buffer

Описание

bool openal_buffer_loadwav ( resource buffer, string wavfile )

Список параметров

buffer

An Open AL(Buffer) resource (previously created by openal_buffer_create()).

wavfile

Path to .WAV file on local file system.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

openal_buffer_data()
openal_stream()

Пред. | Начало | След.
openal_buffer_get | Уровень выше | openal_context_create


openal_context_create

(PECL)

openal_context_create -- Create an audio processing context

Описание

resource openal_context_create ( resource device )

Список параметров

device

An Open AL(Device) resource (previously created by openal_device_open()).

Возвращаемые значения

Returns an Open AL(Context) resource on success or FALSE on failure.

Смотрите также

openal_device_open()
openal_context_destroy()

Пред. | Начало | След.
openal_buffer_loadwav | Уровень выше | openal_context_current


openal_context_current

(PECL)

openal_context_current -- Make the specified context current

Описание

bool openal_context_current ( resource context )

Список параметров

context

An Open AL(Context) resource (previously created by openal_context_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

openal_context_create()

Пред. | Начало | След.
openal_context_create | Уровень выше | openal_context_destroy


openal_context_destroy

(PECL)

openal_context_destroy -- Destroys a context

Описание

bool openal_context_destroy ( resource context )

Список параметров

context

An Open AL(Context) resource (previously created by openal_context_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

openal_context_create()

Пред. | Начало | След.
openal_context_current | Уровень выше | openal_context_process


openal_context_process

(PECL)

openal_context_process -- Process the specified context

Описание

bool openal_context_process ( resource context )

Список параметров

context

An Open AL(Context) resource (previously created by openal_context_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

openal_context_create()
openal_context_current()
openal_context_suspend()

Пред. | Начало | След.
openal_context_destroy | Уровень выше | openal_context_suspend


openal_context_suspend

(PECL)

openal_context_suspend -- Suspend the specified context

Описание

bool openal_context_suspend ( resource context )

Список параметров

context

An Open AL(Context) resource (previously created by openal_context_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

openal_context_create()
openal_context_current()
openal_context_process()

Пред. | Начало | След.
openal_context_process | Уровень выше | openal_device_close


openal_device_close

(PECL)

openal_device_close -- Close an OpenAL device

Описание

bool openal_device_close ( resource device )

Список параметров

device

An Open AL(Device) resource (previously created by openal_device_open()) to be closed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

openal_device_open()

Пред. | Начало | След.
openal_context_suspend | Уровень выше | openal_device_open


openal_device_open

(PECL)

openal_device_open -- Initialize the OpenAL audio layer

Описание

resource openal_device_open ( [string device_desc] )

Список параметров

device_desc

Open an audio device optionally specified by device_desc. If device_desc is not specified the first available audio device will be used.

Возвращаемые значения

Returns an Open AL(Device) resource on success or FALSE on failure.

Смотрите также

openal_device_close()
openal_context_create()

Пред. | Начало | След.
openal_device_close | Уровень выше | openal_listener_get


openal_listener_get

(PECL)

openal_listener_get -- Retrieve a listener property

Описание

mixed openal_listener_get ( int property )

Список параметров

property

Property to retrieve, one of:
AL_GAIN (float),
AL_POSITION (array(float,float,float)),
AL_VELOCITY (array(float,float,float)) и
AL_ORIENTATION (array(float,float,float)).

Возвращаемые значения

Returns a float or array of floats (as appropriate), or FALSE on failure.

Смотрите также

openal_listener_set()

Пред. | Начало | След.
openal_device_open | Уровень выше | openal_listener_set


openal_listener_set

(PECL)

openal_listener_set -- Set a listener property

Описание

bool openal_listener_set ( int property, mixed setting )

Список параметров

property

Property to set, one of:
AL_GAIN (float),
AL_POSITION (array(float,float,float)),
AL_VELOCITY (array(float,float,float)) и
AL_ORIENTATION (array(float,float,float)).

setting

Value to set, either float, or an array of floats as appropriate.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

openal_listener_get()

Пред. | Начало | След.
openal_listener_get | Уровень выше | openal_source_create


openal_source_create

(PECL)

openal_source_create -- Generate a source resource

Описание

resource openal_source_create ( void )

Возвращаемые значения

Returns an Open AL(Source) resource on success or FALSE on failure.

Смотрите также

openal_source_set()
openal_source_play()
openal_source_destroy()

Пред. | Начало | След.
openal_listener_set | Уровень выше | openal_source_destroy


openal_source_destroy

(PECL)

openal_source_destroy -- Destroy a source resource

Описание

bool openal_source_destroy ( resource source )

Список параметров

source

An Open AL(Source) resource (previously created by openal_source_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

openal_source_create()

Пред. | Начало | След.
openal_source_create | Уровень выше | openal_source_get


openal_source_get

(PECL)

openal_source_get -- Retrieve an OpenAL source property

Описание

mixed openal_source_get ( resource source, int property )

Список параметров

source

An Open AL(Source) resource (previously created by openal_source_create()).

property

Property to get, one of: AL_SOURCE_RELATIVE (int), AL_SOURCE_STATE (int), AL_PITCH (float), AL_GAIN (float), AL_MIN_GAIN (float), AL_MAX_GAIN (float), AL_MAX_DISTANCE (float), AL_ROLLOFF_FACTOR (float), AL_CONE_OUTER_GAIN (float), AL_CONE_INNER_ANGLE (float), AL_CONE_OUTER_ANGLE (float), AL_REFERENCE_DISTANCE (float), AL_POSITION (array(float,float,float)), AL_VELOCITY (array(float,float,float)), AL_DIRECTION (array(float,float,float)).

Возвращаемые значения

Returns the type associated with the property being retrieved or FALSE on failure.

Смотрите также

openal_source_create()
openal_source_set()
openal_source_play()

Пред. | Начало | След.
openal_source_destroy | Уровень выше | openal_source_pause


openal_source_pause

(PECL)

openal_source_pause -- Pause the source

Описание

bool openal_source_pause ( resource source )

Список параметров

source

An Open AL(Source) resource (previously created by openal_source_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

openal_source_stop()
openal_source_play()
openal_source_rewind()

Пред. | Начало | След.
openal_source_get | Уровень выше | openal_source_play


openal_source_play

(PECL)

openal_source_play -- Start playing the source

Описание

bool openal_source_play ( resource source )

Список параметров

source

An Open AL(Source) resource (previously created by openal_source_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

openal_source_stop()
openal_source_pause()
openal_source_rewind()

Пред. | Начало | След.
openal_source_pause | Уровень выше | openal_source_rewind


openal_source_rewind

(PECL)

openal_source_rewind -- Rewind the source

Описание

bool openal_source_rewind ( resource source )

Список параметров

source

An Open AL(Source) resource (previously created by openal_source_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

openal_source_stop()
openal_source_pause()
openal_source_play()

Пред. | Начало | След.
openal_source_play | Уровень выше | openal_source_set


openal_source_set

(PECL)

openal_source_set -- Set source property

Описание

bool openal_source_set ( resource source, int property, mixed setting )

Список параметров

source

An Open AL(Source) resource (previously created by openal_source_create()).

property

Property to set, one of: AL_BUFFER (OpenAL(Source)), AL_LOOPING (bool), AL_SOURCE_RELATIVE (int), AL_SOURCE_STATE (int), AL_PITCH (float), AL_GAIN (float), AL_MIN_GAIN (float), AL_MAX_GAIN (float), AL_MAX_DISTANCE (float), AL_ROLLOFF_FACTOR (float), AL_CONE_OUTER_GAIN (float), AL_CONE_INNER_ANGLE (float), AL_CONE_OUTER_ANGLE (float), AL_REFERENCE_DISTANCE (float), AL_POSITION (array(float,float,float)), AL_VELOCITY (array(float,float,float)), AL_DIRECTION (array(float,float,float)).

setting

Value to assign to specified property. Refer to the description of property for a description of the value(s) expected.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

openal_source_create()
openal_source_get()
openal_source_play()

Пред. | Начало | След.
openal_source_rewind | Уровень выше | openal_source_stop


openal_source_stop

(PECL)

openal_source_stop -- Stop playing the source

Описание

bool openal_source_stop ( resource source )

Список параметров

source

An Open AL(Source) resource (previously created by openal_source_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

openal_source_play()
openal_source_pause()
openal_source_rewind()

Пред. | Начало | След.
openal_source_set | Уровень выше | openal_stream


openal_stream

(PECL)

openal_stream -- Begin streaming on a source

Описание

resource openal_stream ( resource source, int format, int rate )

Список параметров

source

An Open AL(Source) resource (previously created by openal_source_create()).

format

Format of data, one of: AL_FORMAT_MONO8, AL_FORMAT_MONO16, AL_FORMAT_STEREO8 и AL_FORMAT_STEREO16

rate

Frequency of data to stream given in Hz.

Возвращаемые значения

Returns a stream resource on success, or FALSE on failure.

Смотрите также

openal_source_create()
fwrite()

Пред. | Начало | След.
openal_source_stop | Уровень выше | OpenSSL Functions


OpenSSL Functions

Руководство по PHP
Пред. След.

CI. OpenSSL Functions

Введение

This module uses the functions of OpenSSL for generation and verification of signatures and for sealing (encrypting) and opening (decrypting) data. OpenSSL offers many features that this module currently doesn't support. Some of these may be added in the future.

Требования

In order to use the OpenSSL functions you need to install the OpenSSL package. PHP between versions 4.0.5 and 4.3.1 will work with OpenSSL >= 0.9.5. Other versions (PHP <=4.0.4pl1 and >= 4.3.2) require OpenSSL >= 0.9.6.

Внимание

You are strongly encouraged to use the most recent OpenSSL version, otherwise your web server could be vulnerable to attack.

Установка

To use PHP's OpenSSL support you must also compile PHP --with-openssl[=DIR].

Note to Win32 Users: In order to enable this module on a Windows environment, you must copy libeay32.dll from the DLL folder of the PHP/Win32 binary package to the SYSTEM32 folder of your windows machine. (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM32)

Additionally, if you are planning to use the key generation and certificate signing functions, you will need to install a valid openssl.cnf on your system. As of PHP 4.3.0, we include a sample configuration file in the openssl folder of our win32 binary distribution. If you are using PHP 4.2.0 or later and are missing the file, you can obtain it from the OpenSSL home page or by downloading the PHP 4.3.0 release and using the configuration file from there.

Note to Win32 Users: PHP will search for the openssl.cnf using the following logic:

  • the OPENSSL_CONF environmental variable, if set, will be used as the path (including filename) of the configuration file.

  • the SSLEAY_CONF environmental variable, if set, will be used as the path (including filename) of the configuration file.

  • The file openssl.cnf will be assumed to be found in the default certificate area, as configured at the time that the openssl DLL was compiled. This is usually means that the default filename is c:\usr\local\ssl\openssl.cnf.

In your installation, you need to decide whether to install the configuration file at c:\usr\local\ssl\openssl.cnf or whether to install it someplace else and use environmental variables (possibly on a per-virtual-host basis) to locate the configuration file. Note that it is possible to override the default path from the script using the configargs of the functions that require a configuration file.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Key/Certificate parameters

Quite a few of the openssl functions require a key or a certificate parameter. PHP 4.0.5 and earlier have to use a key or certificate resource returned by one of the openssl_get_xxx functions. Later versions may use one of the following methods:

  • Certificates

    1. An X.509 resource returned from openssl_x509_read()

    2. A string having the format file://path/to/cert.pem; the named file must contain a PEM encoded certificate

    3. A string containing the content of a certificate, PEM encoded

  • Public/Private Keys

    1. A key resource returned from openssl_get_publickey() or openssl_get_privatekey()

    2. For public keys only: an X.509 resource

    3. A string having the format file://path/to/file.pem - the named file must contain a PEM encoded certificate/private key (it may contain both)

    4. A string containing the content of a certificate/key, PEM encoded

    5. For private keys, you may also use the syntax array($key, $passphrase) where $key represents a key specified using the file:// or textual content notation above, and $passphrase represents a string containing the passphrase for that private key

Certificate Verification

When calling a function that will verify a signature/certificate, the cainfo parameter is an array containing file and directory names that specify the locations of trusted CA files. If a directory is specified, then it must be a correctly formed hashed directory as the openssl command would use.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

Purpose checking flags

X509_PURPOSE_SSL_CLIENT (integer)

X509_PURPOSE_SSL_SERVER (integer)

X509_PURPOSE_NS_SSL_SERVER (integer)

X509_PURPOSE_SMIME_SIGN (integer)

X509_PURPOSE_SMIME_ENCRYPT (integer)

X509_PURPOSE_CRL_SIGN (integer)

X509_PURPOSE_ANY (integer)

Padding flags

OPENSSL_PKCS1_PADDING (integer)

OPENSSL_SSLV23_PADDING (integer)

OPENSSL_NO_PADDING (integer)

OPENSSL_PKCS1_OAEP_PADDING (integer)

Key types

OPENSSL_KEYTYPE_RSA (integer)

OPENSSL_KEYTYPE_DSA (integer)

OPENSSL_KEYTYPE_DH (integer)

PKCS7 Flags/Constants

The S/MIME functions make use of flags which are specified using a bitfield which can include one or more of the following values:

Таблица 1. PKCS7 CONSTANTS

Constant | Description
PKCS7_TEXT | Adds text/plain content type headers to encrypted/signed message. If decrypting or verifying, it strips those headers from the output - if the decrypted or verified message is not of MIME type text/plain then an error will occur.
PKCS7_BINARY | Normally the input message is converted to "canonical" format which is effectively using CR and LF as end of line: as required by the S/MIME specification. When this options is present, no translation occurs. This is useful when handling binary data which may not be in MIME format.
PKCS7_NOINTERN | When verifying a message, certificates (if any) included in the message are normally searched for the signing certificate. With this option only the certificates specified in the extracerts parameter of openssl_pkcs7_verify() are used. The supplied certificates can still be used as untrusted CAs however.
PKCS7_NOVERIFY | Do not verify the signers certificate of a signed message.
PKCS7_NOCHAIN | Do not chain verification of signers certificates: that is don't use the certificates in the signed message as untrusted CAs.
PKCS7_NOCERTS | When signing a message the signer's certificate is normally included - with this option it is excluded. This will reduce the size of the signed message but the verifier must have a copy of the signers certificate available locally (passed using the extracerts to openssl_pkcs7_verify() for example).
PKCS7_NOATTR | Normally when a message is signed, a set of attributes are included which include the signing time and the supported symmetric algorithms. With this option they are not included.
PKCS7_DETACHED | When signing a message, use cleartext signing with the MIME type multipart/signed. This is the default if you do not specify any flags to openssl_pkcs7_sign(). If you turn this option off, the message will be signed using opaque signing, which is more resistant to translation by mail relays but cannot be read by mail agents that do not support S/MIME.
PKCS7_NOSIGS | Don't try and verify the signatures on a message

Замечание: These constants were added in 4.0.6.

Содержание
openssl_csr_export_to_file -- Exports a CSR to a file
openssl_csr_export -- Exports a CSR as a string
openssl_csr_new -- Generates a CSR
openssl_csr_sign -- Sign a CSR with another certificate (or itself) and generate a certificate
openssl_error_string -- Return openSSL error message
openssl_free_key -- Free key resource
openssl_get_privatekey -- Alias of openssl_pkey_get_private()
openssl_get_publickey -- Alias of openssl_pkey_get_public()
openssl_open -- Open sealed data
openssl_pkcs7_decrypt -- Decrypts an S/MIME encrypted message
openssl_pkcs7_encrypt -- Encrypt an S/MIME message
openssl_pkcs7_sign -- Sign an S/MIME message
openssl_pkcs7_verify -- Verifies the signature of an S/MIME signed message
openssl_pkey_export_to_file -- Gets an exportable representation of a key into a file
openssl_pkey_export -- Gets an exportable representation of a key into a string
openssl_pkey_free -- Frees a private key
openssl_pkey_get_private -- Get a private key
openssl_pkey_get_public -- Extract public key from certificate and prepare it for use
openssl_pkey_new -- Generates a new private key
openssl_private_decrypt -- Decrypts data with private key
openssl_private_encrypt -- Encrypts data with private key
openssl_public_decrypt -- Decrypts data with public key
openssl_public_encrypt -- Encrypts data with public key
openssl_seal -- Seal (encrypt) data
openssl_sign -- Generate signature
openssl_verify -- Verify signature
openssl_x509_check_private_key -- Checks if a private key corresponds to a certificate
openssl_x509_checkpurpose -- Verifies if a certificate can be used for a particular purpose
openssl_x509_export_to_file -- Exports a certificate to file
openssl_x509_export -- Exports a certificate as a string
openssl_x509_free -- Free certificate resource
openssl_x509_parse -- Parse an X509 certificate and return the information as an array
openssl_x509_read -- Parse an X.509 certificate and return a resource identifier for it

Пред. | Начало | След.
openal_stream | Уровень выше | openssl_csr_export_to_file


openssl_csr_export_to_file

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_export_to_file -- Exports a CSR to a file

Description

bool openssl_csr_export_to_file ( resource csr, string outfilename [, bool notext] )

openssl_csr_export_to_file() takes the Certificate Signing Request represented by csr and saves it as ascii-armoured text into the file named by outfilename.

The optional parameter notext affects the verbosity of the output; if it is FALSE then additional human-readable information is included in the output. The default value of notext is TRUE.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also openssl_csr_export(),
openssl_csr_new() and
openssl_csr_sign().

Пред. | Начало | След.
OpenSSL Functions | Уровень выше | openssl_csr_export


openssl_csr_export

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_export -- Exports a CSR as a string

Description

bool openssl_csr_export ( resource csr, string &out [, bool notext] )

openssl_csr_export() takes the Certificate Signing Request represented by csr and stores it as ascii-armoured text into out, which is passed by reference.

The optional parameter notext affects the verbosity of the output; if it is FALSE then additional human-readable information is included in the output. The default value of notext is TRUE.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also openssl_csr_export_to_file(),
openssl_csr_new() and
openssl_csr_sign().

Пред. | Начало | След.
openssl_csr_export_to_file | Уровень выше | openssl_csr_new


openssl_csr_new

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_new -- Generates a CSR

Description

mixed openssl_csr_new ( array dn, resource &privkey [, array configargs [, array extraattribs]] )

openssl_csr_new() generates a new CSR (Certificate Signing Request) based on the information provided by dn, which represents the Distinguished Name to be used in the certificate.

privkey should be set to a private key that was previously generated by openssl_pkey_new() (or otherwise obtained from the other openssl_pkey family of functions). The corresponding public portion of the key will be used to sign the CSR.

extraattribs is used to specify additional configuration options for the CSR. Both dn and extraattribs are associative arrays whose keys are converted to OIDs and applied to the relevant part of the request.

Замечание: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

By default, the information in your system openssl.conf is used to initialize the request; you can specify a configuration file section by setting the config_section_section key of configargs. You can also specify an alternative openssl configuration file by setting the value of the config key to the path of the file you want to use. The following keys, if present in configargs behave as their equivalents in the openssl.conf, as listed in the table below.

Таблица 1. Configuration overrides

configargs key | type | openssl.conf equivalent | description
digest_alg | string | default_md | Selects which digest method to use
x509_extensions | string | x509_extensions | Selects which extensions should be used when creating an x509 certificate
req_extensions | string | req_extensions | Selects which extensions should be used when creating a CSR
private_key_bits | string | default_bits | Specifies how many bits should be used to generate a private key
private_key_type | integer | none | Specifies the type of private key to create. This can be one of OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH or OPENSSL_KEYTYPE_RSA. The default value is OPENSSL_KEYTYPE_RSA which is currently the only supported key type.
encrypt_key | boolean | encrypt_key | Should an exported key (with passphrase) be encrypted?

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. openssl_csr_new() example - creating a self-signed-certificate

<?php
// Fill in data for the distinguished name to be used in the cert
// You must change the values of these keys to match your name and
// company, or more precisely, the name and company of the person/site
// that you are generating the certificate for.
// For SSL certificates, the commonName is usually the domain name of
// that will be using the certificate, but for S/MIME certificates,
// the commonName will be the name of the individual who will use the
// certificate.
$dn = array(
    "countryName" => "UK",
    "stateOrProvinceName" => "Somerset",
    "localityName" => "Glastonbury",
    "organizationName" => "The Brain Room Limited",
    "organizationalUnitName" => "PHP Documentation Team",
    "commonName" => "Wez Furlong",
    "emailAddress" => "wez@example.com"
);

// Generate a new private (and public) key pair
$privkey = openssl_pkey_new();

// Generate a certificate signing request
$csr = openssl_csr_new($dn, $privkey);

// You will usually want to create a self-signed certificate at this
// point until your CA fulfills your request.
// This creates a self-signed cert that is valid for 365 days
$sscert = openssl_csr_sign($csr, null, $privkey, 365);

// Now you will want to preserve your private key, CSR and self-signed
// cert so that they can be installed into your web server, mail server
// or mail client (depending on the intended use of the certificate).
// This example shows how to get those things into variables, but you
// can also store them directly into files.
// Typically, you will send the CSR on to your CA who will then issue
// you with the "real" certificate.
openssl_csr_export($csr, $csrout) and var_dump($csrout);
openssl_x509_export($sscert, $certout) and var_dump($certout);
openssl_pkey_export($privkey, $pkeyout, "mypassword") and var_dump($pkeyout);

// Show any errors that occurred here
while (($e = openssl_error_string()) !== false) {
    echo $e . "\n";
}
?>

Пред. | Начало | След.
openssl_csr_export | Уровень выше | openssl_csr_sign


openssl_csr_sign

(PHP 4 >= 4.2.0, PHP 5)

openssl_csr_sign -- Sign a CSR with another certificate (or itself) and generate a certificate

Description

resource openssl_csr_sign ( mixed csr, mixed cacert, mixed priv_key, int days [, array configargs [, int serial]] )

openssl_csr_sign() generates an x509 certificate resource from the csr previously generated by openssl_csr_new(), but it can also be the path to a PEM encoded CSR when specified as file://path/to/csr or an exported string generated by openssl_csr_export(). The generated certificate will be signed by cacert. If cacert is NULL, the generated certificate will be a self-signed certificate. priv_key is the private key that corresponds to cacert. days specifies the length of time for which the generated certificate will be valid, in days. You can finetune the CSR signing by configargs. See openssl_csr_new() for more information about configargs. Since PHP 4.3.3 you can specify the serial number of issued certificate by serial. In earlier versions, it was always 0.

Returns an x509 certificate resource on success, FALSE on failure.

Замечание: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

Пример 1. openssl_csr_sign() example - signing a CSR (how to implement your own CA)

<?php
// Let's assume that this script is set to receive a CSR that has
// been pasted into a textarea from another page
$csrdata = $_POST["CSR"];

// We will sign the request using our own "certificate authority"
// certificate.  You can use any certificate to sign another, but
// the process is worthless unless the signing certificate is trusted
// by the software/users that will deal with the newly signed certificate

// We need our CA cert and its private key
$cacert = "file://path/to/ca.crt";
$privkey = array("file://path/to/ca.key", "your_ca_key_passphrase");

$userscert = openssl_csr_sign($csrdata, $cacert, $privkey, 365);

// Now display the generated certificate so that the user can
// copy and paste it into their local configuration (such as a file
// to hold the certificate for their SSL server)
openssl_x509_export($usercert, $certout);
echo $certout;

// Show any errors that occurred here
while (($e = openssl_error_string()) !== false) {
    echo $e . "\n";
}
?>

Пред. | Начало | След.
openssl_csr_new | Уровень выше | openssl_error_string


openssl_error_string

(PHP 4 >= 4.0.6, PHP 5)

openssl_error_string -- Return openSSL error message

Description

string openssl_error_string ( void )

Returns an error message string, or FALSE if there are no more error messages to return.

openssl_error_string() returns the last error from the openSSL library. Error messages are stacked, so this function should be called multiple times to collect all of the information.

Пример 1. openssl_error_string() example

<?php
// lets assume you just called an openssl function that failed
while ($msg = openssl_error_string())
    echo $msg . "<br />\n";
?>

Пред. | Начало | След.
openssl_csr_sign | Уровень выше | openssl_free_key


openssl_free_key

(PHP 4 >= 4.0.4, PHP 5)

openssl_free_key -- Free key resource

Description

void openssl_free_key ( resource key_identifier )

openssl_free_key() frees the key associated with the specified key_identifier from memory.

Пред. | Начало | След.
openssl_error_string | Уровень выше | openssl_get_privatekey


openssl_get_privatekey

(PHP 4 >= 4.0.4, PHP 5)

openssl_get_privatekey -- Alias of openssl_pkey_get_private()

Описание

This function is an alias of: openssl_pkey_get_private().

Пред. | Начало | След.
openssl_free_key | Уровень выше | openssl_get_publickey


openssl_get_publickey

(PHP 4 >= 4.0.4, PHP 5)

openssl_get_publickey -- Alias of openssl_pkey_get_public()

Описание

This function is an alias of: openssl_pkey_get_public().

Пред. | Начало | След.
openssl_get_privatekey | Уровень выше | openssl_open


openssl_open

(PHP 4 >= 4.0.4, PHP 5)

openssl_open -- Open sealed data

Description

bool openssl_open ( string sealed_data, string &open_data, string env_key, mixed priv_key_id )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. If successful the opened data is returned in open_data.

openssl_open() opens (decrypts) sealed_data using the private key associated with the key identifier priv_key_id and the envelope key env_key, and fills open_data with the decrypted data. The envelope key is generated when the data are sealed and can only be used by one specific private key. See openssl_seal() for more information.

Пример 1. openssl_open() example

<?php
// $sealed and $env_key are assumed to contain the sealed data
// and our envelope key, both given to us by the sealer.

// fetch private key from file and ready it
$fp = fopen("/src/openssl-0.9.6/demos/sign/key.pem", "r");
$priv_key = fread($fp, 8192);
fclose($fp);
$pkeyid = openssl_get_privatekey($priv_key);

// decrypt the data and store it in $open
if (openssl_open($sealed, $open, $env_key, $pkeyid)) {
    echo "here is the opened data: ", $open;
} else {
    echo "failed to open data";
}

// free the private key from memory
openssl_free_key($pkeyid);
?>

See also openssl_seal().

Пред. | Начало | След.
openssl_get_publickey | Уровень выше | openssl_pkcs7_decrypt


openssl_pkcs7_decrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_decrypt -- Decrypts an S/MIME encrypted message

Description

bool openssl_pkcs7_decrypt ( string infilename, string outfilename, mixed recipcert [, mixed recipkey] )

Decrypts the S/MIME encrypted message contained in the file specified by infilename using the certificate and its associated private key specified by recipcert and recipkey.

The decrypted message is output to the file specified by outfilename

Пример 1. openssl_pkcs7_decrypt() example

<?php
// $cert and $key are assumed to contain your personal certificate and private
// key pair, and that you are the recipient of an S/MIME message
$infilename = "encrypted.msg";  // this file holds your encrypted message
$outfilename = "decrypted.msg"; // make sure you can write to this file

if (openssl_pkcs7_decrypt($infilename, $outfilename, $cert, $key)) {
    echo "decrypted!";
} else {
    echo "failed to decrypt!";
}
?>

Пред. | Начало | След.
openssl_open | Уровень выше | openssl_pkcs7_encrypt


openssl_pkcs7_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_encrypt -- Encrypt an S/MIME message

Description

bool openssl_pkcs7_encrypt ( string infile, string outfile, mixed recipcerts, array headers [, int flags [, int cipherid]] )

openssl_pkcs7_encrypt() takes the contents of the file named infile and encrypts them using an RC2 40-bit cipher so that they can only be read by the intended recipients specified by recipcerts, which is either a lone X.509 certificate, or an array of X.509 certificates. headers is an array of headers that will be prepended to the data after it has been encrypted. flags can be used to specify options that affect the encoding process - see PKCS7 constants. headers can be either an associative array keyed by header name, or an indexed array, where each element contains a single header line. Cipher can be selected with cipherid since PHP 5.

Пример 1. openssl_pkcs7_encrypt() example

<?php
// the message you want to encrypt and send to your secret agent
// in the field, known as nighthawk.  You have his certificate
// in the file nighthawk.pem
$data = <<<EOD
Nighthawk,

Top secret, for your eyes only!

The enemy is closing in! Meet me at the cafe at 8.30am
to collect your forged passport!

HQ
EOD;

// load key
$key = file_get_contents("nighthawk.pem");

// save message to file
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);

// encrypt it
if (openssl_pkcs7_encrypt("msg.txt", "enc.txt", $key,
    array("To" => "nighthawk@example.com", // keyed syntax
          "From: HQ <hq@example.com>", // indexed syntax
          "Subject" => "Eyes only"))) {
    // message encrypted - send it!
    exec(ini_get("sendmail_path") . " < enc.txt");
}
?>

Пред. | Начало | След.
openssl_pkcs7_decrypt | Уровень выше | openssl_pkcs7_sign


openssl_pkcs7_sign

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_sign -- Sign an S/MIME message

Description

bool openssl_pkcs7_sign ( string infilename, string outfilename, mixed signcert, mixed privkey, array headers [, int flags [, string extracerts]] )

openssl_pkcs7_sign() takes the contents of the file named infilename and signs them using the certificate and its matching private key specified by signcert and privkey parameters.

headers is an array of headers that will be prepended to the data after it has been signed (see openssl_pkcs7_encrypt() for more information about the format of this parameter.

flags can be used to alter the output - see PKCS7 constants - if not specified, it defaults to PKCS7_DETACHED.

extracerts specifies the name of a file containing a bunch of extra certificates to include in the signature which can for example be used to help the recipient to verify the certificate that you used.

Пример 1. openssl_pkcs7_sign() example

<?php
// the message you want to sign so that recipient can be sure it was you that
// sent it
$data = <<<EOD

You have my authorization to spend $10,000 on dinner expenses.

The CEO
EOD;
// save message to file
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);
// encrypt it
if (openssl_pkcs7_sign("msg.txt", "signed.txt", "mycert.pem",
    array("file://mycert.pem", "mypassphrase"),
    array("To" => "joes@example.com", // keyed syntax
          "From: HQ <ceo@example.com>", // indexed syntax
          "Subject" => "Eyes only")
    )) {
    // message signed - send it!
    exec(ini_get("sendmail_path") . " < signed.txt");
}
?>

Пред. | Начало | След.
openssl_pkcs7_encrypt | Уровень выше | openssl_pkcs7_verify


openssl_pkcs7_verify

(PHP 4 >= 4.0.6, PHP 5)

openssl_pkcs7_verify -- Verifies the signature of an S/MIME signed message

Description

mixed openssl_pkcs7_verify ( string filename, int flags [, string outfilename [, array cainfo [, string extracerts]]] )

openssl_pkcs7_verify() reads the S/MIME message contained in the filename specified by filename and examines the digital signature. It returns TRUE if the signature is verified, FALSE if it is not correct (the message has been tampered with, or the signing certificate is invalid), or -1 on error.

flags can be used to affect how the signature is verified - see PKCS7 constants for more information.

If the outfilename is specified, it should be a string holding the name of a file into which the certificates of the persons that signed the messages will be stored in PEM format.

If the cainfo is specified, it should hold information about the trusted CA certificates to use in the verification process - see certificate verification for more information about this parameter.

If the extracerts is specified, it is the filename of a file containing a bunch of certificates to use as untrusted CAs.

Пред. | Начало | След.
openssl_pkcs7_sign | Уровень выше | openssl_pkey_export_to_file


openssl_pkey_export_to_file

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_export_to_file -- Gets an exportable representation of a key into a file

Description

bool openssl_pkey_export_to_file ( mixed key, string outfilename [, string passphrase [, array configargs]] )

openssl_pkey_export_to_file() saves an ascii-armoured (PEM encoded) rendition of key into the file named by outfilename. The key can be optionally protected by a passphrase. configargs can be used to fine-tune the export process by specifying and/or overriding options for the openssl configuration file. See openssl_csr_new() for more information about configargs. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

Пред. | Начало | След.
openssl_pkcs7_verify | Уровень выше | openssl_pkey_export


openssl_pkey_export

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_export -- Gets an exportable representation of a key into a string

Description

bool openssl_pkey_export ( mixed key, string &out [, string passphrase [, array configargs]] )

openssl_pkey_export() exports key as a PEM encoded string and stores it into out (which is passed by reference). The key is optionally protected by passphrase. configargs can be used to fine-tune the export process by specifying and/or overriding options for the openssl configuration file. See openssl_csr_new() for more information about configargs. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

Пред. | Начало | След.
openssl_pkey_export_to_file | Уровень выше | openssl_pkey_free


openssl_pkey_get_private

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_get_private -- Get a private key

Description

resource openssl_pkey_get_private ( mixed key [, string passphrase] )

Returns a positive key resource identifier on success, or FALSE on error.

openssl_get_privatekey() parses key and prepares it for use by other functions. key can be one of the following:

  1. a string having the format file://path/to/file.pem. The named file must contain a PEM encoded certificate/private key (it may contain both).

  2. A PEM formatted private key.

The optional parameter passphrase must be used if the specified key is encrypted (protected by a passphrase).

Пред. | Начало | След.
openssl_pkey_free | Уровень выше | openssl_pkey_get_public


openssl_pkey_get_public

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_get_public -- Extract public key from certificate and prepare it for use

Description

resource openssl_pkey_get_public ( mixed certificate )

Returns a positive key resource identifier on success, or FALSE on error.

openssl_get_publickey() extracts the public key from certificate and prepares it for use by other functions. certificate can be one of the following:

  1. an X.509 certificate resource

  2. a string having the format file://path/to/file.pem. The named file must contain a PEM encoded certificate/private key (it may contain both).

  3. A PEM formatted private key.

Пред. | Начало | След.
openssl_pkey_get_private | Уровень выше | openssl_pkey_new


openssl_pkey_new

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_new -- Generates a new private key

Description

resource openssl_pkey_new ( [array configargs] )

openssl_pkey_new() generates a new private and public key pair. The public component of the key can be obtained using openssl_pkey_get_public(). You can finetune the key generation (such as specifying the number of bits) using configargs. See openssl_csr_new() for more information about configargs.

Замечание: You need to have a valid openssl.cnf installed for this function to operate correctly. See the notes under the installation section for more information.

Пред. | Начало | След.
openssl_pkey_get_public | Уровень выше | openssl_private_decrypt


openssl_private_decrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_private_decrypt -- Decrypts data with private key

Description

bool openssl_private_decrypt ( string data, string &decrypted, mixed key [, int padding] )

openssl_private_decrypt() decrypts data that was previous encrypted via openssl_public_encrypt() and stores the result into decrypted. key must be the private key corresponding that was used to encrypt the data. padding defaults to OPENSSL_PKCS1_PADDING, but can also be one of OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING, OPENSSL_NO_PADDING.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

You can use this function e.g. to decrypt data which were supposed only to you.

See also openssl_public_encrypt() and openssl_public_decrypt().

Пред. | Начало | След.
openssl_pkey_new | Уровень выше | openssl_private_encrypt


openssl_private_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_private_encrypt -- Encrypts data with private key

Description

bool openssl_private_encrypt ( string data, string &crypted, mixed key [, int padding] )

openssl_private_encrypt() encrypts data with private key and stores the result into crypted. Encrypted data can be decrypted via openssl_public_decrypt(). padding defaults to OPENSSL_PKCS1_PADDING, but can also be OPENSSL_NO_PADDING.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function can be used e.g. to sign data (or its hash) to prove that it is not written by someone else.

See also openssl_public_decrypt() and openssl_public_encrypt().

Пред. | Начало | След.
openssl_private_decrypt | Уровень выше | openssl_public_decrypt


openssl_public_decrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_public_decrypt -- Decrypts data with public key

Description

bool openssl_public_decrypt ( string data, string &decrypted, mixed key [, int padding] )

openssl_public_decrypt() decrypts data that was previous encrypted via openssl_private_encrypt() and stores the result into decrypted. key must be the public key corresponding that was used to encrypt the data. padding defaults to OPENSSL_PKCS1_PADDING, but can also be OPENSSL_NO_PADDING.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

You can use this function e.g. to check if the message was written by the owner of the private key.

See also openssl_private_encrypt() and openssl_private_decrypt().

Пред. | Начало | След.
openssl_private_encrypt | Уровень выше | openssl_public_encrypt


openssl_public_encrypt

(PHP 4 >= 4.0.6, PHP 5)

openssl_public_encrypt -- Encrypts data with public key

Description

bool openssl_public_encrypt ( string data, string &crypted, mixed key [, int padding] )

openssl_public_encrypt() encrypts data with public key and stores the result into crypted. Encrypted data can be decrypted via openssl_private_decrypt(). padding defaults to OPENSSL_PKCS1_PADDING, but can also be one of OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING, OPENSSL_NO_PADDING.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function can be used e.g. to encrypt message which can be then read only by owner of the private key. It can be also used to store secure data in database.

See also openssl_private_decrypt() and openssl_private_encrypt().

Пред. | Начало | След.
openssl_public_decrypt | Уровень выше | openssl_seal


openssl_seal

(PHP 4 >= 4.0.4, PHP 5)

openssl_seal -- Seal (encrypt) data

Description

int openssl_seal ( string data, string &sealed_data, array &env_keys, array pub_key_ids )

Returns the length of the sealed data on success, or FALSE on error. If successful the sealed data is returned in sealed_data, and the envelope keys in env_keys.

openssl_seal() seals (encrypts) data by using RC4 with a randomly generated secret key. The key is encrypted with each of the public keys associated with the identifiers in pub_key_ids and each encrypted key is returned in env_keys. This means that one can send sealed data to multiple recipients (provided one has obtained their public keys). Each recipient must receive both the sealed data and the envelope key that was encrypted with the recipient's public key.

Пример 1. openssl_seal() example

<?php
// $data is assumed to contain the data to be sealed

// fetch public keys for our recipients, and ready them
$fp = fopen("/src/openssl-0.9.6/demos/maurice/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk1 = openssl_get_publickey($cert);
// Repeat for second recipient
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk2 = openssl_get_publickey($cert);

// seal message, only owners of $pk1 and $pk2 can decrypt $sealed with keys
// $ekeys[0] and $ekeys[1] respectively.
openssl_seal($data, $sealed, $ekeys, array($pk1, $pk2));

// free the keys from memory
openssl_free_key($pk1);
openssl_free_key($pk2);
?>

See also openssl_open().

Пред. | Начало | След.
openssl_public_encrypt | Уровень выше | openssl_sign


openssl_sign

(PHP 4 >= 4.0.4, PHP 5)

openssl_sign -- Generate signature

Description

bool openssl_sign ( string data, string &signature, mixed priv_key_id [, int signature_alg] )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. If successful the signature is returned in signature.

openssl_sign() computes a signature for the specified data by using SHA1 for hashing followed by encryption using the private key associated with priv_key_id. Note that the data itself is not encrypted.

Пример 1. openssl_sign() example

<?php
// $data is assumed to contain the data to be signed

// fetch private key from file and ready it
$fp = fopen("/src/openssl-0.9.6/demos/sign/key.pem", "r");
$priv_key = fread($fp, 8192);
fclose($fp);
$pkeyid = openssl_get_privatekey($priv_key);

// compute signature
openssl_sign($data, $signature, $pkeyid);

// free the key from memory
openssl_free_key($pkeyid);
?>

See also openssl_verify().

Пред. | Начало | След.
openssl_seal | Уровень выше | openssl_verify


openssl_verify

(PHP 4 >= 4.0.4, PHP 5)

openssl_verify -- Verify signature

Description

int openssl_verify ( string data, string signature, mixed pub_key_id )

Returns 1 if the signature is correct, 0 if it is incorrect, and -1 on error.

openssl_verify() verifies that the signature is correct for the specified data using the public key associated with pub_key_id. This must be the public key corresponding to the private key used for signing.

Пример 1. openssl_verify() example

<?php
// $data and $signature are assumed to contain the data and the signature

// fetch public key from certificate and ready it
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pubkeyid = openssl_get_publickey($cert);

// state whether signature is okay or not
$ok = openssl_verify($data, $signature, $pubkeyid);
if ($ok == 1) {
    echo "good";
} elseif ($ok == 0) {
    echo "bad";
} else {
    echo "ugly, error checking signature";
}
// free the key from memory
openssl_free_key($pubkeyid);
?>

See also openssl_sign().

Пред. | Начало | След.
openssl_sign | Уровень выше | openssl_x509_check_private_key


openssl_x509_check_private_key

(PHP 4 >= 4.2.0, PHP 5)

openssl_x509_check_private_key -- Checks if a private key corresponds to a certificate

Description

bool openssl_x509_check_private_key ( mixed cert, mixed key )

openssl_x509_check_private_key() returns TRUE if key is the private key that corresponds to cert, or FALSE otherwise.

Пред. | Начало | След.
openssl_verify | Уровень выше | openssl_x509_checkpurpose


openssl_x509_checkpurpose

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_checkpurpose -- Verifies if a certificate can be used for a particular purpose

Description

int openssl_x509_checkpurpose ( mixed x509cert, int purpose [, array cainfo [, string untrustedfile]] )

Returns TRUE if the certificate can be used for the intended purpose, FALSE if it cannot, or -1 on error.

openssl_x509_checkpurpose() examines the certificate specified by x509cert to see if it can be used for the purpose specified by purpose.

cainfo should be an array of trusted CA files/dirs as described in Certificate Verification. It defaults to an empty array.

untrustedfile, if specified, is the name of a PEM encoded file holding certificates that can be used to help verify the certificate, although no trust in placed in the certificates that come from that file.

Таблица 1. openssl_x509_checkpurpose() purposes

Constant | Description
X509_PURPOSE_SSL_CLIENT | Can the certificate be used for the client side of an SSL connection?
X509_PURPOSE_SSL_SERVER | Can the certificate be used for the server side of an SSL connection?
X509_PURPOSE_NS_SSL_SERVER | Can the cert be used for Netscape SSL server?
X509_PURPOSE_SMIME_SIGN | Can the cert be used to sign S/MIME email?
X509_PURPOSE_SMIME_ENCRYPT | Can the cert be used to encrypt S/MIME email?
X509_PURPOSE_CRL_SIGN | Can the cert be used to sign a certificate revocation list (CRL)?
X509_PURPOSE_ANY | Can the cert be used for Any/All purposes?
These options are not bitfields - you may specify one only!

Пред. | Начало | След.
openssl_x509_check_private_key | Уровень выше | openssl_x509_export_to_file


openssl_x509_export_to_file

(PHP 4 >= 4.2.0, PHP 5)

openssl_x509_export_to_file -- Exports a certificate to file

Description

bool openssl_x509_export_to_file ( mixed x509, string outfilename [, bool notext] )

openssl_x509_export_to_file() stores x509 into a file named by outfilename in a PEM encoded format.

The optional parameter notext affects the verbosity of the output; if it is FALSE then additional human-readable information is included in the output. The default value of notext is TRUE.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
openssl_x509_checkpurpose | Уровень выше | openssl_x509_export


openssl_x509_export

(PHP 4 >= 4.2.0, PHP 5)

openssl_x509_export -- Exports a certificate as a string

Description

bool openssl_x509_export ( mixed x509, string &output [, bool notext] )

openssl_x509_export() stores x509 into a string named by output in a PEM encoded format.

The optional parameter notext affects the verbosity of the output; if it is FALSE then additional human-readable information is included in the output. The default value of notext is TRUE.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
openssl_x509_export_to_file | Уровень выше | openssl_x509_free


openssl_x509_free

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_free -- Free certificate resource

Description

void openssl_x509_free ( resource x509cert )

openssl_x509_free() frees the certificate associated with the specified x509cert resource from memory.

Пред. | Начало | След.
openssl_x509_export | Уровень выше | openssl_x509_parse


openssl_x509_parse

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_parse -- Parse an X509 certificate and return the information as an array

Description

array openssl_x509_parse ( mixed x509cert [, bool shortnames] )

openssl_x509_parse() returns information about the supplied x509cert, including fields such as subject name, issuer name, purposes, valid from and valid to dates etc. shortnames controls how the data is indexed in the array - if shortnames is TRUE (the default) then fields will be indexed with the short name form, otherwise, the long name form will be used - e.g.: CN is the shortname form of commonName.

The structure of the returned data is (deliberately) not yet documented, as it is still subject to change.

Пред. | Начало | След.
openssl_x509_free | Уровень выше | openssl_x509_read


openssl_x509_read

(PHP 4 >= 4.0.6, PHP 5)

openssl_x509_read -- Parse an X.509 certificate and return a resource identifier for it

Description

resource openssl_x509_read ( mixed x509certdata )

openssl_x509_read() parses the certificate supplied by x509certdata and returns a resource identifier for it.

Пред. | Начало | След.
openssl_x509_parse | Уровень выше | Oracle Functions [deprecated]


Oracle Functions [deprecated]

Руководство по PHP
Пред. След.

CII. Oracle Functions [deprecated]

Введение

This extension adds support for Oracle database server access. See also the OCI8 extension.

Замечание: This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 5.1.0.

Установка

You have to compile PHP with the option --with-oracle[=DIR], where DIR defaults to your environment variable ORACLE_HOME.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

ORA_BIND_INOUT (integer)

ORA_BIND_IN (integer)

ORA_BIND_OUT (integer)

ORA_FETCHINTO_ASSOC (integer)

ORA_FETCHINTO_NULLS (integer)

Содержание
ora_bind -- Binds a PHP variable to an Oracle parameter
ora_close -- Closes an Oracle cursor
ora_columnname -- Gets the name of an Oracle result column
ora_columnsize -- Returns the size of an Oracle result column
ora_columntype -- Gets the type of an Oracle result column
ora_commit -- Commit an Oracle transaction
ora_commitoff -- Disable automatic commit
ora_commiton -- Enable automatic commit
ora_do -- Parse, Exec, Fetch
ora_error -- Gets an Oracle error message
ora_errorcode -- Gets an Oracle error code
ora_exec -- Execute a parsed statement on an Oracle cursor
ora_fetch_into -- Fetch a row into the specified result array
ora_fetch -- Fetch a row of data from a cursor
ora_getcolumn -- Get data from a fetched column
ora_logoff -- Close an Oracle connection
ora_logon -- Open an Oracle connection
ora_numcols -- Returns the number of columns
ora_numrows -- Returns the number of rows
ora_open -- Opens an Oracle cursor
ora_parse -- Parse an SQL statement with Oracle
ora_plogon -- Open a persistent Oracle connection
ora_rollback -- Rolls back a transaction

Пред. | Начало | След.
openssl_x509_read | Уровень выше | ora_bind


ora_bind

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_bind -- Binds a PHP variable to an Oracle parameter

Description

bool ora_bind ( resource cursor, string PHP_variable_name, string SQL_parameter_name, int length [, int type] )

This function binds the named PHP variable with a SQL parameter. The SQL parameter must be in the form ":name". With the optional type parameter, you can define whether the SQL parameter is an in/out (0, default), in (1) or out (2) parameter. As of PHP 3.0.1, you can use the constants ORA_BIND_INOUT, ORA_BIND_IN and ORA_BIND_OUT instead of the numbers.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Details about the error can be retrieved using the ora_error() and ora_errorcode() functions.

ora_bind() must be called after ora_parse() and before ora_exec(). Input values can be given by assignment to the bound PHP variables, after calling ora_exec() the bound PHP variables contain the output values if available.

Пример 1. ora_bind() example

<?php
  ora_parse($curs, "declare tmp INTEGER; begin tmp := :in; :out := tmp; :x := 7.77; end;");
  ora_bind($curs, "result", ":x", $len, 2);
  ora_bind($curs, "input", ":in", 5, 1);
  ora_bind($curs, "output", ":out", 5, 2);
  $input = 765;
  ora_exec($curs);
  echo "Result: $result<br />Out: $output<br />In: $input";
?>

Пред. | Начало | След.
Oracle Functions [deprecated] | Уровень выше | ora_close


ora_close

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_close -- Closes an Oracle cursor

Description

bool ora_close ( resource cursor )

This function closes a data cursor opened with ora_open().

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Details about the error can be retrieved using the ora_error() and ora_errorcode() functions.

Пред. | Начало | След.
ora_bind | Уровень выше | ora_columnname


ora_columnname

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_columnname -- Gets the name of an Oracle result column

Description

string ora_columnname ( resource cursor, int column )

Returns the name of the field/column column on the cursor cursor. The returned name is in all uppercase letters. Column 0 is the first column.

Пред. | Начало | След.
ora_close | Уровень выше | ora_columnsize


ora_columnsize

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_columnsize -- Returns the size of an Oracle result column

Description

int ora_columnsize ( resource cursor, int column )

Returns the size of the Oracle column column on the cursor cursor. Column 0 is the first column.

Пред. | Начало | След.
ora_columnname | Уровень выше | ora_columntype


ora_columntype

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_columntype -- Gets the type of an Oracle result column

Description

string ora_columntype ( resource cursor, int column )

Returns the Oracle data type name of the field/column column on the cursor cursor. Column 0 is the first column. The returned type will be one of the following:

"VARCHAR2"
"VARCHAR"
"CHAR"
"NUMBER"
"LONG"
"LONG RAW"
"ROWID"
"DATE"
"CURSOR"

Пред. | Начало | След.
ora_columnsize | Уровень выше | ora_commit


ora_commit

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_commit -- Commit an Oracle transaction

Description

bool ora_commit ( resource conn )

This function commits an Oracle transaction. A transaction is defined as all the changes on a given connection since the last commit/rollback, autocommit was turned off or when the connection was established.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Details about the error can be retrieved using the ora_error() and ora_errorcode() functions.

See also ora_commiton() and ora_commitoff().

Пред. | Начало | След.
ora_columntype | Уровень выше | ora_commitoff


ora_commitoff

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_commitoff -- Disable automatic commit

Description

bool ora_commitoff ( resource conn )

This function turns off automatic commit after each ora_exec() on the given connection.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Details about the error can be retrieved using the ora_error() and ora_errorcode() functions.

See also ora_commiton() and ora_commit().

Пред. | Начало | След.
ora_commit | Уровень выше | ora_commiton


ora_commiton

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_commiton -- Enable automatic commit

Description

bool ora_commiton ( resource conn )

This function turns on automatic commit after each ora_exec() on the given connection.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Details about the error can be retrieved using the ora_error() and ora_errorcode() functions.

See also ora_commitoff() and ora_commit().

Пред. | Начало | След.
ora_commitoff | Уровень выше | ora_do


ora_do

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_do -- Parse, Exec, Fetch

Description

resource ora_do ( resource conn, string query )

ora_do() is quick combination of ora_parse(), ora_exec() and ora_fetch(). It will parse and execute a statement, then fetch the first result row.

This function returns a cursor index or FALSE on failure. Details about the error can be retrieved using the ora_error() and ora_errorcode() functions.

See also ora_parse(),ora_exec(), and ora_fetch().

Пред. | Начало | След.
ora_commiton | Уровень выше | ora_error


ora_error

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_error -- Gets an Oracle error message

Description

string ora_error ( [resource cursor_or_connection] )

Returns an error message of the form XXX-NNNNN where XXX is where the error comes from and NNNNN identifies the error message.

Замечание: Support for connection ids was added in 3.0.4.

On Unix versions of Oracle, you can find details about an error message like this: $ oerr ora 00001 00001, 00000, "unique constraint (%s.%s) violated" // *Cause: An update or insert statement attempted to insert a duplicate key // For Trusted ORACLE configured in DBMS MAC mode, you may see // this message if a duplicate entry exists at a different level. // *Action: Either remove the unique restriction or do not insert the key

Пред. | Начало | След.
ora_do | Уровень выше | ora_errorcode


ora_errorcode

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_errorcode -- Gets an Oracle error code

Description

int ora_errorcode ( [resource cursor_or_connection] )

Returns the numeric error code of the last executed statement on the specified cursor or connection.

Замечание: Support for connection ids was added in 3.0.4.

Пред. | Начало | След.
ora_error | Уровень выше | ora_exec


ora_exec

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_exec -- Execute a parsed statement on an Oracle cursor

Description

bool ora_exec ( resource cursor )

ora_exec() execute the parsed statement cursor, already parsed by ora_parse().

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Details about the error can be retrieved using the ora_error() and ora_errorcode() functions.

See also ora_parse(), ora_fetch(), and ora_do().

Пред. | Начало | След.
ora_errorcode | Уровень выше | ora_fetch_into


ora_fetch_into

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_fetch_into -- Fetch a row into the specified result array

Description

int ora_fetch_into ( resource cursor, array &result [, int flags] )

Fetches a row of data into an array. The flags has two flag values: if the ORA_FETCHINTO_NULLS flag is set, columns with NULL values are set in the array; and if the ORA_FETCHINTO_ASSOC flag is set, an associative array is created.

Returns the number of columns fetched.

Пример 1. ora_fetch_into()

<?php
$results = array();
ora_fetch_into($cursor, $results);
echo $results[0];
echo $results[1];
$results = array();
ora_fetch_into($cursor, $results, ORA_FETCHINTO_NULLS|ORA_FETCHINTO_ASSOC);
echo $results['MyColumn'];
?>

See also ora_parse(),ora_exec(), ora_fetch(), and ora_do().

Пред. | Начало | След.
ora_exec | Уровень выше | ora_fetch


ora_fetch

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_fetch -- Fetch a row of data from a cursor

Description

bool ora_fetch ( resource cursor )

Retrieves a row of data from the specified cursor.

Returns TRUE (a row was fetched) or FALSE (no more rows, or an
error occurred). If an error occurred, details can be retrieved
using the ora_error() and
ora_errorcode() functions. If there was no
error, ora_errorcode() will return 0.

See also ora_parse(),ora_exec(), and ora_do().

Пред. | Начало | След.
ora_fetch_into | Уровень выше | ora_getcolumn


ora_getcolumn

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_getcolumn -- Get data from a fetched column

Description

string ora_getcolumn ( resource cursor, int column )

Fetches the data for a column or function result.

Returns the column data. If an error occurs, FALSE is returned and ora_errorcode() will return a non-zero value. Note, however, that a test for FALSE on the results from this function may be TRUE in cases where there is not error as well (NULL result, empty string, the number 0, the string "0").

Пред. | Начало | След.
ora_fetch | Уровень выше | ora_logoff


ora_logoff

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_logoff -- Close an Oracle connection

Description

bool ora_logoff ( resource connection )

Logs out the user and disconnects from the server.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Details about the error can be retrieved using the ora_error() and ora_errorcode() functions.

See also ora_logon().

Пред. | Начало | След.
ora_getcolumn | Уровень выше | ora_logon


ora_logon

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_logon -- Open an Oracle connection

Description

resource ora_logon ( string user, string password )

Establishes a connection between PHP and an Oracle database with the given username user and password password.

Connections can be made using SQL*Net by supplying the TNS name to user like this:

<?php
$conn = Ora_Logon("user@TNSNAME", "pass");
?>

If you have character data with non-ASCII characters, you should make sure that NLS_LANG is set in your environment. For server modules, you should set it in the server's environment before starting the server.

Returns a connection index on success, or FALSE on failure. Details about the error can be retrieved using the ora_error() and ora_errorcode() functions.

Пред. | Начало | След.
ora_logoff | Уровень выше | ora_numcols


ora_numcols

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_numcols -- Returns the number of columns

Description

int ora_numcols ( resource cursor )

ora_numcols() returns the number of columns in a result. Only returns meaningful values after an parse/exec/fetch sequence.

See also ora_parse(),ora_exec(), ora_fetch(), and ora_do().

Пред. | Начало | След.
ora_logon | Уровень выше | ora_numrows


ora_numrows

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_numrows -- Returns the number of rows

Description

int ora_numrows ( resource cursor )

ora_numrows() returns the number of rows in a result.

Пред. | Начало | След.
ora_numcols | Уровень выше | ora_open


ora_open

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_open -- Opens an Oracle cursor

Description

resource ora_open ( resource connection )

Opens an Oracle cursor associated with connection.

Returns a cursor index or FALSE on failure. Details about the error can be retrieved using the ora_error() and ora_errorcode() functions.

Пред. | Начало | След.
ora_numrows | Уровень выше | ora_parse


ora_parse

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_parse -- Parse an SQL statement with Oracle

Description

bool ora_parse ( resource cursor, string sql_statement [, int defer] )

This function parses an SQL statement or a PL/SQL block and associates it with the given cursor.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also ora_exec(), ora_fetch(), and ora_do().

Пред. | Начало | След.
ora_open | Уровень выше | ora_plogon


ora_plogon

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_plogon -- Open a persistent Oracle connection

Description

resource ora_plogon ( string user, string password )

Establishes a persistent connection between PHP and an Oracle database with the username user and password password.

See also ora_logon().

Пред. | Начало | След.
ora_parse | Уровень выше | ora_rollback


ora_rollback

(PHP 3, PHP 4, PHP 5 <= 5.1.0RC1)

ora_rollback -- Rolls back a transaction

Description

bool ora_rollback ( resource connection )

This function undoes an Oracle transaction. (See ora_commit() for the definition of a transaction.)

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Details about the error can be retrieved using the ora_error() and ora_errorcode() functions.

Пред. | Начало | След.
ora_plogon | Уровень выше | Oracle Functions (PDO_OCI)


Output Control Functions

Руководство по PHP
Пред. След.

CIV. Output Control Functions

Введение

The Output Control functions allow you to control when output is sent from the script. This can be useful in several different situations, especially if you need to send headers to the browser after your script has began outputting data. The Output Control functions do not affect headers sent using header() or setcookie(), only functions such as echo() and data between blocks of PHP code.

Требования

Эти функции всегда доступны.

Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Output Control configuration options

Name | Default | Changeable | Changelog
output_buffering | "0" | PHP_INI_PERDIR |
output_handler | NULL | PHP_INI_PERDIR | Available since PHP 4.0.4.
implicit_flush | "0" | PHP_INI_ALL | PHP_INI_PERDIR in PHP <= 4.2.3.
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

output_buffering boolean/integer

You can enable output buffering for all files by setting this directive to 'On'. If you wish to limit the size of the buffer to a certain size - you can use a maximum number of bytes instead of 'On', as a value for this directive (e.g., output_buffering=4096). As of PHP 4.3.5, this directive is always Off in PHP-CLI.

output_handler string

You can redirect all of the output of your scripts to a function. For example, if you set output_handler to mb_output_handler(), character encoding will be transparently converted to the specified encoding. Setting any output handler automatically turns on output buffering.

Замечание:
      You cannot use both mb_output_handler() with
      ob_iconv_handler() and you cannot use both
      ob_gzhandler() and
      zlib.output_compression.

Замечание: Only built-in functions can be used with this directive. For user defined functions, use ob_start().

implicit_flush boolean

FALSE by default. Changing this to TRUE tells PHP to tell the output layer to flush itself automatically after every output block. This is equivalent to calling the PHP function flush() after each and every call to print() or echo() and each and every HTML block.

When using PHP within an web environment, turning this option on has serious performance implications and is generally recommended for debugging purposes only. This value defaults to TRUE when operating under the CLI SAPI.

See also ob_implicit_flush().

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Примеры

Пример 1. Output Control example

<?php

ob_start();
echo "Hello\n";

setcookie("cookiename", "cookiedata");

ob_end_flush();

?>

In the above example, the output from echo() would be stored in the output buffer until ob_end_flush() was called. In the mean time, the call to setcookie() successfully stored a cookie without causing an error. (You can not normally send headers to the browser after data has already been sent.)

Замечание: When upgrading from PHP 4.1 (and 4.2) to 4.3 that due to a bug in earlier versions you must ensure that implict_flush is OFF in your php.ini, otherwise any output with ob_start() will not be hidden from output.

Смотрите также

See also header() and setcookie().

Содержание
flush -- Flush the output buffer
ob_clean -- Clean (erase) the output buffer
ob_end_clean -- Clean (erase) the output buffer and turn off output buffering
ob_end_flush -- Flush (send) the output buffer and turn off output buffering
ob_flush -- Flush (send) the output buffer
ob_get_clean -- Get current buffer contents and delete current output buffer
ob_get_contents -- Return the contents of the output buffer
ob_get_flush -- Flush the output buffer, return it as a string and turn off output buffering
ob_get_length -- Return the length of the output buffer
ob_get_level -- Return the nesting level of the output buffering mechanism
ob_get_status -- Get status of output buffers
ob_gzhandler -- ob_start callback function to gzip output buffer
ob_implicit_flush -- Turn implicit flush on/off
ob_list_handlers -- List all output handlers in use
ob_start -- Turn on output buffering
output_add_rewrite_var -- Add URL rewriter values
output_reset_rewrite_vars -- Reset URL rewriter values

Пред. | Начало | След.
PDO_OCI DSN | Уровень выше | flush


flush

(PHP 3, PHP 4, PHP 5)

flush -- Flush the output buffer

Description

void flush ( void )

Flushes the output buffers of PHP and whatever backend PHP is using (CGI, a web server, etc). This effectively tries to push all the output so far to the user's browser.

flush() has no effect on the buffering scheme of your webserver or the browser on the client side. Thus you need to call both ob_flush() and flush() to flush the output buffers.

Several servers, especially on Win32, will still buffer the output from your script until it terminates before transmitting the results to the browser.

Server modules for Apache like mod_gzip may do buffering of their own that will cause flush() to not result in data being sent immediately to the client.

Even the browser may buffer its input before displaying it. Netscape, for example, buffers text until it receives an end-of-line or the beginning of a tag, and it won't render tables until the </table> tag of the outermost table is seen.

Some versions of Microsoft Internet Explorer will only start to display the page after they have received 256 bytes of output, so you may need to send extra whitespace before flushing to get those browsers to display the page.

Пред. | Начало | След.
Output Control Functions | Уровень выше | ob_clean


ob_clean

(PHP 4 >= 4.2.0, PHP 5)

ob_clean -- Clean (erase) the output buffer

Description

void ob_clean ( void )

This function discards the contents of the output buffer.

This function does not destroy the output buffer like ob_end_clean() does.

See also ob_flush(),
ob_end_flush() and
ob_end_clean().

Пред. | Начало | След.
flush | Уровень выше | ob_end_clean


ob_end_clean

(PHP 4, PHP 5)

ob_end_clean -- Clean (erase) the output buffer and turn off output buffering

Description

bool ob_end_clean ( void )

This function discards the contents of the topmost output buffer and turns off this output buffering. If you want to further process the buffer's contents you have to call ob_get_contents() before ob_end_clean() as the buffer contents are discarded when ob_end_clean() is called. The function returns TRUE when it successfully discarded one buffer and FALSE otherwise. Reasons for failure are first that you called the function without an active buffer or that for some reason a buffer could not be deleted (possible for special buffer).

The following example shows an easy way to get rid of all output buffers:

Пример 1. ob_end_clean() example

<?php
while (@ob_end_clean());
?>

Замечание: If the function fails it generates an E_NOTICE.

The boolean return value was added in PHP 4.2.0.

See also ob_start(),
ob_get_contents(), and
ob_flush().

Пред. | Начало | След.
ob_clean | Уровень выше | ob_end_flush


ob_end_flush

(PHP 4, PHP 5)

ob_end_flush -- Flush (send) the output buffer and turn off output buffering

Description

bool ob_end_flush ( void )

This function will send the contents of the topmost output buffer (if any) and turn this output buffer off. If you want to further process the buffer's contents you have to call ob_get_contents() before ob_end_flush() as the buffer contents are discarded after ob_end_flush() is called. The function returns TRUE when it successfully discarded one buffer and FALSE otherwise. Reasons for failure are first that you called the function without an active buffer or that for some reason a buffer could not be deleted (possible for special buffer).

Замечание: This function is similar to ob_get_flush(), except that ob_get_flush() returns the buffer as a string.

The following example shows an easy way to flush and end all output buffers:

Пример 1. ob_end_flush() example

<?php
  while (@ob_end_flush());
?>

Замечание: If the function fails it generates an E_NOTICE.

The boolean return value was added in PHP 4.2.0.

See also ob_start(),
ob_get_contents(),
ob_get_flush(),
ob_flush() and
ob_end_clean().

Пред. | Начало | След.
ob_end_clean | Уровень выше | ob_flush


ob_flush

(PHP 4 >= 4.2.0, PHP 5)

ob_flush -- Flush (send) the output buffer

Description

void ob_flush ( void )

This function will send the contents of the output buffer (if any). If you want to further process the buffer's contents you have to call ob_get_contents() before ob_flush() as the buffer contents are discarded after ob_flush() is called.

This function does not destroy the output buffer like ob_end_flush() does.

See also ob_get_contents(),
ob_clean(),
ob_end_flush() and
ob_end_clean().

Пред. | Начало | След.
ob_end_flush | Уровень выше | ob_get_clean


ob_get_clean

(PHP 4 >= 4.3.0, PHP 5)

ob_get_clean -- Get current buffer contents and delete current output buffer

Description

string ob_get_clean ( void )

This will return the contents of the output buffer and end output
buffering.  If output buffering isn't active then FALSE is returned.
ob_get_clean() essentially executes both
ob_get_contents() and
ob_end_clean().

Пример 1. A simple ob_get_clean() example

<?php

ob_start();

echo "Hello World";

$out = ob_get_clean();
$out = strtolower($out);

var_dump($out);
?>

Our example will output:

string(11) "hello world"

See also ob_start() and ob_get_contents().

Пред. | Начало | След.
ob_flush | Уровень выше | ob_get_contents


ob_get_contents

(PHP 4, PHP 5)

ob_get_contents -- Return the contents of the output buffer

Description

string ob_get_contents ( void )

This will return the contents of the output buffer or FALSE, if output buffering isn't active.

See also ob_start() and ob_get_length().

Пред. | Начало | След.
ob_get_clean | Уровень выше | ob_get_flush


ob_get_flush

(PHP 4 >= 4.3.0, PHP 5)

ob_get_flush -- Flush the output buffer, return it as a string and turn off output buffering

Description

string ob_get_flush ( void )

ob_get_flush() flushs the output buffer, return it as a string and turns off output buffering. ob_get_flush() returns FALSE if no buffering is active.

Замечание: This function is similar to ob_end_flush(), except that this function returns the buffer as a string.

Пример 1. ob_get_flush() example

<?php
//using output_buffering=On
print_r(ob_list_handlers());

//save buffer in a file
$buffer = ob_get_flush();
file_put_contents('buffer.txt', $buffer);

print_r(ob_list_handlers());
?>

Результат выполнения данного примера:

Array
(
    [0] => default output handler
)
Array
(
)

See also ob_end_clean(),
ob_end_flush() and
ob_list_handlers().

Пред. | Начало | След.
ob_get_contents | Уровень выше | ob_get_length


ob_get_length

(PHP 4 >= 4.0.2, PHP 5)

ob_get_length -- Return the length of the output buffer

Description

int ob_get_length ( void )

This will return the length of the contents in the output buffer or FALSE, if output buffering isn't active.

See also ob_start() and ob_get_contents().

Пред. | Начало | След.
ob_get_flush | Уровень выше | ob_get_level


ob_get_level

(PHP 4 >= 4.2.0, PHP 5)

ob_get_level -- Return the nesting level of the output buffering mechanism

Description

int ob_get_level ( void )

This will return the level of nested output buffering handlers or zero if output buffering is not activated.

See also ob_start() and ob_get_contents().

Пред. | Начало | След.
ob_get_length | Уровень выше | ob_get_status


ob_get_status

(PHP 4 >= 4.2.0, PHP 5)

ob_get_status -- Get status of output buffers

Description

array ob_get_status ( [bool full_status] )

This will return the current status of output buffers. It returns array contains buffer status or FALSE for error.

See also ob_get_level().

Пред. | Начало | След.
ob_get_level | Уровень выше | ob_gzhandler


ob_gzhandler

(PHP 4 >= 4.0.4, PHP 5)

ob_gzhandler -- ob_start callback function to gzip output buffer

Description

string ob_gzhandler ( string buffer, int mode )

Замечание: ob_gzhandler() requires the zlib extension.

ob_gzhandler() is intended to be used as a callback function for ob_start() to help facilitate sending gz-encoded data to web browsers that support compressed web pages. Before ob_gzhandler() actually sends compressed data, it determines what type of content encoding the browser will accept ("gzip", "deflate" or none at all) and will return its output accordingly. All browsers are supported since it's up to the browser to send the correct header saying that it accepts compressed web pages.

Замечание: mode was added in PHP 4.0.5.

Пример 1. ob_gzhandler() example

<?php

ob_start("ob_gzhandler");

?>
<html>
<body>
<p>This should be a compressed page.</p>
</html>
<body>

Замечание: You cannot use both ob_gzhandler() and zlib.output_compression. Also note that using zlib.output_compression is preferred over ob_gzhandler().

See also ob_start() and ob_end_flush().

Пред. | Начало | След.
ob_get_status | Уровень выше | ob_implicit_flush


ob_implicit_flush

(PHP 4, PHP 5)

ob_implicit_flush -- Turn implicit flush on/off

Description

void ob_implicit_flush ( [int flag] )

ob_implicit_flush() will turn implicit flushing on or off (if no flag is given, it defaults to on). Implicit flushing will result in a flush operation after every output call, so that explicit calls to flush() will no longer be needed.

Turning implicit flushing on will disable output buffering, the output buffers current output will be sent as if ob_end_flush() had been called.

See also flush(),
ob_start(), and
ob_end_flush().

Пред. | Начало | След.
ob_gzhandler | Уровень выше | ob_list_handlers


ob_list_handlers

(PHP 4 >= 4.3.0, PHP 5)

ob_list_handlers -- List all output handlers in use

Description

array ob_list_handlers ( void )

This will return an array with the output handlers in use (if any). If output_buffering is enabled or an anonymous function was used with ob_start(), ob_list_handlers() will return "default output handler".

Пример 1. ob_list_handlers() example

<?php
//using output_buffering=On
print_r(ob_list_handlers());
ob_end_flush();

ob_start("ob_gzhandler");
print_r(ob_list_handlers());
ob_end_flush();

// anonymous functions
ob_start(create_function('$string', 'return $string;'));
print_r(ob_list_handlers());
ob_end_flush();
?>

Результат выполнения данного примера:

Array
(
    [0] => default output handler
)

Array
(
    [0] => ob_gzhandler
)

Array
(
    [0] => default output handler
)

See also
ob_end_clean(),
ob_end_flush(),
ob_get_flush(),
ob_start().

Пред. | Начало | След.
ob_implicit_flush | Уровень выше | ob_start


ob_start

(PHP 4, PHP 5)

ob_start -- Turn on output buffering

Description

bool ob_start ( [callback output_callback [, int chunk_size [, bool erase]]] )

This function will turn output buffering on. While output buffering is active no output is sent from the script (other than headers), instead the output is stored in an internal buffer.

The contents of this internal buffer may be copied into a string variable using ob_get_contents(). To output what is stored in the internal buffer, use ob_end_flush(). Alternatively, ob_end_clean() will silently discard the buffer contents.

An optional output_callback function may be specified. This function takes a string as a parameter and should return a string. The function will be called when ob_end_flush() is called, or when the output buffer is flushed to the browser at the end of the request. When output_callback is called, it will receive the contents of the output buffer as its parameter and is expected to return a new output buffer as a result, which will be sent to the browser. If the output_callback is not a callable function, this function will return FALSE. If the callback function has two parameters, the second parameter is filled with a bit-field consisting of PHP_OUTPUT_HANDLER_START, PHP_OUTPUT_HANDLER_CONT and PHP_OUTPUT_HANDLER_END.

Замечание: In PHP 4.0.4, ob_gzhandler() was introduced to facilitate sending gz-encoded data to web browsers that support compressed web pages. ob_gzhandler() determines what type of content encoding the browser will accept and will return its output accordingly.

Замечание: Before PHP 4.3.2 this function did not return FALSE in case the passed output_callback can not be executed.

Внимание

Some web servers (e.g. Apache) change the working directory of a script when calling the callback function. You can change it back by e.g. chdir(dirname($_SERVER['SCRIPT_FILENAME'])) in the callback function.

If the optional parameter chunk_size is passed, the callback function is called on every first newline after chunk_size bytes of output. The output_callback parameter may be bypassed by passing a NULL value.

If the optional parameter erase is set to FALSE, the buffer will not be deleted until the script finishes (as of PHP 4.3.0).

Output buffers are stackable, that is, you may call ob_start() while another ob_start() is active. Just make sure that you call ob_end_flush() the appropriate number of times. If multiple output callback functions are active, output is being filtered sequentially through each of them in nesting order.

ob_end_clean(), ob_end_flush(), ob_clean(), ob_flush() and ob_start() may not be called from a callback function. If you call them from callback function, the behavior is undefined. If you would like to delete the contents of a buffer, return "" (a null string) from callback function. You can't even call functions using the output buffering functions like print_r($expression, true) or highlight_file($filename, true) from a callback function.

Пример 1. User defined callback function example

<?php

function callback($buffer)
{
  // replace all the apples with oranges
  return (str_replace("apples", "oranges", $buffer));
}

ob_start("callback");

?>
<html>
<body>
<p>It's like comparing apples to oranges.</p>
</body>
</html>
<?php

ob_end_flush();

?>

Would produce:

<html>
<body>
<p>It's like comparing oranges to oranges.</p>
</body>
</html>

See also ob_get_contents(),
ob_end_flush(),
ob_end_clean(),
ob_implicit_flush(),
ob_gzhandler(), ob_iconv_handler()
mb_output_handler(), and
ob_tidyhandler().

Пред. | Начало | След.
ob_list_handlers | Уровень выше | output_add_rewrite_var


output_add_rewrite_var

(PHP 4 >= 4.3.0, PHP 5)

output_add_rewrite_var -- Add URL rewriter values

Description

bool output_add_rewrite_var ( string name, string value )

This function rewrite the URLs and forms with the given variable.

Замечание: This function buffers the output.

Пример 1. output_add_rewrite_var() example

<?php
output_add_rewrite_var('var', 'value');

// a link
echo '<a href="file.php">link</a>';

// a form
echo '<form action="script.php" method="post">
<input type="text" name="var2" />
</form>';

print_r(ob_list_handlers());
?>

Результат выполнения данного примера:

<a href="file.php?var=value">link</a>

<form action="script.php" method="post">
<input type="hidden" name="var" value="value" />
<input type="text" name="var2" />
</form>

Array
(
    [0] => URL-Rewriter
)

See also
output_reset_rewrite_vars(),
ob_flush() and
ob_list_handlers().

Пред. | Начало | След.
ob_start | Уровень выше | output_reset_rewrite_vars


output_reset_rewrite_vars

(PHP 4 >= 4.3.0, PHP 5)

output_reset_rewrite_vars -- Reset URL rewriter values

Description

bool output_reset_rewrite_vars ( void )

This function resets the URL rewriter and undo the changes made by output_add_rewrite_var() and/or by session_start() that are still in the buffer.

Пример 1. output_reset_rewrite_vars() example

<?php
session_start();
output_add_rewrite_var('var', 'value');

echo '<a href="file.php">link</a>';
ob_flush();

output_reset_rewrite_vars();
echo '<a href="file.php">link</a>';
?>

Результат выполнения данного примера:

<a href="file.php?PHPSESSID=xxx&var=value">link</a>
<a href="file.php">link</a>

See also
output_add_rewrite_var(),
ob_flush(),
ob_list_handlers() and
session_start().

Пред. | Начало | След.
output_add_rewrite_var | Уровень выше | Ovrimos SQL Functions


Object property and method call overloading

Руководство по PHP
Пред. След.

XCV. Object property and method call overloading

Введение

The purpose of this extension is to allow overloading of object property access and method calls. Only one function is defined in this extension, overload() which takes the name of the class that should have this functionality enabled. The class named has to define appropriate methods if it wants to have this functionality: __get(), __set() and __call() respectively for getting/setting a property, or calling a method. This way overloading can be selective. Inside these handler functions the overloading is disabled so you can access object properties normally.

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

Внимание

This extension is not a part of PHP 5. PHP 5 supports __get(), __set() and __call() natively. See the Overloading in PHP 5 page for more information.

Требования

Эти функции всегда доступны.

Установка

In order to use these functions, you must compile PHP with the --enable-overload option. Starting with PHP 4.3.0 this extension is enabled by default. You can disable overload support with --disable--overload.

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.

Замечание: Builtin support for overload is available with PHP 4.3.0.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Примеры

Some simple examples on using the overload() function:

Пример 1. Overloading a PHP class

<?php

class OO {
    var $a = 111;
    var $elem = array('b' => 9, 'c' => 42);

    // Callback method for getting a property
    function __get($prop_name, &$prop_value)
    {
        if (isset($this->elem[$prop_name])) {
            $prop_value = $this->elem[$prop_name];
            return true;
        } else {
            return false;
        }
    }

    // Callback method for setting a property
    function __set($prop_name, $prop_value)
    {
        $this->elem[$prop_name] = $prop_value;
        return true;
    }
}

// Here we overload the OO object
overload('OO');

$o = new OO;
echo "\$o->a: $o->a\n"; // print: $o->a: 111
echo "\$o->b: $o->b\n"; // print: $o->b: 9
echo "\$o->c: $o->c\n"; // print: $o->c: 42
echo "\$o->d: $o->d\n"; // print: $o->d:

// add a new item to the $elem array in OO
$o->x = 56;

// instantiate stdclass (it is built-in in PHP 4)
// $val is not overloaded!
$val = new stdclass;
$val->prop = 555;

// Set "a" to be an array with the $val object in it
// But __set() will put this in the $elem array
$o->a = array($val);
var_dump($o->a[0]->prop);

?>

Содержание
overload -- Enable property and method call overloading for a class

Пред. | Начало | След.
deaggregate | Уровень выше | overload


overload

(PHP 4 >= 4.2.0)

overload -- Enable property and method call overloading for a class

Description

void overload ( [string class_name] )

The overload() function will enable property and method call overloading for a class identified by class_name. See an example in the introductory section of this part.

Пред. | Начало | След.
Object property and method call overloading | Уровень выше | Функции для работы с Oracle


Ovrimos SQL Functions

Руководство по PHP
Пред. След.

CV. Ovrimos SQL Functions

Введение

Ovrimos SQL Server, is a client/server, transactional RDBMS combined with Web capabilities and fast transactions.

Замечание: This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 5.1.0.

Замечание: Для Windows-платформ это расширение недоступно.

Требования

You'll need to install the sqlcli library available in the Ovrimos SQL Server distribution.

Установка

To enable Ovrimos support in PHP just compile PHP with the --with-ovrimos[=DIR] parameter to your configure line. DIR is the Ovrimos' libsqlcli install directory.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Примеры

Пример 1. Connect to Ovrimos SQL Server and select from a system table

<?php
$conn = ovrimos_connect("server.domain.com", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res = ovrimos_exec($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Statement ok!";
        ovrimos_result_all($res);
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>
This will just connect to an Ovrimos SQL server.

Содержание
ovrimos_close -- Closes the connection to ovrimos
ovrimos_commit -- Commits the transaction
ovrimos_connect -- Connect to the specified database
ovrimos_cursor -- Returns the name of the cursor
ovrimos_exec -- Executes an SQL statement
ovrimos_execute -- Executes a prepared SQL statement
ovrimos_fetch_into -- Fetches a row from the result set
ovrimos_fetch_row -- Fetches a row from the result set
ovrimos_field_len -- Returns the length of the output column
ovrimos_field_name -- Returns the output column name
ovrimos_field_num -- Returns the (1-based) index of the output column
ovrimos_field_type -- Returns the (numeric) type of the output column
ovrimos_free_result -- Frees the specified result_id
ovrimos_longreadlen -- Specifies how many bytes are to be retrieved from long datatypes
ovrimos_num_fields -- Returns the number of columns
ovrimos_num_rows -- Returns the number of rows affected by update operations
ovrimos_prepare -- Prepares an SQL statement
ovrimos_result_all -- Prints the whole result set as an HTML table
ovrimos_result -- Retrieves the output column
ovrimos_rollback -- Rolls back the transaction

Пред. | Начало | След.
output_reset_rewrite_vars | Уровень выше | ovrimos_close


ovrimos_close

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_close -- Closes the connection to ovrimos

Description

void ovrimos_close ( int connection )

ovrimos_close() is used to close the specified connection to Ovrimos. This has the effect of rolling back uncommitted transactions.

Пред. | Начало | След.
Ovrimos SQL Functions | Уровень выше | ovrimos_commit


ovrimos_commit

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_commit -- Commits the transaction

Description

bool ovrimos_commit ( int connection_id )

ovrimos_commit() is used to commit the transaction. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
ovrimos_close | Уровень выше | ovrimos_connect


ovrimos_connect

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_connect -- Connect to the specified database

Description

int ovrimos_connect ( string host, string db, string user, string password )

ovrimos_connect() is used to connect to the specified database.

ovrimos_connect() returns a connection id (greater than 0) or 0 for failure. The meaning of host and db are those used everywhere in Ovrimos APIs. host is a host name or IP address and db is either a database name, or a string containing the port number.

Пример 1. ovrimos_connect() Example

<?php
$conn = ovrimos_connect("server.domain.com", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res=ovrimos_exec($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Statement ok!";
        ovrimos_result_all($res);
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>
The above example will connect to the database and print out the specified table.

Пред. | Начало | След.
ovrimos_commit | Уровень выше | ovrimos_cursor


ovrimos_cursor

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_cursor -- Returns the name of the cursor

Description

string ovrimos_cursor ( int result_id )

ovrimos_cursor() returns the name of the cursor. Useful when wishing to perform positioned updates or deletes.

Пред. | Начало | След.
ovrimos_connect | Уровень выше | ovrimos_exec


ovrimos_exec

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_exec -- Executes an SQL statement

Description

int ovrimos_exec ( int connection_id, string query )

ovrimos_exec() executes an SQL statement (query or update) and returns a result_id or FALSE. Evidently, the SQL statement should not contain parameters.

Пред. | Начало | След.
ovrimos_cursor | Уровень выше | ovrimos_execute


ovrimos_execute

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_execute -- Executes a prepared SQL statement

Description

bool ovrimos_execute ( int result_id [, array parameters_array] )

ovrimos_execute() executes a prepared statement. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. If the prepared statement contained parameters (question marks in the statement), the correct number of parameters should be passed in an array. Notice that I don't follow the PHP convention of placing just the name of the optional parameter inside square brackets. I couldn't bring myself on liking it.

Пред. | Начало | След.
ovrimos_exec | Уровень выше | ovrimos_fetch_into


ovrimos_fetch_into

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_fetch_into -- Fetches a row from the result set

Description

bool ovrimos_fetch_into ( int result_id, array &result_array [, string how [, int rownumber]] )

ovrimos_fetch_into() fetches a row from the result set into result_array, which should be passed by reference. Which row is fetched is determined by the two last parameters. how is one of Next (default), Prev, First, Last, Absolute, corresponding to forward direction from current position, backward direction from current position, forward direction from the start, backward direction from the end and absolute position from the start (essentially equivalent to 'first' but needs 'rownumber'). Case is not significant. rownumber is optional except for absolute positioning. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. A fetch into example

<?php
$conn=ovrimos_connect("neptune", "8001", "admin", "password");
if ($conn!=0) {
    echo "Connection ok!";
    $res=ovrimos_exec($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Statement ok!";
        if (ovrimos_fetch_into($res, &$row)) {
            list($table_id, $table_name) = $row;
            echo "table_id=" . $table_id . ", table_name=" . $table_name . "\n";
            if (ovrimos_fetch_into($res, &$row)) {
                list($table_id, $table_name) = $row;
                echo "table_id=" . $table_id . ", table_name=" . $table_name . "\n";
            } else {
                echo "Next: error\n";
            }
        } else {
            echo "First: error\n";
        }
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>
This example will fetch a row.

Пред. | Начало | След.
ovrimos_execute | Уровень выше | ovrimos_fetch_row


ovrimos_fetch_row

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_fetch_row -- Fetches a row from the result set

Description

bool ovrimos_fetch_row ( int result_id [, int how [, int row_number]] )

ovrimos_fetch_row() fetches a row from the result set. Column values should be retrieved with other calls. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. A fetch row example

<?php
$conn = ovrimos_connect("remote.host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res=ovrimos_exec($conn, "select table_id, table_name from sys.tables");
    if ($res != 0) {
        echo "Statement ok!";
        if (ovrimos_fetch_row($res, "First")) {
            $table_id = ovrimos_result($res, 1);
            $table_name = ovrimos_result($res, 2);
            echo "table_id=" . $table_id . ", table_name=" . $table_name . "\n";
            if (ovrimos_fetch_row($res, "Next")) {
                $table_id = ovrimos_result($res, "table_id");
                $table_name = ovrimos_result($res, "table_name");
                echo "table_id=" . $table_id . ", table_name=" . $table_name . "\n";
            } else {
                echo "Next: error\n";
            }
        } else {
            echo "First: error\n";
        }
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>
This will fetch a row and print the result.

Пред. | Начало | След.
ovrimos_fetch_into | Уровень выше | ovrimos_field_len


ovrimos_field_len

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_field_len -- Returns the length of the output column

Description

int ovrimos_field_len ( int result_id, int field_number )

ovrimos_field_len() is used to get the length of the output column with number field_number (1-based), in result result_id.

Пред. | Начало | След.
ovrimos_fetch_row | Уровень выше | ovrimos_field_name


ovrimos_field_name

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_field_name -- Returns the output column name

Description

string ovrimos_field_name ( int result_id, int field_number )

ovrimos_field_name() returns the output column name at the (1-based) index specified.

Пред. | Начало | След.
ovrimos_field_len | Уровень выше | ovrimos_field_num


ovrimos_field_num

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_field_num -- Returns the (1-based) index of the output column

Description

int ovrimos_field_num ( int result_id, string field_name )

ovrimos_field_num() returns the (1-based) index of the output column specified by field_name, or FALSE.

Пред. | Начало | След.
ovrimos_field_name | Уровень выше | ovrimos_field_type


ovrimos_field_type

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_field_type -- Returns the (numeric) type of the output column

Description

int ovrimos_field_type ( int result_id, int field_number )

ovrimos_field_type() returns the (numeric) type of the output column at the (1-based) index specified by field_number.

Пред. | Начало | След.
ovrimos_field_num | Уровень выше | ovrimos_free_result


ovrimos_free_result

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_free_result -- Frees the specified result_id

Description

bool ovrimos_free_result ( int result_id )

ovrimos_free_result() frees the specified result_id. Returns TRUE.

Пред. | Начало | След.
ovrimos_field_type | Уровень выше | ovrimos_longreadlen


ovrimos_longreadlen

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_longreadlen -- Specifies how many bytes are to be retrieved from long datatypes

Description

bool ovrimos_longreadlen ( int result_id, int length )

ovrimos_longreadlen() specifies how many bytes are to be retrieved from long datatypes (long varchar and long varbinary). Default is zero. It currently sets this parameter the specified result set. Returns TRUE.

Пред. | Начало | След.
ovrimos_free_result | Уровень выше | ovrimos_num_fields


ovrimos_num_fields

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_num_fields -- Returns the number of columns

Description

int ovrimos_num_fields ( int result_id )

ovrimos_num_fields() returns the number of columns in a result_id resulting from a query.

Пред. | Начало | След.
ovrimos_longreadlen | Уровень выше | ovrimos_num_rows


ovrimos_num_rows

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_num_rows -- Returns the number of rows affected by update operations

Description

int ovrimos_num_rows ( int result_id )

ovrimos_num_rows() returns the number of rows affected by update operations.

Пред. | Начало | След.
ovrimos_num_fields | Уровень выше | ovrimos_prepare


ovrimos_prepare

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_prepare -- Prepares an SQL statement

Description

int ovrimos_prepare ( int connection_id, string query )

ovrimos_prepare() prepares an SQL statement and returns a result_id (or FALSE on failure).

Пример 1. Connect to Ovrimos SQL Server and prepare a statement

<?php
$conn=ovrimos_connect("db_host", "8001", "admin", "password");
if ($conn!=0) {
    echo "Connection ok!";
    $res=ovrimos_prepare($conn, "select table_id, table_name
                                  from sys.tables where table_id=1");
    if ($res != 0) {
        echo "Prepare ok!";
        if (ovrimos_execute($res)) {
            echo "Execute ok!\n";
            ovrimos_result_all($res);
        } else {
            echo "Execute not ok!";
        }
        ovrimos_free_result($res);
    } else {
        echo "Prepare not ok!\n";
    }
    ovrimos_close($conn);
}
?>
This will connect to Ovrimos SQL Server, prepare a statement and the execute it.

Пред. | Начало | След.
ovrimos_num_rows | Уровень выше | ovrimos_result_all


ovrimos_result_all

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_result_all -- Prints the whole result set as an HTML table

Description

int ovrimos_result_all ( int result_id [, string format] )

ovrimos_result_all() prints the whole result set as an HTML table. Returns the number of rows in the generated table.

Пример 1. Prepare a statement, execute, and view the result

<?php
$conn = ovrimos_connect("db_host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res = ovrimos_prepare($conn, "select table_id, table_name
                                    from sys.tables where table_id = 7");
    if ($res != 0) {
        echo "Prepare ok!";
        if (ovrimos_execute($res, array(3))) {
            echo "Execute ok!\n";
            ovrimos_result_all($res);
        } else {
            echo "Execute not ok!";
        }
        ovrimos_free_result($res);
    } else {
        echo "Prepare not ok!\n";
    }
    ovrimos_close($conn);
}
?>
This will execute an SQL statement and print the result in an HTML table.

Пример 2. ovrimos_result_all() with meta-information

<?php
$conn = ovrimos_connect("db_host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res = ovrimos_exec($conn, "select table_id, table_name
                                 from sys.tables where table_id = 1");
    if ($res != 0) {
        echo "Statement ok! cursor=" . ovrimos_cursor($res) . "\n";
        $colnb = ovrimos_num_fields($res);
        echo "Output columns=" . $colnb . "\n";
        for ($i=1; $i <= $colnb; $i++) {
            $name = ovrimos_field_name($res, $i);
            $type = ovrimos_field_type($res, $i);
            $len = ovrimos_field_len($res, $i);
            echo "Column " . $i . " name=" . $name . " type=" . $type . " len=" . $len . "\n";
        }
        ovrimos_result_all($res);
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>

Пример 3. ovrimos_result_all() example

<?php
$conn = ovrimos_connect("db_host", "8001", "admin", "password");
if ($conn != 0) {
    echo "Connection ok!";
    $res = ovrimos_exec($conn, "update test set i=5");
    if ($res != 0) {
        echo "Statement ok!";
        echo ovrimos_num_rows($res)." rows affected\n";
        ovrimos_free_result($res);
    }
    ovrimos_close($conn);
}
?>

Пред. | Начало | След.
ovrimos_prepare | Уровень выше | ovrimos_result


ovrimos_result

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_result -- Retrieves the output column

Description

string ovrimos_result ( int result_id, mixed field )

ovrimos_result() retrieves the output column specified by field, either as a string or as an 1-based index. Returns FALSE on failure.

Пред. | Начало | След.
ovrimos_result_all | Уровень выше | ovrimos_rollback


ovrimos_rollback

(PHP 4 >= 4.0.3, PHP 5)

ovrimos_rollback -- Rolls back the transaction

Description

bool ovrimos_rollback ( int connection_id )

ovrimos_rollback() is used to roll back the transaction. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
ovrimos_result | Уровень выше | Paradox File Access


Parsekit Functions

Руководство по PHP
Пред. След.

CVII. Parsekit Functions

Введение

These functions allow runtime analysis of opcodes compiled from PHP scripts.

Установка

Это расширение PECL не поставляется вместе с PHP.

Дополнительная информация, такая как новый версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, могут быть найдены здесь: http://pecl.php.net/package/parsekit.

Вы можете скачать DLL этого расширения PECL со страницы PHP Downloads или http://snaps.php.net/.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

PARSEKIT_QUIET (int)

Return full detail, but without unnecessary NULL extries.

PARSEKIT_SIMPLE (int)

Return shorthand opcode notation.

PARSEKIT_EXTENDED_VALUE (int)

Opnode Flag

PARSEKIT_RESULT_CONST (int)

Opnode Flag

PARSEKIT_RESULT_EA_TYPE (int)

Opnode Flag

PARSEKIT_RESULT_JMP_ADDR (int)

Opnode Flag

PARSEKIT_RESULT_OPARRAY (int)

Opnode Flag

PARSEKIT_RESULT_OPLINE (int)

Opnode Flag

PARSEKIT_RESULT_VAR (int)

Opnode Flag

PARSEKIT_USAGE_UNKNOWN (int)

Opnode Flag

PARSEKIT_ZEND_INTERNAL_CLASS (int)

Class Type

PARSEKIT_ZEND_USER_CLASS (int)

Class Type

PARSEKIT_ZEND_EVAL_CODE (int)

Function Type

PARSEKIT_ZEND_INTERNAL_FUNCTION (int)

Function Type

PARSEKIT_ZEND_OVERLOADED_FUNCTION (int)

Function Type

PARSEKIT_ZEND_OVERLOADED_FUNCTION_TEMPORARY (int) PHP >= 5.0.0

Function Type

PARSEKIT_ZEND_USER_FUNCTION (int)

Function Type

PARSEKIT_IS_CONST (int)

Node Type

PARSEKIT_IS_TMP_VAR (int)

Node Type

PARSEKIT_IS_UNUSED (int)

Node Type

PARSEKIT_IS_VAR (int)

Node Type

PARSEKIT_ZEND_ADD (int)

Opcode

PARSEKIT_ZEND_ADD_ARRAY_ELEMENT (int)

Opcode

PARSEKIT_ZEND_ADD_CHAR (int)

Opcode

PARSEKIT_ZEND_ADD_INTERFACE (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_ADD_STRING (int)

Opcode

PARSEKIT_ZEND_ADD_VAR (int)

Opcode

PARSEKIT_ZEND_ASSIGN (int)

Opcode

PARSEKIT_ZEND_ASSIGN_ADD (int)

Opcode

PARSEKIT_ZEND_ASSIGN_BW_AND (int)

Opcode

PARSEKIT_ZEND_ASSIGN_BW_OR (int)

Opcode

PARSEKIT_ZEND_ASSIGN_BW_XOR (int)

Opcode

PARSEKIT_ZEND_ASSIGN_CONCAT (int)

Opcode

PARSEKIT_ZEND_ASSIGN_DIM (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_ASSIGN_DIV (int)

Opcode

PARSEKIT_ZEND_ASSIGN_MOD (int)

Opcode

PARSEKIT_ZEND_ASSIGN_MUL (int)

Opcode

PARSEKIT_ZEND_ASSIGN_OBJ (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_ASSIGN_REF (int)

Opcode

PARSEKIT_ZEND_ASSIGN_SL (int)

Opcode

PARSEKIT_ZEND_ASSIGN_SR (int)

Opcode

PARSEKIT_ZEND_ASSIGN_SUB (int)

Opcode

PARSEKIT_ZEND_BEGIN_SILENCE (int)

Opcode

PARSEKIT_ZEND_BOOL (int)

Opcode

PARSEKIT_ZEND_BOOL_NOT (int)

Opcode

PARSEKIT_ZEND_BOOL_XOR (int)

Opcode

PARSEKIT_ZEND_BRK (int)

Opcode

PARSEKIT_ZEND_BW_AND (int)

Opcode

PARSEKIT_ZEND_BW_NOT (int)

Opcode

PARSEKIT_ZEND_BW_OR (int)

Opcode

PARSEKIT_ZEND_BW_XOR (int)

Opcode

PARSEKIT_ZEND_CASE (int)

Opcode

PARSEKIT_ZEND_CAST (int)

Opcode

PARSEKIT_ZEND_CATCH (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_CLONE (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_CONCAT (int)

Opcode

PARSEKIT_ZEND_CONT (int)

Opcode

PARSEKIT_ZEND_DECLARE_CLASS (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_DECLARE_FUNCTION (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_DECLARE_INHERITED_CLASS (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_DIV (int)

Opcode

PARSEKIT_ZEND_DO_FCALL (int)

Opcode

PARSEKIT_ZEND_DO_FCALL_BY_NAME (int)

Opcode

PARSEKIT_ZEND_ECHO (int)

Opcode

PARSEKIT_ZEND_END_SILENCE (int)

Opcode

PARSEKIT_ZEND_EXIT (int)

Opcode

PARSEKIT_ZEND_EXT_FCALL_BEGIN (int)

Opcode

PARSEKIT_ZEND_EXT_FCALL_END (int)

Opcode

PARSEKIT_ZEND_EXT_NOP (int)

Opcode

PARSEKIT_ZEND_EXT_STMT (int)

Opcode

PARSEKIT_ZEND_FETCH_CLASS (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_FETCH_CONSTANT (int)

Opcode

PARSEKIT_ZEND_FETCH_DIM_FUNC_ARG (int)

Opcode

PARSEKIT_ZEND_FETCH_DIM_IS (int)

Opcode

PARSEKIT_ZEND_FETCH_DIM_R (int)

Opcode

PARSEKIT_ZEND_FETCH_DIM_RW (int)

Opcode

PARSEKIT_ZEND_FETCH_DIM_TMP_VAR (int)

Opcode

PARSEKIT_ZEND_FETCH_DIM_UNSET (int)

Opcode

PARSEKIT_ZEND_FETCH_DIM_W (int)

Opcode

PARSEKIT_ZEND_FETCH_FUNC_ARG (int)

Opcode

PARSEKIT_ZEND_FETCH_IS (int)

Opcode

PARSEKIT_ZEND_FETCH_OBJ_FUNC_ARG (int)

Opcode

PARSEKIT_ZEND_FETCH_OBJ_IS (int)

Opcode

PARSEKIT_ZEND_FETCH_OBJ_R (int)

Opcode

PARSEKIT_ZEND_FETCH_OBJ_RW (int)

Opcode

PARSEKIT_ZEND_FETCH_OBJ_UNSET (int)

Opcode

PARSEKIT_ZEND_FETCH_OBJ_W (int)

Opcode

PARSEKIT_ZEND_FETCH_R (int)

Opcode

PARSEKIT_ZEND_FETCH_RW (int)

Opcode

PARSEKIT_ZEND_FETCH_UNSET (int)

Opcode

PARSEKIT_ZEND_FETCH_W (int)

Opcode

PARSEKIT_ZEND_FE_FETCH (int)

Opcode

PARSEKIT_ZEND_FE_RESET (int)

Opcode

PARSEKIT_ZEND_FREE (int)

Opcode

PARSEKIT_ZEND_HANDLE_EXCEPTION (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_IMPORT_CLASS (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_IMPORT_CONST (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_IMPORT_FUNCTION (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_INCLUDE_OR_EVAL (int)

Opcode

PARSEKIT_ZEND_INIT_ARRAY (int)

Opcode

PARSEKIT_ZEND_INIT_CTOR_CALL (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_INIT_FCALL_BY_NAME (int)

Opcode

PARSEKIT_ZEND_INIT_METHOD_CALL (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_INIT_STATIC_METHOD_CALL (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_INIT_STRING (int)

Opcode

PARSEKIT_ZEND_INSTANCEOF (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_ISSET_ISEMPTY (int) PHP < 5.0.0

Opcode

PARSEKIT_ZEND_ISSET_ISEMPTY_DIM_OBJ (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_ISSET_ISEMPTY_PROP_OBJ (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_ISSET_ISEMPTY_VAR (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_IS_EQUAL (int)

Opcode

PARSEKIT_ZEND_IS_IDENTICAL (int)

Opcode

PARSEKIT_ZEND_IS_NOT_EQUAL (int)

Opcode

PARSEKIT_ZEND_IS_NOT_IDENTICAL (int)

Opcode

PARSEKIT_ZEND_IS_SMALLER (int)

Opcode

PARSEKIT_ZEND_IS_SMALLER_OR_EQUAL (int)

Opcode

PARSEKIT_ZEND_JMP (int)

Opcode

PARSEKIT_ZEND_JMPNZ (int)

Opcode

PARSEKIT_ZEND_JMPNZ_EX (int)

Opcode

PARSEKIT_ZEND_JMPZ (int)

Opcode

PARSEKIT_ZEND_JMPZNZ (int)

Opcode

PARSEKIT_ZEND_JMPZ_EX (int)

Opcode

PARSEKIT_ZEND_JMP_NO_CTOR (int)

Opcode

PARSEKIT_ZEND_MOD (int)

Opcode

PARSEKIT_ZEND_MUL (int)

Opcode

PARSEKIT_ZEND_NEW (int)

Opcode

PARSEKIT_ZEND_NOP (int)

Opcode

PARSEKIT_ZEND_OP_DATA (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_POST_DEC (int)

Opcode

PARSEKIT_ZEND_POST_DEC_OBJ (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_POST_INC (int)

Opcode

PARSEKIT_ZEND_POST_INC_OBJ (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_PRE_DEC (int)

Opcode

PARSEKIT_ZEND_PRE_DEC_OBJ (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_PRE_INC (int)

Opcode

PARSEKIT_ZEND_PRE_INC_OBJ (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_PRINT (int)

Opcode

PARSEKIT_ZEND_QM_ASSIGN (int)

Opcode

PARSEKIT_ZEND_RAISE_ABSTRACT_ERROR (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_RECV (int)

Opcode

PARSEKIT_ZEND_RECV_INIT (int)

Opcode

PARSEKIT_ZEND_RETURN (int)

Opcode

PARSEKIT_ZEND_SEND_REF (int)

Opcode

PARSEKIT_ZEND_SEND_VAL (int)

Opcode

PARSEKIT_ZEND_SEND_VAR (int)

Opcode

PARSEKIT_ZEND_SEND_VAR_NO_REF (int)

Opcode

PARSEKIT_ZEND_SL (int)

Opcode

PARSEKIT_ZEND_SR (int)

Opcode

PARSEKIT_ZEND_SUB (int)

Opcode

PARSEKIT_ZEND_SWITCH_FREE (int)

Opcode

PARSEKIT_ZEND_THROW (int) PHP >= 5.0.0

Opcode

PARSEKIT_ZEND_TICKS (int)

Opcode

PARSEKIT_ZEND_UNSET_DIM_OBJ (int)

Opcode

PARSEKIT_ZEND_UNSET_VAR (int)

Opcode

PARSEKIT_ZEND_VERIFY_ABSTRACT_CLASS (int) PHP >= 5.0.0

Opcode

Содержание
parsekit_compile_file -- Compile a string of PHP code and return the resulting op array
parsekit_compile_string -- Compile a string of PHP code and return the resulting op array
parsekit_func_arginfo -- Return information regarding function argument(s)

Пред. | Начало | След.
px_timestamp2string | Уровень выше | parsekit_compile_file


parsekit_compile_file

(PECL)

parsekit_compile_file -- Compile a string of PHP code and return the resulting op array

Описание

array parsekit_compile_file ( string filename [, array &errors [, int options]] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

filename

A string containing the name of the file to compile. Similar to the argument to include().

errors

A 2D hash of errors (including fatal errors) encountered during compilation. Returned by reference.

options

One of either PARSEKIT_QUIET or PARSEKIT_SIMPLE. To produce varying degrees of verbosity in the returned output.

Возвращаемые значения

Returns a complex multi-layer array structure as detailed below.

Примеры

Пример 1. parsekit_compile_file() example

<?php
var_dump(parsekit_compile_file('hello_world.php', $errors, PARSEKIT_SIMPLE));
?>

Результат выполнения данного примера:

array(5) {
  [0]=>
  string(37) "ZEND_ECHO UNUSED 'Hello World' UNUSED"
  [1]=>
  string(30) "ZEND_RETURN UNUSED NULL UNUSED"
  [2]=>
  string(42) "ZEND_HANDLE_EXCEPTION UNUSED UNUSED UNUSED"
  ["function_table"]=>
  NULL
  ["class_table"]=>
  NULL
}

Смотрите также

parsekit_compile_string()

Пред. | Начало | След.
Parsekit Functions | Уровень выше | parsekit_compile_string


parsekit_compile_string

(PECL)

parsekit_compile_string -- Compile a string of PHP code and return the resulting op array

Описание

array parsekit_compile_string ( string phpcode [, array &errors [, int options]] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

phpcode

A string containing phpcode. Similar to the argument to eval().

errors

A 2D hash of errors (including fatal errors) encountered during compilation. Returned by reference.

options

One of either PARSEKIT_QUIET or PARSEKIT_SIMPLE. To produce varying degrees of verbosity in the returned output.

Возвращаемые значения

Returns a complex multi-layer array structure as detailed below.

Примеры

Пример 1. parsekit_compile_string() example

<?php
  $ops = parsekit_compile_string('
echo "Foo\n";
', $errors, PARSEKIT_QUIET);

  var_dump($ops);
?>

Результат выполнения данного примера:

array(20) {
  ["type"]=>
  int(4)
  ["type_name"]=>
  string(14) "ZEND_EVAL_CODE"
  ["fn_flags"]=>
  int(0)
  ["num_args"]=>
  int(0)
  ["required_num_args"]=>
  int(0)
  ["pass_rest_by_reference"]=>
  bool(false)
  ["uses_this"]=>
  bool(false)
  ["line_start"]=>
  int(0)
  ["line_end"]=>
  int(0)
  ["return_reference"]=>
  bool(false)
  ["refcount"]=>
  int(1)
  ["last"]=>
  int(3)
  ["size"]=>
  int(3)
  ["T"]=>
  int(0)
  ["last_brk_cont"]=>
  int(0)
  ["current_brk_cont"]=>
  int(-1)
  ["backpatch_count"]=>
  int(0)
  ["done_pass_two"]=>
  bool(true)
  ["filename"]=>
  string(17) "Parsekit Compiler"
  ["opcodes"]=>
  array(3) {
    [8594800]=>
    array(5) {
      ["opcode"]=>
      int(40)
      ["opcode_name"]=>
      string(9) "ZEND_ECHO"
      ["flags"]=>
      int(768)
      ["op1"]=>
      array(3) {
        ["type"]=>
        int(1)
        ["type_name"]=>
        string(8) "IS_CONST"
        ["constant"]=>
        &string(4) "Foo
"
      }
      ["lineno"]=>
      int(2)
    }
    ["859484C"]=>
    array(6) {
      ["opcode"]=>
      int(62)
      ["opcode_name"]=>
      string(11) "ZEND_RETURN"
      ["flags"]=>
      int(16777984)
      ["op1"]=>
      array(3) {
        ["type"]=>
        int(1)
        ["type_name"]=>
        string(8) "IS_CONST"
        ["constant"]=>
        &NULL
      }
      ["extended_value"]=>
      int(0)
      ["lineno"]=>
      int(3)
    }
    [8594898]=>
    array(4) {
      ["opcode"]=>
      int(149)
      ["opcode_name"]=>
      string(21) "ZEND_HANDLE_EXCEPTION"
      ["flags"]=>
      int(0)
      ["lineno"]=>
      int(3)
    }
  }
}

Смотрите также

parsekit_compile_file()

Пред. | Начало | След.
parsekit_compile_file | Уровень выше | parsekit_func_arginfo


parsekit_func_arginfo

(PECL)

parsekit_func_arginfo -- Return information regarding function argument(s)

Описание

array parsekit_func_arginfo ( mixed function )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

function

A string describing a function, or an array describing a class/method.

Возвращаемые значения

Returns an array containing argument information.

Примеры

Пример 1. parsekit_func_arginfo() example

<?php
function foo($bar, stdClass $baz, &$bomb, $bling = false) {
}

var_dump(parsekit_func_arginfo('foo'));
?>

Результат выполнения данного примера:

array(4) {
  [0]=>
  array(3) {
    ["name"]=>
    string(3) "bar"
    ["allow_null"]=>
    bool(true)
    ["pass_by_reference"]=>
    bool(false)
  }
  [1]=>
  array(4) {
    ["name"]=>
    string(3) "baz"
    ["class_name"]=>
    string(8) "stdClass"
    ["allow_null"]=>
    bool(false)
    ["pass_by_reference"]=>
    bool(false)
  }
  [2]=>
  array(3) {
    ["name"]=>
    string(4) "bomb"
    ["allow_null"]=>
    bool(true)
    ["pass_by_reference"]=>
    bool(true)
  }
  [3]=>
  array(3) {
    ["name"]=>
    string(5) "bling"
    ["allow_null"]=>
    bool(true)
    ["pass_by_reference"]=>
    bool(false)
  }
}

Пред. | Начало | След.
parsekit_compile_string | Уровень выше | Process Control Functions


Process Control Functions

Руководство по PHP
Пред. След.

CVIII. Process Control Functions

Введение

Process Control support in PHP implements the Unix style of process creation, program execution, signal handling and process termination. Process Control should not be enabled within a webserver environment and unexpected results may happen if any Process Control functions are used within a webserver environment.

This documentation is intended to explain the general usage of each of the Process Control functions. For detailed information about Unix process control you are encouraged to consult your systems documentation including fork(2), waitpid(2) and signal(2) or a comprehensive reference such as Advanced Programming in the UNIX Environment by W. Richard Stevens (Addison-Wesley).

PCNTL now uses ticks as the signal handle callback mechanism, which is much faster than the previous mechanism. This change follows the same semantics as using "user ticks". You use the declare() statement to specify the locations in your program where callbacks are allowed to occur. This allows you to minimize the overhead of handling asynchronous events. In the past, compiling PHP with pcntl enabled would always incur this overhead, whether or not your script actually used pcntl.

There is one adjustment that all pcntl scripts prior to PHP 4.3.0 must make for them to work which is to either to use declare() on a section where you wish to allow callbacks or to just enable it across the entire script using the new global syntax of declare().

Замечание: Для Windows-платформ это расширение недоступно.

Требования

Эти функции всегда доступны.

Установка

Process Control support in PHP is not enabled by default. You have to compile the CGI or CLI version of PHP with --enable-pcntl configuration option when compiling PHP to enable Process Control support.

Замечание: Currently, this module will not function on non-Unix platforms (Windows).

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

The following list of signals are supported by the Process Control functions. Please see your systems signal(7) man page for details of the default behavior of these signals.

WNOHANG (integer)

WUNTRACED (integer)

SIG_IGN (integer)

SIG_DFL (integer)

SIG_ERR (integer)

SIGHUP (integer)

SIGINT (integer)

SIGQUIT (integer)

SIGILL (integer)

SIGTRAP (integer)

SIGABRT (integer)

SIGIOT (integer)

SIGBUS (integer)

SIGFPE (integer)

SIGKILL (integer)

SIGUSR1 (integer)

SIGSEGV (integer)

SIGUSR2 (integer)

SIGPIPE (integer)

SIGALRM (integer)

SIGTERM (integer)

SIGSTKFLT (integer)

SIGCLD (integer)

SIGCHLD (integer)

SIGCONT (integer)

SIGSTOP (integer)

SIGTSTP (integer)

SIGTTIN (integer)

SIGTTOU (integer)

SIGURG (integer)

SIGXCPU (integer)

SIGXFSZ (integer)

SIGVTALRM (integer)

SIGPROF (integer)

SIGWINCH (integer)

SIGPOLL (integer)

SIGIO (integer)

SIGPWR (integer)

SIGSYS (integer)

SIGBABY (integer)

Примеры

This example forks off a daemon process with a signal handler.

Пример 1. Process Control Example

<?php
declare(ticks=1);

$pid = pcntl_fork();
if ($pid == -1) {
     die("could not fork");
} else if ($pid) {
     exit(); // we are the parent
} else {
     // we are the child
}

// detatch from the controlling terminal
if (!posix_setsid()) {
    die("could not detach from terminal");
}

// loop forever performing tasks
while (1) {

    // do something interesting here

}

function sig_handler($signo)
{

     switch ($signo) {
         case SIGTERM:
             // handle shutdown tasks
             exit;
             break;
         case SIGHUP:
             // handle restart tasks
             break;
         default:
             // handle all other signals
     }

}

// setup signal handlers
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP, "sig_handler");

?>

Смотрите также

A look at the section about POSIX functions may be useful.

Содержание
pcntl_alarm -- Set an alarm clock for delivery of a signal
pcntl_exec -- Executes specified program in current process space
pcntl_fork -- Forks the currently running process
pcntl_getpriority -- Get the priority of any process
pcntl_setpriority -- Change the priority of any process
pcntl_signal -- Installs a signal handler
pcntl_wait -- Waits on or returns the status of a forked child
pcntl_waitpid -- Waits on or returns the status of a forked child
pcntl_wexitstatus -- Returns the return code of a terminated child
pcntl_wifexited -- Returns TRUE if status code represents a successful exit
pcntl_wifsignaled -- Returns TRUE if status code represents a termination due to a signal
pcntl_wifstopped -- Returns TRUE if child process is currently stopped
pcntl_wstopsig -- Returns the signal which caused the child to stop
pcntl_wtermsig -- Returns the signal which caused the child to terminate

Пред. | Начало | След.
parsekit_func_arginfo | Уровень выше | pcntl_alarm


pcntl_alarm

(PHP 4 >= 4.3.0, PHP 5)

pcntl_alarm -- Set an alarm clock for delivery of a signal

Description

int pcntl_alarm ( int seconds )

The pcntl_alarm() function creates a timer that will send a SIGALRM signal to the process after seconds seconds. If seconds is zero, no new alarm is created. Any call to pcntl_alarm() will cancel any previously set alarm.

pcntl_alarm() will return the time in seconds that any previously scheduled alarm had remaining before it was to be delivered, or 0 if there was no previously scheduled alarm.

Пред. | Начало | След.
Process Control Functions | Уровень выше | pcntl_exec


pcntl_exec

(PHP 4 >= 4.2.0, PHP 5)

pcntl_exec -- Executes specified program in current process space

Description

void pcntl_exec ( string path [, array args [, array envs]] )

pcntl_exec() executes the program path with arguments args. path must be the path to a binary executable or a script with a valid path pointing to an executable in the shebang ( #!/usr/local/bin/perl for example) as the first line. See your system's man execve(2) page for additional information.

args is an array of argument strings passed to the program.

envs is an array of strings which are passed as environment to the program. The array is in the format of name => value, the key being the name of the environmental variable and the value being the value of that variable.

pcntl_exec() returns FALSE on error and does not return on success.

Пред. | Начало | След.
pcntl_alarm | Уровень выше | pcntl_fork


pcntl_fork

(PHP 4 >= 4.1.0, PHP 5)

pcntl_fork -- Forks the currently running process

Description

int pcntl_fork ( void )

The pcntl_fork() function creates a child process that differs from the parent process only in its PID and PPID. Please see your system's fork(2) man page for specific details as to how fork works on your system.

On success, the PID of the child process is returned in the parent's thread of execution, and a 0 is returned in the child's thread of execution. On failure, a -1 will be returned in the parent's context, no child process will be created, and a PHP error is raised.

Пример 1. pcntl_fork() example

<?php

$pid = pcntl_fork();
if ($pid == -1) {
     die('could not fork');
} else if ($pid) {
     // we are the parent
     pcntl_wait($status); //Protect against Zombie children
} else {
     // we are the child
}

?>

See also pcntl_waitpid() and pcntl_signal().

Пред. | Начало | След.
pcntl_exec | Уровень выше | pcntl_getpriority


pcntl_getpriority

(PHP 5)

pcntl_getpriority -- Get the priority of any process

Description

int pcntl_getpriority ( [int pid [, int process_identifier]] )

pcntl_getpriority() gets the priority of pid. If pid is not specified, the pid of the current process is used. Because priority levels can differ between system types and kernel versions, please see your system's getpriority(2) man page for specific details.

pcntl_getpriority() returns the priority of the process or FALSE on error. A lower numerical value causes more favorable scheduling.

process_identifier is one of PRIO_PGRP, PRIO_USER or PRIO_PROCESS.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и не относящееся к логическому типу значение, которое приводится к FALSE, например, 0 или "". За более подробной информации обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Пред. | Начало | След.
pcntl_fork | Уровень выше | pcntl_setpriority


pcntl_setpriority

(PHP 5)

pcntl_setpriority -- Change the priority of any process

Description

bool pcntl_setpriority ( int priority [, int pid [, int process_identifier]] )

pcntl_setpriority() sets the priority of pid to priority. If pid is not specified, the pid of the current process is used.

priority is generally a value in the range -20 to 20. The default priority is 0 while a lower numerical value causes more favorable scheduling. Because priority levels can differ between system types and kernel versions, please see your system's setpriority(2) man page for specific details.

process_identifier is one of PRIO_PGRP, PRIO_USER or PRIO_PROCESS.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pcntl_getpriority | Уровень выше | pcntl_signal


pcntl_signal

(PHP 4 >= 4.1.0, PHP 5)

pcntl_signal -- Installs a signal handler

Description

bool pcntl_signal ( int signo, callback handle [, bool restart_syscalls] )

The pcntl_signal() function installs a new signal handler for the signal indicated by signo. The signal handler is set to handler which may be the name of a user created function, or either of the two global constants SIG_IGN or SIG_DFL. The optional restart_syscalls specifies whether system call restarting should be used when this signal arrives and defaults to TRUE.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: The optional restart_syscalls parameter became available in PHP 4.3.0.

Замечание: The ability to use an object method as a callback became available in PHP 4.3.0. Note that when you set a handler to an object method, that object's reference count is increased which makes it persist until you either change the handler to something else, or your script ends.

Пример 1. pcntl_signal() example

<?php
// tick use required as of PHP 4.3.0
declare(ticks = 1);

// signal handler function
function sig_handler($signo)
{

     switch ($signo) {
         case SIGTERM:
             // handle shutdown tasks
             exit;
             break;
         case SIGHUP:
             // handle restart tasks
             break;
         case SIGUSR1:
             echo "Caught SIGUSR1...\n";
             break;
         default:
             // handle all other signals
     }

}

echo "Installing signal handler...\n";

// setup signal handlers
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP,  "sig_handler");
pcntl_signal(SIGUSR1, "sig_handler");

// or use an object, available as of PHP 4.3.0
// pcntl_signal(SIGUSR1, array($obj, "do_something");

echo"Generating signal SIGTERM to self...\n";

// send SIGUSR1 to current process id
posix_kill(posix_getpid(), SIGUSR1);

echo "Done\n"

?>

Замечание: As of PHP 4.3.0 PCNTL uses ticks as the signal handle callback mechanism, which is much faster than the previous mechanism. This change follows the same semantics as using "user ticks". You must use the declare() statement to specify the locations in your program where callbacks are allowed to occur for the signal handler to function properly (as used in the above example).

See also pcntl_fork() and pcntl_waitpid().

Пред. | Начало | След.
pcntl_setpriority | Уровень выше | pcntl_wait


pcntl_wait

(PHP 5)

pcntl_wait -- Waits on or returns the status of a forked child

Description

int pcntl_wait ( int &status [, int options] )

The wait function suspends execution of the current process until a child has exited, or until a signal is delivered whose action is to terminate the current process or to call a signal handling function. If a child has already exited by the time of the call (a so-called "zombie" process), the function returns immediately. Any system resources used by the child are freed. Please see your system's wait(2) man page for specific details as to how wait works on your system.

pcntl_wait() returns the process ID of the child which exited, -1 on error or zero if WNOHANG was provided as an option (on wait3-available systems) and no child was available.

If wait3 is available on your system (mostly BSD-style systems), you can provide the optional options parameter. If this parameter is not provided, wait will be used for the system call. If wait3 is not available, providing a value for options will have no effect. The value of options is the value of zero or more of the following two constants OR'ed together:

Таблица 1. Possible values for options if wait3 is available

WNOHANG | Return immediately if no child has exited.
WUNTRACED | Return for children which are stopped, and whose status has not been reported.

pcntl_wait() will store status information
in the status parameter which can be
evaluated using the following functions:
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() and
pcntl_wstopsig().

Замечание: This function is equivalent to calling pcntl_waitpid() with a -1 pid and no options.

See also pcntl_fork(),
pcntl_signal(),
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig(),
pcntl_wstopsig() and
pcntl_waitpid().

Пред. | Начало | След.
pcntl_signal | Уровень выше | pcntl_waitpid


pcntl_waitpid

(PHP 4 >= 4.1.0, PHP 5)

pcntl_waitpid -- Waits on or returns the status of a forked child

Description

int pcntl_waitpid ( int pid, int &status [, int options] )

The pcntl_waitpid() function suspends execution of the current process until a child as specified by the pid argument has exited, or until a signal is delivered whose action is to terminate the current process or to call a signal handling function. If a child as requested by pid has already exited by the time of the call (a so-called "zombie" process), the function returns immediately. Any system resources used by the child are freed. Please see your system's waitpid(2) man page for specific details as to how waitpid works on your system.

pcntl_waitpid() returns the process ID of the child which exited, -1 on error or zero if WNOHANG was used and no child was available

The value of pid can be one of the following:

Таблица 1. possible values for pid

< -1 | wait for any child process whose process group ID is equal to the absolute value of pid.
-1 | wait for any child process; this is the same behaviour that the wait function exhibits.
0 | wait for any child process whose process group ID is equal to that of the calling process.
> 0 | wait for the child whose process ID is equal to the value of pid.

Замечание: Specifying -1 as the pid is equivalent to the functionality pcntl_wait() provides (minus options).

pcntl_waitpid() will store status information
in the status parameter which can be
evaluated using the following functions:
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() and
pcntl_wstopsig().

The value of options is the value of zero or more of the following two global constants OR'ed together:

Таблица 2. possible values for options

WNOHANG | return immediately if no child has exited.
WUNTRACED | return for children which are stopped, and whose status has not been reported.

See also pcntl_fork(),
pcntl_signal(),
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() and
pcntl_wstopsig().

Пред. | Начало | След.
pcntl_wait | Уровень выше | pcntl_wexitstatus


pcntl_wexitstatus

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wexitstatus -- Returns the return code of a terminated child

Description

int pcntl_wexitstatus ( int status )

Returns the return code of a terminated child. This function is only useful if pcntl_wifexited() returned TRUE.

Параметр status - это переменная, переданная по ссылке в функцию pcntl_waitpid().

See also pcntl_waitpid() and pcntl_wifexited().

Пред. | Начало | След.
pcntl_waitpid | Уровень выше | pcntl_wifexited


pcntl_wifexited

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wifexited -- Returns TRUE if status code represents a successful exit

Description

bool pcntl_wifexited ( int status )

Returns TRUE if the child status code represents a successful exit.

Параметр status - это переменная, переданная по ссылке в функцию pcntl_waitpid().

See also pcntl_waitpid() and pcntl_wexitstatus().

Пред. | Начало | След.
pcntl_wexitstatus | Уровень выше | pcntl_wifsignaled


pcntl_wifsignaled

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wifsignaled -- Returns TRUE if status code represents a termination due to a signal

Description

bool pcntl_wifsignaled ( int status )

Returns TRUE if the child process exited because of a signal which was not caught.

Параметр status - это переменная, переданная по ссылке в функцию pcntl_waitpid().

See also pcntl_waitpid() and pcntl_signal().

Пред. | Начало | След.
pcntl_wifexited | Уровень выше | pcntl_wifstopped


pcntl_wifstopped

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wifstopped -- Returns TRUE if child process is currently stopped

Description

bool pcntl_wifstopped ( int status )

Returns TRUE if the child process which caused the return is currently stopped; this is only possible if the call to pcntl_waitpid() was done using the option WUNTRACED.

Параметр status - это переменная, переданная по ссылке в функцию pcntl_waitpid().

See also pcntl_waitpid().

Пред. | Начало | След.
pcntl_wifsignaled | Уровень выше | pcntl_wstopsig


pcntl_wstopsig

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wstopsig -- Returns the signal which caused the child to stop

Description

int pcntl_wstopsig ( int status )

Returns the number of the signal which caused the child to stop. This function is only useful if pcntl_wifstopped() returned TRUE.

Параметр status - это переменная, переданная по ссылке в функцию pcntl_waitpid().

See also pcntl_waitpid() and pcntl_wifstopped().

Пред. | Начало | След.
pcntl_wifstopped | Уровень выше | pcntl_wtermsig


pcntl_wtermsig

(PHP 4 >= 4.1.0, PHP 5)

pcntl_wtermsig -- Returns the signal which caused the child to terminate

Description

int pcntl_wtermsig ( int status )

Returns the number of the signal that caused the child process to terminate. This function is only useful if pcntl_wifsignaled() returned TRUE.

Параметр status - это переменная, переданная по ссылке в функцию pcntl_waitpid().

See also pcntl_waitpid(),
pcntl_signal() and
pcntl_wifsignaled().

Пред. | Начало | След.
pcntl_wstopsig | Уровень выше | Функции для работы с регулярными выражениями (Perl-совместимые)


Функции для работы с регулярными выражениями (Perl-совместимые)

Руководство по PHP
Пред. След.

CIX. Функции для работы с регулярными выражениями (Perl-совместимые)

Введение

Синтакcис шаблонов, используемых в функциях этого раздела, во многом похож на синтаксис, используемый в Perl. Выражение должно быть заключено в ограничители, например, прямые слеши '/'. Ограничителем могут выступать произвольные символы, кроме буквенно-цифровых и обратного слеша '\'. Если ограничительный символ встречается в шаблоне, его необходимо экранировать. Начиная с PHP 4.0.4 в качестве ограничителя доступны комбинации, используемые в Perl: (), {}, [] и <>. Подробней об этом рассказано в разделе Синтаксис регулярных выражений.

После закрывающего ограничителя можно указывать различные модификаторы, влияющие на работу регулярных выражений. Детальная информация доступна в разделе Модификаторы шаблонов.

PHP также поддерживает POSIX-совместимые регулярные выражения, используя соответствующий модуль.

Требования

Поддержка Perl-совместимых регулярных выражений реализована в соответствующей PCRE библиотеке, которая распространяется с открытым исходным кодом. Автором библиотеки является Philip Hazel, авторские права принадлежат кембриджскому университету, Англия. Исходный код доступен по ссылке ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/.

Внимание

Также вы должны учитывать некоторые ограничения PCRE. Ознакомьтесь с http://www.pcre.org/pcre.txt для получения более полной информации.

Установка

Начиная с PHP 4.2.0, Perl-совместисмые регулярные выражения (PCRE) доступны по умолчанию. Вы можете отключить их при помощи --without-pcre-regex. В случае, если вы хотите использовать библиотеку, отличную от идущей в стандартной поставке РНР, используйте опцию --with-pcre-regex=DIR для указания директории, содержащей необходимые файлы. Если у вас версия PHP менее, чем 4.2.0, вам необходимо сконфигурировать и пересобрать PHP с опцией --with-pcre-regex[=DIR], чтобы включить поддержку PCRE-функций.

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

Таблица 1. PREG константы

константа | описание
PREG_PATTERN_ORDER | Меняет порядок элементов в результирующем массиве так, чтобы элемент $matches[0] содержал полные вхождения шаблона, элемент $matches[1] - все вхождения первой взятой в круглые скобки подмаски, и так далее. Только reg_match_all() реагирует на данный модификатор; остальными функциями он игнорируется.
PREG_SET_ORDER | Меняет порядок элементов в результирующем массиве так, чтобы элемент $matches[0] содержал первый набор вхождений (полное вхождение, вхождение первой подмаски, заключенной в круглые скобки...), аналогично элемент $matches[1] - второй набор вхождений, и так далее. Только reg_match_all() реагирует на данный модификатор; остальными функциями он игнорируется.
PREG_OFFSET_CAPTURE | Смотрите описание флага PREG_SPLIT_OFFSET_CAPTURE. Данный флаг доступен в PHP 4.3.0 и выше.
PREG_SPLIT_NO_EMPTY | В случае, если этот флаг указан, функция preg_split() вернет только непустые подстроки.
PREG_SPLIT_DELIM_CAPTURE | В случае, если этот флаг указан, выражение, заключенное в круглые скобки в разделяющем шаблоне, также извлекается из заданной строки и возвращается функцией. Этот флаг был добавлен в PHP 4.0.5.
PREG_SPLIT_OFFSET_CAPTURE | В случае, если этот флаг указан, для каждой найденной подстроки будет указана ее позиция в исходной строке. Необходимо помнить, что этот флаг меняет формат возвращаемых данных: каждое вхождение возвращается в виде массива, в нулевом элементе которого содержится найденная подстрока, а в первом - смещение. Этот флаг доступен в PHP 4.3.0 и выше и используется только в функции preg_split().

Примеры

Пример 1. Примеры правильных шаблонов

  • /<\/\w+>/

  • |(\d{3})-\d+|Sm

  • /^(?i)php[34]/

  • {^\s+(\s+)?$}

Пример 2. Примеры неправильных шаблонов

  • /href='(.*)' - пропущен закрывающий ограничитель

  • /\w+\s*\w+/J - неизвестный модификатор 'J'

  • 1-\d3-\d3-\d4| - пропущен открывающий ограничитель

Содержание
Модификаторы шаблонов -- Описывает возможные модификаторы шаблонов Perl-совместимых регулярных выражений (PCRE)
Синтаксис регулярных выражений -- Описание синтаксиса Perl-совместимых регулярных выражений (PCRE)
preg_grep -- Возвращает массив вхождений, которые соответствуют шаблону
preg_match_all -- Выполняет глобальный поиск шаблона в строке
preg_match -- Выполняет проверку на соответствие регулярному выражению
preg_quote -- Экранирует символы в регулярных выражениях
preg_replace_callback -- Выполняет поиск по регулярному выражению и замену с использованием функции обратного вызова
preg_replace -- Выполняет поиск и замену по регулярному выражению
preg_split -- Разбивает строку по регулярному выражению

Пред. | Начало | След.
pcntl_wtermsig | Уровень выше | Модификаторы шаблонов


Модификаторы шаблонов

Модификаторы шаблонов -- Описывает возможные модификаторы шаблонов Perl-совместимых регулярных выражений (PCRE)

Описание

Ниже перечислены все доступные на сегодняшний день модификаторы. Имя, взятое в круглые скобки, указывает внутреннее PCRE имя для данного модификатора.

i (PCRE_CASELESS)

Если этот модификатор используется, символы в шаблоне соответствуют символам как верхнего, так и нижнего регистра.

m (PCRE_MULTILINE)

По умолчанию PCRE обрабатывает данные как однострочную символьную строку (даже если она содержит разделители строк). Метасимвол начала строки '^' соответствует только началу обрабатываемого текста, в то время как метасимвол "конец строки" '$' соответствует концу текста, либо позиции перед завершающим текст переводом строки (в случае, если модификатор D не установлен). В Perl ситуация полностью аналогична.

Если этот модификатор используется, метасимволы "начало строки" и "конец строки" также соответствуют позициям перед произвольным символом перевода и строки и, соответственно, после. Это соответствует Perl-модификатору \m. В случае, если обрабатываемый текст не содержит символов перевода строки, либо шаблон не содержит метасимволов '^' или '$', данный модификатор не имеет никакого эффекта.

s (PCRE_DOTALL)

Если данный модификатор используется, метасимвол "точка" в шаблоне соответствует всем символам, включая перевод строк. Без него - всем, за исключением переводов строк. Этот модификатор эквивалентен записи /s в Perl. Класс символов, построенный на отрицании, например [^a], всегда соответствует переводу строки, независимо от наличия этого модификатора.

x (PCRE_EXTENDED)

Если данный модификатор используется, неэкранированные пробелы, символы табуляции и пустой строки в шаблоне игнорируются, если они не являются частью символьного класса. Также игнорируются все символы между неэкранированным символом '#' (если он не является частью символьного класса) и символом перевода строки (включая сами символы '\n' и '#'). Это эквивалентно Perl-модификатору \x, и позволяет размещать комментарий в сложных шаблонах. Замечание: это касается только символьных данных. Пробельные символы не фигурируют в служебных символьных последовательностях, к примеру, в последовательности '(?(', открывающей условную подмаску.

e

Если данный модификатор используется, preg_replace() после выполнения стандартных подстановок в заменяемой строке интерпретирует ее как PHP-код и использует результат для замены искомой строки.

Только preg_replace() реагирует на данный модификатор; остальными функциями он игнорируется.

Замечание: Этот модификатор недоступен в PHP 3.

A (PCRE_ANCHORED)

Если данный модификатор используется, соответствие шаблону будет достигаться только в том случае, если он соответствует началу строки, в которой производится поиск. Того же эффекта можно достичь подходящей конструкцией с вложенным шаблоном, которая реализуема в Perl.

D (PCRE_DOLLAR_ENDONLY)

Если данный модификатор используется, метасимвол $ в шаблоне соответствует только окончанию обрабатываемых данных. Без этого модификатора метасимвол $ соответствует также позиции перед последним символом, в случае, если им является перевод строки (но не распространяется на любые другие переводы строк). Данный модификатор игнорируется, если используется модификатор m. В языке Perl аналогичный модификатор отсутствует.

S

В случае, если планируется многократно использовать шаблон, имеет смысл потратить немного больше времени на его анализ, чтобы уменьшить время его выполнения. В случае, если данный модификатор используется, проводится дополнительный анализ шаблона. В настоящем это имеет смысл только для фиксированных шаблонов, не содержащих переменных ссылок.

U (PCRE_UNGREEDY)

Этот модификатор инвертирует жадность квантификаторов, таким образом они по умолчанию не жадные. Но становятся жадными, если за ними следует символ '?'. Такая возможность не совместима с Perl. Модификатор U также может использоваться внутри шаблона, при помощи '?U' записи.

X (PCRE_EXTRA)

Этот модификатор включает дополнительную функциональность PCRE, которая не совместима с Perl: любой обратный слеш в шаблоне, за которым следует символ, не имеющий специального значения, приводят к ошибке. Это обусловлено тем, что подобные комбинации зарезервированы для дальнейшего развития. По умолчанию же, как и в Perl, слеш со следующим за ним символом без специального значения трактуется как as опечатка. На сегодняшний день это все возможности, которые управляются данным модификатором

u (PCRE_UTF8)

Этот модификатор включает дополнительную функциональность PCRE, которая не совместима с Perl: шаблоны обрабатываются как UTF8 строки. Модификатор u доступен в PHP 4.1.0 и выше для Unix-платформ, и в PHP 4.2.3 и выше для Windows платформ.

Пред. | Начало | След.
Функции для работы с регулярными выражениями (Perl-совместимые) | Уровень выше | Синтаксис регулярных выражений


Синтаксис регулярных выражений

Синтаксис регулярных выражений -- Описание синтаксиса Perl-совместимых регулярных выражений (PCRE)

Вступление

Библиотека PCRE является набором функций, которые реализуют поиск по шаблону, используя синтаксис, подобный синтаксису Perl 5 с небольшими отличиями. Текущая реализация соответствует версии Perl 5.005.

Отличия от Perl

Разница описана относительно версии Perl 5.005.

  1. По умолчанию пробельными символами являются все символы, распознаваемые библиотечной функцией языка Си isspace(). Это позволяет собрать PCRE библиотеку с произвольными символьными наборами. В стандартной поставке функция isspace() определяет как пробельные следующие символы: пробел, разрыв страницы, начло строки, перевод каретки, горизонтальную и вертикальную табуляцию. Начиная с версии Perl 5.002, символ вертикальной табуляции \v не является пробельным и, соответственно, не соответствует классу символов \s.

  2. PCRE не позволяет использовать квантификаторы повторения в условных выражениях. Perl позволяет это делать, но получаемый результат может существенно отличаться от ожидаемого. Например, (?!a){3} не означает, что три следующих символа будут не 'a'. Он всего лишь трижды утверждает, что следующий символ не 'a'.

  3. Во время сопоставления подмаски, находящейся внутри отрицающего условного выражения, счетчик подмасок увеличивается, но сами значения, зафиксированные такой подмаской, не возвращаются (в результирующем массиве по соответствующим смещениям находятся пустые строки). Perl устанавливает значения соответствующих числовых переменных исходя из предшествующей модмаски, найденной непосредственно перед тем, как отрицающее условие не смогло быть сопоставлено (и таким образом выполнилось), но только в том случае, если условное выражение содержит только одну ветвь.

  4. Несмотря на то, что символ, соответствующий ASCII-коду 0 (бинарный ноль), допускается в обрабатываемом тексте, он недопустим в шаблоне (так как передается в качестве аргумента Си-функции как нормальная строка, завершаемая нулевым символом). Cледующая служебная последовательность "\\x00" может быть использована для представления бинарного ноля.

  5. Следующие служебные последовательности, используемые в Perl, не поддерживаются: \l, \u, \L, \U, \E, \Q. Это связано с тем, что обработка указанных последовательностей производится внутренним Perl-механизмом обработки строк и не является частью механизма регулярных выражений.

  6. Perl модификатор \G не поддерживается, так как он не входит в рамки простого сопоставления шаблону.

  7. Достаточно очевидно, что PCRE не поддерживает конструкции вида (?{code}).

  8. Теперь немного о чудаковатости в Perl 5.005_02, связанной с фиксацией результата в случае, когда часть шаблона повторяется. Например, применяя шаблон /^(a(b)?)+$/ к строке "aba", переменная $2 соответствует 'b'. Но при применении шаблона /^(aa(bb)?)+$/ к строке "aabbaa" переменная $2 оказывается неустановленной. А в случае, если шаблон изменить на /^(aa(b(b))?)+$/, переменные $2 и $3 окажутся установленными. В Perl 5.004, в обоих случаях переменная $2 будет содержать соответствующее значение, что соответствует PCRE. Если в будущем Perl изменит поведение в данной ситуации, PCRE также может измениться.

  9. Еще одна несовместимость, не находящая разумного объяснения. Шаблон /^(a)?(?(1)a|b)+$/ соответствует строке 'a' в PERL, но не в PCRE. В то же время шаблон /^(a)?a/ соответствует строке 'a' и в Perl и в PCRE, оставляя переменную $1 неустановленной.

  10. PCRE также предоставляет некоторое расширение возможностей Perl для обработки регулярных выражений:

    1. Несмотря на то, что условное выражение, ссылающееся на предыдущие вхождения, должно соответствовать строке фиксированной длины, каждая ветка такого выражения в отдельности может соответствовать строке произвольной длины (отличающейся от длины других веток). В то время как Perl 5.005 требует, чтобы все они имели одинаковую длину.

    2. В случае, если модификатор PCRE_DOLLAR_ENDONLY используется и PCRE_MULTILINE не используется, специальный символ '$' соответствует исключительно концу обрабатываемых данных.

    3. В случае, если модификатор PCRE_EXTRA используется, обратный слеш, за которым следует символ, не имеющий специального значения, приводит к ошибке.

    4. Модификатор PCRE_UNGREEDY инвертирует жадность квантификаторов, таким образом они по умолчанию не жадные. Но становятся жадными, если за ними следует символ '?'.

Регулярные выражения в деталях

Предисловие

Ниже описан синтаксис Perl-совместимых регулярных выражений (PCRE). Регулярные выражения также хорошо описаны в документации языка Perl и в достаточно большом количестве книг, с изобилием примеров, например, книга "Mastering Regular Expressions", написанная Effrey Friedl's (ISBN 1-56592-257-3).

Регулярное выражение - это шаблон, применяемый к заданному тексту слева направо. Большая часть символов сохраняет свое значение в шаблоне и означает совпадение с соответствующим символом. Банальный пример: шаблон The quick brown fox соответствует той части строки, которая идентична приведенной фразе.

Метасимволы

Сила регулярных выражений исходит из возможности использовать условия и повторения в шаблоне. Они записываются при помощи метасимволов , которые интерпретируются специальным образом.

Существуют два различных набора метасимволов: те, которые используются внутри квадратных скобок, и те, которые используются вне квадратных скобок. Рассмотрим их более детально. Вне квадратных скобок используются следующие метасимволы:

\

общий экранирующий символ, допускающий несколько вариантов применения

^

декларирует начало данных (или линии, в многострочном режиме)

$

декларирует конец данных (или линии, в многострочном режиме)

.

соответствует любому символу, кроме перевода строки (по умолчанию)

[

начало описания символьного класса

]

конец описания символьного класса

|

начало ветки условного выбора

(

Начало подмаски

)

конец подмаски

?

расширяет смысл метасимвола '(' , квантификатор, означающий ноль либо одно вхождение, квантификатор жадности

*

квантификатор, означающий ноль или более вхождений

+

квантификатор, означающий одно или более вхождений

{

начало количественного квантификатора

}

конец количественного квантификатора

Часть шаблона, заключенная в квадратные скобки, называется символьным классом. Внутри символьных классов используются следующие метасимволы:

\

общий экранирующий символ

^

означает отрицание класса, допустим только в начале класса

-

означает символьный интервал

]

завершает символьный класс

В нижеследующих секциях детально описан каждый из перечисленных метасимволов.

Обратный слеш

Символ '\' имеет несколько применений. Прежде всего, если он предшествует не буквенно-цифровому символу, он снимает с него специальное значение. Применение обратного слеша как экранирующего символа допустимо как в символьном классе, так и вне него.

Например, если вы хотите задать соответствие символу '*', в шаблоне вам необходимо указать '\*'. Это предотвратит трактование '*' как метасимвола с особым значением. Во избежание ошибок всегда экранируйте не буквенно-цифровые символы, если хотите указать соответствие самому символу. В частном случае для сопоставления с самим символом обратного слеша, используйте запись '\\'.

В случае, если указан модификатор PCRE_EXTENDED, пробельные символы в шаблоне (вне описания символьного класса) игнорируются. Также игнорируется часть строки, находящаяся между символом '#' (опять же, не участвующем в описании символьного класса) и следующим символом перевода строки. В таком случае обратный слеш можно применять как экранирующий символ для указания вхождений пробельным символов в шаблоне.

Второе примение обратного слеша заключается в том, что он позволяет использовать непечатные символы в описании шаблона. При том, что в PCRE нет ограничений на использование непечатных символов (исключая бинарный 0, который интерпретируется как конец шаблона), при редактировании программного кода в каком-либо текстовом редакторе гораздо удобнее использовать следующие комбинации:

\a

символ оповещения, сигна, (шестнадцатиричный код 07)

\cx

"Ctrl+x", где x - произвольный символ

\e

escape (шестнадцатеричный код 1B)

\f

разрыв страницы (шестнадцатиричный код 0C)

\n

перевод строки (шестнадцатиричный код 0A)

\r

возврат каретки (шестнадцатиричный код 0D)

\t

табуляция (шестнадцатиричный код 09)

\xhh

символ с шестнадцатиричным кодом hh

\ddd

символ с восьмеричным кодом либо ссылка на подмаску

Если быть более точным, комбинация \cx интерпретируется следующим образом: если 'x' - символ нижнего регистра, он преобразуется в верхний регистр. После этого шестой бит инвертируется. Таким образом '\cz' интерпретируется как 1A, в то время как '\c;' получает шестнадцатиричное значение 3B, а '\c;' - 7B.

После "\x" считываются еще две шестнадцатиричные цифры (они могут быть записаны в нижнем регистре).

После "\0" считываются две восьмеричные цифры. Если в записи менее двух цифр, будут использованы все фактически присутствующие цифры. Таким образом, последовательность "\0\x\07" будет интерпретирована как два бинарных нуля, за которыми следует символ оповещения (звонок). В случае, если вы используете представление числа в восьмеричном коде, убедитесь, что за начальным нулем следуют две значащие цифры.

Обработка обратного слеша, за которым следует не нулевая цифра, несколько сложнее. Вне символьного класса PCRE читает следующие за обратным слешем цифры как десятичное число. Если полученное значение меньше десяти, либо если шаблон содержит по меньшей мере такое же количество предшествующих текущей позиции подмасок, вся конструкция интерпретируется как ссылка на подмаску. Более детальное описание будет приведено ниже при обсуждении механизма работы подмасок.

Внутри символьного класса, либо если полученное значение больше 9 и соответствующее количество предшествующих подмасок отсутствует, PCRE считывает до трех восьмеричных цифр, следующих за обратным слешем, и генерирует один байт из последних 8-ми значащих битов полученного значения. Все последующие цифры обозначают себя же. Например:

\040

еще один способ записи пробела

\40

то же самое в случае, если данной записи предшествует менее сорока подмасок

\7

всегда интерпретируется как ссылка на подмаску

\11

может быть как обратной ссылкой, так и альтернативной записью символа табуляции

\011

всегда интерпретируется как символ табуляции

\0113

символ табуляции, за которым следует цифра "3"

\113

интерпретируется как символ с восьмеричным кодом 113 (так как ссылок на подмаски не может быть более чем 99)

\377

байт, всецело состоящий из единичных битов

\81

либо обратная ссылка, либо бинарный ноль, за которым следуют цифры "8" и "1"

Следует помнить, что восьмеричные значения, превышающие 100, следует писать без лидирующего нуля, так как читается не более трех восьмеричных цифр.

Все последовательности, определяющие однобайтное значение, могут встречаться как внутри, так и вне символьных классов. Кроме того, внутри символьного класса запись "\b" интерпретируется как символ возврата ('backspace', шестнадцатеричный код 08). Вне символьного класса она имеет другое значение (какое именно, описано ниже).

Третье использование обратного слеша - указание общего типа символов:

\d

любая десятичная цифра

\D

любой символ, кроме десятичной цифры

\s

любой пробельный символ

\S

любой непробельный символ

\w

Любой символ, образующий "слово"

\W

Любой символ, не образующий "слово"

Каждая пара таких специальных последовательностей делит полное множество всех символов на два непересекающихся множества. Любой символ соответствует одному и только одному множеству из пары.

"word" символ - это произвольная цифра, буква или символ подчеркивания, проще говоря, любой символ, который может являться частью 'слова' в Perl. Определение букв и цифр управляется символьными таблицами, с которыми PCRE был собран. И, как следствие, эти наборы могут отличаться в различных локализированных дистрибутивах. Например, в локали "fr" (Франция) некоторые символы с кодом выше 128 используются для записи ударных символов и, соответственно, соответствуют маске \w.

Описанные выше типы символов могут применяться как внутри, так и вне символьных классов, и соответствуют одному символу данного типа.

Четвертое использование обратного слеша - нотация некоторых формальных утверждений, описывающих условия касательно месторасположения особых позиций в строке и совершенно не затрагивающих сами символы. Такими управляющими последовательностями являются:

\b

граница слова

\B

не является границей слова

\A

начало данных (независимо от многострочного режима)

\Z

конец данных либо позиция перед последним символом строки, в случае если это символ перевода строки (независимо от многострочного режима)

\z

конец данных (независимо от многострочного режима)

Описанные выше последовательности не могут встречаться в символьных классах (исключая комбинацию '\b', которая внутри класса означает символ возврата 'backspace').

Границей слова считается такая позиция в строке, в которой из текущего и последующего символа только один соответствует \w (т.е. один из них соответствует \w, а другой \W). Начало или конец строки также соответствуют границе слова в случае, если первый или, соответственно, последний символ совпадает с \w.

Специальные последовательности \A, \Z и \z отличаются от общеупотребляемых метасимволов начала строки '^' и конца строки '$' тем, что их поведение не зависит от наличия или отсутствия модификаторов. На них никак не влияют опции PCRE_MULTILINE и PCRE_DOLLAR_ENDONLY. Разница между \Z и \Z в том, что \Z соответствует позиции перед последним символом в случае, если последний символ - перевод строки. В то время, как \z соответствует исключительно концу данных.

Метасимволы начала и конца строки

По умолчанию, вне символьного класса метасимвол начала строки '^' соответствует началу обрабатываемых данных (если не используются модификаторы). Внутри символьного класса он имеет совершенно другое значение.

Метасимвол '^' не обязан быть первым символом строки в случае, если в шаблоне используются несколько альтернатив, но должен быть первым символом в каждой из альтернатив, в которой он встречается, если шаблон когда-либо сопоставим с соответствующей веткой. Если все альтернативы начинаются с метасимвола начала строки, то шаблон ограничен для совпадения исключительно в начале строки, говорят что шаблон "заякорен". (Существуют и другие способы "заякорить" шаблон).

Соответствие метасимволу конца строки достигается только в конце строки или непосредственно перед последним символом в случае, если им является перевод строки (если модификаторы не указаны). Метасимвол конца строки не обязан быть последним символом шаблона в случае, если несколько альтернатив используется, но должен быть последним символом в каждой альтернативе, в которой он фигурирует. Внутри символьного класса символ '$' не имеет специального значения.

Поведение метасимвола конца строки может быть изменено при помощи модификатора PCRE_DOLLAR_ENDONLY так, чтобы он соответствовал исключительно концу строки. Данный флаг никак не касается специальной последовательности \Z.

Значение метасимволов начала и конца строки меняется в случае, если модификатор PCRE_MULTILINE используется. В таком случае, помимо совпадений в начале либо конце строки, метасимволы '^' и '$' соответствуют позиции непосредственно после символа перевода строки соответственно. Например, шаблон /^abc$/ встречается в строке def\nabc" в многострочном режиме и не встречается в нормальном режиме. Таким образом, шаблон который "заякорен" в однострочном режиме, не будет являться "заякоренным" в многострочном режиме. Модификатор PCRE_DOLLAR_ENDONLY игнорируется в случае, если модификатор PCRE_MULTILINE установлен.

Следует заметить, что служебные последовательности \A, \Z и \z могут использоваться для сопоставления с началом либо концом строки в обоих режимах. И если все ветви шаблона начинаются с \A, шаблон будет заякорен независимо от присутствия модификатора PCRE_MULTILINE.

Метасимвол точка

Вне символьного класса символ точка соответствует любому (в том числе и непечатному, бинарному) символу, кроме символа перевода строки '\n'. В случае, если модификатор PCRE_DOTALL используется, точка соответствует также символу перевода строки. Обработка метасимвола "точка", никак не связана с метасимволами начала и конца строки, единственное, что у них общего,- так это специальное отношение к символу перевода строки. Внутри символьного класса точка не имеет специального значения.

Квадратные скобки

Открывающая квадратная скобка объявляет начало символьного класса, завершаемого закрывающей квадратной скобкой. Символ ']' не имеет специального значения, и в случае, если закрывающая квадратная скобка необходима как член символьного класса, она должна быть первым символом непосредственно после открывающей квадратной скобки (если используется метасимвол '^', то непосредственно после него), либо экранироваться при помощи обратного слеша.

Символьный класс соответствует одиночному символу обрабатываемой строки, причем сам символ должен содержаться в наборе, определяемым классом. В случае, если первым символом описания класса является '^', логика работы инвертируется: класс соответствует одиночному символу, который не содержится в наборе, определяемым классом. Если символ '^' необходим как член класса, его не следует помещать первым символом в описании класса либо необходимо экранировать при помощи обратного слеша.

К примеру, символьный класс [aeiou] соответствует любой гласной букве в нижнем регистре, в то время, как [^aeiou] соответствует любому символу, не являющемуся гласной буквой нижнего регистра. Следует понимать, что символ '^' всего лишь удобный инструмент для описания символов, не используемых в сопоставлении.

В случае, если производится регистронезависимое сопоставление, любая буква символьного класса соответствует как своему верхнему, так и нижнему регистру. Таким образом символьный класс [aeiou] соответствует как 'A', так и 'a'. Аналогично, класс [^aeiou] не соответствует ни 'A', ни 'a'.

Внутри символьного класса символ перевода строки "\n" не имеет специального значения, независимо от наличия модификаторов PCRE_DOTALL и PCRE_MULTILINE. Символьные классы, построенные на отрицании, например [^a], соответствуют символу перевода строки.

Символ минус '-' внутри класса используется для задания символьного диапазона. Например, [d-m] соответствует любому символу, находящемуся между 'd' и 'm', включая сами символы 'd' и 'm'. В случае, если '-' необходим, как член класса, он должен находиться в такой позиции, в которой он не может интерпретироваться как диапазон (как правило, это первый и последний символ описания класса) либо экранироваться при помощи обратного слеша.

Недопустимо использовать закрывающую квадратную скобку в качестве границы символьного диапазона. К примеру шаблон '[W-]46]' будет интерпретирован как символьный класс, состоящий из двух символов ("W" и "-"), за которыми следует строка "46]", таким образом шаблон будет соответствовать строкам "W46]" или "-46]". Чтобы все же использовать символ ']' в описании диапазона, его необходимо экранировать при помощи обратного слеша, к примеру шаблон [W-\]46] будет интерпретирован как символьный класс, состоящий из символьного диапазона вместе с двумя последующими символами '4' и '6'. Такого же результата можно достичь используя шестнадцатиричное или восьмеричное представление символа ']'.

Для построения символьных диапазонов используется ASCII представление символов. Таким образом пограничные символы можно задавать непосредственно в числовом представлении, например, [\000-\037]. В случае, если выполняется регистронезависимый поиск, символы, описанные в диапазоне, также будут соответствовать символам обеих регистров. К примеру, диапазоны [W-c] и [][\^_`wxyzabc] эквивалентны (в случае регистронезависимого поиска). Например, если установлена локаль "fr" (Франция) необходимо использовать [\xc8-\xcb] для задания соответствия ударному 'E' в обоих регистрах.

Общие типы символов \d, \D, \s, \S, \w, и \W также могут использоваться в символьных классах, добавляя при этом в класс те символы, которым соответствуют. Например, класс [\dABCDEF] соответствует любой шестнадцатиричной цифре. Символ '^' может использоваться совместно с общим типом, взятым в верхнем регисте, для указания более узкого набора символов. Например, класс [^\W_] соответствует любой букве или цифре, но не символу подчеркивания.

Все неалфавитные символы, кроме \, -, ^ (вначале) и завершающего ']', не являются специальными символами, но использование экранирующего слеша перед ними не навредит.

Вертикальная черта

Символ вертикальной черты '|' используются для разделения альтернативных масок. Например шаблон gilbert|sullivan соответствует как "gilbert" так и "sullivan". Допустимо указывать любое количество альтернатив, также допустимо указывать пустые альтернативы (соответствуют пустой строке). В процессе поиска соответствия просматриваются все перечисленные альтернативы слева направо, останавливаясь после первого найденного соответствия. В случае, если альтернативные варианты перечислены в подшаблоне, то поиск соответствия означает нахождение соответствия одному из альтернативных вариантов подмаски и остатку основного шаблона.

Установка внутренних опций

Установки PCRE_CASELESS, PCRE_MULTILINE, PCRE_DOTALL и PCRE_EXTENDED могут быть локально предопределены в шаблоне с использованием специальных символьных Perl-последовательностей, заключенных между символами "(?" и ")".

Таблица 1. Символы внутренних опций

i | for PCRE_CASELESS
m | для PCRE_MULTILINE
s | для PCRE_DOTALL
x | для PCRE_EXTENDED

Например, (?im) указывает на регистронезависимый, многострочный режим поиска. Также можно сбросить опцию, поставив перед ней символ '-', либо комбинировать установку и отмену режимов. Например, (?im-sx) устанавливает флаги PCRE_CASELESS, PCRE_MULTILINE и отменяет флаги PCRE_DOTALL и PCRE_EXTENDED. В случае, если опциональный символ расположен непосредственно после либо перед символом '-', опция будет отменена.

Область видимости данных опций зависит от того, где именно в шаблоне они используются. В случае, если они указаны вне подмаски, эффект будет тот же, что и при указании их в самом начале шаблона. Таким образом, нижеследующие паттерны эквивалентны:

(?i)abc
a(?i)bc
ab(?i)c
abc(?i)

, что, в свою очередь равносильно компиляции шаблона 'abs' с указанием модификатора PCRE_CASELESS. Другими словами, такие установки верхнего уровня применяются ко всему шаблону (если отсутствуют дополнительные модификаторы в подмасках). Если присутствуют несколько опций верхнего уровня, будет использована самая правая опция.

В случае, если опция встречается в подмаске, эффект может быть разным. В Perl 5.005 была добавлена следующая особенность: опция внутри подмаски влияет только на ту часть подмаски, которая идет после указания опции. Таким образом (a(?i)b)c соответствует исключительно строкам 'abc' и 'aBc' (предполагается, что модификатор PCRE_CASELESS не используется). Это означает, что cуществует возможность указывать различные наборы опций для отдельных участков шаблона. Применение опций в одной из альтернативных веток также распространяется на все последующие ветки. Например: (a(?i)b|c) соответствует "ab", "aB", "c" и "C", хотя при совпадении с "C" первая ветвь покидается до установки опции. Это объясняется тем, что установка всех опций происходит на этапе компиляции шаблона.

Опции, специфичные для PCRE, такие как PCRE_UNGREEDY и PCRE_EXTRA могут быть установлены точно так же, как и Perl-совместимые опции, путем использования символов U и X соответственно. Флаг (?X) специфичен тем, что должен быть расположен в шаблоне прежде, чем будет использоваться любая другая дополнительная возможность, даже если он расположен на верхнем уровне. Лучше всего размещать флаг (?X) в самом начале шаблона.

Подмаски

Подмаски ограничиваются круглыми скобками, которые могут быть вложенными. Использование части шаблона как подмаски имеет следующие функции:

1. Локализирует набор альтернатив. Например, шаблон cat(aract|erpillar|) соответствует одному из слов "cat", "cataract" или "caterpillar". Без использования скобок он соответствовал бы строкам "cataract", "erpillar" или пустой строке.

2. Указывает на необходимость захвата подстроки. В том случае, если соответствие шаблону было найдено, подстроки, соответствующие подмаскам, также передается обратно вызывающему при помощи аргумента ovector функции pcre_exec(). Открывающие круглые скобки нумеруются слева направо начиная с единицы и их порядковые номера используются для нумерации соответствующих подстрок в результате.

Например, если строка "the red king" сопоставляется с шаблоном the ((red|white) (king|queen)), будут захвачены подстроки "red king", "red" и "king", и их номера соответственно 1, 2 и 3.

На самом деле выполнение одновременно двух функций не всегда удобно. Бывают случаи, когда необходима группировка альтернатив без захвата строки. В случае, если после открывающей круглой скобки следует "?:", захват строки не происходит, и текущая подмаска не нумеруется. Например, если строка "the white queen" сопоставляется с шаблоном the ((?:red|white) (king|queen)), будут захвачены подстроки "white queen" и "queen", и они будут пронумерованы 1 и 2 соответственно. Максимальное количество захватывающих подмасок - 99, максимальное количество всех подмасок - 200.

В случае, если в незахватывающей подмаске необходимо указать дополнительные опции, можно воспользоваться удобным сокращением: символ, обозначающий устанавливаемую опцию помещается между "?" и ":". Таким образом, следующие два шаблона

(?i:saturday|sunday)
(?:(?i)saturday|sunday)

соответствуют одному и тому же набору строк. Поскольку альтернативные версии берутся слева направо, и установленные опции сохраняют свое действие до конца подмаски, опция, установленная в одной ветке, также имеет эффект во всех последующих ветках. Поэтому приведенные выше шаблоны совпадают как с "SUNDAY", так и с "Saturday".

Повторение

Повторение задается при помощи квантификаторов, следующих за любым из указанных ниже элементов:

  • произвольным, возможно экранированным, символом

  • метасимволом "точка"

  • символьным классом

  • ссылкой на предыдущий фрагмент шаблона (см. следующий раздел)

  • взятой в круглый скобки подмаской (если это не утверждение - см. далее)

Общий квантификатор повторения указывает минимальное и максимальное допустимое количество совпадений, согласно двум числам, заключенными в фигурные скобки и разделенными запятой. Числа должны быть меньше чем 65536, и первое число не должно превышать второе по значению. Например: z{2,4} соответствует "zz", "zzz" или "zzzz". Закрывающая фигурная скобка сама по себе не является специальным символом. В случае, если второе число опущено, но запятая присутствует, нет верхнего предела; в случае, если и второе число и запятая опущены, требуется точное число повторений. Таким образом [aeiou]{3,} соответствует как минимум трем последовательным гласным (а также любому их количеству выше трех), в то время как \d{8} соответствует исключительно восми цифрами. Открывающая фигурная скобка, расположенная в недопустимой для квантификатора позиции, либо не соответствующая синтаксису квантификатора, интерпретируется как обыкновенная символьная строка. Например, {,6} не является квантификатором, а интерпретируется как символьная строка из четырех символов.

Квантификатор {0} является допустимым и ведет себя таким образом, будто бы сам квантификатор и предшествующий ему элемент отсутствуют.

Для удобства (а так же обратной совместимости) три наиболее распространённых квантификатора имеют односимвольные аббревиатуры:

Таблица 2. Односимвольные квантификаторы

* | эквивалентен {0,}
+ | эквивалентен {1,}
? | эквивалентен {0,1}

Можно конструировать бесконечные циклы, указав после шаблона, не содержащегося в заданной строке, квантификатор, не имеющий верхнего предела, например: (a?)*

Ранние версии Perl и PCRE выдавали ошибку во время компиляции для таких шаблонов. Однако, поскольку бывают случаи, когда подобные шаблоны могли бы быть полезны, поддержка таких шаблонов была добавлена. Но если любое повторение такой подмаски фактически не совпадает ни с какими символами, цикл принудительно прерывается.

По умолчанию, все квантификаторы являются "жадными", это означает, что они совпадают максимально возможное количество раз (но не более, чем максимально допустимое количество раз), не приводя к невозможности сопоставления остальных частей шаблона. Классический пример проблем, которые могут возникнуть в связи с такой особенностью квантификаторов - нахождение комментариев в C-программах. Комментарием считается произвольный текст, находящийся внутри символьных комбинаций /* и */ (при этом, символы '/' и '*' также могут быть частью комментария). Попытка найти комментарии при помощи шаблона /\*.*\*/ в строке /* первый комментарий */ не комментарий /* второй комментарий */ закончится неудачей, поскольку указанный шаблон соответствует всей строке целиком (из-за жадности кватификатора '*').

Однако, если сразу же после квантификатора идет вопросительный знак, он перестает быть жадным и соответствует минимально допустимому количеству раз. Таким образом, шаблон /\*.*?\*/ корректно находит все комментарии языка Си. Использование символа '?' после квантификатора влияет исключительно на его жадность, и не затрагивает никакие другие свойства. Не следует путать использование символа '?' как, собственно, квантификатора (ноль либо одно соответствие) и как ограничителя жадности. Также в следствие его двойственной функциональности может использоваться следующая запись: \d??\d, которая в первую очередь соответствует одной цифре, но также может соответствовать и двум цифрам, если это необходимо для соответствия остальных частей шаблона.

В случае, если установлена опция PCRE_UNGREEDY (отсутствующая в Perl), квантификаторы являются не жадными по умолчанию, но могут становиться жадными, если за ними следует символ '?'. Говоря другими словами, знак вопроса инвертирует жадность квантификаторов.

В случае, если используется подмаска с квантификатором, для которого задано минимальное количество повторений (больше одного), либо если задано максимальное количество повторений, для откомпилированного шаблона требуется больше памяти (пропорционально миниму либо максимуму соответственно).

В случае, если шаблон начинается с .* либо .{0,}, и установлен модификатор PCRE_DOTALL (являющийся аналогом Perl-опции /s), который позволяет метасимволу "точка" соответствовать переводу строки, шаблон неявно заякоривается. Это происходит поскольку все последующие конструкции будут сопоставляться с каждой символьной позицией в обрабатываемом тексте, и, как следствие, начало строки - единственная позиция, дающая наиболее полное совпадение. PCRE рассматривает каждый такой шаблон, как если бы ему предшествовала последовательность \A. В случае, если известно, что данные не содержат переводов строк, а сам шаблон начинается на .*, рекомендуется использовать PCRE_DOTALL для оптимизации шаблона, либо использовать метасимвол '^' для указания явного заякоривания.

В случае, если захватывающая подмаска повторяется, результирующим значением подмаски будет подстрока, совпадающая с результатом последней итерации. Например, после того, как (tweedle[dume]{3}\s*)+ совпадет с "tweedledum tweedledee", результирующим значением подмаски будет "tweedledee". Однако, если присутствуют вложенные захватывающие подмаски, соответствующие значения могут быть установлены в предыдущих итерациях. Например, после того, как /(a|(b))+/ совпадет с "aba", значением второй захваченной подстроки будет "b".

Обратные ссылки

Вне символьного класса обратный слеш с последующей цифрой больше нуля (и, возможно, последующими цифрами) интерпретируется как ссылка на предшествующую захватывающую подмаску, предполагая, что соответствующее количество предшествующих открывающих круглых скобок присутствует.

Однако, в случае, если следующее за обратным слешем число меньше 10, оно всегда интерпретируется как обратная ссылка, и приводит к ошибке только в том случае, если нет соответствующего числа открывающих скобок. Другими словами, открывающие скобки не обязаны предшествовать ссылке для чисел меньше 10. Более детальную информацию об обработке слеша, за которым следуют цифры, можно найти в разделе "Обратный слеш".

Обратная ссылка сопоставляется с частью строки, захваченной соответствующей подмаской, но не с самой подмаской. Таким образом шаблон (sens|respons)e and \1ibility соответствует "sense and sensibility", "response and responsibility", но не "sense and responsibility". В случае, если обратная ссылка обнаружена во время регистрозависимого поиска, то при сопоставлении обратной ссылки регистр также учитывается. Например, ((?i)rah)\s+\1 соответствует "rah rah" и "RAH RAH", но не "RAH rah", хотя сама подмаска сопоставляется без учета регистра.

На одну и ту же подмаску может быть несколько ссылок. Если подмаска не участвовала в сопоставлении, то сопоставление со ссылкой на нее всегда терпит неудачу. Например, шаблон (a|(bc))\2 терпит неудачу, если находит соответствие с "a" раньше, чем с "bc". Поскольку может быть до 99 обратных ссылок, все цифры, следующие за обратным слешем, рассматриваются как часть потенциальной обратной ссылки. Если за ссылкой должна следовать цифра, необходимо использовать ограничитель. В случае, если указан флаг PCRE_EXTENDED, ограничителем может быть любой пробельный символ. В противном случае можно использовать пустой комментарий.

Ссылка на подмаску, внутри которой она расположена, всегда терпит неудачу, если это первое сопоставление текущей подмаски. Например, шаблон (a\1) не соответствует ни одной строке. Но все же такие ссылки бывают полезны в повторяющихся подмасках. Например, шаблон (a|b\1)+ совпадает с любым количеством "a", "aba", "ababaa"... При каждой итерации подмаски обратная ссылка соответствует той части строки, которая была захвачена при предыдущей итерации. Чтобы такая конструкция работала, шаблон должен быть построен так, чтобы при первой итерации сопоставление с обратной ссылкой не производилось. Этого можно достичь, используя альтернативы (как в предыдущем примере) либо квантификаторы с минимумом, равным нулю.

Утверждения

Утверждения - это проверки касательно символов, идущих до или после текущей позиции сопоставления, ничего при этом не поглощая (никакие символы исходного текста не ставятся в соответствие утверждениям). Наиболее простые варианты утверждений, такие как \b, \B, \A, \Z, \z, ^ и $ были рассмотрены ранее. Более сложные утверждения записываются как подмаски. Утверждения бывают двух видов: те, которые анализируют текст, предшествующий текущей позиции, и идущий после нее.

Сопоставление подмаски, содержащий утверждение, происходит обычным образом, за исключением того, что текущая позиция не изменяется. Утверждения касательно последующего текста начинаются с (?= для положительных утверждений и с (?! для отрицающих утверждений. Например, \w+(?=;) совпадает со словом, за которым следует символ ';', но при этом сама точка с запятой в совпадение не включается. А foo(?!bar) соответствует любому появлению "foo", после которого не идёт "bar". Заметим, что похожий шаблон (?!foo)bar не будет искать вхождение "bar", которому предшествует любая строка за исключением "foo". Но, тем не менее, он будет соответствовать любым вхождениям подстроки "bar", поскольку условие (?!foo) всегда TRUE, если следующие три символа - "bar". Для получения желаемого результата необходимо воспользоваться второй категорией утверждений.

Утверждения касательно предшествующего текста начинаются с (?<= для положительных утверждений и (?<! для отрицающих. Например, (?<!foo)bar не найдёт вхождения "bar", которым не предшествует "foo". Сами утверждения 'назад' ограничены так, чтобы все подстроки, которым они соответствуют, имели фиксированную длину. Но, в случае, если используются несколько альтернатив, они не обязаны иметь одинаковую длину. Таким образом шаблон (?<=bullock|donkey) корректен, но (?<!dogs?|cats?) вызовет ошибку во время компиляции. Ветки, которые соответствуют строкам разной длины, разрешены только на верхнем уровне утверждений касательно предшествующего текста. Это расширение относительно Perl 5.005, который требует чтобы все ветки соответствовали строкам одинаковой длины. Такое утверждение как (?<=ab(c|de)) не корректно, поскольку верхний уровень маски может соответствовать строкам разной длины, но его можно преобразовать к корректному шаблону, используя альтернативы на верхнем уровне: (?<=abc|abde). Утверждения касательно предшествующего текста реализованы так, что для каждой альтернативы текущая позиция временно переносится назад, на фиксированную ширину, после чего выполняется поиск соответствия условию. В случае, если перед текущей позицией недостаточно символов, поиск соответствия терпит неудачу. Утверждения назад в сочетании с однократными подмасками могут быть особенно удобны для поиска в конце строки; соответствующий пример приведен в конце раздела "Однократные подмаски".

Несколько утверждений (разных типов) могут присутствовать в утверждении, например: (?<=\d{3})(?<!999)foo совпадает с подстрокой "foo", которой предшествуют три цифры, отличные от "999". Следует понимать, что каждое из утвержений проверяется относительно одной и той же позиции в обрабатываемом тексте. Вначале выполняется проверка того, что предшествующие три символа - это цифры, затем проверяется, чтобы эти же цифры не являлись числом 999. Приведенный выше шаблон не соответствует подстроке "foo", которой предшествуют шесть символов, первые три из которых - цифры, а последние три не образуют "999". Например, он не соответствует строке "123abcfoo", в то время как шаблон (?<=\d{3}...)(?<!999)foo - соответствует. В этом случае анализируются предшествующие шесть символов на предмет того, чтобы первые три из них были цифрами, а последние три не образовали "999".

Утверждения могут быть вложенными, причем в произвольных сочетаниях: (?<=(?<!foo)bar)baz соответствует подстроке "baz", которой предшествует "bar", перед которой, в свою очередь, нет "foo", а (?<=\d{3}(?!999)...)foo - совершенно другой шаблон, соответствующий подстроке "foo", которой предшествуют три цифры и три произвольных символа, отличных от "999".

Утверждающие подмаски являются незахватывающими и неповторяемыми, поскольку бессмысленно повторять одно и то же несколько раз. Если в утверждении произвольного типа находится захватывающая подмаска, она нумеруется в той же последовательности, что и все остальные захватывающие подмаски, но захват соответствующих значений происходит только для положительных утверждений, поскольку для отрицающих это не имеет смысла.

В утверждениях обрабатывается не более, чем 200 захватывающих подмасок.

Однократные подмаски

Как для минимального, так и максимального количества повторений, если последующая часть шаблона терпит неудачу при сопоставлении, происходит повторный анализ повторяемого выражения на предмет того, возможно ли успешное сопоставление всего шаблона при другом количестве повторений. Бывают случаи, когда необходимо изменить описанную логику работы для реализации специфического сопоставления либо оптимизации шаблона (если автор уверен, что других вариантов соответствия нет).

В качестве примера, рассмотрим шаблон \d+foo в применении к строке 123456bar

После того, как \d+ будет сопоставлен с первыми шестью цифрами, сопоставление "foo" потерпит неудачу. После этого, в соответствие \d+, будет сопоставлено 5 цифр, после очередной неудачи будет сопоставлено 4 цифры и так далее. В конце концов весь шаблон потерпит неудачу. Однократные подмаски указывают, что если одна часть шаблона была сопоставлена, ее не стоит анализировать повторно. Применимо к приведенному выше примеру весь шаблон потерпел бы неудачу после первого же неудачного сопоставления с "foo". Записываются однократные шаблоны при помощи круглых скобок следующим образом: (?>. Например: (?>\d+)bar

Этот вид подмаски предотвращает повторный ее анализ в случае, если сопоставление последующих элементов терпят неудачу. Однако, это не мешает повторно анализировать любые другие элементы, в том числе предшествующие однократной подмаске.

Говоря другими словами, подмаски такого типа соответствуют той части подстроки, которой соответствовала бы одиночная изолированная маска, заякоренная на текущей позиции обрабатываемого текста.

Однократные подмаски являются незахватывающими. Простые примеры, подобные приведенному выше, можно охарактеризовать как безусловный захват максимального количества повторений. В то время как \d+ и \d+? корректируются так, чтобы остальные части шаблона так же совпали, (?>\d+) соответствует исключительно максимальной по длине последовательности цифр, даже если это приводит к неудаче при сопоставлении других частей шаблона.

Однократные подмаски могут включать в себя более сложные конструкции, а также могут быть вложенными.

Однократные подмаски могут использоваться совместно с утверждениями касательно предшествующего текста для описания эффективных сопоставлений в конце обрабатываемого текста. Рассмотрим простой шаблон abcd$ в применении к длинному тексту, который не соответствует указанной маске. Поскольку поиск происходит слева направо, вначале PCRE будет искать букву "a", и только потом анализировать следующие записи в шаблоне. В случае, если шаблон указан в виде ^.*abcd$. В таком случае вначале .* сопоставляется со всей строкой, после чего сопоставление терпит неудачу (так как нет последующего символа 'a'). После чего .* сопоставляется со всей строкой, кроме последнего символа, потом кроме двух последних символов, и так далее. В конечном итоге поиск символа 'a' происходит по всей строке. Однако, если шаблон записать в виде: ^(?>.*)(?<=abcd) повторный анализ для .* не выполняется, и, как следствие, может соответствовать только всей строке целиком. После чего утверждение проверяет последние четыре символа на совпадение с 'abcd', и в случае неудачи все сопоставление терпит неудачу. Для больших объемов обрабатываемого текста этот подход имеет значительный выигрыш во времени выполнения.

Если шаблон содержит неограниченное повторение внутри подмаски, которая в свою очередь также может повторяться неограниченное количество раз, использование однократных подмасок позволяет избегать многократных неудачных сопоставлений, которые длятся достаточно продолжительное время. Шаблон (\D+|<\d+>)*[!?] соответствует неограниченному количеству подстрок, которые состоят не из цифр, либо из цифр заключенных в <>, за которыми следует ? либо !. В случае, если в обрабатываемом тексте содержатся соответствия, время работы регулярного выражения будет невелико. Но если его применить к строке aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa это займет длительное время. Это связанно с тем, что строка может быть разделена между двумя частями шаблона многими способами, и все они будут опробованы (в примере мы использовали [?!], поскольку в случае одиночного символа в конце шаблона и PCRE и Perl выполняют оптимизацию. Они запоминают последний одиночный символ и в случае его отсутствия выдают неудачу). Если изменить шаблон на ((?>\D+)|<\d+>)*[!?], нецифровые последовательности не могут быть разорваны, и невозможность сопоставления обнаруживается гораздо быстрее.

Условные подмаски

В PCRE реализована возможность подчинять шаблон условию либо выбирать из двух условных подмасок в зависимости от успеха сопоставления предыдущей подмаски. Условные подмаски имеют две допустимые формы использования:

(?(condition)yes-pattern)
(?(condition)yes-pattern|no-pattern)

В случае успешного сопоставления условия condition, используется подмаска yes-pattern, в противном случае no-pattern (если он присутствует). Если указано более двух альтернатив, возникнет ошибка во время компиляции.

Условия бывают двух видов. В случае, если между скобками заключены цифры, условие будет выполняться в том случае, если подмаска с соответствующим номером была успешно сопоставлена. Рассмотрим следующий шаблон (он содержит незначащий пробел для удобства чтения, подразумевается использование модификатора PCRE_EXTENDED), разделив его для удобства на три смысловые части: ( \( )? [^()]+ (?(1) \) )

Первая часть соответствует опциональной открывающей скобке, и в случае если она присутствует, захватывает ее как значение первой подмаски. Следующая часть соответствует одному или более символам, отличным от круглой скобки. Третья часть является условной подмаской, зависящей от результата сопоставления первой подмаски. В случае, если в начале обрабатываемых данных была обнаружена открывающая круглая скобка, условие будет интерпретировано как истина, и, следовательно, для успешного сопоставления третьей части шаблона необходима закрывающая круглая скобка. В противном случае, поскольку не указана вторая ветвь условного шаблона, третья часть будет сопоставлена с пустой строкой. Суммируя все вышесказанное, приведенный шаблон совпадает с последовательностью не-скобок, возможно, заключенной в круглые скобки.

В случае, если условие не является последовательностью цифр, оно обязано быть условием. Это также может быть утверждающее или отрицающее условие касательно предшествующего либо последующего текста. Рассмотрим еще один шаблон, также содержащий незначащий пробел и два условия, записанные в следующей строке:

(?(?=[^a-z]*[a-z])
\d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} )

Приведен пример с утверждающим условием касательно предшествующего текста, которое выполняется для необязательной последовательности не-букв с последующей буквой. Говоря другими словами, указанное условие проверяет наличие хотя бы одной предшествующей буквы. В случае, если буква найдена, выполняется сопоставление с первой альтернативой, в противном случае - со второй альтернативой. Приведенный шаблон соответствует строкам двух видов: dd-aaa-dd либо dd-dd-dd, где aaaa - это буквы, а dd - цифры.

Комментарии

Служебная последовательность (?# обозначает начало комментария, который продолжается до ближайшей закрывающей скобки. Вложенные скобки не допускаются. Символы, находящиеся внутри комментария, не принимают участия в сопоставлении шаблона.

В случае, если используется модификатор PCRE_EXTENDED, неэкранированный символ '#' вне символьного класса также означает начало блока комментария, который длится до конца текущей строки.

Рекурсивные шаблоны

Рассмотрим задачу поиска соответствия со строкой, находящихся внутри неограниченного количества круглых скобок. Без использования рекурсии лучшее, что можно сделать - написать шаблон, который будет решать задачу для некоторой ограниченной глубины вложенности, так как обработать неограниченную глубину не предоставляется возможным. В Perl 5.6 предоставлены некоторые экспериментальные возможности, которые в том числе позвояляют реализовать рекурсию в шаблонах. Специально обозначение (?R) используется для указания рекурсивной подмаски. Таким образом, приведем PCRE шаблон, решающий поставленную задачу (подразумевается, что используется модификатор PCRE_EXTENDED, незначащие пробелы игнорируются): \( ( (?>[^()]+) | (?R) )* \)

Вначале он соответствует открывающей круглой скобке. Далее он соответствует любому количеству подстрок, каждая из которых может быть последовательностью не-скобок, либо строкой, рекурсивно соответствующей шаблону (т.е. строкой, корректно заключенной в круглые скобки). И, в конце, идет закрывающая круглая скобка.

Приведенный пример шаблона использует вложенные неограниченные повторения, поэтому использование однократных шаблонов значительно ускоряет процесс сопоставления, особенно в случаях, когда строка не соответствует заданной маске. Например, если его применить к строке: (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(), то несоответствие будет обнаружено достаточно быстро. Но в случае, если однократные шаблоны не используются, сопоставление будет затягиваться на длительное время, так как существует множество способов разделения строки между квантификаторами + и *, и все они должны быть проверены, прежде чем будет выдано сообщение о неудаче.

Значение, устанавливаемое для захватывающей подмаски будет соответствовать значению, захваченному на наиболее глубоком уровне рекурсии. В случае, если приведенный выше шаблон сопоставляется со строкой (ab(cd)ef), захваченным значением будет 'ef', которое является последним значением, принимаемым на верхнем уровне. В случае, если добавить дополнительные скобки \( ( ( (?>[^()]+) | (?R) )* ) \), захваченным значением будет "ab(cd)ef". В случае, если в шаблоне встречается более, чем 15 захватывающих скобок, PCRE требуется больше памяти для обработки рекурсии, чем обычно. Память выделяется при помощи функции pcre_malloc, и освобождается соответственно функцией pcre_free. Если память не может быть выделена, сохраняются данные только для первых 15 захватывающих скобок, так как нет способа выдать ошибку out-of-memory изнутри рекурсии.

Производительность

Некотрые элементы, которые могут встречаться в шаблонах, являются более эффективными, чем ряд других. Например, гораздо эффективней использовать символьный класс [aeiou] вместо набора альтернатив (a|e|i|o|u). Как правило, более простая конструкция является более эффективной. Книга Jeffrey Friedl'а содержит много обсуждений вопроса оптимизации регулярных выражений.

В случае, если шаблон начинается с .* и используется флаг PCRE_DOTALL, шаблон неявно заякоривается, так как он может совпадать только в начале строки. Но если PCRE_DOTALL не используется, PCRE не может выполнить соответствующую оптимизацию, так как в таком случае метасимвол '.' не соответствует символу начала строки (если обрабатываемые данные содержат переводы строк, такой шаблон может соответствовать шаблону не от начала строки, а от позиции непосредственно после перевода строки). Например, применяя шаблон (.*) second к строке "first\nand second" (где \n обозначает символ перевода строки), значение, захваченное первой подмаской, будет 'and'. Чтобы обработать все возможные точки соответствия, PCRE пытается сопоставить шаблон после каждого символа перевода строки.

В случае, если вы используете подобные шаблоны для обработки данных, не содержащих переводы строк, для лучшей производительности используйте модификатор PCRE_DOTALL, либо начинайте шаблон с ^.* для указания явного заякоривания. Это предотвратит PСRE от поиска символов новых строк и дополнительных попыток сопоставить шаблон с каждой такой найденной позицией.

Избегайте шаблонов, которые содержат вложенные неограниченные повторения. Сопоставление их со строками, не содержащими совпадений, занимает длительное время. Рассмотрим пример шаблона (a+)*

Он может соответствовать с "aaaa" 33-мя различными способами, и эта цифра очень быстро растет при увеличении строки. (В данном примере, квантификатор * может совпадать 0, 1, 2, 3 или 4 раза, и для каждого такого случая, кроме нуля, квантификатор + также может совпадать различное число раз.) Если остаток шаблона таков, что все совпадение терпит неуачу, PCRE должно попробовать все возможные варианты совпадения, что может потребовать огромного количества времени.

При помощи оптимизации можно отловить наиболее простые случаи, такие как (a+)*b где следом идёт литеральный символ. Прежде, чем производить стандартную процедуру поиска, PCRE проверяет в последующей подстроке наличие символа 'b', и, в случае отсутствия такового, попытка сопоставления немедленно завершается неудачей. Однако, когда последующего литерала нет, оптимизация не может быть применена. Вы можете ощутить разницу, сравнив поведение (a+)*\d с поведением приведенного выше шаблона. Первый определяет невозможность сопоставления практически сразу же, при сопоставлении со строкой состоящей из символов 'a', в то время как второй тратит длительное время на поиск в строках длинее 20 символов.

Пред. | Начало | След.
Модификаторы шаблонов | Уровень выше | preg_grep


preg_grep

(PHP 4, PHP 5)

preg_grep -- Возвращает массив вхождений, которые соответствуют шаблону

Описание

array preg_grep ( string pattern, array input [, int flags] )

preg_grep() возвращает массив, состоящий из элементов входящего массива input, которые соответствуют заданному шаблону pattern.

Параметр flags может принимать следующие значения:

PREG_GREP_INVERT

В случае, если этот флаг установлен, функция preg_grep(), возвращает те элементы массива, которые не соответствуют заданному шаблону pattern. Этот флаг доступен, начиная с PHP 4.2.0.

Начиная с PHP 4.0.4, результат, возвращаемый функцией preg_grep() использует те же индексы, что и массив исходных данных. Если такое поведение вам не подходит, примените array_values() к массиву, возвращаемому preg_grep() для реиндексации.

Пример 1. preg_grep() пример

<?php
// Возвращает все элементы массива,
// содержащие числа с плавающей точкой
$fl_array = preg_grep("/^(\d+)?\.\d+$/", $array);
?>

Пред. | Начало | След.
Синтаксис регулярных выражений | Уровень выше | preg_match_all


preg_match_all

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

preg_match_all -- Выполняет глобальный поиск шаблона в строке

Описание

int preg_match_all ( string pattern, string subject, array &matches [, int flags [, int offset]] )

Ищет в строке subject все совпадения с шаблоном pattern и помещает результат в массив matches в порядке, определяемом комбинацией флагов flags.

После нахождения первого соответствия последующие поиски будут осуществляться не с начала строки, а от конца последнего найденного вхождения.

Дополнительный параметр flags может комбинировать следующие значения (необходимо понимать, что использование PREG_PATTERN_ORDER одновременно с PREG_SET_ORDER бессмысленно):

PREG_PATTERN_ORDER

Если этот флаг установлен, результат будет упорядочен следующим образом: элемент $matches[0] содержит массив полных вхождений шаблона, элемент $matches[1] содержит массив вхождений первой подмаски, и так далее.

<?php
preg_match_all("|<[^>]+>(.*)</[^>]+>|U",
    "<b>example: </b><div align=left>this is a test</div>",
    $out, PREG_PATTERN_ORDER);
echo $out[0][0] . ", " . $out[0][1] . "\n";
echo $out[1][0] . ", " . $out[1][1] . "\n";
?>

Результат работы примера:

<b>example: </b>, <div align=left>this is a test</div>
example: , this is a test

Как мы видим, $out[0] содержит массив полных вхождений шаблона, а элемент $out[1] содержит массив подстрок, содержащихся в тегах.

PREG_SET_ORDER

Если этот флаг установлен, результат будет упорядочен следующим образом: элемент $matches[0] содержит первый набор вхождений, элемент $matches[1] содержит второй набор вхождений, и так далее.

<?php
preg_match_all("|<[^>]+>(.*)</[^>]+>|U",
    "<b>example: </b><div align=\"left\">this is a test</div>",
    $out, PREG_SET_ORDER);
echo $out[0][0] . ", " . $out[0][1] . "\n";
echo $out[1][0] . ", " . $out[1][1] . "\n";
?>

Результат работы примера:

<b>example: </b>, example:
<div align="left">this is a test</div>, this is a test

В таком случае массив $matches[0] содержит первый набор вхождений, а именно: элемент $matches[0][0] содержит первое вхождение всего шаблона, элемент $matches[0][1] содержит первое вхождение первой подмаски, и так далее. Аналогично массив $matches[1] содержит второй набор вхождений, и так для каждого найденного набора.

PREG_OFFSET_CAPTURE

В случае, если этот флаг указан, для каждой найденной подстроки будет указана ее позиция в исходной строке. Необходимо помнить, что этот флаг меняет формат возвращаемых данных: каждое вхождение возвращается в виде массива, в нулевом элементе которого содержится найденная подстрока, а в первом - смещение. Данный флаг доступен в PHP 4.3.0 и выше.

В случае, если никакой флаг не используется, по умолчанию используется PREG_PATTERN_ORDER.

Поиск осуществляется слева направо, с начала строки. Дополнительный параметр offset может быть использован для указания альтернативной начальной позиции для поиска. Дополнительный параметр offset доступен, начиная с PHP 4.3.3.

Замечание: Использование параметра offset не эквивалентно замене сопоставляемой строки выражением substr($subject, $offset) при вызове функции preg_match_all(), поскольку шаблон pattern может содержать такие условия как ^, $ или (?<=x). Вы можете найти соответствующие примеры в описании функции preg_match().

Возвращает количество найденных вхождений шаблона (может быть нулем) либо FALSE, если во время выполнения возникли какие-либо ошибки.

Пример 1. Получение всех телефонных номеров из текста.

<?php
preg_match_all("/\(?  (\d{3})?  \)?  (?(1)  [\-\s] ) \d{3}-\d{4}/x",
                "Call 555-1212 or 1-800-555-1212", $phones);
?>

Пример 2. Жадный поиск совпадений с HTML-тэгами

<?php
// Запись \\2 является примером использования ссылок на подмаски.
// Она означает необходимость соответствия подстроки строке, зафиксированной
// второй подмаской, в нашем примере это ([\w]+).
// Дополнительный слеш необходим, так как используются двойные кавычки.

$html = "<b>bold text</b><a href=howdy.html>click me</a>";

preg_match_all("/(<([\w]+)[^>]*>)(.*)(<\/\\2>)/", $html, $matches);

for ($i=0; $i< count($matches[0]); $i++) {
  echo "matched: " . $matches[0][$i] . "\n";
  echo "part 1: " . $matches[1][$i] . "\n";
  echo "part 2: " . $matches[3][$i] . "\n";
  echo "part 3: " . $matches[4][$i] . "\n\n";
}
?>

Результат работы примера:

matched: <b>bold text</b>
part 1: <b>
part 2: bold text
part 3: </b>

matched: <a href=howdy.html>click me</a>
part 1: <a href=howdy.html>
part 2: click me
part 3: </a>

Смотрите также preg_match(),
preg_replace(),
и preg_split().

Пред. | Начало | След.
preg_grep | Уровень выше | preg_match


preg_match

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

preg_match -- Выполняет проверку на соответствие регулярному выражению

Описание

mixed preg_match ( string pattern, string subject [, array &matches [, int flags [, int offset]]] )

Ищет в заданном тексте subject совпадения с шаблоном pattern

В случае, если дополнительный параметр matches указан, он будет заполнен результатами поиска. Элемент $matches[0] будет содержать часть строки, соответствующую вхождению всего шаблона, $matches[1] - часть строки, соответствующую первой подмаске, и так далее.

flags может принимать следующие значения:

PREG_OFFSET_CAPTURE

В случае, если этот флаг указан, для каждой найденной подстроки будет указана ее позиция в исходной строке. Необходимо помнить, что этот флаг меняет формат возвращаемых данных: каждое вхождение возвращается в виде массива, в нулевом элементе которого содержится найденная подстрока, а в первом - смещение. Данный флаг доступен в PHP 4.3.0 и выше.

Дополнительный параметр flags доступен начиная с PHP 4.3.0.

Поиск осуществляется слева направо, с начала строки. Дополнительный параметр offset может быть использован для указания альтернативной начальной позиции для поиска. Дополнительный параметр offset доступен начиная с PHP 4.3.3.

Замечание: Использование параметра offset не эквивалентно замене сопоставляемой строки выражением substr($subject, $offset) при вызове функции preg_match_all(), поскольку шаблон pattern может содержать такие условия как ^, $ или (?<=x). Сравните:

<?php
  $subject = "abcdef";
  $pattern = '/^def/';
  preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3);
  print_r($matches);
  ?>

Результат выполнения данного примера:

Array
  (
  )

В то время как этот пример

<?php
  $subject = "abcdef";
  $pattern = '/^def/';
  preg_match($pattern, substr($subject,3), $matches, PREG_OFFSET_CAPTURE);
  print_r($matches);
  ?>

выведет следующее:

Array
  (
      [0] => Array
          (
              [0] => def
              [1] => 0
          )

  )

Функция preg_match() возвращает количество найденных соответствий. Это может быть 0 (совпадения не найдены) и 1, поскольку preg_match() прекращает свою работу после первого найденного совпадения. Если необходимо найти либо сосчитать все совпадения, следует воспользоваться функцией preg_match_all(). Функция preg_match() возвращает FALSE в случае, если во время выполнения возникли какие-либо ошибки.

Подсказка: Не используйте функцию preg_match(), если необходимо проверить наличие подстроки в заданной строке. Используйте для этого strpos() либо strstr(), поскольку они выполнят эту задачу гораздо быстрее.

Пример 1. Поиск подстроки "php" в тексте

<?php
// Символ "i" после закрывающего ограничителя шаблона означает
// регистронезависимый поиск.
if (preg_match("/php/i", "PHP is the web scripting language of choice.")) {
    echo "Вхождение найдено.";
} else {
    echo "Вхождение не найдено.";
}
?>

Пример 2. Поиск слова "web" в тексте

<?php
/*
    Специальная последовательность \b в шаблоне означает границу слова,
    следовательно, только изолированное вхождение слова 'web' будет соответствовать
    маске, в отличие от "webbing" или "cobweb".
*/
if (preg_match("/\bweb\b/i", "PHP is the web scripting language of choice.")) {
    echo "Вхождение найдено.";
} else {
    echo "Вхождение не найдено.";
}

if (preg_match("/\bweb\b/i", "PHP is the website scripting language of choice.")) {
    echo "Вхождение найдено.";
} else {
    echo "Вхождение не найдено.";
}
?>

Пример 3. Извлечение доменного имени из URL

<?php
// Извлекаем имя хоста из URL
preg_match("/^(http:\/\/)?([^\/]+)/i",
    "http://www.php.net/index.html", $matches);
$host = $matches[2];

// извлекаем две последние части имени хоста
preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches);
echo "domain name is: {$matches[0]}\n";
?>

Результат работы примера:

domain name is: php.net

Смотрите также preg_match_all(),
preg_replace(), и
preg_split().

Пред. | Начало | След.
preg_match_all | Уровень выше | preg_quote


preg_quote

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

preg_quote -- Экранирует символы в регулярных выражениях

Описание

string preg_quote ( string str [, string delimiter] )

Функция preg_quote() принимает строку str и добавляет обратный слеш перед каждым служебным символом. Это бывает полезно, если в составлении шаблона участвуют строковые переменные, значение которых в процессе работы скрипта может меняться.

В случае, если дополнительный параметр delimiter указан, он будет также экранироваться. Это удобно для экранирования ограничителя, который используется в PCRE функциях. Наиболее распространенным ограничителем является символ '/'.

В регулярных выражениях служебными считаются следующие символы: . \\ + * ? [ ^ ] $ ( ) { } = ! < > | :

Пример 1. preg_quote() пример

<?php
$keywords = "$40 for a g3/400";
$keywords = preg_quote($keywords, "/");
echo $keywords; // возвращает \$40 for a g3\/400
?>

Пример 2. Выделение курсивом слова в тексте

<?php
// В данном примере preg_quote($word) используется, чтобы
// избежать трактовки символа '*' как спец. символа.

$textbody = "This book is *very* difficult to find.";
$word = "*very*";
$textbody = preg_replace ("/" . preg_quote($word) . "/",
                          "<i>" . $word . "</i>",
                          $textbody);
?>

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Пред. | Начало | След.
preg_match | Уровень выше | preg_replace_callback


preg_replace_callback

(PHP 4 >= 4.0.5, PHP 5)

preg_replace_callback -- Выполняет поиск по регулярному выражению и замену с использованием функции обратного вызова

Описание

mixed preg_replace_callback ( mixed pattern, callback callback, mixed subject [, int limit] )

Поведение этой функции во многом напоминает preg_replace(), за исключением того, что вместо параметра replacement необходимо указывать callback функцию, которой в качестве входящего параметра передается массив найденных вхождений. Ожидаемый результат - строка, которой будет произведена замена.

Пример 1. preg_replace_callback() пример

<?php
  // Этот текст был использован в 2002 году
  // мы хотим обновить даты к 2003 году
  $text = "April fools day is 04/01/2002\n";
  $text.= "Last christmas was 12/24/2001\n";

  // функция обратного вызова
  function next_year($matches)
  {
    // как обычно: $matches[0] -  полное вхождение шаблона
    // $matches[1] - вхождение первой подмаски,
    // заключенной в круглые скобки, и так далее...
    return $matches[1].($matches[2]+1);
  }

  echo preg_replace_callback(
              "|(\d{2}/\d{2}/)(\d{4})|",
              "next_year",
              $text);

  // результат:
  // April fools day is 04/01/2003
  // Last christmas was 12/24/2002
?>

Достаточно часто callback функция, кроме как в вызове preg_replace_callback(), ни в чем больше не участвует. Исходя из этих соображений, можно использовать create_function() для создания безымянной функции обратного вызова непосредственно в вызове preg_replace_callback(). Если вы используете такой подход, вся информация, связанная с заменой по регулярному выражению, будет собрана в одном месте, и пространство имен функций не будет загромождаться неиспользуемыми записями.

Пример 2. preg_replace_callback() и create_function()

<?php
  /* фильтр, подобный тому, что используется в системах Unix
   * для преобразования в заглавные начальных букв параграфа */

  $fp = fopen("php://stdin", "r") or die("can't read stdin");
  while (!feof($fp)) {
      $line = fgets($fp);
      $line = preg_replace_callback(
          '|<p>\s*\w|',
          create_function(
              // Использование одиночных кавычек в данном случае принципиально,
              // альтернатива - экранировать все символы '$'
              '$matches',
              'return strtolower($matches[0]);'
          ),
          $line
      );
      echo $line;
  }
  fclose($fp);
?>

Смотрите также preg_replace() и create_function().

Пред. | Начало | След.
preg_quote | Уровень выше | preg_replace


preg_replace

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

preg_replace -- Выполняет поиск и замену по регулярному выражению

Описание

mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )

Выполняет поиск в строке subject совпадений с шаблоном pattern и заменяет их на replacement. В случае, если параметр limit указан, будет произведена замена limit вхождений шаблона; в случае, если limit опущен либо равняется -1, будут заменены все вхождения шаблона.

Replacement может содержать ссылки вида \\n либо (начиная с PHP 4.0.4) $n, причем последний вариант предпочтительней. Каждая такая ссылка, будет заменена на подстроку, соответствующую n'нной заключенной в круглые скобки подмаске. n может принимать значения от 0 до 99, причем ссылка \\0 (либо $0) соответствует вхождению всего шаблона. Подмаски нумеруются слева направо, начиная с единицы.

При использовании замены по шаблону с использованием ссылок на подмаски может возникнуть ситуация, когда непосредственно за маской следует цифра. В таком случае нотация вида \\n приводит к ошибке: ссылка на первую подмаску, за которой следует цифра 1, запишется как \\11, что будет интерпретировано как ссылка на одиннадцатую подмаску. Это недоразумение можно устранить, если воспользоваться конструкцией \${1}1, указывающей на изолированную ссылку на первую подмаску, и следующую за ней цифру 1.

Пример 1. Использование подмасок, за которыми следует цифра

<?php
$string = "April 15, 2003";
$pattern = "/(\w+) (\d+), (\d+)/i";
$replacement = "\${1}1,\$3";
echo preg_replace($pattern, $replacement, $string);
?>

Результатом работы этого примера будет:

April1,2003

Если во время выполнения функции были обнаружены совпадения с шаблоном, будет возвращено измененное значение subject, в противном случае будет возвращен исходный текст subject.

Первые три параметра функции preg_replace() могут быть одномерными массивами. В случае, если массив использует ключи, при обработке массива они будут взяты в том порядке, в котором они расположены в массиве. Указание ключей в массиве для pattern и replacement не является обязательным. Если вы все же решили использовать индексы, для сопоставления шаблонов и строк, участвующих в замене, используйте функцию ksort() для каждого из массивов.

Пример 2. Использование массивов с числовыми индексами в качестве аргументов функции preg_replace()

<?php
$string = "The quick brown fox jumped over the lazy dog.";

$patterns[0] = "/quick/";
$patterns[1] = "/brown/";
$patterns[2] = "/fox/";

$replacements[2] = "bear";
$replacements[1] = "black";
$replacements[0] = "slow";

echo preg_replace($patterns, $replacements, $string);
?>

Результат:

The bear black slow jumped over the lazy dog.

Используя ksort(), получаем желаемый результат:

<?php

ksort($patterns);
ksort($replacements);

echo preg_replace($patterns, $replacements, $string);

?>

Результат:

The slow black bear jumped over the lazy dog.

В случае, если параметр subject является массивом, поиск и замена по шаблону производятся для каждого из его элементов. Возвращаемый результат также будет массивом.

В случае, если параметры pattern и replacement являются массивами, preg_replace() поочередно извлекает из обоих массивов по паре элементов и использует их для операции поиска и замены. Если массив replacement содержит больше элементов, чем pattern, вместо недостающих элементов для замены будут взяты пустые строки. В случае, если pattern является массивом, а replacement - строкой, по каждому элементу массива pattern будет осущесвтлен поиск и замена на pattern (шаблоном будут поочередно все элементы массива, в то время как строка замены остается фиксированной). Вариант, когда pattern является строкой, а replacement - массивом, не имеет смысла.

Модификатор /e меняет поведение функции preg_replace() таким образом, что параметр replacement после выполнения необходимых подстановок интерпретируется как PHP-код и только после этого используется для замены. Используя данный модификатор, будьте внимательны: параметр replacement должен содержать корректный PHP-код, в противном случае в строке, содержащей вызов функции preg_replace(), возникнет ошибка синтаксиса.

Пример 3. Замена по нескольким шаблонам

<?php
$patterns = array ("/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/",
                   "/^\s*{(\w+)}\s*=/");
$replace = array ("\\3/\\4/\\1\\2", "$\\1 =");
echo preg_replace($patterns, $replace, "{startDate} = 1999-5-27");
?>

Этот пример выведет:

$startDate = 5/27/1999

Пример 4. Использование модификатора /e

<?php
preg_replace("/(<\/?)(\w+)([^>]*>)/e",
              "'\\1'.strtoupper('\\2').'\\3'",
              $html_body);
?>

Преобразует все HTML-теги к верхнему регистру

Пример 5. Конвертор HTML в текст

<?php
// $document на выходе должен содержать HTML-документ.
// Необходимо удалить все HTML-теги, секции javascript,
// пробельные символы. Также необходимо заменить некоторые
// HTML-сущности на их эквивалент.

$search = array ("'<script[^>]*?>.*?</script>'si",  // Вырезает javaScript
                 "'<[\/\!]*?[^<>]*?>'si",           // Вырезает HTML-теги
                 "'([\r\n])[\s]+'",                 // Вырезает пробельные символы
                 "'&(quot|#34);'i",                 // Заменяет HTML-сущности
                 "'&(amp|#38);'i",
                 "'&(lt|#60);'i",
                 "'&(gt|#62);'i",
                 "'&(nbsp|#160);'i",
                 "'&(iexcl|#161);'i",
                 "'&(cent|#162);'i",
                 "'&(pound|#163);'i",
                 "'&(copy|#169);'i",
                 "'&#(\d+);'e");                    // интерпретировать как php-код

$replace = array ("",
                  "",
                  "\\1",
                  "\"",
                  "&",
                  "<",
                  ">",
                  " ",
                  chr(161),
                  chr(162),
                  chr(163),
                  chr(169),
                  "chr(\\1)");

$text = preg_replace($search, $replace, $document);
?>

Замечание: Параметр limit доступен в PHP 4.0.1pl2 и выше.

Смотрите также preg_match(),
preg_match_all(), и
preg_split().

Пред. | Начало | След.
preg_replace_callback | Уровень выше | preg_split


preg_split

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

preg_split -- Разбивает строку по регулярному выражению

Описание

array preg_split ( string pattern, string subject [, int limit [, int flags]] )

Возвращает массив, состоящий из подстрок заданной строки subject, которая разбита по границам, соответствующим шаблону pattern.

В случае, если параметр limit указан, функция возвращает не более, чем limit подстрок. Специальное значение limit, равное -1, подразумевает отсутствие ограничения, это весьма полезно для указания еще одного опционального параметра flags.

flags может быть произвольной комбинацией следующих флагов (соединение происходит при помощи оператора '|'):

PREG_SPLIT_NO_EMPTY

В случае, если этот флаг указан, функция preg_split() вернет только непустые подстроки.

PREG_SPLIT_DELIM_CAPTURE

В случае, если этот флаг указан, выражение, заключенное в круглые скобки в разделяющем шаблоне, также извлекается из заданной строки и возвращается функцией. Этот флаг был добавлен в PHP 4.0.5.

PREG_SPLIT_OFFSET_CAPTURE

В случае, если этот флаг указан, для каждой найденной подстроки, будет указана ее позиция в исходной строке. Необходимо помнить, что этот флаг меняет формат возвращаемых данных: каждое вхождение возвращается в виде массива, в нулевом элементе которого содержится найденная подстрока, а в первом - смещение.

Пример 1. preg_split() пример: Получение подстрок из заданного текста

<?php
// разбиваем строку по произвольному числу запятых и пробельных символов,
// которые включают в себя  " ", \r, \t, \n и \f
$keywords = preg_split("/[\s,]+/", "hypertext language, programming");
?>

Пример 2. Разбиваем строку на составляющие символы

<?php
$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>

Пример 3. Разбиваем строку с указанием смещения для каждой из найденных подстрок

<?php
$str = 'hypertext language programming';
$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?>

На выходе получаем:

Array
(
    [0] => Array
        (
            [0] => hypertext
            [1] => 0
        )

    [1] => Array
        (
            [0] => language
            [1] => 10
        )

    [2] => Array
        (
            [0] => programming
            [1] => 19
        )

)

Замечание: Параметр flags был добавлен в PHP 4 Beta 3.

Смотрите также spliti(), split(),
implode(), preg_match(),
preg_match_all(), и
preg_replace().

Пред. | Начало | След.
preg_replace | Уровень выше | PDF functions


PDF functions

Руководство по PHP
Пред. След.

CX. PDF functions

Введение

The PDF functions in PHP can create PDF files using the PDFlib library created by Thomas Merz.

The documentation in this section is only meant to be an overview of the available functions in the PDFlib library and should not be considered an exhaustive reference. Please consult the documentation included in the source distribution of PDFlib for the full and detailed explanation of each function here. It provides a very good overview of what PDFlib is capable of doing and contains the most up-to-date documentation of all functions.

All of the functions in PDFlib and the PHP module have identical function names and parameters. You will need to understand some of the basic concepts of PDF and PostScript to efficiently use this extension. All lengths and coordinates are measured in PostScript points. There are generally 72 PostScript points to an inch, but this depends on the output resolution. Please see the PDFlib documentation included with the source distribution of PDFlib for a more thorough explanation of the coordinate system used.

Please note that most of the PDF functions require a pdfdoc as its first parameter. Please see the examples below for more information.

Замечание: If you're interested in alternative free PDF generators that do not utilize external PDF libraries, see this related FAQ.

Замечание: This extension has been moved to PECL as of PHP 4.3.9.

Требования

PDFlib is available for download at http://www.pdflib.com/products/pdflib/index.html, but requires that you purchase a license for commercial use. The JPEG and TIFF libraries are required to compile this extension.

Issues with older versions of PDFlib

Any version of PHP 4 after March 9, 2000 does not support versions of PDFlib older than 3.0.

PDFlib 3.0 or greater is supported by PHP 3.0.19 and later.

Установка

Это расширение PECL не поставляется вместе с PHP. Дополнительная информация, такая как новый версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, могут быть найдены здесь: http://pecl.php.net/package/pdflib.

To get these functions to work in PHP < 4.3.9, you have to compile PHP with --with-pdflib[=DIR]. DIR is the PDFlib base install directory, defaults to /usr/local. In addition you can specify the jpeg, tiff, and pnglibrary for PDFlib to use, which is optional for PDFlib 4.x. To do so add to your configure line the options --with-jpeg-dir[=DIR] --with-png-dir[=DIR] --with-tiff-dir[=DIR].

When using version 3.x of PDFlib, you should configure PDFlib with the option --enable-shared-pdflib.

As of PHP 4.3.9, you must install this extension through PEAR, using the following command: pear install pdflib.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Confusion with old PDFlib versions

Starting with PHP 4.0.5, the PHP extension for PDFlib is officially supported by PDFlib GmbH. This means that all the functions described in the PDFlib manual (V3.00 or greater) are supported by PHP 4 with exactly the same meaning and the same parameters. Only the return values may differ from the PDFlib manual, because the PHP convention of returning FALSE was adopted. For compatibility reasons, this binding for PDFlib still supports the old functions, but they should be replaced by their new versions. PDFlib GmbH will not support any problems arising from the use of these deprecated functions.

Таблица 1. Deprecated functions and their replacements

Old function | Replacement
pdf_put_image() | Not needed anymore.
pdf_execute_image() | Not needed anymore.
pdf_get_annotation() | pdf_get_bookmark() using the same parameters.
pdf_get_font() | pdf_get_value() passing "font" as the second parameter.
pdf_get_fontsize() | pdf_get_value() passing "fontsize" as the second parameter.
pdf_get_fontname() | pdf_get_parameter() passing "fontname" as the second parameter.
pdf_set_info_creator() | pdf_set_info() passing "Creator" as the second parameter.
pdf_set_info_title() | pdf_set_info() passing "Title" as the second parameter.
pdf_set_info_subject() | pdf_set_info() passing "Subject" as the second parameter.
pdf_set_info_author() | pdf_set_info() passing "Author" as the second parameter.
pdf_set_info_keywords() | pdf_set_info() passing "Keywords" as the second parameter.
pdf_set_leading() | pdf_set_value() passing "leading" as the second parameter.
pdf_set_text_rendering() | pdf_set_value() passing "textrendering" as the second parameter.
pdf_set_text_rise() | pdf_set_value() passing "textrise" as the second parameter.
pdf_set_horiz_scaling() | pdf_set_value() passing "horizscaling" as the second parameter.
pdf_set_text_matrix() | Not available anymore
pdf_set_char_spacing() | pdf_set_value() passing "charspacing" as the second parameter.
pdf_set_word_spacing() | pdf_set_value() passing "wordspacing" as the second parameter.
pdf_set_transition() | pdf_set_parameter() passing "transition" as the second parameter.
pdf_open() | pdf_new() plus an subsequent call of pdf_open_file()
pdf_set_font() | pdf_findfont() plus an subsequent call of pdf_setfont()
pdf_set_duration() | pdf_set_value() passing "duration" as the second parameter.
pdf_open_gif() | pdf_open_image_file() passing "gif" as the second parameter.
pdf_open_jpeg() | pdf_open_image_file() passing "jpeg" as the second parameter.
pdf_open_tiff() | pdf_open_image_file() passing "tiff" as the second parameter.
pdf_open_png() | pdf_open_image_file() passing "png" as the second parameter.
pdf_get_image_width() | pdf_get_value() passing "imagewidth" as the second parameter and the image as the third parameter.
pdf_get_image_height() | pdf_get_value() passing "imageheight" as the second parameter and the image as the third parameter.

Примеры

Most of the functions are fairly easy to use. The most difficult part is probably creating your first PDF document. The following example should help to get you started. It creates test.pdf with one page. The page contains the text "Times Roman outlined" in an outlined, 30pt font. The text is also underlined.

Пример 1. Creating a PDF document with PDFlib

<?php
$pdf = pdf_new();
pdf_open_file($pdf, "test.pdf");
pdf_set_info($pdf, "Author", "Uwe Steinmann");
pdf_set_info($pdf, "Title", "Test for PHP wrapper of PDFlib 2.0");
pdf_set_info($pdf, "Creator", "See Author");
pdf_set_info($pdf, "Subject", "Testing");
pdf_begin_page($pdf, 595, 842);
pdf_add_outline($pdf, "Page 1");
$font = pdf_findfont($pdf, "Times New Roman", "winansi", 1);
pdf_setfont($pdf, $font, 10);
pdf_set_value($pdf, "textrendering", 1);
pdf_show_xy($pdf, "Times Roman outlined", 50, 750);
pdf_moveto($pdf, 50, 740);
pdf_lineto($pdf, 330, 740);
pdf_stroke($pdf);
pdf_end_page($pdf);
pdf_close($pdf);
pdf_delete($pdf);
echo "<A HREF=getpdf.php>finished</A>";
?>
The script getpdf.php just returns the pdf document.

Пример 2. Outputting a precalculated PDF

<?php
$len = filesize($filename);
header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=foo.pdf");
readfile($filename);
?>

The PDFlib distribution contains a more complex example which creates a page with an analog clock. Here we use the in-memory creation feature of PDFlib to alleviate the need to use temporary files. The example was converted to PHP from the PDFlib example. (The same example is available in the CLibPDF documentation.)

Пример 3. pdfclock example from PDFlib distribution

<?php
$radius = 200;
$margin = 20;
$pagecount = 10;

$pdf = pdf_new();

if (!pdf_open_file($pdf, "")) {
    echo error;
    exit;
};

pdf_set_parameter($pdf, "warning", "true");

pdf_set_info($pdf, "Creator", "pdf_clock.php");
pdf_set_info($pdf, "Author", "Uwe Steinmann");
pdf_set_info($pdf, "Title", "Analog Clock");

while ($pagecount-- > 0) {
    pdf_begin_page($pdf, 2 * ($radius + $margin), 2 * ($radius + $margin));

    pdf_set_parameter($pdf, "transition", "wipe");
    pdf_set_value($pdf, "duration", 0.5);

    pdf_translate($pdf, $radius + $margin, $radius + $margin);
    pdf_save($pdf);
    pdf_setrgbcolor($pdf, 0.0, 0.0, 1.0);

    /* minute strokes */
    pdf_setlinewidth($pdf, 2.0);
    for ($alpha = 0; $alpha < 360; $alpha += 6) {
        pdf_rotate($pdf, 6.0);
        pdf_moveto($pdf, $radius, 0.0);
        pdf_lineto($pdf, $radius-$margin/3, 0.0);
        pdf_stroke($pdf);
    }

    pdf_restore($pdf);
    pdf_save($pdf);

    /* 5 minute strokes */
    pdf_setlinewidth($pdf, 3.0);
    for ($alpha = 0; $alpha < 360; $alpha += 30) {
        pdf_rotate($pdf, 30.0);
        pdf_moveto($pdf, $radius, 0.0);
        pdf_lineto($pdf, $radius-$margin, 0.0);
        pdf_stroke($pdf);
    }

    $ltime = getdate();

    /* draw hour hand */
    pdf_save($pdf);
    pdf_rotate($pdf,-(($ltime['minutes']/60.0)+$ltime['hours']-3.0)*30.0);
    pdf_moveto($pdf, -$radius/10, -$radius/20);
    pdf_lineto($pdf, $radius/2, 0.0);
    pdf_lineto($pdf, -$radius/10, $radius/20);
    pdf_closepath($pdf);
    pdf_fill($pdf);
    pdf_restore($pdf);

    /* draw minute hand */
    pdf_save($pdf);
    pdf_rotate($pdf,-(($ltime['seconds']/60.0)+$ltime['minutes']-15.0)*6.0);
    pdf_moveto($pdf, -$radius/10, -$radius/20);
    pdf_lineto($pdf, $radius * 0.8, 0.0);
    pdf_lineto($pdf, -$radius/10, $radius/20);
    pdf_closepath($pdf);
    pdf_fill($pdf);
    pdf_restore($pdf);

    /* draw second hand */
    pdf_setrgbcolor($pdf, 1.0, 0.0, 0.0);
    pdf_setlinewidth($pdf, 2);
    pdf_save($pdf);
    pdf_rotate($pdf, -(($ltime['seconds'] - 15.0) * 6.0));
    pdf_moveto($pdf, -$radius/5, 0.0);
    pdf_lineto($pdf, $radius, 0.0);
    pdf_stroke($pdf);
    pdf_restore($pdf);

    /* draw little circle at center */
    pdf_circle($pdf, 0, 0, $radius/30);
    pdf_fill($pdf);

    pdf_restore($pdf);

    pdf_end_page($pdf);

    # to see some difference
    sleep(1);
}

pdf_close($pdf);

$buf = pdf_get_buffer($pdf);
$len = strlen($buf);

header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=foo.pdf");
echo $buf;

pdf_delete($pdf);
?>

Смотрите также

Замечание: An alternative PHP module for PDF document creation based on FastIO's ClibPDF is available. Please see the ClibPDF section for details. Note that ClibPDF has a slightly different API than PDFlib.

Содержание
pdf_add_annotation -- Deprecated: Adds annotation
pdf_add_bookmark -- Adds bookmark for current page
pdf_add_launchlink -- Add a launch annotation for current page
pdf_add_locallink -- Add a link annotation for current page
pdf_add_note -- Sets annotation for current page
pdf_add_outline -- Deprecated: Adds bookmark for current page
pdf_add_pdflink -- Adds file link annotation for current page
pdf_add_thumbnail -- Adds thumbnail for current page
pdf_add_weblink -- Adds weblink for current page
pdf_arc -- Draws an arc (counterclockwise)
pdf_arcn -- Draws an arc (clockwise)
pdf_attach_file -- Adds a file attachment for current page
pdf_begin_page -- Starts new page
pdf_begin_pattern -- Starts new pattern
pdf_begin_template -- Starts new template
pdf_circle -- Draws a circle
pdf_clip -- Clips to current path
pdf_close_image -- Closes an image
pdf_close_pdi_page -- Close the page handle
pdf_close_pdi -- Close the input PDF document
pdf_close -- Closes a pdf resource
pdf_closepath_fill_stroke -- Closes, fills and strokes current path
pdf_closepath_stroke -- Closes path and draws line along path
pdf_closepath -- Closes path
pdf_concat -- Concatenate a matrix to the CTM
pdf_continue_text -- Outputs text in next line
pdf_curveto -- Draws a curve
pdf_delete -- Deletes a PDF object
pdf_end_page -- Ends a page
pdf_end_pattern -- Finish pattern
pdf_end_template -- Finish template
pdf_endpath -- Deprecated: Ends current path
pdf_fill_stroke -- Fills and strokes current path
pdf_fill -- Fills current path
pdf_findfont -- Prepare font for later use with pdf_setfont()
pdf_get_buffer -- Fetch the buffer containing the generated PDF data
pdf_get_font -- Deprecated: font handling
pdf_get_fontname -- Deprecated: font handling
pdf_get_fontsize -- Deprecated: font handling
pdf_get_image_height -- Deprecated: returns height of an image
pdf_get_image_width -- Deprecated: Returns width of an image
pdf_get_majorversion -- Returns the major version number of the PDFlib
pdf_get_minorversion -- Returns the minor version number of the PDFlib
pdf_get_parameter -- Gets certain parameters
pdf_get_pdi_parameter -- Get some PDI string parameters
pdf_get_pdi_value -- Gets some PDI numerical parameters
pdf_get_value -- Gets certain numerical value
pdf_initgraphics -- Resets graphic state
pdf_lineto -- Draws a line
pdf_makespotcolor -- Makes a spotcolor
pdf_moveto -- Sets current point
pdf_new -- Creates a new pdf resource
pdf_open_ccitt -- Opens a new image file with raw CCITT data
pdf_open_file -- Opens a new pdf object
pdf_open_gif -- Deprecated: Opens a GIF image
pdf_open_image_file -- Reads an image from a file
pdf_open_image -- Versatile function for images
pdf_open_jpeg -- Deprecated: Opens a JPEG image
pdf_open_memory_image -- Opens an image created with PHP's image functions
pdf_open_pdi_page -- Prepare a page
pdf_open_pdi -- Opens a PDF file
pdf_open_png -- Deprecated: Opens a PNG image
pdf_open_tiff -- Deprecated: Opens a TIFF image
pdf_open -- Deprecated: Open a new pdf object
pdf_place_image -- Places an image on the page
pdf_place_pdi_page -- Places an image on the page
pdf_rect -- Draws a rectangle
pdf_restore -- Restores formerly saved environment
pdf_rotate -- Sets rotation
pdf_save -- Saves the current environment
pdf_scale -- Sets scaling
pdf_set_border_color -- Sets color of border around links and annotations
pdf_set_border_dash -- Sets dash style of border around links and annotations
pdf_set_border_style -- Sets style of border around links and annotations
pdf_set_char_spacing -- Deprecated: Sets character spacing
pdf_set_duration -- Deprecated: Sets duration between pages
pdf_set_font -- Deprecated: Selects a font face and size
pdf_set_horiz_scaling -- Sets horizontal scaling of text [deprecated]
pdf_set_info_author -- Deprecated: Fills the author field of the document
pdf_set_info_creator -- Deprecated: Fills the creator field of the document
pdf_set_info_keywords -- Deprecated: Fills the keywords field of the document
pdf_set_info_subject -- Deprecated: Fills the subject field of the document
pdf_set_info_title -- Deprecated: Fills the title field of the document
pdf_set_info -- Fills a field of the document information
pdf_set_leading -- Deprecated: Sets distance between text lines
pdf_set_parameter -- Sets certain parameters
pdf_set_text_matrix -- Deprecated: Sets the text matrix
pdf_set_text_pos -- Sets text position
pdf_set_text_rendering -- Deprecated: Determines how text is rendered
pdf_set_text_rise -- Deprecated: Sets the text rise
pdf_set_value -- Sets certain numerical value
pdf_set_word_spacing -- Deprecated: Sets spacing between words
pdf_setcolor -- Sets fill and stroke color
pdf_setdash -- Sets dash pattern
pdf_setflat -- Sets flatness
pdf_setfont -- Set the current font
pdf_setgray_fill -- Sets filling color to gray value
pdf_setgray_stroke -- Sets drawing color to gray value
pdf_setgray -- Sets drawing and filling color to gray value
pdf_setlinecap -- Sets linecap parameter
pdf_setlinejoin -- Sets linejoin parameter
pdf_setlinewidth -- Sets line width
pdf_setmatrix -- Sets current transformation matrix
pdf_setmiterlimit -- Sets miter limit
pdf_setpolydash -- Deprecated: Sets complicated dash pattern
pdf_setrgbcolor_fill -- Sets filling color to rgb color value
pdf_setrgbcolor_stroke -- Sets drawing color to rgb color value
pdf_setrgbcolor -- Sets drawing and filling color to rgb color value
pdf_show_boxed -- Output text in a box
pdf_show_xy -- Output text at given position
pdf_show -- Output text at current position
pdf_skew -- Skews the coordinate system
pdf_stringwidth -- Returns width of text using current font
pdf_stroke -- Draws line along path
pdf_translate -- Sets origin of coordinate system

Пред. | Начало | След.
preg_split | Уровень выше | pdf_add_annotation


pdf_add_annotation

(PHP 3 >= 3.0.12, PHP 4, PECL)

pdf_add_annotation -- Deprecated: Adds annotation

Description

This function is deprecated, use pdf_add_note() instead.

Пред. | Начало | След.
PDF functions | Уровень выше | pdf_add_bookmark


pdf_add_bookmark

(PHP 4 >= 4.0.1, PECL)

pdf_add_bookmark -- Adds bookmark for current page

Description

int pdf_add_bookmark ( resource pdfdoc, string text, int parent, int open )

Add a nested bookmark under parent, or a new top-level bookmark if parent = 0. Returns a bookmark descriptor which may be used as parent for subsequent nested bookmarks. If open = 1, child bookmarks will be folded out, and invisible if open = 0. Parameters parent and open are optional before PHP 4.3.5 or with PDFlib less than 5.

Пример 1. pdf_add_bookmark() example

<?php
// create a new PDF

$pdf = pdf_new();
pdf_open_file($pdf);
pdf_set_info($pdf, "Author", "Bob Nijman");

// begin a new page
pdf_begin_page($pdf, 300, 300);

// add a top-level bookmark
$bookmark = pdf_add_bookmark($pdf, "People");

// add a nested bookmark
pdf_add_bookmark($pdf, "Rasmus", $bookmark);

// and some text
pdf_set_font($pdf, "Helvetica", 20, "host");
$text = "This is R's page";
$width = pdf_stringwidth($pdf, $text);
pdf_set_text_pos($pdf, (300-$width)/2, 100);
pdf_show($pdf, $text);

// close the page and the PDF
pdf_end_page($pdf);
pdf_close($pdf);

?>

Пред. | Начало | След.
pdf_add_annotation | Уровень выше | pdf_add_launchlink


pdf_add_launchlink

(PHP 4 >= 4.0.5, PECL)

pdf_add_launchlink -- Add a launch annotation for current page

Description

bool pdf_add_launchlink ( resource pdfdoc, float llx, float lly, float urx, float ury, string filename )

Adds a link to a web resource specified by filename. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also pdf_add_locallink().

Пред. | Начало | След.
pdf_add_bookmark | Уровень выше | pdf_add_locallink


pdf_add_locallink

(PHP 4 >= 4.0.5, PECL)

pdf_add_locallink -- Add a link annotation for current page

Description

bool pdf_add_locallink ( resource pdfdoc, float lowerleftx, float lowerlefty, float upperrightx, float upperrighty, int page, string dest )

Add a link annotation to a target within the current PDF file. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

dest is the zoom setting on the destination page, it can be one of retain, fitpage, fitwidth, fitheight or fitbbox.

See also pdf_add_launchlink().

Пред. | Начало | След.
pdf_add_launchlink | Уровень выше | pdf_add_note


pdf_add_note

(PHP 4 >= 4.0.5, PECL)

pdf_add_note -- Sets annotation for current page

Description

bool pdf_add_note ( resource pdfdoc, float llx, float lly, float urx, float ury, string contents, string title, string icon, int open )

Sets an annotation for the current page. icon is one of comment, insert, note, paragraph, newparagraph, key, or help. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. Adding a note to a PDF document with PDFlib

<?php
$pdfdoc = pdf_new();
if (!pdf_open_file($pdfdoc, '')) {
  echo 'error!';
  exit;
}
pdf_begin_page($pdfdoc, 300, 300);
if ($font = pdf_findfont($pdfdoc, 'Times-Roman', 'host', 0)) {
  pdf_setfont($pdfdoc, $font, 10);
}
pdf_set_value($pdfdoc, 'textrendering', 0);
pdf_add_note($pdfdoc, 100, 100, 180, 40, 'Note Content', 'Title', 'help', 0);
pdf_show_xy($pdfdoc, 'Example', 100, 100);
pdf_end_page($pdfdoc);
pdf_close($pdfdoc);
$data = pdf_get_buffer($pdfdoc);
header('Content-type: application/pdf');
header('Content-disposition: inline; filename=example.pdf');
header('Content-length: '.strlen($data));
echo $data;
?>

Пред. | Начало | След.
pdf_add_locallink | Уровень выше | pdf_add_outline


pdf_add_outline

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_add_outline -- Deprecated: Adds bookmark for current page

Description

This function is deprecated, use pdf_add_bookmark() instead.

Пред. | Начало | След.
pdf_add_note | Уровень выше | pdf_add_pdflink


pdf_add_pdflink

(PHP 3 >= 3.0.12, PHP 4, PECL)

pdf_add_pdflink -- Adds file link annotation for current page

Description

bool pdf_add_pdflink ( resource pdfdoc, float bottom_left_x, float bottom_left_y, float up_right_x, float up_right_y, string filename, int page, string dest )

Add a file link annotation (to a PDF target). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also pdf_add_locallink() and pdf_add_weblink().

Пред. | Начало | След.
pdf_add_outline | Уровень выше | pdf_add_thumbnail


pdf_add_thumbnail

(PHP 4 >= 4.0.5, PECL)

pdf_add_thumbnail -- Adds thumbnail for current page

Description

bool pdf_add_thumbnail ( resource pdfdoc, int image )

Adds an existing image as thumbnail for the current page. Thumbnail images must not be wider or higher than 106 pixels. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also pdf_open_image(),
pdf_open_image_file() and
pdf_open_memory_image().

Пред. | Начало | След.
pdf_add_pdflink | Уровень выше | pdf_add_weblink


pdf_add_weblink

(PHP 3 >= 3.0.12, PHP 4, PECL)

pdf_add_weblink -- Adds weblink for current page

Description

bool pdf_add_weblink ( resource pdfdoc, float lowerleftx, float lowerlefty, float upperrightx, float upperrighty, string url )

Add a weblink annotation to a target url on the Web. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_add_thumbnail | Уровень выше | pdf_arc


pdf_arc

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_arc -- Draws an arc (counterclockwise)

Description

bool pdf_arc ( resource pdfdoc, float x, float y, float r, float alpha, float beta )

Add a counterclockwise circular arc from alpha to beta degrees with center (x; y) and radius r. Actual drawing of the circle is performed by the next stroke or fill operation.

Пример 1. pdf_arcn() example

<?php
// prepare document
$pdf = pdf_new();
pdf_open_file($pdf, "");
pdf_begin_page($pdf, 595, 842);

// an outlined arc
pdf_arc($pdf, 200, 700, 100, 0, 90);
pdf_stroke($pdf);

// a filled arc
pdf_arc($pdf, 200, 700, 50, 0, 90);
pdf_fill($pdf);

// an outlined and filled arc
pdf_setcolor($pdf, "fill", "gray", 0.8);
pdf_arc($pdf, 400, 700, 50, 0, 90);
pdf_fill_stroke($pdf);

// finish document
pdf_end_page($pdf);
pdf_close($pdf);

header("Content-type: application/pdf");
echo pdf_get_buffer($pdf);

pdf_delete($pdf);
?>

See also: pdf_arcn(),
pdf_circle(), pdf_stroke(),
pdf_fill() and pdf_fill_stroke().

Пред. | Начало | След.
pdf_add_weblink | Уровень выше | pdf_arcn


pdf_arcn

(PHP 4 >= 4.0.5, PECL)

pdf_arcn -- Draws an arc (clockwise)

Description

bool pdf_arcn ( resource pdfdoc, float x, float y, float r, float alpha, float beta )

Add a clockwise circular arc from alpha to beta degrees with center (x; y) and radius r. Actual drawing of the circle is performed by the next stroke or fill operation.

Пример 1. pdf_arcn() example

<?php

// prepare document
$pdf = pdf_new();
pdf_open_file($pdf, "");
pdf_begin_page($pdf, 595, 842);

// an outlined arcn
pdf_arcn($pdf, 200, 700, 100, 0, 90);
pdf_stroke($pdf);

// a filled arcn
pdf_arcn($pdf, 200, 700, 50, 0, 90);
pdf_fill($pdf);

// an outlined and filled arcn
pdf_setcolor($pdf, "fill", "gray", 0.8);
pdf_arcn($pdf, 400, 700, 50, 0, 90);
pdf_fill_stroke($pdf);

// finish document
pdf_end_page($pdf);
pdf_close($pdf);

header("Content-type: application/pdf");
echo pdf_get_buffer($pdf);

pdf_delete($pdf);
?>

See also: pdf_arc(), pdf_circle(),
pdf_stroke(), pdf_fill() and
pdf_fillstroke().

Пред. | Начало | След.
pdf_arc | Уровень выше | pdf_attach_file


pdf_attach_file

(PHP 4 >= 4.0.5, PECL)

pdf_attach_file -- Adds a file attachment for current page

Description

bool pdf_attach_file ( resource pdfdoc, float llx, float lly, float urx, float ury, string filename, string description, string author, string mimetype, string icon )

Add a file attachment annotation. icon is one of graph, paperclip, pushpin, or tag. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: Only the 'Full' Acrobat software will be able to display these file attachments. All other PDF viewers will either show nothing or display a question mark.

Пред. | Начало | След.
pdf_arcn | Уровень выше | pdf_begin_page


pdf_begin_page

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_begin_page -- Starts new page

Description

bool pdf_begin_page ( resource pdfdoc, float width, float height )

Add a new page to the document. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. The width and height are specified in points, which are 1/72 of an inch.

Таблица 1. Common Page Sizes in Points

name | size
A0 | 2380?3368
A1 | 1684?2380
A2 | 1190?1684
A3 | 842?1190
A4 | 595?842
A5 | 421?595
A6 | 297?421
B5 | 501?709
letter (8.5"?11") | 612?792
legal (8.5"?14") | 612?1008
ledger (17"?11") | 1224?792
11"?17" | 792?1224

See also pdf_end_page().

Пред. | Начало | След.
pdf_attach_file | Уровень выше | pdf_begin_pattern


pdf_begin_pattern

(PHP 4 >= 4.0.5, PECL)

pdf_begin_pattern -- Starts new pattern

Description

int pdf_begin_pattern ( resource pdfdoc, float width, float height, float xstep, float ystep, int painttype )

Starts a new pattern definition and returns a pattern handle. width, and height define the bounding box for the pattern. xstep and ystep give the repeated pattern offsets. painttype=1 means that the pattern has its own colour settings whereas a value of 2 indicates that the current colour is used when the pattern is applied.

See also pdf_end_pattern().

Пред. | Начало | След.
pdf_begin_page | Уровень выше | pdf_begin_template


pdf_begin_template

(PHP 4 >= 4.0.5, PECL)

pdf_begin_template -- Starts new template

Description

int pdf_begin_template ( resource pdfdoc, float width, float height )

Start a new template definition.

Пред. | Начало | След.
pdf_begin_pattern | Уровень выше | pdf_circle


pdf_circle

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_circle -- Draws a circle

Description

bool pdf_circle ( resource pdfdoc, float x, float y, float r )

Add a circle with center (x, y) and radius r to the current page. Actual drawing of the circle is performed by the next stroke or fill operation.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. pdf_circle() example

<?php
// prepare document
$pdf = pdf_new();
pdf_open_file($pdf, "");
pdf_begin_page($pdf, 595, 842);

// an outlined circle
pdf_circle($pdf, 200, 700, 100);
pdf_stroke($pdf);

// a filled circle
pdf_circle($pdf, 200, 700, 50);
pdf_fill($pdf);

// an outlined and filled circle
pdf_setcolor($pdf, "fill", "gray", 0.3);
pdf_circle($pdf, 400, 700, 50);
pdf_fill_stroke($pdf);

// finish document
pdf_end_page($pdf);
pdf_close($pdf);

header("Content-type: application/pdf");
echo pdf_get_buffer($pdf);

pdf_delete($pdf);
?>

See also: pdf_arc(),
pdf_arcn(), pdf_curveto(),
pdf_stroke(), pdf_fill() and
pdf_fill_stroke().

Пред. | Начало | След.
pdf_begin_template | Уровень выше | pdf_clip


pdf_clip

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_clip -- Clips to current path

Description

bool pdf_clip ( resource pdfdoc )

Use the current path as clipping path. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_circle | Уровень выше | pdf_close_image


pdf_close_image

(PHP 3 >= 3.0.7, PHP 4, PECL)

pdf_close_image -- Closes an image

Description

void pdf_close_image ( resource pdfdoc, int image )

Close an image retrieved with the pdf_open_image() function.

Пред. | Начало | След.
pdf_clip | Уровень выше | pdf_close_pdi_page


pdf_close_pdi_page

(PHP 4 >= 4.0.5, PECL)

pdf_close_pdi_page -- Close the page handle

Description

bool pdf_close_pdi_page ( resource pdfdoc, int pagehandle )

Close the page handle, and free all page-related resources. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_close_image | Уровень выше | pdf_close_pdi


pdf_close_pdi

(PHP 4 >= 4.0.5, PECL)

pdf_close_pdi -- Close the input PDF document

Description

bool pdf_close_pdi ( resource pdfdoc, int dochandle )

Close all open page handles, and close the input PDF document. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also pdf_open_pdi().

Пред. | Начало | След.
pdf_close_pdi_page | Уровень выше | pdf_close


pdf_close

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_close -- Closes a pdf resource

Description

bool pdf_close ( resource pdfdoc )

Close the generated PDF file, and free all document-related resources. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also pdf_new().

Пред. | Начало | След.
pdf_close_pdi | Уровень выше | pdf_closepath_fill_stroke


pdf_closepath_fill_stroke

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_closepath_fill_stroke -- Closes, fills and strokes current path

Description

bool pdf_closepath_fill_stroke ( resource pdfdoc )

Close the path, fill, and stroke it. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also pdf_closepath() and pdf_closepath_stroke().

Пред. | Начало | След.
pdf_close | Уровень выше | pdf_closepath_stroke


pdf_closepath_stroke

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_closepath_stroke -- Closes path and draws line along path

Description

bool pdf_closepath_stroke ( resource pdfdoc )

Close the path, and stroke it. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also pdf_closepath() and pdf_closepath_fil_stroke().

Пред. | Начало | След.
pdf_closepath_fill_stroke | Уровень выше | pdf_closepath


pdf_closepath

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_closepath -- Closes path

Description

bool pdf_closepath ( resource pdfdoc )

Close the current path. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also pdf_closepath_stroke() and pdf_closepath_fil_stroke().

Пред. | Начало | След.
pdf_closepath_stroke | Уровень выше | pdf_concat


pdf_concat

(PHP 4 >= 4.0.5, PECL)

pdf_concat -- Concatenate a matrix to the CTM

Description

bool pdf_concat ( resource pdfdoc, float a, float b, float c, float d, float e, float f )

Concatenate a matrix to the CTM. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_closepath | Уровень выше | pdf_continue_text


pdf_continue_text

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_continue_text -- Outputs text in next line

Description

bool pdf_continue_text ( resource pdfdoc, string text )

Print text at the next line. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_concat | Уровень выше | pdf_curveto


pdf_curveto

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_curveto -- Draws a curve

Description

bool pdf_curveto ( resource pdfdoc, float x1, float y1, float x2, float y2, float x3, float y3 )

Draw a Bezier curve from the current point, using 3 more control points. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_continue_text | Уровень выше | pdf_delete


pdf_delete

(PHP 4 >= 4.0.5, PECL)

pdf_delete -- Deletes a PDF object

Description

bool pdf_delete ( resource pdfdoc )

Delete the PDF resource, and free all internal resources. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also pdf_new().

Пред. | Начало | След.
pdf_curveto | Уровень выше | pdf_end_page


pdf_end_page

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_end_page -- Ends a page

Description

bool pdf_end_page ( resource pdfdoc )

Finish the page. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also pdf_begin_page().

Пред. | Начало | След.
pdf_delete | Уровень выше | pdf_end_pattern


pdf_end_pattern

(PHP 4 >= 4.0.5, PECL)

pdf_end_pattern -- Finish pattern

Description

bool pdf_end_pattern ( resource pdfdoc )

Finish the pattern definition. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also pdf_begin_pattern().

Пред. | Начало | След.
pdf_end_page | Уровень выше | pdf_end_template


pdf_end_template

(PHP 4 >= 4.0.5, PECL)

pdf_end_template -- Finish template

Description

bool pdf_end_template ( resource pdfdoc )

Finish the template definition. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_end_pattern | Уровень выше | pdf_endpath


pdf_endpath

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_endpath -- Deprecated: Ends current path

Description

This function is deprecated, use one of the pdf_stroke(), pdf_clip() or pdf_closepath_fill_stroke() functions instead.

Пред. | Начало | След.
pdf_end_template | Уровень выше | pdf_fill_stroke


pdf_fill_stroke

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_fill_stroke -- Fills and strokes current path

Description

bool pdf_fill_stroke ( resource pdfdoc )

Fill and stroke the path with the current fill and stroke color. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also pdf_setcolor().

Пред. | Начало | След.
pdf_endpath | Уровень выше | pdf_fill


pdf_fill

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_fill -- Fills current path

Description

bool pdf_fill ( resource pdfdoc )

Fill the interior of the path with the current fill color. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also pdf_setcolor().

Пред. | Начало | След.
pdf_fill_stroke | Уровень выше | pdf_findfont


pdf_findfont

(PHP 4 >= 4.0.5, PECL)

pdf_findfont -- Prepare font for later use with pdf_setfont()

Description

int pdf_findfont ( resource pdfdoc, string fontname, string encoding, int embed )

Prepare a font for later use with pdf_setfont(). The metrics will be loaded, and if embed is nonzero, the font file will be checked, but not yet used. encoding is one of builtin, macroman, winansi, host, a user-defined encoding name or the name of a CMap. Parameter embed is optional before PHP 4.3.5 or with PDFlib less than 5.

pdf_findfont() returns a font handle or FALSE on error.

Пример 1. pdf_findfont() example

<?php

$font = pdf_findfont($pdf, "Times New Roman", "winansi", 1);
if ($font) {
    pdf_setfont($pdf, $font, 10);
}

?>

Пред. | Начало | След.
pdf_fill | Уровень выше | pdf_get_buffer


pdf_get_buffer

(PHP 4 >= 4.0.5, PECL)

pdf_get_buffer -- Fetch the buffer containing the generated PDF data

Description

string pdf_get_buffer ( resource pdfdoc )

Get the contents of the PDF output buffer. The result must be used by the client before calling any other PDFlib function.

Пред. | Начало | След.
pdf_findfont | Уровень выше | pdf_get_font


pdf_get_font

(PHP 4, PECL)

pdf_get_font -- Deprecated: font handling

Description

This function is deprecated, use pdf_get_value() instead.

Пред. | Начало | След.
pdf_get_buffer | Уровень выше | pdf_get_fontname


pdf_get_fontname

(PHP 4, PECL)

pdf_get_fontname -- Deprecated: font handling

Description

This function is deprecated, use pdf_get_parameter() instead.

Пред. | Начало | След.
pdf_get_font | Уровень выше | pdf_get_fontsize


pdf_get_fontsize

(PHP 4, PECL)

pdf_get_fontsize -- Deprecated: font handling

Description

This function is deprecated, use pdf_get_value() instead.

Пред. | Начало | След.
pdf_get_fontname | Уровень выше | pdf_get_image_height


pdf_get_image_height

(PHP 3 >= 3.0.12, PHP 4, PECL)

pdf_get_image_height -- Deprecated: returns height of an image

Description

This function is deprecated, use pdf_get_value() instead.

Пред. | Начало | След.
pdf_get_fontsize | Уровень выше | pdf_get_image_width


pdf_get_image_width

(PHP 3 >= 3.0.12, PHP 4, PECL)

pdf_get_image_width -- Deprecated: Returns width of an image

Description

This function is deprecated, use pdf_get_value() instead.

Пред. | Начало | След.
pdf_get_image_height | Уровень выше | pdf_get_majorversion


pdf_get_majorversion

(PHP 4 >= 4.2.0, PECL)

pdf_get_majorversion -- Returns the major version number of the PDFlib

Description

int pdf_get_majorversion ( void )

Returns the major version number of the PDFlib.

See also pdf_get_minorversion().

Пред. | Начало | След.
pdf_get_image_width | Уровень выше | pdf_get_minorversion


pdf_get_minorversion

(PHP 4 >= 4.2.0, PECL)

pdf_get_minorversion -- Returns the minor version number of the PDFlib

Description

int pdf_get_minorversion ( void )

Returns the minor version number of the PDFlib.

See also pdf_get_majorversion().

Пред. | Начало | След.
pdf_get_majorversion | Уровень выше | pdf_get_parameter


pdf_get_parameter

(PHP 4 >= 4.0.1, PECL)

pdf_get_parameter -- Gets certain parameters

Description

string pdf_get_parameter ( resource pdfdoc, string key, float modifier )

Get the contents of some PDFlib parameter with string type. Parameter modifier is optional before PHP 4.3.5 or with PDFlib less than 5.

Пред. | Начало | След.
pdf_get_minorversion | Уровень выше | pdf_get_pdi_parameter


pdf_get_pdi_parameter

(PHP 4 >= 4.0.5, PECL)

pdf_get_pdi_parameter -- Get some PDI string parameters

Description

string pdf_get_pdi_parameter ( resource pdfdoc, string key, int document, int page, int index )

Get the contents of some PDI document parameter with string type.

Пред. | Начало | След.
pdf_get_parameter | Уровень выше | pdf_get_pdi_value


pdf_get_pdi_value

(PHP 4 >= 4.0.5, PECL)

pdf_get_pdi_value -- Gets some PDI numerical parameters

Description

float pdf_get_pdi_value ( resource pdfdoc, string key, int doc, int page, int index )

Get the contents of some PDI document parameter with numerical type.

Пред. | Начало | След.
pdf_get_pdi_parameter | Уровень выше | pdf_get_value


pdf_get_value

(PHP 4 >= 4.0.1, PECL)

pdf_get_value -- Gets certain numerical value

Description

float pdf_get_value ( resource pdfdoc, string key, float modifier )

Get the contents of some PDFlib parameter with float type. Parameter modifier is optional before PHP 4.3.5 or with PDFlib less than 5.

Пред. | Начало | След.
pdf_get_pdi_value | Уровень выше | pdf_initgraphics


pdf_initgraphics

(PHP 4 >= 4.0.5, PECL)

pdf_initgraphics -- Resets graphic state

Description

bool pdf_initgraphics ( resource pdfdoc )

Reset all implicit color and graphics state parameters to their defaults. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_get_value | Уровень выше | pdf_lineto


pdf_lineto

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_lineto -- Draws a line

Description

bool pdf_lineto ( resource pdfdoc, float x, float y )

Draw a line from the current point to (x, y). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_initgraphics | Уровень выше | pdf_makespotcolor


pdf_makespotcolor

(PHP 4 >= 4.0.5, PECL)

pdf_makespotcolor -- Makes a spotcolor

Description

int pdf_makespotcolor ( resource pdfdoc, string spotname )

Make a named spot color from the current color. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also pdf_setcolor().

Пред. | Начало | След.
pdf_lineto | Уровень выше | pdf_moveto


pdf_moveto

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_moveto -- Sets current point

Description

bool pdf_moveto ( resource pdfdoc, float x, float y )

Set the current point to (x, y. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: The current point for graphics and the current text output position are maintained separately. See pdf_set_text_pos() to set the text output position.

Пред. | Начало | След.
pdf_makespotcolor | Уровень выше | pdf_new


pdf_new

(PHP 4 >= 4.0.5, PECL)

pdf_new -- Creates a new pdf resource

Description

resource pdf_new ( )

Create a new PDF resource, using default error handling and memory management.

See also pdf_close().

Пред. | Начало | След.
pdf_moveto | Уровень выше | pdf_open_ccitt


pdf_open_ccitt

(PHP 4 >= 4.0.5, PECL)

pdf_open_ccitt -- Opens a new image file with raw CCITT data

Description

int pdf_open_ccitt ( resource pdfdoc, string filename, int width, int height, int BitReverse, int k, int Blackls1 )

Open a raw CCITT image.

Пред. | Начало | След.
pdf_new | Уровень выше | pdf_open_file


pdf_open_file

(PHP 4 >= 4.0.5, PECL)

pdf_open_file -- Opens a new pdf object

Description

bool pdf_open_file ( resource pdfdoc, string filename )

Create a new PDF file using the supplied file name. If filename is empty the PDF document will be generated in memory instead of on file. The result must be fetched by the client with the pdf_get_buffer() function. Parameter filename is optional before PHP 4.3.5 or with PDFlib less than 5. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

The following example shows how to create a pdf document in memory and how to output it correctly.

Пример 1. Creating a PDF document in memory

<?php

$pdf = pdf_new();

pdf_open_file($pdf);
pdf_begin_page($pdf, 595, 842);
pdf_set_font($pdf, "Times-Roman", 30, "host");
pdf_set_value($pdf, "textrendering", 1);
pdf_show_xy($pdf, "A PDF document created in memory!", 50, 750);
pdf_end_page($pdf);
pdf_close($pdf);

$data = pdf_get_buffer($pdf);

header("Content-type: application/pdf");
header("Content-disposition: inline; filename=test.pdf");
header("Content-length: " . strlen($data));

echo $data;

?>

Пред. | Начало | След.
pdf_open_ccitt | Уровень выше | pdf_open_gif


pdf_open_gif

(PHP 3 >= 3.0.7, PHP 4, PECL)

pdf_open_gif -- Deprecated: Opens a GIF image

Description

This function is deprecated, use pdf_open_image() instead.

Пред. | Начало | След.
pdf_open_file | Уровень выше | pdf_open_image_file


pdf_open_image_file

(PHP 3 CVS only, PHP 4, PECL)

pdf_open_image_file -- Reads an image from a file

Description

int pdf_open_image_file ( resource pdfdoc, string imagetype, string filename, string stringparam, int intparam )

Open an image file. Supported types are jpeg, tiff, gif, and png. stringparam is either empty, mask, masked, or page. intparam is either 0, the image id of the applied mask, or the page. Parameters stringparam and intparam are optional before PHP 4.3.5 or with PDFlib less than 5.

Пред. | Начало | След.
pdf_open_gif | Уровень выше | pdf_open_image


pdf_open_image

(PHP 4 >= 4.0.5, PECL)

pdf_open_image -- Versatile function for images

Description

int pdf_open_image ( resource pdfdoc, string imagetype, string source, string data, int length, int width, int height, int components, int bpc, string params )

Use image data from a variety of data sources. Supported types are jpeg, ccitt, raw. Supported sources are memory, fileref, url. len is only used when type is raw, params is only used when type is ccitt.

Пред. | Начало | След.
pdf_open_image_file | Уровень выше | pdf_open_jpeg


pdf_open_jpeg

(PHP 3 >= 3.0.7, PHP 4, PECL)

pdf_open_jpeg -- Deprecated: Opens a JPEG image

Description

This function is deprecated, use pdf_open_image() instead.

Пред. | Начало | След.
pdf_open_image | Уровень выше | pdf_open_memory_image


pdf_open_memory_image

(PHP 3 >= 3.0.10, PHP 4, PECL)

pdf_open_memory_image -- Opens an image created with PHP's image functions

Description

int pdf_open_memory_image ( resource pdfdoc, resource image )

The pdf_open_memory_image() function takes an image created with the PHP's image functions and makes it available for the pdf resource. The function returns a pdf image identifier.

Пример 1. Including a memory image

<?php
$im = imagecreate(100, 100);
$col = imagecolorallocate($im, 80, 45, 190);
imagefill($im, 10, 10, $col);
$pim = pdf_open_memory_image($pdf, $im);
imagedestroy($im);
pdf_place_image($pdf, $pim, 100, 100, 1);
pdf_close_image($pdf, $pim);
?>

See also pdf_close_image() and pdf_place_image().

Пред. | Начало | След.
pdf_open_jpeg | Уровень выше | pdf_open_pdi_page


pdf_open_pdi_page

(PHP 4 >= 4.0.5, PECL)

pdf_open_pdi_page -- Prepare a page

Description

int pdf_open_pdi_page ( resource pdfdoc, int dochandle, int pagenumber, string pagelabel )

Prepare a page for later use with pdf_place_image()

Пред. | Начало | След.
pdf_open_memory_image | Уровень выше | pdf_open_pdi


pdf_open_pdi

(PHP 4 >= 4.0.5, PECL)

pdf_open_pdi -- Opens a PDF file

Description

int pdf_open_pdi ( resource pdfdoc, string filename, string stringparam, int intparam )

Opens an existing PDF document and prepares it for later use.

See also pdf_close_pdi().

Пред. | Начало | След.
pdf_open_pdi_page | Уровень выше | pdf_open_png


pdf_open_png

(PHP 4, PECL)

pdf_open_png -- Deprecated: Opens a PNG image

Description

This function is deprecated, use pdf_open_image() instead.

Пред. | Начало | След.
pdf_open_pdi | Уровень выше | pdf_open_tiff


pdf_open_tiff

(PHP 4, PECL)

pdf_open_tiff -- Deprecated: Opens a TIFF image

Description

This function is deprecated, use pdf_open_image() instead.

Пред. | Начало | След.
pdf_open_png | Уровень выше | pdf_open


pdf_open

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_open -- Deprecated: Open a new pdf object

Description

This function is deprecated, use pdf_new() plus pdf_open_file() instead.

Пред. | Начало | След.
pdf_open_tiff | Уровень выше | pdf_place_image


pdf_place_image

(PHP 3 >= 3.0.7, PHP 4, PECL)

pdf_place_image -- Places an image on the page

Description

bool pdf_place_image ( resource pdfdoc, int image, float x, float y, float scale )

Place an image with the lower left corner at (x, y), and scale it. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_open | Уровень выше | pdf_place_pdi_page


pdf_place_pdi_page

(PHP 4 >= 4.0.6, PECL)

pdf_place_pdi_page -- Places an image on the page

Description

bool pdf_place_pdi_page ( resource pdfdoc, int page, float x, float y, float sx, float sy )

Place a PDI page with the lower left corner at (x, y), and scale it. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_place_image | Уровень выше | pdf_rect


pdf_rect

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_rect -- Draws a rectangle

Description

bool pdf_rect ( resource pdfdoc, float x, float y, float width, float height )

Draw a (width * height) rectangle at lower left (x, y). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_place_pdi_page | Уровень выше | pdf_restore


pdf_restore

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_restore -- Restores formerly saved environment

Description

bool pdf_restore ( resource pdfdoc )

Restore the most recently saved graphics state. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_rect | Уровень выше | pdf_rotate


pdf_rotate

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_rotate -- Sets rotation

Description

bool pdf_rotate ( resource pdfdoc, float phi )

Rotate the coordinate system by phi degrees. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_restore | Уровень выше | pdf_save


pdf_save

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_save -- Saves the current environment

Description

bool pdf_save ( resource pdfdoc )

Save the current graphics state. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_rotate | Уровень выше | pdf_scale


pdf_scale

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_scale -- Sets scaling

Description

bool pdf_scale ( resource pdfdoc, float x_scale, float y_scale )

Scale the coordinate system. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_save | Уровень выше | pdf_set_border_color


pdf_set_border_color

(PHP 3 >= 3.0.12, PHP 4, PECL)

pdf_set_border_color -- Sets color of border around links and annotations

Description

bool pdf_set_border_color ( resource pdfdoc, float red, float green, float blue )

Set the border color for all kinds of annotations. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_scale | Уровень выше | pdf_set_border_dash


pdf_set_border_dash

(PHP 4 >= 4.0.1, PECL)

pdf_set_border_dash -- Sets dash style of border around links and annotations

Description

bool pdf_set_border_dash ( resource pdfdoc, float black, float white )

Sets the border dash style for all kinds of annotations. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also pdf_setdash().

Пред. | Начало | След.
pdf_set_border_color | Уровень выше | pdf_set_border_style


pdf_set_border_style

(PHP 3 >= 3.0.12, PHP 4, PECL)

pdf_set_border_style -- Sets style of border around links and annotations

Description

bool pdf_set_border_style ( resource pdfdoc, string style, float width )

Sets the border style for all kinds of annotations. style is solid or dashed. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_set_border_dash | Уровень выше | pdf_set_char_spacing


pdf_set_char_spacing

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_set_char_spacing -- Deprecated: Sets character spacing

Description

This function is deprecated, use pdf_set_value() instead.

Пред. | Начало | След.
pdf_set_border_style | Уровень выше | pdf_set_duration


pdf_set_duration

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_set_duration -- Deprecated: Sets duration between pages

Description

This function is deprecated, use pdf_set_value() instead.

Пред. | Начало | След.
pdf_set_char_spacing | Уровень выше | pdf_set_font


pdf_set_font

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_set_font -- Deprecated: Selects a font face and size

Description

This function is deprecated, use pdf_findfont() plus pdf_setfont() instead.

Пред. | Начало | След.
pdf_set_duration | Уровень выше | pdf_set_horiz_scaling


pdf_set_horiz_scaling

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_set_horiz_scaling -- Sets horizontal scaling of text [deprecated]

Description

This function is deprecated, use pdf_set_value() instead.

Пред. | Начало | След.
pdf_set_font | Уровень выше | pdf_set_info_author


pdf_set_info_author

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_set_info_author -- Deprecated: Fills the author field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Пред. | Начало | След.
pdf_set_horiz_scaling | Уровень выше | pdf_set_info_creator


pdf_set_info_creator

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_set_info_creator -- Deprecated: Fills the creator field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Пред. | Начало | След.
pdf_set_info_author | Уровень выше | pdf_set_info_keywords


pdf_set_info_keywords

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_set_info_keywords -- Deprecated: Fills the keywords field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Пред. | Начало | След.
pdf_set_info_creator | Уровень выше | pdf_set_info_subject


pdf_set_info_subject

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_set_info_subject -- Deprecated: Fills the subject field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Пред. | Начало | След.
pdf_set_info_keywords | Уровень выше | pdf_set_info_title


pdf_set_info_title

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_set_info_title -- Deprecated: Fills the title field of the document

Description

This function is deprecated, use pdf_set_info() instead.

Пред. | Начало | След.
pdf_set_info_subject | Уровень выше | pdf_set_info


pdf_set_info

(PHP 4 >= 4.0.1, PECL)

pdf_set_info -- Fills a field of the document information

Description

bool pdf_set_info ( resource pdfdoc, string key, string value )

Fill document information field key with value. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. key is one of Subject, Title, Creator, Author, Keywords, or a user-defined key.

Пред. | Начало | След.
pdf_set_info_title | Уровень выше | pdf_set_leading


pdf_set_leading

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_set_leading -- Deprecated: Sets distance between text lines

Description

This function is deprecated, use pdf_set_value() instead.

Пред. | Начало | След.
pdf_set_info | Уровень выше | pdf_set_parameter


pdf_set_parameter

(PHP 4, PECL)

pdf_set_parameter -- Sets certain parameters

Description

bool pdf_set_parameter ( resource pdfdoc, string key, string value )

Sets some PDFlib parameters with string type. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also pdf_set_value().

Пред. | Начало | След.
pdf_set_leading | Уровень выше | pdf_set_text_matrix


pdf_set_text_matrix

(PHP 3 >= 3.0.6)

pdf_set_text_matrix -- Deprecated: Sets the text matrix

Description

This function is deprecated, use pdf_set_parameter() instead.

Пред. | Начало | След.
pdf_set_parameter | Уровень выше | pdf_set_text_pos


pdf_set_text_pos

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_set_text_pos -- Sets text position

Description

bool pdf_set_text_pos ( resource pdfdoc, float x, float y )

Set the text output position specified by x and y. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_set_text_matrix | Уровень выше | pdf_set_text_rendering


pdf_set_text_rendering

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_set_text_rendering -- Deprecated: Determines how text is rendered

Description

This function is deprecated, use pdf_set_value() instead.

Пред. | Начало | След.
pdf_set_text_pos | Уровень выше | pdf_set_text_rise


pdf_set_text_rise

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_set_text_rise -- Deprecated: Sets the text rise

Description

This function is deprecated, use pdf_set_value() instead.

Пред. | Начало | След.
pdf_set_text_rendering | Уровень выше | pdf_set_value


pdf_set_value

(PHP 4 >= 4.0.1, PECL)

pdf_set_value -- Sets certain numerical value

Description

bool pdf_set_value ( resource pdfdoc, string key, float value )

Set the value of some PDFlib parameter with float type. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also pdf_set_parameter().

Пред. | Начало | След.
pdf_set_text_rise | Уровень выше | pdf_set_word_spacing


pdf_set_word_spacing

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_set_word_spacing -- Deprecated: Sets spacing between words

Description

This function is deprecated, use pdf_set_value() instead.

Пред. | Начало | След.
pdf_set_value | Уровень выше | pdf_setcolor


pdf_setcolor

(PHP 4 >= 4.0.5, PECL)

pdf_setcolor -- Sets fill and stroke color

Description

bool pdf_setcolor ( resource pdfdoc, string type, string colorspace, float c1, float c2, float c3, float c4 )

Set the current color space and color. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. The parameter type can be fill, stroke or both to specify that the color is set for filling, stroking or both filling and stroking. The parameter colorspace can be gray, rgb, cmyk, spot or pattern. The parameters c1, c2, c3 and c4 represent the color components for the color space specified by colorspace. Except as otherwise noted, the color components are floating-point values that range from 0 to 1. Parameters c2, c3 and c4 are optional before PHP 4.3.5 or with PDFlib less than 5.

For gray only c1 is used.

For rgb parameters c1, c2, and c3 specify the red, green and blue values respectively.

<?php
// Set fill and stroke colors to white.
pdf_setcolor($pdf, "both", "rgb", 1, 1, 1);
?>

For cmyk, parameters c1, c2, c3, and c4 are the cyan, magenta, yellow and black values, respectively.

<?php
// Set fill and stroke colors to black.
pdf_setcolor($pdf, "both", "cmyk", 0, 0, 0, 1);
?>

For spot, c1 should be a spot color handles returned by pdf_makespotcolor() and c2 is a tint value between 0 and 1.

For pattern, c1 should be a pattern handle returned by pdf_begin_pattern().

Пред. | Начало | След.
pdf_set_word_spacing | Уровень выше | pdf_setdash


pdf_setdash

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_setdash -- Sets dash pattern

Description

bool pdf_setdash ( resource pdfdoc, float b, float w )

Set the current dash pattern to b black and w white units. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_setcolor | Уровень выше | pdf_setflat


pdf_setflat

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_setflat -- Sets flatness

Description

bool pdf_setflat ( resource pdfdoc, float flatness )

Sets the flatness to a value between 0 and 100 inclusive. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_setdash | Уровень выше | pdf_setfont


pdf_setfont

(PHP 4 >= 4.0.5, PECL)

pdf_setfont -- Set the current font

Description

bool pdf_setfont ( resource pdfdoc, int font, float size )

Set the current font in the given size, using a font handle returned by pdf_findfont(). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also pdf_findfont().

Пред. | Начало | След.
pdf_setflat | Уровень выше | pdf_setgray_fill


pdf_setgray_fill

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_setgray_fill -- Sets filling color to gray value

Description

bool pdf_setgray_fill ( resource pdfdoc, float gray )

Set the current fill color to a gray value between 0 and 1 inclusive. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: PDFlib V4.0: Deprecated, use pdf_setcolor() instead.

Пред. | Начало | След.
pdf_setfont | Уровень выше | pdf_setgray_stroke


pdf_setgray_stroke

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_setgray_stroke -- Sets drawing color to gray value

Description

bool pdf_setgray_stroke ( resource pdfdoc, float gray )

Set the current stroke color to a gray value between 0 and 1 inclusive. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: PDFlib V4.0: Deprecated, use pdf_setcolor() instead.

Пред. | Начало | След.
pdf_setgray_fill | Уровень выше | pdf_setgray


pdf_setgray

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_setgray -- Sets drawing and filling color to gray value

Description

bool pdf_setgray ( resource pdfdoc, float gray )

Set the current fill and stroke color. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: PDFlib V4.0: Deprecated, use pdf_setcolor() instead.

Пред. | Начало | След.
pdf_setgray_stroke | Уровень выше | pdf_setlinecap


pdf_setlinecap

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_setlinecap -- Sets linecap parameter

Description

bool pdf_setlinecap ( resource pdfdoc, int linecap )

Set the linecap parameter to a value between 0 and 2 inclusive.

Пред. | Начало | След.
pdf_setgray | Уровень выше | pdf_setlinejoin


pdf_setlinejoin

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_setlinejoin -- Sets linejoin parameter

Description

bool pdf_setlinejoin ( resource pdfdoc, int value )

Sets the line join parameter to a value between 0 and 2 inclusive. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_setlinecap | Уровень выше | pdf_setlinewidth


pdf_setlinewidth

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_setlinewidth -- Sets line width

Description

bool pdf_setlinewidth ( resource pdfdoc, float width )

Sets the current linewidth to width. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_setlinejoin | Уровень выше | pdf_setmatrix


pdf_setmatrix

(PHP 4 >= 4.0.5, PECL)

pdf_setmatrix -- Sets current transformation matrix

Description

bool pdf_setmatrix ( resource pdfdoc, float a, float b, float c, float d, float e, float f )

Explicitly set the current transformation matrix. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_setlinewidth | Уровень выше | pdf_setmiterlimit


pdf_setmiterlimit

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_setmiterlimit -- Sets miter limit

Description

bool pdf_setmiterlimit ( resource pdfdoc, float miter )

Set the miter limit to a value greater than or equal to 1. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_setmatrix | Уровень выше | pdf_setpolydash


pdf_setpolydash

(PHP 4 >= 4.0.5, PECL)

pdf_setpolydash -- Deprecated: Sets complicated dash pattern

Description

This function is deprecated, use pdf_setdash() instead.

Пред. | Начало | След.
pdf_setmiterlimit | Уровень выше | pdf_setrgbcolor_fill


pdf_setrgbcolor_fill

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_setrgbcolor_fill -- Sets filling color to rgb color value

Description

bool pdf_setrgbcolor_fill ( resource pdfdoc, float red_value, float green_value, float blue_value )

Set the current fill color to the supplied RGB values. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: PDFlib V4.0: Deprecated, use pdf_setcolor() instead.

Пред. | Начало | След.
pdf_setpolydash | Уровень выше | pdf_setrgbcolor_stroke


pdf_setrgbcolor_stroke

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_setrgbcolor_stroke -- Sets drawing color to rgb color value

Description

bool pdf_setrgbcolor_stroke ( resource pdfdoc, float red_value, float green_value, float blue_value )

Set the current stroke color to the supplied RGB values. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: PDFlib V4.0: Deprecated, use pdf_setcolor() instead.

Пред. | Начало | След.
pdf_setrgbcolor_fill | Уровень выше | pdf_setrgbcolor


pdf_setrgbcolor

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_setrgbcolor -- Sets drawing and filling color to rgb color value

Description

bool pdf_setrgbcolor ( resource pdfdoc, float red_value, float green_value, float blue_value )

Set the current fill and stroke color to the supplied RGB values. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: PDFlib V4.0: Deprecated, use pdf_setcolor() instead.

Пред. | Начало | След.
pdf_setrgbcolor_stroke | Уровень выше | pdf_show_boxed


pdf_show_boxed

(PHP 4, PECL)

pdf_show_boxed -- Output text in a box

Description

int pdf_show_boxed ( resource pdfdoc, string text, float left, float top, float width, float height, string mode, string feature )

Format text in the current font and size into the supplied text box according to the requested formatting mode, which must be one of left, right, center, justify or fulljustify. If width and height are 0, only a single line is placed at the point (left, top) in the requested mode. Parameter feature is optional before PHP 4.3.5 or with PDFlib less than 5.

Returns the number of characters that did not fit in the specified box. Returns 0 if all characters fit or the width and height parameters were set to 0 for single-line formatting.

Пред. | Начало | След.
pdf_setrgbcolor | Уровень выше | pdf_show_xy


pdf_show_xy

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_show_xy -- Output text at given position

Description

bool pdf_show_xy ( resource pdfdoc, string text, float x, float y )

Print text in the current font at ( x, y). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_show_boxed | Уровень выше | pdf_show


pdf_show

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_show -- Output text at current position

Description

bool pdf_show ( resource pdfdoc, string text )

Print text in the current font and size at the current position. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_show_xy | Уровень выше | pdf_skew


pdf_skew

(PHP 4, PECL)

pdf_skew -- Skews the coordinate system

Description

bool pdf_skew ( resource pdfdoc, float alpha, float beta )

Skew the coordinate system in x and y direction by alpha and beta degrees. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_show | Уровень выше | pdf_stringwidth


pdf_stringwidth

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_stringwidth -- Returns width of text using current font

Description

float pdf_stringwidth ( resource pdfdoc, string text, int font, float size )

Returns the width of text using the parameters font and size. Please note that font is a font handle returned by pdf_findfont(). Parameters font and size are optional before PHP 4.3.5 or with PDFlib less than 5. If they are not specified, the font set by pdf_setfont() is used.

Замечание: Both the font and size parameters must be used together.

See also pdf_setfont() and pdf_findfont().

Пред. | Начало | След.
pdf_skew | Уровень выше | pdf_stroke


pdf_stroke

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_stroke -- Draws line along path

Description

bool pdf_stroke ( resource pdfdoc )

Stroke the path with the current color and line width, and clear it. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
pdf_stringwidth | Уровень выше | pdf_translate


pdf_translate

(PHP 3 >= 3.0.6, PHP 4, PECL)

pdf_translate -- Sets origin of coordinate system

Description

bool pdf_translate ( resource pdfdoc, float tx, float ty )

Translate the origin of the coordinate system.

Пред. | Начало | След.
pdf_stroke | Уровень выше | PDO Functions


PDO Functions

Руководство по PHP
Пред. След.

CXI. PDO Functions

Введение

The PHP Data Objects (PDO) extension defines a lightweight, consistent interface for accessing databases in PHP. Each database driver that implements the PDO interface can expose database-specific features as regular extension functions. Note that you cannot perform any database functions using the PDO extension by itself; you must use a database-specific PDO driver to access a database server.

PDO provides a data-access abstraction layer, which means that, regardless of which database you're using, you use the same functions to issue queries and fetch data. PDO does not provide a database abstraction; it doesn't rewrite SQL or emulate missing features. You should use a full-blown abstraction layer if you need that facility.

PDO ships with PHP 5.1, and is available as a PECL extension for PHP 5.0; PDO requires the new OO features in the core of PHP 5, and so will not run with earlier versions of PHP.

Установка

PHP 5.1 and up on Unix systems

  1. If you're running a PHP 5.1 release, PDO is included in the distribution; it will be automatically enabled when you run configure. It is recommended that you build PDO as a shared extension, as this will allow you to take advantage of updates that are made available via PECL. The recommended configure line for building PHP with PDO support should enable zlib support (for the pear installer) as well. You may also need to enable the PDO driver for your database of choice; consult the documentation for database-specific PDO drivers to find out more about that.
    ./configure --with-zlib --enable-pdo=shared

  2. After installing PDO as a shared module, you must edit your php.ini file so that the PDO extension will be loaded automatically when PHP runs. You will also need to enable any database specific drivers there too; make sure that they are listed after the pdo.so line, as PDO must be initialized before the database specific extensions can be loaded. If you built the extensions statically, you can skip this step.
    extension=pdo.so

  3. Having PDO as a shared module will allow you to run pear upgrade pdo as new versions of PDO are published, without forcing you to rebuild the whole of PHP. Note that if you do this, you also need to upgrade your database specific PDO drivers at the same time.

PHP 5.0 and up on Unix systems

  1. PDO is available as a PECL extension from http://pecl.php.net/package/pdo. Installation can be performed via the pear tool; this is enabled by default when you configure PHP. You should ensure that PHP was configured --with-zlib in order for pear to be able to handle the compressed package files.

  2. Run the following command to download, build, and install the latest stable version of PDO:
    pear install pdo

  3. If PDO is still in beta (and at the time of writing, it is), you will need to tell the pear tool that it's ok to fetch the beta package. Instead of running the command above, run the following:
    pear install pdo-beta

  4. The pear command automatically installs the PDO module into your PHP extensions directory. To enable the PDO extension on Linux or Unix operating systems, you must add the following line to php.ini:
    extension=pdo.so

    For more information about building PECL packages, consult the PECL installation section of the manual.

Windows users running PHP 5.1 and up

  1. PDO and all the major drivers ship with PHP as shared extensions, and simply need to be activated by editing the php.ini file:
    extension=php_pdo.dll

  2. Next, choose the other DB specific DLL files and either use dl() to load them at runtime, or enable them in php.ini below php_pdo.dll. For example:
    extension=php_pdo.dll
extension=php_pdo_firebird.dll
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
extension=php_pdo_oci8.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll

    These DLLs should exist in the system's extension_dir.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. PDO Configuration Options

Name | Default | Changeable | Changelog
pdo.dsn.* |  | php.ini only |
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

pdo.dsn.* string

Defines DSN alias. See PDO::__construct for thorough explanation.

PDO Drivers

The following drivers currently implement the PDO interface:

Driver name | Supported databases
PDO_DBLIB | FreeTDS / Microsoft SQL Server / Sybase
PDO_FIREBIRD | Firebird/Interbase 6
PDO_MYSQL | MySQL 3.x/4.x
PDO_OCI | Oracle Call Interface
PDO_ODBC | ODBC v3 (IBM DB2, unixODBC and win32 ODBC)
PDO_PGSQL | PostgreSQL
PDO_SQLITE | SQLite 3 and SQLite 2

Connections and Connection management

Connections are established by creating instances of the PDO base class. It doesn't matter which driver you want to use; you always use the PDO class name. The constructor accepts parameters for specifying the database source (known as the DSN) and optionally for the username and password (if any).

Пример 1. Connecting to mysql

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>

If there are any connection errors, a PDOException object will be thrown. You may catch the exception if you want to handle the error condition, or you may opt to leave it for an application global exception handler that you set up via set_exception_handler().

Пример 2. Handling connection errors

<?php
try {
   $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
   foreach ($dbh->query('SELECT * from FOO') as $row) {
      print_r($row);
   }
   $dbh = null;
} catch (PDOException $e) {
   print "Error!: " . $e->getMessage() . "<br/>";
   die();
}
?>

Внимание

If your application does not catch the exception thrown from the PDO constructor, the default action taken by the zend engine is to terminate the script and display a back trace. This back trace will likely reveal the full database connection details, including the username and password. It is your responsibility to catch this exception, either explicitly (via a catch statement) or implicitly via set_exception_handler().

Upon successful connection to the database, an instance of the PDO class is returned to your script. The connection remains active for the lifetime of that PDO object. To close the connection, you need to destroy the object by ensuring that all remaining references to it are deleted--you do this by assigning NULL to the variable that holds the object. If you don't do this explicitly, PHP will automatically close the connection when your script ends.

Пример 3. Closing a connection

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
// use the connection here

// and now we're done; close it
$dbh = null;
?>

Many web applications will benefit from making persistent connections to database servers. Persistent connections are not closed at the end of the script, but are cached and re-used when another script requests a connection using the same credentials. The persistent connection cache allows you to avoid the overhead of establishing a new connection every time a script needs to talk to a database, resulting in a faster web application.

Пример 4. Persistent connections

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(
  PDO::ATTR_PERSISTENT => true
));
?>

Замечание: If you're using the PDO ODBC driver and your ODBC libraries support ODBC Connection Pooling (unixODBC and Windows are two that do; there may be more), then it's recommended that you don't use persistent PDO connections, and instead leave the connection caching to the ODBC Connection Pooling layer. The ODBC Connection Pool is shared with other modules in the process; if PDO is told to cache the connection, then that connection would never be returned to the ODBC connection pool, resulting in additional connections being created to service those other modules.

Transactions and auto-commit

Now that you're connected via PDO, you must understand how PDO manages transactions before you start issuing queries. If you've never encountered transactions before, they offer 4 major features: Atomicity, Consistency, Isolation and Durability (ACID). In layman's terms, any work carried out in a transaction, even if it is carried out in stages, is guaranteed to be applied to the database safely, and without interference from other connections, when it is committed. Transactional work can also be automatically undone at your request (provided you haven't already committed it), which makes error handling in your scripts easier.

Transactions are typically implemented by "saving-up" your batch of changes to be applied all at once; this has the nice side effect of drastically improving the efficiency of those updates. In other words, transactions can make your scripts faster and potentially more robust (you still need to use them correctly to reap that benefit).

Unfortunately, not every database supports transactions, so PDO needs to run in what is known as "auto-commit" mode when you first open the connection. Auto-commit mode means that every query that you run has its own implicit transaction, if the database supports it, or no transaction if the database doesn't support transactions. If you need a transaction, you must use the PDO::beginTransaction() method to initiate one. If the underlying driver does not support transactions, a PDOException will be thrown (regardless of your error handling settings: this is always a serious error condition). Once you are in a transaction, you may use PDO::commit() or PDO::rollBack() to finish it, depending on the success of the code you run during the transaction.

When the script ends or when a connection is about to be closed, if you have an outstanding transaction, PDO will automatically roll it back. This is a safety measure to help avoid inconsistency in the cases where the script terminates unexpectedly--if you didn't explicitly commit the transaction, then it is assumed that something went awry, so the rollback is performed for the safety of your data.

Внимание

The automatic rollback only happens if you initiate the transaction via PDO::beginTransaction(). If you manually issue a query that begins a transaction PDO has no way of knowing about it and thus cannot roll it back if something bad happens.

Пример 5. Executing a batch in a transaction

In the following sample, let's assume that we are creating a set of entries for a new employee, who has been assigned an ID number of 23. In addition to entering the basic data for that person, we also need to record their salary. It's pretty simple to make two separate updates, but by enclosing them within the PDO::beginTransaction() and PDO::commit() calls, we are guaranteeing that no one else will be able to see those changes until they are complete. If something goes wrong, the catch block rolls back all changes made since the transaction was started, and then prints out an error message.

<?php
try {
  $dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2',
      array(PDO::ATTR_PERSISTENT => true));
  echo "Connected\n";
  $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  $dbh->beginTransaction();
  $dbh->exec("insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')");
  $dbh->exec("insert into salarychange (id, amount, changedate)
      values (23, 50000, NOW())");
  $dbh->commit();

} catch (Exception $e) {
  $dbh->rollBack();
  echo "Failed: " . $e->getMessage();
}
?>

You're not limited to making updates in a transaction; you can also issue complex queries to extract data, and possibly use that information to build up more updates and queries; while the transaction is active, you are guaranteed that no one else can make changes while you are in the middle of your work. In truth, this isn't 100% correct, but it is a good-enough introduction, if you've never heard of transactions before.

Prepared statements and stored procedures

Many of the more mature databases support the concept of prepared statements. What are they? You can think of them as a kind of compiled template for the SQL that you want to run, that can be customized using variable parameters. Prepared statements offer two major benefits:

  • The query only needs to be parsed (or prepared) once, but can be executed multiple times with the same or different parameters. When the query is prepared, the database will analyze, compile and optimize it's plan for executing the query. For complex queries this process can take up enough time that it will noticably slow down your application if you need to repeat the same query many times with different parameters. By using a prepared statement you avoid repeating the analyze/compile/optimize cycle. In short, prepared statements use fewer resources and thus run faster.

  • The parameters to prepared statements don't need to be quoted; the driver handles it for you. If your application exclusively uses prepared statements, you can be sure that no SQL injection will occur. (However, if you're still building up other parts of the query based on untrusted input, you're still at risk).

Prepared statements are so useful that they are the only feature that PDO will emulate for drivers that don't support them. This ensures that you will be able to use the same data access paradigm regardless of the capabilities of the database.

Пример 6. Repeated inserts using prepared statements

This example performs an INSERT query by substituting a name and a value for the named placeholders.

<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);

// insert one row
$name = 'one';
$value = 1;
$stmt->execute();

// insert another row with different values
$name = 'two';
$value = 2;
$stmt->execute();
?>

Пример 7. Repeated inserts using prepared statements

This example performs an INSERT query by substituting a name and a value for the positional ? placeholders.

<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $value);

// insert one row
$name = 'one';
$value = 1;
$stmt->execute();

// insert another row with different values
$name = 'two';
$value = 2;
$stmt->execute();
?>

Пример 8. Fetching data using prepared statements

This example fetches data based on a key value supplied by a form. The user input is automatically quoted, so there is no risk of a SQL injection attack.

<?php
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");
if ($stmt->execute(array($_GET['name']))) {
  while ($row = $stmt->fetch()) {
    print_r($row);
  }
}
?>

If the database driver supports it, you may also bind parameters for output as well as input. Output parameters are typically used to retrieve values from stored procedures. Output parameters are slightly more complex to use than input parameters, in that you must know how large a given parameter might be when you bind it. If the value turns out to be larger than the size you suggested, an error is raised.

Пример 9. Calling a stored procedure with an output parameter

<?php
$stmt = $dbh->prepare("CALL sp_returns_string(?)");
$stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000);

// call the stored procedure
$stmt->execute();

print "procedure returned $return_value\n";
?>

You may also specify parameters that hold values both input and output; the syntax is similar to output parameters. In this next example, the string 'hello' is passed into the stored procedure, and when it returns, hello is replaced with the return value of the procedure.

Пример 10. Calling a stored procedure with an input/output parameter

<?php
$stmt = $dbh->prepare("CALL sp_takes_string_returns_string(?)");
$value = 'hello';
$stmt->bindParam(1, $value, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 4000);

// call the stored procedure
$stmt->execute();

print "procedure returned $value\n";
?>

Errors and error handling

PDO offers you a choice of 3 different error handling strategies, to fit your style of application development.

  • PDO::ERRMODE_SILENT

    This is the default mode. PDO will simply set the error code for you to inspect using the PDO::errorCode() and PDO::errorInfo() methods on both the statement and database objects; if the error resulted from a call on a statement object, you would invoke the PDOStatement::errorCode() or PDOStatement::errorInfo() method on that object. If the error resulted from a call on the database object, you would invoke those methods on the database object instead.

  • PDO::ERRMODE_WARNING

    In addition to setting the error code, PDO will emit a traditional E_WARNING message. This setting is useful during debugging/testing, if you just want to see what problems occurred without interrupting the flow of the application.

  • PDO::ERRMODE_EXCEPTION

    In addition to setting the error code, PDO will throw a PDOException and set its properties to reflect the error code and error information. This setting is also useful during debugging, as it will effectively "blow up" the script at the point of the error, very quickly pointing a finger at potential problem areas in your code (remember: transactions are automatically rolled back if the exception causes the script to terminate).

    Exception mode is also useful because you can structure your error handling more clearly than with traditional PHP-style warnings, and with less code/nesting than by running in silent mode and explicitly checking the return value of each database call.

    See Exceptions for more information about Exceptions in PHP.

PDO standardizes on using SQL-92 SQLSTATE error code strings; individual PDO drivers are responsible for mapping their native codes to the appropriate SQLSTATE codes. The PDO::errorCode() method returns a single SQLSTATE code. If you need more specific information about an error, PDO also offers an PDO::errorInfo() method which returns an array containing the SQLSTATE code, the driver specific error code and driver specific error string.

Large Objects (LOBs)

At some point in your application, you might find that you need to store "large" data in your database. Large typically means "around 4kb or more", although some databases can happily handle up to 32kb before data becomes "large". Large objects can be either textual or binary in nature. PDO allows you to work with this large data type by using the PDO::PARAM_LOB type code in your PDOStatement::bindParam() or PDOStatement::bindColumn() calls. PDO::PARAM_LOB tells PDO to map the data as a stream, so that you can manipulate it using the PHP Streams API.

Пример 11. Displaying an image from a database

This example binds the LOB into the variable named $lob and then sends it to the browser using fpassthru(). Since the LOB is represented as a stream, functions such as fgets(), fread() and stream_get_contents() can be used on it.

<?php
$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');
$stmt = $db->prepare("select contenttype, imagedata from images where id=?");
$stmt->execute(array($_GET['id']));
$stmt->bindColumn(1, $type, PDO::PARAM_STR, 256);
$stmt->bindColumn(2, $lob, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);

header("Content-Type: $type");
fpassthru($lob);
?>

Пример 12. Inserting an image into a database

This example opens up a file and passes the file handle to PDO to insert it as a LOB. PDO will do its best to get the contents of the file up to the database in the most efficient manner possible.

<?php
$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');
$stmt = $db->prepare("insert into images (id, contenttype, imagedata) values (?, ?, ?)");
$id = get_new_id(); // some function to allocate a new ID

// assume that we are running as part of a file upload form
// You can find more information in the PHP documentation

$fp = fopen($_FILES['file']['tmp_name'], 'rb');

$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['file']['type']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);

$stmt->beginTransaction();
$stmt->execute();
$stmt->commit();
?>

Пример 13. Inserting an image into a database: Oracle

Oracle requires a slightly different syntax for inserting a lob from a file. It's also essential that you perform the insert under a transaction, otherwise your newly inserted LOB will be committed with a zero-length as part of the implicit commit that happens when the query is executed:

<?php
$db = new PDO('oci:', 'scott', 'tiger');
$stmt = $db->prepare("insert into images (id, contenttype, imagedata) " .
  "VALUES (?, ?, EMPTY_BLOB()) RETURNING imagedata INTO ?");
$id = get_new_id(); // some function to allocate a new ID

// assume that we are running as part of a file upload form
// You can find more information in the PHP documentation

$fp = fopen($_FILES['file']['tmp_name'], 'rb');

$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['file']['type']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);

$stmt->beginTransaction();
$stmt->execute();
$stmt->commit();
?>

Предопределенные классы

PDO

Represents a connection between PHP and a database server.

Конструктор

  • PDO - constructs a new PDO object

Методы

  • beginTransaction - begins a transaction

  • commit - commits a transaction

  • errorCode - retrieves an error code, if any, from the database

  • errorInfo - retrieves an array of error information, if any, from the database

  • exec - issues an SQL statement and returns the number of affected rows

  • getAttribute - retrieves a database connection attribute

  • lastInsertId - retrieves the value of the last row that was inserted into a table

  • prepare - prepares an SQL statement for execution

  • query - issues an SQL statement and returns a result set

  • quote - returns a quoted version of a string for use in SQL statements

  • rollBack - roll back a transaction

  • setAttribute - sets a database connection attribute

PDOStatement

Represents a prepared statement and, after the statement is executed, an associated result set.

Методы

  • bindColumn - binds a PHP variable to an output column in a result set

  • bindParam - binds a PHP variable to a parameter in the prepared statement

  • bindValue - binds a value to a parameter in the prepared statement

  • closeCursor - closes the cursor, allowing the statement to be executed again

  • columnCount - returns the number of columns in the result set

  • errorCode - retrieves an error code, if any, from the statement

  • errorInfo - retrieves an array of error information, if any, from the statement

  • execute - executes a prepared statement

  • fetch - fetches a row from a result set

  • fetchAll - fetches an array containing all of the rows from a result set

  • fetchColumn - returns the data from a single column in a result set

  • getAttribute - retrieves a PDOStatement attribute

  • getColumnMeta - retrieves metadata for a column in the result set

  • nextRowset - retrieves the next rowset (result set)

  • rowCount - returns the number of rows that were affected by the execution of an SQL statement

  • setAttribute - sets a PDOStatement attribute

  • setFetchMode - sets the fetch mode for a PDOStatement

PDOException

Represents an error raised by PDO. You should not throw a PDOException from your own code. See Exceptions for more information about Exceptions in PHP.

Пример 14. The PDOException class

<?php
class PDOException extends Exception
{
    public $errorInfo = null;    // corresponds to PDO::errorInfo()
                                 // or PDOStatement::errorInfo()
    protected $message;          // textual error message
                                 // use Exception::getMessage() to access it
    protected $code;             // SQLSTATE error code
                                 // use Exception::getCode() to access it
}
?>

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

Внимание

PDO uses class constants since PHP 5.1. Prior releases use global constants in the form PDO_PARAM_BOOL.

PDO::PARAM_BOOL (integer)

Represents a boolean data type.

PDO::PARAM_NULL (integer)

Represents the SQL NULL data type.

PDO::PARAM_INT (integer)

Represents the SQL INTEGER data type.

PDO::PARAM_STR (integer)

Represents the SQL CHAR, VARCHAR, or other string data type.

PDO::PARAM_LOB (integer)

Represents the SQL large object data type.

PDO::PARAM_STMT (integer)

Represents a recordset type. Not currently supported by any drivers.

PDO::PARAM_INPUT_OUTPUT (integer)

Specifies that the parameter is an INOUT parameter for a stored procedure. You must bitwise-OR this value with an explicit PDO::PARAM_* data type.

PDO::FETCH_LAZY (integer)

Specifies that the fetch method shall return each row as an object with variable names that correspond to the column names returned in the result set. PDO::FETCH_LAZY creates the object variable names as they are accessed.

PDO::FETCH_ASSOC (integer)

Specifies that the fetch method shall return each row as an array indexed by column name as returned in the corresponding result set. If the result set contains multiple columns with the same name, PDO::FETCH_ASSOC returns only a single value per column name.

PDO::FETCH_NAMED (integer)

Specifies that the fetch method shall return each row as an array indexed by column name as returned in the corresponding result set. If the result set contains multiple columns with the same name, PDO::FETCH_NAMED returns an array of values per column name.

PDO::FETCH_NUM (integer)

Specifies that the fetch method shall return each row as an array indexed by column number as returned in the corresponding result set, starting at column 0.

PDO::FETCH_BOTH (integer)

Specifies that the fetch method shall return each row as an array indexed by both column name and number as returned in the corresponding result set, starting at column 0.

PDO::FETCH_OBJ (integer)

Specifies that the fetch method shall return each row as an object with property names that correspond to the column names returned in the result set.

PDO::FETCH_BOUND (integer)

Specifies that the fetch method shall return TRUE and assign the values of the columns in the result set to the PHP variables to which they were bound with the PDOStatement::bindParam() or PDOStatement::bindColumn() methods.

PDO::FETCH_COLUMN (integer)

Specifies that the fetch method shall return only a single requested column from the next row in the result set.

PDO::FETCH_CLASS (integer)

Specifies that the fetch method shall return a new instance of the requested class, mapping the columns to named properties in the class.

PDO::FETCH_INTO (integer)

Specifies that the fetch method shall update an existing instance of the requested class, mapping the columns to named properties in the class.

PDO::FETCH_FUNC (integer)

PDO::FETCH_GROUP (integer)

PDO::FETCH_UNIQUE (integer)

PDO::FETCH_CLASSTYPE (integer)

PDO::ATTR_AUTOCOMMIT (integer)

If this value is FALSE, PDO attempts to disable autocommit so that the connection begins a transaction.

PDO::ATTR_PREFETCH (integer)

Setting the prefetch size allows you to balance speed against memory usage for your application. Not all database/driver combinations support setting of the prefetch size. A larger prefetch size results in increased performance at the cost of higher memory usage.

PDO::ATTR_TIMEOUT (integer)

Sets the timeout value in seconds for communications with the database.

PDO::ATTR_ERRMODE (integer)

See the Errors and error handling section for more information about this attribute.

PDO::ATTR_SERVER_VERSION (integer)

This is a read only attribute; it will return information about the version of the database server to which PDO is connected.

PDO::ATTR_CLIENT_VERSION (integer)

This is a read only attribute; it will return information about the version of the client libraries that the PDO driver is using.

PDO::ATTR_SERVER_INFO (integer)

This is a read only attribute; it will return some meta information about the database server to which PDO is connected.

PDO::ATTR_CONNECTION_STATUS (integer)

PDO::ATTR_CASE (integer)

Force column names to a specific case specified by the PDO::CASE_* constants.

PDO::ATTR_CURSOR_NAME (integer)

Get or set the name to use for a cursor. Most useful when using scrollable cursors and positioned updates.

PDO::ATTR_CURSOR (integer)

Selects the cursor type. PDO currently supports either PDO::CURSOR_FWDONLY and PDO::CURSOR_SCROLL. Stick with PDO::CURSOR_FWDONLY unless you know that you need a scrollable cursor.

PDO::ATTR_DRIVER_NAME (string)

Returns the name of the driver.

Пример 15. using PDO::ATTR_DRIVER_NAME

<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
  echo "Running on mysql; doing something mysql specific here\n";
}
?>

PDO::ATTR_ORACLE_NULLS (integer)

Convert empty strings to SQL NULL values on data fetches.

PDO::ATTR_PERSISTENT (integer)

Request a persistent connection, rather than creating a new connection. See Connections and Connection management for more information on this attribute.

PDO::ATTR_FETCH_CATALOG_NAMES (integer)

Prepend the containing catalog name to each column name returned in the result set. The catalog name and column name are separated by a decimal (.) character. Support of this attribute is at the driver level; it may not be supported by your driver.

PDO::ATTR_FETCH_TABLE_NAMES (integer)

Prepend the containing table name to each column name returned in the result set. The table name and column name are separated by a decimal (.) character. Support of this attribute is at the driver level; it may not be supported by your driver.

PDO::ERRMODE_SILENT (integer)

Do not raise an error or exception if an error occurs. The developer is expected to explicitly check for errors. This is the default mode. See Errors and error handling for more information about this attribute.

PDO::ERRMODE_WARNING (integer)

Issue a PHP E_WARNING message if an error occurs. See Errors and error handling for more information about this attribute.

PDO::ERRMODE_EXCEPTION (integer)

Throw a PDOException if an error occurs. See Errors and error handling for more information about this attribute.

PDO::CASE_NATURAL (integer)

Leave column names as returned by the database driver.

PDO::CASE_LOWER (integer)

Force column names to lower case.

PDO::CASE_UPPER (integer)

Force column names to upper case.

PDO::FETCH_ORI_NEXT (integer)

Fetch the next row in the result set. Valid only for scrollable cursors.

PDO::FETCH_ORI_PRIOR (integer)

Fetch the previous row in the result set. Valid only for scrollable cursors.

PDO::FETCH_ORI_FIRST (integer)

Fetch the first row in the result set. Valid only for scrollable cursors.

PDO::FETCH_ORI_LAST (integer)

Fetch the last row in the result set. Valid only for scrollable cursors.

PDO::FETCH_ORI_ABS (integer)

Fetch the requested row by row number from the result set. Valid only for scrollable cursors.

PDO::FETCH_ORI_REL (integer)

Fetch the requested row by relative position from the current position of the cursor in the result set. Valid only for scrollable cursors.

PDO::CURSOR_FWDONLY (integer)

Create a PDOStatement object with a forward-only cursor. This is the default cursor choice, as it is the fastest and most common data access pattern in PHP.

PDO::CURSOR_SCROLL (integer)

Create a PDOStatement object with a scrollable cursor. Pass the PDO::FETCH_ORI_* constants to control the rows fetched from the result set.

PDO::ERR_NONE (string)

Corresponds to SQLSTATE '00000', meaning that the SQL statement was successfully issued with no errors or warnings. This constant is for your convenience when checking PDO::errorCode() or PDOStatement::errorCode() to determine if an error occurred. You will usually know if this is the case by examining the return code from the method that raised the error condition anyway.

Содержание
PDO::beginTransaction -- Initiates a transaction
PDO::commit -- Commits a transaction
PDO::__construct -- Creates a PDO instance representing a connection to a database
PDO::errorCode -- Fetch the SQLSTATE associated with the last operation on the database handle
PDO::errorInfo -- Fetch extended error information associated with the last operation on the database handle
PDO::exec -- Execute an SQL statement and return the number of affected rows
PDO::getAttribute -- Retrieve a database connection attribute
PDO::getAvailableDrivers -- Return an array of available PDO drivers
PDO::lastInsertId -- Returns the ID of the last inserted row or sequence value
PDO::prepare -- Prepares a statement for execution and returns a statement object
PDO::query -- Executes an SQL statement, returning a result set as a PDOStatement object
PDO::quote -- Quotes a string for use in a query.
PDO::rollBack -- Rolls back a transaction
PDO::setAttribute -- Set an attribute
PDOStatement::bindColumn -- Bind a column to a PHP variable
PDOStatement::bindParam -- Binds a parameter to the specified variable name
PDOStatement::bindValue -- Binds a value to a parameter
PDOStatement::closeCursor -- Closes the cursor, enabling the statement to be executed again.
PDOStatement::columnCount -- Returns the number of columns in the result set
PDOStatement::errorCode -- Fetch the SQLSTATE associated with the last operation on the statement handle
PDOStatement::errorInfo -- Fetch extended error information associated with the last operation on the statement handle
PDOStatement::execute -- Executes a prepared statement
PDOStatement::fetch -- Fetches the next row from a result set
PDOStatement::fetchAll -- Returns an array containing all of the result set rows
PDOStatement::fetchColumn -- Returns a single column from the next row of a result set
PDOStatement::getAttribute -- Retrieve a statement attribute
PDOStatement::getColumnMeta -- Returns metadata for a column in a result set
PDOStatement::nextRowset -- Advances to the next rowset in a multi-rowset statement handle
PDOStatement::rowCount -- Returns the number of rows affected by the last SQL statement
PDOStatement::setAttribute -- Set a statement attribute
PDOStatement::setFetchMode -- Set the default fetch mode for this statement

Пред. | Начало | След.
pdf_translate | Уровень выше | PDO::beginTransaction


PDO::beginTransaction

(no version information, might be only in CVS)

PDO::beginTransaction -- Initiates a transaction

Описание

bool PDO::beginTransaction ( void )

Turns off autocommit mode. While autocommit mode is turned off, changes made to the database via the PDO object instance are not committed until you end the transaction by calling PDO::commit(). Calling PDO::rollback() will roll back all changes to the database and return the connection to autocommit mode.

Some databases, including MySQL, automatically issue an implicit COMMIT when a database definition language (DDL) statement such as DROP TABLE or CREATE TABLE is issued within a transaction. The implicit COMMIT will prevent you from rolling back any other changes within the transaction boundary.

Примеры

Пример 1. Roll back a transaction

The following example begins a transaction and issues two statements that modify the database before rolling back the changes. On MySQL, however, the DROP TABLE statement automatically commits the transaction so that none of the changes in the transaction are rolled back.

<?php
/* Begin a transaction, turning off autocommit */
$dbh->beginTransaction();

/* Change the database schema and data */
$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
    SET name = 'hamburger'");

/* Recognize mistake and roll back changes */
$dbh->rollBack();

/* Database connection is now back in autocommit mode */
?>

Смотрите также

PDO::commit()
PDO::rollBack()

Пред. | Начало | След.
PDO Functions | Уровень выше | PDO::commit


PDO::commit

(no version information, might be only in CVS)

PDO::commit -- Commits a transaction

Описание

bool PDO::commit ( void )

Commits a transaction, returning the database connection to autocommit mode until the next call to PDO::beginTransaction() starts a new transaction.

Примеры

Пример 1. Commit a transaction

<?php
/* Begin a transaction, turning off autocommit */
$dbh->beginTransaction();

/* Change the database schema */
$sth = $dbh->exec("DROP TABLE fruit");

/* Commit the changes */
$dbh->commit();

/* Database connection is now back in autocommit mode */
?>

Смотрите также

PDO::beginTransaction()
PDO::rollBack()

Пред. | Начало | След.
PDO::beginTransaction | Уровень выше | PDO::__construct


PDO::__construct

(no version information, might be only in CVS)

PDO::__construct -- Creates a PDO instance representing a connection to a database

Описание

PDO PDO::__construct ( string dsn [, string username [, string password [, array driver_options]]] )

Creates a PDO instance to represent a connection to the requested database.

Список параметров

dsn

The Data Source Name, or DSN, contains the information required to connect to the database.

In general, a DSN consists of the PDO driver name, followed by a colon, followed by the PDO driver-specific connection syntax. Further information is available from the PDO driver-specific documentation.

The dsn parameter supports three different methods of specifying the arguments required to create a database connection:

Driver invocation

dsn contains the full DSN.

URI invocation

dsn consists of uri: followed by a URI that defines the location of a file containing the DSN string. The URI can specify a local file or a remote URL.

uri:file:///path/to/dsnfile

Aliasing

dsn consists of a name name that maps to pdo.dsn.name in php.ini defining the DSN string.

Замечание: The alias must be defined in php.ini, and not .htaccess or httpd.conf

username

The user name for the DSN string. This parameter is optional for some PDO drivers.

password

The password for the DSN string. This parameter is optional for some PDO drivers.

driver_options

A key=>value array of driver-specific connection options.

Возвращаемые значения

Returns a PDO object on success.

Исключения

PDO::construct() throws a PDOException if the attempt to connect to the requested database fails.

Примеры

Пример 1. Create a PDO instance via driver invocation

<?php
/* Connect to an ODBC database using driver invocation */
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

?>

Пример 2. Create a PDO instance via URI invocation

The following example assumes that the file /usr/local/dbconnect exists with file permissions that enable PHP to read the file. The file contains the PDO DSN to connect to a DB2 database through the PDO_ODBC driver:

odbc:DSN=SAMPLE;UID=john;PWD=mypass

The PHP script can then create a database connection by simply passing the uri: parameter and pointing to the file URI:

<?php
/* Connect to an ODBC database using driver invocation */
$dsn = 'uri:file:///usr/local/dbconnect';
$user = '';
$password = '';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

?>

Пример 3. Create a PDO instance using an alias

The following example assumes that php.ini contains the following entry to enable a connection to a MySQL database using only the alias mydb:
[PDO]
pdo.dsn.mydb="mysql:dbname=testdb;host=localhost"

<?php
/* Connect to an ODBC database using an alias */
$dsn = 'mydb';
$user = '';
$password = '';

try {
    $dbh = new PDO($dsn, $user, $password);
}catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

?>

Пред. | Начало | След.
PDO::commit | Уровень выше | PDO::errorCode


PDO::errorCode

(no version information, might be only in CVS)

PDO::errorCode -- Fetch the SQLSTATE associated with the last operation on the database handle

Описание

string PDO::errorCode ( void )

Возвращаемые значения

Returns a SQLSTATE, a five-character alphanumeric identifier defined in the ANSI SQL-92 standard. Briefly, an SQLSTATE consists of a two-character class value followed by a three-character subclass value. A class value of 01 indicates a warning and is accompanied by a return code of SQL_SUCCESS_WITH_INFO. Class values other than '01', except for the class 'IM', indicate an error. The class 'IM' is specific to warnings and errors that derive from the implementation of PDO (or perhaps ODBC, if you're using the ODBC driver) itself. The subclass value '000' in any class indicates that there is no subclass for that SQLSTATE.

PDO::errorCode() only retrieves error codes for operations performed directly on the database handle. If you create a PDOStatement object through PDO::prepare() or PDO::query() and invoke an error on the statement handle, PDO::errorCode() will not reflect that error. You must call PDOStatement::errorCode() to return the error code for an operation performed on a particular statement handle.

Примеры

Пример 1. Retrieving a SQLSTATE code

<?php
/* Provoke an error -- the BONES table does not exist */
$dbh->exec("INSERT INTO bones(skull) VALUES ('lucy')");

echo "\nPDO::errorCode(): ";
print $dbh->errorCode();
?>

Результат выполнения данного примера:

PDO::errorCode(): 42S02

Смотрите также

PDO::errorInfo()
PDOStatement::errorCode()
PDOStatement::errorInfo()

Пред. | Начало | След.
PDO::__construct | Уровень выше | PDO::errorInfo


PDO::errorInfo

(no version information, might be only in CVS)

PDO::errorInfo -- Fetch extended error information associated with the last operation on the database handle

Описание

array PDO::errorInfo ( void )

Возвращаемые значения

PDO::errorInfo() returns an array of error information about the last operation performed by this database handle. The array consists of the following fields:

Element | Information
0 | SQLSTATE error code (a five-character alphanumeric identifier defined in the ANSI SQL standard).
1 | Driver-specific error code.
2 | Driver-specific error message.

PDO::errorInfo() only retrieves error information for operations performed directly on the database handle. If you create a PDOStatement object through PDO::prepare() or PDO::query() and invoke an error on the statement handle, PDO::errorInfo() will not reflect the error from the statement handle. You must call PDOStatement::errorInfo() to return the error information for an operation performed on a particular statement handle.

Примеры

Пример 1. Displaying errorInfo() fields for a PDO_ODBC connection to a DB2 database

<?php
/* Provoke an error -- the BONES table does not exist */
$err = $dbh->prepare('SELECT skull FROM bones');
$err->execute();
echo "\nPDO::errorInfo():\n";
print_r($err->errorInfo());
?>

Результат выполнения данного примера:

PDO::errorInfo():
Array
(
    [0] => 42S02
    [1] => -204
    [2] => [IBM][CLI Driver][DB2/LINUX] SQL0204N  "DANIELS.BONES" is an undefined name.  SQLSTATE=42704
)

Смотрите также

PDO::errorCode()
PDOStatement::errorCode()
PDOStatement::errorInfo()

Пред. | Начало | След.
PDO::errorCode | Уровень выше | PDO::exec


PDO::exec

(no version information, might be only in CVS)

PDO::exec -- Execute an SQL statement and return the number of affected rows

Описание

int PDO::exec ( string statement )

PDO::exec() executes an SQL statement in a single function call, returning the number of rows affected by the statement.

PDO::exec() does not return results from a SELECT statement. For a SELECT statement that you only need to issue once during your program, consider issuing PDO::query(). For a statement that you need to issue multiple times, prepare a PDOStatement object with PDO::prepare() and issue the statement with PDOStatement::execute().

Список параметров

statement

The SQL statement to prepare and execute.

Возвращаемые значения

PDO::exec() returns the number of rows that were modified or deleted by the SQL statement you issued. If no rows were affected, PDO::exec() returns 0.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и не относящееся к логическому типу значение, которое приводится к FALSE, например, 0 или "". За более подробной информации обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

The following example incorrectly relies on the return value of PDO::exec(), wherein a statement that affected 0 rows results in a call to die():
<?php
$db->exec() or die($db->errorInfo());
?>

Примеры

Пример 1. Issuing a DELETE statement

Count the number of rows deleted by a DELETE statement with no WHERE clause.

<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');

/* Delete all rows from the FRUIT table */
$count = $dbh->exec("DELETE FROM fruit WHERE colour = 'red'");

/* Return number of rows that were deleted */
print("Deleted $count rows.\n");
?>

Результат выполнения данного примера:

Deleted 1 rows.

Смотрите также

PDO::prepare()
PDO::query()
PDOStatement::execute()

Пред. | Начало | След.
PDO::errorInfo | Уровень выше | PDO::getAttribute


PDO::getAttribute

(no version information, might be only in CVS)

PDO::getAttribute -- Retrieve a database connection attribute

Описание

mixed PDO::getAttribute ( int attribute )

This function returns the value of a database connection attribute. To retrieve PDOStatement attributes, refer to PDOStatement::getAttribute().

Note that some database/driver combinations may not support all of the database connection attributes.

Список параметров

attribute

One of the PDO::ATTR_* constants. The constants that apply to database connections are as follows:

PDO::ATTR_AUTOCOMMIT
PDO::ATTR_CASE
PDO::ATTR_CLIENT_VERSION
PDO::ATTR_CONNECTION_STATUS
PDO::ATTR_DRIVER_NAME
PDO::ATTR_ERRMODE
PDO::ATTR_ORACLE_NULLS
PDO::ATTR_PERSISTENT
PDO::ATTR_PREFETCH
PDO::ATTR_SERVER_INFO
PDO::ATTR_SERVER_VERSION
PDO::ATTR_TIMEOUT

Возвращаемые значения

A successful call returns the value of the requested PDO attribute. An unsuccessful call returns null.

Примеры

Пример 1. Retrieving database connection attributes

<?php
$conn = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');
$attributes = array(
    "AUTOCOMMIT", "ERRMODE", "CASE", "CLIENT_VERSION", "CONNECTION_STATUS",
    "ORACLE_NULLS", "PERSISTENT", "PREFETCH", "SERVER_INFO", "SERVER_VERSION",
    "TIMEOUT"
);

foreach ($attributes as $val) {
    echo "PDO::ATTR_$val: ";
    echo $conn->getAttribute(constant("PDO::ATTR_$val")) . "\n";
}
?>

Смотрите также

PDO::setAttribute()
PDOStatement::getAttribute()
PDOStatement::setAttribute()

Пред. | Начало | След.
PDO::exec | Уровень выше | PDO::getAvailableDrivers


PDO::lastInsertId

(no version information, might be only in CVS)

PDO::lastInsertId -- Returns the ID of the last inserted row or sequence value

Description

string PDO::lastInsertId ( [string name] )

Returns the ID of the last inserted row, or the last value from a sequence object, depending on the underlying driver. For example, PDO_PGSQL() requires you to specify the name of a sequence object for the name parameter.

Замечание: This method may not return a meaningful or consistent result across different PDO drivers, because the underlying database may not even support the notion of auto-increment fields or sequences.

Список параметров

name

Name of the sequence object from which the ID should be returned.

Возвращаемые значения

If a sequence name was not specified for the name parameter, PDOStatement::lastInsertId() returns a string representing the row ID of the last row that was inserted into the database.

If a sequence name was specified for the name parameter, PDOStatement::lastInsertId() returns a string representing the last value retrieved from the specified sequence object.

If the PDO driver does not support this capability, PDO::lastInsertID() triggers an IM001 SQLSTATE.

Пред. | Начало | След.
PDO::getAvailableDrivers | Уровень выше | PDO::prepare


PDO::prepare

(no version information, might be only in CVS)

PDO::prepare -- Prepares a statement for execution and returns a statement object

Описание

PDOStatement PDO::prepare ( string statement [, array driver_options] )

Prepares an SQL statement to be executed by the PDOStatement::execute() method. The SQL statement can contain zero or more named (:name) or question mark (?) parameter markers for which real values will be substituted when the statement is executed. You cannot use both named and question mark parameter markers within the same SQL statement; pick one or the other parameter style.

Calling PDO::prepare() and PDOStatement::execute() for statements that will be issued multiple times with different parameter values optimizes the performance of your application by allowing the driver to negotiate client and/or server side caching of the query plan and meta information, and helps to prevent SQL injection attacks by eliminating the need to manually quote the parameters.

PDO will emulate prepared statements/bound parameters for drivers that do not natively support them, and can also rewrite named or question mark style parameter markers to something more appropriate, if the driver supports one style but not the other.

Список параметров

statement

This must be a valid SQL statement for the target database server.

driver_options

This array holds one or more key=>value pairs to set attribute values for the PDOStatement object that this method returns. You would most commonly use this to set the PDO::ATTR_CURSOR value to PDO::CURSOR_SCROLL to request a scrollable cursor. Some drivers have driver specific options that may be set at prepare-time.

Возвращаемые значения

If the database server successfully prepares the statement, PDO::prepare() returns a PDOStatement object.

Примеры

Пример 1. Prepare an SQL statement with named parameters

<?php
/* Execute a prepared statement by passing an array of values */
$sql = 'SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour';
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR, PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':colour' => 'red'));
$red = $sth->fetchAll();
$sth->execute(array(':calories' => 175, ':colour' => 'yellow'));
$yellow = $sth->fetchAll();
?>

Пример 2. Prepare an SQL statement with question mark parameters

<?php
/* Execute a prepared statement by passing an array of values */
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->execute(array(150, 'red'));
$red = $sth->fetchAll();
$sth->execute(array(175, 'yellow'));
$yellow = $sth->fetchAll();
?>

Смотрите также

PDO::exec()
PDO::query()
PDOStatement::execute()

Пред. | Начало | След.
PDO::lastInsertId | Уровень выше | PDO::query


PDO::query

(no version information, might be only in CVS)

PDO::query -- Executes an SQL statement, returning a result set as a PDOStatement object

Описание

PDOStatement PDO::query ( string statement )

PDO::query() executes an SQL statement in a single function call, returning the result set (if any) returned by the statement as a PDOStatement object.

For a query that you need to issue multiple times, you will realize better performance if you prepare a PDOStatement object using PDO::prepare() and issue the statement with multiple calls to PDOStatement::execute().

If you do not fetch all of the data in a result set before issuing your next call to PDO::query(), your call may fail. Call PDOStatement::closeCursor() to release the database resources associated with the PDOStatement object before issuing your next call to PDO::query().

Список параметров

statement

The SQL statement to prepare and execute.

Возвращаемые значения

PDO::query() returns a PDOStatement object.

Примеры

Пример 1. Demonstrate PDO::query

A nice feature of PDO::query() is that it enables you to iterate over the rowset returned by a successfully executed SELECT statement.

<?php
function getFruit($conn) {
    $sql = 'SELECT name, colour, calories FROM fruit ORDER BY name';
    foreach ($conn->query($sql) as $row) {
        print $row['NAME'] . "\t";
        print $row['COLOUR'] . "\t";
        print $row['CALORIES'] . "\n";
    }
}
?>

Результат выполнения данного примера:

apple   red     150
banana  yellow  250
kiwi    brown   75
lemon   yellow  25
orange  orange  300
pear    green   150
watermelon      pink    90

Смотрите также

PDO::exec()
PDO::prepare()
PDOStatement::execute()

Пред. | Начало | След.
PDO::prepare | Уровень выше | PDO::quote


PDO::quote

(no version information, might be only in CVS)

PDO::quote -- Quotes a string for use in a query.

Описание

string PDO::quote ( string string [, int parameter_type] )

PDO::quote() places quotes around the input string and escapes and single quotes within the input string, using a quoting style appropriate to the underlying driver.

If you are using this function to build SQL statements, you are strongly recommended to use PDO::prepare() to prepare SQL statements with bound parameters instead of using PDO::quote() to interpolate user input into a SQL statement. Prepared statements with bound parameters are not only more portable, more convenient, and vastly more secure, but are often much faster than interpolating user input into slight variations on the same basic SQL statement.

Not all PDO drivers implement this method (notably PDO_ODBC). Consider using prepared statements instead.

Список параметров

string

The string to be quoted.

parameter_type

Provides a data type hint for drivers that have alternate quoting styles. The default value is PDO::PARAM_STR.

Возвращаемые значения

Returns a quoted string that is theoretically safe to pass into an SQL statement. Returns FALSE if the driver does not support quoting in this way.

Примеры

Пример 1. Quoting a normal string

<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');

/* Simple string */
$string = 'Nice';
print "Unquoted string: $string\n";
print "Quoted string: " . $conn->quote($string) . "\n";
?>

Результат выполнения данного примера:

Unquoted string: Nice
Quoted string: 'Nice'

Пример 2. Quoting a dangerous string

<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');

/* Dangerous string */
$string = 'Naughty \' string';
print "Unquoted string: $string\n";
print "Quoted string:" . $conn->quote($string) . "\n";
?>

Результат выполнения данного примера:

Unquoted string: Naughty ' string
Quoted string: 'Naughty '' string'

Пример 3. Quoting a complex string

<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');

/* Complex string */
$string = "Co'mpl''ex \"st'\"ring";
print "Unquoted string: $string\n";
print "Quoted string: " . $conn->quote($string) . "\n";
?>

Результат выполнения данного примера:

Unquoted string: Co'mpl''ex "st'"ring
Quoted string: 'Co''mpl''''ex "st''"ring'

Смотрите также

PDO::prepare()
PDOStatement::execute()

Пред. | Начало | След.
PDO::query | Уровень выше | PDO::rollBack


PDO::rollBack

(no version information, might be only in CVS)

PDO::rollBack -- Rolls back a transaction

Описание

bool PDO::rollBack ( void )

Rolls back the current transaction, as initiated by PDO::beginTransaction(). It is an error to call this method if no transaction is active.

If the database was set to autocommit mode, this function will restore autocommit mode after it has rolled back the transaction.

Some databases, including MySQL, automatically issue an implicit COMMIT when a database definition language (DDL) statement such as DROP TABLE or CREATE TABLE is issued within a transaction. The implicit COMMIT will prevent you from rolling back any other changes within the transaction boundary.

Примеры

Пример 1. Roll back a transaction

The following example begins a transaction and issues two statements that modify the database before rolling back the changes. On MySQL, however, the DROP TABLE statement automatically commits the transaction so that none of the changes in the transaction are rolled back.

<?php
/* Begin a transaction, turning off autocommit */
$dbh->beginTransaction();

/* Change the database schema and data */
$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
    SET name = 'hamburger'");

/* Recognize mistake and roll back changes */
$dbh->rollBack();

/* Database connection is now back in autocommit mode */
?>

Смотрите также

PDO::beginTransaction()
PDO::commit()

Пред. | Начало | След.
PDO::quote | Уровень выше | PDO::setAttribute


PDO::setAttribute

(no version information, might be only in CVS)

PDO::setAttribute -- Set an attribute

Description

bool PDO::setAttribute ( int attribute, mixed value )

Sets an attribute on the database handle. Some of the available generic attributes are listed below; some drivers may make use of additional driver specific attributes.

  • PDO::ATTR_CASE: Force column names to a specific case.

    • PDO::CASE_LOWER: Force column names to lower case.

    • PDO::CASE_NATURAL: Leave column names as returned by the database driver.

    • PDO::CASE_UPPER: Force column names to upper case.

  • PDO::ATTR_ERRMODE: Error reporting.

    • PDO::ERRMODE_SILENT: Just set error codes.

    • PDO::ERRMODE_WARNING: Raise E_WARNING.

    • PDO::ERRMODE_EXCEPTION: Throw exceptions.

  • PDO::ATTR_ORACLE_NULLS (available with all drivers, not just Oracle): Conversion of NULL and empty strings.

    • PDO::NULL_NATURAL: No conversion.

    • PDO::NULL_EMPTY_STRING: Empty string is converted to NULL.

    • PDO::NULL_TO_STRING: NULL is converted to an empty string.

  • PDO::ATTR_STRINGIFY_FETCHES: Convert numeric values to strings when fetching. Requires bool.

  • PDO::ATTR_STATEMENT_CLASS: Set user-supplied statement class derived from PDOStatement. Cannot be used with persistent PDO instances. Requires array(string classname, array(mixed ctor_args)).

  • PDO::ATTR_AUTOCOMMIT (available in OCI, Firebird and MySQL): Whether to autocommit every single statement.

  • PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (available in MySQL): Use buffered queries.

Пред. | Начало | След.
PDO::rollBack | Уровень выше | PDOStatement::bindColumn


PDOStatement::bindColumn

(no version information, might be only in CVS)

PDOStatement::bindColumn -- Bind a column to a PHP variable

Описание

bool PDOStatement::bindColumn ( mixed column, mixed &param [, int type] )

PDOStatement::bindColumn() arranges to have a particular variable bound to a given column in the result-set from a query. Each call to PDOStatement::fetch() or PDOStatement::fetchAll() will update all the variables that are bound to columns.

Замечание: Since information about the columns is not always available to PDO until the statement is executed, portable applications should call this function after PDO::execute().

Список параметров

column

Number of the column (1-indexed) or name of the column in the result set. If using the column name, be aware that the name should match the case of the column, as returned by the driver.

param

Name of the PHP variable to which the column will be bound.

type

Data type of the parameter, specified by the PDO::PARAM_* constants.

Примеры

Пример 1. Binding result set output to PHP variables

Binding columns in the result set to PHP variables is an effective way to make the data contained in each row immediately available to your application. The following example demonstrates how PDO allows you to bind and retrieve columns with a variety of options and with intelligent defaults.

<?php
function readData($dbh) {
  $sql = 'SELECT name, colour, calories FROM fruit';
  try {
    $stmt = $dbh->prepare($sql);
    $stmt->execute();

    /* Bind by column number */
    $stmt->bindColumn(1, $name);
    $stmt->bindColumn(2, $colour);

    /* Bind by column name */
    $stmt->bindColumn('calories', $cals);

    while ($row = $stmt->fetch(PDO::FETCH_BOUND)) {
      $data = $name . "\t" . $colour . "\t" . $cals . "\n";
      print $data;
    }
  }
  catch (PDOException $e) {
    print $e->getMessage();
  }
}
readData($dbh);
?>

Результат выполнения данного примера:

apple   red     150
banana  yellow  175
kiwi    green   75
orange  orange  150
mango   red     200
strawberry      red     25

Смотрите также

PDOStatement::execute()
PDOStatement::fetch()
PDOStatement::fetchAll()
PDOStatement::fetchColumn()

Пред. | Начало | След.
PDO::setAttribute | Уровень выше | PDOStatement::bindParam


PDOStatement::bindParam

(no version information, might be only in CVS)

PDOStatement::bindParam -- Binds a parameter to the specified variable name

Описание

bool PDOStatement::bindParam ( mixed parameter, mixed &variable [, int data_type [, int length [, mixed driver_options]]] )

Binds a PHP variable to a corresponding named or question mark placeholder in the SQL statement that was use to prepare the statement. Unlike PDOStatement::bindValue(), the variable is bound as a reference and will only be evaluated at the time that PDOStatement::execute() is called.

Most parameters are input parameters, that is, parameters that are used in a read-only fashion to build up the query. Some drivers support the invocation of stored procedures that return data as output parameters, and some also as input/output parameters that both send in data and are updated to receive it.

Список параметров

parameter

Parameter identifier. For a prepared statement using named placeholders, this will be a parameter name of the form :name. For a prepared statement using question mark placeholders, this will be the 1-indexed position of the parameter.

variable

Name of the PHP variable to bind to the SQL statement parameter.

data_type

Explicit data type for the parameter using the PDO::PARAM_* constants. To return an INOUT parameter from a stored procedure, use the bitwise OR operator to set the PDO::PARAM_INPUT_OUTPUT bits for the data_type parameter.

length

Length of the data type. To indicate that a parameter is an OUT parameter from a stored procedure, you must explicitly set the length.

driver_options

Примеры

Пример 1. Execute a prepared statement with named placeholders

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>

Пример 2. Execute a prepared statement with question mark placeholders

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindParam(2, $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>

Пример 3. Call a stored procedure with an INOUT parameter

<?php
/* Call a stored procedure with an INOUT parameter */
$colour = 'red';
$sth = $dbh->prepare('CALL puree_fruit(?)');
$sth->bindParam(1, $colour, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 12);
$sth->execute();
print("After pureeing fruit, the colour is: $colour");
?>

Смотрите также

PDO::prepare()
PDOStatement::execute()
PDOStatement::bindValue()

Пред. | Начало | След.
PDOStatement::bindColumn | Уровень выше | PDOStatement::bindValue


PDOStatement::columnCount

(no version information, might be only in CVS)

PDOStatement::columnCount -- Returns the number of columns in the result set

Описание

int PDOStatement::columnCount ( void )

Use PDOStatement::columnCount() to return the number of columns in the result set represented by the PDOStatement object.

If the PDOStatement object was returned from PDO::query(), the column count is immediately available.

If the PDOStatement object was returned from PDO::prepare(), an accurate column count will not be available until you invoke PDOStatement::execute().

Возвращаемые значения

Returns the number of columns in the result set represented by the PDOStatement object. If there is no result set, PDOStatement::columnCount() returns 0.

Примеры

Пример 1. Counting columns

This example demonstrates how PDOStatement::columnCount() operates with and without a result set.

<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');

$sth = $dbh->prepare("SELECT name, colour FROM fruit");

/* Count the number of columns in the (non-existent) result set */
$colcount = $sth->columnCount();
print("Before execute(), result set has $colcount columns (should be 0)\n");

$sth->execute();

/* Count the number of columns in the result set */
$colcount = $sth->columnCount();
print("After execute(), result set has $colcount columns (should be 2)\n");

?>

Результат выполнения данного примера:

Before execute(), result set has 0 columns (should be 0)
After execute(), result set has 2 columns (should be 2)

Смотрите также

PDO::prepare()
PDOStatement::execute()
PDOStatement::rowCount()

Пред. | Начало | След.
PDOStatement::closeCursor | Уровень выше | PDOStatement::errorCode


PDOStatement::errorCode

(no version information, might be only in CVS)

PDOStatement::errorCode -- Fetch the SQLSTATE associated with the last operation on the statement handle

Описание

string PDOStatement::errorCode ( void )

Возвращаемые значения

Identical to PDO::errorCode(), except that PDOStatement::errorCode() only retrieves error codes for operations performed with PDOStatement objects.

Примеры

Пример 1. Retrieving a SQLSTATE code

<?php
/* Provoke an error -- the BONES table does not exist */
$err = $dbh->prepare('SELECT skull FROM bones');
$err->execute();

echo "\nPDOStatement::errorCode(): ";
print $err->errorCode();
?>

Результат выполнения данного примера:

PDOStatement::errorCode(): 42S02

Смотрите также

PDO::errorCode()
PDO::errorInfo()
PDOStatement::errorInfo()

Пред. | Начало | След.
PDOStatement::columnCount | Уровень выше | PDOStatement::errorInfo


PDOStatement::errorInfo

(no version information, might be only in CVS)

PDOStatement::errorInfo -- Fetch extended error information associated with the last operation on the statement handle

Описание

array PDOStatement::errorInfo ( void )

Возвращаемые значения

PDOStatement::errorInfo() returns an array of error information about the last operation performed by this statement handle. The array consists of the following fields:

Element | Information
0 | SQLSTATE error code (a five-character alphanumeric identifier defined in the ANSI SQL standard).
1 | Driver-specific error code.
2 | Driver-specific error message.

Примеры

Пример 1. Displaying errorInfo() fields for a PDO_ODBC connection to a DB2 database

<?php
/* Provoke an error -- the BONES table does not exist */
$sth = $dbh->prepare('SELECT skull FROM bones');
$sth->execute();

echo "\nPDOStatement::errorInfo():\n";
$arr = $sth->errorInfo();
print_r($arr);
?>

Результат выполнения данного примера:

PDOStatement::errorInfo():
Array
(
    [0] => 42S02
    [1] => -204
    [2] => [IBM][CLI Driver][DB2/LINUX] SQL0204N  "DANIELS.BONES" is an undefined name.  SQLSTATE=42704
)

Смотрите также

PDO::errorCode()
PDO::errorInfo()
PDOStatement::errorCode()

Пред. | Начало | След.
PDOStatement::errorCode | Уровень выше | PDOStatement::execute


PDOStatement::execute

(no version information, might be only in CVS)

PDOStatement::execute -- Executes a prepared statement

Описание

bool PDOStatement::execute ( [array input_parameters] )

Execute the prepared statement. If the prepared statement included parameter markers, you must either:

  • call PDOStatement::bindParam() to bind PHP variables to the parameter markers: bound variables pass their value as input and receive the output value, if any, of their associated parameter markers

  • or pass an array of input-only parameter values

Примеры

Пример 1. Execute a prepared statement with bound variables

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>

Пример 2. Execute a prepared statement with an array of insert values

<?php
/* Execute a prepared statement by passing an array of insert values */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->execute(array(':calories' => $calories, ':colour' => $colour));
?>

Пример 3. Execute a prepared statement with question mark placeholders

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindParam(2, $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>

Смотрите также

PDO::prepare()
PDOStatement::bindParam()
PDOStatement::fetch()
PDOStatement::fetchAll()
PDOStatement::fetchColumn()

Пред. | Начало | След.
PDOStatement::errorInfo | Уровень выше | PDOStatement::fetch


PDOStatement::fetch

(no version information, might be only in CVS)

PDOStatement::fetch -- Fetches the next row from a result set

Описание

mixed PDOStatement::fetch ( [int fetch_style [, int cursor_orientation [, int cursor_offset]]] )

Fetches a row from a result set associated with a PDOStatement object. The fetch_style parameter determines how PDO returns the row.

Список параметров

fetch_style

Controls how the next row will be returned to the caller. This value must be one of the PDO::FETCH_* constants, defaulting to PDO::FETCH_BOTH.

  • PDO::FETCH_ASSOC: returns an array indexed by column name as returned in your result set

  • PDO::FETCH_BOTH (default): returns an array indexed by both column name and 0-indexed column number as returned in your result set

  • PDO::FETCH_BOUND: returns TRUE and assigns the values of the columns in your result set to the PHP variables to which they were bound with the PDOStatement::bindParam() method

  • PDO::FETCH_CLASS: returns a new instance of the requested class, mapping the columns of the result set to named properties in the class

  • PDO::FETCH_INTO: updates an existing instance of the requested class, mapping the columns of the result set to named properties in the class

  • PDO::FETCH_LAZY: combines PDO::FETCH_BOTH and PDO::FETCH_OBJ, creating the object variable names as they are accessed

  • PDO::FETCH_NUM: returns an array indexed by column number as returned in your result set, starting at column 0

  • PDO::FETCH_OBJ: returns an anonymous object with property names that correspond to the column names returned in your result set

cursor_orientation

For a PDOStatement object representing a scrollable cursor, this value determines which row will be returned to the caller. This value must be one of the PDO::FETCH_ORI_* constants, defaulting to PDO::FETCH_ORI_NEXT. To request a scrollable cursor for your PDOStatement object, you must set the PDO::ATTR_CURSOR attribute to PDO::CURSOR_SCROLL when you prepare the SQL statement with PDO::prepare().

offset

For a PDOStatement object representing a scrollable cursor for which the cursor_orientation parameter is set to PDO::FETCH_ORI_ABS, this value specifies the absolute number of the row in the result set that shall be fetched.

For a PDOStatement object representing a scrollable cursor for which the cursor_orientation parameter is set to PDO::FETCH_ORI_REL, this value specifies the row to fetch relative to the cursor position before PDOStatement::fetch() was called.

Примеры

Пример 1. Fetching rows using different fetch styles

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Exercise PDOStatement::fetch styles */
print("PDO::FETCH_ASSOC: ");
print("Return next row as an array indexed by column name\n");
$result = $sth->fetch(PDO::FETCH_ASSOC);
print_r($result);
print("\n");

print("PDO::FETCH_BOTH: ");
print("Return next row as an array indexed by both column name and number\n");
$result = $sth->fetch(PDO::FETCH_BOTH);
print_r($result);
print("\n");

print("PDO::FETCH_LAZY: ");
print("Return next row as an anonymous object with column names as properties\n");
$result = $sth->fetch(PDO::FETCH_LAZY);
print_r($result);
print("\n");

print("PDO::FETCH_OBJ: ");
print("Return next row as an anonymous object with column names as properties\n");
$result = $sth->fetch(PDO::FETCH_OBJ);
print $result->NAME;
print("\n");
?>

Результат выполнения данного примера:

PDO::FETCH_ASSOC: Return next row as an array indexed by column name
Array
(
    [NAME] => apple
    [COLOUR] => red
)

PDO::FETCH_BOTH: Return next row as an array indexed by both column name and number
Array
(
    [NAME] => banana
    [0] => banana
    [COLOUR] => yellow
    [1] => yellow
)

PDO::FETCH_LAZY: Return next row as an anonymous object with column names as properties
PDORow Object
(
    [NAME] => orange
    [COLOUR] => orange
)

PDO::FETCH_OBJ: Return next row as an anonymous object with column names as properties
kiwi

Пример 2. Fetching rows with a scrollable cursor

<?php
function readDataForwards($dbh) {
  $sql = 'SELECT hand, won, bet FROM mynumbers ORDER BY BET';
  try {
    $stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR, PDO::CURSOR_SCROLL));
    $stmt->execute();
    while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT)) {
      $data = $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
      print $data;
    }
    $stmt = null;
  }
  catch (PDOException $e) {
    print $e->getMessage();
  }
}
function readDataBackwards($dbh) {
  $sql = 'SELECT hand, won, bet FROM mynumbers ORDER BY bet';
  try {
    $stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR, PDO::CURSOR_SCROLL));
    $stmt->execute();
    $row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_LAST);
    do {
      $data = $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
      print $data;
    } while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_PRIOR));
    $stmt = null;
  }
  catch (PDOException $e) {
    print $e->getMessage();
  }
}

print "Reading forwards:\n";
readDataForwards($conn);

print "Reading backwards:\n";
readDataBackwards($conn);
?>

Результат выполнения данного примера:

Reading forwards:
21    10    5
16    0     5
19    20    10

Reading backwards:
19    20    10
16    0     5
21    10    5

Смотрите также

PDO::query()
PDOStatement::fetchAll()
PDOStatement::fetchColumn()
PDOStatement::prepare()
PDOStatement::setFetchMode()

Пред. | Начало | След.
PDOStatement::execute | Уровень выше | PDOStatement::fetchAll


PDOStatement::fetchAll

(no version information, might be only in CVS)

PDOStatement::fetchAll -- Returns an array containing all of the result set rows

Описание

array PDOStatement::fetchAll ( [int fetch_style [, int column_index]] )

Список параметров

fetch_style

Controls the contents of the returned array as documented in PDOStatement::fetch(). Defaults to PDO::FETCH_BOTH.

To return an array consisting of all values of a single column from the result set, specify PDO::FETCH_COLUMN. You can specify which column you want with the column-index parameter.

To fetch only the unique values of a single column from the result set, bitwise-OR PDO::FETCH_COLUMN with PDO::FETCH_UNIQUE.

To return an associative array grouped by the values of a specified column, bitwise-OR PDO::FETCH_COLUMN with PDO::FETCH_GROUP.

column_index

Returns the indicated 0-indexed column when the value of fetch_style is PDO::FETCH_COLUMN. Defaults to 0.

Возвращаемые значения

PDOStatement::fetchAll() returns an array containing all of the remaining rows in the result set. The array represents each row as either an array of column values or an object with properties corresponding to each column name.

Using this method to fetch large result sets will result in a heavy demand on system and possibly network resources. Rather than retrieving all of the data and manipulating it in PHP, consider using the database server to manipulate the result sets. For example, use the WHERE and SORT BY clauses in SQL to restrict results before retrieving and processing them with PHP.

Примеры

Пример 1. Fetch all remaining rows in a result set

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Fetch all of the remaining rows in the result set */
print("Fetch all of the remaining rows in the result set:\n");
$result = $sth->fetchAll();
print_r($result);
?>

Результат выполнения данного примера:

Fetch all of the remaining rows in the result set:
Array
(
    [0] => Array
        (
            [NAME] => pear
            [0] => pear
            [COLOUR] => green
            [1] => green
        )

    [1] => Array
        (
            [NAME] => watermelon
            [0] => watermelon
            [COLOUR] => pink
            [1] => pink
        )

)

Пример 2. Fetching all values of a single column from a result set

The following example demonstrates how to return all of the values of a single column from a result set, even though the SQL statement itself may return multiple columns per row.

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Fetch all of the values of the first column */
$result = $sth->fetchAll(PDO::FETCH_COLUMN, 0);
var_dump($result);
?>

Результат выполнения данного примера:

Array(3)
(
    [0] =>
    string(5) => apple
    [1] =>
    string(4) => pear
    [2] =>
    string(10) => watermelon
)

Пример 3. Grouping all values by a single column

The following example demonstrates how to return an associative array grouped by the values of the specified column in the result set. The array contains three keys: values apple and pear are returned as arrays that contain two different colours, while watermelon is returned as an array that contains only one colour.

<?php
$insert = $dbh->prepare("INSERT INTO fruit(name, colour) VALUES (?, ?)");
$insert->execute('apple', 'green');
$insert->execute('pear', 'yellow');

$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Group values by the first column */
var_dump($sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP));
?>

Результат выполнения данного примера:

array(3) {
  ["apple"]=>
  array(2) {
    [0]=>
    string(5) "green"
    [1]=>
    string(3) "red"
  }
  ["pear"]=>
  array(2) {
    [0]=>
    string(5) "green"
    [1]=>
    string(6) "yellow"
  }
  ["watermelon"]=>
  array(1) {
    [0]=>
    string(5) "green"
  }
}

Смотрите также

PDO::query()
PDOStatement::fetch()
PDOStatement::fetchColumn()
PDOStatement::prepare()
PDOStatement::setFetchMode()

Пред. | Начало | След.
PDOStatement::fetch | Уровень выше | PDOStatement::fetchColumn


PDOStatement::getAttribute

(no version information, might be only in CVS)

PDOStatement::getAttribute -- Retrieve a statement attribute

Описание

mixed PDOStatement::getAttribute ( int attribute )

Gets an attribute of the statement. Currently, no generic attributes exist but only driver specific:

  • PDO::ATTR_CURSOR_NAME (Firebird and ODBC specific): Get the name of cursor for UPDATE ... WHERE CURRENT OF.

Смотрите также

PDO::getAttribute()
PDO::setAttribute()
PDOStatement::setAttribute()

Пред. | Начало | След.
PDOStatement::fetchColumn | Уровень выше | PDOStatement::getColumnMeta


PDOStatement::getColumnMeta

(no version information, might be only in CVS)

PDOStatement::getColumnMeta -- Returns metadata for a column in a result set

Описание

mixed PDOStatement::getColumnMeta ( int column )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Retrieves the metadata for a 0-indexed column in a result set as an associative array.

Внимание

Not all PDO drivers support PDOStatement::getColumnMeta().

Список параметров

column

The 0-indexed column in the result set.

Возвращаемые значения

Returns an associative array containing the following values representing the metadata for a single column:

Таблица 1. Column metadata

Name | Value
native_type | The PHP native type used to represent the column value.
driver:decl_type | The SQL type used to represent the column value in the database. If the column in the result set is the result of a function, this value is not returned by PDOStatement::getColumnMeta().
flags | Any flags set for this column.
name | The name of this column as returned by the database.
len | The length of this column. Normally -1 for types other than floating point decimals.
precision | The numeric precision of this column. Normally 0 for types other than floating point decimals.
pdo_type | The type of this column as represented by the PDO::PARAM_* constants.

Returns FALSE if the requested column does not exist in the result set, or if no result set exists.

Примеры

Пример 1. Retrieving column metadata

The following example shows the results of retrieving the metadata for a single column generated by a function (COUNT) in a PDO_SQLITE driver.

<?php
$select = $DB->query('SELECT COUNT(*) FROM fruit');
$meta = $select->getColumnMeta(0);
var_dump($meta);
?>

Результат выполнения данного примера:

array(6) {
  ["native_type"]=>
  string(7) "integer"
  ["flags"]=>
  array(0) {
  }
  ["name"]=>
  string(8) "COUNT(*)"
  ["len"]=>
  int(-1)
  ["precision"]=>
  int(0)
  ["pdo_type"]=>
  int(2)
}

Смотрите также

PDOStatement::columnCount()
PDOStatement::rowCount()

Пред. | Начало | След.
PDOStatement::getAttribute | Уровень выше | PDOStatement::nextRowset


PDOStatement::nextRowset

(no version information, might be only in CVS)

PDOStatement::nextRowset -- Advances to the next rowset in a multi-rowset statement handle

Описание

bool PDOStatement::nextRowset ( void )

Some database servers support stored procedures that return more than one rowset (also known as a result set). PDOStatement::nextRowSet() enables you to access the second and subsequent rowsets associated with a PDOStatement object. Each rowset can have a different set of columns from the preceding rowset.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Fetching multiple rowsets returned from a stored procedure

The following example shows how to call a stored procedure, MULTIPLE_RESULTS, that returns three rowsets. We use a do / while loop to loop over the PDOStatement::nextRowset() method, which returns false and terminates the loop when no more rowsets can be returned.

<?php
$sql = 'CALL multiple_rowsets()';
$stmt = $conn->query($sql);
$i = 1;
do {
    $rowset = $stmt->fetchAll(PDO::FETCH_NUM);
    if ($rowset) {
        printResultSet($rowset, $i);
    }
    $i++;
} while ($stmt->nextRowset());

function printResultSet(&$rowset, $i) {
    print "Result set $i:\n";
    foreach ($rowset as $row) {
        foreach ($row as $col) {
            print $col . "\t";
        }
        print "\n";
    }
    print "\n";
}
?>

Результат выполнения данного примера:

Result set 1:
apple    red
banana   yellow

Result set 2:
orange   orange    150
banana   yellow    175

Result set 3:
lime     green
apple    red
banana   yellow

Смотрите также

PDOStatement::columnCount()
PDOStatement::execute()
PDOStatement::getColumnMeta()
PDOStatement::query()

Пред. | Начало | След.
PDOStatement::getColumnMeta | Уровень выше | PDOStatement::rowCount


PDOStatement::rowCount

(no version information, might be only in CVS)

PDOStatement::rowCount -- Returns the number of rows affected by the last SQL statement

Описание

int PDOStatement::rowCount ( void )

PDOStatement::rowCount() returns the number of rows affected by the last DELETE, INSERT, or UPDATE statement executed by the corresponding PDOStatement object.

If the last SQL statement executed by the associated PDOStatement was a SELECT statement, some databases may return the number of rows returned by that statement. However, this behaviour is not guaranteed for all databases and should not be relied on for portable applications.

Примеры

Пример 1. Return the number of deleted rows

PDOStatement::rowCount() returns the number of rows affected by a DELETE, INSERT, or UPDATE statement.

<?php
/* Delete all rows from the FRUIT table */
$del = $dbh->prepare('DELETE FROM fruit');
$del->execute();

/* Return number of rows that were deleted */
print("Return number of rows that were deleted:\n");
$count = $del->rowCount();
print("Deleted $count rows.\n");
?>

Результат выполнения данного примера:

Deleted 9 rows.

Пример 2. Counting rows returned by a SELECT statement

For most databases, PDOStatement::rowCount() does not return the number of rows affected by a SELECT statement. Instead, use PDO::query() to issue a SELECT COUNT(*) statement with the same predicates as your intended SELECT statement, then use PDOStatement::fetchColumn() to retrieve the number of rows that will be returned. Your application can then perform the correct action.

<?php
$sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100";
if ($res = $conn->query($sql)) {

    /* Check the number of rows that match the SELECT statement */
    if ($res->fetchColumn() > 0) {

        /* Issue the real SELECT statement and work with the results */
         $sql = "SELECT name FROM fruit WHERE calories > 100";
         foreach ($conn->query($sql) as $row) {
             print "Name: " .  $row['NAME'] . "\n";
         }
    }
    /* No rows matched -- do something else */
    else {
        print "No rows matched the query.";
    }
}

$res = null;
$conn = null;
?>

Результат выполнения данного примера:

apple
banana
orange
pear

Смотрите также

PDOStatement::columnCount()
PDOStatement::fetchColumn()
PDOStatement::query()

Пред. | Начало | След.
PDOStatement::nextRowset | Уровень выше | PDOStatement::setAttribute


PDOStatement::setAttribute

(no version information, might be only in CVS)

PDOStatement::setAttribute -- Set a statement attribute

Описание

bool PDOStatement::setAttribute ( int attribute, mixed value )

Sets an attribute on the statement. Currently, no generic attributes are set but only driver specific:

  • PDO::ATTR_CURSOR_NAME (Firebird and ODBC specific): Set the name of cursor for UPDATE ... WHERE CURRENT OF.

Смотрите также

PDO::getAttribute()
PDO::setAttribute()
PDOStatement::getAttribute()

Пред. | Начало | След.
PDOStatement::rowCount | Уровень выше | PDOStatement::setFetchMode


PDOStatement::setFetchMode

(no version information, might be only in CVS)

PDOStatement::setFetchMode -- Set the default fetch mode for this statement

Описание

bool PDOStatement::setFetchMode ( int mode )

Список параметров

mode

The fetch mode must be one of the PDO::FETCH_* constants.

Возвращаемые значения

Returns 1 on success or FALSE on failure.

Примеры

Пример 1. Setting the fetch mode

The following example demonstrates how PDOStatement::setFetchMode() changes the default fetch mode for a PDOStatement object.

<?php
$sql = 'SELECT name, colour, calories FROM fruit';
try {
  $stmt = $dbh->query($sql);
  $result = $stmt->setFetchMode(PDO::FETCH_NUM);
  while ($row = $stmt->fetch()) {
    print $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
  }
}
catch (PDOException $e) {
  print $e->getMessage();
}
?>

Результат выполнения данного примера:

apple   red     150
banana  yellow  250
orange  orange  300
kiwi    brown   75
lemon   yellow  25
pear    green   150
watermelon      pink    90

Пред. | Начало | След.
PDOStatement::setAttribute | Уровень выше | PHP Options&Information


Verisign Payflow Pro Functions

Руководство по PHP
Пред. След.

CLV. Verisign Payflow Pro Functions

Введение

This extension allows you to process credit cards and other financial transactions using Verisign Payment Services, formerly known as Signio (http://www.verisign.com/products-services/payment-processing/online-payment/payflow-pro/index.html).

When using these functions, you may omit calls to pfpro_init() and pfpro_cleanup() as this extension will do so automatically if required. However the functions are still available in case you are processing a number of transactions and require fine control over the library. You may perform any number of transactions using pfpro_process() between the two.

These functions were added in PHP 4.0.2.

Замечание: These functions only provide a link to Verisign Payment Services. Be sure to read the Payflow Pro Developers Guide for full details of the required parameters.

Замечание: This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 5.1.0.

Замечание: Для Windows-платформ это расширение недоступно.

Требования

You will require the appropriate SDK for your platform, which may be downloaded from within the manager interface once you have registered.

Once you have downloaded the SDK you should copy the files from the lib directory of the distribution. Copy the header file pfpro.h to /usr/local/include and the library file libpfpro.so to /usr/local/lib.

Alternatively, you can extract the tarball from Verisign in one location, and reference it during build configuration with the --with-pfpro[=DIR] option:

Пример 1. Explicit Configuration

tar -zxf pfpro_sunsparc.tar.gz -C /usr/local/

./configure --with-pfpro=/usr/local/verisign/payflowpro/sunsparc

Замечание: The last portion of the path specified in the example above, in this case sunsparc, will vary based on which architecture your Verisign SDK was built for.

Установка

These functions are only available if PHP has been compiled with the --with-pfpro[=DIR] option.

Внимание

If you are planing to use this extension along with the OpenSSL extension or with ModSSL, you should compile this extension as shared: --with-pfpro=shared,/usr/local.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Verisign Payflow Pro configuration options

Name | Default | Changeable | Changelog
pfpro.defaulthost/PFPRO_VERSION < 3 | "test.signio.com" | PHP_INI_ALL |
pfpro.defaulthost | "test-payflow.verisign.com" | PHP_INI_ALL | Available since PHP 4.0.2.
pfpro.defaultport | "443" | PHP_INI_ALL | Available since PHP 4.0.2.
pfpro.defaulttimeout | "30" | PHP_INI_ALL | Available since PHP 4.0.2.
pfpro.proxyaddress | "" | PHP_INI_ALL | Available since PHP 4.0.2.
pfpro.proxyport | "" | PHP_INI_ALL | Available since PHP 4.0.2.
pfpro.proxylogon | "" | PHP_INI_ALL | Available since PHP 4.0.2.
pfpro.proxypassword | "" | PHP_INI_ALL | Available since PHP 4.0.2.
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Содержание
pfpro_cleanup -- Shuts down the Payflow Pro library
pfpro_init -- Initialises the Payflow Pro library
pfpro_process_raw -- Process a raw transaction with Payflow Pro
pfpro_process -- Process a transaction with Payflow Pro
pfpro_version -- Returns the version of the Payflow Pro software

Пред. | Начало | След.
var_export | Уровень выше | pfpro_cleanup


pfpro_cleanup

(PHP 4 >= 4.0.2, PHP 5)

pfpro_cleanup -- Shuts down the Payflow Pro library

Description

bool pfpro_cleanup ( void )

pfpro_cleanup() is used to shutdown the Payflow Pro library cleanly. It should be called after you have processed any transactions and before the end of your script. However you may omit this call, in which case this extension will automatically call pfpro_cleanup() after your script terminates.

See also pfpro_init().

Пред. | Начало | След.
Verisign Payflow Pro Functions | Уровень выше | pfpro_init


pfpro_init

(PHP 4 >= 4.0.2, PHP 5)

pfpro_init -- Initialises the Payflow Pro library

Description

bool pfpro_init ( void )

pfpro_init() is used to initialise the Payflow Pro library. You may omit this call, in which case this extension will automatically call pfpro_init() before the first transaction.

See also pfpro_cleanup().

Пред. | Начало | След.
pfpro_cleanup | Уровень выше | pfpro_process_raw


pfpro_process_raw

(PHP 4 >= 4.0.2, PHP 5)

pfpro_process_raw -- Process a raw transaction with Payflow Pro

Description

string pfpro_process_raw ( string parameters [, string address [, int port [, int timeout [, string proxy_address [, int proxy_port [, string proxy_logon [, string proxy_password]]]]]]] )

Returns: A string containing the response.

pfpro_process_raw() processes a raw transaction string with Payflow Pro. You should really use pfpro_process() instead, as the encoding rules of these transactions are non-standard.

The first parameter in this case is a string containing the raw transaction request. All other parameters are the same as with pfpro_process(). The return value is a string containing the raw response.

Замечание: Be sure to read the Payflow Pro Developers Guide for full details of the required parameters and encoding rules. You would be well advised to use pfpro_process() instead.

Пример 1. Payflow Pro raw example

<?php

pfpro_init();

$response = pfpro_process_raw("USER=mylogin&PWD[5]=m&ndy&PARTNER=VeriSign&TRXTYPE=S&TENDER=C&AMT=1.50&ACCT=4111111111111111&EXPDATE=0904");

if (!$response) {
  die("Couldn't establish link to Verisign.\n");
}

echo "Verisign raw response was " . $response;

pfpro_cleanup();

?>

See also pfpro_process().

Пред. | Начало | След.
pfpro_init | Уровень выше | pfpro_process


pfpro_process

(PHP 4 >= 4.0.2, PHP 5)

pfpro_process -- Process a transaction with Payflow Pro

Description

array pfpro_process ( array parameters [, string address [, int port [, int timeout [, string proxy_address [, int proxy_port [, string proxy_logon [, string proxy_password]]]]]]] )

Returns: An associative array containing the response

pfpro_process() processes a transaction with Payflow Pro. The first parameter is an associative array containing keys and values that will be encoded and passed to the processor.

The second parameter is optional and specifies the host to connect to. By default this is "test.signio.com", so you will certainly want to change this to "connect.signio.com" in order to process live transactions.

The third parameter specifies the port to connect on. It defaults to 443, the standard SSL port.

The fourth parameter specifies the timeout to be used, in seconds. This defaults to 30 seconds. Note that this timeout appears to only begin once a link to the processor has been established and so your script could potentially continue for a very long time in the event of DNS or network problems.

The fifth parameter, if required, specifies the hostname of your SSL proxy. The sixth parameter specifies the port to use.

The seventh and eighth parameters specify the logon identity and password to use on the proxy.

The function returns an associative array of the keys and values in the response.

Замечание: Be sure to read the Payflow Pro Developers Guide for full details of the required parameters.

Пример 1. Payflow Pro example

<?php

pfpro_init();

$transaction = array('USER'    => 'mylogin',
                     'PWD'     => 'mypassword',
                     'PARTNER' => 'VeriSign',
                     'TRXTYPE' => 'S',
                     'TENDER'  => 'C',
                     'AMT'     => 1.50,
                     'ACCT'    => '4111111111111111',
                     'EXPDATE' => '0904'
                    );

$response = pfpro_process($transaction);

if (!$response) {
  die("Couldn't establish link to Verisign.\n");
}

echo "Verisign response code was " . $response['RESULT'];
echo ", which means: " . $response['RESPMSG'] . "\n";

echo "\nThe transaction request: ";
print_r($transaction);

echo "\nThe response: ";
print_r($response);

pfpro_cleanup();

?>

Пред. | Начало | След.
pfpro_process_raw | Уровень выше | pfpro_version


pfpro_version

(PHP 4 >= 4.0.2, PHP 5)

pfpro_version -- Returns the version of the Payflow Pro software

Description

string pfpro_version ( void )

pfpro_version() returns the version string of the Payflow Pro library. At the time of writing, this was L211.

Пред. | Начало | След.
pfpro_process | Уровень выше | vpopmail Functions


PostgreSQL Functions

Руководство по PHP
Пред. След.

CXV. PostgreSQL Functions

Введение

PostgreSQL database is Open Source product and available without cost. Postgres, developed originally in the UC Berkeley Computer Science Department, pioneered many of the object-relational concepts now becoming available in some commercial databases. It provides SQL92/SQL99 language support, transactions, referential integrity, stored procedures and type extensibility. PostgreSQL is an open source descendant of this original Berkeley code.

Требования

To use PostgreSQL support, you need PostgreSQL 6.5 or later, PostgreSQL 8.0 or later to enable all PostgreSQL module features. PostgreSQL supports many character encodings including multibyte character encoding. The current version and more information about PostgreSQL is available at http://www.postgresql.org/ and the PostgreSQL Documentation.

Установка

In order to enable PostgreSQL support, --with-pgsql[=DIR] is required when you compile PHP. DIR is the PostgreSQL base install directory, defaults to /usr/local/pgsql. If shared object module is available, PostgreSQL module may be loaded using extension directive in php.ini or dl() function.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. PostgreSQL configuration options

Name | Default | Changeable | Changelog
pgsql.allow_persistent | "1" | PHP_INI_SYSTEM |
pgsql.max_persistent | "-1" | PHP_INI_SYSTEM |
pgsql.max_links | "-1" | PHP_INI_SYSTEM |
pgsql.auto_reset_persistent | "0" | PHP_INI_SYSTEM | Available since PHP 4.2.0.
pgsql.ignore_notice | "0" | PHP_INI_ALL | Available since PHP 4.3.0.
pgsql.log_notice | "0" | PHP_INI_ALL | Available since PHP 4.3.0.
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

pgsql.allow_persistent boolean

Whether to allow persistent Postgres connections.

pgsql.max_persistent integer

The maximum number of persistent Postgres connections per process.

pgsql.max_links integer

The maximum number of Postgres connections per process, including persistent connections.

pgsql.auto_reset_persistent integer

Detect broken persistent links with pg_pconnect(). Needs a little overhead.

pgsql.ignore_notice integer

Whether or not to ignore PostgreSQL backend notices.

pgsql.log_notice integer

Whether or not to log PostgreSQL backends notice messages. The PHP directive pgsql.ignore_notice must be off in order to log notice messages.

Типы ресурсов

There are two resource types used in the PostgreSQL module. The first one is the link identifier for a database connection, the second a resource which holds the result of a query.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

PGSQL_ASSOC (integer)

Passed to pg_fetch_array(). Return an associative array of field names and values.

PGSQL_NUM (integer)

Passed to pg_fetch_array(). Return a numerically indexed array of field numbers and values.

PGSQL_BOTH (integer)

Passed to pg_fetch_array(). Return an array of field values that is both numerically indexed (by field number) and associated (by field name).

PGSQL_CONNECT_FORCE_NEW (integer)

Passed to pg_connect() to force the creation of a new connection, rather then re-using an existing identical connection.

PGSQL_CONNECTION_BAD (integer)

Returned by pg_connection_status() indicating that the database connection is in an invalid state.

PGSQL_CONNECTION_OK (integer)

Returned by pg_connection_status() indicating that the database connection is in a valid state.

PGSQL_SEEK_SET (integer)

Passed to pg_lo_seek(). Seek operation is to begin from the start of the object.

PGSQL_SEEK_CUR (integer)

Passed to pg_lo_seek(). Seek operation is to begin from the current position.

PGSQL_SEEK_END (integer)

Passed to pg_lo_seek(). Seek operation is to begin from the end of the object.

PGSQL_EMPTY_QUERY (integer)

Returned by pg_result_status(). The string sent to the server was empty.

PGSQL_COMMAND_OK (integer)

Returned by pg_result_status(). Successful completion of a command returning no data.

PGSQL_TUPLES_OK (integer)

Returned by pg_result_status(). Successful completion of a command returning data (such as a SELECT or SHOW).

PGSQL_COPY_OUT (integer)

Returned by pg_result_status(). Copy Out (from server) data transfer started.

PGSQL_COPY_IN (integer)

Returned by pg_result_status(). Copy In (to server) data transfer started.

PGSQL_BAD_RESPONSE (integer)

Returned by pg_result_status(). The server's response was not understood.

PGSQL_NONFATAL_ERROR (integer)

Returned by pg_result_status(). A nonfatal error (a notice or warning) occurred.

PGSQL_FATAL_ERROR (integer)

Returned by pg_result_status(). A fatal error occurred.

PGSQL_TRANSACTION_IDLE (integer)

Returned by pg_transaction_status(). Connection is currently idle, not in a transaction.

PGSQL_TRANSACTION_ACTIVE (integer)

Returned by pg_transaction_status(). A command is in progress on the connection. A query has been sent via the connection and not yet completed.

PGSQL_TRANSACTION_INTRANS (integer)

Returned by pg_transaction_status(). The connection is idle, in a transaction block.

PGSQL_TRANSACTION_INERROR (integer)

Returned by pg_transaction_status(). The connection is idle, in a failed transaction block.

PGSQL_TRANSACTION_UNKNOWN (integer)

Returned by pg_transaction_status(). The connection is bad.

PGSQL_DIAG_SEVERITY (integer)

Passed to pg_result_error_field(). The severity; the field contents are ERROR, FATAL, or PANIC (in an error message), or WARNING, NOTICE, DEBUG, INFO, or LOG (in a notice message), or a localized translation of one of these. Always present.

PGSQL_DIAG_SQLSTATE (integer)

Passed to pg_result_error_field(). The SQLSTATE code for the error. The SQLSTATE code identifies the type of error that has occurred; it can be used by front-end applications to perform specific operations (such as error handling) in response to a particular database error. This field is not localizable, and is always present.

PGSQL_DIAG_MESSAGE_PRIMARY (integer)

Passed to pg_result_error_field(). The primary human-readable error message (typically one line). Always present.

PGSQL_DIAG_MESSAGE_DETAIL (integer)

Passed to pg_result_error_field(). Detail: an optional secondary error message carrying more detail about the problem. May run to multiple lines.

PGSQL_DIAG_MESSAGE_HINT (integer)

Passed to pg_result_error_field(). Hint: an optional suggestion what to do about the problem. This is intended to differ from detail in that it offers advice (potentially inappropriate) rather than hard facts. May run to multiple lines.

PGSQL_DIAG_STATEMENT_POSITION (integer)

Passed to pg_result_error_field(). A string containing a decimal integer indicating an error cursor position as an index into the original statement string. The first character has index 1, and positions are measured in characters not bytes.

PGSQL_DIAG_INTERNAL_POSITION (integer)

Passed to pg_result_error_field(). This is defined the same as the PG_DIAG_STATEMENT_POSITION field, but it is used when the cursor position refers to an internally generated command rather than the one submitted by the client. The PG_DIAG_INTERNAL_QUERY field will always appear when this field appears.

PGSQL_DIAG_INTERNAL_QUERY (integer)

Passed to pg_result_error_field(). The text of a failed internally-generated command. This could be, for example, a SQL query issued by a PL/pgSQL function.

PGSQL_DIAG_CONTEXT (integer)

Passed to pg_result_error_field(). An indication of the context in which the error occurred. Presently this includes a call stack traceback of active procedural language functions and internally-generated queries. The trace is one entry per line, most recent first.

PGSQL_DIAG_SOURCE_FILE (integer)

Passed to pg_result_error_field(). The file name of the PostgreSQL source-code location where the error was reported.

PGSQL_DIAG_SOURCE_LINE (integer)

Passed to pg_result_error_field(). The line number of the PostgreSQL source-code location where the error was reported.

PGSQL_DIAG_SOURCE_FUNCTION (integer)

Passed to pg_result_error_field(). The name of the PostgreSQL source-code function reporting the error.

PGSQL_ERRORS_TERSE (integer)

Passed to pg_set_error_verbosity(). Specified that returned messages include severity, primary text, and position only; this will normally fit on a single line.

PGSQL_ERRORS_DEFAULT (integer)

Passed to pg_set_error_verbosity(). The default mode produces messages that include the above plus any detail, hint, or context fields (these may span multiple lines).

PGSQL_ERRORS_VERBOSE (integer)

Passed to pg_set_error_verbosity(). The verbose mode includes all available fields.

PGSQL_STATUS_LONG (integer)

Passed to pg_result_status(). Indicates that numerical result code is desired.

PGSQL_STATUS_STRING (integer)

Passed to pg_result_status(). Indicates that textual result command tag is desired.

PGSQL_CONV_IGNORE_DEFAULT (integer)

Passed to pg_convert(). Ignore default values in the table during conversion.

PGSQL_CONV_FORCE_NULL (integer)

Passed to pg_convert(). Use SQL NULL in place of an empty string.

PGSQL_CONV_IGNORE_DEFAULT (integer)

Passed to pg_convert(). Ignore conversion of NULL into SQL NOT NULL columns.

Примечания

Замечание: Not all functions are supported by all builds. It depends on your libpq (The PostgreSQL C client library) version and how libpq is compiled. If PHP PostgreSQL extensions are missing, then it is because your libpq version does not support them.

Замечание: Most PostgreSQL functions accept connection as the first optional parameter. If it is not provided, the last opened connection is used. If it doesn't exist, functions return FALSE.

Замечание: PostgreSQL automatically folds all identifiers (e.g. table/column names) to lower-case values at object creation time and at query time. To force the use of mixed or upper case identifiers, you must escape the identifier using double quotes ("").

Замечание: PostgreSQL does not have special commands for fetching database schema information (eg. all the tables in the current database). Instead, there is a standard schema named information_schema in PostgreSQL 7.4 and above containing system views with all the necessary information, in an easily queryable form. See the PostgreSQL Documentation for full details.

Примеры

This simple example shows how to connect, execute a query, print resulting rows and disconnect from a PostgreSQL database.

Пример 1. PostgreSQL extension overview example

<?php
// Connecting, selecting database
$dbconn = pg_connect("host=localhost dbname=publishing user=www password=foo")
    or die('Could not connect: ' . pg_last_error());

// Performing SQL query
$query = 'SELECT * FROM authors';
$result = pg_query($query) or die('Query failed: ' . pg_last_error());

// Printing results in HTML
echo "<table>\n";
while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) {
    echo "\t<tr>\n";
    foreach ($line as $col_value) {
        echo "\t\t<td>$col_value</td>\n";
    }
    echo "\t</tr>\n";
}
echo "</table>\n";

// Free resultset
pg_free_result($result);

// Closing connection
pg_close($dbconn);
?>

Содержание
pg_affected_rows -- Returns number of affected records (tuples)
pg_cancel_query -- Cancel an asynchronous query
pg_client_encoding -- Gets the client encoding
pg_close -- Closes a PostgreSQL connection
pg_connect -- Open a PostgreSQL connection
pg_connection_busy -- Get connection is busy or not
pg_connection_reset -- Reset connection (reconnect)
pg_connection_status -- Get connection status
pg_convert -- Convert associative array values into suitable for SQL statement
pg_copy_from -- Insert records into a table from an array
pg_copy_to -- Copy a table to an array
pg_dbname -- Get the database name
pg_delete -- Deletes records
pg_end_copy -- Sync with PostgreSQL backend
pg_escape_bytea -- Escape a string for insertion into a bytea field
pg_escape_string -- Escape a string for insertion into a text field
pg_execute -- Sends a request to execute a prepared statement with given parameters, and waits for the result.
pg_fetch_all_columns -- Fetches all rows in a particular result column as an array
pg_fetch_all -- Fetches all rows from a result as an array
pg_fetch_array -- Fetch a row as an array
pg_fetch_assoc -- Fetch a row as an associative array
pg_fetch_object -- Fetch a row as an object
pg_fetch_result -- Returns values from a result resource
pg_fetch_row -- Get a row as an enumerated array
pg_field_is_null -- Test if a field is SQL NULL
pg_field_name -- Returns the name of a field
pg_field_num -- Returns the field number of the named field
pg_field_prtlen -- Returns the printed length
pg_field_size -- Returns the internal storage size of the named field
pg_field_type_oid -- Returns the type ID (OID) for the corresponding field number
pg_field_type -- Returns the type name for the corresponding field number
pg_free_result -- Free result memory
pg_get_notify -- Gets SQL NOTIFY message
pg_get_pid -- Gets the backend's process ID
pg_get_result -- Get asynchronous query result
pg_host -- Returns the host name associated with the connection
pg_insert -- Insert array into table
pg_last_error -- Get the last error message string of a connection
pg_last_notice -- Returns the last notice message from PostgreSQL server
pg_last_oid -- Returns the last row's OID
pg_lo_close -- Close a large object
pg_lo_create -- Create a large object
pg_lo_export -- Export a large object to file
pg_lo_import -- Import a large object from file
pg_lo_open -- Open a large object
pg_lo_read_all -- Reads an entire large object and send straight to browser
pg_lo_read -- Read a large object
pg_lo_seek -- Seeks position within a large object
pg_lo_tell -- Returns current seek position a of large object
pg_lo_unlink -- Delete a large object
pg_lo_write -- Write to a large object
pg_meta_data -- Get meta data for table
pg_num_fields -- Returns the number of fields in a result
pg_num_rows -- Returns the number of rows in a result
pg_options -- Get the options associated with the connection
pg_parameter_status -- Looks up a current parameter setting of the server.
pg_pconnect -- Open a persistent PostgreSQL connection
pg_ping -- Ping database connection
pg_port -- Return the port number associated with the connection
pg_prepare -- Submits a request to create a prepared statement with the given parameters, and waits for completion.
pg_put_line -- Send a NULL-terminated string to PostgreSQL backend
pg_query_params -- Submits a command to the server and waits for the result, with the ability to pass parameters separately from the SQL command text.
pg_query -- Execute a query
pg_result_error_field -- Returns an individual field of an error report.
pg_result_error -- Get error message associated with result
pg_result_seek -- Set internal row offset in result resource
pg_result_status -- Get status of query result
pg_select -- Select records
pg_send_execute -- Sends a request to execute a prepared statement with given parameters, without waiting for the result(s).
pg_send_prepare -- Sends a request to create a prepared statement with the given parameters, without waiting for completion.
pg_send_query_params -- Submits a command and separate parameters to the server without waiting for the result(s).
pg_send_query -- Sends asynchronous query
pg_set_client_encoding -- Set the client encoding
pg_set_error_verbosity -- Determines the verbosity of messages returned by pg_last_error() and pg_result_error().
pg_trace -- Enable tracing a PostgreSQL connection
pg_transaction_status -- Returns the current in-transaction status of the server.
pg_tty -- Return the TTY name associated with the connection
pg_unescape_bytea -- Unescape binary for bytea type
pg_untrace -- Disable tracing of a PostgreSQL connection
pg_update -- Update table
pg_version -- Returns an array with client, protocol and server version (when available)

Пред. | Начало | След.
sql_regcase | Уровень выше | pg_affected_rows


pg_affected_rows

(PHP 4 >= 4.2.0, PHP 5)

pg_affected_rows -- Returns number of affected records (tuples)

Описание

int pg_affected_rows ( resource result )

pg_affected_rows() returns the number of tuples (instances/records/rows) affected by INSERT, UPDATE, and DELETE queries.

Замечание: This function used to be called pg_cmdtuples().

Список параметров

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

Возвращаемые значения

The number of rows affected by the query. If no tuple is affected, it will return 0.

Примеры

Пример 1. pg_affected_rows() example

<?php
$result = pg_query($conn, "INSERT INTO authors VALUES ('Orwell', 2002, 'Animal Farm')");

$cmdtuples = pg_affected_rows($result);

echo $cmdtuples . " tuples are affected.\n";
?>

Результат выполнения данного примера:

1 tuples are affected.

Смотрите также

pg_query()
pg_query_params()
pg_execute()
pg_num_rows()

Пред. | Начало | След.
PostgreSQL Functions | Уровень выше | pg_cancel_query


pg_cancel_query

(PHP 4 >= 4.2.0, PHP 5)

pg_cancel_query -- Cancel an asynchronous query

Описание

bool pg_cancel_query ( resource connection )

pg_cancel_query() cancels an asynchronous query sent with pg_send_query(), pg_send_query_params() or pg_send_execute(). You cannot cancel a query executed using pg_query().

Список параметров

connection

PostgreSQL database connection resource.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. pg_cancel_query() example

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from authors; select count(*) from authors;");
  }

  $res1 = pg_get_result($dbconn);
  echo "First call to pg_get_result(): $res1\n";
  $rows1 = pg_num_rows($res1);
  echo "$res1 has $rows1 records\n\n";

  // Cancel the currently running query.  Will be the second query if it is
  // still running.
  pg_cancel_query($dbconn);
?>

Результат выполнения данного примера:

First call to pg_get_result(): Resource id #3
Resource id #3 has 3 records

Смотрите также

pg_send_query()
pg_connection_busy()

Пред. | Начало | След.
pg_affected_rows | Уровень выше | pg_client_encoding


pg_client_encoding

(PHP 3 CVS only, PHP 4 >= 4.0.3, PHP 5)

pg_client_encoding -- Gets the client encoding

Описание

string pg_client_encoding ( [resource connection] )

PostgreSQL supports automatic character set conversion between server and client for certain character sets. pg_client_encoding() returns the client encoding as a string. The returned string will be one of the standard PostgreSQL encoding identifiers.

Замечание: This function requires PHP 4.0.3 or higher and PostgreSQL 7.0 or higher. If libpq is compiled without multibyte encoding support, pg_client_encoding() always returns SQL_ASCII. Supported encoding depends on PostgreSQL version. Refer to the PostgreSQL Documentation supported encodings.

The function used to be called pg_clientencoding().

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

Возвращаемые значения

The client encoding, or FALSE on error.

Примеры

Пример 1. pg_client_encoding() example

<?php
// Assume $conn is a connection to a ISO-8859-1 database
$encoding = pg_client_encoding($conn);

echo "Client encoding is: ", $encoding, "\n";
?>

Результат выполнения данного примера:

Client encoding is: ISO-8859-1

Смотрите также

pg_set_client_encoding()

Пред. | Начало | След.
pg_cancel_query | Уровень выше | pg_close


pg_close

(PHP 3, PHP 4, PHP 5)

pg_close -- Closes a PostgreSQL connection

Описание

bool pg_close ( [resource connection] )

pg_close() closes the non-persistent connection to a PostgreSQL database associated with the given connection resource.

Замечание: Using pg_close() is not usually necessary, as non-persistent open connections are automatically closed at the end of the script.

If there is open large object resource on the connection, do not close the connection before closing all large object resources.

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. pg_close() example

<?php
$dbconn = pg_connect("host=localhost port=5432 dbname=mary")
   or die("Could not connect");
echo "Connected successfully";
pg_close($dbconn);
?>

Результат выполнения данного примера:

Connected successfully

Смотрите также

pg_connect()

Пред. | Начало | След.
pg_client_encoding | Уровень выше | pg_connect


pg_connect

(PHP 3, PHP 4, PHP 5)

pg_connect -- Open a PostgreSQL connection

Описание

resource pg_connect ( string connection_string [, int connect_type] )

pg_connect() opens a connection to a PostgreSQL database specified by the connection_string.

If a second call is made to pg_connect() with the same connection_string as an existing connection, the existing connection will be returned unless you pass PGSQL_CONNECT_FORCE_NEW as connect_type.

The old syntax with multiple parameters $conn = pg_connect("host", "port", "options", "tty", "dbname") has been deprecated.

Список параметров

connection_string

The connection_string can be empty to use all default parameters, or it can contain one or more parameter settings separated by whitespace. Each parameter setting is in the form keyword = value. Spaces around the equal sign are optional. To write an empty value or a value containing spaces, surround it with single quotes, e.g., keyword = 'a value'. Single quotes and backslashes within the value must be escaped with a backslash, i.e., \' and \\.

The currently recognized parameter keywords are: host, hostaddr, port, dbname, user, password, connect_timeout, options, tty (ignored), sslmode, requiressl (deprecated in favor of sslmode), and service. Which of these arguments exist depends on your PostgreSQL version.

connect_type

If PGSQL_CONNECT_FORCE_NEW is passed, then a new connection is created, even if the connection_string is identical to an existing connection.

Возвращаемые значения

PostgreSQL connection resource on success, FALSE on failure.

Примеры

Пример 1. Using pg_connect()

<?php
$dbconn = pg_connect("dbname=mary");
//connect to a database named "mary"

$dbconn2 = pg_connect("host=localhost port=5432 dbname=mary");
// connect to a database named "mary" on "localhost" at port "5432"

$dbconn3 = pg_connect("host=sheep port=5432 dbname=mary user=lamb password=foo");
//connect to a database named "mary" on the host "sheep" with a username and password

$conn_string = "host=sheep port=5432 dbname=test user=lamb password=bar";
$dbconn4 = pg_connect($conn_string);
//connect to a database named "test" on the host "sheep" with a username and password
?>

Смотрите также

pg_pconnect()
pg_close()
pg_host()
pg_port()
pg_tty()
pg_options()
pg_dbname()

Пред. | Начало | След.
pg_close | Уровень выше | pg_connection_busy


pg_connection_busy

(PHP 4 >= 4.2.0, PHP 5)

pg_connection_busy -- Get connection is busy or not

Описание

bool pg_connection_busy ( resource connection )

pg_connection_busy() determines whether or not a connection is busy. If it is busy, a previous query is still executing. If pg_get_result() is used on the connection, it will be blocked.

Список параметров

connection

PostgreSQL database connection resource.

Возвращаемые значения

Returns TRUE if the connection is busy, FALSE otherwise.

Примеры

Пример 1. pg_connection_busy() example

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
  $bs = pg_connection_busy($dbconn);
  if ($bs) {
      echo 'connection is busy';
  } else {
     echo 'connection is not busy';
  }
?>

Смотрите также

pg_connection_status()
pg_get_result()

Пред. | Начало | След.
pg_connect | Уровень выше | pg_connection_reset


pg_connection_reset

(PHP 4 >= 4.2.0, PHP 5)

pg_connection_reset -- Reset connection (reconnect)

Описание

bool pg_connection_reset ( resource connection )

pg_connection_reset() resets the connection. It is useful for error recovery.

Список параметров

connection

PostgreSQL database connection resource.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. pg_connection_reset() example

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
  $dbconn2 = pg_connection_reset($dbconn);
  if ($dbconn2) {
      echo "reset successful\n";
  } else {
      echo "reset failed\n";
  }
?>

Смотрите также

pg_connect()
pg_pconnect()
pg_connection_status()

Пред. | Начало | След.
pg_connection_busy | Уровень выше | pg_connection_status


pg_connection_status

(PHP 4 >= 4.2.0, PHP 5)

pg_connection_status -- Get connection status

Описание

int pg_connection_status ( resource connection )

pg_connection_status() returns the status of the specified connection.

Список параметров

connection

PostgreSQL database connection resource.

Возвращаемые значения

PGSQL_CONNECTION_OK or PGSQL_CONNECTION_BAD.

Примеры

Пример 1. pg_connection_status() example

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
  $stat = pg_connection_status($dbconn);
  if ($stat === PGSQL_CONNECTION_OK) {
      echo 'Connection status ok';
  } else {
      echo 'Connection status bad';
  }
?>

Смотрите также

pg_connection_busy()

Пред. | Начало | След.
pg_connection_reset | Уровень выше | pg_convert


pg_convert

(PHP 4 >= 4.3.0, PHP 5)

pg_convert -- Convert associative array values into suitable for SQL statement

Описание

array pg_convert ( resource connection, string table_name, array assoc_array [, int options] )

pg_convert() checks and converts the values in assoc_array into suitable values for use in a SQL statement. Precondition for pg_convert() is the existence of a table table_name which has at least as many columns as assoc_array has elements. The fieldnames in table_name must match the indices in assoc_array and the corresponding datatypes must be compatible. Returns an array with the converted values on success, FALSE otherwise.

Замечание: If there are boolean fields in table_name don't use the constant TRUE in assoc_array. It will be converted to the string 'TRUE' which is no valid entry for boolean fields in PostgreSQL. Use one of t, true, 1, y, yes instead.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

connection

PostgreSQL database connection resource.

table_name

Name of the table against which to convert types.

assoc_array

Data to be converted.

options

Any number of PGSQL_CONV_IGNORE_DEFAULT, PGSQL_CONV_FORCE_NULL or PGSQL_CONV_IGNORE_NOT_NULL, combined.

Возвращаемые значения

An array of converted values, or FALSE on error.

Примеры

Пример 1. pg_convert() example

<?php
  $dbconn = pg_connect('dbname=foo');

  $tmp = array(
      'author' => 'Joe Thackery',
      'year' => 2005,
      'title' => 'My Life, by Joe Thackery'
  );

  $vals = pg_convert($dbconn, 'authors', $tmp);
?>

Смотрите также

pg_meta_data()

Пред. | Начало | След.
pg_connection_status | Уровень выше | pg_copy_from


pg_copy_from

(PHP 4 >= 4.2.0, PHP 5)

pg_copy_from -- Insert records into a table from an array

Описание

bool pg_copy_from ( resource connection, string table_name, array rows [, string delimiter [, string null_as]] )

pg_copy_from() inserts records into a table from rows. It issues a COPY FROM SQL command internally to insert records.

Список параметров

connection

PostgreSQL database connection resource.

table_name

Name of the table into which to copy the rows.

rows

An array of data to be copied into table_name. Each value in rows becomes a row in table_name. Each value in rows should be a delimited string of the values to insert into each field. Values should be linefeed terminated.

delimiter

The token that separates values for each field in each element of rows. Default is TAB.

null_as

How SQL NULL values are represented in the rows. Default is \N ("\\N").

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. pg_copy_from() example

<?php
   $db = pg_connect("dbname=publisher") or die("Could not connect");

   $rows = pg_copy_to($db, $table_name);

   pg_query($db, "DELETE FROM $table_name");

   pg_copy_from($db, $table_name, $rows);
?>

Смотрите также

pg_copy_to()

Пред. | Начало | След.
pg_convert | Уровень выше | pg_copy_to


pg_copy_to

(PHP 4 >= 4.2.0, PHP 5)

pg_copy_to -- Copy a table to an array

Описание

array pg_copy_to ( resource connection, string table_name [, string delimiter [, string null_as]] )

pg_copy_to() copies a table to an array. It issues COPY TO SQL command internally to retrieve records.

Список параметров

connection

PostgreSQL database connection resource.

table_name

Name of the table from which to copy the data into rows.

delimiter

The token that separates values for each field in each element of rows. Default is TAB.

null_as

How SQL NULL values are represented in the rows. Default is \N ("\\N").

Возвращаемые значения

An array with one element for each line of COPY data. It returns FALSE on failure.

Примеры

Пример 1. pg_copy_to() example

<?php
   $db = pg_connect("dbname=publisher") or die("Could not connect");

   $rows = pg_copy_to($db, $table_name);

   pg_query($db, "DELETE FROM $table_name");

   pg_copy_from($db, $table_name, $rows);
?>

Смотрите также

pg_copy_from()

Пред. | Начало | След.
pg_copy_from | Уровень выше | pg_dbname


pg_dbname

(PHP 3, PHP 4, PHP 5)

pg_dbname -- Get the database name

Описание

string pg_dbname ( [resource connection] )

pg_dbname() returns the name of the database that the given PostgreSQL connection resource.

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

Возвращаемые значения

A string containing the name of the database the connection is to, or FALSE on error.

Примеры

Пример 1. pg_dbname() example

<?php
  error_reporting(E_ALL);

  pg_connect("host=localhost port=5432 dbname=mary");
  echo pg_dbname(); // mary
?>

Пред. | Начало | След.
pg_copy_to | Уровень выше | pg_delete


pg_delete

(PHP 4 >= 4.3.0, PHP 5)

pg_delete -- Deletes records

Описание

mixed pg_delete ( resource connection, string table_name, array assoc_array [, int options] )

pg_delete() deletes records from a table specified by the keys and values in assoc_array. If options is specified, pg_convert() is applied to assoc_array with the specified options.

Список параметров

connection

PostgreSQL database connection resource.

table_name

Name of the table from which to delete rows.

assoc_array

An array whose keys are field names in the table table_name, and whose values are the values of those fields that are to be deleted.

options

Any number of PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_EXEC or PGSQL_DML_STRING combined. If PGSQL_DML_STRING is part of the options then query string is returned.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Returns string if PGSQL_DML_STRING is passed via options.

Примеры

Пример 1. pg_delete() example

<?php
  $db = pg_connect('dbname=foo');
  // This is safe, since $_POST is converted automatically
  $res = pg_delete($db, 'post_log', $_POST);
  if ($res) {
      echo "POST data is deleted: $res\n";
  } else {
      echo "User must have sent wrong inputs\n";
  }
?>

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

pg_convert()

Пред. | Начало | След.
pg_dbname | Уровень выше | pg_end_copy


pg_end_copy

(PHP 4 >= 4.0.3, PHP 5)

pg_end_copy -- Sync with PostgreSQL backend

Описание

bool pg_end_copy ( [resource connection] )

pg_end_copy() syncs the PostgreSQL frontend (usually a web server process) with the PostgreSQL server after doing a copy operation performed by pg_put_line(). pg_end_copy() must be issued, otherwise the PostgreSQL server may get out of sync with the frontend and will report an error.

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. pg_end_copy() example

<?php
  $conn = pg_pconnect("dbname=foo");
  pg_query($conn, "create table bar (a int4, b char(16), d float8)");
  pg_query($conn, "copy bar from stdin");
  pg_put_line($conn, "3\thello world\t4.5\n");
  pg_put_line($conn, "4\tgoodbye world\t7.11\n");
  pg_put_line($conn, "\\.\n");
  pg_end_copy($conn);
?>

Смотрите также

pg_put_line()

Пред. | Начало | След.
pg_delete | Уровень выше | pg_escape_bytea


pg_escape_bytea

(PHP 4 >= 4.2.0, PHP 5)

pg_escape_bytea -- Escape a string for insertion into a bytea field

Описание

string pg_escape_bytea ( string data )

pg_escape_bytea() escapes string for bytea datatype. It returns escaped string.

Замечание: When you SELECT a bytea type, PostgreSQL returns octal byte values prefixed with '\' (e.g. \032). Users are supposed to convert back to binary format manually.

This function requires PostgreSQL 7.2 or later. With PostgreSQL 7.2.0 and 7.2.1, bytea values must be cast when you enable multi-byte support. i.e. INSERT INTO test_table (image) VALUES ('$image_escaped'::bytea); PostgreSQL 7.2.2 or later does not need a cast. The exception is when the client and backend character encoding does not match, and there may be multi-byte stream error. User must then cast to bytea to avoid this error.

Список параметров

data

A string containing text or binary data to be inserted into a bytea column.

Возвращаемые значения

A string containing the escaped data.

Примеры

Пример 1. pg_escape_bytea() example

<?php
  // Connect to the database
  $dbconn = pg_connect('dbname=foo');

  // Read in a binary file
  $data = file_get_contents('image1.jpg');

  // Escape the binary data
  $escaped = pg_escape_bytea($data);

  // Insert it into the database
  pg_query("INSERT INTO gallery (name, data) VALUES ('Pine trees', '{$escaped}')";
?>

Смотрите также

pg_unescape_bytea()
pg_escape_string()

Пред. | Начало | След.
pg_end_copy | Уровень выше | pg_escape_string


pg_escape_string

(PHP 4 >= 4.2.0, PHP 5)

pg_escape_string -- Escape a string for insertion into a text field

Описание

string pg_escape_string ( string data )

pg_escape_string() escapes a string for insertion into the database. It returns an escaped string in the PostgreSQL format. Use of this function is recommended instead of addslashes(). If the type of the column is bytea, pg_escape_bytea() must be used instead.

Замечание: This function requires PostgreSQL 7.2 or later.

Список параметров

data

A string containing text to be escaped.

Возвращаемые значения

A string containing the escaped data.

Примеры

Пример 1. pg_escape_string() example

<?php
  // Connect to the database
  $dbconn = pg_connect('dbname=foo');

  // Read in a text file (containing apostrophes and backslashes)
  $data = file_get_contents('letter.txt');

  // Escape the text data
  $escaped = pg_escape_string($data);

  // Insert it into the database
  pg_query("INSERT INTO correspondence (name, data) VALUES ('My letter', '{$escaped}')";
?>

Смотрите также

pg_escape_bytea()

Пред. | Начало | След.
pg_escape_bytea | Уровень выше | pg_execute


pg_execute

(PHP 5 >= 5.1.0RC1)

pg_execute -- Sends a request to execute a prepared statement with given parameters, and waits for the result.

Описание

resource pg_execute ( resource connection, string stmtname, array params )

resource pg_execute ( string stmtname, array params )

Sends a request to execute a prepared statement with given parameters, and waits for the result.

pg_execute() is like pg_query_params(), but the command to be executed is specified by naming a previously-prepared statement, instead of giving a query string. This feature allows commands that will be used repeatedly to be parsed and planned just once, rather than each time they are executed. The statement must have been prepared previously in the current session. pg_execute() is supported only against PostgreSQL 7.4 or higher connections; it will fail when using earlier versions.

The parameters are identical to pg_query_params(), except that the name of a prepared statement is given instead of a query string.

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

stmtname

The name of the prepared statement to execute. if "" is specified, then the unnamed statement is executed. The name must have been previously prepared using pg_prepare(), pg_send_prepare() or a PREPARE SQL command.

params

An array of parameter values to substitute for the $1, $2, etc. placeholders in the original prepared query string. The number of elements in the array must match the number of placeholders.

Возвращаемые значения

A query result resource on success, or FALSE on failure.

Примеры

Пример 1. Using pg_execute()

<?php
// Connect to a database named "mary"
$dbconn = pg_connect("dbname=mary");

// Prepare a query for execution
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');

// Execute the prepared query.  Note that it is not necessary to escape
// the string "Joe's Widgets" in any way
$result = pg_execute($dbconn, "my_query", array("Joe's Widgets"));

// Execute the same prepared query, this time with a different parameter
$result = pg_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));

?>

Смотрите также

pg_prepare()
pg_send_prepare()
pg_query_params()

Пред. | Начало | След.
pg_escape_string | Уровень выше | pg_fetch_all_columns


pg_fetch_all

(PHP 4 >= 4.3.0, PHP 5)

pg_fetch_all -- Fetches all rows from a result as an array

Описание

array pg_fetch_all ( resource result )

pg_fetch_all() returns an array that contains all rows (records) in the result resource.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Список параметров

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

Возвращаемые значения

An array with all rows in the result. Each row is an array of field values indexed by field name.

FALSE is returned if there are no rows in the result, or on any other error.

Примеры

Пример 1. PostgreSQL fetch all

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "An error occured.\n";
  exit;
}

$result = pg_query($conn, "SELECT * FROM authors");
if (!$result) {
  echo "An error occured.\n";
  exit;
}

$arr = pg_fetch_all($result);

var_dump($arr);

?>

Смотрите также

pg_fetch_row()
pg_fetch_array()
pg_fetch_object()
pg_fetch_result()

Пред. | Начало | След.
pg_fetch_all_columns | Уровень выше | pg_fetch_array


pg_fetch_array

(PHP 3 >= 3.0.1, PHP 4, PHP 5)

pg_fetch_array -- Fetch a row as an array

Описание

array pg_fetch_array ( resource result [, int row [, int result_type]] )

pg_fetch_array() returns an array that corresponds to the fetched row (record).

pg_fetch_array() is an extended version of pg_fetch_row(). In addition to storing the data in the numeric indices (field number) to the result array, it can also store the data using associative indices (field name). It stores both indicies by default.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

pg_fetch_array() is NOT significantly slower than using pg_fetch_row(), and is significantly easier to use.

Замечание: row became optional in PHP 4.1.0.

Замечание: result_type was added in PHP 4.0.0.

Список параметров

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

row

Row number in result to fetch. Rows are numbered from 0 upwards. If omitted, next row is fetched.

result_type

An optional parameter that controls how the returned array is indexed. result_type is a constant and can take the following values: PGSQL_ASSOC, PGSQL_NUM and PGSQL_BOTH. Using PGSQL_NUM, pg_fetch_array() will return an array with numerical indices, using PGSQL_ASSOC it will return only associative indices while PGSQL_BOTH, the default, will return both numerical and associative indices.

Возвращаемые значения

An array indexed numerically (beginning with 0) or associatively (indexed by field name), or both. Each value in the array is represented as a string. Database NULL values are returned as NULL.

FALSE is returned if row exceeds the number of rows in the set, there are no more rows, or on any other error.

Примеры

Пример 1. pg_fetch_array() example

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "An error occured.\n";
  exit;
}

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
  echo "An error occured.\n";
  exit;
}

$arr = pg_fetch_array($result, 0, PGSQL_NUM);
echo $arr[0] . " <- Row 1 Author\n";
echo $arr[1] . " <- Row 1 E-mail\n";

// As of PHP 4.1.0, the row parameter is optional; NULL can be passed instead,
// to pass a result_type.  Successive calls to pg_fetch_array will return the
// next row.
$arr = pg_fetch_array($result, NULL, PGSQL_ASSOC);
echo $arr["author"] . " <- Row 2 Author\n";
echo $arr["email"] . " <- Row 2 E-mail\n";

$arr = pg_fetch_array($result);
echo $arr["author"] . " <- Row 3 Author\n";
echo $arr[1] . " <- Row 3 E-mail\n";

?>

Смотрите также

pg_fetch_row()
pg_fetch_object()
pg_fetch_result()

Пред. | Начало | След.
pg_fetch_all | Уровень выше | pg_fetch_assoc


pg_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

pg_fetch_assoc -- Fetch a row as an associative array

Описание

array pg_fetch_assoc ( resource result [, int row] )

pg_fetch_assoc() returns an associative array that corresponds to the fetched row (records).

pg_fetch_assoc() is equivalent to calling pg_fetch_array() with PGSQL_ASSOC as the optional third parameter. It only returns an associative array. If you need the numeric indices, use pg_fetch_row().

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

pg_fetch_assoc() is NOT significantly slower than using pg_fetch_row(), and is significantly easier to use.

Замечание: row became optional in PHP 4.1.0.

Список параметров

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

row

Row number in result to fetch. Rows are numbered from 0 upwards. If omitted, next row is fetched.

Возвращаемые значения

An array indexed associatively (by field name). Each value in the array is represented as a string. Database NULL values are returned as NULL.

FALSE is returned if row exceeds the number of rows in the set, there are no more rows, or on any other error.

Примеры

Пример 1. pg_fetch_assoc() example

<?php
$conn = pg_connect("dbname=publisher");
if (!$conn) {
  echo "An error occured.\n";
  exit;
}

$result = pg_query($conn, "SELECT id, author, email FROM authors");
if (!$result) {
  echo "An error occured.\n";
  exit;
}

while ($row = pg_fetch_assoc($result)) {
  echo $row['id'];
  echo $row['author'];
  echo $row['email'];
}
?>

Смотрите также

pg_fetch_row()
pg_fetch_array()
pg_fetch_object()
pg_fetch_result()

Пред. | Начало | След.
pg_fetch_array | Уровень выше | pg_fetch_object


pg_fetch_object

(PHP 3 >= 3.0.1, PHP 4, PHP 5)

pg_fetch_object -- Fetch a row as an object

Описание

object pg_fetch_object ( resource result [, int row [, int result_type]] )

object pg_fetch_object ( resource result [, int row [, string class_name [, array params]]] )

pg_fetch_object() returns an object with properties that correspond to the fetched row's field names. It can optionally instantiate an object of a specific class, and pass parameters to that class's constructor.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Speed-wise, the function is identical to pg_fetch_array(), and almost as fast as pg_fetch_row() (the difference is insignificant).

Замечание: row became optional in PHP 4.1.0.

Замечание: result_type default changed from PGSQL_BOTH to PGSQL_ASSOC from PHP 4.3.0, since the numeric index was illegal.

Замечание: class_name and params were added in PHP 5.0. The old form with result_type still exists for backwards compatibility.

Список параметров

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

row

Row number in result to fetch. Rows are numbered from 0 upwards. If omitted, next row is fetched.

result_type

Ignored and deprecated. Defaults to PGSQL_ASSOC.

class_name

The name of the class to instantiate, set the properties of and return. If not specified, an stdClass object is returned.

params

An optional array of parameters to pass to the constructor for class_name objects.

Возвращаемые значения

An object with one attribute for each field name in the result. Database NULL values are returned as NULL.

FALSE is returned if row exceeds the number of rows in the set, there are no more rows, or on any other error.

Примеры

Пример 1. pg_fetch_object() example

<?php

$database = "store";

$db_conn = pg_connect("host=localhost port=5432 dbname=$database");
if (!$db_conn) {
  echo "Failed connecting to postgres database $database\n";
  exit;
}

$qu = pg_query($db_conn, "SELECT * FROM books ORDER BY author");

while ($data = pg_fetch_object($qu)) {
  echo $data->author . " (";
  echo $data->year . "): ";
  echo $data->title . "<br />";
}

pg_free_result($qu);
pg_close($db_conn);

?>

Смотрите также

pg_query()
pg_fetch_array()
pg_fetch_assoc()
pg_fetch_row()
pg_fetch_result()

Пред. | Начало | След.
pg_fetch_assoc | Уровень выше | pg_fetch_result


pg_fetch_result

(PHP 4 >= 4.2.0, PHP 5)

pg_fetch_result -- Returns values from a result resource

Описание

string pg_fetch_result ( resource result, int row, mixed field )

string pg_fetch_result ( resource result, mixed field )

pg_fetch_result() returns the value of a particular row and field (column) in a PostgreSQL result resource.

Список параметров

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

row

Row number in result to fetch. Rows are numbered from 0 upwards. If omitted, next row is fetched.

field

A string representing the name of the field (column) to fetch, otherwise and int representing the field number to fetch. Fields are numbered from 0 upwards.

Возвращаемые значения

Boolean is returned as "t" or "f". All other types, including arrays are returned as strings formatted in the same default PostgreSQL manner that you would see in the psql program. Database NULL values are returned as NULL.

FALSE is returned if row exceeds the number of rows in the set, or on any other error.

Примеры

Пример 1. pg_fetch_result() example

<?php
$db = pg_connect("dbname=users user=me") || die();

$res = pg_query($db, "SELECT 1 UNION ALL SELECT 2");

$val = pg_fetch_result($res, 1, 0);

echo "First field in the second row is: ", $val, "\n";
?>

Результат выполнения данного примера:

First field in the second row is: 2

Смотрите также

pg_query()
pg_fetch_array()

Пред. | Начало | След.
pg_fetch_object | Уровень выше | pg_fetch_row


pg_fetch_row

(PHP 3 >= 3.0.1, PHP 4, PHP 5)

pg_fetch_row -- Get a row as an enumerated array

Описание

array pg_fetch_row ( resource result [, int row] )

pg_fetch_row() fetches one row of data from the result associated with the specified result resource.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Замечание: From PHP 4.1.0, row became optional.

Список параметров

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

row

Row number in result to fetch. Rows are numbered from 0 upwards. If omitted, next row is fetched.

Возвращаемые значения

An array, indexed from 0 upwards, with each value represented as a string. Database NULL values are returned as NULL.

FALSE is returned if row exceeds the number of rows in the set, there are no more rows, or on any other error.

Примеры

Пример 1. pg_fetch_row() example

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "An error occured.\n";
  exit;
}

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
  echo "An error occured.\n";
  exit;
}

while ($row = pg_fetch_row($result)) {
  echo "Author: $row[0]  E-mail: $row[1]";
  echo "<br />\n";
}

?>

Смотрите также

pg_query()
pg_fetch_array()
pg_fetch_object()
pg_fetch_result()

Пред. | Начало | След.
pg_fetch_result | Уровень выше | pg_field_is_null


pg_field_is_null

(PHP 4 >= 4.2.0, PHP 5)

pg_field_is_null -- Test if a field is SQL NULL

Описание

int pg_field_is_null ( resource result, int row, mixed field )

int pg_field_is_null ( resource result, mixed field )

pg_field_is_null() tests if a field in a PostgreSQL result resource is SQL NULL or not.

Замечание: This function used to be called pg_fieldisnull().

Список параметров

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

row

Row number in result to fetch. Rows are numbered from 0 upwards. If omitted, current row is fetched.

field

Field number (starting from 0) as an integer or the field name as a string.

Возвращаемые значения

Returns 1 if the field in the given row is SQL NULL, 0 if not. FALSE is returned if the row is out of range, or upon any other error.

Примеры

Пример 1. pg_field_is_null() example

<?php
  $dbconn = pg_connect("dbname=publisher") or die ("Could not connect");
  $res = pg_query($dbconn, "select * from authors where author = 'Orwell'");
  if ($res) {
      if (pg_field_is_null($res, 0, "year") == 1) {
          echo "The value of the field year is null.\n";
      }
      if (pg_field_is_null($res, 0, "year") == 0) {
          echo "The value of the field year is not null.\n";
    }
 }
?>

Пред. | Начало | След.
pg_fetch_row | Уровень выше | pg_field_name


pg_field_name

(PHP 4 >= 4.2.0, PHP 5)

pg_field_name -- Returns the name of a field

Описание

string pg_field_name ( resource result, int field_number )

pg_field_name() returns the name of the field occupying the given field_number in the given PostgreSQL result resource. Field numbering starts from 0.

Замечание: This function used to be called pg_fieldname().

Список параметров

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

field_number

Field number, starting from 0.

Возвращаемые значения

The field name, or FALSE on error.

Примеры

Пример 1. Getting information about fields

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  $res = pg_query($dbconn, "select * from authors where author = 'Orwell'");
  $i = pg_num_fields($res);
  for ($j = 0; $j < $i; $j++) {
      echo "column $j\n";
      $fieldname = pg_field_name($res, $j);
      echo "fieldname: $fieldname\n";
      echo "printed length: " . pg_field_prtlen($res, $fieldname) . " characters\n";
      echo "storage length: " . pg_field_size($res, $j) . " bytes\n";
      echo "field type: " . pg_field_type($res, $j) . " \n\n";
  }
?>

Результат выполнения данного примера:

column 0
fieldname: author
printed length: 6 characters
storage length: -1 bytes
field type: varchar

column 1
fieldname: year
printed length: 4 characters
storage length: 2 bytes
field type: int2

column 2
fieldname: title
printed length: 24 characters
storage length: -1 bytes
field type: varchar

Смотрите также

pg_field_num()

Пред. | Начало | След.
pg_field_is_null | Уровень выше | pg_field_num


pg_field_num

(PHP 4 >= 4.2.0, PHP 5)

pg_field_num -- Returns the field number of the named field

Описание

int pg_field_num ( resource result, string field_name )

pg_field_num() will return the number of the field number that corresponds to the field_name in the given PostgreSQL result resource.

Замечание: This function used to be called pg_fieldnum().

Список параметров

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

field_name

The name of the field.

Возвращаемые значения

The field number (numbered from 0), or -1 on error.

Примеры

Пример 1. Getting information about fields

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  $res = pg_query($dbconn, "select author, year, title from authors where author = 'Orwell'");

  echo "Column 'title' is field number: ", pg_field_num($res, 'title');
?>

Результат выполнения данного примера:

Column 'title' is field number: 2

Смотрите также

pg_field_name()

Пред. | Начало | След.
pg_field_name | Уровень выше | pg_field_prtlen


pg_field_prtlen

(PHP 4 >= 4.2.0, PHP 5)

pg_field_prtlen -- Returns the printed length

Описание

int pg_field_prtlen ( resource result, int row_number, mixed field_name_or_number )

int pg_field_prtlen ( resource result, mixed field_name_or_number )

pg_field_prtlen() returns the actual printed length (number of characters) of a specific value in a PostgreSQL result. Row numbering starts at 0. This function will return -1 on an error.

field_name_or_number can be passed either as an integer or as a string. If it is passed as an integer, PHP recognises it as the field number, otherwise as field name.

See the example given at the pg_field_name() page.

Замечание: This function used to be called pg_fieldprtlen().

Список параметров

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

row

Row number in result. Rows are numbered from 0 upwards. If omitted, current row is fetched.

Возвращаемые значения

The field printed length, or FALSE on error.

Примеры

Пример 1. Getting information about fields

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  $res = pg_query($dbconn, "select * from authors where author = 'Orwell'");
  $i = pg_num_fields($res);
  for ($j = 0; $j < $i; $j++) {
      echo "column $j\n";
      $fieldname = pg_field_name($res, $j);
      echo "fieldname: $fieldname\n";
      echo "printed length: " . pg_field_prtlen($res, $fieldname) . " characters\n";
      echo "storage length: " . pg_field_size($res, $j) . " bytes\n";
      echo "field type: " . pg_field_type($res, $j) . " \n\n";
  }
?>

Результат выполнения данного примера:

column 0
fieldname: author
printed length: 6 characters
storage length: -1 bytes
field type: varchar

column 1
fieldname: year
printed length: 4 characters
storage length: 2 bytes
field type: int2

column 2
fieldname: title
printed length: 24 characters
storage length: -1 bytes
field type: varchar

Смотрите также

pg_field_size()

Пред. | Начало | След.
pg_field_num | Уровень выше | pg_field_size


pg_field_size

(PHP 4 >= 4.2.0, PHP 5)

pg_field_size -- Returns the internal storage size of the named field

Описание

int pg_field_size ( resource result, int field_number )

pg_field_size() returns the internal storage size (in bytes) of the field number in the given PostgreSQL result.

Замечание: This function used to be called pg_fieldsize().

Список параметров

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

field_number

Field number, starting from 0.

Возвращаемые значения

The internal field storage size (in bytes). -1 indicates a variable length field. FALSE is returned on error.

Примеры

Пример 1. Getting information about fields

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  $res = pg_query($dbconn, "select * from authors where author = 'Orwell'");
  $i = pg_num_fields($res);
  for ($j = 0; $j < $i; $j++) {
      echo "column $j\n";
      $fieldname = pg_field_name($res, $j);
      echo "fieldname: $fieldname\n";
      echo "printed length: " . pg_field_prtlen($res, $fieldname) . " characters\n";
      echo "storage length: " . pg_field_size($res, $j) . " bytes\n";
      echo "field type: " . pg_field_type($res, $j) . " \n\n";
  }
?>

Результат выполнения данного примера:

column 0
fieldname: author
printed length: 6 characters
storage length: -1 bytes
field type: varchar

column 1
fieldname: year
printed length: 4 characters
storage length: 2 bytes
field type: int2

column 2
fieldname: title
printed length: 24 characters
storage length: -1 bytes
field type: varchar

Смотрите также

pg_field_prtlen()
pg_field_type()

Пред. | Начало | След.
pg_field_prtlen | Уровень выше | pg_field_type_oid


pg_field_type_oid

(PHP 5 >= 5.1.0RC1)

pg_field_type_oid -- Returns the type ID (OID) for the corresponding field number

Описание

int pg_field_type_oid ( resource result, int field_number )

pg_field_type_oid() returns an integer containing the OID of the base type of the given field_number in the given PostgreSQL result resource.

You can get more information about the field type by querying PostgreSQL's pg_type system table using the OID obtained with this function. The PostgreSQL format_type() function will convert a type OID into an SQL standard type name.

Замечание: If the field uses a PostgreSQL domain (rather than a basic type), it is the OID of the domain's underlying type that is returned, rather than the OID of the domain itself.

Список параметров

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

field_number

Field number, starting from 0.

Возвращаемые значения

The OID of the field's base type. FALSE is returned on error.

Примеры

Пример 1. Getting information about fields

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  // Assume 'title' is a varchar type
  $res = pg_query($dbconn, "select title from authors where author = 'Orwell'");

  echo "Title field type OID: ", pg_field_type_oid($res, 0);
?>

Результат выполнения данного примера:

Title field type OID: 1043

Смотрите также

pg_field_type()
pg_field_prtlen()
pg_field_name()

Пред. | Начало | След.
pg_field_size | Уровень выше | pg_field_type


pg_field_type

(PHP 4 >= 4.2.0, PHP 5)

pg_field_type -- Returns the type name for the corresponding field number

Описание

string pg_field_type ( resource result, int field_number )

pg_field_type() returns a string containing the base type name of the given field_number in the given PostgreSQL result resource.

Замечание: If the field uses a PostgreSQL domain (rather than a basic type), it is the name of the domain's underlying type that is returned, rather than the name of the domain itself.

Замечание: This function used to be called pg_fieldtype().

Список параметров

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

field_number

Field number, starting from 0.

Возвращаемые значения

A string containing the base name of the field's type, or FALSE on error.

Примеры

Пример 1. Getting information about fields

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  // Assume 'title' is a varchar type
  $res = pg_query($dbconn, "select title from authors where author = 'Orwell'");

  echo "Title field type: ", pg_field_type($res, 0);
?>

Результат выполнения данного примера:

Title field type: varchar

Смотрите также

pg_field_prtlen()
pg_field_name()
pg_field_type_oid()

Пред. | Начало | След.
pg_field_type_oid | Уровень выше | pg_free_result


pg_free_result

(PHP 4 >= 4.2.0, PHP 5)

pg_free_result -- Free result memory

Описание

bool pg_free_result ( resource result )

pg_free_result() frees the memory and data associated with the specified PostgreSQL query result resource.

This function need only be called if memory consumption during script execution is a problem. Otherwise, all result memory will be automatically freed when the script ends.

Замечание: This function used to be called pg_freeresult().

Список параметров

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. pg_free_result() example

<?php
$db = pg_connect("dbname=users user=me") || die();

$res = pg_query($db, "SELECT 1 UNION ALL SELECT 2");

$val = pg_fetch_result($res, 1, 0);

echo "First field in the second row is: ", $val, "\n";

pg_free_result($res);
?>

Результат выполнения данного примера:

First field in the second row is: 2

Смотрите также

pg_query()
pg_query_params()
pg_execute()

Пред. | Начало | След.
pg_field_type | Уровень выше | pg_get_notify


pg_get_notify

(PHP 4 >= 4.3.0, PHP 5)

pg_get_notify -- Gets SQL NOTIFY message

Описание

array pg_get_notify ( resource connection [, int result_type] )

pg_get_notify() gets notifications generated by a NOTIFY SQL command. To receive notifications, the LISTEN SQL command must be issued.

Список параметров

connection

PostgreSQL database connection resource.

result_type

An optional parameter that controls how the returned array is indexed. result_type is a constant and can take the following values: PGSQL_ASSOC, PGSQL_NUM and PGSQL_BOTH. Using PGSQL_NUM, pg_get_notify() will return an array with numerical indices, using PGSQL_ASSOC it will return only associative indices while PGSQL_BOTH, the default, will return both numerical and associative indices.

Возвращаемые значения

An array containing the NOTIFY message name and backend PID. Otherwise if no NOTIFY is waiting, then FALSE is returned.

Примеры

Пример 1. PostgreSQL NOTIFY message

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "An error occured.\n";
  exit;
}

// Listen 'author_updated' message from other processes
pg_query($conn, 'LISTEN author_updated;');
$notify = pg_get_notify($conn);
if (!$notify) {
  echo "No messages\n";
} else {
  print_r($notify);
}
?>

Смотрите также

pg_get_pid()

Пред. | Начало | След.
pg_free_result | Уровень выше | pg_get_pid


pg_get_pid

(PHP 4 >= 4.3.0, PHP 5)

pg_get_pid -- Gets the backend's process ID

Описание

int pg_get_pid ( resource connection )

pg_get_pid() gets the backend's (database server process) PID. The PID is useful to determine whether or not a NOTIFY message received via pg_get_notify() is sent from another process or not.

Список параметров

connection

PostgreSQL database connection resource.

Возвращаемые значения

The backend database process ID.

Примеры

Пример 1. PostgreSQL backend PID

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "An error occured.\n";
  exit;
}

// Backend process PID. Use PID with pg_get_notify()
$pid = pg_get_pid($conn);
?>

Смотрите также

pg_get_notify()

Пред. | Начало | След.
pg_get_notify | Уровень выше | pg_get_result


pg_get_result

(PHP 4 >= 4.2.0, PHP 5)

pg_get_result -- Get asynchronous query result

Описание

resource pg_get_result ( [resource connection] )

pg_get_result() gets the result resource from an asynchronous query executed by pg_send_query(), pg_send_query_params() or pg_send_execute().

pg_send_query() and the other asynchronous query functions can send multiple queries to a PostgreSQL server and pg_get_result() is used to get each query's results, one by one.

Список параметров

connection

PostgreSQL database connection resource.

Возвращаемые значения

The result resource, or FALSE if no more results are available.

Примеры

Пример 1. pg_get_result() example

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from authors; select count(*) from authors;");
  }

  $res1 = pg_get_result($dbconn);
  echo "First call to pg_get_result(): $res1\n";
  $rows1 = pg_num_rows($res1);
  echo "$res1 has $rows1 records\n\n";

  $res2 = pg_get_result($dbconn);
  echo "Second call to pg_get_result(): $res2\n";
  $rows2 = pg_num_rows($res2);
  echo "$res2 has $rows2 records\n";
?>

Результат выполнения данного примера:

First call to pg_get_result(): Resource id #3
Resource id #3 has 3 records

Second call to pg_get_result(): Resource id #4
Resource id #4 has 1 records

Смотрите также

pg_send_query()

Пред. | Начало | След.
pg_get_pid | Уровень выше | pg_host


pg_host

(PHP 3, PHP 4, PHP 5)

pg_host -- Returns the host name associated with the connection

Описание

string pg_host ( [resource connection] )

pg_host() returns the host name of the given PostgreSQL connection resource is connected to.

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

Возвращаемые значения

A string containing the name of the host the connection is to, or FALSE on error.

Примеры

Пример 1. pg_host() example

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   print "Successfully connected to: " . pg_host($pgsql_conn) . "<br/>\n";
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>

Смотрите также

pg_connect()
pg_pconnect()

Пред. | Начало | След.
pg_get_result | Уровень выше | pg_insert


pg_insert

(PHP 4 >= 4.3.0, PHP 5)

pg_insert -- Insert array into table

Описание

mixed pg_insert ( resource connection, string table_name, array assoc_array [, int options] )

pg_insert() inserts the values of assoc_array into the table specified by table_name. If options is specified, pg_convert() is applied to assoc_array with the specified options.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

connection

PostgreSQL database connection resource.

table_name

Name of the table into which to insert rows. The table table_name must at least have as many columns as assoc_array has elements.

assoc_array

An array whose keys are field names in the table table_name, and whose values are the values of those fields that are to be inserted.

options

Any number of PGSQL_CONV_OPTS, PGSQL_DML_NO_CONV, PGSQL_DML_EXEC, PGSQL_DML_ASYNC or PGSQL_DML_STRING combined. If PGSQL_DML_STRING is part of the options then query string is returned.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Returns string if PGSQL_DML_STRING is passed via options.

Примеры

Пример 1. pg_insert() example

<?php
  $dbconn = pg_connect('dbname=foo');
  // This is safe, since $_POST is converted automatically
  $res = pg_insert($dbconn, 'post_log', $_POST);
  if ($res) {
      echo "POST data is successfully logged\n";
  } else {
      echo "User must have sent wrong inputs\n";
  }
?>

Смотрите также

pg_convert()

Пред. | Начало | След.
pg_host | Уровень выше | pg_last_error


pg_last_error

(PHP 4 >= 4.2.0, PHP 5)

pg_last_error -- Get the last error message string of a connection

Описание

string pg_last_error ( [resource connection] )

pg_last_error() returns the last error message for a given connection.

Error messages may be overwritten by internal PostgreSQL (libpq) function calls. It may not return an appropriate error message if multiple errors occur inside a PostgreSQL module function.

Use pg_result_error(), pg_result_error_field(),
pg_result_status() and
pg_connection_status() for better error handling.

Замечание: This function used to be called pg_errormessage().

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

Возвращаемые значения

A string containing the last error message on the given connection, or FALSE on error.

Примеры

Пример 1. pg_last_error() example

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   print "Successfully connected to: " . pg_host($pgsql_conn) . "<br/>\n";
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>

Смотрите также

pg_result_error()
pg_result_error_field()

Пред. | Начало | След.
pg_insert | Уровень выше | pg_last_notice


pg_last_notice

(PHP 4 >= 4.0.6, PHP 5)

pg_last_notice -- Returns the last notice message from PostgreSQL server

Описание

string pg_last_notice ( resource connection )

pg_last_notice() returns the last notice message from the PostgreSQL server on the specified connection. The PostgreSQL server sends notice messages in several cases, for instance when creating a SERIAL column in a table.

With pg_last_notice(), you can avoid issuing useless queries by checking whether or not the notice is related to your transaction.

Внимание

This function is EXPERIMENTAL and it is not fully implemented yet. pg_last_notice() was added in PHP 4.0.6. However, PHP 4.0.6 has problem with notice message handling. Use of the PostgreSQL module with PHP 4.0.6 is not recommended even if you are not using pg_last_notice().

This function is fully implemented in PHP 4.3.0. PHP earlier than PHP 4.3.0 ignores database connection parameter.

Notice message tracking can be set to optional by setting 1 for pgsql.ignore_notice in php.ini from PHP 4.3.0.

Notice message logging can be set to optional by setting 0 for pgsql.log_notice in php.ini from PHP 4.3.0. Unless pgsql.ignore_notice is set to 0, notice message cannot be logged.

Список параметров

connection

PostgreSQL database connection resource.

Возвращаемые значения

A string containing the last notice on the given connection, or FALSE on error.

Примеры

Пример 1. pg_last_error() example

<?php
  $pgsql_conn = pg_connect("dbname=mark host=localhost");

  $res = pg_query("CREATE TABLE test (id SERIAL)");

  $notice = pg_last_notice($pgsql_conn);

  echo $notice;
?>

Результат выполнения данного примера:

CREATE TABLE will create implicit sequence "test_id_seq" for "serial" column "test.id"

Смотрите также

pg_query()
pg_last_error()

Пред. | Начало | След.
pg_last_error | Уровень выше | pg_last_oid


pg_last_oid

(PHP 4 >= 4.2.0, PHP 5)

pg_last_oid -- Returns the last row's OID

Описание

string pg_last_oid ( resource result )

pg_last_oid() is used to retrieve the OID assigned to an inserted row.

OID field became an optional field from PostgreSQL 7.2 and will not be present by default in PostgreSQL 8.1. When the OID field is not present in a table, the programmer must use pg_result_status() to check for successful insertion.

To get the value of a SERIAL field in an inserted row, it is necessary to use the PostgreSQL CURRVAL function, naming the sequence whose last value is required. If the name of the sequence is unknown, the pg_get_serial_sequence PostgreSQL 8.0 function is necessary.

PostgreSQL 8.1 has a function LASTVAL that returns the value of the most recently used sequence in the session. This avoids the need for naming the sequence, table or column altogether.

Замечание: This function used to be called pg_getlastoid().

Список параметров

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

Возвращаемые значения

A string containing the OID assigned to the most recently inserted row in the specified connection, or FALSE on error or no available OID.

Примеры

Пример 1. pg_last_oid() example

<?php
  $pgsql_conn = pg_connect("dbname=mark host=localhost");

  $res1 = pg_query("CREATE TABLE test (a INTEGER) WITH OIDS");

  $res2 = pg_query("INSERT INTO test VALUES (1)");

  $oid = pg_last_oid($res2);
?>

Смотрите также

pg_query()
pg_result_status()

Пред. | Начало | След.
pg_last_notice | Уровень выше | pg_lo_close


pg_lo_close

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_close -- Close a large object

Описание

bool pg_lo_close ( resource large_object )

pg_lo_close() closes a large object. large_object is a resource for the large object from pg_lo_open().

To use the large object interface, it is necessary to enclose it within a transaction block.

Замечание: This function used to be called pg_loclose().

Список параметров

result

PostgreSQL large object (LOB) resource, returned by pg_lo_open().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. pg_lo_close() example

<?php
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $oid = pg_lo_create($database);
   echo "$oid\n";
   $handle = pg_lo_open($database, $oid, "w");
   echo "$handle\n";
   pg_lo_write($handle, "large object data");
   pg_lo_close($handle);
   pg_query($database, "commit");
?>

Смотрите также

pg_lo_open()
pg_lo_create()
pg_lo_import()

Пред. | Начало | След.
pg_last_oid | Уровень выше | pg_lo_create


pg_lo_create

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_create -- Create a large object

Описание

int pg_lo_create ( [resource connection] )

pg_lo_create() creates a large object and returns the OID of the large object. PostgreSQL access modes INV_READ, INV_WRITE, and INV_ARCHIVE are not supported, the object is created always with both read and write access. INV_ARCHIVE has been removed from PostgreSQL itself (version 6.3 and above).

To use the large object interface, it is necessary to enclose it within a transaction block.

Instead of using the large object interface (which has no access controls and is cumbersome to use), try PostgreSQL's bytea column type and pg_escape_bytea().

Замечание: This function used to be called pg_locreate().

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

Возвращаемые значения

A large object OID or FALSE on error.

Примеры

Пример 1. pg_lo_create() example

<?php
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $oid = pg_lo_create($database);
   echo "$oid\n";
   $handle = pg_lo_open($database, $oid, "w");
   echo "$handle\n";
   pg_lo_write($handle, "large object data");
   pg_lo_close($handle);
   pg_query($database, "commit");
?>

Пред. | Начало | След.
pg_lo_close | Уровень выше | pg_lo_export


pg_lo_export

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_export -- Export a large object to file

Описание

bool pg_lo_export ( resource connection, int oid, string pathname )

bool pg_lo_export ( int oid, string pathname )

pg_lo_export() takes a large object in a PostgreSQL database and saves its contents to a file on the local filesystem.

To use the large object interface, it is necessary to enclose it within a transaction block.

Замечание: This function used to be called pg_loexport().

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

oid

The OID of the large object in the database.

pathname

The full path and file name of the file in which to write the large object on the client filesystem.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. pg_lo_export() example

<?php
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $oid = pg_lo_create($database);
   $handle = pg_lo_open($database, $oid, "w");
   pg_lo_write($handle, "large object data");
   pg_lo_close($handle);
   pg_lo_export($database, $oid, '/tmp/lob.dat');
   pg_query($database, "commit");
?>

Смотрите также

pg_lo_import()

Пред. | Начало | След.
pg_lo_create | Уровень выше | pg_lo_import


pg_lo_import

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_import -- Import a large object from file

Описание

int pg_lo_import ( resource connection, string pathname )

int pg_lo_import ( string pathname )

In versions before PHP 4.2.0 the syntax of this function was different, see the following definition:

int pg_lo_import ( string pathname [, resource connection] )

pg_lo_import() creates a new large object in the database using a file on the filesystem as its data source.

To use the large object interface, it is necessary to enclose it within a transaction block.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Замечание: This function used to be called pg_loimport().

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

pathname

The full path and file name of the file on the client filesystem from which to read the large object data.

Возвращаемые значения

The OID of the newly created large object, or FALSE on failure.

Примеры

Пример 1. pg_lo_import() example

<?php
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $oid = pg_lo_import($database, '/tmp/lob.dat');
   pg_query($database, "commit");
?>

Смотрите также

pg_lo_export()
pg_lo_open()

Пред. | Начало | След.
pg_lo_export | Уровень выше | pg_lo_open


pg_lo_open

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_open -- Open a large object

Описание

resource pg_lo_open ( resource connection, int oid, string mode )

pg_lo_open() opens a large object in the database and returns large object resource so that it can be manipulated.

Внимание

Do not close the database connection before closing the large object resource.

To use the large object interface, it is necessary to enclose it within a transaction block.

Замечание: This function used to be called pg_loopen().

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

oid

The OID of the large object in the database.

mode

Can be either "r" for read-only, "w" for write only or "rw" for read and write.

Возвращаемые значения

A large object resource or FALSE on error.

Примеры

Пример 1. pg_lo_open() example

<?php
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $oid = pg_lo_create($database);
   echo "$oid\n";
   $handle = pg_lo_open($database, $oid, "w");
   echo "$handle\n";
   pg_lo_write($handle, "large object data");
   pg_lo_close($handle);
   pg_query($database, "commit");
?>

Смотрите также

pg_lo_close()
pg_lo_create()

Пред. | Начало | След.
pg_lo_import | Уровень выше | pg_lo_read_all


pg_lo_read_all

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_read_all -- Reads an entire large object and send straight to browser

Описание

int pg_lo_read_all ( resource large_object )

pg_lo_read_all() reads a large object and passes it straight through to the browser after sending all pending headers. Mainly intended for sending binary data like images or sound.

To use the large object interface, it is necessary to enclose it within a transaction block.

Замечание: This function used to be called pg_loreadall().

Список параметров

large_object

PostgreSQL large object (LOB) resource, returned by pg_lo_open().

Возвращаемые значения

Number of bytes read or FALSE on error.

Примеры

Пример 1. pg_lo_read_all() example

<?php
   header('Content-type: image/jpeg');
   $image_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $image_oid, "r");
   pg_lo_read_all($handle);
   pg_query($database, "commit");
?>

Смотрите также

pg_lo_read()

Пред. | Начало | След.
pg_lo_open | Уровень выше | pg_lo_read


pg_lo_read

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_read -- Read a large object

Описание

string pg_lo_read ( resource large_object [, int len] )

pg_lo_read() reads at most len bytes from a large object and returns it as a string.

To use the large object interface, it is necessary to enclose it within a transaction block.

Замечание: This function used to be called pg_loread().

Список параметров

large_object

PostgreSQL large object (LOB) resource, returned by pg_lo_open().

len

An optional maximum number of bytes to return. Defaults to 8192.

Возвращаемые значения

A string containing len bytes from the large object, or FALSE on error.

Примеры

Пример 1. pg_lo_read() example

<?php
   $doc_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "r");
   $data = pg_lo_read($handle, 50000);
   pg_query($database, "commit");
   echo $data;
?>

Смотрите также

pg_lo_read_all()

Пред. | Начало | След.
pg_lo_read_all | Уровень выше | pg_lo_seek


pg_lo_seek

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_seek -- Seeks position within a large object

Описание

bool pg_lo_seek ( resource large_object, int offset [, int whence] )

pg_lo_seek() seeks a position within a large object resource.

To use the large object interface, it is necessary to enclose it within a transaction block.

Список параметров

large_object

PostgreSQL large object (LOB) resource, returned by pg_lo_open().

offset

The number of bytes to seek.

whence

One of the constants PGSQL_SEEK_SET (seek from object start), PGSQL_SEEK_CUR (seek from current position) or PGSQL_SEEK_END (seek from object end) .

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. pg_lo_seek() example

<?php
   $doc_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "r");
   // Skip first 50000 bytes
   pg_lo_seek($handle, 50000, PGSQL_SEEK_SET);
   // Read the next 10000 bytes
   $data = pg_lo_read($handle, 10000);
   pg_query($database, "commit");
   echo $data;
?>

Смотрите также

pg_lo_tell()

Пред. | Начало | След.
pg_lo_read | Уровень выше | pg_lo_tell


pg_lo_tell

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_tell -- Returns current seek position a of large object

Описание

int pg_lo_tell ( resource large_object )

pg_lo_tell() returns the current position (offset from the beginning) of a large object.

To use the large object interface, it is necessary to enclose it within a transaction block.

Список параметров

large_object

PostgreSQL large object (LOB) resource, returned by pg_lo_open().

Возвращаемые значения

The current seek offset (in number of bytes) from the beginning of the large object. If there is an error, the return value is negative.

Примеры

Пример 1. pg_lo_tell() example

<?php
   $doc_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "r");
   // Skip first 50000 bytes
   pg_lo_seek($handle, 50000, PGSQL_SEEK_SET);
   // See how far we've skipped
   $offset = pg_lo_tell($handle);
   echo "Seek position is: $offset";
   pg_query($database, "commit");
?>

Результат выполнения данного примера:

Seek position is: 50000

Смотрите также

pg_lo_seek()

Пред. | Начало | След.
pg_lo_seek | Уровень выше | pg_lo_unlink


pg_lo_unlink

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_unlink -- Delete a large object

Описание

bool pg_lo_unlink ( resource connection, int oid )

pg_lo_unlink() deletes a large object with the oid. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

To use the large object interface, it is necessary to enclose it within a transaction block.

Замечание: This function used to be called pg_lounlink().

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

oid

The OID of the large object in the database.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. pg_lo_unlink() example

<?php
   // OID of the large object to delete
   $doc_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   pg_lo_unlink($database, $doc_oid);
   pg_query($database, "commit");
?>

Смотрите также

pg_lo_create()
pg_lo_import()

Пред. | Начало | След.
pg_lo_tell | Уровень выше | pg_lo_write


pg_lo_write

(PHP 4 >= 4.2.0, PHP 5)

pg_lo_write -- Write to a large object

Описание

int pg_lo_write ( resource large_object, string data [, int len] )

pg_lo_write() writes data into a large object at the current seek position.

To use the large object interface, it is necessary to enclose it within a transaction block.

Замечание: This function used to be called pg_lowrite().

Список параметров

large_object

PostgreSQL large object (LOB) resource, returned by pg_lo_open().

data

The data to be written to the large object. If len is specified and is less than the length of data, only len bytes will be written.

len

An optional maximum number of bytes to write. Must be greater than zero and no greater than the length of data. Defaults to the length of data.

Возвращаемые значения

The number of bytes written to the large object, or FALSE on error.

Примеры

Пример 1. pg_lo_write() example

<?php
   $doc_oid = 189762345;
   $data = "This will overwrite the start of the large object.";
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "w");
   $data = pg_lo_write($handle, $data);
   pg_query($database, "commit");
?>

Смотрите также

pg_lo_create()
pg_lo_open()

Пред. | Начало | След.
pg_lo_unlink | Уровень выше | pg_meta_data


pg_meta_data

(PHP 4 >= 4.3.0, PHP 5)

pg_meta_data -- Get meta data for table

Описание

array pg_meta_data ( resource connection, string table_name )

pg_meta_data() returns table definition for table_name as an array.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

connection

PostgreSQL database connection resource.

table_name

The name of the table.

Возвращаемые значения

An array of the table definition, or FALSE on error.

Примеры

Пример 1. Getting table metadata

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  $meta = pg_meta_data($dbconn, 'authors');
  if (is_array($meta)) {
      echo '<pre>';
      var_dump($meta);
      echo '</pre>';
  }
?>

Результат выполнения данного примера:

array(3) {
["author"]=>
array(5) {
  ["num"]=>
  int(1)
  ["type"]=>
  string(7) "varchar"
  ["len"]=>
  int(-1)
  ["not null"]=>
  bool(false)
  ["has default"]=>
  bool(false)
}
["year"]=>
array(5) {
  ["num"]=>
  int(2)
  ["type"]=>
  string(4) "int2"
  ["len"]=>
  int(2)
  ["not null"]=>
  bool(false)
  ["has default"]=>
  bool(false)
}
["title"]=>
array(5) {
  ["num"]=>
  int(3)
  ["type"]=>
  string(7) "varchar"
  ["len"]=>
  int(-1)
  ["not null"]=>
  bool(false)
  ["has default"]=>
  bool(false)
}
}

Смотрите также

pg_convert()

Пред. | Начало | След.
pg_lo_write | Уровень выше | pg_num_fields


pg_num_fields

(PHP 4 >= 4.2.0, PHP 5)

pg_num_fields -- Returns the number of fields in a result

Описание

int pg_num_fields ( resource result )

pg_num_fields() returns the number of fields (columns) in a PostgreSQL result resource.

Замечание: This function used to be called pg_numfields().

Список параметров

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

Возвращаемые значения

The number of fields (columns) in the result. On error, -1 is returned.

Примеры

Пример 1. pg_num_fields() example

<?php
$result = pg_query($conn, "SELECT 1, 2");

$num = pg_num_fields($result);

echo $num . " field(s) returned.\n";
?>

Результат выполнения данного примера:

2 field(s) returned.

Смотрите также

pg_num_rows()
pg_affected_rows()

Пред. | Начало | След.
pg_meta_data | Уровень выше | pg_num_rows


pg_num_rows

(PHP 4 >= 4.2.0, PHP 5)

pg_num_rows -- Returns the number of rows in a result

Описание

int pg_num_rows ( resource result )

pg_num_rows() will return the number of rows in a PostgreSQL result resource.

Замечание: This function used to be called pg_numrows().

Список параметров

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

Возвращаемые значения

The number of rows in the result. On error, -1 is returned.

Примеры

Пример 1. pg_num_rows() example

<?php
$result = pg_query($conn, "SELECT 1");

$rows = pg_num_rows($result);

echo $rows . " row(s) returned.\n";
?>

Результат выполнения данного примера:

1 row(s) returned.

Смотрите также

pg_num_fields()
pg_affected_rows()

Пред. | Начало | След.
pg_num_fields | Уровень выше | pg_options


pg_options

(PHP 3, PHP 4, PHP 5)

pg_options -- Get the options associated with the connection

Описание

string pg_options ( [resource connection] )

pg_options() will return a string containing the options specified on the given PostgreSQL connection resource.

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

Возвращаемые значения

A string containing the connection options, or FALSE on error.

Примеры

Пример 1. pg_options() example

<?php
   $pgsql_conn = pg_connect("dbname=mark host=localhost");
   echo pg_options($pgsql_conn);
?>

Смотрите также

pg_connect()

Пред. | Начало | След.
pg_num_rows | Уровень выше | pg_parameter_status


pg_parameter_status

(PHP 5)

pg_parameter_status -- Looks up a current parameter setting of the server.

Описание

string pg_parameter_status ( resource connection, string param_name )

string pg_parameter_status ( string param_name )

Looks up a current parameter setting of the server.

Certain parameter values are reported by the server automatically at connection startup or whenever their values change. pg_parameter_status() can be used to interrogate these settings. It returns the current value of a parameter if known, or FALSE if the parameter is not known.

Parameters reported as of PostgreSQL 8.0 include server_version, server_encoding, client_encoding, is_superuser, session_authorization, DateStyle, TimeZone, and integer_datetimes. (server_encoding, TimeZone, and integer_datetimes were not reported by releases before 8.0.) Note that server_version, server_encoding and integer_datetimes cannot change after PostgreSQL startup.

PostgreSQL 7.3 or lower servers do not report parameter settings, pg_parameter_status() includes logic to obtain values for server_version and client_encoding anyway. Applications are encouraged to use pg_parameter_status() rather than ad hoc code to determine these values.

Предостережение

On a pre-7.4 PostgreSQL server, changing client_encoding via SET after connection startup will not be reflected by pg_parameter_status().

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

param_name

Possible param_name values include server_version, server_encoding, client_encoding, is_superuser, session_authorization, DateStyle, TimeZone, and integer_datetimes.

Возвращаемые значения

A string containing the value of the parameter, FALSE on failure or invalid param_name.

Примеры

Пример 1. pg_parameter_status() example

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  echo "Server encoding: ", pg_parameter_status($dbconn, "server_encoding");
?>

Результат выполнения данного примера:

Server encoding: SQL_ASCII

Пред. | Начало | След.
pg_options | Уровень выше | pg_pconnect


pg_pconnect

(PHP 3, PHP 4, PHP 5)

pg_pconnect -- Open a persistent PostgreSQL connection

Описание

resource pg_pconnect ( string connection_string [, int connect_type] )

pg_pconnect() opens a connection to a PostgreSQL database. It returns a connection resource that is needed by other PostgreSQL functions.

If a second call is made to pg_pconnect() with the same connection_string as an existing connection, the existing connection will be returned unless you pass PGSQL_CONNECT_FORCE_NEW as connect_type.

To enable persistent connection, the pgsql.allow_persistent php.ini directive must be set to "On" (which is the default). The maximum number of persistent connection can be defined with the pgsql.max_persistent php.ini directive (defaults to -1 for no limit). The total number of connections can be set with the pgsql.max_links php.ini directive.

pg_close() will not close persistent links generated by pg_pconnect().

Список параметров

connection_string

The connection_string can be empty to use all default parameters, or it can contain one or more parameter settings separated by whitespace. Each parameter setting is in the form keyword = value. Spaces around the equal sign are optional. To write an empty value or a value containing spaces, surround it with single quotes, e.g., keyword = 'a value'. Single quotes and backslashes within the value must be escaped with a backslash, i.e., \' and \\.

The currently recognized parameter keywords are: host, hostaddr, port, dbname, user, password, connect_timeout, options, tty (ignored), sslmode, requiressl (deprecated in favor of sslmode), and service. Which of these arguments exist depends on your PostgreSQL version.

connect_type

If PGSQL_CONNECT_FORCE_NEW is passed, then a new connection is created, even if the connection_string is identical to an existing connection.

Возвращаемые значения

PostgreSQL connection resource on success, FALSE on failure.

Примеры

Пример 1. Using pg_pconnect()

<?php
$dbconn = pg_pconnect("dbname=mary");
//connect to a database named "mary"

$dbconn2 = pg_pconnect("host=localhost port=5432 dbname=mary");
// connect to a database named "mary" on "localhost" at port "5432"

$dbconn3 = pg_pconnect("host=sheep port=5432 dbname=mary user=lamb password=foo");
//connect to a database named "mary" on the host "sheep" with a username and password

$conn_string = "host=sheep port=5432 dbname=test user=lamb password=bar";
$dbconn4 = pg_pconnect($conn_string);
//connect to a database named "test" on the host "sheep" with a username and password
?>

Смотрите также

pg_connect()
Persistent Database Connections

Пред. | Начало | След.
pg_parameter_status | Уровень выше | pg_ping


pg_ping

(PHP 4 >= 4.3.0, PHP 5)

pg_ping -- Ping database connection

Описание

bool pg_ping ( [resource connection] )

pg_ping() pings a database connection and tries to reconnect it if it is broken.

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. pg_ping() example

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "An error occured.\n";
  exit;
}

if (!pg_ping($conn))
  die("Connection is broken\n");
?>

Смотрите также

pg_connection_status()
pg_connection_reset()

Пред. | Начало | След.
pg_pconnect | Уровень выше | pg_port


pg_port

(PHP 3, PHP 4, PHP 5)

pg_port -- Return the port number associated with the connection

Описание

int pg_port ( [resource connection] )

pg_port() returns the port number that the given PostgreSQL connection resource is connected to.

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

Возвращаемые значения

An int containing the port number of the database server the connection is to, or FALSE on error.

Примеры

Пример 1. pg_port() example

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   print "Successfully connected to port: " . pg_port($pgsql_conn) . "<br/>\n";
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>

Пред. | Начало | След.
pg_ping | Уровень выше | pg_prepare


pg_prepare

(PHP 5 >= 5.1.0RC1)

pg_prepare -- Submits a request to create a prepared statement with the given parameters, and waits for completion.

Описание

resource pg_prepare ( resource connection, string stmtname, string query )

resource pg_prepare ( string stmtname, string query )

pg_prepare() creates a prepared statement for later execution with pg_execute() or pg_send_execute(). This feature allows commands that will be used repeatedly to be parsed and planned just once, rather than each time they are executed. pg_prepare() is supported only against PostgreSQL 7.4 or higher connections; it will fail when using earlier versions.

The function creates a prepared statement named stmtname from the query string, which must contain a single SQL command. stmtname may be "" to create an unnamed statement, in which case any pre-existing unnamed statement is automatically replaced; otherwise it is an error if the statement name is already defined in the current session. If any parameters are used, they are referred to in the query as $1, $2, etc.

Prepared statements for use with pg_prepare() can also be created by executing SQL PREPARE statements. (But pg_prepare() is more flexible since it does not require parameter types to be pre-specified.) Also, although there is no PHP function for deleting a prepared statement, the SQL DEALLOCATE statement can be used for that purpose.

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

stmtname

The name to give the prepared statement. Must be unique per-connection. If "" is specified, then an unnamed statement is created, overwriting any previously defined unnamed statement.

query

The parameterised SQL statement. Must contain only a single statement. (multiple statements separated by semi-colons are not allowed.) If any parameters are used, they are referred to as $1, $2, etc.

Возвращаемые значения

A query result resource on success, or FALSE on failure.

Примеры

Пример 1. Using pg_prepare()

<?php
// Connect to a database named "mary"
$dbconn = pg_connect("dbname=mary");

// Prepare a query for execution
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');

// Execute the prepared query.  Note that it is not necessary to escape
// the string "Joe's Widgets" in any way
$result = pg_execute($dbconn, "my_query", array("Joe's Widgets"));

// Execute the same prepared query, this time with a different parameter
$result = pg_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));

?>

Смотрите также

pg_execute()
pg_send_execute()

Пред. | Начало | След.
pg_port | Уровень выше | pg_put_line


pg_put_line

(PHP 4 >= 4.0.3, PHP 5)

pg_put_line -- Send a NULL-terminated string to PostgreSQL backend

Описание

bool pg_put_line ( string data )

bool pg_put_line ( resource connection, string data )

pg_put_line() sends a NULL-terminated string to the PostgreSQL backend server. This is needed in conjunction with PostgreSQL's COPY FROM command.

COPY is a high-speed data loading interface supported by PostgreSQL. Data is passed in without being parsed, and in a single transaction.

An alternative to using raw pg_put_line() commands is to use pg_copy_from(). This is a far simpler interface.

Замечание: The application must explicitly send the two characters "\." on the last line to indicate to the backend that it has finished sending its data, before issuing pg_end_copy().

Внимание

Use of the pg_put_line() causes most large object operations, including pg_lo_read() and pg_lo_tell(), to subsequently fail. You can use pg_copy_from() and pg_copy_to() instead.

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

data

A line of text to be sent directly to the PostgreSQL backend. A NULL terminator is added automatically.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. pg_put_line() example

<?php
  $conn = pg_pconnect("dbname=foo");
  pg_query($conn, "create table bar (a int4, b char(16), d float8)");
  pg_query($conn, "copy bar from stdin");
  pg_put_line($conn, "3\thello world\t4.5\n");
  pg_put_line($conn, "4\tgoodbye world\t7.11\n");
  pg_put_line($conn, "\\.\n");
  pg_end_copy($conn);
?>

Смотрите также

pg_end_copy()

Пред. | Начало | След.
pg_prepare | Уровень выше | pg_query_params


pg_query_params

(PHP 5 >= 5.1.0RC1)

pg_query_params -- Submits a command to the server and waits for the result, with the ability to pass parameters separately from the SQL command text.

Описание

resource pg_query_params ( resource connection, string query, array params )

resource pg_query_params ( string query, array params )

Submits a command to the server and waits for the result, with the ability to pass parameters separately from the SQL command text.

pg_query_params() is like pg_query(), but offers additional functionality: parameter values can be specified separately from the command string proper. pg_query_params() is supported only against PostgreSQL 7.4 or higher connections; it will fail when using earlier versions.

If parameters are used, they are referred to in the query string as $1, $2, etc. params specifies the actual values of the parameters. A NULL value in this array means the corresponding parameter is SQL NULL.

The primary advantage of pg_query_params() over pg_query() is that parameter values may be separated from the query string, thus avoiding the need for tedious and error-prone quoting and escaping. Unlike pg_query(), pg_query_params() allows at most one SQL command in the given string. (There can be semicolons in it, but not more than one nonempty command.)

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

query

The parameterised SQL statement. Must contain only a single statement. (multiple statements separated by semi-colons are not allowed.) If any parameters are used, they are referred to as $1, $2, etc.

params

An array of parameter values to substitute for the $1, $2, etc. placeholders in the original prepared query string. The number of elements in the array must match the number of placeholders.

Возвращаемые значения

A query result resource on success, or FALSE on failure.

Примеры

Пример 1. Using pg_query_params()

<?php
// Connect to a database named "mary"
$dbconn = pg_connect("dbname=mary");

// Find all shops named Joe's Widgets.  Note that it is not necessary to
// escape "Joe's Widgets"
$result = pg_query_params($dbconn, 'SELECT * FROM shops WHERE name = $1', array("Joe's Widgets"));

// Compare against just using pg_query
$str = pg_escape_string("Joe's Widgets");
$result = pg_query($dbconn, "SELECT * FROM shops WHERE name = '{$str}'");

?>

Смотрите также

pg_query()

Пред. | Начало | След.
pg_put_line | Уровень выше | pg_query


pg_query

(PHP 4 >= 4.2.0, PHP 5)

pg_query -- Execute a query

Описание

resource pg_query ( string query )

resource pg_query ( resource connection, string query )

pg_query() executes the query on the specified database connection.

If an error occurs, and FALSE is returned, details of the error can be retrieved using the pg_last_error() function if the connection is valid.

Замечание: Although connection can be omitted, it is not recommended, since it can be the cause of hard to find bugs in scripts.

Замечание: This function used to be called pg_exec(). pg_exec() is still available for compatibility reasons, but users are encouraged to use the newer name.

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

query

The SQL statement or statements to be executed. When multiple statements are passed to the function, they are automatically executed as one transaction, unless there are explicit BEGIN/COMMIT commands included in the query string. However, using multiple transactions in one function call is not recommended.

Возвращаемые значения

A query result resource on success, or FALSE on failure.

Примеры

Пример 1. pg_query() example

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "An error occured.\n";
  exit;
}

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
  echo "An error occured.\n";
  exit;
}

while ($row = pg_fetch_row($result)) {
  echo "Author: $row[0]  E-mail: $row[1]";
  echo "<br />\n";
}

?>

Пример 2. Using pg_query() with multiple statements

<?php

$conn = pg_pconnect("dbname=publisher");

// these statements will be executed as one transaction

$query = "UPDATE authors SET author=UPPER(author) WHERE id=1;";
$query .= "UPDATE authors SET author=LOWER(author) WHERE id=2;";
$query .= "UPDATE authors SET author=NULL WHERE id=3;";

pg_query($conn, $query);

?>

Смотрите также

pg_connect()
pg_pconnect()
pg_fetch_array()
pg_fetch_object()
pg_num_rows()
pg_affected_rows()

Пред. | Начало | След.
pg_query_params | Уровень выше | pg_result_error_field


pg_result_error_field

(PHP 5 >= 5.1.0RC1)

pg_result_error_field -- Returns an individual field of an error report.

Описание

string pg_result_error_field ( resource result, int fieldcode )

pg_result_error_field() returns one of the detailed error message fields associated with result resource. It is only available against a PostgreSQL 7.4 or above server. The error field is specified by the fieldcode.

Because pg_query() and pg_query_params() return FALSE if the query fails, you must use pg_send_query() and pg_get_result() to get the result handle.

If you need to get additional error information from failed pg_query() queries, use pg_set_error_verbosity() and pg_last_error() and then parse the result.

Список параметров

result

A PostgreSQL query result resource from a previously executed statement.

fieldcode

Possible fieldcode values are: PGSQL_DIAG_SEVERITY, PGSQL_DIAG_SQLSTATE, PGSQL_DIAG_MESSAGE_PRIMARY, PGSQL_DIAG_MESSAGE_DETAIL, PGSQL_DIAG_MESSAGE_HINT, PGSQL_DIAG_STATEMENT_POSITION, PGSQL_DIAG_INTERNAL_POSITION (PostgreSQL 8.0+ only), PGSQL_DIAG_INTERNAL_QUERY (PostgreSQL 8.0+ only), PGSQL_DIAG_CONTEXT, PGSQL_DIAG_SOURCE_FILE, PGSQL_DIAG_SOURCE_LINE or PGSQL_DIAG_SOURCE_FUNCTION.

Возвращаемые значения

A string containing the contents of the error field, NULL if the field does not exist or FALSE on failure.

Примеры

Пример 1. pg_result_error_field() example

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from doesnotexist;");
  }

  $res1 = pg_get_result($dbconn);
  echo pg_result_error_field($res1, PGSQL_DIAG_SQLSTATE);
?>

Смотрите также

pg_result_error()

Пред. | Начало | След.
pg_query | Уровень выше | pg_result_error


pg_result_error

(PHP 4 >= 4.2.0, PHP 5)

pg_result_error -- Get error message associated with result

Описание

string pg_result_error ( resource result )

pg_result_error() returns any error message associated with the result resource. Therefore, the user has a better chance of getting the correct error message than with pg_last_error().

The function pg_result_error_field() can give much greater detail on result errors than pg_result_error().

Because pg_query() returns FALSE if the query fails, you must use pg_send_query() and pg_get_result() to get the result handle.

Список параметров

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

offset

Row to move the internal offset to in the result resource. Rows are numbered starting from zero.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. pg_result_seek() example

<?php

// Connect to the database
$conn = pg_pconnect("dbname=publisher");

// Execute a query
$result = pg_query($conn, "SELECT author, email FROM authors");

// Seek to the 3rd row (assuming there are 3 rows)
pg_result_seek($result, 2);

// Fetch the 3rd row
$row = pg_fetch_row($result);

?>

Смотрите также

pg_result_error_field()
pg_query()
pg_send_query()
pg_get_result()
pg_last_error()
pg_last_notice()

Пред. | Начало | След.
pg_result_error_field | Уровень выше | pg_result_seek


pg_result_seek

(PHP 4 >= 4.3.0, PHP 5)

pg_result_seek -- Set internal row offset in result resource

Описание

bool pg_result_seek ( resource result, int offset )

pg_result_seek() sets the internal row offset in a result resource.

Список параметров

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

offset

Row to move the internal offset to in the result resource. Rows are numbered starting from zero.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. pg_result_seek() example

<?php

// Connect to the database
$conn = pg_pconnect("dbname=publisher");

// Execute a query
$result = pg_query($conn, "SELECT author, email FROM authors");

// Seek to the 3rd row (assuming there are 3 rows)
pg_result_seek($result, 2);

// Fetch the 3rd row
$row = pg_fetch_row($result);

?>

Смотрите также

pg_fetch_row()
pg_fetch_assoc()
pg_fetch_array()
pg_fetch_object()
pg_fetch_result()

Пред. | Начало | След.
pg_result_error | Уровень выше | pg_result_status


pg_result_status

(PHP 4 >= 4.2.0, PHP 5)

pg_result_status -- Get status of query result

Описание

mixed pg_result_status ( resource result [, int type] )

pg_result_status() returns the status of a result resource, or the PostgreSQL command completion tag associated with the result

Список параметров

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

type

Either PGSQL_STATUS_LONG to return the numeric status of the result, or PGSQL_STATUS_STRING to return the command tag of the result. If not specified, PGSQL_STATUS_LONG is the default.

Возвращаемые значения

Possible return values are PGSQL_EMPTY_QUERY, PGSQL_COMMAND_OK, PGSQL_TUPLES_OK, PGSQL_COPY_OUT, PGSQL_COPY_IN, PGSQL_BAD_RESPONSE, PGSQL_NONFATAL_ERROR and PGSQL_FATAL_ERROR if PGSQL_STATUS_LONG is specified. Otherwise, a string containing the PostgreSQL command tag is returned.

Примеры

Пример 1. pg_result_status() example

<?php

// Connect to the database
$conn = pg_pconnect("dbname=publisher");

// Execute a COPY
$result = pg_query($conn, "COPY authors FROM STDIN;");

// Get the result status
$status = pg_result_status($result);

// Determine status
if ($status == PGSQL_COPY_IN)
   echo "Copy began.";
else
   echo "Copy failed.";

?>

Результат выполнения данного примера:

Copy began.

Смотрите также

pg_connection_status()

Пред. | Начало | След.
pg_result_seek | Уровень выше | pg_select


pg_select

(PHP 4 >= 4.3.0, PHP 5)

pg_select -- Select records

Описание

mixed pg_select ( resource connection, string table_name, array assoc_array [, int options] )

pg_select() selects records specified by assoc_array which has field=>value. For a successful query, it returns an array containing all records and fields that match the condition specified by assoc_array.

If options is specified, pg_convert() is applied to assoc_array with the specified flags.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

connection

PostgreSQL database connection resource.

table_name

Name of the table from which to select rows.

assoc_array

An array whose keys are field names in the table table_name, and whose values are what matched rows are to be updated to.

condition

An array whose keys are field names in the table table_name, and whose values are the conditions that a row must meet to be retrieved.

options

Any number of PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_EXEC, PGSQL_DML_ASYNC or PGSQL_DML_STRING combined. If PGSQL_DML_STRING is part of the options then query string is returned.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Returns string if PGSQL_DML_STRING is passed via options.

Примеры

Пример 1. pg_select() example

<?php
  $db = pg_connect('dbname=foo');
  // This is safe, since $_POST is converted automatically
  $rec = pg_select($db, 'post_log', $_POST);
  if ($rec) {
      echo "Records selected\n";
      var_dump($rec);
  } else {
      echo "User must have sent wrong inputs\n";
  }
?>

Смотрите также

pg_convert()

Пред. | Начало | След.
pg_result_status | Уровень выше | pg_send_execute


pg_send_execute

(PHP 5 >= 5.1.0RC1)

pg_send_execute -- Sends a request to execute a prepared statement with given parameters, without waiting for the result(s).

Описание

bool pg_send_execute ( resource connection, string stmtname, array params )

Sends a request to execute a prepared statement with given parameters, without waiting for the result(s).

This is similar to pg_send_query_params(), but the command to be executed is specified by naming a previously-prepared statement, instead of giving a query string. The function's parameters are handled identically to pg_execute(). Like pg_execute(), it will not work on pre-7.4 versions of PostgreSQL.

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

stmtname

The name of the prepared statement to execute. if "" is specified, then the unnamed statement is executed. The name must have been previously prepared using pg_prepare(), pg_send_prepare() or a PREPARE SQL command.

params

An array of parameter values to substitute for the $1, $2, etc. placeholders in the original prepared query string. The number of elements in the array must match the number of placeholders.

Возвращаемые значения

Returns TRUE on success, FALSE on failure. Use pg_get_result() to determine the query result.

Примеры

Пример 1. Using pg_send_execute()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  // Prepare a query for execution
  if (!pg_connection_busy($dbconn)) {
    pg_send_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');
    $res1 = pg_get_result($dbconn);
  }

  // Execute the prepared query.  Note that it is not necessary to escape
  // the string "Joe's Widgets" in any way
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Joe's Widgets"));
    $res2 = pg_get_result($dbconn);
  }

  // Execute the same prepared query, this time with a different parameter
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));
    $res3 = pg_get_result($dbconn);
  }

?>

Смотрите также

pg_prepare()
pg_send_prepare()
pg_execute()

Пред. | Начало | След.
pg_select | Уровень выше | pg_send_prepare


pg_send_prepare

(PHP 5 >= 5.1.0RC1)

pg_send_prepare -- Sends a request to create a prepared statement with the given parameters, without waiting for completion.

Описание

bool pg_send_prepare ( resource connection, string stmtname, string query )

Sends a request to create a prepared statement with the given parameters, without waiting for completion.

This is an asynchronous version of pg_prepare(): it returns TRUE if it was able to dispatch the request, and FALSE if not. After a successful call, call pg_get_result() to determine whether the server successfully created the prepared statement. The function's parameters are handled identically to pg_prepare(). Like pg_prepare(), it will not work on pre-7.4 versions of PostgreSQL.

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

stmtname

The name to give the prepared statement. Must be unique per-connection. If "" is specified, then an unnamed statement is created, overwriting any previously defined unnamed statement.

query

The parameterised SQL statement. Must contain only a single statement. (multiple statements separated by semi-colons are not allowed.) If any parameters are used, they are referred to as $1, $2, etc.

Возвращаемые значения

Returns TRUE on success, FALSE on failure. Use pg_get_result() to determine the query result.

Примеры

Пример 1. Using pg_send_prepare()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  // Prepare a query for execution
  if (!pg_connection_busy($dbconn)) {
    pg_send_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');
    $res1 = pg_get_result($dbconn);
  }

  // Execute the prepared query.  Note that it is not necessary to escape
  // the string "Joe's Widgets" in any way
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Joe's Widgets"));
    $res2 = pg_get_result($dbconn);
  }

  // Execute the same prepared query, this time with a different parameter
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));
    $res3 = pg_get_result($dbconn);
  }

?>

Смотрите также

pg_connect()
pg_pconnect()
pg_execute()
pg_send_execute()
pg_send_query_params()

Пред. | Начало | След.
pg_send_execute | Уровень выше | pg_send_query_params


pg_send_query_params

(PHP 5 >= 5.1.0RC1)

pg_send_query_params -- Submits a command and separate parameters to the server without waiting for the result(s).

Описание

bool pg_send_query_params ( resource connection, string query, array params )

Submits a command and separate parameters to the server without waiting for the result(s).

This is equivalent to pg_send_query() except that query parameters can be specified separately from the query string. The function's parameters are handled identically to pg_query_params(). Like pg_query_params(), it will not work on pre-7.4 PostgreSQL connections, and it allows only one command in the query string.

Список параметров

connection

PostgreSQL database connection resource.

query

The parameterised SQL statement. Must contain only a single statement. (multiple statements separated by semi-colons are not allowed.) If any parameters are used, they are referred to as $1, $2, etc.

params

An array of parameter values to substitute for the $1, $2, etc. placeholders in the original prepared query string. The number of elements in the array must match the number of placeholders.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Use pg_get_result() to determine the query result.

Примеры

Пример 1. Using pg_send_query_params()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  // Using parameters.  Note that it is not necessary to quote or escape
  // the parameter.
  pg_send_query_params($dbconn, 'select count(*) from authors where city = $1', array('Perth'));

  // Compare against basic pg_send_query usage
  $str = pg_escape_string('Perth');
  pg_send_query($dbconn, "select count(*) from authors where city = '${str}'");
?>

Смотрите также

pg_send_query()

Пред. | Начало | След.
pg_send_prepare | Уровень выше | pg_send_query


pg_send_query

(PHP 4 >= 4.2.0, PHP 5)

pg_send_query -- Sends asynchronous query

Описание

bool pg_send_query ( resource connection, string query )

bool pg_send_query ( string query )

pg_send_query() sends a query or queries asynchronously to the connection. Unlike pg_query(), it can send multiple queries at once to PostgreSQL and get the results one by one using pg_get_result().

Script execution is not blocked while the queries are executing. Use pg_connection_busy() to check if the connection is busy (i.e. the query is executing). Queries may be cancelled using pg_cancel_query().

Although the user can send multiple queries at once, multiple queries cannot be sent over a busy connection. If a query is sent while the connection is busy, it waits until the last query is finished and discards all its results.

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

query

The SQL statement or statements to be executed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Use pg_get_result() to determine the query result.

Примеры

Пример 1. pg_send_query() example

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from authors; select count(*) from authors;");
  }

  $res1 = pg_get_result($dbconn);
  echo "First call to pg_get_result(): $res1\n";
  $rows1 = pg_num_rows($res1);
  echo "$res1 has $rows1 records\n\n";

  $res2 = pg_get_result($dbconn);
  echo "Second call to pg_get_result(): $res2\n";
  $rows2 = pg_num_rows($res2);
  echo "$res2 has $rows2 records\n";
?>

Результат выполнения данного примера:

First call to pg_get_result(): Resource id #3
Resource id #3 has 3 records

Second call to pg_get_result(): Resource id #4
Resource id #4 has 1 records

Смотрите также

pg_query()
pg_cancel_query()
pg_get_result()
pg_connection_busy()

Пред. | Начало | След.
pg_send_query_params | Уровень выше | pg_set_client_encoding


pg_set_client_encoding

(PHP 3 CVS only, PHP 4 >= 4.0.3, PHP 5)

pg_set_client_encoding -- Set the client encoding

Описание

int pg_set_client_encoding ( string encoding )

int pg_set_client_encoding ( resource connection, string encoding )

pg_set_client_encoding() sets the client encoding and returns 0 if success or -1 if error.

PostgreSQL will automatically convert data in the backend database encoding into the frontend encoding.

Замечание: The function used to be called pg_setclientencoding().

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

encoding

The required client encoding. One of SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE, MULE_INTERNAL, LATINX (X=1...9), KOI8, WIN, ALT, SJIS, BIG5 or WIN1250.

The exact list of available encodings depends on your PostgreSQL version, so check your PostgreSQL manual for a more specific list.

Возвращаемые значения

Returns 0 on success or -1 on error.

Примеры

Пример 1. pg_set_client_encoding() example

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "An error occured.\n";
  exit;
}

// Set the client encoding to UNICODE.  Data will be automatically
// converted from the backend encoding to the frontend.
pg_set_client_encoding($conn, UNICODE);

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
  echo "An error occured.\n";
  exit;
}

// Write out UTF-8 data
while ($row = pg_fetch_row($result)) {
  echo "Author: $row[0]  E-mail: $row[1]";
  echo "<br />\n";
}

?>

Смотрите также

pg_client_encoding()

Пред. | Начало | След.
pg_send_query | Уровень выше | pg_set_error_verbosity


pg_set_error_verbosity

(PHP 5 >= 5.1.0RC1)

pg_set_error_verbosity -- Determines the verbosity of messages returned by pg_last_error() and pg_result_error().

Описание

int pg_set_error_verbosity ( resource connection, int verbosity )

int pg_set_error_verbosity ( int verbosity )

Determines the verbosity of messages returned by pg_last_error() and pg_result_error().

pg_set_error_verbosity() sets the verbosity mode, returning the connection's previous setting. In PGSQL_ERRORS_TERSE mode, returned messages include severity, primary text, and position only; this will normally fit on a single line. The default mode (PGSQL_ERRORS_DEFAULT) produces messages that include the above plus any detail, hint, or context fields (these may span multiple lines). The PGSQL_ERRORS_VERBOSE mode includes all available fields. Changing the verbosity does not affect the messages available from already-existing result objects, only subsequently-created ones.

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

verbosity

The required verbosity: PGSQL_ERRORS_TERSE, PGSQL_ERRORS_DEFAULT or PGSQL_ERRORS_VERBOSE.

Возвращаемые значения

The previous verbosity level: PGSQL_ERRORS_TERSE, PGSQL_ERRORS_DEFAULT or PGSQL_ERRORS_VERBOSE.

Примеры

Пример 1. pg_set_error_verbosity() example

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from doesnotexist;");
  }

  pg_set_error_verbosity($dbconn, PGSQL_ERRORS_VERBOSE);
  $res1 = pg_get_result($dbconn);
  echo pg_result_error($res1);
?>

Смотрите также

pg_last_error()
pg_result_error()

Пред. | Начало | След.
pg_set_client_encoding | Уровень выше | pg_trace


pg_trace

(PHP 4 >= 4.0.1, PHP 5)

pg_trace -- Enable tracing a PostgreSQL connection

Описание

bool pg_trace ( string pathname [, string mode [, resource connection]] )

pg_trace() enables tracing of the PostgreSQL frontend/backend communication to a file. To fully understand the results, one needs to be familiar with the internals of PostgreSQL communication protocol.

For those who are not, it can still be useful for tracing errors in queries sent to the server, you could do for example grep '^To backend' trace.log and see what queries actually were sent to the PostgreSQL server. For more information, refer to the PostgreSQL Documentation.

Список параметров

pathname

The full path and file name of the file in which to write the trace log. Same as in fopen().

pathname

An optional file access mode, same as for fopen(). Defaults to "w".

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. pg_trace() example

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   pg_trace('/tmp/trace.log', 'w', $pgsql_conn);
   pg_query("SELECT 1");
   pg_untrace($pgsql_conn);
   // Now /tmp/trace.log will contain backend communication
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>

Смотрите также

fopen()
pg_untrace()

Пред. | Начало | След.
pg_set_error_verbosity | Уровень выше | pg_transaction_status


pg_tty

(PHP 3, PHP 4, PHP 5)

pg_tty -- Return the TTY name associated with the connection

Описание

string pg_tty ( [resource connection] )

pg_tty() returns the TTY name that server side debugging output is sent to on the given PostgreSQL connection resource.

Замечание: pg_tty() is obsolete, since the server no longer pays attention to the TTY setting, but the function remains for backwards compatibility.

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

Возвращаемые значения

A string containing the debug TTY of the connection, or FALSE on error.

Примеры

Пример 1. pg_tty() example

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   print "Server debug TTY is: " . pg_tty($pgsql_conn) . "<br/>\n";
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>

Пред. | Начало | След.
pg_transaction_status | Уровень выше | pg_unescape_bytea


pg_unescape_bytea

(PHP 4 >= 4.3.0, PHP 5)

pg_unescape_bytea -- Unescape binary for bytea type

Описание

string pg_unescape_bytea ( string data )

pg_unescape_bytea() unescapes PostgreSQL bytea data values. It returns the unescaped string, possibly containing binary data.

Замечание: When you SELECT a bytea type, PostgreSQL returns octal byte values prefixed with '\' (e.g. \032). Users are supposed to convert back to binary format manually.

This function requires PostgreSQL 7.2 or later. With PostgreSQL 7.2.0 and 7.2.1, bytea values must be cast when you enable multi-byte support. i.e. INSERT INTO test_table (image) VALUES ('$image_escaped'::bytea); PostgreSQL 7.2.2 or later does not need a cast. The exception is when the client and backend character encoding does not match, and there may be multi-byte stream error. User must then cast to bytea to avoid this error.

Список параметров

data

A string containing PostgreSQL bytea data to be converted into a PHP binary string.

Возвращаемые значения

A string containing the unescaped data.

Примеры

Пример 1. pg_unescape_bytea() example

<?php
  // Connect to the database
  $dbconn = pg_connect('dbname=foo');

  // Get the bytea data
  $res = pg_query("SELECT data FROM gallery WHERE name='Pine trees'");
  $raw = pg_fetch_result($res, 'data');

  // Convert to binary and send to the browser
  header('Content-type: image/jpeg');
  echo pg_unescape_bytea($raw);
?>

Смотрите также

pg_escape_bytea()
pg_escape_string()

Пред. | Начало | След.
pg_tty | Уровень выше | pg_untrace


pg_untrace

(PHP 4 >= 4.0.1, PHP 5)

pg_untrace -- Disable tracing of a PostgreSQL connection

Описание

bool pg_untrace ( [resource connection] )

Stop tracing started by pg_trace().

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

Возвращаемые значения

Always returns TRUE.

Примеры

Пример 1. pg_untrace() example

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   pg_trace('/tmp/trace.log', 'w', $pgsql_conn);
   pg_query("SELECT 1");
   pg_untrace($pgsql_conn);
   // Now tracing of backend communication is disabled
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>

Смотрите также

pg_trace()

Пред. | Начало | След.
pg_unescape_bytea | Уровень выше | pg_update


pg_update

(PHP 4 >= 4.3.0, PHP 5)

pg_update -- Update table

Описание

mixed pg_update ( resource connection, string table_name, array data, array condition [, int options] )

pg_update() updates records that matches condition with data. If options is specified, pg_convert() is applied to data with specified options.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

connection

PostgreSQL database connection resource.

table_name

Name of the table into which to update rows.

data

An array whose keys are field names in the table table_name, and whose values are what matched rows are to be updated to.

condition

An array whose keys are field names in the table table_name, and whose values are the conditions that a row must meet to be updated.

options

Any number of PGSQL_CONV_OPTS, PGSQL_DML_NO_CONV, PGSQL_DML_EXEC or PGSQL_DML_STRING combined. If PGSQL_DML_STRING is part of the options then query string is returned.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Returns string if PGSQL_DML_STRING is passed via options.

Примеры

Пример 1. pg_update() example

<?php
  $db = pg_connect('dbname=foo');
  $data = array('field1'=>'AA', 'field2'=>'BB');

  // This is safe, since $_POST is converted automatically
  $res = pg_update($db, 'post_log', $_POST, $data);
  if ($res) {
      echo "Data is updated: $res\n";
  } else {
      echo "User must have sent wrong inputs\n";
  }
?>

Смотрите также

pg_convert()

Пред. | Начало | След.
pg_untrace | Уровень выше | pg_version


pg_version

(PHP 5)

pg_version -- Returns an array with client, protocol and server version (when available)

Описание

array pg_version ( [resource connection] )

pg_version() returns an array with the client, protocol and server version. Protocol and server versions are only avaliable if PHP was compiled with PostgreSQL 7.4 or later.

For more detailed server information, use pg_parameter_status().

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

Возвращаемые значения

Returns an array with client, protocol and server_version keys and values (if available). Returns FALSE on error or invalid connection.

Примеры

Пример 1. pg_version() example

<?php
  $dbconn = pg_connect("host=localhost port=5432 dbname=mary")
     or die("Could not connect");

  $v = pg_version($dbconn);

  echo $v['client'];
?>

Результат выполнения данного примера:

7.4

Смотрите также

pg_parameter_status()

Пред. | Начало | След.
pg_update | Уровень выше | PostgreSQL Functions (PDO_PGSQL)


POSIX Functions

Руководство по PHP
Пред. След.

CXIII. POSIX Functions

Введение

This module contains an interface to those functions defined in the IEEE 1003.1 (POSIX.1) standards document which are not accessible through other means. POSIX.1 for example defined the open(), read(), write() and close() functions, too, which traditionally have been part of PHP 3 for a long time. Some more system specific functions have not been available before, though, and this module tries to remedy this by providing easy access to these functions.

Внимание

Sensitive data can be retrieved with the POSIX functions, e.g. posix_getpwnam() and friends. None of the POSIX function perform any kind of access checking when safe mode is enabled. It's therefore strongly advised to disable the POSIX extension at all (use --disable-posix in your configure line) if you're operating in such an environment.

Замечание: Для Windows-платформ это расширение недоступно.

Установка

POSIX functions are enabled by default. You can disable POSIX-like functions with --disable-posix.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

POSIX_F_OK (integer)

Check whether the file exists.

POSIX_R_OK (integer)

Check whether the file exists and has read permissions.

POSIX_W_OK (integer)

Check whether the file exists and has write permissions.

POSIX_X_OK (integer)

Check whether the file exists and has execute permissions.

POSIX_S_IFBLK (integer)

Block special file

POSIX_S_IFCHR (integer)

Character special file

POSIX_S_IFIFO (integer)

FIFO (named pipe) special file

POSIX_S_IFREG (integer)

Normal file

POSIX_S_IFSOCK (integer)

Socket

Замечание: These constants are available since PHP 5.1.0. Please also note that some of them may not be available in your system.

Смотрите также

The section about Process Control Functions maybe of interest for you.

Содержание
posix_access -- Determine accessibility of a file
posix_ctermid -- Get path name of controlling terminal
posix_get_last_error -- Retrieve the error number set by the last posix function that failed
posix_getcwd -- Pathname of current directory
posix_getegid -- Return the effective group ID of the current process
posix_geteuid -- Return the effective user ID of the current process
posix_getgid -- Return the real group ID of the current process
posix_getgrgid -- Return info about a group by group id
posix_getgrnam -- Return info about a group by name
posix_getgroups -- Return the group set of the current process
posix_getlogin -- Return login name
posix_getpgid -- Get process group id for job control
posix_getpgrp -- Return the current process group identifier
posix_getpid -- Return the current process identifier
posix_getppid -- Return the parent process identifier
posix_getpwnam -- Return info about a user by username
posix_getpwuid -- Return info about a user by user id
posix_getrlimit -- Return info about system resource limits
posix_getsid -- Get the current sid of the process
posix_getuid -- Return the real user ID of the current process
posix_isatty -- Determine if a file descriptor is an interactive terminal
posix_kill -- Send a signal to a process
posix_mkfifo -- Create a fifo special file (a named pipe)
posix_mknod -- Create a special or ordinary file (POSIX.1)
posix_setegid -- Set the effective GID of the current process
posix_seteuid -- Set the effective UID of the current process
posix_setgid -- Set the GID of the current process
posix_setpgid -- Set process group id for job control
posix_setsid -- Make the current process a session leader
posix_setuid -- Set the UID of the current process
posix_strerror -- Retrieve the system error message associated with the given errno
posix_times -- Get process times
posix_ttyname -- Determine terminal device name
posix_uname -- Get system name

Пред. | Начало | След.
zend_version | Уровень выше | posix_access


posix_access

(PHP 5 >= 5.1.0RC1)

posix_access -- Determine accessibility of a file

Описание

bool posix_access ( string file [, int mode] )

posix_access() checks the user's permission of a file.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Список параметров

file

The name of the file to be tested.

mode

A mask consisting of one or more of POSIX_F_OK, POSIX_R_OK, POSIX_W_OK and POSIX_X_OK. Defaults to POSIX_F_OK.

POSIX_R_OK, POSIX_W_OK and POSIX_X_OK request checking whether the file exists and has read, write and execute permissions, respectively. POSIX_F_OK just requests checking for the existence of the file.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. posix_access() example

This example will check if the $file is readable and writable, otherwise will print an error message.

<?php

$file = 'some_file';

if (posix_access($file, POSIX_R_OK | POSIX_W_OK)) {
    echo 'The file is readable and writable!';

} else {
    $error = posix_get_last_error();

    echo "Error $error: " . posix_strerror($error);
}

?>

Смотрите также

posix_get_last_error()
posix_strerror()

Пред. | Начало | След.
POSIX Functions | Уровень выше | posix_ctermid


posix_ctermid

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_ctermid -- Get path name of controlling terminal

Description

string posix_ctermid ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
posix_access | Уровень выше | posix_get_last_error


posix_get_last_error

(PHP 4 >= 4.2.0, PHP 5)

posix_get_last_error -- Retrieve the error number set by the last posix function that failed

Description

int posix_get_last_error ( void )

Returns the errno (error number) set by the last posix function that failed. If no errors exist, 0 is returned. If you're wanting the system error message associated with the errno, use posix_strerror().

See also posix_strerror().

Пред. | Начало | След.
posix_ctermid | Уровень выше | posix_getcwd


posix_getcwd

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_getcwd -- Pathname of current directory

Description

string posix_getcwd ( void )

posix_getcwd() returns the absolute pathname of the script's current working directory. posix_getcwd() returns FALSE on error.

Пред. | Начало | След.
posix_get_last_error | Уровень выше | posix_getegid


posix_getegid

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

posix_getegid -- Return the effective group ID of the current process

Description

int posix_getegid ( void )

Return the numeric effective group ID of the current process. See also posix_getgrgid() for information on how to convert this into a useable group name.

Пред. | Начало | След.
posix_getcwd | Уровень выше | posix_geteuid


posix_geteuid

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

posix_geteuid -- Return the effective user ID of the current process

Description

int posix_geteuid ( void )

Return the numeric effective user ID of the current process. See also posix_getpwuid() for information on how to convert this into a useable username.

Пред. | Начало | След.
posix_getegid | Уровень выше | posix_getgid


posix_getgid

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

posix_getgid -- Return the real group ID of the current process

Description

int posix_getgid ( void )

Return the numeric real group ID of the current process. See also posix_getgrgid() for information on how to convert this into a useable group name.

Пред. | Начало | След.
posix_geteuid | Уровень выше | posix_getgrgid


posix_getgrgid

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_getgrgid -- Return info about a group by group id

Description

array posix_getgrgid ( int gid )

Returns an array of information about a group and FALSE on failure. If gid isn't a number then NULL is returned and an E_WARNING level error is generated.

Пример 1. Example use of posix_getgrgid()

<?php

$groupid   = posix_getegid();
$groupinfo = posix_getgrgid($groupid);

print_r($groupinfo);

?>

An example output:

Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

Замечание: As of PHP 4.2.0, members is returned as an array of member usernames in the group. Before this time it was simply an integer (the number of members in the group) and the member names were returned with numerical indices.

See also posix_getegid(),
filegroup(),
stat(), and
safe_mode_gid.

Пред. | Начало | След.
posix_getgid | Уровень выше | posix_getgrnam


posix_getgrnam

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_getgrnam -- Return info about a group by name

Description

array posix_getgrnam ( string name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
posix_getgrgid | Уровень выше | posix_getgroups


posix_getgroups

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

posix_getgroups -- Return the group set of the current process

Description

array posix_getgroups ( void )

Returns an array of integers containing the numeric group ids of the group set of the current process. See also posix_getgrgid() for information on how to convert this into useable group names.

Пред. | Начало | След.
posix_getgrnam | Уровень выше | posix_getlogin


posix_getlogin

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_getlogin -- Return login name

Description

string posix_getlogin ( void )

Returns the login name of the user owning the current process. See posix_getpwnam() for information how to get more information about this user.

Пред. | Начало | След.
posix_getgroups | Уровень выше | posix_getpgid


posix_getpgid

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

posix_getpgid -- Get process group id for job control

Description

int posix_getpgid ( int pid )

Returns the process group identifier of the process pid.

This is not a POSIX function, but is common on BSD and System V systems. If your system does not support this function at system level, this PHP function will always return FALSE.

Пред. | Начало | След.
posix_getlogin | Уровень выше | posix_getpgrp


posix_getpgrp

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

posix_getpgrp -- Return the current process group identifier

Description

int posix_getpgrp ( void )

Return the process group identifier of the current process. See POSIX.1 and the getpgrp(2) manual page on your POSIX system for more information on process groups.

Пред. | Начало | След.
posix_getpgid | Уровень выше | posix_getpid


posix_getpid

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

posix_getpid -- Return the current process identifier

Description

int posix_getpid ( void )

Return the process identifier of the current process.

Пред. | Начало | След.
posix_getpgrp | Уровень выше | posix_getppid


posix_getppid

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

posix_getppid -- Return the parent process identifier

Description

int posix_getppid ( void )

Return the process identifier of the parent process of the current process.

Пред. | Начало | След.
posix_getpid | Уровень выше | posix_getpwnam


posix_getpwnam

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_getpwnam -- Return info about a user by username

Description

array posix_getpwnam ( string username )

Returns an associative array containing information about a user referenced by an alphanumeric username, passed in the username parameter.

The array elements returned are:

Таблица 1. The user information array

Element | Description
name | The name element contains the username of the user. This is a short, usually less than 16 character "handle" of the user, not her real, full name. This should be the same as the username parameter used when calling the function, and hence redundant.
passwd | The passwd element contains the user's password in an encrypted format. Often, for example on a system employing "shadow" passwords, an asterisk is returned instead.
uid | User ID of the user in numeric form.
gid | The group ID of the user. Use the function posix_getgrgid() to resolve the group name and a list of its members.
gecos | GECOS is an obsolete term that refers to the finger information field on a Honeywell batch processing system. The field, however, lives on, and its contents have been formalized by POSIX. The field contains a comma separated list containing the user's full name, office phone, office number, and home phone number. On most systems, only the user's full name is available.
dir | This element contains the absolute path to the home directory of the user.
shell | The shell element contains the absolute path to the executable of the user's default shell.

Пред. | Начало | След.
posix_getppid | Уровень выше | posix_getpwuid


posix_getpwuid

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_getpwuid -- Return info about a user by user id

Description

array posix_getpwuid ( int uid )

Returns an associative array containing information about a user referenced by a numeric user ID, passed in the uid parameter.

The array elements returned are:

Таблица 1. The user information array

Element | Description
name | The name element contains the username of the user. This is a short, usually less than 16 character "handle" of the user, not her real, full name.
passwd | The passwd element contains the user's password in an encrypted format. Often, for example on a system employing "shadow" passwords, an asterisk is returned instead.
uid | User ID, should be the same as the uid parameter used when calling the function, and hence redundant.
gid | The group ID of the user. Use the function posix_getgrgid() to resolve the group name and a list of its members.
gecos | GECOS is an obsolete term that refers to the finger information field on a Honeywell batch processing system. The field, however, lives on, and its contents have been formalized by POSIX. The field contains a comma separated list containing the user's full name, office phone, office number, and home phone number. On most systems, only the user's full name is available.
dir | This element contains the absolute path to the home directory of the user.
shell | The shell element contains the absolute path to the executable of the user's default shell.

Пред. | Начало | След.
posix_getpwnam | Уровень выше | posix_getrlimit


posix_getrlimit

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

posix_getrlimit -- Return info about system resource limits

Description

array posix_getrlimit ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
posix_getpwuid | Уровень выше | posix_getsid


posix_getsid

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

posix_getsid -- Get the current sid of the process

Description

int posix_getsid ( int pid )

Return the sid of the process pid. If pid is 0, the sid of the current process is returned.

This is not a POSIX function, but is common on System V systems. If your system does not support this function at system level, this PHP function will always return FALSE.

Пред. | Начало | След.
posix_getrlimit | Уровень выше | posix_getuid


posix_getuid

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

posix_getuid -- Return the real user ID of the current process

Description

int posix_getuid ( void )

Return the numeric real user ID of the current process. See also posix_getpwuid() for information on how to convert this into a useable username.

Пред. | Начало | След.
posix_getsid | Уровень выше | posix_isatty


posix_isatty

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_isatty -- Determine if a file descriptor is an interactive terminal

Description

bool posix_isatty ( int fd )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
posix_getuid | Уровень выше | posix_kill


posix_kill

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_kill -- Send a signal to a process

Description

bool posix_kill ( int pid, int sig )

Send the signal sig to the process with the process identifier pid. Returns FALSE, if unable to send the signal, TRUE otherwise.

See also the kill(2) manual page of your POSIX system, which contains additional information about negative process identifiers, the special pid 0, the special pid -1, and the signal number 0.

Пред. | Начало | След.
posix_isatty | Уровень выше | posix_mkfifo


posix_mkfifo

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_mkfifo -- Create a fifo special file (a named pipe)

Description

bool posix_mkfifo ( string pathname, int mode )

posix_mkfifo() creates a special FIFO file which exists in the file system and acts as a bidirectional communication endpoint for processes.

The second parameter mode has to be given in octal notation (e.g. 0644). The permission of the newly created FIFO also depends on the setting of the current umask(). The permissions of the created file are (mode & ~umask).

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: Когда опция safe mode включена, PHP проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Пред. | Начало | След.
posix_kill | Уровень выше | posix_mknod


posix_setegid

(PHP 4 >= 4.0.2, PHP 5)

posix_setegid -- Set the effective GID of the current process

Description

bool posix_setegid ( int gid )

Set the effective group ID of the current process. This is a privileged function and you need appropriate privileges (usually root) on your system to be able to perform this function.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
posix_mknod | Уровень выше | posix_seteuid


posix_seteuid

(PHP 4 >= 4.0.2, PHP 5)

posix_seteuid -- Set the effective UID of the current process

Description

bool posix_seteuid ( int uid )

Set the real user ID of the current process. This is a privileged function and you need appropriate privileges (usually root) on your system to be able to perform this function.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also posix_setgid().

Пред. | Начало | След.
posix_setegid | Уровень выше | posix_setgid


posix_setgid

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_setgid -- Set the GID of the current process

Description

bool posix_setgid ( int gid )

Set the real group ID of the current process. This is a privileged function and you need appropriate privileges (usually root) on your system to be able to perform this function. The appropriate order of function calls is posix_setgid() first, posix_setuid() last.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
posix_seteuid | Уровень выше | posix_setpgid


posix_setpgid

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_setpgid -- Set process group id for job control

Description

bool posix_setpgid ( int pid, int pgid )

Let the process pid join the process group pgid. See POSIX.1 and the setsid(2) manual page on your POSIX system for more informations on process groups and job control. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
posix_setgid | Уровень выше | posix_setsid


posix_setsid

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_setsid -- Make the current process a session leader

Description

int posix_setsid ( void )

Make the current process a session leader. See POSIX.1 and the setsid(2) manual page on your POSIX system for more information on process groups and job control. Returns the session id.

Пред. | Начало | След.
posix_setpgid | Уровень выше | posix_setuid


posix_setuid

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_setuid -- Set the UID of the current process

Description

bool posix_setuid ( int uid )

Set the real user ID of the current process. This is a privileged function and you need appropriate privileges (usually root) on your system to be able to perform this function.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also posix_setgid().

Пред. | Начало | След.
posix_setsid | Уровень выше | posix_strerror


posix_strerror

(PHP 4 >= 4.2.0, PHP 5)

posix_strerror -- Retrieve the system error message associated with the given errno

Description

string posix_strerror ( int errno )

Returns the POSIX system error message associated with the given errno. If errno is 0, then the string "Success" is returned. The function posix_get_last_error() is used for retrieving the last POSIX errno.

See also posix_get_last_error().

Пред. | Начало | След.
posix_setuid | Уровень выше | posix_times


posix_times

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_times -- Get process times

Description

array posix_times ( void )

Returns a hash of strings with information about the current process CPU usage. The indices of the hash are

  • ticks - the number of clock ticks that have elapsed since reboot.

  • utime - user time used by the current process.

  • stime - system time used by the current process.

  • cutime - user time used by current process and children.

  • cstime - system time used by current process and children.

Внимание

This function isn't reliable to use, it may return negative values for high times.

Пред. | Начало | След.
posix_strerror | Уровень выше | posix_ttyname


posix_ttyname

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

posix_ttyname -- Determine terminal device name

Description

string posix_ttyname ( int fd )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
posix_times | Уровень выше | posix_uname


posix_uname

(PHP 3 >= 3.0.10, PHP 4, PHP 5)

posix_uname -- Get system name

Description

array posix_uname ( void )

Returns a hash of strings with information about the system. The indices of the hash are

  • sysname - operating system name (e.g. Linux)

  • nodename - system name (e.g. valiant)

  • release - operating system release (e.g. 2.2.10)

  • version - operating system version (e.g. #4 Tue Jul 20 17:01:36 MEST 1999)

  • machine - system architecture (e.g. i586)

  • domainname - DNS domainname (e.g. example.com)

domainname is a GNU extension and not part of POSIX.1, so this field is only available on GNU systems or when using the GNU libc.

Posix requires that you must not make any assumptions about the format of the values, e.g. you cannot rely on three digit version numbers or anything else returned by this function.

Пред. | Начало | След.
posix_ttyname | Уровень выше | Regular Expression Functions (POSIX Extended)


Printer Functions

Руководство по PHP
Пред. След.

CXVII. Printer Functions

Введение

These functions are only available under Windows 9.x, ME, NT4 and 2000. They have been added in PHP 4.0.4.

Установка

This PECL extension is not bundled with PHP.

Windows users must enable php_printer.dll inside of php.ini in order to use these functions. Вы можете получить не встроенное расширение PECL с различных страниц снимков PECL (выберите соответствующий репозиторий для вашей версии PHP): PECL для PHP 4.3.x, PECL для PHP 5.0.x или PECL Нестабильные.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Printer configuration options

Name | Default | Changeable | Changelog
printer.default_printer | "" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Содержание
printer_abort -- Deletes the printer's spool file
printer_close -- Close an open printer connection
printer_create_brush -- Create a new brush
printer_create_dc -- Create a new device context
printer_create_font -- Create a new font
printer_create_pen -- Create a new pen
printer_delete_brush -- Delete a brush
printer_delete_dc -- Delete a device context
printer_delete_font -- Delete a font
printer_delete_pen -- Delete a pen
printer_draw_bmp -- Draw a bmp
printer_draw_chord -- Draw a chord
printer_draw_elipse -- Draw an ellipse
printer_draw_line -- Draw a line
printer_draw_pie -- Draw a pie
printer_draw_rectangle -- Draw a rectangle
printer_draw_roundrect -- Draw a rectangle with rounded corners
printer_draw_text -- Draw text
printer_end_doc -- Close document
printer_end_page -- Close active page
printer_get_option -- Retrieve printer configuration data
printer_list -- Return an array of printers attached to the server
printer_logical_fontheight -- Get logical font height
printer_open -- Open connection to a printer
printer_select_brush -- Select a brush
printer_select_font -- Select a font
printer_select_pen -- Select a pen
printer_set_option -- Configure the printer connection
printer_start_doc -- Start a new document
printer_start_page -- Start a new page
printer_write -- Write data to the printer

Пред. | Начало | След.
PDO_PGSQL DSN | Уровень выше | printer_abort


printer_abort

(PECL)

printer_abort -- Deletes the printer's spool file

Description

void printer_abort ( resource handle )

This function deletes the printers spool file.

handle must be a valid handle to a printer.

Пример 1. printer_abort() example

<?php
$handle = printer_open();
printer_abort($handle);
printer_close($handle);
?>

Пред. | Начало | След.
Printer Functions | Уровень выше | printer_close


printer_close

(PECL)

printer_close -- Close an open printer connection

Description

void printer_close ( resource handle )

This function closes the printer connection. printer_close() also closes the active device context.

handle must be a valid handle to a printer.

Пример 1. printer_close() example

<?php
$handle = printer_open();
printer_close($handle);
?>

Пред. | Начало | След.
printer_abort | Уровень выше | printer_create_brush


printer_create_brush

(PECL)

printer_create_brush -- Create a new brush

Description

resource printer_create_brush ( int style, string color )

The function creates a new brush and returns a handle to it. A brush is used to fill shapes. For an example see printer_select_brush(). color must be a color in RGB hex format, i.e. "000000" for black, style must be one of the following constants:

  • PRINTER_BRUSH_SOLID: creates a brush with a solid color.

  • PRINTER_BRUSH_DIAGONAL: creates a brush with a 45-degree upward left-to-right hatch ( / ).

  • PRINTER_BRUSH_CROSS: creates a brush with a cross hatch ( + ).

  • PRINTER_BRUSH_DIAGCROSS: creates a brush with a 45 cross hatch ( x ).

  • PRINTER_BRUSH_FDIAGONAL: creates a brush with a 45-degree downward left-to-right hatch ( \ ).

  • PRINTER_BRUSH_HORIZONTAL: creates a brush with a horizontal hatch ( - ).

  • PRINTER_BRUSH_VERTICAL: creates a brush with a vertical hatch ( | ).

  • PRINTER_BRUSH_CUSTOM: creates a custom brush from an BMP file. The second parameter is used to specify the BMP instead of the RGB color code.

Пред. | Начало | След.
printer_close | Уровень выше | printer_create_dc


printer_create_dc

(PECL)

printer_create_dc -- Create a new device context

Description

void printer_create_dc ( resource handle )

The function creates a new device context. A device context is used to customize the graphic objects of the document. handle must be a valid handle to a printer.

Пример 1. printer_create_dc() example

<?php
$handle = printer_open();
printer_start_doc($handle);
printer_start_page($handle);

printer_create_dc($handle);
/* do some stuff with the dc */
printer_set_option($handle, PRINTER_TEXT_COLOR, "333333");
printer_draw_text($handle, 1, 1, "text");
printer_delete_dc($handle);

/* create another dc */
printer_create_dc($handle);
printer_set_option($handle, PRINTER_TEXT_COLOR, "000000");
printer_draw_text($handle, 1, 1, "text");
/* do some stuff with the dc */

printer_delete_dc($handle);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Пред. | Начало | След.
printer_create_brush | Уровень выше | printer_create_font


printer_create_font

(PECL)

printer_create_font -- Create a new font

Description

resource printer_create_font ( string face, int height, int width, int font_weight, bool italic, bool underline, bool strikeout, int orientation )

The function creates a new font and returns a handle to it. A font is used to draw text. For an example see printer_select_font(). face must be a string specifying the font face. height specifies the font height, and width the font width. The font_weight specifies the font weight (400 is normal), and can be one of the following predefined constants.

  • PRINTER_FW_THIN: sets the font weight to thin (100).

  • PRINTER_FW_ULTRALIGHT: sets the font weight to ultra light (200).

  • PRINTER_FW_LIGHT: sets the font weight to light (300).

  • PRINTER_FW_NORMAL: sets the font weight to normal (400).

  • PRINTER_FW_MEDIUM: sets the font weight to medium (500).

  • PRINTER_FW_BOLD: sets the font weight to bold (700).

  • PRINTER_FW_ULTRABOLD: sets the font weight to ultra bold (800).

  • PRINTER_FW_HEAVY: sets the font weight to heavy (900).

italic can be TRUE or FALSE, and sets whether the font should be italic.

underline can be TRUE or FALSE, and sets whether the font should be underlined.

strikeout can be TRUE or FALSE, and sets whether the font should be stroked out.

orientation specifies a rotation. For an example see printer_select_font().

Пред. | Начало | След.
printer_create_dc | Уровень выше | printer_create_pen


printer_create_pen

(PECL)

printer_create_pen -- Create a new pen

Description

resource printer_create_pen ( int style, int width, string color )

The function creates a new pen and returns a handle to it. A pen is used to draw lines and curves. For an example see printer_select_pen(). color must be a color in RGB hex format, i.e. "000000" for black, width specifies the width of the pen whereas style must be one of the following constants:

  • PRINTER_PEN_SOLID: creates a solid pen.

  • PRINTER_PEN_DASH: creates a dashed pen.

  • PRINTER_PEN_DOT: creates a dotted pen.

  • PRINTER_PEN_DASHDOT: creates a pen with dashes and dots.

  • PRINTER_PEN_DASHDOTDOT: creates a pen with dashes and double dots.

  • PRINTER_PEN_INVISIBLE: creates an invisible pen.

Пред. | Начало | След.
printer_create_font | Уровень выше | printer_delete_brush


printer_delete_brush

(PECL)

printer_delete_brush -- Delete a brush

Description

void printer_delete_brush ( resource handle )

The function deletes the selected brush. For an example see printer_select_brush(). Returns NULL on success or FALSE on failure. handle must be a valid handle to a brush.

Пред. | Начало | След.
printer_create_pen | Уровень выше | printer_delete_dc


printer_delete_dc

(PECL)

printer_delete_dc -- Delete a device context

Description

bool printer_delete_dc ( resource handle )

The function deletes the device context. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. For an example see printer_create_dc(). handle must be a valid handle to a printer.

Пред. | Начало | След.
printer_delete_brush | Уровень выше | printer_delete_font


printer_delete_font

(PECL)

printer_delete_font -- Delete a font

Description

void printer_delete_font ( resource handle )

The function deletes the selected font. For an example see printer_select_font(). Returns NULL on success or FALSE on failure. handle must be a valid handle to a font.

Пред. | Начало | След.
printer_delete_dc | Уровень выше | printer_delete_pen


printer_delete_pen

(PECL)

printer_delete_pen -- Delete a pen

Description

void printer_delete_pen ( resource handle )

The function deletes the selected pen. For an example see printer_select_pen(). Returns NULL on success or FALSE on failure. handle must be a valid handle to a pen.

Пред. | Начало | След.
printer_delete_font | Уровень выше | printer_draw_bmp


printer_draw_bmp

(PECL)

printer_draw_bmp -- Draw a bmp

Description

bool printer_draw_bmp ( resource handle, string filename, int x, int y [, int width, int height] )

The function simply draws an bmp the bitmap filename at position x, y. handle must be a valid handle to a printer.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. printer_draw_bmp() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

printer_draw_bmp($handle, "c:\\image.bmp", 1, 1);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Пред. | Начало | След.
printer_delete_pen | Уровень выше | printer_draw_chord


printer_draw_chord

(PECL)

printer_draw_chord -- Draw a chord

Description

void printer_draw_chord ( resource handle, int rec_x, int rec_y, int rec_x1, int rec_y1, int rad_x, int rad_y, int rad_x1, int rad_y1 )

The function simply draws an chord. handle must be a valid handle to a printer.

rec_x is the upper left x coordinate of the bounding rectangle.

rec_y is the upper left y coordinate of the bounding rectangle.

rec_x1 is the lower right x coordinate of the bounding rectangle.

rec_y1 is the lower right y coordinate of the bounding rectangle.

rad_x is x coordinate of the radial defining the beginning of the chord.

rad_y is y coordinate of the radial defining the beginning of the chord.

rad_x1 is x coordinate of the radial defining the end of the chord.

rad_y1 is y coordinate of the radial defining the end of the chord.

Пример 1. printer_draw_chord() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_chord($handle, 1, 1, 500, 500, 1, 1, 500, 1);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Пред. | Начало | След.
printer_draw_bmp | Уровень выше | printer_draw_elipse


printer_draw_elipse

(PECL)

printer_draw_elipse -- Draw an ellipse

Description

void printer_draw_elipse ( resource handle, int ul_x, int ul_y, int lr_x, int lr_y )

The function simply draws an ellipse. handle must be a valid handle to a printer.

ul_x is the upper left x coordinate of the ellipse.

ul_y is the upper left y coordinate of the ellipse.

lr_x is the lower right x coordinate of the ellipse.

lr_y is the lower right y coordinate of the ellipse.

Пример 1. printer_draw_elipse() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_elipse($handle, 1, 1, 500, 500);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Пред. | Начало | След.
printer_draw_chord | Уровень выше | printer_draw_line


printer_draw_line

(PECL)

printer_draw_line -- Draw a line

Description

void printer_draw_line ( resource printer_handle, int from_x, int from_y, int to_x, int to_y )

The function simply draws a line from position from_x, from_y to position to_x, to_y using the selected pen. printer_handle must be a valid handle to a printer.

Пример 1. printer_draw_line() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 30, "000000");
printer_select_pen($handle, $pen);

printer_draw_line($handle, 1, 10, 1000, 10);
printer_draw_line($handle, 1, 60, 500, 60);

printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Пред. | Начало | След.
printer_draw_elipse | Уровень выше | printer_draw_pie


printer_draw_pie

(PECL)

printer_draw_pie -- Draw a pie

Description

void printer_draw_pie ( resource handle, int rec_x, int rec_y, int rec_x1, int rec_y1, int rad1_x, int rad1_y, int rad2_x, int rad2_y )

The function simply draws an pie. handle must be a valid handle to a printer.

rec_x is the upper left x coordinate of the bounding rectangle.

rec_y is the upper left y coordinate of the bounding rectangle.

rec_x1 is the lower right x coordinate of the bounding rectangle.

rec_y1 is the lower right y coordinate of the bounding rectangle.

rad1_x is x coordinate of the first radial's ending.

rad1_y is y coordinate of the first radial's ending.

rad2_x is x coordinate of the second radial's ending.

rad2_y is y coordinate of the second radial's ending.

Пример 1. printer_draw_pie() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_pie($handle, 1, 1, 500, 500, 1, 1, 500, 1);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Пред. | Начало | След.
printer_draw_line | Уровень выше | printer_draw_rectangle


printer_draw_rectangle

(PECL)

printer_draw_rectangle -- Draw a rectangle

Description

void printer_draw_rectangle ( resource handle, int ul_x, int ul_y, int lr_x, int lr_y )

The function simply draws a rectangle.

handle must be a valid handle to a printer.

ul_x is the upper left x coordinate of the rectangle.

ul_y is the upper left y coordinate of the rectangle.

lr_x is the lower right x coordinate of the rectangle.

lr_y is the lower right y coordinate of the rectangle.

Пример 1. printer_draw_rectangle() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_rectangle($handle, 1, 1, 500, 500);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Пред. | Начало | След.
printer_draw_pie | Уровень выше | printer_draw_roundrect


printer_draw_roundrect

(PECL)

printer_draw_roundrect -- Draw a rectangle with rounded corners

Description

void printer_draw_roundrect ( resource handle, int ul_x, int ul_y, int lr_x, int lr_y, int width, int height )

The function simply draws a rectangle with rounded corners.

handle must be a valid handle to a printer.

ul_x is the upper left x coordinate of the rectangle.

ul_y is the upper left y coordinate of the rectangle.

lr_x is the lower right x coordinate of the rectangle.

lr_y is the lower right y coordinate of the rectangle.

width is the width of the ellipse.

height is the height of the ellipse.

Пример 1. printer_draw_roundrect() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "2222FF");
printer_select_brush($handle, $brush);

printer_draw_roundrect($handle, 1, 1, 500, 500, 200, 200);

printer_delete_brush($brush);
printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Пред. | Начало | След.
printer_draw_rectangle | Уровень выше | printer_draw_text


printer_draw_text

(PECL)

printer_draw_text -- Draw text

Description

void printer_draw_text ( resource printer_handle, string text, int x, int y )

The function simply draws text at position x, y using the selected font. printer_handle must be a valid handle to a printer.

Пример 1. printer_draw_text() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$font = printer_create_font("Arial", 72, 48, 400, false, false, false, 0);
printer_select_font($handle, $font);
printer_draw_text($handle, "test", 10, 10);
printer_delete_font($font);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Пред. | Начало | След.
printer_draw_roundrect | Уровень выше | printer_end_doc


printer_end_doc

(PECL)

printer_end_doc -- Close document

Description

bool printer_end_doc ( resource handle )

Closes a new document in the printer spooler. The document is now ready for printing. For an example see printer_start_doc(). handle must be a valid handle to a printer.

Пред. | Начало | След.
printer_draw_text | Уровень выше | printer_end_page


printer_end_page

(PECL)

printer_end_page -- Close active page

Description

bool printer_end_page ( resource handle )

The function closes the active page in the active document. For an example see printer_start_doc(). handle must be a valid handle to a printer.

Пред. | Начало | След.
printer_end_doc | Уровень выше | printer_get_option


printer_get_option

(PECL)

printer_get_option -- Retrieve printer configuration data

Description

mixed printer_get_option ( resource handle, string option )

The function retrieves the configuration setting of option. handle must be a valid handle to a printer. Take a look at printer_set_option() for the settings that can be retrieved, additionally the following settings can be retrieved:

  • PRINTER_DEVICENAME returns the devicename of the printer.

  • PRINTER_DRIVERVERSION returns the printer driver version.

Пример 1. printer_get_option() example

<?php
$handle = printer_open();
echo printer_get_option($handle, PRINTER_DRIVERVERSION);
printer_close($handle);
?>

Пред. | Начало | След.
printer_end_page | Уровень выше | printer_list


printer_list

(PECL)

printer_list -- Return an array of printers attached to the server

Description

array printer_list ( int enumtype [, string name [, int level]] )

The function enumerates available printers and their capabilities. level sets the level of information request. Can be 1,2,4 or 5. enumtype must be one of the following predefined constants:

  • PRINTER_ENUM_LOCAL: enumerates the locally installed printers.

  • PRINTER_ENUM_NAME: enumerates the printer of name, can be a server, domain or print provider.

  • PRINTER_ENUM_SHARED: this parameter can't be used alone, it has to be OR'ed with other parameters, i.e. PRINTER_ENUM_LOCAL to detect the locally shared printers.

  • PRINTER_ENUM_DEFAULT: (Win9.x only) enumerates the default printer.

  • PRINTER_ENUM_CONNECTIONS: (WinNT/2000 only) enumerates the printers to which the user has made connections.

  • PRINTER_ENUM_NETWORK: (WinNT/2000 only) enumerates network printers in the computer's domain. Only valid if level is 1.

  • PRINTER_ENUM_REMOTE: (WinNT/2000 only) enumerates network printers and print servers in the computer's domain. Only valid if level is 1.

Пример 1. printer_list() example

<?php
/* detect locally shared printer */
var_dump(printer_list(PRINTER_ENUM_LOCAL | PRINTER_ENUM_SHARED));
?>

Пред. | Начало | След.
printer_get_option | Уровень выше | printer_logical_fontheight


printer_logical_fontheight

(PECL)

printer_logical_fontheight -- Get logical font height

Description

int printer_logical_fontheight ( resource handle, int height )

The function calculates the logical font height of height. handle must be a valid handle to a printer.

Пример 1. printer_logical_fontheight() example

<?php
$handle = printer_open();
echo printer_logical_fontheight($handle, 72);
printer_close($handle);
?>

Пред. | Начало | След.
printer_list | Уровень выше | printer_open


printer_open

(PECL)

printer_open -- Open connection to a printer

Description

resource printer_open ( [string devicename] )

This function tries to open a connection to the printer devicename, and returns a handle on success or FALSE on failure.

If no parameter was given it tries to open a connection to the default printer (if not specified in php.ini as printer.default_printer, PHP tries to detect it).

printer_open() also starts a device context.

Пример 1. printer_open() example

<?php
$handle = printer_open("HP Deskjet 930c");
$handle = printer_open();
?>

Пред. | Начало | След.
printer_logical_fontheight | Уровень выше | printer_select_brush


printer_select_brush

(PECL)

printer_select_brush -- Select a brush

Description

void printer_select_brush ( resource printer_handle, resource brush_handle )

The function selects a brush as the active drawing object of the actual device context. A brush is used to fill shapes. If you draw an rectangle the brush is used to draw the shapes, while the pen is used to draw the border. If you haven't selected a brush before drawing shapes, the shape won't be filled. printer_handle must be a valid handle to a printer. brush_handle must be a valid handle to a brush.

Пример 1. printer_select_brush() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 2, "000000");
printer_select_pen($handle, $pen);
$brush = printer_create_brush(PRINTER_BRUSH_CUSTOM, "c:\\brush.bmp");
printer_select_brush($handle, $brush);

printer_draw_rectangle($handle, 1, 1, 500, 500);

printer_delete_brush($brush);

$brush = printer_create_brush(PRINTER_BRUSH_SOLID, "000000");
printer_select_brush($handle, $brush);
printer_draw_rectangle($handle, 1, 501, 500, 1001);
printer_delete_brush($brush);

printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Пред. | Начало | След.
printer_open | Уровень выше | printer_select_font


printer_select_font

(PECL)

printer_select_font -- Select a font

Description

void printer_select_font ( resource printer_handle, resource font_handle )

The function selects a font to draw text. printer_handle must be a valid handle to a printer. font_handle must be a valid handle to a font.

Пример 1. printer_select_font() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$font = printer_create_font("Arial", 148, 76, PRINTER_FW_MEDIUM, false, false, false, -50);
printer_select_font($handle, $font);
printer_draw_text($handle, "PHP is simply cool", 40, 40);
printer_delete_font($font);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Пред. | Начало | След.
printer_select_brush | Уровень выше | printer_select_pen


printer_select_pen

(PECL)

printer_select_pen -- Select a pen

Description

void printer_select_pen ( resource printer_handle, resource pen_handle )

The function selects a pen as the active drawing object of the actual device context. A pen is used to draw lines and curves. I.e. if you draw a single line the pen is used. If you draw an rectangle the pen is used to draw the borders, while the brush is used to fill the shape. If you haven't selected a pen before drawing shapes, the shape won't be outlined. printer_handle must be a valid handle to a printer. pen_handle must be a valid handle to a pen.

Пример 1. printer_select_pen() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

$pen = printer_create_pen(PRINTER_PEN_SOLID, 30, "2222FF");
printer_select_pen($handle, $pen);

printer_draw_line($handle, 1, 60, 500, 60);

printer_delete_pen($pen);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Пред. | Начало | След.
printer_select_font | Уровень выше | printer_set_option


printer_set_option

(PECL)

printer_set_option -- Configure the printer connection

Description

bool printer_set_option ( resource handle, int option, mixed value )

The function sets the following options for the current connection. handle must be a valid handle to a printer. For option can be one of the following constants:

  • PRINTER_COPIES: sets how many copies should be printed, value must be an integer.

  • PRINTER_MODE: specifies the type of data (text, raw or emf), value must be a string.

  • PRINTER_TITLE: specifies the name of the document, value must be a string.

  • PRINTER_ORIENTATION: specifies the orientation of the paper, value can be either PRINTER_ORIENTATION_PORTRAIT or PRINTER_ORIENTATION_LANDSCAPE

  • PRINTER_RESOLUTION_Y: specifies the y-resolution in DPI, value must be an integer.

  • PRINTER_RESOLUTION_X: specifies the x-resolution in DPI, value must be an integer.

  • PRINTER_PAPER_FORMAT: specifies a predefined paper format, set value to PRINTER_FORMAT_CUSTOM if you want to specify a custom format with PRINTER_PAPER_WIDTH and PRINTER_PAPER_LENGTH. value can be one of the following constants.

    • PRINTER_FORMAT_CUSTOM: let's you specify a custom paper format.

    • PRINTER_FORMAT_LETTER: specifies standard letter format (8 1/2- by 11-inches).

    • PRINTER_FORMAT_LETTER: specifies standard legal format (8 1/2- by 14-inches).

    • PRINTER_FORMAT_A3: specifies standard A3 format (297- by 420-millimeters).

    • PRINTER_FORMAT_A4: specifies standard A4 format (210- by 297-millimeters).

    • PRINTER_FORMAT_A5: specifies standard A5 format (148- by 210-millimeters).

    • PRINTER_FORMAT_B4: specifies standard B4 format (250- by 354-millimeters).

    • PRINTER_FORMAT_B5: specifies standard B5 format (182- by 257-millimeter).

    • PRINTER_FORMAT_FOLIO: specifies standard FOLIO format (8 1/2- by 13-inch).

  • PRINTER_PAPER_LENGTH: if PRINTER_PAPER_FORMAT is set to PRINTER_FORMAT_CUSTOM, PRINTER_PAPER_LENGTH specifies a custom paper length in mm, value must be an integer.

  • PRINTER_PAPER_WIDTH: if PRINTER_PAPER_FORMAT is set to PRINTER_FORMAT_CUSTOM, PRINTER_PAPER_WIDTH specifies a custom paper width in mm, value must be an integer.

  • PRINTER_SCALE: specifies the factor by which the printed output is to be scaled. the page size is scaled from the physical page size by a factor of scale/100. for example if you set the scale to 50, the output would be half of its original size. value must be an integer.

  • PRINTER_BACKGROUND_COLOR: specifies the background color for the actual device context, value must be a string containing the rgb information in hex format i.e. "005533".

  • PRINTER_TEXT_COLOR: specifies the text color for the actual device context, value must be a string containing the rgb information in hex format i.e. "005533".

  • PRINTER_TEXT_ALIGN: specifies the text alignment for the actual device context, value can be combined through OR'ing the following constants:

    • PRINTER_TA_BASELINE: text will be aligned at the base line.

    • PRINTER_TA_BOTTOM: text will be aligned at the bottom.

    • PRINTER_TA_TOP: text will be aligned at the top.

    • PRINTER_TA_CENTER: text will be aligned at the center.

    • PRINTER_TA_LEFT: text will be aligned at the left.

    • PRINTER_TA_RIGHT: text will be aligned at the right.

Пример 1. printer_set_option() example

<?php
$handle = printer_open();
printer_set_option($handle, PRINTER_SCALE, 75);
printer_set_option($handle, PRINTER_TEXT_ALIGN, PRINTER_TA_LEFT);
printer_close($handle);
?>

Пред. | Начало | След.
printer_select_pen | Уровень выше | printer_start_doc


printer_start_doc

(PECL)

printer_start_doc -- Start a new document

Description

bool printer_start_doc ( resource handle [, string document] )

The function creates a new document in the printer spooler. A document can contain multiple pages, it's used to schedule the print job in the spooler. handle must be a valid handle to a printer. The optional parameter document can be used to set an alternative document name.

Пример 1. printer_start_doc() example

<?php
$handle = printer_open();
printer_start_doc($handle, "My Document");
printer_start_page($handle);

printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

Пред. | Начало | След.
printer_set_option | Уровень выше | printer_start_page


printer_start_page

(PECL)

printer_start_page -- Start a new page

Description

bool printer_start_page ( resource handle )

The function creates a new page in the active document. For an example see printer_start_doc(). handle must be a valid handle to a printer.

Пред. | Начало | След.
printer_start_doc | Уровень выше | printer_write


printer_write

(PECL)

printer_write -- Write data to the printer

Description

bool printer_write ( resource handle, string content )

Writes content directly to the printer. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

handle must be a valid handle to a printer.

Пример 1. printer_write() example

<?php
$handle = printer_open();
printer_write($handle, "Text to print");
printer_close($handle);
?>

Пред. | Начало | След.
printer_start_page | Уровень выше | Program Execution Functions


Pspell Functions

Руководство по PHP
Пред. След.

CXX. Pspell Functions

Введение

These functions allow you to check the spelling of a word and offer suggestions.

Требования

To compile PHP with pspell support, you need the aspell library, available from http://aspell.sourceforge.net/.

Установка

If you have the libraries needed add the --with-pspell[=dir] option when compiling PHP.

Note to Win32 Users: win32 support is available only in PHP 4.3.3 and later versions. Also, you must have aspell 0.50 or newer installed. In order to enable this module under Windows, you must copy aspell-15.dll from the bin folder of your aspell installation to a folder where PHP will be able to find it. C:\PHP or the SYSTEM32 folder of your windows machine (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM32) are good choices.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

PSPELL_FAST (integer)

PSPELL_NORMAL (integer)

PSPELL_BAD_SPELLERS (integer)

PSPELL_RUN_TOGETHER (integer)

Содержание
pspell_add_to_personal -- Add the word to a personal wordlist
pspell_add_to_session -- Add the word to the wordlist in the current session
pspell_check -- Check a word
pspell_clear_session -- Clear the current session
pspell_config_create -- Create a config used to open a dictionary
pspell_config_data_dir -- location of language data files
pspell_config_dict_dir -- Location of the main word list
pspell_config_ignore -- Ignore words less than N characters long
pspell_config_mode -- Change the mode number of suggestions returned
pspell_config_personal -- Set a file that contains personal wordlist
pspell_config_repl -- Set a file that contains replacement pairs
pspell_config_runtogether -- Consider run-together words as valid compounds
pspell_config_save_repl -- Determine whether to save a replacement pairs list along with the wordlist
pspell_new_config -- Load a new dictionary with settings based on a given config
pspell_new_personal -- Load a new dictionary with personal wordlist
pspell_new -- Load a new dictionary
pspell_save_wordlist -- Save the personal wordlist to a file
pspell_store_replacement -- Store a replacement pair for a word
pspell_suggest -- Suggest spellings of a word

Пред. | Начало | След.
ps_translate | Уровень выше | pspell_add_to_personal


pspell_add_to_personal

(PHP 4 >= 4.0.2, PHP 5)

pspell_add_to_personal -- Add the word to a personal wordlist

Description

bool pspell_add_to_personal ( int dictionary_link, string word )

pspell_add_to_personal() adds a word to the personal wordlist. If you used pspell_new_config() with pspell_config_personal() to open the dictionary, you can save the wordlist later with pspell_save_wordlist(). Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Пример 1. pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_save_wordlist($pspell_link);
?>

Пред. | Начало | След.
Pspell Functions | Уровень выше | pspell_add_to_session


pspell_add_to_session

(PHP 4 >= 4.0.2, PHP 5)

pspell_add_to_session -- Add the word to the wordlist in the current session

Description

bool pspell_add_to_session ( int dictionary_link, string word )

pspell_add_to_session() adds a word to the wordlist associated with the current session. It is very similar to pspell_add_to_personal()

Пред. | Начало | След.
pspell_add_to_personal | Уровень выше | pspell_check


pspell_check

(PHP 4 >= 4.0.2, PHP 5)

pspell_check -- Check a word

Description

bool pspell_check ( int dictionary_link, string word )

pspell_check() checks the spelling of a word and returns TRUE if the spelling is correct, FALSE if not.

Пример 1. pspell_check()

<?php
$pspell_link = pspell_new("en");

if (pspell_check($pspell_link, "testt")) {
    echo "This is a valid spelling";
} else {
    echo "Sorry, wrong spelling";
}
?>

Пред. | Начало | След.
pspell_add_to_session | Уровень выше | pspell_clear_session


pspell_clear_session

(PHP 4 >= 4.0.2, PHP 5)

pspell_clear_session -- Clear the current session

Description

bool pspell_clear_session ( int dictionary_link )

pspell_clear_session() clears the current session. The current wordlist becomes blank, and, for example, if you try to save it with pspell_save_wordlist(), nothing happens.

Пример 1. pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_clear_session($pspell_link);
pspell_save_wordlist($pspell_link);    //"Vlad" will not be saved
?>

Пред. | Начало | След.
pspell_check | Уровень выше | pspell_config_create


pspell_config_create

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_create -- Create a config used to open a dictionary

Description

int pspell_config_create ( string language [, string spelling [, string jargon [, string encoding]]] )

pspell_config_create() has a very similar syntax to pspell_new(). In fact, using pspell_config_create() immediately followed by pspell_new_config() will produce the exact same result. However, after creating a new config, you can also use pspell_config_*() functions before calling pspell_new_config() to take advantage of some advanced functionality.

The language parameter is the language code which consists of the two letter ISO 639 language code and an optional two letter ISO 3166 country code after a dash or underscore.

The spelling parameter is the requested spelling for languages with more than one spelling such as English. Known values are 'american', 'british', and 'canadian'.

The jargon parameter contains extra information to distinguish two different words lists that have the same language and spelling parameters.

The encoding parameter is the encoding that words are expected to be in. Valid values are 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. This parameter is largely untested, so be careful when using.

The mode parameter is the mode in which spellchecker will work. There are several modes available:

  • PSPELL_FAST - Fast mode (least number of suggestions)

  • PSPELL_NORMAL - Normal mode (more suggestions)

  • PSPELL_BAD_SPELLERS - Slow mode (a lot of suggestions)

For more information and examples, check out inline manual pspell website:http://aspell.net/.

Пример 1. pspell_config_create()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_personal($pspell_config, "en");
?>

Пред. | Начало | След.
pspell_clear_session | Уровень выше | pspell_config_data_dir


pspell_config_data_dir

(PHP 5)

pspell_config_data_dir -- location of language data files

Description

bool pspell_config_data_dir ( int conf, string directory )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
pspell_config_create | Уровень выше | pspell_config_dict_dir


pspell_config_dict_dir

(PHP 5)

pspell_config_dict_dir -- Location of the main word list

Description

bool pspell_config_dict_dir ( int conf, string directory )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
pspell_config_data_dir | Уровень выше | pspell_config_ignore


pspell_config_ignore

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_ignore -- Ignore words less than N characters long

Description

bool pspell_config_ignore ( int dictionary_link, int n )

pspell_config_ignore() should be used on a config before calling pspell_new_config(). This function allows short words to be skipped by the spell checker. Words less than n characters will be skipped.

Пример 1. pspell_config_ignore()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_ignore($pspell_config, 5);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "abcd");    //will not result in an error
?>

Пред. | Начало | След.
pspell_config_dict_dir | Уровень выше | pspell_config_mode


pspell_config_mode

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_mode -- Change the mode number of suggestions returned

Description

bool pspell_config_mode ( int dictionary_link, int mode )

pspell_config_mode() should be used on a config before calling pspell_new_config(). This function determines how many suggestions will be returned by pspell_suggest().

The mode parameter is the mode in which spellchecker will work. There are several modes available:

  • PSPELL_FAST - Fast mode (least number of suggestions)

  • PSPELL_NORMAL - Normal mode (more suggestions)

  • PSPELL_BAD_SPELLERS - Slow mode (a lot of suggestions)

Пример 1. pspell_config_mode()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_mode($pspell_config, PSPELL_FAST);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

Пред. | Начало | След.
pspell_config_ignore | Уровень выше | pspell_config_personal


pspell_config_personal

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_personal -- Set a file that contains personal wordlist

Description

bool pspell_config_personal ( int dictionary_link, string file )

pspell_config_personal() should be used on a config before calling pspell_new_config(). The personal wordlist will be loaded and used in addition to the standard one after you call pspell_new_config(). If the file does not exist, it will be created. The file is also the file where pspell_save_wordlist() will save personal wordlist to. The file should be writable by whoever PHP runs as (e.g. nobody). Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Пример 1. pspell_config_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

Пред. | Начало | След.
pspell_config_mode | Уровень выше | pspell_config_repl


pspell_config_repl

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_repl -- Set a file that contains replacement pairs

Description

bool pspell_config_repl ( int dictionary_link, string file )

pspell_config_repl() should be used on a config before calling pspell_new_config(). The replacement pairs improve the quality of the spellchecker. When a word is misspelled, and a proper suggestion was not found in the list, pspell_store_replacement() can be used to store a replacement pair and then pspell_save_wordlist() to save the wordlist along with the replacement pairs. The file should be writable by whoever PHP runs as (e.g. nobody). Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Пример 1. pspell_config_repl()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

Пред. | Начало | След.
pspell_config_personal | Уровень выше | pspell_config_runtogether


pspell_config_runtogether

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_runtogether -- Consider run-together words as valid compounds

Description

bool pspell_config_runtogether ( int dictionary_link, bool flag )

pspell_config_runtogether() should be used on a config before calling pspell_new_config(). This function determines whether run-together words will be treated as legal compounds. That is, "thecat" will be a legal compound, although there should be a space between the two words. Changing this setting only affects the results returned by pspell_check(); pspell_suggest() will still return suggestions.

Пример 1. pspell_config_runtogether()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_runtogether($pspell_config, true);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

Пред. | Начало | След.
pspell_config_repl | Уровень выше | pspell_config_save_repl


pspell_config_save_repl

(PHP 4 >= 4.0.2, PHP 5)

pspell_config_save_repl -- Determine whether to save a replacement pairs list along with the wordlist

Description

bool pspell_config_save_repl ( int dictionary_link, bool flag )

pspell_config_save_repl() should be used on a config before calling pspell_new_config(). It determines whether pspell_save_wordlist() will save the replacement pairs along with the wordlist. Usually there is no need to use this function because if pspell_config_repl() is used, the replacement pairs will be saved by pspell_save_wordlist() anyway, and if it is not, the replacement pairs will not be saved. Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Пред. | Начало | След.
pspell_config_runtogether | Уровень выше | pspell_new_config


pspell_new_config

(PHP 4 >= 4.0.2, PHP 5)

pspell_new_config -- Load a new dictionary with settings based on a given config

Description

int pspell_new_config ( int config )

pspell_new_config() opens up a new dictionary with settings specified in a config, created with pspell_config_create() and modified with pspell_config_*() functions. This method provides you with the most flexibility and has all the functionality provided by pspell_new() and pspell_new_personal().

The config parameter is the one returned by pspell_config_create() when the config was created.

Пример 1. pspell_new_config()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);
?>

Пред. | Начало | След.
pspell_config_save_repl | Уровень выше | pspell_new_personal


pspell_new_personal

(PHP 4 >= 4.0.2, PHP 5)

pspell_new_personal -- Load a new dictionary with personal wordlist

Description

int pspell_new_personal ( string personal, string language [, string spelling [, string jargon [, string encoding [, int mode]]]] )

pspell_new_personal() opens up a new dictionary with a personal wordlist and returns the dictionary link identifier for use in other pspell functions. The wordlist can be modified and saved with pspell_save_wordlist(), if desired. However, the replacement pairs are not saved. In order to save replacement pairs, you should create a config using pspell_config_create(), set the personal wordlist file with pspell_config_personal(), set the file for replacement pairs with pspell_config_repl(), and open a new dictionary with pspell_new_config().

The personal parameter specifies the file where words added to the personal list will be stored. It should be an absolute filename beginning with '/' because otherwise it will be relative to $HOME, which is "/root" for most systems, and is probably not what you want.

The language parameter is the language code which consists of the two letter ISO 639 language code and an optional two letter ISO 3166 country code after a dash or underscore.

The spelling parameter is the requested spelling for languages with more than one spelling such as English. Known values are 'american', 'british', and 'canadian'.

The jargon parameter contains extra information to distinguish two different words lists that have the same language and spelling parameters.

The encoding parameter is the encoding that words are expected to be in. Valid values are 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. This parameter is largely untested, so be careful when using.

The mode parameter is the mode in which spellchecker will work. There are several modes available:

  • PSPELL_FAST - Fast mode (least number of suggestions)

  • PSPELL_NORMAL - Normal mode (more suggestions)

  • PSPELL_BAD_SPELLERS - Slow mode (a lot of suggestions)

  • PSPELL_RUN_TOGETHER - Consider run-together words as legal compounds. That is, "thecat" will be a legal compound, although there should be a space between the two words. Changing this setting only affects the results returned by pspell_check(); pspell_suggest() will still return suggestions.

Mode is a bitmask constructed from different constants listed above. However, PSPELL_FAST, PSPELL_NORMAL and PSPELL_BAD_SPELLERS are mutually exclusive, so you should select only one of them.

For more information and examples, check out inline manual pspell website:http://aspell.net/.

Пример 1. pspell_new_personal()

<?php
$pspell_link = pspell_new_personal ("/var/dictionaries/custom.pws",
        "en", "", "", "", PSPELL_FAST|PSPELL_RUN_TOGETHER);
?>

Пред. | Начало | След.
pspell_new_config | Уровень выше | pspell_new


pspell_new

(PHP 4 >= 4.0.2, PHP 5)

pspell_new -- Load a new dictionary

Description

int pspell_new ( string language [, string spelling [, string jargon [, string encoding [, int mode]]]] )

pspell_new() opens up a new dictionary and returns the dictionary link identifier for use in other pspell functions.

The language parameter is the language code which consists of the two letter ISO 639 language code and an optional two letter ISO 3166 country code after a dash or underscore.

The spelling parameter is the requested spelling for languages with more than one spelling such as English. Known values are 'american', 'british', and 'canadian'.

The jargon parameter contains extra information to distinguish two different words lists that have the same language and spelling parameters.

The encoding parameter is the encoding that words are expected to be in. Valid values are 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. This parameter is largely untested, so be careful when using.

The mode parameter is the mode in which spellchecker will work. There are several modes available:

  • PSPELL_FAST - Fast mode (least number of suggestions)

  • PSPELL_NORMAL - Normal mode (more suggestions)

  • PSPELL_BAD_SPELLERS - Slow mode (a lot of suggestions)

  • PSPELL_RUN_TOGETHER - Consider run-together words as legal compounds. That is, "thecat" will be a legal compound, although there should be a space between the two words. Changing this setting only affects the results returned by pspell_check(); pspell_suggest() will still return suggestions.

Mode is a bitmask constructed from different constants listed above. However, PSPELL_FAST, PSPELL_NORMAL and PSPELL_BAD_SPELLERS are mutually exclusive, so you should select only one of them.

For more information and examples, check out inline manual pspell website:http://aspell.net/.

Пример 1. pspell_new()

<?php
$pspell_link = pspell_new("en", "", "", "",
                           (PSPELL_FAST|PSPELL_RUN_TOGETHER));
?>

Пред. | Начало | След.
pspell_new_personal | Уровень выше | pspell_save_wordlist


pspell_save_wordlist

(PHP 4 >= 4.0.2, PHP 5)

pspell_save_wordlist -- Save the personal wordlist to a file

Description

bool pspell_save_wordlist ( int dictionary_link )

pspell_save_wordlist() saves the personal wordlist from the current session. The dictionary has to be open with pspell_new_personal(), and the location of files to be saved specified with pspell_config_personal() and (optionally) pspell_config_repl(). Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Пример 1. pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/tmp/dicts/newdict");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_save_wordlist($pspell_link);
?>

Пред. | Начало | След.
pspell_new | Уровень выше | pspell_store_replacement


pspell_store_replacement

(PHP 4 >= 4.0.2, PHP 5)

pspell_store_replacement -- Store a replacement pair for a word

Description

bool pspell_store_replacement ( int dictionary_link, string misspelled, string correct )

pspell_store_replacement() stores a replacement pair for a word, so that replacement can be returned by pspell_suggest() later. In order to be able to take advantage of this function, you have to use pspell_new_personal() to open the dictionary. In order to permanently save the replacement pair, you have to use pspell_config_personal() and pspell_config_repl() to set the path where to save your custom wordlists, and then use pspell_save_wordlist() for the changes to be written to disk. Please, note that this function will not work unless you have pspell .11.2 and aspell .32.5 or later.

Пример 1. pspell_store_replacement()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);

pspell_store_replacement($pspell_link, $misspelled, $correct);
pspell_save_wordlist($pspell_link);
?>

Пред. | Начало | След.
pspell_save_wordlist | Уровень выше | pspell_suggest


pspell_suggest

(PHP 4 >= 4.0.2, PHP 5)

pspell_suggest -- Suggest spellings of a word

Description

array pspell_suggest ( int dictionary_link, string word )

pspell_suggest() returns an array of possible spellings for the given word.

Пример 1. pspell_suggest() example

<?php
$pspell_link = pspell_new("en");

if (!pspell_check($pspell_link, "testt")) {
    $suggestions = pspell_suggest($pspell_link, "testt");

    foreach ($suggestions as $suggestion) {
        echo "Possible spelling: $suggestion<br />";
    }
}
?>

Пред. | Начало | След.
pspell_store_replacement | Уровень выше | qtdom Functions


qtdom Functions

Руководство по PHP
Пред. След.

CXXI. qtdom Functions

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

Замечание: Для Windows-платформ это расширение недоступно.

Замечание: This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 5.0.0.

Требования

You need the Qt-library >=2.2.0

Установка

Configure PHP --with-qtdom to use these functions.

Содержание
qdom_error -- Returns the error string from the last QDOM operation or FALSE if no errors occurred
qdom_tree -- Creates a tree of an XML string

Пред. | Начало | След.
pspell_suggest | Уровень выше | qdom_error


qdom_error

(PHP 4 >= 4.0.5, PECL)

qdom_error -- Returns the error string from the last QDOM operation or FALSE if no errors occurred

Description

string qdom_error ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
qtdom Functions | Уровень выше | qdom_tree


qdom_tree

(PHP 4 >= 4.0.4, PECL)

qdom_tree -- Creates a tree of an XML string

Description

QDomDocument qdom_tree ( string doc )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
qdom_error | Уровень выше | Radius


Rar функции

Руководство по PHP
Пред. След.

CXXIII. Rar функции

Введение

Rar - это мощный и эффективный архиватор, созданный Eugene Roshal. Данное расширение позволяет читать Rar архивы, однако не дает возможности их записывать так как эта операция не поддерживается библиотекой UnRar и напрямую запрещена условиями ее лицензии.

Больше информации о Rar и UnRar можно найти здесь:http://www.rarlabs.com/.

Требования

Эти функции всегда доступны.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Установка

Расширение Rar в настоящее время доступно в PECL http://pecl.php.net/package/rar.

Вы также можете воспользоваться установщиком pear, чтобы установить расширение Rar. Для этого необходимо использовать команду: pear -v install rar.

Также вы можете скачать архив tar.gz и установить Rar вручную:

Пример 1. Установка Rar

gunzip rar-xxx.tgz
tar -xvf rar-xxx.tar
cd rar-xxx
phpize
./configure && make && make install

Пользователи Windows могут скачать расширение в виде библиотеки dll php_rar.dll здесь: http://snaps.php.net/win32/PECL_STABLE/.

Типы ресурсов

В расширении Rar используется один ресурс: дескриптор файла, возвращаемый rar_open().

Предопределенные константы

RAR_HOST_MSDOS (integer)

RAR_HOST_OS2 (integer)

RAR_HOST_WIN32 (integer)

RAR_HOST_UNIX (integer)

RAR_HOST_BEOS (integer)

Примеры

Пример 2. Пример работы с расширением Rar

<?php

$rar_file = rar_open('example.rar') or die("Невозможно открыть архив");

$entries = rar_list($rar_file);

foreach ($entries as $entry) {
    echo 'Файл: ' . $entry->getName() . "\n";
    echo 'Размер сжатого элемента: ' . $entry->getPackedSize() . "\n";
    echo 'Размер в распакованном состоянии: ' . $entry->getUnpackedSize() . "\n";

    $entry->extract('/dir/extract/to/');
}

rar_close($rar_file);

?>

В этом примере открывается архивный файл Rar и каждый заархивированный элемент извлекается в указанную директорию.

Содержание
rar_close -- Закрывает Rar архив и высвобождает занятые ресурсы
rar_entry_get -- Возвращает объект из Rar архива
Rar::extract -- Извлекает элемент из архива
Rar::getAttr -- Возвращает атрибуты элемента архива
Rar::getCrc -- Возвращает CRC элемента архива
Rar::getFileTime -- Возвращает время последней модификации элемента архива
Rar::getHostOs -- Возвращает данные об операционной системе хоста
Rar::getMethod -- Возвращает метод компрессии элемента массива
Rar::getName -- Возвращает имя элемента архива
Rar::getPackedSize -- Возвращает размер сжатого элемента
Rar::getUnpackedSize -- Возвращает размер элемента в распакованном состоянии
Rar::getVersion -- Возвращает версию архиватора, использованного для компрессии элемента архива
rar_list -- Возвращает список элементов, входящих в Rar архив
rar_open -- Открывает Rar архив

Пред. | Начало | След.
radius_strerror | Уровень выше | rar_close


rar_close

(no version information, might be only in CVS)

rar_close -- Закрывает Rar архив и высвобождает занятые ресурсы

Описание

bool rar_close ( resource rar_file )

Закрывает Rar архив и высвобождает все выделенные ранее ресурсы.

rar_close() возвращает FALSE при ошибке.

Пред. | Начало | След.
Rar функции | Уровень выше | rar_entry_get


rar_entry_get

(no version information, might be only in CVS)

rar_entry_get -- Возвращает объект из Rar архива

Описание

RarEntry rar_entry_get ( resource rar_file, string entry_name )

Возвращает объект из Rar архива.

Пример 1. Rar::() пример

<?php

$rar_file = rar_open('example.rar') or die("Не удалось открыть Rar архив");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Такого элемента в архиве не существует");

print_r($entry);

?>

rar_get_entry() возвращает объект или FALSE при ошибке.

Пред. | Начало | След.
rar_close | Уровень выше | Rar::extract


Rar::extract

(no version information, might be only in CVS)

Rar::extract -- Извлекает элемент из архива

Описание

bool Rar::extract ( string dir [, string filepath] )

Rar::extract() Извлекает данные из архива в директорию dir. При этом в директории dir создается новый файл с именем, идентичным имени извлекаемого из архива элемента. Если параметр filepath указан вместо dir, то Rar::extract() извлечет данные из архива в указанный файл.

Пример 1. Rar::extract() пример использования

<?php

$rar_file = rar_open('example.rar') or die("Невозможно открыть Rar архив");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Такого элемента в архиве не существует");

$entry->extract('/dir/to'); // создаст /dir/to/Dir/file.txt
$entry->extract(false, '/dir/to/new_name.txt'); // создаст /dir/to/new_name.txt

?>

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
rar_entry_get | Уровень выше | Rar::getAttr


Rar::getAttr

(no version information, might be only in CVS)

Rar::getAttr -- Возвращает атрибуты элемента архива

Описание

int Rar::getAttr ( void )

Rar::getAttr() Возвращает атрибуты элемента архива.

Пример 1. Rar::getAttr() пример использования

<?php

$rar_file = rar_open('example.rar') or die("Невозможно открыть Rar архив");

$entry = rar_entry_get($rar_file, 'dir/in/the/archive') or die("Такого элемента в архиве не существует");

$host_os = $entry->getHostOs();
$attr = $entry->getAttr();

switch($host_os) {
    case RAR_HOST_MSDOS:
    case RAR_HOST_OS2:
    case RAR_HOST_WIN32:
    case RAR_HOST_MACOS:
        printf("%c%c%c%c%c%c\n",
                ($attr & 0x08) ? 'V' : '.',
                ($attr & 0x10) ? 'D' : '.',
                ($attr & 0x01) ? 'R' : '.',
                ($attr & 0x02) ? 'H' : '.',
                ($attr & 0x04) ? 'S' : '.',
                ($attr & 0x20) ? 'A' : '.');
        break;
    case RAR_HOST_UNIX:
    case RAR_HOST_BEOS:
        switch ($attr & 0xF000)
        {
            case 0x4000:
                printf("d");
                break;
            case 0xA000:
                printf("l");
                break;
            default:
                printf("-");
                break;
        }
        printf("%c%c%c%c%c%c%c%c%c\n",
                ($attr & 0x0100) ? 'r' : '-',
                ($attr & 0x0080) ? 'w' : '-',
                ($attr & 0x0040) ? (($attr & 0x0800) ? 's':'x'):(($attr & 0x0800) ? 'S':'-'),
                ($attr & 0x0020) ? 'r' : '-',
                ($attr & 0x0010) ? 'w' : '-',
                ($attr & 0x0008) ? (($attr & 0x0400) ? 's':'x'):(($attr & 0x0400) ? 'S':'-'),
                ($attr & 0x0004) ? 'r' : '-',
                ($attr & 0x0002) ? 'w' : '-',
                ($attr & 0x0001) ? 'x' : '-');
        break;
}

rar_close($rar_file);

?>

Rar::getAttr() возвращает FALSE при ошибке.

Смотрите также Rar::getHostOs().

Пред. | Начало | След.
Rar::extract | Уровень выше | Rar::getCrc


Rar::getCrc

(no version information, might be only in CVS)

Rar::getCrc -- Возвращает CRC элемента архива

Описание

int Rar::getCrc ( void )

Rar::getCrc() возвращает CRC (контрольную сумму) элемента архива.

Пример 1. Rar::getCrc() пример

<?php

?>

Rar::getCrc() возвращает FALSE при ошибке.

Пред. | Начало | След.
Rar::getAttr | Уровень выше | Rar::getFileTime


Rar::getFileTime

(no version information, might be only in CVS)

Rar::getFileTime -- Возвращает время последней модификации элемента архива

Описание

string Rar::getFileTime ( void )

Rar::getFileTime() Возвращает время последней модификации элемента архива в виде строки с форматом YYYY-MM-DD HH:II:SS.

Пример 1. Rar::() пример использования

<?php

?>

Rar::getFileTime() возвращает FALSE при ошибке.

Пред. | Начало | След.
Rar::getCrc | Уровень выше | Rar::getHostOs


Rar::getHostOs

(no version information, might be only in CVS)

Rar::getHostOs -- Возвращает данные об операционной системе хоста

Описание

int Rar::getHostOs ( void )

Rar::getHostOs() Возвращает данные об операционной системе хоста элемента архива.

Пример 1. Rar::getHostOs() пример использования

<?php

$rar_file = rar_open('example.rar') or die("Невозможно открыть Rar архив");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Такого элемента в архиве не существует");

switch ($entry->getHostOs()) {
    case RAR_HOST_MSDOS:
        echo "MS-DOS\n";
        break;
    case RAR_HOST_OS2:
        echo "OS2\n";
        break;
    case RAR_HOST_WIN32:
        echo "Win32\n";
        break;
    case RAR_HOST_MACOS:
        echo "MacOS\n";
        break;
    case RAR_HOST_UNIX:
        echo "Unix/Linux\n";
        break;
    case RAR_HOST_BEOS:
        echo "BeOS\n";
        break;
}

?>

Rar::getHostOs() возвращает FALSE при ошибке.

Пред. | Начало | След.
Rar::getFileTime | Уровень выше | Rar::getMethod


Rar::getMethod

(no version information, might be only in CVS)

Rar::getMethod -- Возвращает метод компрессии элемента массива

Описание

int Rar::getMethod ( void )

Rar::getMethod() Возвращает номер метода, который был использован при архивации элемента.

Пример 1. Rar::getMethod() пример использования

<?php

$rar_file = rar_open('example.rar') or die("Невозможно открыть Rar архив");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Такого элемента в архиве не существует");

echo "Номер метода: " . $entry->getMethod();

?>

Rar::getMethod() возвращает FALSE при ошибке.

Пред. | Начало | След.
Rar::getHostOs | Уровень выше | Rar::getName


Rar::getName

(no version information, might be only in CVS)

Rar::getName -- Возвращает имя элемента архива

Описание

string Rar::getName ( void )

Rar::getName() Возвращает полное имя элемента архива.

Пример 1. Rar::getName() пример использования

<?php

$rar_file = rar_open('example.rar') or die("Невозможно открыть Rar архив");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Такого элемента в архиве не существует");

echo "Имя элемента архива: " . $entry->getName();

?>

Rar::getName() возвращает FALSE при ошибке.

Пред. | Начало | След.
Rar::getMethod | Уровень выше | Rar::getPackedSize


Rar::getPackedSize

(no version information, might be only in CVS)

Rar::getPackedSize -- Возвращает размер сжатого элемента

Описание

int Rar::getPackedSize ( void )

Возвращает размер сжатого элемента

Пример 1. Rar::() пример использования

<?php

$rar_file = rar_open('example.rar') or die("Невозможно открыть Rar архив");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Такого элемента в архиве не существует");

echo "Размер сжатого элемента " . $entry->getName() . " = " . $entry->getPackedSize() . " bytes";

?>

Rar::getPackedSize() возвращает FALSE при ошибке.

Пред. | Начало | След.
Rar::getName | Уровень выше | Rar::getUnpackedSize


Rar::getUnpackedSize

(no version information, might be only in CVS)

Rar::getUnpackedSize -- Возвращает размер элемента в распакованном состоянии

Описание

int Rar::getUnpackedSize ( void )

Возвращает размер элемента в распакованном состоянии.

Пример 1. Rar::getUnpackedSize() пример использования

<?php

$rar_file = rar_open('example.rar') or die("Невозможно открыть Rar архив");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Такого элемента в архиве не существует");

echo "Размер распакованного элемента " . $entry->getName() . " = " . $entry->getPackedSize() . " bytes";

?>

Rar::getUnpackedSize() возвращает FALSE при ошибке.

Пред. | Начало | След.
Rar::getPackedSize | Уровень выше | Rar::getVersion


Rar::getVersion

(no version information, might be only in CVS)

Rar::getVersion -- Возвращает версию архиватора, использованного для компрессии элемента архива

Описание

int Rar::getVersion ( void )

Возвращает версию архиватора, использованного для компрессии элемента архива.

Пример 1. Rar::getVersion() пример использования

<?php

$rar_file = rar_open('example.rar') or die("Невозможно открыть Rar архив");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Такого элемента в архиве не существует");

echo "Использована версия Rar (WinRAR): " . $entry->getVersion();

?>

Rar::getVersion() возвращает FALSE при ошибке.

Пред. | Начало | След.
Rar::getUnpackedSize | Уровень выше | rar_list


rar_list

(no version information, might be only in CVS)

rar_list -- Возвращает список элементов, входящих в Rar архив

Описание

array rar_list ( resource rar_file )

Возвращает список элементов, входящих в Rar архив.

Пример 1. Rar::() пример использования

<?php

$rar_file = rar_open('example.rar') or die("Невозможно открыть Rar архив");

$entries_list = rar_list($rar_file);

print_r($entries_list);

?>

rar_list() возвращает массив элементов архива или FALSE при ошибке.

Пред. | Начало | След.
Rar::getVersion | Уровень выше | rar_open


rar_open

(no version information, might be only in CVS)

rar_open -- Открывает Rar архив

Описание

resource rar_open ( string filename [, string password] )

Открывает Rar архив и возвращает указатель на него.

rar_open() возвращает указатель на открытый Rar архив или FALSE при ошибке.

Пред. | Начало | След.
rar_list | Уровень выше | GNU Readline


GNU Readline

Руководство по PHP
Пред. След.

CXXIV. GNU Readline

Введение

The readline() functions implement an interface to the GNU Readline library. These are functions that provide editable command lines. An example being the way Bash allows you to use the arrow keys to insert characters or scroll through command history. Because of the interactive nature of this library, it will be of little use for writing Web applications, but may be useful when writing scripts used from a command line.

Замечание: Для Windows-платформ это расширение недоступно.

Требования

To use the readline functions, you need to install libreadline. You can find libreadline on the home page of the GNU Readline project, at http://cnswww.cns.cwru.edu/~chet/readline/rltop.html. It's maintained by Chet Ramey, who's also the author of Bash.

You can also use these functions with the libedit library, a non-GPL replacement for the readline library. The libedit library is BSD licensed and available for download from http://sourceforge.net/projects/libedit/.

Установка

To use these functions you must compile the CGI or CLI version of PHP with readline support. You need to configure PHP --with-readline[=DIR]. In order you want to use the libedit readline replacement, configure PHP --with-libedit[=DIR].

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Содержание
readline_add_history -- Adds a line to the history
readline_callback_handler_install -- Initializes the readline callback interface and terminal, prints the prompt and returns immediately
readline_callback_handler_remove -- Removes a previously installed callback handler and restores terminal settings
readline_callback_read_char -- Reads a character and informs the readline callback interface when a line is received
readline_clear_history -- Clears the history
readline_completion_function -- Registers a completion function
readline_info -- Gets/sets various internal readline variables
readline_list_history -- Lists the history
readline_on_new_line -- Inform readline that the cursor has moved to a new line
readline_read_history -- Reads the history
readline_redisplay -- Ask readline to redraw the display
readline_write_history -- Writes the history
readline -- Reads a line

Пред. | Начало | След.
rar_open | Уровень выше | readline_add_history


readline_add_history

(PHP 4, PHP 5)

readline_add_history -- Adds a line to the history

Description

bool readline_add_history ( string line )

This function adds a line to the command line history.

Пред. | Начало | След.
GNU Readline | Уровень выше | readline_callback_handler_install


readline_callback_handler_install

(PHP 5 >= 5.1.0RC1)

readline_callback_handler_install -- Initializes the readline callback interface and terminal, prints the prompt and returns immediately

Описание

bool readline_callback_handler_install ( string prompt, callback callback )

Sets up a readline callback interface then prints prompt and immediately returns. The callback function takes one parameter; the user input returned. Calling this function twice without removing the previous callback interface will automatically and conveniently overwrite the old interface.

The callback feature is useful when combined with stream_select() as it allows interleaving of IO and user input, unlike readline().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Readline Callback Interface Example

<?php
function rl_callback($ret)
{
    global $c, $prompting;

    echo "You entered: $ret\n";
    $c++;

    if ($c > 10) {
        $prompting = false;
        readline_callback_handler_remove();
    } else {
        readline_callback_handler_install("[$c] Enter something: ", 'rl_callback');
    }
}

$c = 1;
$prompting = true;

readline_callback_handler_install("[$c] Enter something: ", 'rl_callback');

while ($prompting) {
    $n = stream_select($r = array(STDIN), $w = null, $e = null, null);
    if ($n && in_array(STDIN, $r)) {
        // read a character, will call the callback when a newline is entered
        readline_callback_read_char();
    }
}

echo "Prompting disabled. All done.\n";
?>

Смотрите также

readline_callback_handler_remove(),
readline_callback_read_char() и
stream_select().

Пред. | Начало | След.
readline_add_history | Уровень выше | readline_callback_handler_remove


readline_callback_handler_remove

(PHP 5 >= 5.1.0RC1)

readline_callback_handler_remove -- Removes a previously installed callback handler and restores terminal settings

Описание

bool readline_callback_handler_remove ( void )

Removes a previously installed callback handler and restores terminal settings.

Примеры

See readline_callback_handler_install() for an example of how to use the readline callback interface.

Возвращаемые значения

Returns TRUE if a previously installed callback handler was removed, or FALSE if one could not be found.

Смотрите также

readline_callback_handler_install(), and readline_callback_read_char().

Пред. | Начало | След.
readline_callback_handler_install | Уровень выше | readline_callback_read_char


readline_callback_read_char

(PHP 5 >= 5.1.0RC1)

readline_callback_read_char -- Reads a character and informs the readline callback interface when a line is received

Описание

void readline_callback_read_char ( void )

Reads a character of user input. When a line is received, this function informs the readline callback interface installed using readline_callback_handler_install() that a line is ready for input.

Примеры

See readline_callback_handler_install() for an example of how to use the readline callback interface.

Смотрите также

readline_callback_handler_install(), and readline_callback_handler_remove().

Пред. | Начало | След.
readline_callback_handler_remove | Уровень выше | readline_clear_history


readline_clear_history

(PHP 4, PHP 5)

readline_clear_history -- Clears the history

Description

bool readline_clear_history ( void )

This function clears the entire command line history.

Пред. | Начало | След.
readline_callback_read_char | Уровень выше | readline_completion_function


readline_completion_function

(PHP 4, PHP 5)

readline_completion_function -- Registers a completion function

Description

bool readline_completion_function ( callback function )

This function registers a completion function. You must supply the name of an existing function which accepts a partial command line and returns an array of possible matches. This is the same kind of functionality you'd get if you hit your tab key while using Bash.

Пред. | Начало | След.
readline_clear_history | Уровень выше | readline_info


readline_info

(PHP 4, PHP 5)

readline_info -- Gets/sets various internal readline variables

Description

mixed readline_info ( [string varname [, string newvalue]] )

If called with no parameters, this function returns an array of values for all the setting readline uses. The elements will be indexed by the following values: done, end, erase_empty_line, library_version, line_buffer, mark, pending_input, point, prompt, readline_name, and terminal_name.

If called with one parameter, the value of that setting is returned. If called with two parameters, the setting will be changed to the given value.

Пред. | Начало | След.
readline_completion_function | Уровень выше | readline_list_history


readline_list_history

(PHP 4, PHP 5)

readline_list_history -- Lists the history

Description

array readline_list_history ( void )

This function returns an array of the entire command line history. The elements are indexed by integers starting at zero.

Пред. | Начало | След.
readline_info | Уровень выше | readline_on_new_line


readline_on_new_line

(PHP 5 >= 5.1.0RC1)

readline_on_new_line -- Inform readline that the cursor has moved to a new line

Description

void readline_on_new_line ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
readline_list_history | Уровень выше | readline_read_history


readline_read_history

(PHP 4, PHP 5)

readline_read_history -- Reads the history

Description

bool readline_read_history ( [string filename] )

This function reads a command history from a file.

Пред. | Начало | След.
readline_on_new_line | Уровень выше | readline_redisplay


readline_redisplay

(PHP 5 >= 5.1.0RC1)

readline_redisplay -- Ask readline to redraw the display

Description

void readline_redisplay ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
readline_read_history | Уровень выше | readline_write_history


readline_write_history

(PHP 4, PHP 5)

readline_write_history -- Writes the history

Description

bool readline_write_history ( [string filename] )

This function writes the command history to a file.

Пред. | Начало | След.
readline_redisplay | Уровень выше | readline


readline

(PHP 4, PHP 5)

readline -- Reads a line

Description

string readline ( string prompt )

This function returns a single string from the user. You may specify a string with which to prompt the user. The line returned has the ending newline removed. You must add this line to the history yourself using readline_add_history().

Пример 1. readline()

<?php
//get 3 commands from user
for ($i=0; $i < 3; $i++) {
        $line = readline("Command: ");
        readline_add_history($line);
}

//dump history
print_r(readline_list_history());

//dump variables
print_r(readline_info());
?>

Пред. | Начало | След.
readline_write_history | Уровень выше | GNU Recode Functions


GNU Recode Functions

Руководство по PHP
Пред. След.

CXXV. GNU Recode Functions

Введение

This module contains an interface to the GNU Recode library. The GNU Recode library converts files between various coded character sets and surface encodings. When this cannot be achieved exactly, it may get rid of the offending characters or fall back on approximations. The library recognises or produces nearly 150 different character sets and is able to convert files between almost any pair. Most RFC 1345 character sets are supported.

Замечание: Для Windows-платформ это расширение недоступно.

Требования

You must have GNU Recode 3.5 or higher installed on your system. You can download the package from http://directory.fsf.org/All_GNU_Packages/recode.html.

Внимание

The Recode library version 3.6 adds weird characters behind converted strings under certain circumstances. Thus it's safer to use Recode v3.5 or one of the available alternatives like the iconv or mbstring extension.

Установка

To be able to use the functions defined in this module you must compile your PHP interpreter using the --with-recode[=DIR] option.

Внимание

Crashes and startup problems of PHP may be encountered when loading the recode as extension after loading any extension of mysql or imap. Loading the recode before those extension has proved to fix the problem. This is due a technical problem that both the c-client library used by imap and recode have their own hash_lookup() function and both mysql and recode have their own hash_insert function.

Внимание

Расширение IMAP не может использоваться вместе с расширениями перекодировки или YAZ. Это связано с тем фактом, что они оба используют один и тот же внутренний символ.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Содержание
recode_file -- Recode from file to file according to recode request
recode_string -- Recode a string according to a recode request
recode -- Alias of recode_string()

Пред. | Начало | След.
readline | Уровень выше | recode_file


recode_file

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

recode_file -- Recode from file to file according to recode request

Description

bool recode_file ( string request, resource input, resource output )

Recode the file referenced by file handle input into the file referenced by file handle output according to the recode request. Returns FALSE, if unable to comply, TRUE otherwise.

This function does not currently process filehandles referencing remote files (URLs). Both filehandles must refer to local files.

Пример 1. Basic recode_file() example

<?php
$input = fopen('input.txt', 'r');
$output = fopen('output.txt', 'w');
recode_file("us..flat", $input, $output);
?>

Пред. | Начало | След.
GNU Recode Functions | Уровень выше | recode_string


recode_string

(PHP 3 >= 3.0.13, PHP 4, PHP 5)

recode_string -- Recode a string according to a recode request

Description

string recode_string ( string request, string string )

Recode the string string according to the recode request request. Returns the recoded string or FALSE, if unable to perform the recode request.

A simple recode request may be "lat1..iso646-de". See also the GNU Recode documentation of your installation for detailed instructions about recode requests.

Пример 1. Basic recode_string() example:

<?php
echo recode_string("us..flat", "The following character has a diacritical mark: &aacute;");
?>

Пред. | Начало | След.
recode_file | Уровень выше | recode


recode

(PHP 4, PHP 5)

recode -- Alias of recode_string()

Описание

This function is an alias of: recode_string().

Пред. | Начало | След.
recode_string | Уровень выше | RPM Header Reading Функции


Regular Expression Functions (POSIX Extended)

Руководство по PHP
Пред. След.

CXIV. Regular Expression Functions (POSIX Extended)

Введение

Подсказка: PHP also supports regular expressions using a Perl-compatible syntax using the PCRE functions. Those functions support non-greedy matching, assertions, conditional subpatterns, and a number of other features not supported by the POSIX-extended regular expression syntax.

Внимание

These regular expression functions are not binary-safe. The PCRE functions are.

Regular expressions are used for complex string manipulation. PHP uses the POSIX extended regular expressions as defined by POSIX 1003.2. For a full description of POSIX regular expressions see the regex man pages included in the regex directory in the PHP distribution. It's in manpage format, so you'll want to do something along the lines of man /usr/local/src/regex/regex.7 in order to read it.

Требования

Эти функции всегда доступны.

Установка

Внимание

Do not change the TYPE unless you know what you are doing.

To enable regexp support configure PHP --with-regex[=TYPE]. TYPE can be one of system, apache, php. The default is to use php.

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Примеры

Пример 1. Regular Expression Examples

<?php
// Returns true if "abc" is found anywhere in $string.
ereg("abc", $string);

// Returns true if "abc" is found at the beginning of $string.
ereg("^abc", $string);

// Returns true if "abc" is found at the end of $string.
ereg("abc$", $string);

// Returns true if client browser is Netscape 2, 3 or MSIE 3.
eregi("(ozilla.[23]|MSIE.3)", $HTTP_USER_AGENT);

// Places three space separated words into $regs[1], $regs[2] and $regs[3].
ereg("([[:alnum:]]+) ([[:alnum:]]+) ([[:alnum:]]+)", $string, $regs);

// Put a <br /> tag at the beginning of $string.
$string = ereg_replace("^", "<br />", $string);

// Put a <br /> tag at the end of $string.
$string = ereg_replace("$", "<br />", $string);

// Get rid of any newline characters in $string.
$string = ereg_replace("\n", "", $string);
?>

Смотрите также

For regular expressions in Perl-compatible syntax have a look at the PCRE functions. The simpler shell style wildcard pattern matching is provided by fnmatch().

Содержание
ereg_replace -- Replace regular expression
ereg -- Regular expression match
eregi_replace -- Replace regular expression case insensitive
eregi -- Case insensitive regular expression match
split -- Split string into array by regular expression
spliti -- Split string into array by regular expression case insensitive
sql_regcase -- Make regular expression for case insensitive match

Пред. | Начало | След.
posix_uname | Уровень выше | ereg_replace


ereg_replace

(PHP 3, PHP 4, PHP 5)

ereg_replace -- Replace regular expression

Description

string ereg_replace ( string pattern, string replacement, string string )

This function scans string for matches to pattern, then replaces the matched text with replacement.

The modified string is returned. (Which may mean that the original string is returned if there are no matches to be replaced.)

If pattern contains parenthesized substrings, replacement may contain substrings of the form \\digit, which will be replaced by the text matching the digit'th parenthesized substring; \\0 will produce the entire contents of string. Up to nine substrings may be used. Parentheses may be nested, in which case they are counted by the opening parenthesis.

If no matches are found in string, then string will be returned unchanged.

For example, the following code snippet prints "This was a test" three times:

Пример 1. ereg_replace() example

<?php

$string = "This is a test";
echo str_replace(" is", " was", $string);
echo ereg_replace("( )is", "\\1was", $string);
echo ereg_replace("(( )is)", "\\2was", $string);

?>

One thing to take note of is that if you use an integer value as the replacement parameter, you may not get the results you expect. This is because ereg_replace() will interpret the number as the ordinal value of a character, and apply that. For instance:

Пример 2. ereg_replace() example

<?php
/* This will not work as expected. */
$num = 4;
$string = "This string has four words.";
$string = ereg_replace('four', $num, $string);
echo $string;   /* Output: 'This string has   words.' */

/* This will work. */
$num = '4';
$string = "This string has four words.";
$string = ereg_replace('four', $num, $string);
echo $string;   /* Output: 'This string has 4 words.' */
?>

Пример 3. Replace URLs with links

<?php
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
                     "<a href=\"\\0\">\\0</a>", $text);
?>

Подсказка: preg_replace(), which uses a Perl-compatible regular expression syntax, is often a faster alternative to ereg_replace().

See also ereg(), eregi(),
eregi_replace(), str_replace(), and
preg_match().

Пред. | Начало | След.
Regular Expression Functions (POSIX Extended) | Уровень выше | ereg


ereg

(PHP 3, PHP 4, PHP 5)

ereg -- Regular expression match

Description

int ereg ( string pattern, string string [, array &regs] )

Замечание: preg_match(), which uses a Perl-compatible regular expression syntax, is often a faster alternative to ereg().

Searches a string for matches to the regular expression given in pattern in a case-sensitive way.

If matches are found for parenthesized substrings of pattern and the function is called with the third argument regs, the matches will be stored in the elements of the array regs. $regs[1] will contain the substring which starts at the first left parenthesis; $regs[2] will contain the substring starting at the second, and so on. $regs[0] will contain a copy of the complete string matched.

Замечание: Up to (and including) PHP 4.1.0 $regs will be filled with exactly ten elements, even though more or fewer than ten parenthesized substrings may actually have matched. This has no effect on ereg()'s ability to match more substrings. If no matches are found, $regs will not be altered by ereg().

Returns the length of the matched string if a match for pattern was found in string, or FALSE if no matches were found or an error occurred. If the optional parameter regs was not passed or the length of the matched string is 0, this function returns 1.

The following code snippet takes a date in ISO format (YYYY-MM-DD) and prints it in DD.MM.YYYY format:

Пример 1. ereg() example

<?php
if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) {
    echo "$regs[3].$regs[2].$regs[1]";
} else {
    echo "Invalid date format: $date";
}
?>

See also eregi(), ereg_replace(),
eregi_replace(), preg_match(),
strpos(), and strstr().

Пред. | Начало | След.
ereg_replace | Уровень выше | eregi_replace


eregi_replace

(PHP 3, PHP 4, PHP 5)

eregi_replace -- Replace regular expression case insensitive

Description

string eregi_replace ( string pattern, string replacement, string string )

This function is identical to ereg_replace() except that this ignores case distinction when matching alphabetic characters.

Пример 1. Highlight search results

<?php
$pattern = '(>[^<]*)('. quotemeta($_GET['search']) .')';
$replacement = '\\1<span class="search">\\2</span>';
$body = eregi_replace($pattern, $replacement, $body);
?>

See also ereg(), eregi(), and ereg_replace().

Пред. | Начало | След.
ereg | Уровень выше | eregi


eregi

(PHP 3, PHP 4, PHP 5)

eregi -- Case insensitive regular expression match

Description

int eregi ( string pattern, string string [, array &regs] )

This function is identical to ereg() except that this ignores case distinction when matching alphabetic characters.

Пример 1. eregi() example

<?php
$string = 'XYZ';
if (eregi('z', $string)) {
    echo "'$string' contains a 'z' or 'Z'!";
}
?>

See also ereg(), ereg_replace(),
eregi_replace(), stripos(), and
stristr().

Пред. | Начало | След.
eregi_replace | Уровень выше | split


split

(PHP 3, PHP 4, PHP 5)

split -- Split string into array by regular expression

Description

array split ( string pattern, string string [, int limit] )

Подсказка: preg_split(), which uses a Perl-compatible regular expression syntax, is often a faster alternative to split(). If you don't require the power of regular expressions, it is faster to use explode(), which doesn't incur the overhead of the regular expression engine.

Returns an array of strings, each of which is a substring of string formed by splitting it on boundaries formed by the case-sensitive regular expression pattern. If limit is set, the returned array will contain a maximum of limit elements with the last element containing the whole rest of string. If an error occurs, split() returns FALSE.

To split off the first four fields from a line from /etc/passwd:

Пример 1. split() example

<?php
list($user, $pass, $uid, $gid, $extra) =
    split(":", $passwd_line, 5);
?>

If there are n occurrences of pattern, the returned array will contain n+1 items. For example, if there is no occurrence of pattern, an array with only one element will be returned. Of course, this is also true if string is empty.

To parse a date which may be delimited with slashes, dots, or hyphens:

Пример 2. split() example

<?php
// Delimiters may be slash, dot, or hyphen
$date = "04/30/1973";
list($month, $day, $year) = split('[/.-]', $date);
echo "Month: $month; Day: $day; Year: $year<br />\n";
?>

For users looking for a way to emulate Perl's @chars = split('', $str) behaviour, please see the examples for preg_split().

Please note that pattern is a regular expression. If you want to split on any of the characters which are considered special by regular expressions, you'll need to escape them first. If you think split() (or any other regex function, for that matter) is doing something weird, please read the file regex.7, included in the regex/ subdirectory of the PHP distribution. It's in manpage format, so you'll want to do something along the lines of man /usr/local/src/regex/regex.7 in order to read it.

See also: preg_split(), spliti(),
explode(), implode(),
chunk_split(), and wordwrap().

Пред. | Начало | След.
eregi | Уровень выше | spliti


spliti

(PHP 4 >= 4.0.1, PHP 5)

spliti -- Split string into array by regular expression case insensitive

Description

array spliti ( string pattern, string string [, int limit] )

This function is identical to split() except that this ignores case distinction when matching alphabetic characters.

This example splits a string using 'a' as the separator :

Пример 1. spliti() example

<?php
$string = "aBBBaCCCADDDaEEEaGGGA";
$chunks = spliti ("a", $string, 5);
print_r($chunks);
?>

Результат выполнения данного примера:

Array
(
  [0] =>
  [1] => BBB
  [2] => CCC
  [3] => DDD
  [4] => EEEaGGGA
)

See also preg_split(), split(), explode(), and implode().

Пред. | Начало | След.
split | Уровень выше | sql_regcase


sql_regcase

(PHP 3, PHP 4, PHP 5)

sql_regcase -- Make regular expression for case insensitive match

Description

string sql_regcase ( string string )

Returns a valid regular expression which will match string, ignoring case. This expression is string with each alphabetic character converted to a bracket expression; this bracket expression contains that character's uppercase and lowercase form. Other characters remain unchanged.

Пример 1. sql_regcase() example

<?php
echo sql_regcase("Foo - bar.");
?>

Результат выполнения данного примера:

[Ff][Oo][Oo] - [Bb][Aa][Rr].

This can be used to achieve case insensitive pattern matching in products which support only case sensitive regular expressions.

Пред. | Начало | След.
spliti | Уровень выше | PostgreSQL Functions


Semaphore, Shared Memory and IPC Functions

Руководство по PHP
Пред. След.

CXXXII. Semaphore, Shared Memory and IPC Functions

Введение

This module provides wrappers for the System V IPC family of functions. It includes semaphores, shared memory and inter-process messaging (IPC).

Semaphores may be used to provide exclusive access to resources on the current machine, or to limit the number of processes that may simultaneously use a resource.

This module provides also shared memory functions using System V shared memory. Shared memory may be used to provide access to global variables. Different httpd-daemons and even other programs (such as Perl, C, ...) are able to access this data to provide a global data-exchange. Remember, that shared memory is NOT safe against simultaneous access. Use semaphores for synchronization.

Таблица 1. Limits of Shared Memory by the Unix OS

SHMMAX | max size of shared memory, normally 131072 bytes
SHMMIN | minimum size of shared memory, normally 1 byte
SHMMNI | max amount of shared memory segments on a system, normally 100
SHMSEG | max amount of shared memory segments per process, normally 6

The messaging functions may be used to send and receive messages to/from other processes. They provide a simple and effective means of exchanging data between processes, without the need for setting up an alternative using Unix domain sockets.

Замечание: Для Windows-платформ это расширение недоступно.

Требования

Эти функции всегда доступны.

Установка

Support for this functions are not enabled by default. To enable System V semaphore support compile PHP with the option --enable-sysvsem. To enable the System V shared memory support compile PHP with the option --enable-sysvshm. To enable the System V messages support compile PHP with the option --enable-sysvmsg.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 2. Semaphore Configuration Options

Name | Default | Changeable | Changelog
sysvmsg.value | "42" | PHP_INI_ALL |
sysvmsg.string | "foobar" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Типы ресурсов

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

Таблица 3. System V message constants

Constant | Type
MSG_IPC_NOWAIT | integer
MSG_NOERROR | integer
MSG_EXCEPT | integer

Содержание
ftok -- Convert a pathname and a project identifier to a System V IPC key
msg_get_queue -- Create or attach to a message queue
msg_receive -- Receive a message from a message queue
msg_remove_queue -- Destroy a message queue
msg_send -- Send a message to a message queue
msg_set_queue -- Set information in the message queue data structure
msg_stat_queue -- Returns information from the message queue data structure
sem_acquire -- Acquire a semaphore
sem_get -- Get a semaphore id
sem_release -- Release a semaphore
sem_remove -- Remove a semaphore
shm_attach -- Creates or open a shared memory segment
shm_detach -- Disconnects from shared memory segment
shm_get_var -- Returns a variable from shared memory
shm_put_var -- Inserts or updates a variable in shared memory
shm_remove_var -- Removes a variable from shared memory
shm_remove -- Removes shared memory from Unix systems

Пред. | Начало | След.
SDO_DAS_Relational::executeQuery | Уровень выше | ftok


ftok

(PHP 4 >= 4.2.0, PHP 5)

ftok -- Convert a pathname and a project identifier to a System V IPC key

Description

int ftok ( string pathname, string proj )

The function converts the pathname of an existing accessible file and a project identifier (proj) into a integer for use with for example shmop_open() and other System V IPC keys. The proj parameter should be a one character string.

On success the return value will be the created key value, otherwise -1 is returned.

See also shmop_open() and sem_get().

Пред. | Начало | След.
Semaphore, Shared Memory and IPC Functions | Уровень выше | msg_get_queue


msg_get_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_get_queue -- Create or attach to a message queue

Description

resource msg_get_queue ( int key [, int perms] )

msg_get_queue() returns an id that can be used to access the System V message queue with the given key. The first call creates the message queue with the optional perms (default: 0666). A second call to msg_get_queue() for the same key will return a different message queue identifier, but both identifiers access the same underlying message queue. If the message queue already exists, the perms will be ignored.

See also msg_remove_queue(),
msg_receive(), msg_send(),
msg_stat_queue() and
msg_set_queue().

Пред. | Начало | След.
ftok | Уровень выше | msg_receive


msg_receive

(PHP 4 >= 4.3.0, PHP 5)

msg_receive -- Receive a message from a message queue

Description

bool msg_receive ( resource queue, int desiredmsgtype, int &msgtype, int maxsize, mixed &message [, bool unserialize [, int flags [, int &errorcode]]] )

msg_receive() will receive the first message from the specified queue of the type specified by desiredmsgtype. The type of the message that was received will be stored in msgtype. The maximum size of message to be accepted is specified by the maxsize; if the message in the queue is larger than this size the function will fail (unless you set flags as described below). The received message will be stored in message, unless there were errors receiving the message, in which case the optional errorcode will be set to the value of the system errno variable to help you identify the cause.

If desiredmsgtype is 0, the message from the front of the queue is returned. If desiredmsgtype is greater than 0, then the first message of that type is returned. If desiredmsgtype is less than 0, the first message on the queue with the lowest type less than or equal to the absolute value of desiredmsgtype will be read. If no messages match the criteria, your script will wait until a suitable message arrives on the queue. You can prevent the script from blocking by specifying MSG_IPC_NOWAIT in the flags parameter.

unserialize defaults to TRUE; if it is set to TRUE, the message is treated as though it was serialized using the same mechanism as the session module. The message will be unserialized and then returned to your script. This allows you to easily receive arrays or complex object structures from other PHP scripts, or if you are using the WDDX serializer, from any WDDX compatible source. If unserialize is FALSE, the message will be returned as a binary-safe string.

The optional flags allows you to pass flags to the low-level msgrcv system call. It defaults to 0, but you may specify one or more of the following values (by adding or ORing them together).

Таблица 1. Flag values for msg_receive

MSG_IPC_NOWAIT | If there are no messages of the desiredmsgtype, return immediately and do not wait. The function will fail and return an integer value corresponding to ENOMSG.
MSG_EXCEPT | Using this flag in combination with a desiredmsgtype greater than 0 will cause the function to receive the first message that is not equal to desiredmsgtype.
MSG_NOERROR | If the message is longer than maxsize, setting this flag will truncate the message to maxsize and will not signal an error.

Upon successful completion the message queue data structure is updated as follows: msg_lrpid is set to the process-ID of the calling process, msg_qnum is decremented by 1 and msg_rtime is set to the current time.

msg_receive() returns TRUE on success or FALSE on failure. If the function fails, the optional errorcode will be set to the value of the system errno variable.

See also msg_remove_queue(),
msg_send(),
msg_stat_queue() and
msg_set_queue().

Пред. | Начало | След.
msg_get_queue | Уровень выше | msg_remove_queue


msg_remove_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_remove_queue -- Destroy a message queue

Description

bool msg_remove_queue ( resource queue )

msg_remove_queue() destroys the message queue specified by the queue. Only use this function when all processes have finished working with the message queue and you need to release the system resources held by it.

See also msg_get_queue(),
msg_receive(),
msg_stat_queue() and
msg_set_queue().

Пред. | Начало | След.
msg_receive | Уровень выше | msg_send


msg_send

(PHP 4 >= 4.3.0, PHP 5)

msg_send -- Send a message to a message queue

Description

bool msg_send ( resource queue, int msgtype, mixed message [, bool serialize [, bool blocking [, int &errorcode]]] )

msg_send() sends a message of type msgtype (which MUST be greater than 0) to the message queue specified by queue.

If the message is too large to fit in the queue, your script will wait until another process reads messages from the queue and frees enough space for your message to be sent. This is called blocking; you can prevent blocking by setting the optional blocking parameter to FALSE, in which case msg_send() will immediately return FALSE if the message is too big for the queue, and set the optional errorcode to EAGAIN, indicating that you should try to send your message again a little later on.

The optional serialize controls how the message is sent. serialize defaults to TRUE which means that the message is serialized using the same mechanism as the session module before being sent to the queue. This allows complex arrays and objects to be sent to other PHP scripts, or if you are using the WDDX serializer, to any WDDX compatible client.

Upon successful completion the message queue data structure is updated as follows: msg_lspid is set to the process-ID of the calling process, msg_qnum is incremented by 1 and msg_stime is set to the current time.

See also msg_remove_queue(),
msg_receive(),
msg_stat_queue() and
msg_set_queue().

Пред. | Начало | След.
msg_remove_queue | Уровень выше | msg_set_queue


msg_set_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_set_queue -- Set information in the message queue data structure

Description

bool msg_set_queue ( resource queue, array data )

msg_set_queue() allows you to change the values of the msg_perm.uid, msg_perm.gid, msg_perm.mode and msg_qbytes fields of the underlying message queue data structure. You specify the values you require by setting the value of the keys that you require in the data array.

Changing the data structure will require that PHP be running as the same user that created the queue, owns the queue (as determined by the existing msg_perm.xxx fields), or be running with root privileges. root privileges are required to raise the msg_qbytes values above the system defined limit.

See also msg_remove_queue(),
msg_receive(),
msg_stat_queue() and
msg_get_queue().

Пред. | Начало | След.
msg_send | Уровень выше | msg_stat_queue


msg_stat_queue

(PHP 4 >= 4.3.0, PHP 5)

msg_stat_queue -- Returns information from the message queue data structure

Description

array msg_stat_queue ( resource queue )

msg_stat_queue() returns the message queue meta data for the message queue specified by the queue. This is useful, for example, to determine which process sent the message that was just received.

The return value is an array whose keys and values have the following meanings:

Таблица 1. Array structure for msg_stat_queue

msg_perm.uid | The uid of the owner of the queue.
msg_perm.gid | The gid of the owner of the queue.
msg_perm.mode | The file access mode of the queue.
msg_stime | The time that the last message was sent to the queue.
msg_rtime | The time that the last message was received from the queue.
msg_ctime | The time that the queue was last changed.
msg_qnum | The number of messages waiting to be read from the queue.
msg_qbytes | The number of bytes of space currently available in the queue to hold sent messages until they are received.
msg_lspid | The pid of the process that sent the last message to the queue.
msg_lrpid | The pid of the process that received the last message from the queue.

See also msg_remove_queue(),
msg_receive(),
msg_get_queue() and
msg_set_queue().

Пред. | Начало | След.
msg_set_queue | Уровень выше | sem_acquire


sem_acquire

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

sem_acquire -- Acquire a semaphore

Description

bool sem_acquire ( resource sem_identifier )

sem_acquire() blocks (if necessary) until the semaphore can be acquired. A process attempting to acquire a semaphore which it has already acquired will block forever if acquiring the semaphore would cause its maximum number of semaphore to be exceeded. sem_identifier is a semaphore ressource, obtained from sem_get().

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

After processing a request, any semaphores acquired by the process but not explicitly released will be released automatically and a warning will be generated.

See also sem_get(), and sem_release().

Пред. | Начало | След.
msg_stat_queue | Уровень выше | sem_get


sem_get

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

sem_get -- Get a semaphore id

Description

resource sem_get ( int key [, int max_acquire [, int perm [, int auto_release]]] )

sem_get() returns an id that can be used to access the System V semaphore with the given key. The semaphore is created if necessary using the permission bits specified in perm (defaults to 0666). The number of processes that can acquire the semaphore simultaneously is set to max_acquire (defaults to 1). Actually this value is set only if the process finds it is the only process currently attached to the semaphore.

Optional parameter auto_release specifies if the semaphore should be automatically released on request shutdown. It is available since PHP 4.3.0.

Returns a positive semaphore identifier on success, or FALSE on error.

A second call to sem_get() for the same key will return a different semaphore identifier, but both identifiers access the same underlying semaphore.

See also sem_acquire(), sem_release(), and ftok().

Пред. | Начало | След.
sem_acquire | Уровень выше | sem_release


sem_release

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

sem_release -- Release a semaphore

Description

bool sem_release ( resource sem_identifier )

sem_release() releases the semaphore if it is currently acquired by the calling process, otherwise a warning is generated.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

After releasing the semaphore, sem_acquire() may be called to re-acquire it.

See also sem_get() and sem_acquire().

Пред. | Начало | След.
sem_get | Уровень выше | sem_remove


sem_remove

(PHP 4 >= 4.1.0, PHP 5)

sem_remove -- Remove a semaphore

Description

bool sem_remove ( resource sem_identifier )

sem_remove() removes the semaphore sem_identifier if it has been created by sem_get(), otherwise generates a warning.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

After removing the semaphore, it is no more accessible.

See also sem_get(),
sem_release() and
sem_acquire().

Пред. | Начало | След.
sem_release | Уровень выше | shm_attach


shm_attach

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

shm_attach -- Creates or open a shared memory segment

Description

int shm_attach ( int key [, int memsize [, int perm]] )

shm_attach() returns an id that can be used to access the System V shared memory with the given key, the first call creates the shared memory segment with memsize (default: sysvshm.init_mem in the php.ini, otherwise 10000 bytes) and the optional perm-bits perm (default: 0666).

A second call to shm_attach() for the same key will return a different shared memory identifier, but both identifiers access the same underlying shared memory. Memsize and perm will be ignored.

See also ftok(), and shm_detach().

Пред. | Начало | След.
sem_remove | Уровень выше | shm_detach


shm_detach

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

shm_detach -- Disconnects from shared memory segment

Description

bool shm_detach ( int shm_identifier )

shm_detach() disconnects from the shared memory given by the shm_identifier created by shm_attach(). Remember, that shared memory still exist in the Unix system and the data is still present.

shm_detach() always returns TRUE.

See also shm_attach(), shm_remove(), and shm_remove_var().

Пред. | Начало | След.
shm_attach | Уровень выше | shm_get_var


shm_get_var

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

shm_get_var -- Returns a variable from shared memory

Description

mixed shm_get_var ( int shm_identifier, int variable_key )

shm_get_var() returns the variable with a given variable_key, in the shared memory segment identified by shm_identifier. shm_identifier was obtained from shm_attach(). The variable is still present in the shared memory.

Пред. | Начало | След.
shm_detach | Уровень выше | shm_put_var


shm_put_var

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

shm_put_var -- Inserts or updates a variable in shared memory

Description

bool shm_put_var ( int shm_identifier, int variable_key, mixed variable )

shm_put_var() inserts or updates the variable with the given variable_key. All variable-types are supported.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Warnings (E_WARNING level) will be issued if shm_identifier is not a valid SysV shared memory index or if there was not enough shared memory remaining to complete your request.

Пред. | Начало | След.
shm_get_var | Уровень выше | shm_remove_var


shm_remove_var

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

shm_remove_var -- Removes a variable from shared memory

Description

bool shm_remove_var ( int shm_identifier, int variable_key )

Removes a variable with a given variable_key and frees the occupied memory.

See also shm_remove().

Пред. | Начало | След.
shm_put_var | Уровень выше | shm_remove


shm_remove

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

shm_remove -- Removes shared memory from Unix systems

Description

bool shm_remove ( int shm_identifier )

shm_remove() removes the shared memory shm_identifier. All data will be destroyed.

See also shm_remove_var().

Пред. | Начало | След.
shm_remove_var | Уровень выше | SESAM Database Functions


SESAM Database Functions

Руководство по PHP
Пред. След.

CXXXIII. SESAM Database Functions

Введение

SESAM/SQL-Server is a mainframe database system, developed by Fujitsu Siemens Computers, Germany. It runs on high-end mainframe servers using the operating system BS2000/OSD.

In numerous productive BS2000 installations, SESAM/SQL-Server has proven

  • the ease of use of Java-, Web- and client/server connectivity,

  • the capability to work with an availability of more than 99.99%,

  • the ability to manage tens and even hundreds of thousands of users.

There is a PHP 3 SESAM interface available which allows database operations via PHP-scripts.

Замечание: Access to SESAM is only available with the latest CVS-Version of PHP 3. PHP 4 does not support the SESAM database.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

sesam_oml string

Name of BS2000 PLAM library containing the loadable SESAM driver modules. Required for using SESAM functions. The BS2000 PLAM library must be set ACCESS=READ,SHARE=YES because it must be readable by the apache server's user id.

sesam_configfile string

Name of SESAM application configuration file. Required for using SESAM functions. The BS2000 file must be readable by the apache server's user id.

The application configuration file will usually contain a configuration like (see SESAM reference manual):

CNF=B
NAM=K
NOTYPE

sesam_messagecatalog string

Name of SESAM message catalog file. In most cases, this directive is not necessary. Only if the SESAM message file is not installed in the system's BS2000 message file table, it can be set with this directive.

The message catalog must be set ACCESS=READ,SHARE=YES because it must be readable by the apache server's user id.

Configuration notes

There is no standalone support for the PHP SESAM interface, it works only as an integrated Apache module. In the Apache PHP module, this SESAM interface is configured using Apache directives.

Таблица 1. SESAM Configuration directives

Directive Meaning
php3_sesam_oml Name of BS2000 PLAM library containing the loadable SESAM driver modules. Required for using SESAM functions.

Example:

php3_sesam_oml $.SYSLNK.SESAM-SQL.030

php3_sesam_configfile Name of SESAM application configuration file. Required for using SESAM functions.

Example:

php3_sesam_configfile $SESAM.SESAM.CONF.AW

It will usually contain a configuration like (see SESAM reference manual):

CNF=B
NAM=K
NOTYPE

php3_sesam_messagecatalog Name of SESAM message catalog file. In most cases, this directive is not necessary. Only if the SESAM message file is not installed in the system's BS2000 message file table, it can be set with this directive.

Example:

php3_sesam_messagecatalog $.SYSMES.SESAM-SQL.030

In addition to the configuration of the PHP/SESAM interface, you have to configure the SESAM-Database server itself on your mainframe as usual. That means:

  • starting the SESAM database handler (DBH), and

  • connecting the databases with the SESAM database handler

To get a connection between a PHP script and the database handler, the CNF and NAM parameters of the selected SESAM configuration file must match the id of the started database handler.

In case of distributed databases you have to start a SESAM/SQL-DCN agent with the distribution table including the host and database names.

The communication between PHP (running in the POSIX subsystem) and the database handler (running outside the POSIX subsystem) is realized by a special driver module called SQLSCI and SESAM connection modules using common memory. Because of the common memory access, and because PHP is a static part of the web server, database accesses are very fast, as they do not require remote accesses via ODBC, JDBC or UTM.

Only a small stub loader (SESMOD) is linked with PHP, and the SESAM connection modules are pulled in from SESAM's OML PLAM library. In the configuration, you must tell PHP the name of this PLAM library, and the file link to use for the SESAM configuration file (As of SESAM V3.0, SQLSCI is available in the SESAM Tool Library, which is part of the standard distribution).

Because the SQL command quoting for single quotes uses duplicated single quotes (as opposed to a single quote preceded by a backslash, used in some other databases), it is advisable to set the PHP configuration directives php3_magic_quotes_gpc and php3_magic_quotes_sybase to On for all PHP scripts using the SESAM interface.

Runtime considerations

Because of limitations of the BS2000 process model, the driver can be loaded only after the Apache server has forked off its server child processes. This will slightly slow down the initial SESAM request of each child, but subsequent accesses will respond at full speed.

When explicitly defining a Message Catalog for SESAM, that catalog will be loaded each time the driver is loaded (i.e., at the initial SESAM request). The BS2000 operating system prints a message after successful load of the message catalog, which will be sent to Apache's error_log file. BS2000 currently does not allow suppression of this message, it will slowly fill up the log.

Make sure that the SESAM OML PLAM library and SESAM configuration file are readable by the user id running the web server. Otherwise, the server will be unable to load the driver, and will not allow to call any SESAM functions. Also, access to the database must be granted to the user id under which the Apache server is running. Otherwise, connections to the SESAM database handler will fail.

Cursor Types

The result cursors which are allocated for SQL "select type" queries can be either "sequential" or "scrollable". Because of the larger memory overhead needed by "scrollable" cursors, the default is "sequential".

When using "scrollable" cursors, the cursor can be freely positioned on the result set. For each "scrollable" query, there are global default values for the scrolling type (initialized to: SESAM_SEEK_NEXT) and the scrolling offset which can either be set once by sesam_seek_row() or each time when fetching a row using sesam_fetch_row(). When fetching a row using a "scrollable" cursor, the following post-processing is done for the global default values for the scrolling type and scrolling offset:

Таблица 2. Scrolled Cursor Post-Processing

Scroll Type | Action
SESAM_SEEK_NEXT | none
SESAM_SEEK_PRIOR | none
SESAM_SEEK_FIRST | set scroll type to SESAM_SEEK_NEXT
SESAM_SEEK_LAST | set scroll type to SESAM_SEEK_PRIOR
SESAM_SEEK_ABSOLUTE | Auto-Increment internal offset value
SESAM_SEEK_RELATIVE | none. (maintain global default offset value, which allows for, e.g., fetching each 10th row backwards)

Porting note

Because in the PHP world it is natural to start indexes at zero (rather than 1), some adaptions have been made to the SESAM interface: whenever an indexed array is starting with index 1 in the native SESAM interface, the PHP interface uses index 0 as a starting point. E.g., when retrieving columns with sesam_fetch_row(), the first column has the index 0, and the subsequent columns have indexes up to (but not including) the column count ($array["count"]). When porting SESAM applications from other high level languages to PHP, be aware of this changed interface. Where appropriate, the description of the respective PHP sesam functions include a note that the index is zero based.

Security concerns

When allowing access to the SESAM databases, the web server user should only have as little privileges as possible. For most databases, only read access privilege should be granted. Depending on your usage scenario, add more access rights as you see fit. Never allow full control to any database for any user from the 'net! Restrict access to PHP scripts which must administer the database by using password control and/or SSL security.

Migration from other SQL databases

No two SQL dialects are ever 100% compatible. When porting SQL applications from other database interfaces to SESAM, some adaption may be required. The following typical differences should be noted:

  • Vendor specific data types

    Some vendor specific data types may have to be replaced by standard SQL data types (e.g., TEXT could be replaced by VARCHAR(max. size)).

  • Keywords as SQL identifiers

    In SESAM (as in standard SQL), such identifiers must be enclosed in double quotes (or renamed).

  • Display length in data types

    SESAM data types have a precision, not a display length. Instead of int(4) (intended use: integers up to '9999'), SESAM requires simply int for an implied size of 31 bits. Also, the only datetime data types available in SESAM are: DATE, TIME(3) and TIMESTAMP(3).

  • SQL types with vendor-specific unsigned, zerofill, or auto_increment attributes

    Unsigned and zerofill are not supported. Auto_increment is automatic (use "INSERT ... VALUES(*, ...)" instead of "... VALUES(0, ...)" to take advantage of SESAM-implied auto-increment.

  • int ... DEFAULT '0000'

    Numeric variables must not be initialized with string constants. Use DEFAULT 0 instead. To initialize variables of the datetime SQL data types, the initialization string must be prefixed with the respective type keyword, as in: CREATE TABLE exmpl ( xtime timestamp(3) DEFAULT TIMESTAMP '1970-01-01 00:00:00.000' NOT NULL );

  • $count = xxxx_num_rows();

    Some databases promise to guess/estimate the number of the rows in a query result, even though the returned value is grossly incorrect. SESAM does not know the number of rows in a query result before actually fetching them. If you REALLY need the count, try SELECT COUNT(...) WHERE ..., it will tell you the number of hits. A second query will (hopefully) return the results.

  • DROP TABLE thename;

    In SESAM, in the DROP TABLE command, the table name must be either followed by the keyword RESTRICT or CASCADE. When specifying RESTRICT, an error is returned if there are dependent objects (e.g., VIEWs), while with CASCADE, dependent objects will be deleted along with the specified table.

Notes on the use of various SQL types

SESAM does not currently support the BLOB type. A future version of SESAM will have support for BLOB.

At the PHP interface, the following type conversions are automatically applied when retrieving SQL fields:

Таблица 3. SQL to PHP Type Conversions

SQL Type | PHP Type
SMALLINT, INTEGER | integer
NUMERIC, DECIMAL, FLOAT, REAL, DOUBLE | float
DATE, TIME, TIMESTAMP | string
VARCHAR, CHARACTER | string
When retrieving a complete row, the result is returned as an array. Empty fields are not filled in, so you will have to check for the existence of the individual fields yourself (use isset() or empty() to test for empty fields). That allows more user control over the appearance of empty fields (than in the case of an empty string as the representation of an empty field).

Support of SESAM's "multiple fields" feature

The special "multiple fields" feature of SESAM allows a column to consist of an array of fields. Such a "multiple field" column can be created like this:

Пример 1. Creating a "multiple field" column

CREATE TABLE multi_field_test (
    pkey CHAR(20) PRIMARY KEY,
    multi(3) CHAR(12)
)
and can be filled in using:

Пример 2. Filling a "multiple field" column

INSERT INTO multi_field_test (pkey, multi(2..3) )
    VALUES ('Second', <'first_val', 'second_val'>)
Note that (like in this case) leading empty sub-fields are ignored, and the filled-in values are collapsed, so that in the above example the result will appear as multi(1..2) instead of multi(2..3).

When retrieving a result row, "multiple columns" are accessed like "inlined" additional columns. In the example above, "pkey" will have the index 0, and the three "multi(1..3)" columns will be accessible as indices 1 through 3.

Смотрите также

For specific SESAM details, please refer to the SESAM/SQL-Server documentation (english) or the SESAM/SQL-Server documentation (german), both available online, or use the respective manuals.

Содержание
sesam_affected_rows -- Get number of rows affected by an immediate query
sesam_commit -- Commit pending updates to the SESAM database
sesam_connect -- Open SESAM database connection
sesam_diagnostic -- Return status information for last SESAM call
sesam_disconnect -- Detach from SESAM connection
sesam_errormsg -- Returns error message of last SESAM call
sesam_execimm -- Execute an "immediate" SQL-statement
sesam_fetch_array -- Fetch one row as an associative array
sesam_fetch_result -- Return all or part of a query result
sesam_fetch_row -- Fetch one row as an array
sesam_field_array -- Return meta information about individual columns in a result
sesam_field_name -- Return one column name of the result set
sesam_free_result -- Releases resources for the query
sesam_num_fields -- Return the number of fields/columns in a result set
sesam_query -- Perform a SESAM SQL query and prepare the result
sesam_rollback -- Discard any pending updates to the SESAM database
sesam_seek_row -- Set scrollable cursor mode for subsequent fetches
sesam_settransaction -- Set SESAM transaction parameters

Пред. | Начало | След.
shm_remove | Уровень выше | sesam_affected_rows


sesam_affected_rows

(PHP 3 CVS only)

sesam_affected_rows -- Get number of rows affected by an immediate query

Description

int sesam_affected_rows ( string result_id )

result_id is a valid result id returned by sesam_query().

Returns the number of rows affected by a query associated with result_id.

The sesam_affected_rows() function can only return useful values when used in combination with "immediate" SQL statements (updating operations like INSERT, UPDATE and DELETE) because SESAM does not deliver any "affected rows" information for "select type" queries. The number returned is the number of affected rows.

Пример 1. sesam_affected_rows() example

<?php
$result = sesam_execimm("DELETE FROM PHONE WHERE LASTNAME = '" . strtoupper($name) . "'");
if (!$result) {
    /* ... error ... */
}
echo sesam_affected_rows($result).
    " entries with last name " . $name . " deleted.\n";
?>

See also sesam_query() and sesam_execimm().

Пред. | Начало | След.
SESAM Database Functions | Уровень выше | sesam_commit


sesam_commit

(PHP 3 CVS only)

sesam_commit -- Commit pending updates to the SESAM database

Description

bool sesam_commit ( void )

Returns: TRUE on success, FALSE on errors

sesam_commit() commits any pending updates to the database.

Note that there is no "auto-commit" feature as in other databases, as it could lead to accidental data loss. Uncommitted data at the end of the current script (or when calling sesam_disconnect()) will be discarded by an implied sesam_rollback() call.

See also: sesam_rollback().

Пример 1. Committing an update to the SESAM database

<?php
if (sesam_connect ("mycatalog", "myschema", "otto")) {
    if (!sesam_execimm ("INSERT INTO mytable VALUES (*, 'Small Test', <0, 8, 15>)"))
        die("insert failed");
    if (!sesam_commit())
        die("commit failed");
}
?>

Пред. | Начало | След.
sesam_affected_rows | Уровень выше | sesam_connect


sesam_connect

(PHP 3 CVS only)

sesam_connect -- Open SESAM database connection

Description

bool sesam_connect ( string catalog, string schema, string user )

Returns TRUE if a connection to the SESAM database was made, or FALSE on error.

sesam_connect() establishes a connection to an SESAM database handler task. The connection is always "persistent" in the sense that only the very first invocation will actually load the driver from the configured SESAM OML PLAM library. Subsequent calls will reuse the driver and will immediately use the given catalog, schema, and user.

When creating a database, the "catalog" name is specified in the SESAM configuration directive //ADD-SQL-DATABASE-CATALOG-LIST ENTRY-1 = *CATALOG(CATALOG-NAME = catalogname,...)

The "schema" references the desired database schema (see SESAM handbook).

The "user" argument references one of the users which are allowed to access this "catalog" / "schema" combination. Note that "user" is completely independent from both the system's user id's and from HTTP user/password protection. It appears in the SESAM configuration only.

See also sesam_disconnect().

Пример 1. Connect to a SESAM database

<?php
if (!sesam_connect ("mycatalog", "myschema", "otto")) {
    die("Unable to connect to SESAM");
}
?>

Пред. | Начало | След.
sesam_commit | Уровень выше | sesam_diagnostic


sesam_diagnostic

(PHP 3 CVS only)

sesam_diagnostic -- Return status information for last SESAM call

Description

array sesam_diagnostic ( void )

Returns an associative array of status and return codes for the last SQL query/statement/command. Elements of the array are:

Таблица 1. Status information returned by sesam_diagnostic()

Element | Contents
$array["sqlstate"] | 5 digit SQL return code (see the SESAM manual for the description of the possible values of SQLSTATE)
$array["rowcount"] | number of affected rows in last update/insert/delete (set after "immediate" statements only)
$array["errmsg"] | "human readable" error message string (set after errors only)
$array["errcol"] | error column number of previous error (0-based; or -1 if undefined. Set after errors only)
$array["errlin"] | error line number of previous error (0-based; or -1 if undefined. Set after errors only)

In the following example, a syntax error (E SEW42AE ILLEGAL CHARACTER) is displayed by including the offending SQL statement and pointing to the error location:

Пример 1. Displaying SESAM error messages with error position

<?php
// Function which prints a formatted error message,
// displaying a pointer to the syntax error in the
// SQL statement
function PrintReturncode($exec_str)
{
    $err = Sesam_Diagnostic();
    $colspan=4; // 4 cols for: sqlstate, errlin, errcol, rowcount
    if ($err["errlin"] == -1)
        --$colspan;
    if ($err["errcol"] == -1)
        --$colspan;
    if ($err["rowcount"] == 0)
        --$colspan;
    echo "<table border=\"1\">\n";
    echo "<tr><th colspan=\"" . $colspan . "\"><span class=\"spanred\">ERROR:</span> ".
         htmlspecialchars($err["errmsg"]) . "</th></tr>\n";
    if ($err["errcol"] >= 0) {
        echo "<tr><td colspan=\"" . $colspan . "\"><pre>\n";
        $errstmt = $exec_str . "\n";
        for ($lin=0; $errstmt != ""; ++$lin) {
            if ($lin != $err["errlin"]) { // $lin is less or greater than errlin
                if (!($i = strchr($errstmt, "\n")))
                    $i = "";
                $line = substr ($errstmt, 0, strlen($errstmt)-strlen($i)+1);
                $errstmt = substr($i, 1);
                if ($line != "\n")
                    echo htmlspecialchars($line);
            } else {
                if (! ($i = strchr ($errstmt, "\n")))
                    $i = "";
                $line = substr ($errstmt, 0, strlen ($errstmt)-strlen($i)+1);
                $errstmt = substr($i, 1);
                for ($col=0; $col < $err["errcol"]; ++$col) {
                    echo (substr($line, $col, 1) == "\t") ? "\t" : ".";
                }
                echo "<span class=\"spanred\">\\</span>\n";
                echo "<span class=\"normal\">" . htmlspecialchars($line) . "</span>";
                for ($col=0; $col < $err["errcol"]; ++$col) {
                    echo (substr ($line, $col, 1) == "\t") ? "\t" : ".";
                }
                echo "<span class=\"spanred\">/</span>\n";
            }
        }
        echo "</pre></td></tr>\n";
    }
    echo "<tr>\n";
    echo " <td>sqlstate=" . $err["sqlstate"] . "</td>\n";
    if ($err["errlin"] != -1)
        echo " <td>errlin=" . $err["errlin"] . "</td>\n";
    if ($err["errcol"] != -1)
        echo " <td>errcol=" . $err["errcol"] . "</td>\n";
    if ($err["rowcount"] != 0)
         echo " <td>rowcount=" . $err["rowcount"] . "</td>\n";
    echo "</tr>\n";
    echo "</table>\n";
}

if (!sesam_connect ("mycatalog", "phoneno", "otto"))
  die ("cannot connect");

$stmt = "SELECT * FROM phone\n" .
        " WHERE@ LASTNAME='KRAEMER'\n" .
        " ORDER BY FIRSTNAME";
if (!($result = sesam_query ($stmt)))
    PrintReturncode ($stmt);
?>

See also: sesam_errormsg() for simple access to the error string only

Пред. | Начало | След.
sesam_connect | Уровень выше | sesam_disconnect


sesam_disconnect

(PHP 3 CVS only)

sesam_disconnect -- Detach from SESAM connection

Description

bool sesam_disconnect ( void )

Returns: always TRUE.

sesam_disconnect() closes the logical link to a SESAM database (without actually disconnecting and unloading the driver).

Note that this isn't usually necessary, as the open connection is automatically closed at the end of the script's execution. Uncommitted data will be discarded, because an implicit sesam_rollback() is executed.

sesam_disconnect() will not close the persistent link, it will only invalidate the currently defined "catalog", "schema" and "user" triple, so that any sesam function called after sesam_disconnect() will fail.

Пример 1. Closing a SESAM connection

<?php
if (sesam_connect ("mycatalog", "myschema", "otto")) {
    /* ... some queries and stuff ... */
    sesam_disconnect();
}
?>

See also sesam_connect().

Пред. | Начало | След.
sesam_diagnostic | Уровень выше | sesam_errormsg


sesam_errormsg

(PHP 3 CVS only)

sesam_errormsg -- Returns error message of last SESAM call

Description

string sesam_errormsg ( void )

Returns the SESAM error message associated with the most recent SESAM error.

Пример 1. sesam_errormsg() example

<?php
if (!sesam_execimm($stmt)) {
  echo sesam_errormsg() . "<br />\n";
}
?>

See also sesam_diagnostic() for the full set of SESAM SQL status information.

Пред. | Начало | След.
sesam_disconnect | Уровень выше | sesam_execimm


sesam_execimm

(PHP 3 CVS only)

sesam_execimm -- Execute an "immediate" SQL-statement

Description

string sesam_execimm ( string query )

Returns: A SESAM "result identifier" on success, or FALSE on error.

sesam_execimm() executes an "immediate" statement (i.e., a statement like UPDATE, INSERT or DELETE which returns no result, and has no INPUT or OUTPUT variables). "select type" queries can not be used with sesam_execimm(). Sets the affected_rows value for retrieval by the sesam_affected_rows() function.

Note that sesam_query() can handle both "immediate" and "select-type" queries. Use sesam_execimm() only if you know beforehand what type of statement will be executed. An attempt to use SELECT type queries with sesam_execimm() will return $err["sqlstate"] == "42SBW".

The returned "result identifier" can not be used for retrieving anything but the sesam_affected_rows(); it is only returned for symmetry with the sesam_query() function.

<?php
$stmt = "INSERT INTO mytable VALUES ('one', 'two')";
$result = sesam_execimm($stmt);
$err = sesam_diagnostic();
echo "sqlstate = " . $err["sqlstate"] . "\n".
       "Affected rows = " . $err["rowcount"] . " == " .
       sesam_affected_rows($result) . "\n";
?>

See also sesam_query() and sesam_affected_rows().

Пред. | Начало | След.
sesam_errormsg | Уровень выше | sesam_fetch_array


sesam_fetch_array

(PHP 3 CVS only)

sesam_fetch_array -- Fetch one row as an associative array

Description

array sesam_fetch_array ( string result_id [, int whence [, int offset]] )

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

sesam_fetch_array() is an alternative version of sesam_fetch_row(). Instead of storing the data in the numeric indices of the result array, it stores the data in associative indices, using the field names as keys.

result_id is a valid result id returned by sesam_query() (select type queries only!).

For the valid values of the optional whenceand offset parameters, see the sesam_fetch_row() function for details.

sesam_fetch_array() fetches one row of data from the result associated with the specified result identifier. The row is returned as an associative array. Each result column is stored with an associative index equal to its column (aka. field) name. The column names are converted to lower case.

Columns without a field name (e.g., results of arithmetic operations) and empty fields are not stored in the array. Also, if two or more columns of the result have the same column names, the later column will take precedence. In this situation, either call sesam_fetch_row() or make an alias for the column.

SELECT TBL1.COL AS FOO, TBL2.COL AS BAR FROM TBL1, TBL2

A special handling allows fetching "multiple field" columns (which would otherwise all have the same column names). For each column of a "multiple field", the index name is constructed by appending the string "(n)" where n is the sub-index of the multiple field column, ranging from 1 to its declared repetition factor. The indices are NOT zero based, in order to match the nomenclature used in the respective query syntax. For a column declared as:

CREATE TABLE ... ( ... MULTI(3) INT )

the associative indices used for the individual "multiple field" columns would be "multi(1)", "multi(2)", and "multi(3)" respectively.

Subsequent calls to sesam_fetch_array() would return the next (or prior, or n'th next/prior, depending on the scroll attributes) row in the result set, or FALSE if there are no more rows.

Пример 1. SESAM fetch array

<?php
$result = sesam_query("SELECT * FROM phone\n" .
                       "  WHERE LASTNAME='" . strtoupper($name) . "'\n".
                       "  ORDER BY FIRSTNAME", 1);
if (!$result) {
    /* ... error ... */
}
// print the table:
echo "<table border=\"1\">\n";
while (($row = sesam_fetch_array($result)) && count($row) > 0) {
    echo "<tr>\n";
    echo "<td>" . htmlspecialchars($row["firstname"]) . "</td>\n";
    echo "<td>" . htmlspecialchars($row["lastname"]) . "</td>\n";
    echo "<td>" . htmlspecialchars($row["phoneno"]) . "</td>\n";
    echo "</tr>\n";
}
echo "</table>\n";
sesam_free_result($result);
?>

See also: sesam_fetch_row() which returns an indexed array.

Пред. | Начало | След.
sesam_execimm | Уровень выше | sesam_fetch_result


sesam_fetch_result

(PHP 3 CVS only)

sesam_fetch_result -- Return all or part of a query result

Description

mixed sesam_fetch_result ( string result_id [, int max_rows] )

Returns a mixed array with the query result entries, optionally limited to a maximum of max_rows rows. Note that both row and column indexes are zero-based.

Таблица 1. Mixed result set returned by sesam_fetch_result()

Array Element | Contents
int $arr["count"] | number of columns in result set (or zero if this was an "immediate" query)
int $arr["rows"] | number of rows in result set (between zero and max_rows)
bool $arr["truncated"] | TRUE if the number of rows was at least max_rows, FALSE otherwise. Note that even when this is TRUE, the next sesam_fetch_result() call may return zero rows because there are no more result entries.
mixed $arr[col][row] | result data for all the fields at row(row) and column(col), (where the integer index row is between 0 and $arr["rows"]-1, and col is between 0 and $arr["count"]-1). Fields may be empty, so you must check for the existence of a field by using the php isset() function. The type of the returned fields depend on the respective SQL type declared for its column (see SESAM overview for the conversions applied). SESAM "multiple fields" are "inlined" and treated like a sequence of columns.
Note that the amount of memory used up by a large query may be gigantic. Use the max_rows parameter to limit the maximum number of rows returned, unless you are absolutely sure that your result will not use up all available memory.

See also: sesam_fetch_row(), and sesam_field_array() to check for "multiple fields". See the description of the sesam_query() function for a complete example using sesam_fetch_result().

Пред. | Начало | След.
sesam_fetch_array | Уровень выше | sesam_fetch_row


sesam_fetch_row

(PHP 3 CVS only)

sesam_fetch_row -- Fetch one row as an array

Description

array sesam_fetch_row ( string result_id [, int whence [, int offset]] )

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

The number of columns in the result set is returned in an associative array element $array["count"]. Because some of the result columns may be empty, the count() function can not be used on the result row returned by sesam_fetch_row().

result_id is a valid result id returned by sesam_query() (select type queries only!).

whence is an optional parameter for a fetch operation on "scrollable" cursors, which can be set to the following predefined constants:

Таблица 1. Valid values for "whence" parameter

Value | Constant | Meaning
0 | SESAM_SEEK_NEXT | read sequentially (after fetch, the internal default is set to SESAM_SEEK_NEXT)
1 | SESAM_SEEK_PRIOR | read sequentially backwards (after fetch, the internal default is set to SESAM_SEEK_PRIOR)
2 | SESAM_SEEK_FIRST | rewind to first row (after fetch, the default is set to SESAM_SEEK_NEXT)
3 | SESAM_SEEK_LAST | seek to last row (after fetch, the default is set to SESAM_SEEK_PRIOR)
4 | SESAM_SEEK_ABSOLUTE | seek to absolute row number given as offset (Zero-based. After fetch, the internal default is set to SESAM_SEEK_ABSOLUTE, and the internal offset value is auto-incremented)
5 | SESAM_SEEK_RELATIVE | seek relative to current scroll position, where offset can be a positive or negative offset value.
This parameter is only valid for "scrollable" cursors.

When using "scrollable" cursors, the cursor can be freely positioned on the result set. If the whence parameter is omitted, the global default values for the scrolling type (initialized to: SESAM_SEEK_NEXT, and settable by sesam_seek_row()) are used. If whence is supplied, its value replaces the global default.

offset is an optional parameter which is only evaluated (and required) if whence is either SESAM_SEEK_RELATIVE or SESAM_SEEK_ABSOLUTE. This parameter is only valid for "scrollable" cursors.

sesam_fetch_row() fetches one row of data from the result associated with the specified result identifier. The row is returned as an array (indexed by values between 0 and $array["count"]-1). Fields may be empty, so you must check for the existence of a field by using the isset() function. The type of the returned fields depend on the respective SQL type declared for its column (see SESAM overview for the conversions applied). SESAM "multiple fields" are "inlined" and treated like a sequence of columns.

Subsequent calls to sesam_fetch_row() would return the next (or prior, or n'th next/prior, depending on the scroll attributes) row in the result set, or FALSE if there are no more rows.

Пример 1. SESAM fetch rows

<?php
$result = sesam_query("SELECT * FROM phone\n" .
                       "  WHERE LASTNAME='" . strtoupper($name) . "'\n" .
                       "  ORDER BY FIRSTNAME", 1);
if (!$result) {
    /* ... error ... */
}
// print the table in backward order
echo "<table border=\"1\">\n";
$row = sesam_fetch_row($result, SESAM_SEEK_LAST);
while (is_array($row)) {
    echo "<tr>\n";
    for ($col = 0; $col < $row["count"]; ++$col) {
        echo "<td>" . htmlspecialchars($row[$col]) . "</td>\n";
    }
    echo "</tr>\n";
    // use implied SESAM_SEEK_PRIOR
    $row = sesam_fetch_row($result);
}
echo "</table>\n";
sesam_free_result($result);
?>

See also: sesam_fetch_array() which returns an associative array, and sesam_fetch_result() which returns many rows per invocation.

Пред. | Начало | След.
sesam_fetch_result | Уровень выше | sesam_field_array


sesam_field_array

(PHP 3 CVS only)

sesam_field_array -- Return meta information about individual columns in a result

Description

array sesam_field_array ( string result_id )

result_id is a valid result id returned by sesam_query().

Returns a mixed associative/indexed array with meta information (column name, type, precision, ...) about individual columns of the result after the query associated with result_id.

Таблица 1. Mixed result set returned by sesam_field_array()

Array Element | Contents
int $arr["count"] | Total number of columns in result set (or zero if this was an "immediate" query). SESAM "multiple fields" are "inlined" and treated like the respective number of columns.
string $arr[col]["name"] | column name for column(col), where col is between 0 and $arr["count"]-1. The returned value can be the empty string (for dynamically computed columns). SESAM "multiple fields" are "inlined" and treated like the respective number of columns, each with the same column name.
string $arr[col]["count"] | The "count" attribute describes the repetition factor when the column has been declared as a "multiple field". Usually, the "count" attribute is 1. The first column of a "multiple field" column however contains the number of repetitions (the second and following column of the "multiple field" contain a "count" attribute of 1). This can be used to detect "multiple fields" in the result set. See the example shown in the sesam_query() description for a sample use of the "count" attribute.
string $arr[col]["type"] PHP variable type of the data for column(col), where col is between 0 and $arr["count"]-1. The returned value can be one of

  • integer

  • float

  • string

depending on the SQL type of the result. SESAM "multiple fields" are "inlined" and treated like the respective number of columns, each with the same PHP type.
string $arr[col]["sqltype"] SQL variable type of the column data for column(col), where col is between 0 and $arr["count"]-1. The returned value can be one of

  • "CHARACTER"

  • "VARCHAR"

  • "NUMERIC"

  • "DECIMAL"

  • "INTEGER"

  • "SMALLINT"

  • "FLOAT"

  • "REAL"

  • "DOUBLE"

  • "DATE"

  • "TIME"

  • "TIMESTAMP"

describing the SQL type of the result. SESAM "multiple fields" are "inlined" and treated like the respective number of columns, each with the same SQL type.
string $arr[col]["length"] | The SQL "length" attribute of the SQL variable in column(col), where col is between 0 and $arr["count"]-1. The "length" attribute is used with "CHARACTER" and "VARCHAR" SQL types to specify the (maximum) length of the string variable. SESAM "multiple fields" are "inlined" and treated like the respective number of columns, each with the same length attribute.
string $arr[col]["precision"] | The "precision" attribute of the SQL variable in column(col), where col is between 0 and $arr["count"]-1. The "precision" attribute is used with numeric and time data types. SESAM "multiple fields" are "inlined" and treated like the respective number of columns, each with the same precision attribute.
string $arr[col]["scale"] | The "scale" attribute of the SQL variable in column(col), where col is between 0 and $arr["count"]-1. The "scale" attribute is used with numeric data types. SESAM "multiple fields" are "inlined" and treated like the respective number of columns, each with the same scale attribute.

See also sesam_query() for an example of the sesam_field_array() use.

Пред. | Начало | След.
sesam_fetch_row | Уровень выше | sesam_field_name


sesam_field_name

(PHP 3 CVS only)

sesam_field_name -- Return one column name of the result set

Description

int sesam_field_name ( string result_id, int index )

Returns the name of a field (i.e., the column name) in the result set, or FALSE on error.

For "immediate" queries, or for dynamic columns, an empty string is returned.

Замечание: The column index is zero-based, not one-based as in SESAM.

See also: sesam_field_array(). It provides an easier interface to access the column names and types, and allows for detection of "multiple fields".

Пред. | Начало | След.
sesam_field_array | Уровень выше | sesam_free_result


sesam_free_result

(PHP 3 CVS only)

sesam_free_result -- Releases resources for the query

Description

int sesam_free_result ( string result_id )

Releases resources for the query associated with result_id. Returns FALSE on error.

Пред. | Начало | След.
sesam_field_name | Уровень выше | sesam_num_fields


sesam_num_fields

(PHP 3 CVS only)

sesam_num_fields -- Return the number of fields/columns in a result set

Description

int sesam_num_fields ( string result_id )

After calling sesam_query() with a "select type" query, this function gives you the number of columns in the result. Returns an integer describing the total number of columns (aka. fields) in the current result_id result set or FALSE on error.

For "immediate" statements, the value zero is returned. The SESAM "multiple field" columns count as their respective dimension, i.e., a three-column "multiple field" counts as three columns.

See also: sesam_query() and sesam_field_array() for a way to distinguish between "multiple field" columns and regular columns.

Пред. | Начало | След.
sesam_free_result | Уровень выше | sesam_query


sesam_query

(PHP 3 CVS only)

sesam_query -- Perform a SESAM SQL query and prepare the result

Description

string sesam_query ( string query [, bool scrollable] )

Returns: A SESAM "result identifier" on success, or FALSE on error.

A "result_id" resource is used by other functions to retrieve the query results.

sesam_query() sends a query to the currently active database on the server. It can execute both "immediate" SQL statements and "select type" queries. If an "immediate" statement is executed, then no cursor is allocated, and any subsequent sesam_fetch_row() or sesam_fetch_result() call will return an empty result (zero columns, indicating end-of-result). For "select type" statements, a result descriptor and a (scrollable or sequential, depending on the optional boolean scrollable parameter) cursor will be allocated. If scrollable is omitted, the cursor will be sequential.

When using "scrollable" cursors, the cursor can be freely positioned on the result set. For each "scrollable" query, there are global default values for the scrolling type (initialized to: SESAM_SEEK_NEXT) and the scrolling offset which can either be set once by sesam_seek_row() or each time when fetching a row using sesam_fetch_row().

For "immediate" statements, the number of affected rows is saved for retrieval by the sesam_affected_rows() function.

See also: sesam_fetch_row() and sesam_fetch_result().

Пример 1. Show all rows of the "phone" table as a HTML table

<?php
if (!sesam_connect("phonedb", "demo", "otto"))
    die("cannot connect");
$result = sesam_query("select * from phone");
if (!$result) {
    $err = sesam_diagnostic();
    die ($err["errmsg"]);
}
echo "<table border>\n";
// Add title header with column names above the result:
if ($cols = sesam_field_array($result)) {
    echo "<tr><th colspan=" . $cols["count"] . ">Result:</th></tr>\n";
    echo "<tr>\n";
    for ($col = 0; $col < $cols["count"]; ++$col) {
        $colattr = $cols[$col];
        /* Span the table head over SESAM's "Multiple Fields": */
        if ($colattr["count"] > 1) {
            echo "<th colspan=\"" . $colattr["count"] . "\">" . $colattr["name"] .
                "(1.." . $colattr["count"] . ")</th>\n";
            $col += $colattr["count"] - 1;
        } else
            echo "<th>" . $colattr["name"] . "</th>\n";
    }
    echo "</tr>\n";
}

do {
    // Fetch the result in chunks of 100 rows max.
    $ok = sesam_fetch_result($result, 100);
    for ($row=0; $row < $ok["rows"]; ++$row) {
        echo " <tr>\n";
        for ($col = 0; $col < $ok["cols"]; ++$col) {
            if (isset($ok[$col][$row])) {
                echo "<td>" . $ok[$col][$row] . "</td>\n";
            } else {
                echo "<td>-empty-</td>\n";
            }
        }
        echo "</tr>\n";
    }
} while ($ok["truncated"]); // while there may be more data

echo "</table>\n";
// free result id
sesam_free_result($result);
?>

Пред. | Начало | След.
sesam_num_fields | Уровень выше | sesam_rollback


sesam_rollback

(PHP 3 CVS only)

sesam_rollback -- Discard any pending updates to the SESAM database

Description

bool sesam_rollback ( void )

Returns: TRUE on success, FALSE on errors

sesam_rollback() discards any pending updates to the database. Also affected are result cursors and result descriptors.

At the end of each script, and as part of the sesam_disconnect() function, an implied sesam_rollback() is executed, discarding any pending changes to the database.

See also: sesam_commit().

Пример 1. Discarding an update to the SESAM database

<?php
if (sesam_connect ("mycatalog", "myschema", "otto")) {
    if (sesam_execimm ("INSERT INTO mytable VALUES (*, 'Small Test', <0, 8, 15>)")
        && sesam_execimm ("INSERT INTO othertable VALUES (*, 'Another Test', 1)")) {
        sesam_commit();
    } else {
        sesam_rollback();
    }
}
?>

Пред. | Начало | След.
sesam_query | Уровень выше | sesam_seek_row


sesam_seek_row

(PHP 3 CVS only)

sesam_seek_row -- Set scrollable cursor mode for subsequent fetches

Description

bool sesam_seek_row ( string result_id, int whence [, int offset] )

result_id is a valid result id (select type queries only, and only if a "scrollable" cursor was requested when calling sesam_query()).

whence sets the global default value for the scrolling type, it specifies the scroll type to use in subsequent fetch operations on "scrollable" cursors, which can be set to the following predefined constants:

Таблица 1. Valid values for "whence" parameter

Value | Constant | Meaning
0 | SESAM_SEEK_NEXT | read sequentially
1 | SESAM_SEEK_PRIOR | read sequentially backwards
2 | SESAM_SEEK_FIRST | fetch first row (after fetch, the default is set to SESAM_SEEK_NEXT)
3 | SESAM_SEEK_LAST | fetch last row (after fetch, the default is set to SESAM_SEEK_PRIOR)
4 | SESAM_SEEK_ABSOLUTE | fetch absolute row number given as offset (Zero-based. After fetch, the default is set to SESAM_SEEK_ABSOLUTE, and the offset value is auto-incremented)
5 | SESAM_SEEK_RELATIVE | fetch relative to current scroll position, where offset can be a positive or negative offset value (this also sets the default "offset" value for subsequent fetches).

offset is an optional parameter which is only evaluated (and required) if whence is either SESAM_SEEK_RELATIVE or SESAM_SEEK_ABSOLUTE.

Пред. | Начало | След.
sesam_rollback | Уровень выше | sesam_settransaction


sesam_settransaction

(PHP 3 CVS only)

sesam_settransaction -- Set SESAM transaction parameters

Description

bool sesam_settransaction ( int isolation_level, int read_only )

Returns: TRUE if the values are valid, and the settransaction() operation was successful, FALSE otherwise.

sesam_settransaction() overrides the default values for the "isolation level" and "read-only" transaction parameters (which are set in the SESAM configuration file), in order to optimize subsequent queries and guarantee database consistency. The overridden values are used for the next transaction only.

sesam_settransaction() can only be called before starting a transaction, not after the transaction has been started already.

To simplify the use in PHP scripts, the following constants have been predefined in PHP (see SESAM handbook for detailed explanation of the semantics):

Таблица 1. Valid values for "Isolation_Level" parameter

Value | Constant | Meaning
1 | SESAM_TXISOL_READ_UNCOMMITTED | Read Uncommitted
2 | SESAM_TXISOL_READ_COMMITTED | Read Committed
3 | SESAM_TXISOL_REPEATABLE_READ | Repeatable Read
4 | SESAM_TXISOL_SERIALIZABLE | Serializable

Таблица 2. Valid values for "Read_Only" parameter

Value | Constant | Meaning
0 | SESAM_TXREAD_READWRITE | Read/Write
1 | SESAM_TXREAD_READONLY | Read-Only

The values set by sesam_settransaction() will override the default setting specified in the SESAM configuration file.

Пример 1. Setting SESAM transaction parameters

<?php
sesam_settransaction (SESAM_TXISOL_REPEATABLE_READ,
                     SESAM_TXREAD_READONLY);
?>

Пред. | Начало | След.
sesam_seek_row | Уровень выше | PostgreSQL Session Save Handler


Session Handling Functions

Руководство по PHP
Пред. След.

CXXXV. Session Handling Functions

Введение

Session support in PHP consists of a way to preserve certain data across subsequent accesses. This enables you to build more customized applications and increase the appeal of your web site.

A visitor accessing your web site is assigned a unique id, the so-called session id. This is either stored in a cookie on the user side or is propagated in the URL.

The session support allows you to register arbitrary numbers of variables to be preserved across requests. When a visitor accesses your site, PHP will check automatically (if session.auto_start is set to 1) or on your request (explicitly through session_start() or implicitly through session_register()) whether a specific session id has been sent with the request. If this is the case, the prior saved environment is recreated.

Предостережение

If you do turn on session.auto_start then you cannot put objects into your sessions since the class definition has to be loaded before starting the session in order to recreate the objects in your session.

All registered variables are serialized after the request finishes. Registered variables which are undefined are marked as being not defined. On subsequent accesses, these are not defined by the session module unless the user defines them later.

Внимание

Some types of data can not be serialized thus stored in sessions. It includes resource variables or objects with circular references (i.e. objects which passes a reference to itself to another object).

Замечание: Session handling was added in PHP 4.0.

Замечание: Please note when working with sessions that a record of a session is not created until a variable has been registered using the session_register() function or by adding a new key to the $_SESSION superglobal array. This holds true regardless of if a session has been started using the session_start() function.

Sessions and security

External links: Session fixation

The session module cannot guarantee that the information you store in a session is only viewed by the user who created the session. You need to take additional measures to actively protect the integrity of the session, depending on the value associated with it.

Assess the importance of the data carried by your sessions and deploy additional protections -- this usually comes at a price, reduced convenience for the user. For example, if you want to protect users from simple social engineering tactics, you need to enable session.use_only_cookies. In that case, cookies must be enabled unconditionally on the user side, or sessions will not work.

There are several ways to leak an existing session id to third parties. A leaked session id enables the third party to access all resources which are associated with a specific id. First, URLs carrying session ids. If you link to an external site, the URL including the session id might be stored in the external site's referrer logs. Second, a more active attacker might listen to your network traffic. If it is not encrypted, session ids will flow in plain text over the network. The solution here is to implement SSL on your server and make it mandatory for users.

Требования

Эти функции всегда доступны.

Замечание: Optionally you can use shared memory allocation (mm), developed by Ralf S. Engelschall, for session storage. You have to download mm and install it. This option is not available for Windows platforms. Note that the session storage module for mm does not guarantee that concurrent accesses to the same session are properly locked. It might be more appropriate to use a shared memory based filesystem (such as tmpfs on Solaris/Linux, or /dev/md on BSD) to store sessions in files, because they are properly locked.

Установка

Session support is enabled in PHP by default. If you would not like to build your PHP with session support, you should specify the --disable-session option to configure. To use shared memory allocation (mm) for session storage configure PHP --with-mm[=DIR] .

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.

Замечание: By default, all data related to a particular session will be stored in a file in the directory specified by the session.save_path INI option. A file for each session (regardless of if any data is associated with that session) will be created. This is due to the fact that a session is opened (a file is created) but no data is even written to that file. Note that this behavior is a side-effect of the limitations of working with the file system and it is possible that a custom session handler (such as one which uses a database) does not keep track of sessions which store no data.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Session configuration options

Name | Default | Changeable | Changelog
session.save_path | "" | PHP_INI_ALL |
session.name | "PHPSESSID" | PHP_INI_ALL |
session.save_handler | "files" | PHP_INI_ALL |
session.auto_start | "0" | PHP_INI_ALL |
session.gc_probability | "1" | PHP_INI_ALL |
session.gc_divisor | "100" | PHP_INI_ALL | Available since PHP 4.3.2.
session.gc_maxlifetime | "1440" | PHP_INI_ALL |
session.serialize_handler | "php" | PHP_INI_ALL |
session.cookie_lifetime | "0" | PHP_INI_ALL |
session.cookie_path | "/" | PHP_INI_ALL |
session.cookie_domain | "" | PHP_INI_ALL |
session.cookie_secure | "" | PHP_INI_ALL | Available since PHP 4.0.4.
session.use_cookies | "1" | PHP_INI_ALL |
session.use_only_cookies | "0" | PHP_INI_ALL | Available since PHP 4.3.0.
session.referer_check | "" | PHP_INI_ALL |
session.entropy_file | "" | PHP_INI_ALL |
session.entropy_length | "0" | PHP_INI_ALL |
session.cache_limiter | "nocache" | PHP_INI_ALL |
session.cache_expire | "180" | PHP_INI_ALL |
session.use_trans_sid | "0" | PHP_INI_ALL | PHP_INI_ALL in PHP <= 4.2.3. PHP_INI_PERDIR in PHP < 5. Available since PHP 4.0.3.
session.bug_compat_42 | "1" | PHP_INI_ALL | Available since PHP 4.3.0.
session.bug_compat_warn | "1" | PHP_INI_ALL | Available since PHP 4.3.0.
session.hash_function | "0" | PHP_INI_ALL | Available since PHP 5.0.0.
session.hash_bits_per_character | "4" | PHP_INI_ALL | Available since PHP 5.0.0.
url_rewriter.tags | "a=href,area=href,frame=src,form=,fieldset=" | PHP_INI_ALL | Available since PHP 4.0.4.
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

The session management system supports a number of configuration options which you can place in your php.ini file. We will give a short overview.

session.save_handler string

session.save_handler defines the name of the handler which is used for storing and retrieving data associated with a session. Defaults to files. See also session_set_save_handler().

session.save_path string

session.save_path defines the argument which is passed to the save handler. If you choose the default files handler, this is the path where the files are created. Defaults to /tmp. See also session_save_path().

There is an optional N argument to this directive that determines the number of directory levels your session files will be spread around in. For example, setting to '5;/tmp' may end up creating a session file and location like /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If . In order to use N you must create all of these directories before use. A small shell script exists in ext/session to do this, it's called mod_files.sh. Also note that if N is used and greater than 0 then automatic garbage collection will not be performed, see a copy of php.ini for further information. Also, if you use N, be sure to surround session.save_path in "quotes" because the separator (;) is also used for comments in php.ini.

Внимание

If you leave this set to a world-readable directory, such as /tmp (the default), other users on the server may be able to hijack sessions by getting the list of files in that directory.

Замечание: Prior to PHP 4.3.6, Windows users had to change this variable in order to use PHP's session functions. A valid path must be specified, e.g.: c:/temp.

session.name string

session.name specifies the name of the session which is used as cookie name. It should only contain alphanumeric characters. Defaults to PHPSESSID. See also session_name().

session.auto_start boolean

session.auto_start specifies whether the session module starts a session automatically on request startup. Defaults to 0 (disabled).

session.serialize_handler string

session.serialize_handler defines the name of the handler which is used to serialize/deserialize data. Currently, a PHP internal format (name php) and WDDX is supported (name wddx). WDDX is only available, if PHP is compiled with WDDX support. Defaults to php.

session.gc_probability integer

session.gc_probability in conjunction with session.gc_divisor is used to manage probability that the gc (garbage collection) routine is started. Defaults to 1. See session.gc_divisor for details.

session.gc_divisor integer

session.gc_divisor coupled with session.gc_probability defines the probability that the gc (garbage collection) process is started on every session initialization. The probability is calculated by using gc_probability/gc_divisor, e.g. 1/100 means there is a 1% chance that the GC process starts on each request. session.gc_divisor defaults to 100.

session.gc_maxlifetime integer

session.gc_maxlifetime specifies the number of seconds after which data will be seen as 'garbage' and cleaned up.

Замечание: If different scripts have different values of session.gc_maxlifetime but shares the same place for storing the session data then the script with the minimum value will be cleaning the data. In this case, use this directive together with session.save_path.

Замечание: If you are using the default file-based session handler, your filesystem must keep track of access times (atime). Windows FAT does not so you will have to come up with another way to handle garbage collecting your session if you are stuck with a FAT filesystem or any other filesystem where atime tracking is not available. Since PHP 4.2.3 it has used mtime (modified date) instead of atime. So, you won't have problems with filesystems where atime tracking is not available.

session.referer_check string

session.referer_check contains the substring you want to check each HTTP Referer for. If the Referer was sent by the client and the substring was not found, the embedded session id will be marked as invalid. Defaults to the empty string.

session.entropy_file string

session.entropy_file gives a path to an external resource (file) which will be used as an additional entropy source in the session id creation process. Examples are /dev/random or /dev/urandom which are available on many Unix systems.

session.entropy_length integer

session.entropy_length specifies the number of bytes which will be read from the file specified above. Defaults to 0 (disabled).

session.use_cookies boolean

session.use_cookies specifies whether the module will use cookies to store the session id on the client side. Defaults to 1 (enabled).

session.use_only_cookies boolean

session.use_only_cookies specifies whether the module will only use cookies to store the session id on the client side. Defaults to 0 (disabled, for backward compatibility). Enabling this setting prevents attacks involved passing session ids in URLs. This setting was added in PHP 4.3.0.

session.cookie_lifetime integer

session.cookie_lifetime specifies the lifetime of the cookie in seconds which is sent to the browser. The value 0 means "until the browser is closed." Defaults to 0. See also session_get_cookie_params() and session_set_cookie_params().

session.cookie_path string

session.cookie_path specifies path to set in session_cookie. Defaults to /. See also session_get_cookie_params() and session_set_cookie_params().

session.cookie_domain string

session.cookie_domain specifies the domain to set in session_cookie. Default is none at all meaning the host name of the server which generated the cookie according to cookies specification. See also session_get_cookie_params() and session_set_cookie_params().

session.cookie_secure boolean

session.cookie_secure specifies whether cookies should only be sent over secure connections. Defaults to off. This setting was added in PHP 4.0.4. See also session_get_cookie_params() and session_set_cookie_params().

session.cache_limiter string

session.cache_limiter specifies cache control method to use for session pages (none/nocache/private/private_no_expire/public). Defaults to nocache. See also session_cache_limiter().

session.cache_expire integer

session.cache_expire specifies time-to-live for cached session pages in minutes, this has no effect for nocache limiter. Defaults to 180. See also session_cache_expire().

session.use_trans_sid boolean

session.use_trans_sid whether transparent sid support is enabled or not. Defaults to 0 (disabled).

Замечание: For PHP 4.1.2 or less, it is enabled by compiling with --enable-trans-sid. From PHP 4.2.0, trans-sid feature is always compiled.

URL based session management has additional security risks compared to cookie based session management. Users may send a URL that contains an active session ID to their friends by email or users may save a URL that contains a session ID to their bookmarks and access your site with the same session ID always, for example.

session.bug_compat_42 boolean

PHP versions 4.2.3 and lower have an undocumented feature/bug that allows you to initialize a session variable in the global scope, albeit register_globals is disabled. PHP 4.3.0 and later will warn you, if this feature is used, and if session.bug_compat_warn is also enabled. This feature/bug can be disabled by disabling this directive.

session.bug_compat_warn boolean

PHP versions 4.2.3 and lower have an undocumented feature/bug that allows you to initialize a session variable in the global scope, albeit register_globals is disabled. PHP 4.3.0 and later will warn you, if this feature is used by enabling both session.bug_compat_42 and session.bug_compat_warn.

session.hash_function integer

session.hash_function allows you to specify the hash algorithm used to generate the session IDs. '0' means MD5 (128 bits) and '1' means SHA-1 (160 bits).

Замечание: This was introduced in PHP 5.

session.hash_bits_per_character integer

session.hash_bits_per_character allows you to define how many bits are stored in each character when converting the binary hash data to something readable. The possible values are '4' (0-9, a-f), '5' (0-9, a-v), and '6' (0-9, a-z, A-Z, "-", ",").

Замечание: This was introduced in PHP 5.

url_rewriter.tags string

url_rewriter.tags specifies which HTML tags are rewritten to include session id if transparent sid support is enabled. Defaults to a=href,area=href,frame=src,input=src,form=fakeentry,fieldset=

Замечание: If you want XHTML conformity, remove the form entry and use the <fieldset> tags around your form fields.

The track_vars and register_globals configuration settings influence how the session variables get stored and restored.

Замечание: As of PHP 4.0.3, track_vars is always turned on.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

SID (string)

Constant containing either the session name and session ID in the form of "name=ID" or empty string if session ID was set in an appropriate session cookie.

Примеры

Замечание: As of PHP 4.1.0, $_SESSION is available as a global variable just like $_POST, $_GET, $_REQUEST and so on. Unlike $HTTP_SESSION_VARS, $_SESSION is always global. Therefore, you do not need to use the global keyword for $_SESSION. Please note that this documentation has been changed to use $_SESSION everywhere. You can substitute $HTTP_SESSION_VARS for $_SESSION, if you prefer the former. Also note that you must start your session using session_start() before use of $_SESSION becomes available.

The keys in the $_SESSION associative array are subject to the same limitations as regular variable names in PHP, i.e. they cannot start with a number and must start with a letter or underscore. For more details see the section on variables in this manual.

If register_globals is disabled, only members of the global associative array $_SESSION can be registered as session variables. The restored session variables will only be available in the array $_SESSION.

Use of $_SESSION (or $HTTP_SESSION_VARS with PHP 4.0.6 or less) is recommended for improved security and code readability. With $_SESSION, there is no need to use the session_register(), session_unregister(), session_is_registered() functions. Session variables are accessible like any other variables.

Пример 1. Registering a variable with $_SESSION.

<?php
session_start();
// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less
if (!isset($_SESSION['count'])) {
    $_SESSION['count'] = 0;
} else {
    $_SESSION['count']++;
}
?>

Пример 2. Unregistering a variable with $_SESSION and register_globals disabled.

<?php
session_start();
// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less
unset($_SESSION['count']);
?>

Предостережение

Do NOT unset the whole $_SESSION with unset($_SESSION) as this will disable the registering of session variables through the $_SESSION superglobal.

Внимание

You can't use references in session variables as there is no feasible way to restore a reference to another variable.

If register_globals is enabled, then each global variable can be registered as session variable. Upon a restart of a session, these variables will be restored to corresponding global variables. Since PHP must know which global variables are registered as session variables, users need to register variables with session_register() function. You can avoid this by simply setting entries in $_SESSION.

Предостережение

Before PHP 4.3, if you are using $_SESSION and you have disabled register_globals, don't use session_register(), session_is_registered() or session_unregister(). Disabling register_globals is recommended for both security and performance reasons.

If register_globals is enabled, then the global variables and the $_SESSION entries will automatically reference the same values which were registered in the prior session instance. However, if the variable is registered by $_SESSION then the global variable is available since the next request.

There is a defect in PHP 4.2.3 and earlier. If you register a new session variable by using session_register(), the entry in the global scope and the $_SESSION entry will not reference the same value until the next session_start(). I.e. a modification to the newly registered global variable will not be reflected by the $_SESSION entry. This has been corrected in PHP 4.3.

Passing the Session ID

There are two methods to propagate a session id:

  • Cookies

  • URL parameter

The session module supports both methods. Cookies are optimal, but because they are not always available, we also provide an alternative way. The second method embeds the session id directly into URLs.

PHP is capable of transforming links transparently. Unless you are using PHP 4.2 or later, you need to enable it manually when building PHP. Under Unix, pass --enable-trans-sid to configure. If this build option and the run-time option session.use_trans_sid are enabled, relative URIs will be changed to contain the session id automatically.

Замечание: The arg_separator.output php.ini directive allows to customize the argument seperator. For full XHTML conformance, specify &amp; there.

Alternatively, you can use the constant SID which is defined if the session started. If the client did not send an appropriate session cookie, it has the form session_name=session_id. Otherwise, it expands to an empty string. Thus, you can embed it unconditionally into URLs.

The following example demonstrates how to register a variable, and how to link correctly to another page using SID.

Пример 3. Counting the number of hits of a single user

<?php
if (!session_is_registered('count')) {
    session_register('count');
    $count = 1;
} else {
    $count++;
}
?>

<p>
Hello visitor, you have seen this page <?php echo $count; ?> times.
</p>

<p>
To continue, <a href="nextpage.php?<?php echo strip_tags(SID); ?>">click
here</a>.
</p>

The strip_tags() is used when printing the SID in order to prevent XSS related attacks.

Printing the SID, like shown above, is not necessary if --enable-trans-sid was used to compile PHP.

Замечание: Non-relative URLs are assumed to point to external sites and hence don't append the SID, as it would be a security risk to leak the SID to a different server.

Custom Session Handlers

To implement database storage, or any other storage method, you will need to use session_set_save_handler() to create a set of user-level storage functions.

Содержание
session_cache_expire -- Return current cache expire
session_cache_limiter -- Get and/or set the current cache limiter
session_commit -- Alias of session_write_close()
session_decode -- Decodes session data from a string
session_destroy -- Destroys all data registered to a session
session_encode -- Encodes the current session data as a string
session_get_cookie_params -- Get the session cookie parameters
session_id -- Get and/or set the current session id
session_is_registered -- Find out whether a global variable is registered in a session
session_module_name -- Get and/or set the current session module
session_name -- Get and/or set the current session name
session_regenerate_id -- Update the current session id with a newly generated one
session_register -- Register one or more global variables with the current session
session_save_path -- Get and/or set the current session save path
session_set_cookie_params -- Set the session cookie parameters
session_set_save_handler -- Sets user-level session storage functions
session_start -- Initialize session data
session_unregister -- Unregister a global variable from the current session
session_unset -- Free all session variables
session_write_close -- Write session data and end session

Пред. | Начало | След.
session_pgsql_status | Уровень выше | session_cache_expire


session_cache_expire

(PHP 4 >= 4.2.0, PHP 5)

session_cache_expire -- Return current cache expire

Description

int session_cache_expire ( [int new_cache_expire] )

session_cache_expire() returns the current setting of session.cache_expire. The value returned should be read in minutes, defaults to 180. If new_cache_expire is given, the current cache expire is replaced with new_cache_expire.

The cache expire is reset to the default value of 180 stored in session.cache_limiter at request startup time. Thus, you need to call session_cache_expire() for every request (and before session_start() is called).

Пример 1. session_cache_expire() example

<?php

/* set the cache limiter to 'private' */

session_cache_limiter('private');
$cache_limiter = session_cache_limiter();

/* set the cache expire to 30 minutes */
session_cache_expire(30);
$cache_expire = session_cache_expire();

/* start the session */

session_start();

echo "The cache limiter is now set to $cache_limiter<br />";
echo "The cached session pages expire after $cache_expire minutes";
?>

Замечание: Setting new_cache_expire is of value only, if session.cache_limiter is set to a value different from nocache.

See also the configuration settings session.cache_expire, session.cache_limiter and session_cache_limiter().

Пред. | Начало | След.
Session Handling Functions | Уровень выше | session_cache_limiter


session_cache_limiter

(PHP 4 >= 4.0.3, PHP 5)

session_cache_limiter -- Get and/or set the current cache limiter

Description

string session_cache_limiter ( [string cache_limiter] )

session_cache_limiter() returns the name of the current cache limiter. If cache_limiter is specified, the name of the current cache limiter is changed to the new value.

The cache limiter defines which cache control HTTP headers are sent to the client. These headers determine the rules by which the page content may be cached by the client and intermediate proxies. Setting the cache limiter to nocache disallows any client/proxy caching. A value of public permits caching by proxies and the client, whereas private disallows caching by proxies and permits the client to cache the contents.

In private mode, the Expire header sent to the client may cause confusion for some browsers, including Mozilla. You can avoid this problem by using private_no_expire mode. The expire header is never sent to the client in this mode.

Замечание: private_no_expire was added in PHP 4.2.0.

The cache limiter is reset to the default value stored in session.cache_limiter at request startup time. Thus, you need to call session_cache_limiter() for every request (and before session_start() is called).

Пример 1. session_cache_limiter() example

<?php

/* set the cache limiter to 'private' */

session_cache_limiter('private');
$cache_limiter = session_cache_limiter();

echo "The cache limiter is now set to $cache_limiter<br />";
?>

Also see the session.cache_limiter configuration directive.

Пред. | Начало | След.
session_cache_expire | Уровень выше | session_commit


session_commit

(PHP 4 >= 4.3.11, PHP 5)

session_commit -- Alias of session_write_close()

Описание

This function is an alias of: session_write_close().

Пред. | Начало | След.
session_cache_limiter | Уровень выше | session_decode


session_decode

(PHP 4, PHP 5)

session_decode -- Decodes session data from a string

Description

bool session_decode ( string data )

session_decode() decodes the session data in data, setting variables stored in the session.

See also session_encode().

Пред. | Начало | След.
session_commit | Уровень выше | session_destroy


session_destroy

(PHP 4, PHP 5)

session_destroy -- Destroys all data registered to a session

Description

bool session_destroy ( void )

session_destroy() destroys all of the data associated with the current session. It does not unset any of the global variables associated with the session, or unset the session cookie.

In order to kill the session altogether, like to log the user out, the session id must also be unset. If a cookie is used to propagate the session id (default behavior), then the session cookie must be deleted. setcookie() may be used for that.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. Destroying a session with $_SESSION

<?php
// Initialize the session.
// If you are using session_name("something"), don't forget it now!
session_start();

// Unset all of the session variables.
$_SESSION = array();

// If it's desired to kill the session, also delete the session cookie.
// Note: This will destroy the session, and not just the session data!
if (isset($_COOKIE[session_name()])) {
    setcookie(session_name(), '', time()-42000, '/');
}

// Finally, destroy the session.
session_destroy();
?>

Замечание: Only use session_unset() for older deprecated code that does not use $_SESSION.

See also unset() and setcookie().

Пред. | Начало | След.
session_decode | Уровень выше | session_encode


session_encode

(PHP 4, PHP 5)

session_encode -- Encodes the current session data as a string

Description

string session_encode ( void )

session_encode() returns a string with the contents of the current session encoded within.

See also session_decode()

Пред. | Начало | След.
session_destroy | Уровень выше | session_get_cookie_params


session_get_cookie_params

(PHP 4, PHP 5)

session_get_cookie_params -- Get the session cookie parameters

Description

array session_get_cookie_params ( void )

The session_get_cookie_params() function returns an array with the current session cookie information, the array contains the following items:

  • "lifetime" - The lifetime of the cookie in seconds.

  • "path" - The path where information is stored.

  • "domain" - The domain of the cookie.

  • "secure" - The cookie should only be sent over secure connections. (This item was added in PHP 4.0.4.)

See also the configuration directives session.cookie_lifetime, session.cookie_path, session.cookie_domain, session.cookie_secure, and session_set_cookie_params().

Пред. | Начало | След.
session_encode | Уровень выше | session_id


session_id

(PHP 4, PHP 5)

session_id -- Get and/or set the current session id

Описание

string session_id ( [string id] )

session_id() is used to get or set the session id for the current session.

The constant SID can also be used to retrieve the current name and session id as a string suitable for adding to URLs. See also Session handling.

Список параметров

id

If id is specified, it will replace the current session id. session_id() needs to be called before session_start() for that purpose. Depending on the session handler, not all characters are allowed within the session id. For example, the file session handler only allows characters in the range a-z, A-Z and 0-9!

Замечание: When using session cookies, specifying an id for session_id() will always send a new cookie when session_start() is called, regardless if the current session id is identical to the one being set.

Возвращаемые значения

session_id() returns the session id for the current session or the empty string ("") if there is no current session (no current session id exists).

Смотрите также

session_regenerate_id()
session_start()
session_set_save_handler()
session.save_handler

Пред. | Начало | След.
session_get_cookie_params | Уровень выше | session_is_registered


session_is_registered

(PHP 4, PHP 5)

session_is_registered -- Find out whether a global variable is registered in a session

Description

bool session_is_registered ( string name )

session_is_registered() returns TRUE if there is a global variable with the name name registered in the current session.

Замечание: If $_SESSION (or $HTTP_SESSION_VARS for PHP 4.0.6 or less) is used, use isset() to check a variable is registered in $_SESSION.

Предостережение

If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered() and session_unregister().

Пред. | Начало | След.
session_id | Уровень выше | session_module_name


session_module_name

(PHP 4, PHP 5)

session_module_name -- Get and/or set the current session module

Description

string session_module_name ( [string module] )

session_module_name() returns the name of the current session module. If module is specified, that module will be used instead.

Пред. | Начало | След.
session_is_registered | Уровень выше | session_name


session_name

(PHP 4, PHP 5)

session_name -- Get and/or set the current session name

Description

string session_name ( [string name] )

session_name() returns the name of the current session. If name is specified, the name of the current session is changed to its value.

The session name references the session id in cookies and URLs. It should contain only alphanumeric characters; it should be short and descriptive (i.e. for users with enabled cookie warnings). The session name is reset to the default value stored in session.name at request startup time. Thus, you need to call session_name() for every request (and before session_start() or session_register() are called).

Внимание

Session name can't consist only from digits, at least one letter must be present. Otherwise new session id is generated every time.

Пример 1. session_name() examples

<?php

/* set the session name to WebsiteID */

$previous_name = session_name("WebsiteID");

echo "The previous session name was $previous_name<br />";
?>

See also the session.name configuration directive.

Пред. | Начало | След.
session_module_name | Уровень выше | session_regenerate_id


session_regenerate_id

(PHP 4 >= 4.3.2, PHP 5)

session_regenerate_id -- Update the current session id with a newly generated one

Описание

bool session_regenerate_id ( [bool delete_old_session] )

session_regenerate_id() will replace the current session id with a new one, and keep the current session information.

Список параметров

delete_old_session

Whether to delete the old associated session file or not. Defaults to FALSE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
4.3.3 | Since then, if session cookies are enabled, use of session_regenerate_id() will also submit a new session cookie with the new session id.
5.1.0 | Added the delete_old_session parameter.

Примеры

Пример 1. A session_regenerate_id() example

<?php
session_start();

$old_sessionid = session_id();

session_regenerate_id();

$new_sessionid = session_id();

echo "Old Session: $old_sessionid<br />";
echo "New Session: $new_sessionid<br />";

print_r($_SESSION);
?>

Смотрите также

session_id()
session_start()
session_name()

Пред. | Начало | След.
session_name | Уровень выше | session_register


session_register

(PHP 4, PHP 5)

session_register -- Register one or more global variables with the current session

Description

bool session_register ( mixed name [, mixed ...] )

session_register() accepts a variable number of arguments, any of which can be either a string holding the name of a variable or an array consisting of variable names or other arrays. For each name, session_register() registers the global variable with that name in the current session.

Предостережение

If you want your script to work regardless of register_globals, you need to instead use the $_SESSION array as $_SESSION entries are automatically registered. If your script uses session_register(), it will not work in environments where the PHP directive register_globals is disabled.

register_globals: важное замечание: Начиная с PHP 4.2.0, значением директивы PHP register_globals по умолчанию является off (выключено). Сообщество PHP рекомендует всем не полагаться на эту директиву, а использовать вместо этого иные средства, такие как superglobals.

Предостережение

This registers a global variable. If you want to register a session variable from within a function, you need to make sure to make it global using the global keyword or the $GLOBALS[] array, or use the special session arrays as noted below.

Предостережение

If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered(), and session_unregister().

This function returns TRUE when all of the variables are successfully registered with the session.

If session_start() was not called before this function is called, an implicit call to session_start() with no parameters will be made. $_SESSION does not mimic this behavior and requires session_start() before use.

You can also create a session variable by simply setting the appropriate member of the $_SESSION or $HTTP_SESSION_VARS (PHP < 4.1.0) array.

<?php
// Use of session_register() is deprecated
$barney = "A big purple dinosaur.";
session_register("barney");

// Use of $_SESSION is preferred, as of PHP 4.1.0
$_SESSION["zim"] = "An invader from another planet.";

// The old way was to use $HTTP_SESSION_VARS
$HTTP_SESSION_VARS["spongebob"] = "He's got square pants.";
?>

Замечание: It is currently impossible to register resource variables in a session. For example, you cannot create a connection to a database and store the connection id as a session variable and expect the connection to still be valid the next time the session is restored. PHP functions that return a resource are identified by having a return type of resource in their function definition. A list of functions that return resources are available in the resource types appendix.

If $_SESSION (or $HTTP_SESSION_VARS for PHP 4.0.6 or less) is used, assign values to $_SESSION. For example: $_SESSION['var'] = 'ABC';

See also session_is_registered(), session_unregister(), and $_SESSION.

Пред. | Начало | След.
session_regenerate_id | Уровень выше | session_save_path


session_save_path

(PHP 4, PHP 5)

session_save_path -- Get and/or set the current session save path

Description

string session_save_path ( [string path] )

session_save_path() returns the path of the current directory used to save session data. If path is specified, the path to which data is saved will be changed. session_save_path() needs to be called before session_start() for that purpose.

Замечание: On some operating systems, you may want to specify a path on a filesystem that handles lots of small files efficiently. For example, on Linux, reiserfs may provide better performance than ext2fs.

See also the session.save_path configuration directive.

Пред. | Начало | След.
session_register | Уровень выше | session_set_cookie_params


session_set_cookie_params

(PHP 4, PHP 5)

session_set_cookie_params -- Set the session cookie parameters

Description

void session_set_cookie_params ( int lifetime [, string path [, string domain [, bool secure]]] )

Set cookie parameters defined in the php.ini file. The effect of this function only lasts for the duration of the script. Thus, you need to call session_set_cookie_params() for every request and before session_start() is called.

Замечание: The secure parameter was added in PHP 4.0.4.

See also the configuration directives session.cookie_lifetime, session.cookie_path, session.cookie_domain, session.cookie_secure, and session_get_cookie_params().

Пред. | Начало | След.
session_save_path | Уровень выше | session_set_save_handler


session_set_save_handler

(PHP 4, PHP 5)

session_set_save_handler -- Sets user-level session storage functions

Description

bool session_set_save_handler ( string open, string close, string read, string write, string destroy, string gc )

session_set_save_handler() sets the user-level session storage functions which are used for storing and retrieving data associated with a session. This is most useful when a storage method other than those supplied by PHP sessions is preferred. i.e. Storing the session data in a local database. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: The "write" handler is not executed until after the output stream is closed. Thus, output from debugging statements in the "write" handler will never be seen in the browser. If debugging output is necessary, it is suggested that the debug output be written to a file instead.

The following example provides file based session storage similar to the PHP sessions default save handler files. This example could easily be extended to cover database storage using your favorite PHP supported database engine.

Read function must return string value always to make save handler work as expected. Return empty string if there is no data to read. Return values from other handlers are converted to boolean expression. TRUE for success, FALSE for failure.

Внимание

Write and Close handlers are called after destructing objects since PHP 5.0.5. Thus destructors can use sessions but session handler can't use objects. In prior versions, they were called in the opposite order. It is possible to call session_write_close() from the destructor to solve this chicken and egg problem.

Пример 1. session_set_save_handler() example

<?php
function open($save_path, $session_name)
{
  global $sess_save_path, $sess_session_name;

  $sess_save_path = $save_path;
  $sess_session_name = $session_name;
  return(true);
}

function close()
{
  return(true);
}

function read($id)
{
  global $sess_save_path, $sess_session_name;

  $sess_file = "$sess_save_path/sess_$id";
  if ($fp = @fopen($sess_file, "r")) {
    $sess_data = fread($fp, filesize($sess_file));
    return($sess_data);
  } else {
    return(""); // Must return "" here.
  }

}

function write($id, $sess_data)
{
  global $sess_save_path, $sess_session_name;

  $sess_file = "$sess_save_path/sess_$id";
  if ($fp = @fopen($sess_file, "w")) {
    return(fwrite($fp, $sess_data));
  } else {
    return(false);
  }

}

function destroy($id)
{
  global $sess_save_path, $sess_session_name;

  $sess_file = "$sess_save_path/sess_$id";
  return(@unlink($sess_file));
}

/*********************************************
 * WARNING - You will need to implement some *
 * sort of garbage collection routine here.  *
 *********************************************/
function gc($maxlifetime)
{
  return true;
}

session_set_save_handler("open", "close", "read", "write", "destroy", "gc");

session_start();

// proceed to use sessions normally

?>

See also the session.save_handler configuration directive.

Пред. | Начало | След.
session_set_cookie_params | Уровень выше | session_start


session_start

(PHP 4, PHP 5)

session_start -- Initialize session data

Description

bool session_start ( void )

session_start() creates a session or resumes the current one based on the current session id that's being passed via a request, such as GET, POST, or a cookie.

This function always returns TRUE.

Замечание: If you are using cookie-based sessions, you must call session_start() before anything is outputted to the browser.

Пример 1. A session example: page1.php

<?php
// page1.php

session_start();

echo 'Welcome to page #1';

$_SESSION['favcolor'] = 'green';
$_SESSION['animal']   = 'cat';
$_SESSION['time']     = time();

// Works if session cookie was accepted
echo '<br /><a href="page2.php">page 2</a>';

// Or maybe pass along the session id, if needed
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>

After viewing page1.php, the second page page2.php will magically contain the session data. Read the session reference for information on propagating session ids as it, for example, explains what the constant SID is all about.

Пример 2. A session example: page2.php

<?php
// page2.php

session_start();

echo 'Welcome to page #2<br />';

echo $_SESSION['favcolor']; // green
echo $_SESSION['animal'];   // cat
echo date('Y m d H:i:s', $_SESSION['time']);

// You may want to use SID here, like we did in page1.php
echo '<br /><a href="page1.php">page 1</a>';
?>

If you want to use a named session, you must call session_name() before calling session_start().

session_start() will register internal output handler for URL rewriting when trans-sid is enabled. If a user uses ob_gzhandler or like with ob_start(), the order of output handler is important for proper output. For example, user must register ob_gzhandler before session start.

Замечание: Use of zlib.output_compression is recommended rather than ob_gzhandler()

Замечание: As of PHP 4.3.3, calling session_start() while the session has already been started will result in an error of level E_NOTICE. Also, the second session start will simply be ignored.

See also $_SESSION, session.auto_start, and session_id().

Пред. | Начало | След.
session_set_save_handler | Уровень выше | session_unregister


session_unregister

(PHP 4, PHP 5)

session_unregister -- Unregister a global variable from the current session

Description

bool session_unregister ( string name )

session_unregister() unregisters the global variable named name from the current session.

This function returns TRUE when the variable is successfully unregistered from the session.

Замечание: If $_SESSION (or $HTTP_SESSION_VARS for PHP 4.0.6 or less) is used, use unset() to unregister a session variable. Do not unset() $_SESSION itself as this will disable the special function of the $_SESSION superglobal.

Предостережение

This function does not unset the corresponding global variable for name, it only prevents the variable from being saved as part of the session. You must call unset() to remove the corresponding global variable.

Предостережение

If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered() and session_unregister().

Пред. | Начало | След.
session_start | Уровень выше | session_unset


session_unset

(PHP 4, PHP 5)

session_unset -- Free all session variables

Description

void session_unset ( void )

The session_unset() function frees all session variables currently registered.

Замечание: If $_SESSION (or $HTTP_SESSION_VARS for PHP 4.0.6 or less) is used, use unset() to unregister a session variable, i.e. unset ($_SESSION['varname']);.

Предостережение

Do NOT unset the whole $_SESSION with unset($_SESSION) as this will disable the registering of session variables through the $_SESSION superglobal.

Пред. | Начало | След.
session_unregister | Уровень выше | session_write_close


session_write_close

(PHP 4 >= 4.0.4, PHP 5)

session_write_close -- Write session data and end session

Description

void session_write_close ( void )

End the current session and store session data.

Session data is usually stored after your script terminated without the need to call session_write_close(), but as session data is locked to prevent concurrent writes only one script may operate on a session at any time. When using framesets together with sessions you will experience the frames loading one by one due to this locking. You can reduce the time needed to load all the frames by ending the session as soon as all changes to session variables are done.

Пред. | Начало | След.
session_unset | Уровень выше | Shared Memory Functions


Shared Memory Functions

Руководство по PHP
Пред. След.

CXXXVI. Shared Memory Functions

Введение

Shmop is an easy to use set of functions that allows PHP to read, write, create and delete Unix shared memory segments.

Замечание: Versions of Windows previous to Windows 2000 do not support shared memory. Under Windows, Shmop will only work when PHP is running as a web server module, such as Apache or IIS (CLI and CGI will not work).

Замечание: In PHP 4.0.3, these functions were prefixed by shm rather than shmop.

Требования

Эти функции всегда доступны.

Установка

To use shmop you will need to compile PHP with the --enable-shmop parameter in your configure line.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Предопределенные константы

Данное расширение не определяет никакие константы.

Примеры

Пример 1. Shared Memory Operations Overview

<?php

// Create 100 byte shared memory block with system id if 0xff3
$shm_id = shmop_open(0xff3, "c", 0644, 100);
if (!$shm_id) {
    echo "Couldn't create shared memory segment\n";
}

// Get shared memory block's size
$shm_size = shmop_size($shm_id);
echo "SHM Block Size: " . $shm_size . " has been created.\n";

// Lets write a test string into shared memory
$shm_bytes_written = shmop_write($shm_id, "my shared memory block", 0);
if ($shm_bytes_written != strlen("my shared memory block")) {
    echo "Couldn't write the entire length of data\n";
}

// Now lets read the string back
$my_string = shmop_read($shm_id, 0, $shm_size);
if (!$my_string) {
    echo "Couldn't read from shared memory block\n";
}
echo "The data inside shared memory was: " . $my_string . "\n";

//Now lets delete the block and close the shared memory segment
if (!shmop_delete($shm_id)) {
    echo "Couldn't mark shared memory block for deletion.";
}
shmop_close($shm_id);

?>

Содержание
shmop_close -- Close shared memory block
shmop_delete -- Delete shared memory block
shmop_open -- Create or open shared memory block
shmop_read -- Read data from shared memory block
shmop_size -- Get size of shared memory block
shmop_write -- Write data into shared memory block

Пред. | Начало | След.
session_write_close | Уровень выше | shmop_close


shmop_close

(PHP 4 >= 4.0.4, PHP 5)

shmop_close -- Close shared memory block

Description

void shmop_close ( int shmid )

shmop_close() is used to close a shared memory block.

shmop_close() takes the shmid, which is the shared memory block identifier created by shmop_open().

Пример 1. Closing shared memory block

<?php
shmop_close($shm_id);
?>

This example will close shared memory block identified by $shm_id.

Пред. | Начало | След.
Shared Memory Functions | Уровень выше | shmop_delete


shmop_delete

(PHP 4 >= 4.0.4, PHP 5)

shmop_delete -- Delete shared memory block

Description

bool shmop_delete ( int shmid )

shmop_delete() is used to delete a shared memory block.

shmop_delete() takes the shmid, which is the shared memory block identifier created by shmop_open(). On success 1 is returned, on failure 0 is returned.

Пример 1. Deleting shared memory block

<?php
shmop_delete($shm_id);
?>

This example will delete shared memory block identified by $shm_id.

Пред. | Начало | След.
shmop_close | Уровень выше | shmop_open


shmop_open

(PHP 4 >= 4.0.4, PHP 5)

shmop_open -- Create or open shared memory block

Description

int shmop_open ( int key, string flags, int mode, int size )

shmop_open() can create or open a shared memory block.

shmop_open() takes 4 parameters: key, which is the system's id for the shared memory block, this parameter can be passed as a decimal or hex. The second parameter are the flags that you can use:

  • "a" for access (sets SHM_RDONLY for shmat) use this flag when you need to open an existing shared memory segment for read only

  • "c" for create (sets IPC_CREATE) use this flag when you need to create a new shared memory segment or if a segment with the same key exists, try to open it for read and write

  • "w" for read & write access use this flag when you need to read and write to a shared memory segment, use this flag in most cases.

  • "n" create a new memory segment (sets IPC_CREATE|IPC_EXCL) use this flag when you want to create a new shared memory segment but if one already exists with the same flag, fail. This is useful for security purposes, using this you can prevent race condition exploits.

The third parameter is the mode, which are the permissions that you wish to assign to your memory segment, those are the same as permission for a file. Permissions need to be passed in octal form ex. 0644. The last parameter is size of the shared memory block you wish to create in bytes.

Замечание: Note: the 3rd and 4th should be entered as 0 if you are opening an existing memory segment. On success shmop_open() will return an id that you can use to access the shared memory segment you've created.

Пример 1. Create a new shared memory block

<?php
$shm_key = ftok(__FILE__, 't');
$shm_id = shmop_open($shm_key, "c", 0644, 100);
?>

This example opened a shared memory block with a system id returned by ftok().

Пред. | Начало | След.
shmop_delete | Уровень выше | shmop_read


shmop_read

(PHP 4 >= 4.0.4, PHP 5)

shmop_read -- Read data from shared memory block

Description

string shmop_read ( int shmid, int start, int count )

shmop_read() will read a string from shared memory block.

shmop_read() takes 3 parameters: shmid, which is the shared memory block identifier created by shmop_open(), offset from which to start reading and count on the number of bytes to read.

Пример 1. Reading shared memory block

<?php
$shm_data = shmop_read($shm_id, 0, 50);
?>

This example will read 50 bytes from shared memory block and place the data inside $shm_data.

Пред. | Начало | След.
shmop_open | Уровень выше | shmop_size


shmop_size

(PHP 4 >= 4.0.4, PHP 5)

shmop_size -- Get size of shared memory block

Description

int shmop_size ( int shmid )

shmop_size() is used to get the size, in bytes of the shared memory block.

shmop_size() takes the shmid, which is the shared memory block identifier created by shmop_open(), the function will return and int, which represents the number of bytes the shared memory block occupies.

Пример 1. Getting the size of the shared memory block

<?php
$shm_size = shmop_size($shm_id);
?>

This example will put the size of shared memory block identified by $shm_id into $shm_size.

Пред. | Начало | След.
shmop_read | Уровень выше | shmop_write


shmop_write

(PHP 4 >= 4.0.4, PHP 5)

shmop_write -- Write data into shared memory block

Description

int shmop_write ( int shmid, string data, int offset )

shmop_write() will write a string into shared memory block.

shmop_write() takes 3 parameters: shmid, which is the shared memory block identifier created by shmop_open(), data, a string that you want to write into shared memory block and offset, which specifies where to start writing data inside the shared memory segment.

Пример 1. Writing to shared memory block

<?php
$shm_bytes_written = shmop_write($shm_id, $my_string, 0);
?>

This example will write data inside $my_string into shared memory block, $shm_bytes_written will contain the number of bytes written.

Пред. | Начало | След.
shmop_size | Уровень выше | SimpleXML functions


SimpleXML functions

Руководство по PHP
Пред. След.

CXXXVII. SimpleXML functions

Введение

The SimpleXML extension provides a very simple and easily usable toolset to convert XML to an object that can be processed with normal property selectors and array iterators.

Требования

The SimpleXML extension requires PHP 5.

Установка

The SimpleXML extension is enabled by default. To disable it, use the --disable-simplexml configure option.

Примеры

Many examples in this reference require an XML string. Instead of repeating this string in every example, we put it into a file which we include in each example. This included file is shown in the following example section. Alternatively, you could create an XML document and read it with simplexml_load_file().

Пример 1. Include file example.php with XML string

<?php
$xmlstr = <<<XML
<?xml version='1.0' standalone='yes'?>
<movies>
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#211;r</actor>
   </character>
  </characters>
  <plot>
   So, this language. It's like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
</movies>
XML;
?>

The simplicity of SimpleXML appears most clearly when one extracts a string or number from a basic XML document.

Пример 2. Getting <plot>

<?php
include 'example.php';

$xml = simplexml_load_string($xmlstr);

echo $xml->movie[0]->plot; // "So this language. It's like..."
?>

Пример 3. Accessing non-unique elements in SimpleXML

When multiple instances of an element exist as children of a single parent element, normal iteration techniques apply.

<?php
include 'example.php';

$xml = simplexml_load_string($xmlstr);

/* For each <movie> node, we echo a separate <plot>. */
foreach ($xml->movie as $movie) {
   echo $movie->plot, '<br />';
}

?>

Пример 4. Using attributes

So far, we have only covered the work of reading element names and their values. SimpleXML can also access element attributes. Access attributes of an element just as you would elements of an array.

<?php
include 'example.php';

$xml = simplexml_load_string($xmlstr);

/* Access the <rating> nodes of the first movie.
 * Output the rating scale, too. */
foreach ($xml->movie[0]->rating as $rating) {
    switch((string) $rating['type']) { // Get attributes as element indices
    case 'thumbs':
        echo $rating, ' thumbs up';
        break;
    case 'stars':
        echo $rating, ' stars';
        break;
    }
}
?>

Пример 5. Comparing Elements and Attributes with Text

To compare an element or attribute with a string or pass it into a function that requires a string, you must cast it to a string using (string). Otherwise, PHP treats the element as an object.

<?php
include 'example.php';

$xml = simplexml_load_string($xmlstr);

if ((string) $xml->movie->title == 'PHP: Behind the Parser') {
    print 'My favorite movie.';
}

htmlentities((string) $xml->movie->title);
?>

Пример 6. Using Xpath

SimpleXML includes builtin Xpath support. To find all <character> elements:

<?php
include 'example.php';
$xml = simplexml_load_string($xmlstr);

foreach ($xml->xpath('//character') as $character) {
    echo $character->name, 'played by ', $character->actor, '<br />';
}
?>

'//' serves as a wildcard. To specify absolute paths, omit one of the slashes.

Пример 7. Setting values

Data in SimpleXML doesn't have to be constant. The object allows for manipulation of all of its elements.

<?php
include 'example.php';
$xml = simplexml_load_string($xmlstr);

$xml->movie[0]->characters->character[0]->name = 'Miss Coder';

echo $xml->asXML();
?>

The above code will output a new XML document, just like the original, except that the new XML will change Ms. Coder to Miss Coder.

Пример 8. DOM Interoperability

PHP has a mechanism to convert XML nodes between SimpleXML and DOM formats. This example shows how one might change a DOM element to SimpleXML.

<?php
$dom = new domDocument;
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!$dom) {
     echo 'Error while parsing the document';
     exit;
}

$s = simplexml_import_dom($dom);

echo $s->book[0]->title;
?>

Содержание
SimpleXMLElement->asXML -- Return a well-formed XML string based on SimpleXML element
SimpleXMLElement->attributes -- Identifies an element's attributes
SimpleXMLElement->children -- Finds children of given node
SimpleXMLElement->xpath -- Runs Xpath query on XML data
simplexml_import_dom -- Get a SimpleXMLElement object from a DOM node.
simplexml_load_file -- Interprets an XML file into an object
simplexml_load_string -- Interprets a string of XML into an object

Пред. | Начало | След.
shmop_write | Уровень выше | SimpleXMLElement->asXML


SimpleXMLElement->asXML

(no version information, might be only in CVS)

SimpleXMLElement->asXML -- Return a well-formed XML string based on SimpleXML element

Описание

mixed SimpleXMLElement->asXML ( [string filename] )

The asXML method formats the parent object's data in XML version 1.0.

Список параметров

filename

If specified, the function writes the data to the file rather than returning it.

Возвращаемые значения

If the filename isn't specified, this function returns a string on success and FALSE on error. If the parameter is specified, it returns TRUE if the file was written successfully and FALSE otherwise.

Примеры

Пример 1. Get XML

<?php
$string = <<<XML
<a>
 <b>
  <c>text</c>
  <c>stuff</c>
 </b>
 <d>
  <c>code</c>
 </d>
</a>
XML;

$xml = simplexml_load_string($string);

echo $xml->asXML(); // <?xml ... <a><b><c>text</c><c>stuff</c> ...

?>

asXML also works on Xpath results:

Пример 2. Using asXML() on Xpath results

<?php
// Continued from example XML above.

/* Search for <a><b><c> */
$result = $xml->xpath('/a/b/c');

while(list( , $node) = each($result)) {
    echo $node->asXML(); // <c>text</c> and <c>stuff</c>
}
?>

Пред. | Начало | След.
SimpleXML functions | Уровень выше | SimpleXMLElement->attributes


SimpleXMLElement->attributes

(no version information, might be only in CVS)

SimpleXMLElement->attributes -- Identifies an element's attributes

Description

SimpleXMLElement simplexml_element->attributes ( [string data] )

This function provides the attributes and values defined within an xml tag.

Замечание: SimpleXML содержит правило добавления итеративных свойств к большинству методов. Они не могут быть просмотрены с испольванием var_dump() или каких-либо других средств анализа объектов.

Пример 1. Interpret an XML string

<?php
$string = <<<XML
<a>
 <foo name="one" game="lonely">1</foo>
</a>
XML;

$xml = simplexml_load_string($string);
foreach($xml->foo[0]->attributes() as $a => $b) {
    echo $a,'="',$b,"\"\n";
}
?>

This script will display:

name="one"
game="lonely"

Пред. | Начало | След.
SimpleXMLElement->asXML | Уровень выше | SimpleXMLElement->children


SimpleXMLElement->children

(no version information, might be only in CVS)

SimpleXMLElement->children -- Finds children of given node

Description

SimpleXMLElement simplexml_element->children ( [string nsprefix] )

This method finds the children of the element of which it is a member. The result follows normal iteration rules.

Замечание: SimpleXML содержит правило добавления итеративных свойств к большинству методов. Они не могут быть просмотрены с испольванием var_dump() или каких-либо других средств анализа объектов.

Пример 1. Traversing a children() pseudo-array

<?php
$xml = simplexml_load_string(
'<person>
 <child role="son">
  <child role="daughter"/>
 </child>
 <child role="daughter">
  <child role="son">
   <child role="son"/>
  </child>
 </child>
</person>');

foreach ($xml->children() as $second_gen) {
    echo ' The person begot a ' . $second_gen['role'];

    foreach ($second_gen->children() as $third_gen) {
        echo ' who begot a ' . $third_gen['role'] . ';';

        foreach ($third_gen->children() as $fourth_gen) {
            echo ' and that ' . $third_gen['role'] .
                ' begot a ' . $fourth_gen['role'];
        }
    }
}
?>

This script will output:

The person begot a son who begot a daughter; The person
begot a daughter who begot a son; and that son begot a son

Пред. | Начало | След.
SimpleXMLElement->attributes | Уровень выше | SimpleXMLElement->xpath


SimpleXMLElement->xpath

(no version information, might be only in CVS)

SimpleXMLElement->xpath -- Runs Xpath query on XML data

Description

array SimpleXMLElement->xpath ( string path )

The xpath method searches the SimpleXML node for children matching the Xpath path. It always returns an array of SimpleXMLElement objects.

Пример 1. Xpath

<?php
$string = <<<XML
<a>
 <b>
  <c>text</c>
  <c>stuff</c>
 </b>
 <d>
  <c>code</c>
 </d>
</a>
XML;

$xml = simplexml_load_string($string);

/* Search for <a><b><c> */
$result = $xml->xpath('/a/b/c');

while(list( , $node) = each($result)) {
    echo '/a/b/c: ',$node,"\n";
}

/* Relative paths also work... */
$result = $xml->xpath('b/c');

while(list( , $node) = each($result)) {
    echo 'b/c: ',$node,"\n";
}
?>

This script will display:

/a/b/c: text
/a/b/c: stuff
b/c: text
b/c: stuff

Notice that the two results are equal.

Пред. | Начало | След.
SimpleXMLElement->children | Уровень выше | simplexml_import_dom


simplexml_import_dom

(PHP 5)

simplexml_import_dom -- Get a SimpleXMLElement object from a DOM node.

Description

SimpleXMLElement simplexml_import_dom ( DOMNode node [, string class_name] )

This function takes a node of a DOM document and makes it into a SimpleXML node. This new object can then be used as a native SimpleXML element. If any errors occur, it returns FALSE.

Пример 1. Import DOM

<?php
$dom = new domDocument;
$dom->loadXML('<books><book><title>blah</title></book></books>');
if (!$dom) {
    echo 'Error while parsing the document';
    exit;
}

$s = simplexml_import_dom($dom);

echo $s->book[0]->title; // blah
?>

See also dom_import_simplexml().

Пред. | Начало | След.
SimpleXMLElement->xpath | Уровень выше | simplexml_load_file


simplexml_load_file

(PHP 5)

simplexml_load_file -- Interprets an XML file into an object

Description

object simplexml_load_file ( string filename [, string class_name [, int options]] )

This function will convert the well-formed XML document in the file specified by filename to an object of class SimpleXMLElement. If any errors occur during file access or interpretation, the function returns FALSE.

You may use the optional class_name parameter so that simplexml_load_file() will return an object of the specified class. That class should extend the SimpleXMLElement class.

Since PHP 5.1.0 and Libxml 2.6.0, you may also use the options parameter to specify additional Libxml parameters.

Замечание: Libxml 2 unescapes the URI, so if you want to pass e.g. b&c as the URI parameter a, you have to call simplexml_load_file(rawurlencode('http://example.com/?a=' . urlencode('b&c'))). Since PHP 5.1.0 you don't need to do this because PHP will do it for you.

Пример 1. Interpret an XML document

<?php
// The file test.xml contains an XML document with a root element
// and at least an element /[root]/title.

if (file_exists('test.xml')) {
    $xml = simplexml_load_file('test.xml');

    var_dump($xml);
} else {
    exit('Failed to open test.xml.');
}
?>

This script will display, on success:

SimpleXMLElement Object
(
  [title] => Example Title
  ...
)

At this point, you can go about using $xml->title and any other elements.

See also: simplexml_load_string()

Пред. | Начало | След.
simplexml_import_dom | Уровень выше | simplexml_load_string


simplexml_load_string

(PHP 5)

simplexml_load_string -- Interprets a string of XML into an object

Description

object simplexml_load_string ( string data [, string class_name [, int options]] )

This function will take the well-formed xml string data and return an object of class SimpleXMLElement with properties containing the data held within the xml document. If any errors occur, it returns FALSE.

You may use the optional class_name parameter so that simplexml_load_string() will return an object of the specified class. That class should extend the SimpleXMLElement class.

Since PHP 5.1.0 and Libxml 2.6.0, you may also use the options parameter to specify additional Libxml parameters.

Пример 1. Interpret an XML string

<?php
$string = <<<XML
<?xml version='1.0'?>
<document>
 <title>Forty What?</title>
 <from>Joe</from>
 <to>Jane</to>
 <body>
  I know that's the answer -- but what's the question?
 </body>
</document>
XML;

$xml = simplexml_load_string($string);

var_dump($xml);
?>

This script will display:

SimpleXMLElement Object
(
  [title] => Forty What?
  [from] => Joe
  [to] => Jane
  [body] =>
   I know that's the answer -- but what's the question?
)

At this point, you can go about using $xml->body and such.

See also: simplexml_load_file().

Пред. | Начало | След.
simplexml_load_file | Уровень выше | SNMP Functions


SNMP Functions

Руководство по PHP
Пред. След.

CXXXVIII. SNMP Functions

Введение

Требования

In order to use the SNMP functions on Unix you need to install the NET-SNMP package. On Windows these functions are only available on NT and not on Win95/98.

Установка

Important: In order to use the UCD SNMP package, you need to define NO_ZEROLENGTH_COMMUNITY to 1 before compiling it. After configuring UCD SNMP, edit config.h or acconfig.h and search for NO_ZEROLENGTH_COMMUNITY. Uncomment the #define line. It should look like this afterwards:
#define NO_ZEROLENGTH_COMMUNITY 1
Now compile PHP --with-snmp[=DIR].

If you see strange segmentation faults in combination with SNMP commands, you did not follow the above instructions. If you do not want to recompile UCD SNMP, you can compile PHP with the --enable-ucd-snmp-hack switch which will work around the misfeature.

The Windows distribution contains support files for SNMP in the mibs directory. This directory should be moved to DRIVE:\usr\mibs, where DRIVE must be replaced with the driveletter where PHP is installed on, e.g.c:\usr\mibs.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

SNMP_VALUE_LIBRARY (integer)

SNMP_VALUE_PLAIN (integer)

SNMP_VALUE_OBJECT (integer)

SNMP_BIT_STR (integer)

SNMP_OCTET_STR (integer)

SNMP_OPAQUE (integer)

SNMP_NULL (integer)

SNMP_OBJECT_ID (integer)

SNMP_IPADDRESS (integer)

SNMP_COUNTER (integer)

SNMP_UNSIGNED (integer)

SNMP_TIMETICKS (integer)

SNMP_UINTEGER (integer)

SNMP_INTEGER (integer)

SNMP_COUNTER64 (integer)

Содержание
snmp_get_quick_print -- Fetches the current value of the UCD library's quick_print setting
snmp_get_valueretrieval -- Return the method how the SNMP values will be returned
snmp_read_mib -- Reads and parses a MIB file into the active MIB tree
snmp_set_enum_print -- Return all values that are enums with their enum value instead of the raw integer
snmp_set_oid_numeric_print -- Return all objects including their respective object id within the specified one
snmp_set_quick_print -- Set the value of quick_print within the UCD SNMP library
snmp_set_valueretrieval -- Specify the method how the SNMP values will be returned
snmpget -- Fetch an SNMP object
snmpgetnext -- Fetch a SNMP object
snmprealwalk -- Return all objects including their respective object ID within the specified one
snmpset -- Set an SNMP object
snmpwalk -- Fetch all the SNMP objects from an agent
snmpwalkoid -- Query for a tree of information about a network entity

Пред. | Начало | След.
simplexml_load_string | Уровень выше | snmp_get_quick_print


snmp_get_quick_print

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

snmp_get_quick_print -- Fetches the current value of the UCD library's quick_print setting

Description

bool snmp_get_quick_print ( void )

Returns the current value stored in the UCD Library for quick_print. quick_print is off by default.

Пример 1. snmp_get_quick_print() example

<?php
  $quickprint = snmp_get_quick_print();
?>

Above function call would return FALSE if quick_print is off, and TRUE if quick_print is on.

snmp_get_quick_print() is only available when using the UCD SNMP library. This function is not available when using the Windows SNMP library.

See also snmp_set_quick_print() for a full description of what quick_print does.

Пред. | Начало | След.
SNMP Functions | Уровень выше | snmp_get_valueretrieval


snmp_get_valueretrieval

(PHP 4 >= 4.3.3, PHP 5)

snmp_get_valueretrieval -- Return the method how the SNMP values will be returned

Description

int snmp_get_valueretrieval ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
snmp_get_quick_print | Уровень выше | snmp_read_mib


snmp_read_mib

(PHP 5)

snmp_read_mib -- Reads and parses a MIB file into the active MIB tree

Description

bool snmp_read_mib ( string filename )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
snmp_get_valueretrieval | Уровень выше | snmp_set_enum_print


snmp_set_enum_print

(PHP 4 >= 4.3.0, PHP 5)

snmp_set_enum_print -- Return all values that are enums with their enum value instead of the raw integer

Description

void snmp_set_enum_print ( int enum_print )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
snmp_read_mib | Уровень выше | snmp_set_oid_numeric_print


snmp_set_oid_numeric_print

(PHP 4 >= 4.3.0, PHP 5)

snmp_set_oid_numeric_print -- Return all objects including their respective object id within the specified one

Description

void snmp_set_oid_numeric_print ( int oid_numeric_print )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
snmp_set_enum_print | Уровень выше | snmp_set_quick_print


snmp_set_quick_print

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

snmp_set_quick_print -- Set the value of quick_print within the UCD SNMP library

Description

void snmp_set_quick_print ( bool quick_print )

Sets the value of quick_print within the UCD SNMP library. When this is set (1), the SNMP library will return 'quick printed' values. This means that just the value will be printed. When quick_print is not enabled (default) the UCD SNMP library prints extra information including the type of the value (i.e. IpAddress or OID). Additionally, if quick_print is not enabled, the library prints additional hex values for all strings of three characters or less.

Setting quick_print is often used when using the information returned rather then displaying it.

<?php
snmp_set_quick_print(0);
$a = snmpget("127.0.0.1", "public", ".1.3.6.1.2.1.2.2.1.9.1");
echo "$a< br />\n";
snmp_set_quick_print(1);
$a = snmpget("127.0.0.1", "public", ".1.3.6.1.2.1.2.2.1.9.1");
echo "$a<br />\n";
?>

The first value printed might be: 'Timeticks: (0) 0:00:00.00', whereas with quick_print enabled, just '0:00:00.00' would be printed.

By default the UCD SNMP library returns verbose values, quick_print is used to return only the value.

Currently strings are still returned with extra quotes, this will be corrected in a later release.

snmp_set_quick_print() is only available when using the UCD SNMP library. This function is not available when using the Windows SNMP library.

Пред. | Начало | След.
snmp_set_oid_numeric_print | Уровень выше | snmp_set_valueretrieval


snmp_set_valueretrieval

(PHP 4 >= 4.3.3, PHP 5)

snmp_set_valueretrieval -- Specify the method how the SNMP values will be returned

Description

void snmp_set_valueretrieval ( int method )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
snmp_set_quick_print | Уровень выше | snmpget


snmpget

(PHP 3, PHP 4, PHP 5)

snmpget -- Fetch an SNMP object

Description

string snmpget ( string hostname, string community, string object_id [, int timeout [, int retries]] )

Returns SNMP object value on success and FALSE on error.

The snmpget() function is used to read the value of an SNMP object specified by the object_id. SNMP agent is specified by the hostname and the read community is specified by the community parameter.

<?php
$syscontact = snmpget("127.0.0.1", "public", "system.SysContact.0");
?>

Пред. | Начало | След.
snmp_set_valueretrieval | Уровень выше | snmpgetnext


snmpgetnext

(PHP 5)

snmpgetnext -- Fetch a SNMP object

Description

string snmpgetnext ( string host, string community, string object_id [, int timeout [, int retries]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
snmpget | Уровень выше | snmprealwalk


snmprealwalk

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

snmprealwalk -- Return all objects including their respective object ID within the specified one

Description

array snmprealwalk ( string host, string community, string object_id [, int timeout [, int retries]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
snmpgetnext | Уровень выше | snmpset


snmpset

(PHP 3 >= 3.0.12, PHP 4, PHP 5)

snmpset -- Set an SNMP object

Description

bool snmpset ( string hostname, string community, string object_id, string type, mixed value [, int timeout [, int retries]] )

Sets the specified SNMP object value, returning TRUE on success and FALSE on error.

The snmpset() function is used to set the value of an SNMP object specified by the object_id. SNMP agent is specified by the hostname and the read community is specified by the community parameter.

Пред. | Начало | След.
snmprealwalk | Уровень выше | snmpwalk


snmpwalk

(PHP 3, PHP 4, PHP 5)

snmpwalk -- Fetch all the SNMP objects from an agent

Description

array snmpwalk ( string hostname, string community, string object_id [, int timeout [, int retries]] )

Returns an array of SNMP object values starting from the object_id as root and FALSE on error.

snmpwalk() function is used to read all the values from an SNMP agent specified by the hostname. Community specifies the read community for that agent. A NULL object_id is taken as the root of the SNMP objects tree and all objects under that tree are returned as an array. If object_id is specified, all the SNMP objects below that object_id are returned.

<?php
$a = snmpwalk("127.0.0.1", "public", "");
?>

Above function call would return all the SNMP objects from the SNMP agent running on localhost. One can step through the values with a loop

<?php
foreach ($a as $val) {
    echo "$val\n";
}
?>

Пред. | Начало | След.
snmpset | Уровень выше | snmpwalkoid


snmpwalkoid

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

snmpwalkoid -- Query for a tree of information about a network entity

Description

array snmpwalkoid ( string hostname, string community, string object_id [, int timeout [, int retries]] )

Returns an associative array with object ids and their respective object value starting from the object_id as root and FALSE on error.

snmpwalkoid() function is used to read all object ids and their respective values from an SNMP agent specified by the hostname. Community specifies the read community for that agent. A NULL object_id is taken as the root of the SNMP objects tree and all objects under that tree are returned as an array. If object_id is specified, all the SNMP objects below that object_id are returned.

The existence of snmpwalkoid() and snmpwalk() has historical reasons. Both functions are provided for backward compatibility.

<?php
$a = snmpwalkoid("127.0.0.1", "public", "");
?>

Above function call would return all the SNMP objects from the SNMP agent running on localhost. One can step through the values with a loop

<?php
for (reset($a); $i = key($a); next($a)) {
    echo "$i: $a[$i]<br />\n";
}
?>

Пред. | Начало | След.
snmpwalk | Уровень выше | SOAP Functions


SOAP Functions

Руководство по PHP
Пред. След.

CXXXIX. SOAP Functions

Введение

The SOAP extension can be used to write SOAP Servers and Clients. It supports subsets of SOAP 1.1, SOAP 1.2 and WSDL 1.1 specifications.

Требования

This extension makes use of the GNOME xml library. Download and install this library. You will need at least libxml-2.5.4.

Установка

This extension is only available if PHP was configured with --enable-soap.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. SOAP Configuration Options

Name | Default | Changeable | Changelog
soap.wsdl_cache_enabled | "1" | PHP_INI_ALL | Available since PHP 5.0.0.
soap.wsdl_cache_dir | "/tmp" | PHP_INI_ALL | Available since PHP 5.0.0.
soap.wsdl_cache_ttl | "86400" | PHP_INI_ALL | Available since PHP 5.0.0.
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

soap.wsdl_cache_enabled boolean

Enables or disables the WSDL caching feature.

soap.wsdl_cache_dir string

Sets the directory name where the SOAP extension will put cache files.

soap.wsdl_cache_ttl int

Sets the number of seconds (time to live) that cached files will be used instead the originals.

Предопределенные классы

SoapClient

Конструктор

  • SoapClient->__construct() - constructs a new SoapClient object

Методы

  • SoapClient->__call() - Calls a SOAP function (deprecated)

  • SoapClient->__doRequest() - Performs a SOAP request

  • SoapClient->__getFunctions() - Returns list of SOAP functions

  • SoapClient->__getLastRequest() - Returns last SOAP request

  • SoapClient->__getLastRequestHeaders() - Returns last SOAP request headers

  • SoapClient->__getLastResponse() - Returns last SOAP response

  • SoapClient->__getLastResponseHeaders() - Returns last SOAP response headers

  • SoapClient->__getTypes() - Returns list of SOAP types

  • SoapClient->__setCookie() - Sets the cookie that will be sent with the SOAP request

  • SoapClient->__soapCall() - Calls a SOAP function

SoapFault

Конструктор

  • SoapFault->__construct() - construct a new SoapFault object

SoapHeader

SoapHeader is a special low-level class for passing or returning SOAP headers. It's just a data holder and it does not have any special methods except its constructor. It can be used in the SoapClient->__soapCall() method to pass a SOAP header or in a SOAP header handler to return the header in a SOAP response.

Конструктор

  • SoapHeader->__construct() - construct a new SoapHeader object

SoapParam

SoapParam is a special low-level class for naming parameters and returning values in non-WSDL mode. It's just a data holder and it does not have any special methods except its constructor.

Конструктор

  • SoapParam->__construct() - construct a new SoapParam object

SoapServer

Конструктор

  • SoapServer->__construct() - construct a new SoapServer object

Методы

  • SoapServer->addFunction() - Adds one or several functions those will handle SOAP requests

  • SoapServer->fault() -

  • SoapServer->getFunctions() - Returns list of defined functions

  • SoapServer->handle() - Handles a SOAP request

  • SoapServer->setClass() - Sets class which will handle SOAP requests

  • SoapServer->setPersistence() - Sets persistence mode of SoapServer

SoapVar

SoapVar is a special low-level class for encoding parameters and returning values in non-WSDL mode. It's just a data holder and does not have any special methods except the constructor. It's useful when you want to set the type property in SOAP request or response.

Конструктор

  • SoapVar->__construct() - construct a new SoapVar object

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

SOAP_1_1 (integer)

SOAP_1_2 (integer)

SOAP_PERSISTENCE_SESSION (integer)

SOAP_PERSISTENCE_REQUEST (integer)

SOAP_FUNCTIONS_ALL (integer)

SOAP_ENCODED (integer)

SOAP_LITERAL (integer)

SOAP_RPC (integer)

SOAP_DOCUMENT (integer)

SOAP_ACTOR_NEXT (integer)

SOAP_ACTOR_NONE (integer)

SOAP_ACTOR_UNLIMATERECEIVER (integer)

SOAP_COMPRESSION_ACCEPT (integer)

SOAP_COMPRESSION_GZIP (integer)

SOAP_COMPRESSION_DEFLATE (integer)

UNKNOWN_TYPE (integer)

XSD_STRING (integer)

XSD_BOOLEAN (integer)

XSD_DECIMAL (integer)

XSD_FLOAT (integer)

XSD_DOUBLE (integer)

XSD_DURATION (integer)

XSD_DATETIME (integer)

XSD_TIME (integer)

XSD_DATE (integer)

XSD_GYEARMONTH (integer)

XSD_GYEAR (integer)

XSD_GMONTHDAY (integer)

XSD_GDAY (integer)

XSD_GMONTH (integer)

XSD_HEXBINARY (integer)

XSD_BASE64BINARY (integer)

XSD_ANYURI (integer)

XSD_ANYXML (integer)

Added in PHP 5.1.0.

XSD_QNAME (integer)

XSD_NOTATION (integer)

XSD_NORMALIZEDSTRING (integer)

XSD_TOKEN (integer)

XSD_LANGUAGE (integer)

XSD_NMTOKEN (integer)

XSD_NAME (integer)

XSD_NCNAME (integer)

XSD_ID (integer)

XSD_IDREF (integer)

XSD_IDREFS (integer)

XSD_ENTITY (integer)

XSD_ENTITIES (integer)

XSD_INTEGER (integer)

XSD_NONPOSITIVEINTEGER (integer)

XSD_NEGATIVEINTEGER (integer)

XSD_LONG (integer)

XSD_INT (integer)

XSD_SHORT (integer)

XSD_BYTE (integer)

XSD_NONNEGATIVEINTEGER (integer)

XSD_UNSIGNEDLONG (integer)

XSD_UNSIGNEDINT (integer)

XSD_UNSIGNEDSHORT (integer)

XSD_UNSIGNEDBYTE (integer)

XSD_POSITIVEINTEGER (integer)

XSD_NMTOKENS (integer)

XSD_ANYTYPE (integer)

SOAP_ENC_OBJECT (integer)

SOAP_ENC_ARRAY (integer)

XSD_1999_TIMEINSTANT (integer)

XSD_NAMESPACE (string)

XSD_1999_NAMESPACE (string)

Содержание
is_soap_fault -- Checks if SOAP call was failed
SoapClient->__call() -- Calls a SOAP function (deprecated)
SoapClient->__construct() -- SoapClient constructor
SoapClient->__doRequest() -- Performs a SOAP request
SoapClient->__getFunctions() -- Returns list of SOAP functions
SoapClient->__getLastRequest() -- Returns last SOAP request
SoapClient->__getLastRequestHeaders() -- Returns last SOAP request headers
SoapClient->__getLastResponse() -- Returns last SOAP response.
SoapClient->__getLastResponseHeaders() -- Returns last SOAP response headers.
SoapClient->__getTypes() -- Returns list of SOAP types
SoapClient->__setCookie() -- Sets the cookie that will be sent with the SOAP request
SoapClient->__soapCall() -- Calls a SOAP function
SoapFault->__construct() -- SoapFault constructor
SoapHeader->__construct() -- SoapHeader constructor
SoapParam->__construct() -- SoapParam constructor
SoapServer->addFunction() -- Adds one or several functions those will handle SOAP requests
SoapServer->__construct() -- SoapServer constructor
SoapServer->fault() -- Issue SoapServer fault indicating an error
SoapServer->getFunctions() -- Returns list of defined functions
SoapServer->handle() -- Handles a SOAP request
SoapServer->setClass() -- Sets class which will handle SOAP requests
SoapServer->setPersistence() -- Sets persistence mode of SoapServer
SoapVar->__construct() -- SoapVar constructor
use_soap_error_handler -- Set whether to use the SOAP error handler and return the former value

Пред. | Начало | След.
snmpwalkoid | Уровень выше | is_soap_fault


is_soap_fault

(PHP 5)

is_soap_fault -- Checks if SOAP call was failed

Описание

bool is_soap_fault ( mixed obj )

This function is useful when you like to check if the SOAP call failed, but don't like to use exceptions. To use it you must create a SoapClient object with the exceptions option set to zero or FALSE. In this case, the SOAP method will return a special SoapFault object which encapsulates the fault details (faultcode, faultstring, faultactor and faultdetails).

If exceptions is not set then SOAP call will throw an exception on error. is_soap_fault() checks if the given parameter is a SoapFault object.

Список параметров

obj

The tested object.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. is_soap_fault() example

<?php
$client = new SoapClient("some.wsdl", array('exceptions' => 0));
$result = $client->SomeFunction();
if (is_soap_fault($result)) {
    trigger_error("SOAP Fault: (faultcode: {$result->faultcode}, faultstring: {$result->faultstring})", E_ERROR);
}
?>

Пример 2. SOAP's standard method for error reporting is exceptions

<?php
try {
    $client = new SoapClient("some.wsdl");
    $result = $client->SomeFunction(/* ... */);
} catch (SoapFault $fault) {
    trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_ERROR);
}
?>

Смотрите также

SoapClient->__construct()
SoapFault->__construct()

Пред. | Начало | След.
SOAP Functions | Уровень выше | SoapClient->__call()


SoapClient->__call()

(no version information, might be only in CVS)

SoapClient->__call() -- Calls a SOAP function (deprecated)

Описание

class SoapClient {

mixed __call ( string function_name, array arguments [, array options [, array input_headers [, array output_headers]]] )

}

This method is deprecated. Use SoapClient->__soapCall() instead of it.

Пред. | Начало | След.
is_soap_fault | Уровень выше | SoapClient->__construct()


SoapClient->__construct()

(no version information, might be only in CVS)

SoapClient->__construct() -- SoapClient constructor

Описание

class SoapClient {

__construct ( mixed wsdl [, array options] )

}

This constructor creates SoapClient objects in WSDL or non-WSDL mode.

Список параметров

wsdl

URI of the WSDL file or NULL if working in non-WSDL mode.

options

An array of options. If working in WSDL mode, this parameter is optional. If working in non-WSDL mode, you must set the location and uri options, where location is the URL to request and uri is the target namespace of the SOAP service.

The style and use options only work in non-WSDL mode. In WSDL mode, they come from the WSDL file.

The soap_version option specifies whether to use SOAP 1.1, or SOAP 1.2 client.

For HTTP authentication, you may use the login and password options. For making an HTTP connection through a proxy server, use the options proxy_host, proxy_port, proxy_login and proxy_password. For HTTPS client certificate authentication use local_cert and passphrase options.

The compression option allows to use compression of HTTP SOAP requests and responses.

The encoding option defines internal character encoding. This option does not change the encofing of SOAP requests (it is always utf-8), but converts strings into it.

The classmap option can be used to map some WSDL types to PHP classes. This option must be an array with WSDL types as keys and names of PHP classes as values.

The trace and exceptions options are useful for debuging purpose.

Примеры

Пример 1. SoapClient examples

<?php

$client = new SoapClient("some.wsdl");

$client = new SoapClient("some.wsdl", array('soap_version'   => SOAP_1_2));

$client = new SoapClient("some.wsdl", array('login'          => "some_name",
                                            'password'       => "some_password"));

$client = new SoapClient("some.wsdl", array('proxy_host'     => "localhost",
                                            'proxy_port'     => 8080));

$client = new SoapClient("some.wsdl", array('proxy_host'     => "localhost",
                                            'proxy_port'     => 8080,
                                            'proxy_login'    => "some_name",
                                            'proxy_password' => "some_password"));

$client = new SoapClient("some.wsdl", array('local_cert'     => "cert_key.pem"));

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/",
                                     'style'    => SOAP_DOCUMENT,
                                     'use'      => SOAP_LITERAL));

$client = new SoapClient("some.wsdl",
  array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP));

$server = new SoapClient("some.wsdl", array('encoding'=>'ISO-8859-1'));

class MyBook {
    public $title;
    public $author;
}

$server = new SoapClient("books.wsdl", array('classmap' => array('book' => "MyBook")));

?>

Пред. | Начало | След.
SoapClient->__call() | Уровень выше | SoapClient->__doRequest()


SoapClient->__doRequest()

(no version information, might be only in CVS)

SoapClient->__doRequest() -- Performs a SOAP request

Описание

class SoapClient {

string __doRequest ( string request, string location, string action, int version )

}

Performs SOAP request over HTTP.

This method can be overridden in subclasses to implement different transport layers, perform additional XML processing or other purpose.

Список параметров

request

The XML SOAP request.

location

The URL to request.

action

The SOAP action.

version

The SOAP version.

Возвращаемые значения

The XML SOAP response.

Примеры

Пример 1. Some examples

<?php
function Add($x,$y) {
  return $x+$y;
}

class LocalSoapClient extends SoapClient {

  function __construct($wsdl, $options) {
    parent::__construct($wsdl, $options);
    $this->server = new SoapServer($wsdl, $options);
    $this->server->addFunction('Add');
  }

  function __doRequest($request, $location, $action, $version) {
    ob_start();
    $this->server->handle($request);
    $response = ob_get_contents();
    ob_end_clean();
    return $response;
  }

}

$x = new LocalSoapClient(NULL,array('location'=>'test://',
                                   'uri'=>'http://testuri.org'));
var_dump($x->Add(3,4));
?>

Пред. | Начало | След.
SoapClient->__construct() | Уровень выше | SoapClient->__getFunctions()


SoapClient->__getFunctions()

(no version information, might be only in CVS)

SoapClient->__getFunctions() -- Returns list of SOAP functions

Описание

class SoapClient {

array __getFunctions ( void )

}

Returns the list of SOAP functions.

Замечание: This function works only in WSDL mode.

Возвращаемые значения

The list of SOAP functions.

Примеры

Пример 1. SoapClient->__getFunctions() example

<?php
$client = SoapClient("some.wsdl");
var_dump($client->__getFunctions());
?>

Смотрите также

SoapClient->__construct()

Пред. | Начало | След.
SoapClient->__doRequest() | Уровень выше | SoapClient->__getLastRequest()


SoapClient->__getLastRequest()

(no version information, might be only in CVS)

SoapClient->__getLastRequest() -- Returns last SOAP request

Описание

class SoapClient {

string __getLastRequest ( void )

}

Замечание: This method works only if the SoapClient object was created with the trace option.

Возвращаемые значения

The last SOAP request.

Примеры

Пример 1. SoapClient->__getLastRequest() example

<?php
$client = SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction();
echo "REQUEST:\n" . $client->__getLastRequest() . "\n";
?>

Смотрите также

SoapClient->__construct()
SoapClient->__getLastRequestHeaders()
SoapClient->__getLastResponse()
SoapClient->__getLastResponseHeaders()

Пред. | Начало | След.
SoapClient->__getFunctions() | Уровень выше | SoapClient->__getLastRequestHeaders()


SoapClient->__getLastRequestHeaders()

(no version information, might be only in CVS)

SoapClient->__getLastRequestHeaders() -- Returns last SOAP request headers

Описание

class SoapClient {

string __getLastRequestHeaders ( void )

}

Замечание: This method works only if the SoapClient object was created with the trace option.

Возвращаемые значения

The last SOAP request headers.

Смотрите также

SoapClient->__construct()
SoapClient->__getLastRequest()
SoapClient->__getLastResponse()
SoapClient->__getLastResponseHeaders()

Пред. | Начало | След.
SoapClient->__getLastRequest() | Уровень выше | SoapClient->__getLastResponse()


SoapClient->__getLastResponse()

(no version information, might be only in CVS)

SoapClient->__getLastResponse() -- Returns last SOAP response.

Описание

class SoapClient {

string __getLastResponse ( void )

}

Замечание: This method works only if the SoapClient object was created with the trace option.

Возвращаемые значения

The last SOAP response.

Примеры

Пример 1. SoapClient->__getLastResponse() example

<?php
$client = SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction();
echo "RESPONSE:\n" . $client->__getLastResponse() . "\n";
?>

Смотрите также

SoapClient->__construct()
SoapClient->__getLastResponseHeaders()
SoapClient->__getLastRequest()
SoapClient->__getLastRequestHeaders()

Пред. | Начало | След.
SoapClient->__getLastRequestHeaders() | Уровень выше | SoapClient->__getLastResponseHeaders()


SoapClient->__getLastResponseHeaders()

(no version information, might be only in CVS)

SoapClient->__getLastResponseHeaders() -- Returns last SOAP response headers.

Описание

class SoapClient {

string __getLastResponseHeaders ( void )

}

Замечание: This method works only if the SoapClient object was created with the trace option.

Возвращаемые значения

The last SOAP response headers.

Смотрите также

SoapClient->__construct()
SoapClient->__getLastResponse()
SoapClient->__getLastRequest()
SoapClient->__getLastRequestHeaders()

Пред. | Начало | След.
SoapClient->__getLastResponse() | Уровень выше | SoapClient->__getTypes()


SoapClient->__getTypes()

(no version information, might be only in CVS)

SoapClient->__getTypes() -- Returns list of SOAP types

Описание

class SoapClient {

array __getTypes ( void )

}

This function works only in WSDL mode.

Возвращаемые значения

The list of SOAP types.

Примеры

Пример 1. SoapClient->__getTypes() example

<?php
$client = new SoapClient("some.wsdl");
var_dump($client->__getTypes());
?>

Смотрите также

SoapClient->__construct()

Пред. | Начало | След.
SoapClient->__getLastResponseHeaders() | Уровень выше | SoapClient->__setCookie()


SoapClient->__setCookie()

(no version information, might be only in CVS)

SoapClient->__setCookie() -- Sets the cookie that will be sent with the SOAP request

Описание

class SoapClient {

void __setCookie ( string name [, string value] )

}

Defines a cookie to be sent along with the SOAP requests.

Замечание: Calling this method will affect all following calls to SoapClient methods.

Список параметров

name

The name of the cookie.

value

The value of the cookie. If not specified, the cookie will be deleted.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Пред. | Начало | След.
SoapClient->__getTypes() | Уровень выше | SoapClient->__soapCall()


SoapClient->__soapCall()

(no version information, might be only in CVS)

SoapClient->__soapCall() -- Calls a SOAP function

Описание

class SoapClient {

mixed __soapCall ( string function_name [, array arguments [, array options [, mixed input_headers [, array &output_headers]]]] )

}

This is a low level API function that is used to make a SOAP call. Usually, in WSDL mode, you can simply call SOAP functions as SoapClient methods. This method useful in non-WSDL mode when soapaction is unknown, uri differs from the default or when sending and/or receiving SOAP Headers.

On error, a call to a SOAP function can cause PHP to throw exceptions or return a SoapFault object if exceptions are disabled. To check if the function call failed to catch the SoapFault exceptions, check the result with is_soap_fault().

Возвращаемые значения

SOAP functions may return one, or multiple values. If only one value is returned by the SOAP function, the return value of __soapCall will be a simple value (e.g. an integer, a string, etc). If multiple values are returned, __soapCall will return an associative array of named output parameters.

Примеры

Пример 1. SoapClient->__soapCall() Examples

<?php

$client = new SoapClient("some.wsdl");
$client->SomeFunction($a, $b, $c);

$client->__soapCall("SomeFunction", array($a, $b, $c));
$client->__soapCall("SomeFunction", array($a, $b, $c), NULL,
                    new SoapHeader(), $output_headers);

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$client->SomeFunction($a, $b, $c);
$client->__soapCall("SomeFunction", array($a, $b, $c));
$client->__soapCall("SomeFunction", array($a, $b, $c),
                    array('soapaction' => 'some_action',
                          'uri'        => 'some_uri'));
?>

Смотрите также

SoapClient->__construct()
SoapParam->__construct()
SoapVar->__construct()
SoapHeader->__construct()
SoapFault->__construct()
is_soap_fault()

Пред. | Начало | След.
SoapClient->__setCookie() | Уровень выше | SoapFault->__construct()


SoapFault->__construct()

(no version information, might be only in CVS)

SoapFault->__construct() -- SoapFault constructor

Описание

class SoapFault {

__construct ( string faultcode, string faultstring [, string faultactor [, mixed detail [, string faultname [, SoapHeader headerfault]]]] )

}

This class is useful when you would like to send SOAP fault responses from the PHP handler. faultcode, faultstring, faultactor and details are standard elements of SOAP Fault;

Список параметров

faultcode

The error code of the SoapFault.

faultstring

The error message of the SoapFault.

faultactor

A string identifying the actor that caused the error.

detail

faultname

Can be used to select the proper fault encoding from WSDL.

headerfault

Can be used during SOAP header handling to report an error in the response header.

Примеры

Пример 1. Some examples

<?php
function test($x)
{
    return new SoapFault("Server", "Some error message");
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

It is possible to use PHP exception mechanism to throw SOAP Fault.

Пример 2. Some examples

<?php
function test($x)
{
    throw new SoapFault("Server", "Some error message");
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

Смотрите также

SoapClient->__construct()
SoapClient->__soapCall()
SoapVar->__construct()
SoapParam->__construct()
SoapFault->__construct()
is_soap_fault()

Пред. | Начало | След.
SoapClient->__soapCall() | Уровень выше | SoapHeader->__construct()


SoapHeader->__construct()

(no version information, might be only in CVS)

SoapHeader->__construct() -- SoapHeader constructor

Описание

class SoapHeader {

__construct ( string namespace, string name [, mixed data [, bool mustUnderstand [, mixed actor]]] )

}

Constructs a new SoapHeader object.

Список параметров

namespace

The namespace of the SOAP header element.

name

The name of the SOAP header element.

data

A SOAP header's content. It can be a PHP value or a SoapVar object.

mustUnderstand

Value of the mustUnderstand attribute of the SOAP header element.

actor

Value of the actor attribute of the SOAP header element.

Примеры

Пример 1. Some examples

<?php
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$client->__call("echoVoid", null, null,
                new SoapHeader('http://soapinterop.org/echoheader/',
                               'echoMeStringRequest',
                               'hello world'));
?>

Смотрите также

SoapClient->__soapCall()
SoapVar->__construct()
SoapParam->__construct()

Пред. | Начало | След.
SoapFault->__construct() | Уровень выше | SoapParam->__construct()


SoapParam->__construct()

(no version information, might be only in CVS)

SoapParam->__construct() -- SoapParam constructor

Описание

class SoapParam {

__construct ( mixed data, string name )

}

Constructs a new SoapParam object.

Список параметров

data

The data to pass or return. You can pass this parameter directly as PHP value, but in this case it will be named as paramN and the SOAP Service may not understand it.

name

The parameter name.

Примеры

Пример 1. Some examples

<?php
$client = new SoapClient(null,array('location' => "http://localhost/soap.php",
                                    'uri'      => "http://test-uri/"));
$client->SomeFunction(new SoapParam($a, "a"),
                      new SoapParam($b, "b"),
                      new SoapParam($c, "c"));
?>

Смотрите также

SoapClient->__soapCall()
SoapVar->__construct()

Пред. | Начало | След.
SoapHeader->__construct() | Уровень выше | SoapServer->addFunction()


SoapServer->addFunction()

(no version information, might be only in CVS)

SoapServer->addFunction() -- Adds one or several functions those will handle SOAP requests

Описание

class SoapServer {

void addFunction ( mixed functions )

}

Exports one or more functions for remote clients.

Список параметров

functions

To export one function, pass the function name into this parameter as a string.

To export several functions, pass an array of function names.

To export all the functions, pass a special constant SOAP_FUNCTIONS_ALL.

Замечание: functions must receive all input arguments in the same order as defined in the WSDL file (They should not receive any output parameters as arguments) and return one or more values. To return several values they must return an array with named output parameters.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример 1. Some examples

<?php

function echoString($inputString)
{
    return $inputString;
}

$server->addFunction("echoString");

function echoTwoStrings($inputString1, $inputString2)
{
    return array("outputString1" => $inputString1,
                 "outputString2" => $inputString2);
}
$server->addFunction(array("echoString", "echoTwoStrings"));

$server->addFunction(SOAP_FUNCTIONS_ALL);

?>

Смотрите также

SoapServer->__construct()
SoapServer->setClass()

Пред. | Начало | След.
SoapParam->__construct() | Уровень выше | SoapServer->__construct()


SoapServer->__construct()

(no version information, might be only in CVS)

SoapServer->__construct() -- SoapServer constructor

Описание

class SoapServer {

__construct ( mixed wsdl [, array options] )

}

This constructor allows the creation of SoapServer objects in WSDL or non-WSDL mode.

Список параметров

wsdl

If you want the WSDL mode, you must set this to the URI of a WSDL file. In the other case, you must set this to NULL and set the uri option.

options

Allow setting a default SOAP version (soap_version), internal character encoding (encoding), and actor URI (actor). The classmap option can be used to map some WSDL types to PHP classes. This option must be an array with WSDL types as keys and names of PHP classes as values.

Примеры

Пример 1. Some examples

<?php

$server = new SoapServer("some.wsdl");

$server = new SoapServer("some.wsdl", array('soap_version' => SOAP_1_2));

$server = new SoapServer("some.wsdl", array('actor' => "http://example.org/ts-tests/C"));

$server = new SoapServer("some.wsdl", array('encoding'=>'ISO-8859-1'));

$server = new SoapServer(null, array('uri' => "http://test-uri/"));

class MyBook {
    public $title;
    public $author;
}

$server = new SoapServer("books.wsdl", array('classmap' => array('book' => "MyBook")));

?>

Пред. | Начало | След.
SoapServer->addFunction() | Уровень выше | SoapServer->fault()


SoapServer->fault()

(no version information, might be only in CVS)

SoapServer->fault() -- Issue SoapServer fault indicating an error

Описание

class SoapServer {

void fault ( string code, string string [, string actor [, mixed details [, string name]]] )

}

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

SoapFault->__construct()

Пред. | Начало | След.
SoapServer->__construct() | Уровень выше | SoapServer->getFunctions()


SoapServer->getFunctions()

(no version information, might be only in CVS)

SoapServer->getFunctions() -- Returns list of defined functions

Описание

class SoapServer {

array getFunctions ( void )

}

This method returns the list of all functions added by SoapServer->addFunction() or SoapServer->setClass().

Возвращаемые значения

The list of all functions.

Примеры

Пример 1. Some examples

<?php
$server = new SoapServer(NULL, array("uri" => "http://test-uri"));
$server->addFunction(SOAP_FUNCTIONS_ALL);
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $server->handle();
} else {
  echo "This SOAP server can handle following functions: ";
  $functions = $server->getFunctions();
  foreach($functions as $func) {
    echo $func . "\n";
  }
}
?>

Смотрите также

SoapServer->__construct()
SoapServer->addFunction()
SoapServer->setClass()

Пред. | Начало | След.
SoapServer->fault() | Уровень выше | SoapServer->handle()


SoapServer->handle()

(no version information, might be only in CVS)

SoapServer->handle() -- Handles a SOAP request

Описание

class SoapServer {

void handle ( [string soap_request] )

}

Processes a SOAP request, calls necessary functions, and sends a response back.

Список параметров

soap_request

The SOAP request. If this argument is omitted, the request is supposed to be in the $HTTP_RAW_POST_DATA PHP variable.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример 1. Some examples

<?php
function test($x)
{
    return $x;
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

Смотрите также

SoapServer->__construct()

Пред. | Начало | След.
SoapServer->getFunctions() | Уровень выше | SoapServer->setClass()


SoapServer->setClass()

(no version information, might be only in CVS)

SoapServer->setClass() -- Sets class which will handle SOAP requests

Описание

class SoapServer {

void setClass ( string class_name [, mixed args [, mixed ...]] )

}

Exports all methods from specified class.

The object can be made persistent across request for a given PHP session with the SoapServer->setPersistence() method.

Список параметров

class_name

The name of the exported class.

args

These optional parameters will be passed to the default class constructor during object creation.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример 1. Some examples

<?php

class foo {
    function foo()
    {
    }
}
$server->setClass("foo");

class bar {
    function bar($x, $y)
    {
    }
}
$server->setClass("bar", $arg1, $arg2);

?>

Смотрите также

SoapServer->__construct()
SoapServer->addFunction()
SoapServer->setPersistence()

Пред. | Начало | След.
SoapServer->handle() | Уровень выше | SoapServer->setPersistence()


SoapServer->setPersistence()

(no version information, might be only in CVS)

SoapServer->setPersistence() -- Sets persistence mode of SoapServer

Описание

class SoapServer {

void setPersistence ( int mode )

}

This function allows saving data between requests in a PHP session. It works only with a server that exports functions from a class with SoapServer->setClass().

Список параметров

mode

One of the SOAP_PERSISTENCE_XXX constants.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример 1. Some examples

<?php

$server->setPersistence(SOAP_PERSISTENCE_SESSION);

$server->setPersistence(SOAP_PERSISTENCE_REQUEST);

?>

Смотрите также

SoapServer->__construct()
SoapServer->setClass()

Пред. | Начало | След.
SoapServer->setClass() | Уровень выше | SoapVar->__construct()


SoapVar->__construct()

(no version information, might be only in CVS)

SoapVar->__construct() -- SoapVar constructor

Описание

class SoapVar {

__construct ( mixed data, int encoding [, string type_name [, string type_namespace [, string node_name [, string node_namespace]]]] )

}

Constructs a new SoapVar object.

Список параметров

data

The data to pass or return.

encoding

The encoding ID, one of the XSD_... constants.

type_name

The type name.

type_namespace

The type namespace.

node_name

The XML node name.

node_namespace

The XML node namespace.

Примеры

Пример 1. Some examples

<?php
class SOAPStruct {
    function SOAPStruct($s, $i, $f)
    {
        $this->varString = $s;
        $this->varInt = $i;
        $this->varFloat = $f;
    }
}
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$struct = new SOAPStruct('arg', 34, 325.325);
$soapstruct = new SoapVar($struct, SOAP_ENC_OBJECT, "SOAPStruct", "http://soapinterop.org/xsd");
$client->echoStruct(new SoapParam($soapstruct, "inputStruct"));
?>

Смотрите также

SoapClient->__soapCall()
SoapParam->__construct()

Пред. | Начало | След.
SoapServer->setPersistence() | Уровень выше | use_soap_error_handler


use_soap_error_handler

(PHP 5)

use_soap_error_handler -- Set whether to use the SOAP error handler and return the former value

Описание

bool use_soap_error_handler ( [bool handler] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
SoapVar->__construct() | Уровень выше | Socket Functions


Socket Functions

Руководство по PHP
Пред. След.

CXL. Socket Functions

Введение

The socket extension implements a low-level interface to the socket communication functions based on the popular BSD sockets, providing the possibility to act as a socket server as well as a client.

For a more generic client-side socket interface, see
stream_socket_client(),
stream_socket_server(),
fsockopen(), and
pfsockopen().

When using these functions, it is important to remember that while many of them have identical names to their C counterparts, they often have different declarations. Please be sure to read the descriptions to avoid confusion.

Those unfamiliar with socket programming can find a lot of useful material in the appropriate Unix man pages, and there is a great deal of tutorial information on socket programming in C on the web, much of which can be applied, with slight modifications, to socket programming in PHP. The Unix Socket FAQ might be a good start.

Требования

Эти функции всегда доступны.

Установка

The socket functions described here are part of an extension to PHP which must be enabled at compile time by giving the --enable-sockets option to configure.

Замечание: Поддержка IPv6 была добавлена в PHP 5.0.0.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

AF_UNIX (integer)

AF_INET (integer)

AF_INET6 (integer)

SOCK_STREAM (integer)

SOCK_DGRAM (integer)

SOCK_RAW (integer)

SOCK_SEQPACKET (integer)

SOCK_RDM (integer)

MSG_OOB (integer)

MSG_WAITALL (integer)

MSG_PEEK (integer)

MSG_DONTROUTE (integer)

SO_DEBUG (integer)

SO_REUSEADDR (integer)

SO_KEEPALIVE (integer)

SO_DONTROUTE (integer)

SO_LINGER (integer)

SO_BROADCAST (integer)

SO_OOBINLINE (integer)

SO_SNDBUF (integer)

SO_RCVBUF (integer)

SO_SNDLOWAT (integer)

SO_RCVLOWAT (integer)

SO_SNDTIMEO (integer)

SO_RCVTIMEO (integer)

SO_TYPE (integer)

SO_ERROR (integer)

SOL_SOCKET (integer)

PHP_NORMAL_READ (integer)

PHP_BINARY_READ (integer)

SOL_TCP (integer)

SOL_UDP (integer)

Socket Errors

The socket extension was written to provide a usable interface to the powerful BSD sockets. Care has been taken that the functions work equally well on Win32 and Unix implementations. Almost all of the sockets functions may fail under certain conditions and therefore emit an E_WARNING message describing the error. Sometimes this doesn't happen to the desire of the developer. For example the function socket_read() may suddenly emit an E_WARNING message because the connection broke unexpectedly. It's common to suppress the warning with the @-operator and catch the error code within the application with the socket_last_error() function. You may call the socket_strerror() function with this error code to retrieve a string describing the error. See their description for more information.

Замечание: The E_WARNING messages generated by the socket extension are in English though the retrieved error message will appear depending on the current locale (LC_MESSAGES):
Warning - socket_bind() unable to bind address [98]: Die Adresse wird bereits verwendet

Примеры

Пример 1. Socket example: Simple TCP/IP server

This example shows a simple talkback server. Change the address and port variables to suit your setup and execute. You may then connect to the server with a command similar to: telnet 192.168.1.53 10000 (where the address and port match your setup). Anything you type will then be output on the server side, and echoed back to you. To disconnect, enter 'quit'.

#!/usr/local/bin/php -q
<?php
error_reporting(E_ALL);

/* Allow the script to hang around waiting for connections. */
set_time_limit(0);

/* Turn on implicit output flushing so we see what we're getting
 * as it comes in. */
ob_implicit_flush();

$address = '192.168.1.53';
$port = 10000;

if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) {
    echo "socket_create() failed: reason: " . socket_strerror($sock) . "\n";
}

if (($ret = socket_bind($sock, $address, $port)) < 0) {
    echo "socket_bind() failed: reason: " . socket_strerror($ret) . "\n";
}

if (($ret = socket_listen($sock, 5)) < 0) {
    echo "socket_listen() failed: reason: " . socket_strerror($ret) . "\n";
}

do {
    if (($msgsock = socket_accept($sock)) < 0) {
        echo "socket_accept() failed: reason: " . socket_strerror($msgsock) . "\n";
        break;
    }
    /* Send instructions. */
    $msg = "\nWelcome to the PHP Test Server. \n" .
        "To quit, type 'quit'. To shut down the server type 'shutdown'.\n";
    socket_write($msgsock, $msg, strlen($msg));

    do {
        if (false === ($buf = socket_read($msgsock, 2048, PHP_NORMAL_READ))) {
            echo "socket_read() failed: reason: " . socket_strerror($ret) . "\n";
            break 2;
        }
        if (!$buf = trim($buf)) {
            continue;
        }
        if ($buf == 'quit') {
            break;
        }
        if ($buf == 'shutdown') {
            socket_close($msgsock);
            break 2;
        }
        $talkback = "PHP: You said '$buf'.\n";
        socket_write($msgsock, $talkback, strlen($talkback));
        echo "$buf\n";
    } while (true);
    socket_close($msgsock);
} while (true);

socket_close($sock);
?>

Пример 2. Socket example: Simple TCP/IP client

This example shows a simple, one-shot HTTP client. It simply connects to a page, submits a HEAD request, echoes the reply, and exits.

<?php
error_reporting(E_ALL);

echo "<h2>TCP/IP Connection</h2>\n";

/* Get the port for the WWW service. */
$service_port = getservbyname('www', 'tcp');

/* Get the IP address for the target host. */
$address = gethostbyname('www.example.com');

/* Create a TCP/IP socket. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket < 0) {
    echo "socket_create() failed: reason: " . socket_strerror($socket) . "\n";
} else {
    echo "OK.\n";
}

echo "Attempting to connect to '$address' on port '$service_port'...";
$result = socket_connect($socket, $address, $service_port);
if ($result < 0) {
    echo "socket_connect() failed.\nReason: ($result) " . socket_strerror($result) . "\n";
} else {
    echo "OK.\n";
}

$in = "HEAD / HTTP/1.1\r\n";
$in .= "Host: www.example.com\r\n";
$in .= "Connection: Close\r\n\r\n";
$out = '';

echo "Sending HTTP HEAD request...";
socket_write($socket, $in, strlen($in));
echo "OK.\n";

echo "Reading response:\n\n";
while ($out = socket_read($socket, 2048)) {
    echo $out;
}

echo "Closing socket...";
socket_close($socket);
echo "OK.\n\n";
?>

Содержание
socket_accept -- Accepts a connection on a socket
socket_bind -- Binds a name to a socket
socket_clear_error -- Clears the error on the socket or the last error code
socket_close -- Closes a socket resource
socket_connect -- Initiates a connection on a socket
socket_create_listen -- Opens a socket on port to accept connections
socket_create_pair -- Creates a pair of indistinguishable sockets and stores them in an array
socket_create -- Create a socket (endpoint for communication)
socket_get_option -- Gets socket options for the socket
socket_getpeername -- Queries the remote side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type
socket_getsockname -- Queries the local side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type
socket_last_error -- Returns the last error on the socket
socket_listen -- Listens for a connection on a socket
socket_read -- Reads a maximum of length bytes from a socket
socket_recv -- Receives data from a connected socket
socket_recvfrom -- Receives data from a socket, connected or not
socket_select -- Runs the select() system call on the given arrays of sockets with a specified timeout
socket_send -- Sends data to a connected socket
socket_sendto -- Sends a message to a socket, whether it is connected or not
socket_set_block -- Sets blocking mode on a socket resource
socket_set_nonblock -- Sets nonblocking mode for file descriptor fd
socket_set_option -- Sets socket options for the socket
socket_shutdown -- Shuts down a socket for receiving, sending, or both
socket_strerror -- Return a string describing a socket error
socket_write -- Write to a socket

Пред. | Начало | След.
use_soap_error_handler | Уровень выше | socket_accept


socket_accept

(PHP 4 >= 4.1.0, PHP 5)

socket_accept -- Accepts a connection on a socket

Description

resource socket_accept ( resource socket )

After the socket socket has been created using socket_create(), bound to a name with socket_bind(), and told to listen for connections with socket_listen(), this function will accept incoming connections on that socket. Once a successful connection is made, a new socket resource is returned, which may be used for communication. If there are multiple connections queued on the socket, the first will be used. If there are no pending connections, socket_accept() will block until a connection becomes present. If socket has been made non-blocking using socket_set_blocking() or socket_set_nonblock(), FALSE will be returned.

The socket resource returned by socket_accept() may not be used to accept new connections. The original listening socket socket, however, remains open and may be reused.

Returns a new socket resource on success, or FALSE on error. The actual error code can be retrieved by calling socket_last_error(). This error code may be passed to socket_strerror() to get a textual explanation of the error.

See also
socket_bind(),
socket_connect(),
socket_listen(),
socket_create(), and
socket_strerror().

Пред. | Начало | След.
Socket Functions | Уровень выше | socket_bind


socket_bind

(PHP 4 >= 4.1.0, PHP 5)

socket_bind -- Binds a name to a socket

Описание

bool socket_bind ( resource socket, string address [, int port] )

Binds the name given in address to the socket described by socket. This has to be done before a connection can be established using socket_connect() or socket_listen().

Список параметров

socket

A valid socket resource created with socket_create().

address

If the socket is of the AF_INET family, the address is an IP in dotted-quad notation (e.g. 127.0.0.1).

If the socket is of the AF_UNIX family, the address is the path of a Unix-domain socket (e.g. /tmp/my.sock).

port (Optional)

The port parameter is only used when connecting to an AF_INET socket, and designates the port on the remote host to which a connection should be made.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.

Примеры

Пример 1. Using socket_bind() to set the source address

<?php
// Create a new socket
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

// An example list of IP addresses owned by the computer
$sourceips['kevin']    = '127.0.0.1';
$sourceips['madcoder'] = '127.0.0.2';

// Bind the source address
socket_bind($sock, $sourceips['madcoder']);

// Connect to destination address
socket_connect($sock, '127.0.0.1', 80);

// Write
$request = 'GET / HTTP/1.1' . "\r\n" .
           'Host: example.com' . "\r\n\r\n";
socket_write($sock, $request);

// Close
socket_close($sock);

?>

Примечания

Замечание: This function must be used on the socket before socket_connect().

Замечание: Windows 9x/ME compatibility note: socket_last_error() may return an invalid error code if trying to bind the socket to a wrong address that does not belong to your machine.

Смотрите также

socket_connect()
socket_listen()
socket_create()
socket_last_error()
socket_strerror()

Пред. | Начало | След.
socket_accept | Уровень выше | socket_clear_error


socket_clear_error

(PHP 4 >= 4.2.0, PHP 5)

socket_clear_error -- Clears the error on the socket or the last error code

Description

void socket_clear_error ( [resource socket] )

This function clears the error code on the given socket or the global last socket error.

This function allows explicitly resetting the error code value either of a socket or of the extension global last error code. This may be useful to detect within a part of the application if an error occurred or not.

See also socket_last_error() and socket_strerror().

Пред. | Начало | След.
socket_bind | Уровень выше | socket_close


socket_close

(PHP 4 >= 4.1.0, PHP 5)

socket_close -- Closes a socket resource

Description

void socket_close ( resource socket )

socket_close() closes the socket resource given by socket.

Замечание: socket_close() can't be used on PHP file resources created with fopen(), popen(), fsockopen(), or pfsockopen(); it is meant for sockets created with socket_create() or socket_accept().

See also socket_bind(), socket_listen(),
socket_create() and
socket_strerror().

Пред. | Начало | След.
socket_clear_error | Уровень выше | socket_connect


socket_connect

(PHP 4 >= 4.1.0, PHP 5)

socket_connect -- Initiates a connection on a socket

Description

bool socket_connect ( resource socket, string address [, int port] )

Initiates a connection using the socket resource socket, which must be a valid socket resource created with socket_create().

The address parameter is either an IP address in dotted-quad notation (e.g. 127.0.0.1), if the socket is of the AF_INET family; or the pathname of a Unix domain socket, if the socket family is AF_UNIX.

The port parameter is only used when connecting to an AF_INET socket, and designates the port on the remote host to which a connection should be made.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.

See also
socket_bind(),
socket_listen(),
socket_create(),
socket_last_error() and
socket_strerror().

Пред. | Начало | След.
socket_close | Уровень выше | socket_create_listen


socket_create_listen

(PHP 4 >= 4.1.0, PHP 5)

socket_create_listen -- Opens a socket on port to accept connections

Description

resource socket_create_listen ( int port [, int backlog] )

This function is meant to ease the task of creating a new socket which only listens to accept new connections.

socket_create_listen() creates a new socket resource of type AF_INET listening on all local interfaces on the given port waiting for new connections.

The backlog parameter defines the maximum length the queue of pending connections may grow to. SOMAXCONN may be passed as backlog parameter, see socket_listen() for more information.

socket_create_listen() returns a new socket resource on success or FALSE on error. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.

Замечание: If you want to create a socket which only listens on a certain interface you need to use socket_create(), socket_bind() and socket_listen().

See also
socket_create(),
socket_bind(),
socket_listen(),
socket_last_error() and
socket_strerror().

Пред. | Начало | След.
socket_connect | Уровень выше | socket_create_pair


socket_create_pair

(PHP 4 >= 4.1.0, PHP 5)

socket_create_pair -- Creates a pair of indistinguishable sockets and stores them in an array

Description

bool socket_create_pair ( int domain, int type, int protocol, array &fd )

socket_create_pair() creates two connected and indistinguishable sockets, and stores them in fd. This function is commonly used in IPC (InterProcess Communication).

The domain parameter specifies the protocol family to be used by the socket.

Таблица 1. Available address/protocol families

Domain | Description
AF_INET | IPv4 Internet based protocols. TCP and UDP are common protocols of this protocol family. Supported only in windows.
AF_INET6 | IPv6 Internet based protocols. TCP and UDP are common protocols of this protocol family. Support added in PHP 5.0.0. Supported only in windows.
AF_UNIX | Local communication protocol family. High efficiency and low overhead make it a great form of IPC (Interprocess Communication).

The type parameter selects the type of communication to be used by the socket.

Таблица 2. Available socket types

Type | Description
SOCK_STREAM | Provides sequenced, reliable, full-duplex, connection-based byte streams. An out-of-band data transmission mechanism may be supported. The TCP protocol is based on this socket type.
SOCK_DGRAM | Supports datagrams (connectionless, unreliable messages of a fixed maximum length). The UDP protocol is based on this socket type.
SOCK_SEQPACKET | Provides a sequenced, reliable, two-way connection-based data transmission path for datagrams of fixed maximum length; a consumer is required to read an entire packet with each read call.
SOCK_RAW | Provides raw network protocol access. This special type of socket can be used to manually construct any type of protocol. A common use for this socket type is to perform ICMP requests (like ping, traceroute, etc).
SOCK_RDM | Provides a reliable datagram layer that does not guarantee ordering. This is most likely not implemented on your operating system.

The protocol parameter sets the specific protocol within the specified domain to be used when communicating on the returned socket. The proper value can be retrieved by name by using getprotobyname(). If the desired protocol is TCP, or UDP the corresponding constants SOL_TCP, and SOL_UDP can also be used.

Таблица 3. Common protocols

Name | Description
icmp | The Internet Control Message Protocol is used primarily by gateways and hosts to report errors in datagram communication. The "ping" command (present in most modern operating systems) is an example application of ICMP.
udp | The User Datagram Protocol is a connectionless, unreliable, protocol with fixed record lengths. Due to these aspects, UDP requires a minimum amount of protocol overhead.
tcp | The Transmission Control Protocol is a reliable, connection based, stream oriented, full duplex protocol. TCP guarantees that all data packets will be received in the order in which they were sent. If any packet is somehow lost during communication, TCP will automatically retransmit the packet until the destination host acknowledges that packet. For reliability and performance reasons, the TCP implementation itself decides the appropriate octet boundaries of the underlying datagram communication layer. Therefore, TCP applications must allow for the possibility of partial record transmission.

Пример 1. socket_create_pair() example

<?php
$sockets = array();
/* Setup socket pair */
if (!socket_create_pair(AF_UNIX, SOCK_STREAM, 0, $sockets)) {
    echo socket_strerror(socket_last_error());
}
/* Send and Recieve Data */
if (!socket_write($sockets[0], "ABCdef123\n", strlen("ABCdef123\n"))) {
    echo socket_strerror(socket_last_error());
}
if (!$data = socket_read($sockets[1], strlen("ABCdef123\n"), PHP_BINARY_READ)) {
    echo socket_strerror(socket_last_error());
}
var_dump($data);

/* Close sockets */
socket_close($sockets[0]);
socket_close($sockets[1]);
?>

Пример 2. socket_create_pair() IPC example

<?php
$ary = array();
$strone = 'Message From Parent.';
$strtwo = 'Message From Child.';
if (!socket_create_pair(AF_UNIX, SOCK_STREAM, 0, $ary)) {
    echo socket_strerror(socket_last_error());
}
$pid = pcntl_fork();
if ($pid == -1) {
    echo 'Could not fork Process.';
} elseif ($pid) {
    /*parent*/
    socket_close($ary[0]);
    if (!socket_write($ary[1], $strone, strlen($strone))) {
        echo socket_strerror(socket_last_error());
    }
    if (socket_read($ary[1], strlen($strtwo), PHP_BINARY_READ) == $strtwo) {
        echo "Recieved $strtwo\n";
    }
    socket_close($ary[1]);
} else {
    /*child*/
    socket_close($ary[1]);
    if (!socket_write($ary[0], $strtwo, strlen($strtwo))) {
        echo socket_strerror(socket_last_error());
    }
    if (socket_read($ary[0], strlen($strone), PHP_BINARY_READ) == $strone) {
        echo "Recieved $strone\n";
    }
    socket_close($ary[0]);
}
?>

Пред. | Начало | След.
socket_create_listen | Уровень выше | socket_create


socket_create

(PHP 4 >= 4.1.0, PHP 5)

socket_create -- Create a socket (endpoint for communication)

Description

resource socket_create ( int domain, int type, int protocol )

Creates and returns a socket resource, also referred to as an endpoint of communication. A typical network connection is made up of 2 sockets, one performing the role of the client, and another performing the role of the server.

The domain parameter specifies the protocol family to be used by the socket.

Таблица 1. Available address/protocol families

Domain | Description
AF_INET | IPv4 Internet based protocols. TCP and UDP are common protocols of this protocol family.
AF_INET6 | IPv6 Internet based protocols. TCP and UDP are common protocols of this protocol family. Support added in PHP 5.0.0.
AF_UNIX | Local communication protocol family. High efficiency and low overhead make it a great form of IPC (Interprocess Communication).

The type parameter selects the type of communication to be used by the socket.

Таблица 2. Available socket types

Type | Description
SOCK_STREAM | Provides sequenced, reliable, full-duplex, connection-based byte streams. An out-of-band data transmission mechanism may be supported. The TCP protocol is based on this socket type.
SOCK_DGRAM | Supports datagrams (connectionless, unreliable messages of a fixed maximum length). The UDP protocol is based on this socket type.
SOCK_SEQPACKET | Provides a sequenced, reliable, two-way connection-based data transmission path for datagrams of fixed maximum length; a consumer is required to read an entire packet with each read call.
SOCK_RAW | Provides raw network protocol access. This special type of socket can be used to manually construct any type of protocol. A common use for this socket type is to perform ICMP requests (like ping, traceroute, etc).
SOCK_RDM | Provides a reliable datagram layer that does not guarantee ordering. This is most likely not implemented on your operating system.

The protocol parameter sets the specific protocol within the specified domain to be used when communicating on the returned socket. The proper value can be retrieved by name by using getprotobyname(). If the desired protocol is TCP, or UDP the corresponding constants SOL_TCP, and SOL_UDP can also be used.

Таблица 3. Common protocols

Name | Description
icmp | The Internet Control Message Protocol is used primarily by gateways and hosts to report errors in datagram communication. The "ping" command (present in most modern operating systems) is an example application of ICMP.
udp | The User Datagram Protocol is a connectionless, unreliable, protocol with fixed record lengths. Due to these aspects, UDP requires a minimum amount of protocol overhead.
tcp | The Transmission Control Protocol is a reliable, connection based, stream oriented, full duplex protocol. TCP guarantees that all data packets will be received in the order in which they were sent. If any packet is somehow lost during communication, TCP will automatically retransmit the packet until the destination host acknowledges that packet. For reliability and performance reasons, the TCP implementation itself decides the appropriate octet boundaries of the underlying datagram communication layer. Therefore, TCP applications must allow for the possibility of partial record transmission.

socket_create() Returns a socket resource on success, or FALSE on error. The actual error code can be retrieved by calling socket_last_error(). This error code may be passed to socket_strerror() to get a textual explanation of the error.

Замечание: If an invalid domain or type is given, socket_create() defaults to AF_INET and SOCK_STREAM respectively and additionally emits an E_WARNING message.

See also
socket_accept(),
socket_bind(),
socket_connect(),
socket_listen(),
socket_last_error(), and
socket_strerror().

Пред. | Начало | След.
socket_create_pair | Уровень выше | socket_get_option


socket_get_option

(PHP 4 >= 4.3.0, PHP 5)

socket_get_option -- Gets socket options for the socket

Description

mixed socket_get_option ( resource socket, int level, int optname )

The socket_get_option() function retrieves the value for the option specified by the optname parameter for the socket specified by the socket parameter. socket_get_option() will return FALSE on failure.

The level parameter specifies the protocol level at which the option resides. For example, to retrieve options at the socket level, a level parameter of SOL_SOCKET would be used. Other levels, such as TCP, can be used by specifying the protocol number of that level. Protocol numbers can be found by using the getprotobyname() function.

Таблица 1. Available Socket Options

Option | Description
SO_DEBUG | Reports whether debugging information is being recorded.
SO_ACCEPTCONN | Reports whether socket listening is enabled.
SO_BROADCAST | Reports whether transmission of broadcast messages is supported.
SO_REUSEADDR | Reports whether local addresses can be reused.
SO_KEEPALIVE | Reports whether connections are kept active with periodic transmission of messages. If the connected socket fails to respond to these messages, the connection is broken and processes writing to that socket are notified with a SIGPIPE signal.
SO_LINGER | Reports whether the socket lingers on socket_close() if data is present.
SO_OOBINLINE | Reports whether the socket leaves out-of-band data inline.
SO_SNDBUF | Reports send buffer size information.
SO_RCVBUF | Reports recieve buffer size information.
SO_ERROR | Reports information about error status and clears it.
SO_TYPE | Reports the socket type.
SO_DONTROUTE | Reports whether outgoing messages bypass the standard routing facilities.
SO_RCVLOWAT | Reports the minimum number of bytes to process for socket input operations. ( Defaults to 1 )
SO_RCVTIMEO | Reports the timeout value for input operations.
SO_SNDLOWAT | Reports the minimum number of bytes to process for socket output operations.
SO_SNDTIMEO | Reports the timeout value specifying the amount of time that an output function blocks because flow control prevents data from being sent.

Замечание: This function used to be called socket_getopt() prior to PHP 4.3.0

Пред. | Начало | След.
socket_create | Уровень выше | socket_getpeername


socket_getpeername

(PHP 4 >= 4.1.0, PHP 5)

socket_getpeername -- Queries the remote side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type

Description

bool socket_getpeername ( resource socket, string &addr [, int &port] )

If the given socket is of type AF_INET or AF_INET6, socket_getpeername() will return the peers (remote) IP address in appropriate notation (e.g. 127.0.0.1 or fe80::1) in the address parameter and, if the optional port parameter is present, also the associated port.

If the given socket is of type AF_UNIX, socket_getpeername() will return the Unix filesystem path (e.g. /var/run/daemon.sock) in the address parameter.

Замечание: socket_getpeername() should not be used with AF_UNIX sockets created with socket_accept(). Only sockets created with socket_connect() or a primary server socket following a call to socket_bind() will return meaningful values.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. socket_getpeername() may also return FALSE if the socket type is not any of AF_INET, AF_INET6, or AF_UNIX, in which case the last socket error code is not updated.

See also
socket_getsockname(),
socket_last_error() and
socket_strerror().

Пред. | Начало | След.
socket_get_option | Уровень выше | socket_getsockname


socket_getsockname

(PHP 4 >= 4.1.0, PHP 5)

socket_getsockname -- Queries the local side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type

Description

bool socket_getsockname ( resource socket, string &addr [, int &port] )

If the given socket is of type AF_INET or AF_INET6, socket_getsockname() will return the local IP address in appropriate notation (e.g. 127.0.0.1 or fe80::1) in the address parameter and, if the optional port parameter is present, also the associated port.

If the given socket is of type AF_UNIX, socket_getsockname() will return the Unix filesystem path (e.g. /var/run/daemon.sock) in the address parameter.

Замечание: socket_getsockname() should not be used with AF_UNIX sockets created with socket_connect(). Only sockets created with socket_accept() or a primary server socket following a call to socket_bind() will return meaningful values.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. socket_getsockname() may also return FALSE if the socket type is not any of AF_INET, AF_INET6, or AF_UNIX, in which case the last socket error code is not updated.

See also
socket_getpeername(),
socket_last_error() and
socket_strerror().

Пред. | Начало | След.
socket_getpeername | Уровень выше | socket_last_error


socket_last_error

(PHP 4 >= 4.1.0, PHP 5)

socket_last_error -- Returns the last error on the socket

Description

int socket_last_error ( [resource socket] )

This function returns a socket error code.

If a socket resource is passed to this function, the last error which occurred on this particular socket is returned. If the socket resource is omitted, the error code of the last failed socket function is returned. The latter is in particular helpful for functions like socket_create() which don't return a socket on failure and socket_select() which can fail for reasons not directly tied to a particular socket. The error code is suitable to be fed to socket_strerror() which returns a string describing the given error code.
<?php
if (false == ($socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP))) {
    die("Couldn't create socket, error code is: " . socket_last_error() .
        ",error message is: " . socket_strerror(socket_last_error()));
}
?>

Замечание: socket_last_error() does not clear the error code, use socket_clear_error() for this purpose.

Пред. | Начало | След.
socket_getsockname | Уровень выше | socket_listen


socket_listen

(PHP 4 >= 4.1.0, PHP 5)

socket_listen -- Listens for a connection on a socket

Description

bool socket_listen ( resource socket [, int backlog] )

After the socket socket has been created using socket_create() and bound to a name with socket_bind(), it may be told to listen for incoming connections on socket.

A maximum of backlog incoming connections will be queued for processing. If a connection request arrives with the queue full the client may receive an error with an indication of ECONNREFUSED, or, if the underlying protocol supports retransmission, the request may be ignored so that retries may succeed.

Замечание: The maximum number passed to the backlog parameter highly depends on the underlying platform. On Linux, it is silently truncated to SOMAXCONN. On win32, if passed SOMAXCONN, the underlying service provider responsible for the socket will set the backlog to a maximum reasonable value. There is no standard provision to find out the actual backlog value on this platform.

socket_listen() is applicable only to sockets of type SOCK_STREAM or SOCK_SEQPACKET.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.

See also
socket_accept(),
socket_bind(),
socket_connect(),
socket_create() and
socket_strerror().

Пред. | Начало | След.
socket_last_error | Уровень выше | socket_read


socket_read

(PHP 4 >= 4.1.0, PHP 5)

socket_read -- Reads a maximum of length bytes from a socket

Description

string socket_read ( resource socket, int length [, int type] )

The function socket_read() reads from the socket resource socket created by the socket_create() or socket_accept() functions. The maximum number of bytes read is specified by the length parameter. Otherwise you can use \r, \n, or \0 to end reading (depending on the type parameter, see below).

socket_read() returns the data as a string on success, or FALSE on error (including if the remote host has closed the connection). The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual representation of the error.

Замечание: socket_read() returns a zero length string ("") when there is no more data to read.

Optional type parameter is a named constant:

  • PHP_BINARY_READ - use the system recv() function. Safe for reading binary data. (Default in PHP >= 4.1.0)

  • PHP_NORMAL_READ - reading stops at \n or \r. (Default in PHP <= 4.0.6)

See also
socket_accept(),
socket_bind(),
socket_connect(),
socket_listen(),
socket_last_error(),
socket_strerror() and
socket_write().

Пред. | Начало | След.
socket_listen | Уровень выше | socket_recv


socket_recv

(PHP 4 >= 4.1.0, PHP 5)

socket_recv -- Receives data from a connected socket

Description

int socket_recv ( resource socket, string &buf, int len, int flags )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
socket_read | Уровень выше | socket_recvfrom


socket_recvfrom

(PHP 4 >= 4.1.0, PHP 5)

socket_recvfrom -- Receives data from a socket, connected or not

Description

int socket_recvfrom ( resource socket, string &buf, int len, int flags, string &name [, int &port] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

socket_recvfrom() has been binary safe since PHP 4.3.0

Пред. | Начало | След.
socket_recv | Уровень выше | socket_select


socket_select

(PHP 4 >= 4.1.0, PHP 5)

socket_select -- Runs the select() system call on the given arrays of sockets with a specified timeout

Description

int socket_select ( array &read, array &write, array &except, int tv_sec [, int tv_usec] )

socket_select() accepts arrays of sockets and waits for them to change status. Those coming with BSD sockets background will recognize that those socket resource arrays are in fact the so-called file descriptor sets. Three independent arrays of socket resources are watched.

The sockets listed in the read array will be watched to see if characters become available for reading (more precisely, to see if a read will not block - in particular, a socket resource is also ready on end-of-file, in which case a socket_read() will return a zero length string).

The sockets listed in the write array will be watched to see if a write will not block.

The sockets listed in the except array will be watched for exceptions.

Внимание

On exit, the arrays are modified to indicate which socket resource actually changed status.

You do not need to pass every array to socket_select(). You can leave it out and use an empty array or NULL instead. Also do not forget that those arrays are passed by reference and will be modified after socket_select() returns.

Пример 1. socket_select() example

<?php
/* Prepare the read array */
$read = array($socket1, $socket2);

$num_changed_sockets = socket_select($read, $write = NULL, $except = NULL, 0);

if ($num_changed_sockets === false) {
    /* Error handling */
} else if ($num_changed_sockets > 0) {
    /* At least at one of the sockets something interesting happened */
}
?>

Замечание: Due a limitation in the current Zend Engine it is not possible to pass a constant modifier like NULL directly as a parameter to a function which expects this parameter to be passed by reference. Instead use a temporary variable or an expression with the leftmost member being a temporary variable:

Пример 2. Using NULL with socket_select()

<?php
socket_select($r, $w, $e = NULL, 0);
?>

The tv_sec and tv_usec together form the timeout parameter. The timeout is an upper bound on the amount of time elapsed before socket_select() return. tv_sec may be zero , causing socket_select() to return immediately. This is useful for polling. If tv_sec is NULL (no timeout), socket_select() can block indefinitely.

On success socket_select() returns the number of socket resources contained in the modified arrays, which may be zero if the timeout expires before anything interesting happens. On error FALSE is returned. The error code can be retrieved with socket_last_error().

Замечание: Be sure to use the === operator when checking for an error. Since the socket_select() may return 0 the comparison with == would evaluate to TRUE:

Пример 3. Understanding socket_select()'s result

<?php
if (false === socket_select($r, $w, $e = NULL, 0)) {
    echo "socket_select() failed, reason: " .
        socket_strerror(socket_last_error()) . "\n";
}
?>

Замечание: Be aware that some socket implementations need to be handled very carefully. A few basic rules:

  • You should always try to use socket_select() without timeout. Your program should have nothing to do if there is no data available. Code that depends on timeouts is not usually portable and difficult to debug.

  • No socket resource must be added to any set if you do not intend to check its result after the socket_select() call, and respond appropriately. After socket_select() returns, all socket resources in all arrays must be checked. Any socket resource that is available for writing must be written to, and any socket resource available for reading must be read from.

  • If you read/write to a socket returns in the arrays be aware that they do not necessarily read/write the full amount of data you have requested. Be prepared to even only be able to read/write a single byte.

  • It's common to most socket implementations that the only exception caught with the except array is out-of-bound data received on a socket.

See also
socket_read(),
socket_write(),
socket_last_error() and
socket_strerror().

Пред. | Начало | След.
socket_recvfrom | Уровень выше | socket_send


socket_send

(PHP 4 >= 4.1.0, PHP 5)

socket_send -- Sends data to a connected socket

Description

int socket_send ( resource socket, string buf, int len, int flags )

The function socket_send() sends len bytes to the socket socket from buf

The value of flags can be any ORed combination of the following:

Таблица 1. possible values for flags

0x1 | Process OOB (out-of-band) data
0x2 | Peek at incoming message
0x4 | Bypass routing, use direct interface
0x8 | Data completes record
0x100 | Data completes transaction

See also socket_sendmsg() and socket_sendto().

Пред. | Начало | След.
socket_select | Уровень выше | socket_sendto


socket_sendto

(PHP 4 >= 4.1.0, PHP 5)

socket_sendto -- Sends a message to a socket, whether it is connected or not

Description

int socket_sendto ( resource socket, string buf, int len, int flags, string addr [, int port] )

The function socket_sendto() sends len bytes from buf through the socket socket to the port at the address addr

The value of flags can be one of the following:

Таблица 1. possible values for flags

0x1 | Process OOB (out-of-band) data.
0x2 | Peek at incoming message.
0x4 | Bypass routing, use direct interface.
0x8 | Data completes record.
0x100 | Data completes transaction.

Пример 1. socket_sendto() Example

<?php
    $sh = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    if (socket_bind($sh, '127.0.0.1', 4242)) {
        echo "Socket bound correctly";
    }
    $buf = 'Test Message';
    $len = strlen($buf);
    if (socket_sendto($sh, $buf, $len, 0x100, '192.168.0.2', 4242) !== false) {
        echo "Message sent correctly";
    }
    socket_close($sh);
?>

See also socket_send() and socket_sendmsg().

Пред. | Начало | След.
socket_send | Уровень выше | socket_set_block


socket_set_block

(PHP 4 >= 4.2.0, PHP 5)

socket_set_block -- Sets blocking mode on a socket resource

Description

bool socket_set_block ( resource socket )

The socket_set_block() function removes the O_NONBLOCK flag on the socket specified by the socket parameter.

Пример 1. socket_set_block() example

<?php

$port = 9090;
if (!$socket = socket_create_listen($port)) {
    echo socket_strerror(socket_last_error());
}

if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
    echo socket_strerror(socket_last_error());
}

if (!socket_set_nonblock($socket)) { // $socket is now nonblocking
    echo socket_strerror(socket_last_error());
}

if (!socket_set_block($socket)) {     // $socket is now blocking
    echo socket_strerror(socket_last_error());
}

?>

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also socket_set_nonblock() and socket_set_option()

Пред. | Начало | След.
socket_sendto | Уровень выше | socket_set_nonblock


socket_set_nonblock

(PHP 4 >= 4.1.0, PHP 5)

socket_set_nonblock -- Sets nonblocking mode for file descriptor fd

Description

bool socket_set_nonblock ( resource socket )

The socket_set_nonblock() function sets the O_NONBLOCK flag on the socket specified by the socket parameter.

Пример 1. socket_set_nonblock() example

<?php
$port = 9090;
if (!$socket = socket_create_listen($port)) {
    echo socket_strerror(socket_last_error());
}

if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
    echo socket_strerror(socket_last_error());
}

if (!socket_set_nonblock($socket)) {
    echo socket_strerror(socket_last_error());
}
?>

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also socket_set_block() and socket_set_option()

Пред. | Начало | След.
socket_set_block | Уровень выше | socket_set_option


socket_set_option

(PHP 4 >= 4.3.0, PHP 5)

socket_set_option -- Sets socket options for the socket

Description

bool socket_set_option ( resource socket, int level, int optname, mixed optval )

The socket_set_option() function sets the option specified by the optname parameter, at the protocol level specified by the level parameter, to the value pointed to by the optval parameter for the socket specified by the socket parameter. socket_set_option() will return FALSE on failure.

The level parameter specifies the protocol level at which the option resides. For example, to retrieve options at the socket level, a level parameter of SOL_SOCKET would be used. Other levels, such as TCP, can be used by specifying the protocol number of that level. Protocol numbers can be found by using the getprotobyname() function.

The available socket options are the same as those for the socket_get_option() function.

Замечание: This function used to be called socket_setopt() prior to PHP 4.3.0.

Пред. | Начало | След.
socket_set_nonblock | Уровень выше | socket_shutdown


socket_shutdown

(PHP 4 >= 4.1.0, PHP 5)

socket_shutdown -- Shuts down a socket for receiving, sending, or both

Description

bool socket_shutdown ( resource socket [, int how] )

The socket_shutdown() function allows you to stop incoming, outgoing or all data (the default) from being sent through the socket

The value of how can be one of the following:

Таблица 1. possible values for how

0 | Shutdown socket reading
1 | Shutdown socket writing
2 | Shutdown socket reading and writing

Пред. | Начало | След.
socket_set_option | Уровень выше | socket_strerror


socket_strerror

(PHP 4 >= 4.1.0, PHP 5)

socket_strerror -- Return a string describing a socket error

Description

string socket_strerror ( int errno )

socket_strerror() takes as its errno parameter a socket error code as returned by socket_last_error() and returns the corresponding explanatory text. This makes it a bit more pleasant to figure out why something didn't work; for instance, instead of having to track down a system include file to find out what '-111' means, you just pass it to socket_strerror(), and it tells you what happened.

Пример 1. socket_strerror() example

<?php
if (false == ($socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP))) {
   echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
}

if (false == (@socket_bind($socket, '127.0.0.1', 80))) {
   echo "socket_bind() failed: reason: " . socket_strerror(socket_last_error($socket)) . "\n";
}
?>

The expected output from the above example (assuming the script is not run with root privileges):

socket_bind() failed: reason: Permission denied

See also
socket_accept(),
socket_bind(),
socket_connect(),
socket_listen(), and
socket_create().

Пред. | Начало | След.
socket_shutdown | Уровень выше | socket_write


socket_write

(PHP 4 >= 4.1.0, PHP 5)

socket_write -- Write to a socket

Description

int socket_write ( resource socket, string buffer [, int length] )

The function socket_write() writes to the socket socket from buffer.

The optional parameter length can specify an alternate length of bytes written to the socket. If this length is greater then the buffer length, it is silently truncated to the length of the buffer.

Returns the number of bytes successfully written to the socket or FALSE one error. The error code can be retrieved with socket_last_error(). This code may be passed to socket_strerror() to get a textual explanation of the error.

Замечание: socket_write() does not necessarily write all bytes from the given buffer. It's valid that, depending on the network buffers etc., only a certain amount of data, even one byte, is written though your buffer is greater. You have to watch out so you don't unintentionally forget to transmit the rest of your data.

Замечание: It is perfectly valid for socket_write() to return zero which means no bytes have been written. Be sure to use the === operator to check for FALSE in case of an error.

See also
socket_accept(),
socket_bind(),
socket_connect(),
socket_listen(),
socket_read() and
socket_strerror().

Пред. | Начало | След.
socket_strerror | Уровень выше | Standard PHP Library (SPL) Functions


Standard PHP Library (SPL) Functions

Руководство по PHP
Пред. След.

CXLI. Standard PHP Library (SPL) Functions

Введение

SPL is a collection of interfaces and classes that are meant to solve standard problems.

Подсказка: A more detailed documentation of SPL can be found here.

Установка

This extension is available and compiled by default in PHP 5.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

RIT_LEAVES_ONLY (integer)

RIT_SELF_FIRST (integer)

RIT_CHILD_FIRST (integer)

CIT_CALL_TOSTRING (integer)

CIT_CATCH_GET_CHILD (integer)

Содержание
ArrayIterator::current -- Return current array entry
ArrayIterator::key -- Return current array key
ArrayIterator::next -- Move to next entry
ArrayIterator::rewind -- Rewind array back to the start
ArrayIterator::seek -- Seek to position
ArrayIterator::valid -- Check whether array contains more entries
ArrayObject::append -- Appends the value
ArrayObject::__construct -- Construct a new array object
ArrayObject::count -- Return the number of elements in the Iterator
ArrayObject::getIterator -- Create a new iterator from an ArrayObject instance
ArrayObject::offsetExists -- Returns whether the requested $index exists
ArrayObject::offsetGet -- Returns the value at the specified $index
ArrayObject::offsetSet -- Sets the value at the specified $index to $newval
ArrayObject::offsetUnset -- Unsets the value at the specified $index
CachingIterator::hasNext -- Check whether the inner iterator has a valid next element
CachingIterator::next -- Move the iterator forward
CachingIterator::rewind -- Rewind the iterator
CachingIterator::__toString -- Return the string representation of the current element
CachingIterator::valid -- Check whether the current element is valid
CachingRecursiveIterator::getChildren -- Return the inner iterator's children as a CachingRecursiveIterator
CachingRecursiveIterator::hasChildren -- Check whether the current element of the inner iterator has children
DirectoryIterator::__construct -- Constructs a new dir iterator from a path
DirectoryIterator::current -- Return this (needed for Iterator interface)
DirectoryIterator::getATime -- Get last access time of file
DirectoryIterator::getCTime -- Get inode modification time of file
DirectoryIterator::getChildren -- Returns an iterator for the current entry if it is a directory
DirectoryIterator::getFilename -- Return filename of current dir entry
DirectoryIterator::getGroup -- Get file group
DirectoryIterator::getInode -- Get file inode
DirectoryIterator::getMTime -- Get last modification time of file
DirectoryIterator::getOwner -- Get file owner
DirectoryIterator::getPath -- Return directory path
DirectoryIterator::getPathname -- Return path and filename of current dir entry
DirectoryIterator::getPerms -- Get file permissions
DirectoryIterator::getSize -- Get file size
DirectoryIterator::getType -- Get file type
DirectoryIterator::isDir -- Returns true if file is directory
DirectoryIterator::isDot -- Returns true if current entry is '.' or '..'
DirectoryIterator::isExecutable -- Returns true if file is executable
DirectoryIterator::isFile -- Returns true if file is a regular file
DirectoryIterator::isLink -- Returns true if file is symbolic link
DirectoryIterator::isReadable -- Returns true if file can be read
DirectoryIterator::isWritable -- Returns true if file can be written
DirectoryIterator::key -- Return current dir entry
DirectoryIterator::next -- Move to next entry
DirectoryIterator::rewind -- Rewind dir back to the start
DirectoryIterator::valid -- Check whether dir contains more entries
FilterIterator::current -- Get the current element value
FilterIterator::getInnerIterator -- Get the inner iterator
FilterIterator::key -- Get the current key
FilterIterator::next -- Move the iterator forward
FilterIterator::rewind -- Rewind the iterator
FilterIterator::valid -- Check whether the current element is valid
LimitIterator::getPosition -- Return the current position
LimitIterator::next -- Move the iterator forward
LimitIterator::rewind -- Rewind the iterator to the specified starting offset
LimitIterator::seek -- Seek to the given position
LimitIterator::valid -- Check whether the current element is valid
ParentIterator::getChildren -- Return the inner iterator's children contained in a ParentIterator
ParentIterator::hasChildren -- Check whether the inner iterator's current element has children
ParentIterator::next -- Move the iterator forward
ParentIterator::rewind -- Rewind the iterator
RecursiveDirectoryIterator::getChildren -- Returns an iterator for the current entry if it is a directory
RecursiveDirectoryIterator::hasChildren -- Returns whether current entry is a directory and not '.' or '..'
RecursiveDirectoryIterator::key -- Return path and filename of current dir entry
RecursiveDirectoryIterator::next -- Move to next entry
RecursiveDirectoryIterator::rewind -- Rewind dir back to the start
RecursiveIteratorIterator::current -- Access the current element value
RecursiveIteratorIterator::getDepth -- Get the current depth of the recursive iteration
RecursiveIteratorIterator::getSubIterator -- The current active sub iterator
RecursiveIteratorIterator::key -- Access the current key
RecursiveIteratorIterator::next -- Move forward to the next element
RecursiveIteratorIterator::rewind -- Rewind the iterator to the first element of the top level inner iterator
RecursiveIteratorIterator::valid -- Check whether the current position is valid
SimpleXMLIterator::current -- Return current SimpleXML entry
SimpleXMLIterator::getChildren -- Returns an iterator for the current entry if it is a SimpleXML object
SimpleXMLIterator::hasChildren -- Returns whether current entry is a SimpleXML object
SimpleXMLIterator::key -- Return current SimpleXML key
SimpleXMLIterator::next -- Move to next entry
SimpleXMLIterator::rewind -- Rewind SimpleXML back to the start
SimpleXMLIterator::valid -- Check whether SimpleXML contains more entries
class_implements -- Return the interfaces which are implemented by the given class
class_parents -- Return the parent classes of the given class
iterator_count -- Count the elements in an iterator
iterator_to_array -- Copy the iterator into an array
spl_classes -- Return available SPL classes

Пред. | Начало | След.
socket_write | Уровень выше | ArrayIterator::current


ArrayIterator::current

(no version information, might be only in CVS)

ArrayIterator::current -- Return current array entry

Description

mixed ArrayIterator::current ( void )

This function returns the current array entry

Пример 1. ArrayIterator::current() example

<?php
$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$arrayobject = new ArrayObject($array);

for($iterator = $arrayobject->getIterator();
    $iterator->valid();
    $iterator->next()) {

    echo $iterator->key() . ' => ' . $iterator->current() . "\n";
}
?>

Результат выполнения данного примера:

1 => one
2 => two
3 => three

Пред. | Начало | След.
Standard PHP Library (SPL) Functions | Уровень выше | ArrayIterator::key


ArrayIterator::key

(no version information, might be only in CVS)

ArrayIterator::key -- Return current array key

Description

mixed ArrayIterator::key ( void )

This function returns the current array key

Пример 1. ArrayIterator::key() example

<?php
$array = array('key' => 'value');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

echo $iterator->key(); //key
?>

Пред. | Начало | След.
ArrayIterator::current | Уровень выше | ArrayIterator::next


ArrayIterator::next

(no version information, might be only in CVS)

ArrayIterator::next -- Move to next entry

Description

void ArrayIterator::next ( void )

This function moves the iterator to the next entry.

Пример 1. ArrayIterator::next() example

<?php
$arrayobject = new ArrayObject();

$arrayobject[] = 'zero';
$arrayobject[] = 'one';

$iterator = $arrayobject->getIterator();

while($iterator->valid()) {
    echo $iterator->key() . ' => ' . $iterator->current() . "\n";

    $iterator->next();
}
?>

Результат выполнения данного примера:

0 => zero
1 => one

Пред. | Начало | След.
ArrayIterator::key | Уровень выше | ArrayIterator::rewind


ArrayIterator::rewind

(no version information, might be only in CVS)

ArrayIterator::rewind -- Rewind array back to the start

Description

void ArrayIterator::rewind ( void )

This function rewinds the iterator to the beginning.

Пример 1. ArrayIterator::rewind() example

<?php
$arrayobject = new ArrayObject();

$arrayobject[] = 'zero';
$arrayobject[] = 'one';
$arrayobject[] = 'two';

$iterator = $arrayobject->getIterator();

$iterator->next();
echo $iterator->key(); //1

$iterator->rewind(); //rewinding to the begining
echo $iterator->key(); //0
?>

Пред. | Начало | След.
ArrayIterator::next | Уровень выше | ArrayIterator::seek


ArrayIterator::seek

(no version information, might be only in CVS)

ArrayIterator::seek -- Seek to position

Description

void ArrayIterator::seek ( int position )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ArrayIterator::rewind | Уровень выше | ArrayIterator::valid


ArrayIterator::valid

(no version information, might be only in CVS)

ArrayIterator::valid -- Check whether array contains more entries

Description

bool ArrayIterator::valid ( void )

This function checks if the array contains any more entries.

Пример 1. ArrayIterator::valid() example

<?php
$array = array('1' => 'one');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

var_dump($iterator->valid()); //bool(true)

$iterator->next(); // advance to the next item

//bool(false) because there is only one array element
var_dump($iterator->valid());
?>

Пред. | Начало | След.
ArrayIterator::seek | Уровень выше | ArrayObject::append


ArrayObject::append

(no version information, might be only in CVS)

ArrayObject::append -- Appends the value

Description

void ArrayObject::append ( mixed newval )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ArrayIterator::valid | Уровень выше | ArrayObject::__construct


ArrayObject::__construct

(no version information, might be only in CVS)

ArrayObject::__construct -- Construct a new array object

Description

ArrayObject ArrayObject::__construct ( mixed input )

This constructs a new array object. The input parameter accepts an array or another ArrayObject.

Пример 1. ArrayObject::__construct() example

<?php
$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$arrayobject = new ArrayObject($array);

var_dump($arrayobject);
?>

Результат выполнения данного примера:

object(ArrayObject)#1 (3) {
  [1]=>
  string(3) "one"
  [2]=>
  string(3) "two"
  [3]=>
  string(5) "three"
}

Пред. | Начало | След.
ArrayObject::append | Уровень выше | ArrayObject::count


ArrayObject::count

(no version information, might be only in CVS)

ArrayObject::count -- Return the number of elements in the Iterator

Description

int ArrayObject::count ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ArrayObject::__construct | Уровень выше | ArrayObject::getIterator


ArrayObject::getIterator

(no version information, might be only in CVS)

ArrayObject::getIterator -- Create a new iterator from an ArrayObject instance

Description

ArrayIterator ArrayObject::getIterator ( void )

This function will return an iterator from an ArrayObject.

Пример 1. ArrayObject::getIterator() example

<?php
$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$arrayobject = new ArrayObject($array);

$iterator = $arrayobject->getIterator();

while($iterator->valid()) {
    echo $iterator->key() . ' => ' . $iterator->current() . "\n";

    $iterator->next();
}
?>

The above example will output:

1 => one
2 => two
3 => three

Пред. | Начало | След.
ArrayObject::count | Уровень выше | ArrayObject::offsetExists


ArrayObject::offsetExists

(no version information, might be only in CVS)

ArrayObject::offsetExists -- Returns whether the requested $index exists

Description

bool ArrayObject::offsetExists ( mixed index )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ArrayObject::getIterator | Уровень выше | ArrayObject::offsetGet


ArrayObject::offsetGet

(no version information, might be only in CVS)

ArrayObject::offsetGet -- Returns the value at the specified $index

Description

bool ArrayObject::offsetGet ( mixed index )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ArrayObject::offsetExists | Уровень выше | ArrayObject::offsetSet


ArrayObject::offsetSet

(no version information, might be only in CVS)

ArrayObject::offsetSet -- Sets the value at the specified $index to $newval

Description

void ArrayObject::offsetSet ( mixed index, mixed newval )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ArrayObject::offsetGet | Уровень выше | ArrayObject::offsetUnset


ArrayObject::offsetUnset

(no version information, might be only in CVS)

ArrayObject::offsetUnset -- Unsets the value at the specified $index

Description

void ArrayObject::offsetUnset ( mixed index )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ArrayObject::offsetSet | Уровень выше | CachingIterator::hasNext


CachingIterator::hasNext

(no version information, might be only in CVS)

CachingIterator::hasNext -- Check whether the inner iterator has a valid next element

Description

bool CachingIterator::hasNext ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ArrayObject::offsetUnset | Уровень выше | CachingIterator::next


CachingIterator::next

(no version information, might be only in CVS)

CachingIterator::next -- Move the iterator forward

Description

void CachingIterator::next ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
CachingIterator::hasNext | Уровень выше | CachingIterator::rewind


CachingIterator::rewind

(no version information, might be only in CVS)

CachingIterator::rewind -- Rewind the iterator

Description

void CachingIterator::rewind ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
CachingIterator::next | Уровень выше | CachingIterator::__toString


CachingIterator::__toString

(no version information, might be only in CVS)

CachingIterator::__toString -- Return the string representation of the current element

Description

string CachingIterator::__toString ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
CachingIterator::rewind | Уровень выше | CachingIterator::valid


CachingIterator::valid

(no version information, might be only in CVS)

CachingIterator::valid -- Check whether the current element is valid

Description

bool CachingIterator::valid ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
CachingIterator::__toString | Уровень выше | CachingRecursiveIterator::getChildren


CachingRecursiveIterator::getChildren

(no version information, might be only in CVS)

CachingRecursiveIterator::getChildren -- Return the inner iterator's children as a CachingRecursiveIterator

Description

CachingRecursiveIterator CachingRecursiveIterator::getChildren ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
CachingIterator::valid | Уровень выше | CachingRecursiveIterator::hasChildren


CachingRecursiveIterator::hasChildren

(no version information, might be only in CVS)

CachingRecursiveIterator::hasChildren -- Check whether the current element of the inner iterator has children

Description

bolean CachingRecursiveIterator::hasChildren ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
CachingRecursiveIterator::getChildren | Уровень выше | DirectoryIterator::__construct


DirectoryIterator::__construct

(no version information, might be only in CVS)

DirectoryIterator::__construct -- Constructs a new dir iterator from a path

Description

DirectoryIterator DirectoryIterator::__construct ( string path )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
CachingRecursiveIterator::hasChildren | Уровень выше | DirectoryIterator::current


DirectoryIterator::current

(no version information, might be only in CVS)

DirectoryIterator::current -- Return this (needed for Iterator interface)

Description

DirectoryIterator DirectoryIterator::current ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::__construct | Уровень выше | DirectoryIterator::getATime


DirectoryIterator::getATime

(no version information, might be only in CVS)

DirectoryIterator::getATime -- Get last access time of file

Description

int DirectoryIterator::getATime ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::current | Уровень выше | DirectoryIterator::getCTime


DirectoryIterator::getCTime

(no version information, might be only in CVS)

DirectoryIterator::getCTime -- Get inode modification time of file

Description

int DirectoryIterator::getCTime ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::getATime | Уровень выше | DirectoryIterator::getChildren


DirectoryIterator::getChildren

(no version information, might be only in CVS)

DirectoryIterator::getChildren -- Returns an iterator for the current entry if it is a directory

Description

RecursiveDirectoryIterator DirectoryIterator::getChildren ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::getCTime | Уровень выше | DirectoryIterator::getFilename


DirectoryIterator::getFilename

(no version information, might be only in CVS)

DirectoryIterator::getFilename -- Return filename of current dir entry

Description

string DirectoryIterator::getFilename ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::getChildren | Уровень выше | DirectoryIterator::getGroup


DirectoryIterator::getGroup

(no version information, might be only in CVS)

DirectoryIterator::getGroup -- Get file group

Description

int DirectoryIterator::getGroup ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::getFilename | Уровень выше | DirectoryIterator::getInode


DirectoryIterator::getInode

(no version information, might be only in CVS)

DirectoryIterator::getInode -- Get file inode

Description

int DirectoryIterator::getInode ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::getGroup | Уровень выше | DirectoryIterator::getMTime


DirectoryIterator::getMTime

(no version information, might be only in CVS)

DirectoryIterator::getMTime -- Get last modification time of file

Description

int DirectoryIterator::getMTime ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::getInode | Уровень выше | DirectoryIterator::getOwner


DirectoryIterator::getOwner

(no version information, might be only in CVS)

DirectoryIterator::getOwner -- Get file owner

Description

int DirectoryIterator::getOwner ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::getMTime | Уровень выше | DirectoryIterator::getPath


DirectoryIterator::getPath

(no version information, might be only in CVS)

DirectoryIterator::getPath -- Return directory path

Description

string DirectoryIterator::getPath ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::getOwner | Уровень выше | DirectoryIterator::getPathname


DirectoryIterator::getPathname

(no version information, might be only in CVS)

DirectoryIterator::getPathname -- Return path and filename of current dir entry

Description

string DirectoryIterator::getPathname ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::getPath | Уровень выше | DirectoryIterator::getPerms


DirectoryIterator::getPerms

(no version information, might be only in CVS)

DirectoryIterator::getPerms -- Get file permissions

Description

int DirectoryIterator::getPerms ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::getPathname | Уровень выше | DirectoryIterator::getSize


DirectoryIterator::getSize

(no version information, might be only in CVS)

DirectoryIterator::getSize -- Get file size

Description

int DirectoryIterator::getSize ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::getPerms | Уровень выше | DirectoryIterator::getType


DirectoryIterator::getType

(no version information, might be only in CVS)

DirectoryIterator::getType -- Get file type

Description

string DirectoryIterator::getType ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::getSize | Уровень выше | DirectoryIterator::isDir


DirectoryIterator::isDir

(no version information, might be only in CVS)

DirectoryIterator::isDir -- Returns true if file is directory

Description

bool DirectoryIterator::isDir ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::getType | Уровень выше | DirectoryIterator::isDot


DirectoryIterator::isDot

(no version information, might be only in CVS)

DirectoryIterator::isDot -- Returns true if current entry is '.' or '..'

Description

bool DirectoryIterator::isDot ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::isDir | Уровень выше | DirectoryIterator::isExecutable


DirectoryIterator::isExecutable

(no version information, might be only in CVS)

DirectoryIterator::isExecutable -- Returns true if file is executable

Description

bool DirectoryIterator::isExecutable ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::isDot | Уровень выше | DirectoryIterator::isFile


DirectoryIterator::isFile

(no version information, might be only in CVS)

DirectoryIterator::isFile -- Returns true if file is a regular file

Description

bool DirectoryIterator::isFile ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::isExecutable | Уровень выше | DirectoryIterator::isLink


DirectoryIterator::isLink

(no version information, might be only in CVS)

DirectoryIterator::isLink -- Returns true if file is symbolic link

Description

bool DirectoryIterator::isLink ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::isFile | Уровень выше | DirectoryIterator::isReadable


DirectoryIterator::isReadable

(no version information, might be only in CVS)

DirectoryIterator::isReadable -- Returns true if file can be read

Description

bool DirectoryIterator::isReadable ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::isLink | Уровень выше | DirectoryIterator::isWritable


DirectoryIterator::isWritable

(no version information, might be only in CVS)

DirectoryIterator::isWritable -- Returns true if file can be written

Description

bool DirectoryIterator::isWritable ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::isReadable | Уровень выше | DirectoryIterator::key


DirectoryIterator::key

(no version information, might be only in CVS)

DirectoryIterator::key -- Return current dir entry

Description

string DirectoryIterator::key ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::isWritable | Уровень выше | DirectoryIterator::next


DirectoryIterator::next

(no version information, might be only in CVS)

DirectoryIterator::next -- Move to next entry

Description

void DirectoryIterator::next ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::key | Уровень выше | DirectoryIterator::rewind


DirectoryIterator::rewind

(no version information, might be only in CVS)

DirectoryIterator::rewind -- Rewind dir back to the start

Description

void DirectoryIterator::rewind ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::next | Уровень выше | DirectoryIterator::valid


DirectoryIterator::valid

(no version information, might be only in CVS)

DirectoryIterator::valid -- Check whether dir contains more entries

Description

string DirectoryIterator::valid ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::rewind | Уровень выше | FilterIterator::current


FilterIterator::current

(no version information, might be only in CVS)

FilterIterator::current -- Get the current element value

Description

mixed FilterIterator::current ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
DirectoryIterator::valid | Уровень выше | FilterIterator::getInnerIterator


FilterIterator::getInnerIterator

(no version information, might be only in CVS)

FilterIterator::getInnerIterator -- Get the inner iterator

Description

Iterator FilterIterator::getInnerIterator ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
FilterIterator::current | Уровень выше | FilterIterator::key


FilterIterator::key

(no version information, might be only in CVS)

FilterIterator::key -- Get the current key

Description

mixed FilterIterator::key ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
FilterIterator::getInnerIterator | Уровень выше | FilterIterator::next


FilterIterator::next

(no version information, might be only in CVS)

FilterIterator::next -- Move the iterator forward

Description

void FilterIterator::next ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
FilterIterator::key | Уровень выше | FilterIterator::rewind


FilterIterator::rewind

(no version information, might be only in CVS)

FilterIterator::rewind -- Rewind the iterator

Description

void FilterIterator::rewind ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
FilterIterator::next | Уровень выше | FilterIterator::valid


FilterIterator::valid

(no version information, might be only in CVS)

FilterIterator::valid -- Check whether the current element is valid

Description

bool FilterIterator::valid ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
FilterIterator::rewind | Уровень выше | LimitIterator::getPosition


LimitIterator::getPosition

(no version information, might be only in CVS)

LimitIterator::getPosition -- Return the current position

Description

int LimitIterator::getPosition ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
FilterIterator::valid | Уровень выше | LimitIterator::next


LimitIterator::next

(no version information, might be only in CVS)

LimitIterator::next -- Move the iterator forward

Description

void LimitIterator::next ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
LimitIterator::getPosition | Уровень выше | LimitIterator::rewind


LimitIterator::rewind

(no version information, might be only in CVS)

LimitIterator::rewind -- Rewind the iterator to the specified starting offset

Description

void LimitIterator::rewind ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
LimitIterator::next | Уровень выше | LimitIterator::seek


LimitIterator::seek

(no version information, might be only in CVS)

LimitIterator::seek -- Seek to the given position

Description

void LimitIterator::seek ( int position )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
LimitIterator::rewind | Уровень выше | LimitIterator::valid


LimitIterator::valid

(no version information, might be only in CVS)

LimitIterator::valid -- Check whether the current element is valid

Description

bool LimitIterator::valid ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
LimitIterator::seek | Уровень выше | ParentIterator::getChildren


ParentIterator::getChildren

(no version information, might be only in CVS)

ParentIterator::getChildren -- Return the inner iterator's children contained in a ParentIterator

Description

ParentIterator ParentIterator::getChildren ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
LimitIterator::valid | Уровень выше | ParentIterator::hasChildren


ParentIterator::hasChildren

(no version information, might be only in CVS)

ParentIterator::hasChildren -- Check whether the inner iterator's current element has children

Description

bool ParentIterator::hasChildren ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ParentIterator::getChildren | Уровень выше | ParentIterator::next


ParentIterator::next

(no version information, might be only in CVS)

ParentIterator::next -- Move the iterator forward

Description

void ParentIterator::next ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ParentIterator::hasChildren | Уровень выше | ParentIterator::rewind


ParentIterator::rewind

(no version information, might be only in CVS)

ParentIterator::rewind -- Rewind the iterator

Description

void ParentIterator::rewind ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ParentIterator::next | Уровень выше | RecursiveDirectoryIterator::getChildren


RecursiveDirectoryIterator::getChildren

(no version information, might be only in CVS)

RecursiveDirectoryIterator::getChildren -- Returns an iterator for the current entry if it is a directory

Description

object RecursiveDirectoryIterator::getChildren ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
ParentIterator::rewind | Уровень выше | RecursiveDirectoryIterator::hasChildren


RecursiveDirectoryIterator::hasChildren

(no version information, might be only in CVS)

RecursiveDirectoryIterator::hasChildren -- Returns whether current entry is a directory and not '.' or '..'

Description

bool RecursiveDirectoryIterator::hasChildren ( [bool allow_links] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
RecursiveDirectoryIterator::getChildren | Уровень выше | RecursiveDirectoryIterator::key


RecursiveDirectoryIterator::key

(no version information, might be only in CVS)

RecursiveDirectoryIterator::key -- Return path and filename of current dir entry

Description

string RecursiveDirectoryIterator::key ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
RecursiveDirectoryIterator::hasChildren | Уровень выше | RecursiveDirectoryIterator::next


RecursiveDirectoryIterator::next

(no version information, might be only in CVS)

RecursiveDirectoryIterator::next -- Move to next entry

Description

void RecursiveDirectoryIterator::next ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
RecursiveDirectoryIterator::key | Уровень выше | RecursiveDirectoryIterator::rewind


RecursiveDirectoryIterator::rewind

(no version information, might be only in CVS)

RecursiveDirectoryIterator::rewind -- Rewind dir back to the start

Description

void RecursiveDirectoryIterator::rewind ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
RecursiveDirectoryIterator::next | Уровень выше | RecursiveIteratorIterator::current


RecursiveIteratorIterator::current

(no version information, might be only in CVS)

RecursiveIteratorIterator::current -- Access the current element value

Description

mixed RecursiveIteratorIterator::current ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
RecursiveDirectoryIterator::rewind | Уровень выше | RecursiveIteratorIterator::getDepth


RecursiveIteratorIterator::getDepth

(no version information, might be only in CVS)

RecursiveIteratorIterator::getDepth -- Get the current depth of the recursive iteration

Description

int RecursiveIteratorIterator::getDepth ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
RecursiveIteratorIterator::current | Уровень выше | RecursiveIteratorIterator::getSubIterator


RecursiveIteratorIterator::getSubIterator

(no version information, might be only in CVS)

RecursiveIteratorIterator::getSubIterator -- The current active sub iterator

Description

RecursiveIterator RecursiveIteratorIterator::getSubIterator ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
RecursiveIteratorIterator::getDepth | Уровень выше | RecursiveIteratorIterator::key


RecursiveIteratorIterator::key

(no version information, might be only in CVS)

RecursiveIteratorIterator::key -- Access the current key

Description

mixed RecursiveIteratorIterator::key ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
RecursiveIteratorIterator::getSubIterator | Уровень выше | RecursiveIteratorIterator::next


RecursiveIteratorIterator::next

(no version information, might be only in CVS)

RecursiveIteratorIterator::next -- Move forward to the next element

Description

void RecursiveIteratorIterator::next ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
RecursiveIteratorIterator::key | Уровень выше | RecursiveIteratorIterator::rewind


RecursiveIteratorIterator::rewind

(no version information, might be only in CVS)

RecursiveIteratorIterator::rewind -- Rewind the iterator to the first element of the top level inner iterator

Description

void RecursiveIteratorIterator::rewind ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
RecursiveIteratorIterator::next | Уровень выше | RecursiveIteratorIterator::valid


RecursiveIteratorIterator::valid

(no version information, might be only in CVS)

RecursiveIteratorIterator::valid -- Check whether the current position is valid

Description

bolean RecursiveIteratorIterator::valid ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
RecursiveIteratorIterator::rewind | Уровень выше | SimpleXMLIterator::current


SimpleXMLIterator::current

(no version information, might be only in CVS)

SimpleXMLIterator::current -- Return current SimpleXML entry

Description

mixed SimpleXMLIterator::current ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
RecursiveIteratorIterator::valid | Уровень выше | SimpleXMLIterator::getChildren


SimpleXMLIterator::getChildren

(no version information, might be only in CVS)

SimpleXMLIterator::getChildren -- Returns an iterator for the current entry if it is a SimpleXML object

Description

object SimpleXMLIterator::getChildren ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
SimpleXMLIterator::current | Уровень выше | SimpleXMLIterator::hasChildren


SimpleXMLIterator::hasChildren

(no version information, might be only in CVS)

SimpleXMLIterator::hasChildren -- Returns whether current entry is a SimpleXML object

Description

bool SimpleXMLIterator::hasChildren ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
SimpleXMLIterator::getChildren | Уровень выше | SimpleXMLIterator::key


SimpleXMLIterator::key

(no version information, might be only in CVS)

SimpleXMLIterator::key -- Return current SimpleXML key

Description

mixed SimpleXMLIterator::key ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
SimpleXMLIterator::hasChildren | Уровень выше | SimpleXMLIterator::next


SimpleXMLIterator::next

(no version information, might be only in CVS)

SimpleXMLIterator::next -- Move to next entry

Description

void SimpleXMLIterator::next ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
SimpleXMLIterator::key | Уровень выше | SimpleXMLIterator::rewind


SimpleXMLIterator::rewind

(no version information, might be only in CVS)

SimpleXMLIterator::rewind -- Rewind SimpleXML back to the start

Description

void SimpleXMLIterator::rewind ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
SimpleXMLIterator::next | Уровень выше | SimpleXMLIterator::valid


SimpleXMLIterator::valid

(no version information, might be only in CVS)

SimpleXMLIterator::valid -- Check whether SimpleXML contains more entries

Description

bool SimpleXMLIterator::valid ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
SimpleXMLIterator::rewind | Уровень выше | class_implements


class_implements

(PHP 5)

class_implements -- Return the interfaces which are implemented by the given class

Описание

array class_implements ( mixed class [, bool autoload] )

This function returns an array with the names of the interfaces that the given class and its parents implement.

Список параметров

class

An object (class instance) or a string (class name).

autoload

Whether to allow this function to load the class automatically through the __autoload magic method. Defaults to TRUE.

Возвращаемые значения

Returns an array or FALSE on error.

Список изменений

Версия | Описание
5.1.0 | Added the option to pass the class parameter as a string. Added the autoload parameter.

Примеры

Пример 1. class_implements() example

<?php

interface foo { }
class bar implements foo {}

print_r(class_implements(new bar));

// since PHP 5.1 you may also specify the parameter as a string
print_r(class_implements('bar'));

function __autoload($class_name) {
   require_once $class_name . '.php';
}

// use __autoload to load the 'not_loaded' class
print_r(class_implements('not_loaded', true));

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [foo] => foo
)

Array
(
    [interface_of_not_loaded] => interface_of_not_loaded
)

Смотрите также

class_parents()

Пред. | Начало | След.
SimpleXMLIterator::valid | Уровень выше | class_parents


class_parents

(PHP 5)

class_parents -- Return the parent classes of the given class

Описание

array class_parents ( mixed class [, bool autoload] )

This function returns an array with the name of the parent classes of the given class.

Список параметров

class

An object (class instance) or a string (class name).

autoload

Whether to allow this function to load the class automatically through the __autoload magic method. Defaults to TRUE.

Возвращаемые значения

Returns an array or FALSE on error.

Список изменений

Версия | Описание
5.1.0 | Added the option to pass the class parameter as a string. Added the autoload parameter.

Примеры

Пример 1. class_parents() example

<?php

class foo { }
class bar extends foo {}

print_r(class_parents(new bar));

// since PHP 5.1 you may also specify the parameter as a string
print_r(class_parents('bar'));

function __autoload($class_name) {
   require_once $class_name . '.php';
}

// use __autoload to load the 'not_loaded' class
print_r(class_parents('not_loaded', true));
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [foo] => foo
)

Array
(
    [parent_of_not_loaded] => parent_of_not_loaded
)

Смотрите также

class_implements()

Пред. | Начало | След.
class_implements | Уровень выше | iterator_count


iterator_count

(PHP 5 >= 5.1.0RC1)

iterator_count -- Count the elements in an iterator

Description

int iterator_count ( IteratorAggregate iterator )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
class_parents | Уровень выше | iterator_to_array


iterator_to_array

(PHP 5 >= 5.1.0RC1)

iterator_to_array -- Copy the iterator into an array

Description

array iterator_to_array ( IteratorAggregate iterator )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
iterator_count | Уровень выше | spl_classes


spl_classes

(PHP 5)

spl_classes -- Return available SPL classes

Description

array spl_classes ( void )

This function returns an array with the current available SPL classes.

Пример 1. spl_classes() example

<?php

print_r(spl_classes());

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [ArrayObject] => ArrayObject
    [ArrayIterator] => ArrayIterator
    [CachingIterator] => CachingIterator
    [CachingRecursiveIterator] => CachingRecursiveIterator
    [DirectoryIterator] => DirectoryIterator
    [FilterIterator] => FilterIterator
    [LimitIterator] => LimitIterator
    [ParentIterator] => ParentIterator
    [RecursiveDirectoryIterator] => RecursiveDirectoryIterator
    [RecursiveIterator] => RecursiveIterator
    [RecursiveIteratorIterator] => RecursiveIteratorIterator
    [SeekableIterator] => SeekableIterator
    [SimpleXMLIterator] => SimpleXMLIterator
)

Пред. | Начало | След.
iterator_to_array | Уровень выше | SQLite


SQLite

Руководство по PHP
Пред. След.

CXLII. SQLite

Введение

Этот модуль обеспечивает доступ к встраиваемой системе управления базами данных SQLite. Программы, использующие библиотеку SQLite, могут использовать SQL базы данных без использования внешней системы управления базами данных.

SQLite не является клиентской библиотекой, подключающейся к серверу базы данных. SQLite напрямую работает с файлами базы данных на диске.

Замечание: Более подробную информацию можно получить на сайте SQLite (http://sqlite.org/).

Установка

Прочтите файл INSTALL, поставляемый с исходными тестами модуля. Или просто воспользуйтесь командой установки PEAR: "pear install sqlite". Библиотека SQLite включена, устанавливать ее дополнительно нет необходимости.

Пользователи Windows могут загрузить скомпилированную версию модуля SQLite здесь: (php_sqlite.dll).

В PHP 5, модуль SQLite включен и устанавливается по умолчанию.

Требования

Для использования функций этого модуля, PHP должен быть собран с поддержкой SQLite, или модуль должн быть подключен динамически в php.ini.

Типы ресурсов

Модуль SQLite определяет два типа ресурсов : соединение с базой данных и результат запроса.

Предопределенные константы

Функции sqlite_fetch_array() и sqlite_current() могут принимать аргумент, задающий вид возвращаемого массива. В качестве значения этого аргумента используется одна из следующих констант:

Таблица 1. Константы выборки SQLite

Константа | Значение
SQLITE_ASSOC | Индексами массива являются имена полей.
SQLITE_BOTH | Каждому полю соответствуют два элемента массива: с числовым индексом, являющимся порядковым номером поля, начиная с 0, и строковым индексом - именем поля.
SQLITE_NUM | Индексами массива являются порядковые номера полей, начиная с 0.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 2. Директивы конфигурации SQLite

Имя | Значение по умолчанию | Изменяется
sqlite.assoc_case | 0 | PHP_INI_ALL
Подробное описание констант PHP_INI_* см. в описании функции ini_set().

Краткое разъяснение конфигурационных директив.

sqlite.assoc_case int

Использование смешанного (0), верхнего (1) или нижнего (2) регистра символов в именах полей.

Эта директива используется в основном для обеспечения совместимости с системами управления базами данных, в которых имена полей всегда возвращаются в верхнем или нижнем регистре, независимо от регистра символов, заданного в структуре базы данных.

Библиотека SQLite возвращает имена полей в точности так, как они заданы в структуре базы данных. Если директива sqlite.assoc_case имеет значение 0, регистр символов остается без изменения. Когда она имеет значение 1 или 2, PHP преобразует имена полей в верхний или нижний регистр соответственно.

Использование этой директивы немного снижает производительность, однако это НАМНОГО быстрее, чем преобразование регистра в PHP скрипте.

Содержание
sqlite_array_query -- Выполняет запрос к базе данных и возвращает результат в виде массива
sqlite_busy_timeout -- Устанавливает время ожидания
sqlite_changes -- Возвращает количество записей, которые были изменены последним SQL запросом
sqlite_close -- Закрывает базу данных SQLite
sqlite_column -- Выбирает одно поле из текущей записи результата запроса
sqlite_create_aggregate -- Регистрирует агрегатную функцию для использования в SQL запросах
sqlite_create_function -- Регистрирует функцию для использования в SQL запросах
sqlite_current -- Возвращает текущую запись результата запроса в массиве
sqlite_error_string -- Возвращает строку с описанием ошибки
sqlite_escape_string -- Экранирует спецсимволы в строке для использования в запросе
sqlite_exec -- Выполняет запрос, не возвращающий записей
sqlite_factory -- Открывает базу данных SQLite и возвращает объект
sqlite_fetch_all -- Выбирает все записи из результата запроса и возвращает массив массивов
sqlite_fetch_array -- Выбирает следующую запись из результата запроса и возвращает массив
sqlite_fetch_column_types -- Возвращает массив, содержащий информацию о типах полей в таблице
sqlite_fetch_object -- Выбирает следующую запись из результата запроса и возвращает объект
sqlite_fetch_single -- Выбирает значение первого поля из результат запроса в виде строки
sqlite_fetch_string -- Псевдоним функции sqlite_fetch_single()
sqlite_field_name -- Возвращает имя указанного поля результата запроса
sqlite_has_more -- Определяет, есть ли еще записи в результате запроса
sqlite_has_prev -- Определяет, доступна ли предыдущая запись
sqlite_key -- Returns the current row index
sqlite_last_error -- Возвращает код ошибки последней операции с SQLite
sqlite_last_insert_rowid -- Возвращает идентификатор последней вставленной записи
sqlite_libencoding -- Возвращает кодировку, используемую подключенной библиотекой SQLite
sqlite_libversion -- Возвращает версию подключенной библиотеки SQLite
sqlite_next -- Переходит на следующую запись
sqlite_num_fields -- Возвращает количество полей в результате запроса
sqlite_num_rows -- Возвращает количество записей в результате запроса
sqlite_open -- Открывает или создает базу данных SQLite
sqlite_popen -- Открывает или создает базу данных SQLite, делая подключение постоянным
sqlite_prev -- Переходит на предыдущую запись
sqlite_query -- Выполняет запрос к базе данных и возвращает идентификатор результата
sqlite_rewind -- Переходит к первой записи
sqlite_seek -- Переходит к определенному номеру записи
sqlite_single_query -- Выполняет SQL зпрос и возвращает массив со значениями одного поля или первую запись
sqlite_udf_decode_binary -- Декодирует бинарные данные, переданные в пользовательскую функцию
sqlite_udf_encode_binary -- Кодирует бинарные данные, возвращаемые пользовательской функцией
sqlite_unbuffered_query -- Выполняет запрос без буферизации результатов
sqlite_valid -- Returns whether more rows are available

Пред. | Начало | След.
spl_classes | Уровень выше | sqlite_array_query


sqlite_array_query

(PHP 5)

sqlite_array_query -- Выполняет запрос к базе данных и возвращает результат в виде массива

Описание

array sqlite_array_query ( resource dbhandle, string query [, int result_type [, bool decode_binary]] )

array sqlite_array_query ( string query, resource dbhandle [, int result_type [, bool decode_binary]] )

Использование sqlite_array_query() идентично
использованию sqlite_query() с последующим вызовом
sqlite_fetch_array() для каждой записи результата
запроса с сохранением записей в массиве, как показано в приведенном ниже
примере. sqlite_array_query() выполняется значительно
быстрее, чем такой скрипт.

Пример 1. Самостоятельная реализация sqlite_array_query()

<?php
$q = sqlite_query($dbhandle, "SELECT * from foo LIMIT 100");
$rows = array();
while ($r = sqlite_fetch_array($q)) {
    $rows[] = $r;
}
?>

Подсказка: sqlite_array_query() наилучшим образом подходит для запросов, возвращающих до 45 записей. Для запросов, возвращающих большие наборы записей, оптимальным с точки зрения быстродействия является использование функции sqlite_unbuffered_query().

Смотрите также

sqlite_query(),
sqlite_fetch_array() и
sqlite_fetch_string()

Пред. | Начало | След.
SQLite | Уровень выше | sqlite_busy_timeout


sqlite_busy_timeout

(PHP 5)

sqlite_busy_timeout -- Устанавливает время ожидания

Описание

void sqlite_busy_timeout ( resource dbhandle, int milliseconds )

Устанавливает максимальное время, в течение которого sqlite ожидает готовности базы данных, заданной аргументом dbhandle, в milliseconds миллисекунд. Если milliseconds равен 0, то в случае, когда файл базы данных заблокирован другим процессом, большинство функций sqlite будут незамедлительно возвращать значение SQLITE_BUSY.

При открытии базы данных,PHP устанавливает время ожидания в 60 секунд.

Замечание: Обратите внимание, что время ожидания задается не в секундах, а в миллисекундах.

Смотрите также

sqlite_open()

Пред. | Начало | След.
sqlite_array_query | Уровень выше | sqlite_changes


sqlite_changes

(PHP 5)

sqlite_changes -- Возвращает количество записей, которые были изменены последним SQL запросом

Описание

int sqlite_changes ( resource dbhandle )

Возвращает количество записей, которые были изменены последним SQL запросом к базе данных dbhandle.

Смотрите также

sqlite_num_rows()

Пред. | Начало | След.
sqlite_busy_timeout | Уровень выше | sqlite_close


sqlite_close

(PHP 5)

sqlite_close -- Закрывает базу данных SQLite

Описание

void sqlite_close ( resource dbhandle )

Закрывает базу данных, идентификатор соединения с которой передан через аргумент dbhandle. Если соединение с базой данных было постоянным, также удаляет это соединение из списка постоянных.

Смотрите также

sqlite_open() и sqlite_popen()

Пред. | Начало | След.
sqlite_changes | Уровень выше | sqlite_column


sqlite_column

(PHP 5)

sqlite_column -- Выбирает одно поле из текущей записи результата запроса

Описание

mixed sqlite_column ( resource result, mixed index_or_name [, bool decode_binary] )

Выбирает значение одного поля из текущей записи результата запроса result. Аргумент index_or_name задает либо имя поля (если передана строка), либо порядковый номер поля (если передано целое). Описание аргумента decode_binary см. в описании функции sqlite_fetch_array().

Эта функция используется с запросами, возвращающими большие наборы данных с большим количеством полей, либо если поля содержат большие объемы данных.

Смотрите также

sqlite_fetch_string()

Пред. | Начало | След.
sqlite_close | Уровень выше | sqlite_create_aggregate


sqlite_create_aggregate

(PHP 5)

sqlite_create_aggregate -- Регистрирует агрегатную функцию для использования в SQL запросах

Описание

bool sqlite_create_aggregate ( resource dbhandle, string function_name, mixed step_func, mixed finalize_func [, int num_args] )

sqlite_create_aggregate() похожа на sqlite_create_function(), за исключением того, что регистрирует функцию, которая может быть использована для вычисления результата на основе всех записей результата запроса.

Главное отличие этой функции от sqlite_create_function() состоит в том, что для работы агрегатной функции неоходимы 2 функции; step_func вызывается для каждой записи из результат запроса. Эта функция должна аккумулировать результат и сохранять его в контекстной переменной. После обработки всех записей, вызывается finalize_func, которая должна обработать данные из контекстной переменной и вернуть результат.

Пример 1. Пример агрегатной функции max_length

<?php
$data = array(
   'one',
   'two',
   'three',
   'four',
   'five',
   'six',
   'seven',
   'eight',
   'nine',
   'ten',
   );
$dbhandle = sqlite_open(':memory:');
sqlite_query($dbhandle, "CREATE TABLE strings(a)");
foreach ($data as $str) {
    $str = sqlite_escape_string($str);
    sqlite_query($dbhandle, "INSERT INTO strings VALUES ('$str')");
}

function max_len_step(&$context, $string)
{
    if (strlen($string) > $context) {
        $context = strlen($string);
    }
}

function max_len_finalize(&$context)
{
    return $context;
}

sqlite_create_aggregate($dbhandle, 'max_len', 'max_len_step', 'max_len_finalize');

var_dump(sqlite_array_query($dbhandle, 'SELECT max_len(a) from strings'));

?>

В этом примере, мы создаем агрегатную функцию, коорая возвращает длину самой длинной строки в одном из полей результата запроса. Для каждой записи, вызывается функция max_len_step, которой помимо строки передается контекстная переменная context. Эту переменню вы можете использовать по своему усмотрению для накопления результатов вычислений. В нашем примере, в этой переменной хранится максимальная длина строки; если длина строки string больше, чем значение, сохраненное в контекстной переменной, контекстной переменной присваивается новое значение.

После обработки всех записей, SQLite вызовет функцию max_len_finalize для определения результата агрегатной функции. Здесь можно было бы провести вычисления, основанные на значении контекстной переменной context, но в этом простейшем примере, все вычисления были произведены в процессе обработки запроса, и остается только вернуть полученное значение.

Замечание: Приведенный выше пример будет работать некорректно, если прменить созданную функцию к бинарным данным. Описание функции sqlite_udf_decode_binary() объясняет, почему это происходит и как этого избежать.

Подсказка: НЕ РЕКОМЕНДУЕТСЯ сохранять все полученные значения в контекстной переменной и затем производить все вычисления на последнем шаге, так как при этом SQLite может израсходовать большое количество памяти в процессе обработки запроса - представьте, сколько памяти потребуется, чтобы сохранить в памяти миллион записей, по 32 байта каждая.

Подсказка: sqlite_create_function() и sqlite_create_aggregate() могут быть использованы для переопределения встроенных функций SQLite.

Смотрите также

sqlite_create_function(),
sqlite_udf_encode_binary() и
sqlite_udf_decode_binary().

Пред. | Начало | След.
sqlite_column | Уровень выше | sqlite_create_function


sqlite_create_function

(PHP 5)

sqlite_create_function -- Регистрирует функцию для использования в SQL запросах

Описание

bool sqlite_create_function ( resource dbhandle, string function_name, mixed callback [, int num_args] )

sqlite_create_function() позволяет зарегистрировать PHP функцию для использования в SQLite в качестве UDF (User Defined Function - функция, определенная пользователем), что позволяет использовать эту функцию в SQL запросах.

Аргумент dbhandle задает базу данных, для которой определяется новая функция, function_name - имя функции, которое будкт использоваться в SQL запросах. Аргумент callback задает PHP функцию, которая будет вызываться при обращении к определяемой SQL функции. Необязательный аргумент num_args задает количество аргументов, которое принимает фунция. Рекомендуется всегда передавать этот аргумент, если функция принимает фиксированное количество аргументов.

Определенная таким образом функция может быть использована в любом SQL запросе, допускающем использование функций, например SELECT и UPDATE, а также в триггерах.

Пример 1. Пример использования sqlite_create_function()

<?php
function md5_and_reverse($string)
{
    return strrev(md5($string));
}

if ($dbhandle = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {

    sqlite_create_function($dbhandle, 'md5rev', 'md5_and_reverse', 1);

    $sql  = 'SELECT md5rev(filename) FROM files';
    $rows = sqlite_array_query($dbhandle, $sql);
} else {
    echo 'Error opening sqlite db: ' . $sqliteerror;
    exit;
}
?>

В этом примере мы определяем функцию, которая вычисляет MD5 хэш строки, а затем обращает полученную строку. При выполнении SQL запроса, значение поля filename преобразуется нашей функцией. Массив $rows содержит обработанный результат.

Достоинство этой техники в том, что нет необходимости обрабатывать полученный результат в цикле.

При открытии базы данных, регистрируется функция с именем php. Эта функция может быть использована для вызова любой функции PHP без регистрации.

Пример 2. Пример использования функции php

<?php
$rows = sqlite_array_query($dbhandle, "SELECT php('md5', filename) from files");
?>

В этом примере, функция md5() будет вызвана для поля filename в каждой записи.

Замечание: Для повышения производительности, PHP не кодирует и не декодирует даные, передаваемые в UDF и возвращаемые из нее. Вы должны позаботиться о кодировании/раскодировании самостоятельно, если есть необходимость обрабатывать бинарные данные. Смотрите описания функций sqlite_udf_encode_binary() и sqlite_udf_decode_binary().

Подсказка: Не рекомендуется использовать UDF для обработки бинарных данных, за исключением случаев, когда нет необходимости достичь высокого быстродействия.

Подсказка: sqlite_create_function() и sqlite_create_aggregate() могут быть использованы для переопределения встроенных функций SQLite.

Смотрите также

See also sqlite_create_aggregate().

Пред. | Начало | След.
sqlite_create_aggregate | Уровень выше | sqlite_current


sqlite_current

(PHP 5)

sqlite_current -- Возвращает текущую запись результата запроса в массиве

Описание

array sqlite_current ( resource result [, int result_type [, bool decode_binary]] )

sqlite_current() аналогична sqlite_fetch_array() за исключеним того, что sqlite_current() не переходит к следующей записи после выборки данных.

Если текущая позиция в результате запроса находится за последней записью, эта функция возвращает FALSE.

Замечание: Эта функция не может быть использована с идентификаторами результатов небуферизированных запросов.

Смотрите также

sqlite_seek(),
sqlite_next() и
sqlite_fetch_array().

Пред. | Начало | След.
sqlite_create_function | Уровень выше | sqlite_error_string


sqlite_error_string

(PHP 5)

sqlite_error_string -- Возвращает строку с описанием ошибки

Описание

string sqlite_error_string ( int error_code )

Возвращает описание ошибки с кодом error_code. Код ошибки возвращает функция sqlite_last_error().

Смотрите также

sqlite_last_error().

Пред. | Начало | След.
sqlite_current | Уровень выше | sqlite_escape_string


sqlite_escape_string

(PHP 5)

sqlite_escape_string -- Экранирует спецсимволы в строке для использования в запросе

Описание

string sqlite_escape_string ( string item )

sqlite_escape_string() экранирует спецсимволы в строке item для использования в запросе SQLite. Одиночные кавычки (') будут удвоены, а также будет произведена проверка на наличие бинарных данных в строке.

Если item содержит символ NUL или начинается с символа с кодом 0x01, будет примененена специальная схема кодирования, позволяющая безопасно хранить бинарные данные.

Хотя кодирование и позволяет вставлять бинарные данные, операторы сравнения и LIKE для полей, содержащих такие данные, будут работать некорректно. На практике, однако, это не создает проблем, так как так база данных должна быть спроектирована таким образом, чтобы не было необходимости использовать операции сравнения с бинарными данными. Фактически, для хранения таких данных лучше подходят другие способы, например файлы.

Внимание

Функцию addslashes() НЕЛЬЗЯ использовать для экранирования строк для запросов к SQLite queries. Это приведет к неожиданным результатам при выборке данных.

Замечание:
    Не применяйте эту функцию к значениям, возвращаемым UDF, созданных с
    использованием sqlite_create_function() или
    sqlite_create_aggregate() - используйте
    sqlite_udf_encode_binary().

Смотрите также

sqlite_udf_encode_binary().

Пред. | Начало | След.
sqlite_error_string | Уровень выше | sqlite_exec


sqlite_exec

(PHP 5)

sqlite_exec -- Выполняет запрос, не возвращающий записей

Описание

bool sqlite_exec ( resource dbhandle, string query )

bool sqlite_exec ( string query, resource dbhandle )

Выполняет запрос query к базе данных, идентификатор которой задан аргументом dbhandle.

Возвращает TRUE при успешном выполнении запроса или FALSE при возникновении ошибки. Для выполнения запроса, который должен возвращать записи, используйте sqlite_query().

Замечание: Для совместимости с другими базами данных (например, MySQL), поддерживаются два варианта синтаксиса. Предпочтительнее первый вариант синтаксиса, где первым является аргумент dbhandle.

Внимание

SQLite может выполнить несколько запросов, разделенных точкой с запятой, за один вызов функции. Это можно использовать, например, для выполнения запросов, прочитанных из файла.

Смотрите также

sqlite_query(),
sqlite_unbuffered_query(),
sqlite_array_query()

Пред. | Начало | След.
sqlite_escape_string | Уровень выше | sqlite_factory


sqlite_factory

(PHP 5)

sqlite_factory -- Открывает базу данных SQLite и возвращает объект

Описание

SQLite sqlite_factory ( string filename [, int mode [, string &error_message]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
sqlite_exec | Уровень выше | sqlite_fetch_all


sqlite_fetch_all

(PHP 5)

sqlite_fetch_all -- Выбирает все записи из результата запроса и возвращает массив массивов

Описание

array sqlite_fetch_all ( resource result [, int result_type [, bool decode_binary]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
sqlite_factory | Уровень выше | sqlite_fetch_array


sqlite_fetch_array

(PHP 5)

sqlite_fetch_array -- Выбирает следующую запись из результата запроса и возвращает массив

Описание

array sqlite_fetch_array ( resource result [, int result_type [, bool decode_binary]] )

Выбирает следующую запись из результата запроса, заданного аргументом result. Если Результат больше не содержит данных, возвращает FALSE, иначе возвращает массив, содержащий данные.

Аргумент result_type позволяет задать вид возвращаемого массива. По умолчанию используется SQLITE_BOTH, при этом для каждого поля массив будет содержать два элемента: с числовым индексом и строковым индексом (имя поля). При использовании SQLITE_ASSOC индексами массива будут только имена полей, а при использовании SQLITE_NUM - порядковые номера полей.

Регистр символов в именах полей зависит от директивы sqlite.assoc_case.

Когда decode_binary имеет значение TRUE, PHP декодирует данные, которые были закодированы функцией sqlite_escape_string(). В большинстве случаев следует использовать значение по умолчанию (TRUE), за исключением работы с базами данных, созданными другими приложениями.

Смотрите также

sqlite_array_query() и sqlite_fetch_string().

Пред. | Начало | След.
sqlite_fetch_all | Уровень выше | sqlite_fetch_column_types


sqlite_fetch_column_types

(PHP 5)

sqlite_fetch_column_types -- Возвращает массив, содержащий информацию о типах полей в таблице

Описание

resource sqlite_fetch_column_types ( string table_name, resource db )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
sqlite_fetch_array | Уровень выше | sqlite_fetch_object


sqlite_fetch_object

(PHP 5)

sqlite_fetch_object -- Выбирает следующую запись из результата запроса и возвращает объект

Описание

object sqlite_fetch_object ( resource result [, string class_name [, array ctor_params [, bool decode_binary]]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
sqlite_fetch_column_types | Уровень выше | sqlite_fetch_single


sqlite_fetch_single

(PHP 5)

sqlite_fetch_single -- Выбирает значение первого поля из результат запроса в виде строки

Описание

string sqlite_fetch_single ( resource result [, bool decode_binary] )

sqlite_fetch_single() идентична sqlite_fetch_array() за исключением того, что возвращается значение только первого поля.

Использование этой функции является оптимальным способом получения данных, когда нужно получить значение только одного поля.

Пример 1. Пример использования sqlite_fetch_single()

<?php
if ($dbhandle = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {

    $sql = "SELECT id FROM sometable WHERE id = 42";
    $res = sqlite_query($dbhandle, $sql);

    if (sqlite_num_rows($res) > 0) {
        echo sqlite_fetch_single($res); // 42
    }

    sqlite_close($dbhandle);
}
?>

Смотрите также

sqlite_fetch_array()

Пред. | Начало | След.
sqlite_fetch_object | Уровень выше | sqlite_fetch_string


sqlite_fetch_string

(PHP 5)

sqlite_fetch_string -- Псевдоним функции sqlite_fetch_single()

Описание

Эта функция является псевдонимом функции sqlite_fetch_single().

Пред. | Начало | След.
sqlite_fetch_single | Уровень выше | sqlite_field_name


sqlite_field_name

(PHP 5)

sqlite_field_name -- Возвращает имя указанного поля результата запроса

Описание

string sqlite_field_name ( resource result, int field_index )

Возвращает имя поля результата запроса result с порядковым номером field_index.

Пред. | Начало | След.
sqlite_fetch_string | Уровень выше | sqlite_has_more


sqlite_has_more

(PHP 5)

sqlite_has_more -- Определяет, есть ли еще записи в результате запроса

Описание

bool sqlite_has_more ( resource result )

sqlite_has_more() возвращает TRUE если результат запроса result содержит записи, доступные для выборки, иначе возвращает FALSE.

Смотрите также

sqlite_num_rows() и sqlite_changes().

Пред. | Начало | След.
sqlite_field_name | Уровень выше | sqlite_has_prev


sqlite_has_prev

(PHP 5)

sqlite_has_prev -- Определяет, доступна ли предыдущая запись

Описание

bool sqlite_has_prev ( resource result )

sqlite_has_prev() возвращает TRUE если предыдущая запись результата запроса result доступна, иначе возвращает FALSE.

Замечание: Эта функция не может быть использована с идентификаторами результатов небуферизированных запросов.

Смотрите также

sqlite_prev(),
sqlite_has_more() и
sqlite_num_rows().

Пред. | Начало | След.
sqlite_has_more | Уровень выше | sqlite_key


sqlite_key

(no version information, might be only in CVS)

sqlite_key

(no version information, might be only in CVS)

SQLiteResult->key -- Returns the current row index

Описание

int sqlite_key ( resource result )

Object oriented style (method):

class SQLiteResult {

int key ( void )

}

sqlite_key() returns the current row index of the buffered result set result.

Список параметров

result

The SQLite result resource. This parameter is not required when using the object-oriented method.

Замечание: Эта функция не может быть использована с идентификаторами результатов небуферизированных запросов.

Возвращаемые значения

Returns the current row index of the buffered result set result.

Список изменений

Версия | Описание
5.0.4 | Prior to PHP 5.0.4, sqlite_key() was only able to be called as a method on a SQLiteResult object, not procedurally.

Смотрите также

sqlite_next()
sqlite_current()
sqlite_rewind()

Пред. | Начало | След.
sqlite_has_prev | Уровень выше | sqlite_last_error


sqlite_last_error

(PHP 5)

sqlite_last_error -- Возвращает код ошибки последней операции с SQLite

Описание

int sqlite_last_error ( resource dbhandle )

Возвращает код ошибки последней операции с базой данных с идентификатором dbhandle. Описание ошибки можно получить с помощью функции sqlite_error_string().

Смотрите также

sqlite_error_string()

Пред. | Начало | След.
sqlite_key | Уровень выше | sqlite_last_insert_rowid


sqlite_last_insert_rowid

(PHP 5)

sqlite_last_insert_rowid -- Возвращает идентификатор последней вставленной записи

Описание

int sqlite_last_insert_rowid ( resource dbhandle )

Возвращает идентификатор последней записи, вставленной в базу данных dbhandle, если таблица, в которую была вставлена запись, содержит поле с авто-инкрементом.

Подсказка: Поля с авто-инкрементом в SQLite объявляются как INTEGER PRIMARY KEY.

Пред. | Начало | След.
sqlite_last_error | Уровень выше | sqlite_libencoding


sqlite_libencoding

(PHP 5)

sqlite_libencoding -- Возвращает кодировку, используемую подключенной библиотекой SQLite

Описание

string sqlite_libencoding ( void )

SQLite может быть скомпилирована с поддержкой ISO-8859-1 или UTF-8. Эта функция позволяет определит, какую кодировку использует подключенная библиотека.

Внимание

По умолчанию, PHP компилирует libsqlite с кодировкой ISO-8859-1. Однако, это неверное название; вместо использования ISO-8859-1, libsqlite работает в соответствии с установками текущей локали для сравнения и сортировки строк. Поэтому следует считать, что используется не ISO-8859-1, а кодировка '8-bit'.

При компиляции с поддержкой UTF-8 sqlite корректно распознает многобайтные символы UTF-8, однако поддержка UTF-8 все же неполная (например, не производится нормализация); кроме того, некорректно выполняются некоторые операции сравнения.

Внимание

В web-окружении не рекомендуется использовать PHP и SQLite с поддержкой UTF-8, так как libsqlite завершает процесс при обнаружении проблем с кодировкой UTF-8.

Смотрите также

sqlite_libversion()

Пред. | Начало | След.
sqlite_last_insert_rowid | Уровень выше | sqlite_libversion


sqlite_libversion

(PHP 5)

sqlite_libversion -- Возвращает версию подключенной библиотеки SQLite

Описание

string sqlite_libversion ( void )

Возвращает версию подключенной библиотеки SQLite.

Смотрите также

sqlite_libencoding()

Пред. | Начало | След.
sqlite_libencoding | Уровень выше | sqlite_next


sqlite_next

(PHP 5)

sqlite_next -- Переходит на следующую запись

Описание

bool sqlite_next ( resource result )

sqlite_next() перемещает внутренний указатель результата запроса result на следующую запись. Возвращает FALSE если указатель находился на последней записи перед вызовом функции, иначе возвращает TRUE.

Замечание: Эта функция не может быть использована с идентификаторами результатов небуферизированных запросов.

Смотрите также

sqlite_seek(),
sqlite_current() и
sqlite_rewind()

Пред. | Начало | След.
sqlite_libversion | Уровень выше | sqlite_num_fields


sqlite_num_fields

(PHP 5)

sqlite_num_fields -- Возвращает количество полей в результате запроса

Описание

int sqlite_num_fields ( resource result )

Возвращает количество полей в результате запроса result.

Смотрите также

sqlite_column() и sqlite_num_rows()

Пред. | Начало | След.
sqlite_next | Уровень выше | sqlite_num_rows


sqlite_num_rows

(PHP 5)

sqlite_num_rows -- Возвращает количество записей в результате запроса

Описание

int sqlite_num_rows ( resource result )

Возвращает количество записей в результате запроса result.

Замечание: Эта функция не может быть использована с идентификаторами результатов небуферизированных запросов.

Смотрите также

sqlite_changes() b sqlite_query()

Пред. | Начало | След.
sqlite_num_fields | Уровень выше | sqlite_open


sqlite_open

(PHP 5)

sqlite_open -- Открывает или создает базу данных SQLite

Описание

resource sqlite_open ( string filename [, int mode [, string &error_message]] )

Возвращает ресурс (идентификатор базы данных) при успешном завершении, FALSE при возникновении ошибки.

Аргумент filename задает имя базы данных. Это может быть абсолютный или относительный путь к файлу, в котором будут храниться данные. Если файл не существует, будет предпринята попытка его создания. У пользователя, от имени которого выполняется скрипт, ДОЛЖНЫ быть права на запись в файл, если необходимо добавлять данные или изменять структуру данных.

Аргумент mode задает режим доступа к файлу базы данных, и мог бы использоваться для открытия базы данных только для чтения, однако в настоящее время этот аргумент не используется. Рекомендуется использовать восьмеричное 0666 в качестве значения этого аргумента, если необходимо использовать аргумент errmessage.

Аргумент errmessage передается по ссылке, в нем возвращается сообщение об ошибке.

Пример 1. Пример sqlite_open()

<?php
if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {
    sqlite_query($db, 'CREATE TABLE foo (bar varchar(10))');
    sqlite_query($db, "INSERT INTO foo VALUES ('fnord')");
    $result = sqlite_query($db, 'select bar from foo');
    var_dump(sqlite_fetch_array($result));
} else {
    die($sqliteerror);
}
?>

Подсказка: На Unix-подобных системах, SQLite может работать некорректно в программах, использующих вызов fork(). В таких программах рекомендуется закрывать базу данных перед запуском дочернего процесса и затем заново открывать ее в дочернем и/или родительском процессе. Дополнительная информация о проблеме содержится в описании интерфейса SQLite на языке C в разделе Multi-Threading And SQLite.

Подсказка: Не рекомендуется работать с базами данных SQLite через NFS, из-за возможных проблем с блокировкой файла.

Замечание: Начиная SQLite версии 2.8.2, можно указывать :memory: в качестве значения аргумента filename для создания базы данных в памяти. Это может быть полезно в тех случаях, когда необходимо создание временной базы данных, которая должна быть уничтожена при завершении процесса. Также это может использоваться совместно с командой ATTACH DATABASE для подключения других баз данных и выполнения операций с ними.

Замечание: Модуль SQLite учитывает установки безопасный режим и open_basedir.

Смотрите также

sqlite_popen(),
sqlite_close() и
sqlite_query()

Пред. | Начало | След.
sqlite_num_rows | Уровень выше | sqlite_popen


sqlite_popen

(PHP 5)

sqlite_popen -- Открывает или создает базу данных SQLite, делая подключение постоянным

Описание

resource sqlite_popen ( string filename [, int mode [, string &error_message]] )

Эта функция идентична sqlite_open(), за исключением того, что она использует механизм постоянных соединений PHP. Описание аргументов в описании функции sqlite_open().

sqlite_popen() пытается найти уже открытый идентификатор подключения к файлу filename. Если такой указатель обнаружен, функция возвращает его, иначе открывает файл аналогично функции sqlite_open().

Выгода от использования постоянного подключения заключается в том, что не тратится время на открытие файла и чтение структуры данных при каждом запросе. Это справедливо только в случае использования PHP как модуля web-сервера (но не CGI или CLI).

Замечание: При использовании постоянных подключений необходимо следить за тем, чтобы файл базу данных не перезаписывался внешними процесами (например, программой, запущенной с помощью crontab, которая создает новый файл базы данных, а затем копирует его на место оригинального файла), так как это вызовет непредсказуемые последствия.

Если необходима модификация базы данных внешним процессом, то этот процесс должен работать только с оригинальным файлом и использовать транзакции.

Смотрите также

sqlite_open(),
sqlite_close() и
sqlite_query()

Пред. | Начало | След.
sqlite_open | Уровень выше | sqlite_prev


sqlite_prev

(PHP 5)

sqlite_prev -- Переходит на предыдущую запись

Описание

bool sqlite_prev ( resource result )

sqlite_prev() перемещает внутренний указатель результата запроса result на предыдущую запись. Возвращает FALSE если указатель находится на первой записи в момент вызова функции, иначе TRUE.

Замечание: Эта функция не может быть использована с идентификаторами результатов небуферизированных запросов.

Смотрите также

sqlite_has_prev(),
sqlite_rewind() и
sqlite_next()

Пред. | Начало | След.
sqlite_popen | Уровень выше | sqlite_query


sqlite_query

(PHP 5)

sqlite_query -- Выполняет запрос к базе данных и возвращает идентификатор результата

Описание

resource sqlite_query ( resource dbhandle, string query )

resource sqlite_query ( string query, resource dbhandle )

Выполняет SQL запрос query к базе данных, заданной аргументом dbhandle.

Эта функция возвращает идентификатор результата запроса или FALSE в случае ошибки. Для запросов, возвращающих данные, этот идентификатор может использоваться в качестве аргумента таких функций как sqlite_fetch_array() или sqlite_seek().

Независимо от типа запроса, в случае возникновения ошибки эта функция возвращает FALSE.

sqlite_query() сохраняет выбранные записи в буфере, что позволяет перебирать возвращенные записи в произвольном порядке. Её следует использовать только для запросов, возвращающих относительно небольшое количество записей. Если вам необходим только последовательный доступ к записям, рекомендуется ипользовать функцию sqlite_unbuffered_query(), которая выполняется быстрее и потребляет меньше памяти.

Замечание: Два варианта синтаксиса используются для обеспечения совместимости с другими модулями для работы с базами данных (например MySQL). Предпочтительной является первая форма записи, использующая dbhandle в качестве первого аргумента.

Внимание

SQLite выполняет несколько запросов, разделенных точкой с запятой, что можно использовать, например, для выполнения запросов, прочитанных из файла. Однако, если хотя бы один из запросов должен возвращать набор записей (SELECT), то будет выполнен только первый запрос. Функция sqlite_exec() всегда выполняет все запросы.

При выполнении нескольких запросов, эта функция возвращает FALSE в случае ошибки, иначе возвращается либо TRUE, либо идентификатор результата запроса.

Смотрите также

sqlite_unbuffered_query() and sqlite_array_query().

Пред. | Начало | След.
sqlite_prev | Уровень выше | sqlite_rewind


sqlite_rewind

(PHP 5)

sqlite_rewind -- Переходит к первой записи

Описание

bool sqlite_rewind ( resource result )

sqlite_rewind() перемещает внутренний указатель результата запроса на первую запись. Возвращает FALSE если результат запроса не содержит записей, иначе TRUE.

Замечание: Эта функция не может быть использована с идентификаторами результатов небуферизированных запросов.

Смотрите также

sqlite_next(),
sqlite_current() и
sqlite_seek().

Пред. | Начало | След.
sqlite_query | Уровень выше | sqlite_seek


sqlite_seek

(PHP 5)

sqlite_seek -- Переходит к определенному номеру записи

Описание

bool sqlite_seek ( resource result, int rownum )

sqlite_seek() перемещает внутренний указатель результата запроса на запись с порядковым номером, заданным аргументом rownum. Нумерация записей начинается с нуля (0 соответствует первой записи). Возвращает FALSE если запись с указанным номером отсутствует, иначе TRUE.

Замечание: Эта функция не может быть использована с идентификаторами результатов небуферизированных запросов.

Смотрите также

sqlite_next(),
sqlite_current() и
sqlite_rewind().

Пред. | Начало | След.
sqlite_rewind | Уровень выше | sqlite_single_query


sqlite_single_query

(PHP 5)

sqlite_single_query -- Выполняет SQL зпрос и возвращает массив со значениями одного поля или первую запись

Описание

mixed sqlite_single_query ( resource db, string query [, bool first_row_only [, bool decode_binary]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
sqlite_seek | Уровень выше | sqlite_udf_decode_binary


sqlite_udf_decode_binary

(PHP 5)

sqlite_udf_decode_binary -- Декодирует бинарные данные, переданные в пользовательскую функцию

Описание

string sqlite_udf_decode_binary ( string data )

sqlite_udf_decode_binary() декодирует бинарные данные,
закодированные функциями sqlite_udf_encode_binary() или
sqlite_escape_string().

Эту функцию следует применять к аргументам, переданным в пользовательскую функцию, если в этих аргументах могут содержаться бинарные данные.

Декодирование не применяется к аргументам автоматически, так как это негативно сказывается на производительности. Применяйте эту функцию только там, где это действительно необходимо.

Пример 1. Пример реализации агрегатной функции max_length, способной работать с бинарными данными

<?php
$data = array(
   'one',
   'two',
   'three',
   'four',
   'five',
   'six',
   'seven',
   'eight',
   'nine',
   'ten',
   );
$db = sqlite_open(':memory:');
sqlite_query($db, "CREATE TABLE strings(a)");
foreach ($data as $str) {
    $str = sqlite_escape_string($str);
    sqlite_query($db, "INSERT INTO strings VALUES ('$str')");
}

function max_len_step(&$context, $string)
{
    $string = sqlite_udf_decode_binary($string);
    if (strlen($string) > $context) {
        $context = strlen($string);
    }
}

function max_len_finalize(&$context)
{
    return $context;
}

sqlite_create_aggregate($db, 'max_len', 'max_len_step', 'max_len_finalize');

var_dump(sqlite_array_query($db, 'SELECT max_len(a) from strings'));

?>

Смотрите также

sqlite_udf_encode_binary(),
sqlite_create_function() and
sqlite_create_aggregate().

Пред. | Начало | След.
sqlite_single_query | Уровень выше | sqlite_udf_encode_binary


sqlite_udf_encode_binary

(PHP 5)

sqlite_udf_encode_binary -- Кодирует бинарные данные, возвращаемые пользовательской функцией

Описание

string sqlite_udf_encode_binary ( string data )

sqlite_udf_encode_binary() кодирует бинарные данные data таким образом, что они могут быть возвращены в качестве результата запроса (так как библиотека libsqlite небезопасна для обработки бинарных данных).

Если данные могут быть бинарными (например, содежать NUL в середине строки или байт 0x01 в начале строки), то такие данные следует закодировать этой функцией перед тем, как возвращать их из пользовательской функции.

Кодирование не применяется к возвращаемым данным автоматически, так как это негативно сказывается на производительности. Применяйте эту функцию только там, где это действительно необходимо.

Замечание: Не используйте функцию sqlite_escape_string() для экранирования строк, возвращаемых из пользовательской функции, так ка это приведет к двойному экранированию. Используйте sqlite_udf_encode_binary() !

Смотрите также

sqlite_udf_decode_binary(),
sqlite_escape_string(),
sqlite_create_function() and
sqlite_create_aggregate().

Пред. | Начало | След.
sqlite_udf_decode_binary | Уровень выше | sqlite_unbuffered_query


sqlite_unbuffered_query

(PHP 5)

sqlite_unbuffered_query -- Выполняет запрос без буферизации результатов

Описание

resource sqlite_unbuffered_query ( resource dbhandle, string query )

resource sqlite_unbuffered_query ( string query, resource dbhandle )

sqlite_unbuffered_query() идентична функции sqlite_query() за исключением того, что записи из возвращаемого результата можно получать только последовательно, одну за другой.

Эта функция идеально подходит для тех случаев, когда нужно последовательно обработать записи из результата запроса и нет необходимости в доступе к произвольной записи результата запроса, например при выводе данных из базы данных в виде HTML таблицы.

Замечание:
    Функции  sqlite_seek(),
    sqlite_rewind(), sqlite_next(),
    sqlite_current() и
    sqlite_num_rows() не работают с результатами,
    возвращаемыми функцией sqlite_unbuffered_query().

Смотрите также

sqlite_query()

Пред. | Начало | След.
sqlite_udf_encode_binary | Уровень выше | sqlite_valid


sqlite_valid

(PHP 5)

sqlite_valid

(no version information, might be only in CVS)

SQLiteResult->valid

(no version information, might be only in CVS)

SQLiteUnbuffered->valid -- Returns whether more rows are available

Описание

bool sqlite_valid ( resource result )

Object oriented style (method):

class SQLiteResult {

bool valid ( void )

}class SQLiteUnbuffered {

bool valid ( void )

}

Finds whether more rows are available from the given result handle.

Список параметров

result

The SQLite result resource. This parameter is not required when using the object-oriented method.

Замечание: Эта функция не может быть использована с идентификаторами результатов небуферизированных запросов.

Возвращаемые значения

Returns TRUE if there are more rows available from the result handle, or FALSE otherwise.

Смотрите также

sqlite_num_rows()
sqlite_changes()

Пред. | Начало | След.
sqlite_unbuffered_query | Уровень выше | SQLite Functions (PDO_SQLITE)


Secure Shell2 Functions

Руководство по PHP
Пред. След.

CXLIV. Secure Shell2 Functions

Введение

Bindings to the libssh2 library which provide access to resources (shell, remote exec, tunneling, file transfer) on a remote machine using a secure cryptographic transport.

Установка

Windows binaries may be found at http://snaps.php.net/. To install, download php_ssh2.dll to the folder specified by your php.ini file's extension_dir directive. Enable it by adding extension=php_ssh2.dll to your php.ini and restarting your webserver.

extension_dir=c:/php5/exts/
extension=php_ssh2.dll

Linux, BSD, and other *nix variants can be compiled using the following steps:

  • Download and install OpenSSL. If you install OpenSSL via your distribution's packaging system be sure to install the development libraries as well. This will typically be a package named openssl-dev, openssl_devel, or some variation thereof.

  • Download and install libssh2. Typically this means executing the following command from the libssh2 source tree. ./configure && make all install.

  • Run the pear installer for PECL/ssh2: pear install ssh2

  • Copy ssh2.so from the directory indicated by the build process to the location specified in your php.ini file under extension_dir.

  • Add extension=ssh2.so to your php.ini

  • Restart your webserver to reload your php.ini settings.

Development Versions: There are currently no stable versions of PECL/ssh2, to force installation of the beta version of PECL/ssh2 execute: pear install ssh2-beta

Compiling PECL/ssh2 without using the PEAR command: Rather than using pear install ssh2 to automatically download and install PECL/ssh2, you may download the tarball from PECL. From the root of the unpacked tarball, run: phpize && ./configure --with-ssh2 && make to generate ssh2.so. Once built, continue the installation from step 4 above.

Дополнительная информация, такая как новый версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, могут быть найдены здесь: http://pecl.php.net/package/ssh2.

Замечание: You will need version 0.4 or greater of the libssh2 library (possibly higher, see release notes).

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

SSH2_FINGERPRINT_MD5 (integer)

Flag to ssh2_fingerprint() requesting hostkey fingerprint as an MD5 hash.

SSH2_FINGERPRINT_SHA1 (integer)

Flag to ssh2_fingerprint() requesting hostkey fingerprint as an SHA1 hash.

SSH2_FINGERPRINT_HEX (integer)

Flag to ssh2_fingerprint() requesting hostkey fingerprint as a string of hexits.

SSH2_FINGERPRINT_RAW (integer)

Flag to ssh2_fingerprint() requesting hostkey fingerprint as a raw string of 8-bit characters.

SSH2_TERM_UNIT_CHARS (integer)

Flag to ssh2_shell() specifying that width and height are provided as character sizes.

SSH2_TERM_UNIT_PIXELS (integer)

Flag to ssh2_shell() specifying that width and height are provided in pixel units.

SSH2_DEFAULT_TERM_WIDTH (integer)

Default terminal width requested by ssh2_shell().

SSH2_DEFAULT_TERM_HEIGHT (integer)

Default terminal height requested by ssh2_shell().

SSH2_DEFAULT_TERM_UNIT (integer)

Default terminal units requested by ssh2_shell().

SSH2_STREAM_STDIO (integer)

Flag to ssh2_fetch_stream() requesting STDIO subchannel.

SSH2_STREAM_STDERR (integer)

Flag to ssh2_fetch_stream() requesting STDERR subchannel.

SSH2_DEFAULT_TERMINAL (string)

Default terminal type (e.g. vt102, ansi, xterm, vanilla) requested by ssh2_shell().

Содержание
ssh2_auth_hostbased_file -- Authenticate using a public hostkey
ssh2_auth_none -- Authenticate as "none"
ssh2_auth_password -- Authenticate over SSH using a plain password
ssh2_auth_pubkey_file -- Authenticate using a public key
ssh2_connect -- Connect to an SSH server
ssh2_exec -- Execute a command on a remote server
ssh2_fetch_stream -- Fetch an extended data stream
ssh2_fingerprint -- Retreive fingerprint of remote server
ssh2_methods_negotiated -- Return list of negotiated methods
ssh2_publickey_add -- Add an authorized publickey
ssh2_publickey_init -- Initialize Publickey subsystem
ssh2_publickey_list -- List currently authorized publickeys
ssh2_publickey_remove -- Remove an authorized publickey
ssh2_scp_recv -- Request a file via SCP
ssh2_scp_send -- Send a file via SCP
ssh2_sftp_lstat -- Stat a symbolic link
ssh2_sftp_mkdir -- Create a directory
ssh2_sftp_readlink -- Return the target of a symbolic link
ssh2_sftp_realpath -- Resolve the realpath of a provided path string
ssh2_sftp_rename -- Rename a remote file
ssh2_sftp_rmdir -- Remove a directory
ssh2_sftp_stat -- Stat a file on a remote filesystem
ssh2_sftp_symlink -- Create a symlink
ssh2_sftp_unlink -- Delete a file
ssh2_sftp -- Initialize SFTP subsystem
ssh2_shell -- Request an interactive shell
ssh2_tunnel -- Open a tunnel through a remote server

Пред. | Начало | След.
PDO::sqliteCreateFunction | Уровень выше | ssh2_auth_hostbased_file


ssh2_auth_hostbased_file

(PECL)

ssh2_auth_hostbased_file -- Authenticate using a public hostkey

Description

bool ssh2_auth_hostbased_file ( resource session, string username, string hostname, string pubkeyfile, string privkeyfile [, string passphrase [, string local_username]] )

Authenticate using a public hostkey read from a file. If privkeyfile is encrypted (which it should be), the passphrase must be provided. If local_username is omitted, then the value for username will be used for it.

Пример 1. Authentication using a public hostkey

<?php
$connection = ssh2_connect('shell.example.com', 22, array('hostkey'=>'ssh-rsa'));

if (ssh2_auth_hostbased_file($connection, 'remoteusername', 'myhost.example.com',
                             '/usr/local/etc/hostkey_rsa.pub',
                             '/usr/local/etc/hostkey_rsa', 'secret',
                             'localusername')) {
  echo "Public Key Hostbased Authentication Successful\n";
} else {
  die('Public Key Hostbased Authentication Failed');
}
?>

Замечание: ssh2_auth_hostbased_file() requires libssh2 >= 0.7 and PHP/SSH2 >= 0.7

Пред. | Начало | След.
Secure Shell2 Functions | Уровень выше | ssh2_auth_none


ssh2_auth_none

(PECL)

ssh2_auth_none -- Authenticate as "none"

Description

mixed ssh2_auth_none ( resource session, string username )

Attempt "none" authentication which usually will (and should) fail. As part of the failure, this function will return an array of accepted authentication methods. If the server does accept "none" as an authentication method for username, this function will simply return TRUE.

Пример 1. Using ssh2_auth_none() to retreive a list of authentication methods.

<?php
$connection = ssh2_connect('shell.example.com', 22);

$auth_methods = ssh2_auth_none($connection, 'user');

if (in_array('password', $auth_methods)) {
  echo "Server supports password based authentication\n";
}
?>

Пред. | Начало | След.
ssh2_auth_hostbased_file | Уровень выше | ssh2_auth_password


ssh2_auth_password

(PECL)

ssh2_auth_password -- Authenticate over SSH using a plain password

Description

bool ssh2_auth_password ( resource session, string username, string password )

Authenticate over SSH using a plain password

Пример 1. Authenticating with a password

<?php
$connection = ssh2_connect('shell.example.com', 22);

if (ssh2_auth_password($connection, 'username', 'secret')) {
  echo "Authentication Successful!\n";
} else {
  die('Authentication Failed...');
}
?>

Пред. | Начало | След.
ssh2_auth_none | Уровень выше | ssh2_auth_pubkey_file


ssh2_auth_pubkey_file

(PECL)

ssh2_auth_pubkey_file -- Authenticate using a public key

Description

bool ssh2_auth_pubkey_file ( resource session, string username, string pubkeyfile, string privkeyfile [, string passphrase] )

Authenticate using a public key read from a file. If privkeyfile is encrypted (which it should be), the passphrase must be provided.

Пример 1. Authentication using a public key

<?php
$connection = ssh2_connect('shell.example.com', 22, array('hostkey'=>'ssh-rsa'));

if (ssh2_auth_pubkey_file($connection, 'username',
                          '/home/username/.ssh/id_rsa.pub',
                          '/home/username/.ssh/id_rsa', 'secret')) {
  echo "Public Key Authentication Successful\n";
} else {
  die('Public Key Authentication Failed');
}
?>

Пред. | Начало | След.
ssh2_auth_password | Уровень выше | ssh2_connect


ssh2_connect

(PECL)

ssh2_connect -- Connect to an SSH server

Description

resource ssh2_connect ( string host [, int port [, array methods [, array callbacks]]] )

Establish a connection to a remote SSH server and return a resource on success, FALSE on error.

methods may be an associative array with up to four parameters as described below.

Таблица 1. methods may be an associative array with any or all of the following parameters.

Index | Meaning | Supported Values*
kex | List of key exchange methods to advertise, comma separated in order of preference. | diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, and diffie-hellman-group-exchange-sha1
hostkey | List of hostkey methods to advertise, come separated in order of preference. | ssh-rsa and ssh-dss
client_to_server | Associative array containing crypt, compression, and message authentication code (MAC) method preferences for messages sent from client to server. |
server_to_client | Associative array containing crypt, compression, and message authentication code (MAC) method preferences for messages sent from client to server. |

* - Supported Values are dependent on methods supported by underlying library. See libssh2 documentation for additional information.

Таблица 2. client_to_server and server_to_client may be an associative array with any or all of the following parameters.

Index | Meaning | Supported Values*
crypt | List of crypto methods to advertise, comma separated in order of preference. | rijndael-cbc@lysator.liu.se, aes256-cbc, aes192-cbc, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, arcfour, and none**
comp | List of compression methods to advertise, comma separated in order of preference. | zlib and none
mac | List of MAC methods to advertise, come separated in order of preference. | hmac-sha1, hmac-sha1-96, hmac-ripemd160, hmac-ripemd160@openssh.com, and none**

Crypt and MAC method "none": For security reasons, none is disabled by the underlying libssh2 library unless explicitly enabled during build time by using the appropriate ./configure options. See documentation for the underlying library for more information.

Таблица 3. callbackss may be an associative array with any or all of the following parameters.

Index | Meaning | Prototype
ignore | Name of function to call when an SSH2_MSG_IGNORE packet is received | void ignore_cb($message)
debug | Name of function to call when an SSH2_MSG_DEBUG packet is received | void debug_cb($message, $language, $always_display)
macerror | Name of function to call when a packet is received but the message authentication code failed. If the callback returns TRUE, the mismatch will be ignored, otherwise the connection will be terminated. | bool macerror_cb($packet)
disconnect | Name of function to call when an SSH2_MSG_DISCONNECT packet is received | void disconnect_cb($reason, $message, $language)

Пример 1. Open a connection forcing 3des-cbc when sending packets, any strength aes cipher when receiving packets, no compression in either direction, and Group1 key exchange.

<?php
/* Notify the user if the server terminates the connection */
function my_ssh_disconnect($reason, $message, $language) {
  printf("Server disconnected with reason code [%d] and message: %s\n",
         $reason, $message);
}

$methods = array(
  'kex' => 'diffie-hellman-group1-sha1',
  'client_to_server' => array(
    'crypt' => '3des-cbc',
    'comp' => 'none'),
  'server_to_client' => array(
    'crypt' => 'aes256-cbc,aes192-cbc,aes128-cbc',
    'comp' => 'none'));

$callbacks = array('disconnect' => 'my_ssh_disconnect');

$connection = ssh2_connect('shell.example.com', 22, $methods, $callbacks);
if (!$connection) die('Connection failed');
?>

Once connected, the client should verify the server's hostkey using ssh2_fingerprint(), then authenticate using either password or public key.

See Also:
ssh2_fingerprint(),
ssh2_auth_none(),
ssh2_auth_password(), and
ssh2_auth_pubkey_file()

Пред. | Начало | След.
ssh2_auth_pubkey_file | Уровень выше | ssh2_exec


ssh2_exec

(PECL)

ssh2_exec -- Execute a command on a remote server

Description

resource ssh2_exec ( resource session, string command [, string pty [, array env [, int width [, int height [, int width_height_type]]]]] )

Execute a command at the remote end and allocate a channel for it. Returns a stream on success or FALSE on failure.

Пример 1. Executing a command

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$stream = ssh2_exec($connection, '/usr/local/bin/php -i');
?>

See Also:
ssh2_connect(),
ssh2_shell(), and
ssh2_tunnel()

Пред. | Начало | След.
ssh2_connect | Уровень выше | ssh2_fetch_stream


ssh2_fetch_stream

(PECL)

ssh2_fetch_stream -- Fetch an extended data stream

Description

resource ssh2_fetch_stream ( resource channel, int streamid )

Fetches an alternate substream associated with an SSH2 channel stream identified by streamid. The SSH2 protocol currently defines only one substream, STDERR, which has a substream ID of SSH2_STREAM_STDERR (defined as 1).

Пример 1. Opening a shell and retrieving the stderr stream associated with it.

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$stdio_stream = ssh2_shell($connection);
$stderr_stream = ssh2_fetch_stream($stdio_stream, SSH2_STREAM_STDERR);
?>

See Also:
ssh2_shell(),
ssh2_exec(), and
ssh2_connect()

Пред. | Начало | След.
ssh2_exec | Уровень выше | ssh2_fingerprint


ssh2_fingerprint

(PECL)

ssh2_fingerprint -- Retreive fingerprint of remote server

Description

string ssh2_fingerprint ( resource session [, int flags] )

Returns a server hostkey hash from an active session. Defaults to MD5 fingerprint encoded as ASCII hex values.

flags may be either of SSH2_FINGERPRINT_MD5 or SSH2_FINGERPRINT_SHA1 logically ORed with SSH2_FINGERPRINT_HEX or SSH2_FINGERPRINT_RAW. Defaults to SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX.

Пример 1. Checking the fingerprint against a known value

<?php
$known_host = '6F89C2F0A719B30CC38ABDF90755F2E4';

$connection = ssh2_connect('shell.example.com', 22);

$fingerprint = ssh2_fingerprint($connection,
               SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX);

if ($fingerprint != $known_host) {
  die("HOSTKEY MISMATCH!\n" .
      "Possible Man-In-The-Middle Attack?");
}
?>

Пред. | Начало | След.
ssh2_fetch_stream | Уровень выше | ssh2_methods_negotiated


ssh2_methods_negotiated

(PECL)

ssh2_methods_negotiated -- Return list of negotiated methods

Description

array ssh2_methods_negotiated ( resource session )

Returns list of negotiated methods.

Пример 1. Determining what methods were negotiated

<?php
$connection = ssh2_connect('shell.example.com', 22);
$methods = ssh2_methods_negotiated($connection);

echo "Encryption keys were negotiated using: {$methods['kex']}\n";
echo "Server identified using an {$methods['hostkey']} with ";
echo "fingerprint: " . ssh2_fingerprint($connection) . "\n";

echo "Client to Server packets will use methods:\n";
echo "\tCrypt: {$methods['client_to_server']['crypt']}\n";
echo "\tComp: {$methods['client_to_server']['comp']}\n";
echo "\tMAC: {$methods['client_to_server']['mac']}\n";

echo "Server to Client packets will use methods:\n";
echo "\tCrypt: {$methods['server_to_client']['crypt']}\n";
echo "\tComp: {$methods['server_to_client']['comp']}\n";
echo "\tMAC: {$methods['server_to_client']['mac']}\n";

?>

See Also: ssh2_connect()

Пред. | Начало | След.
ssh2_fingerprint | Уровень выше | ssh2_publickey_add


ssh2_scp_recv

(PECL)

ssh2_scp_recv -- Request a file via SCP

Description

bool ssh2_scp_recv ( resource session, string remote_file, string local_file )

Copy a file from the remote server to the local filesystem using the SCP protocol.

Пример 1. Downloading a file via SCP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

ssh2_scp_recv($connection, '/remote/filename', '/local/filename');
?>

See Also: ssh2_scp_send(), and copy()

Пред. | Начало | След.
ssh2_publickey_remove | Уровень выше | ssh2_scp_send


ssh2_scp_send

(PECL)

ssh2_scp_send -- Send a file via SCP

Description

bool ssh2_scp_send ( resource session, string local_file, string remote_file [, int create_mode] )

Copy a file from the local filesystem to the remote server using the SCP protocol. The file will be created with the mode specified by create_mode.

Пример 1. Uploading a file via SCP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

ssh2_scp_send($connection, '/local/filename', '/remote/filename', 0644);
?>

See Also: ssh2_scp_recv(), and copy()

Пред. | Начало | След.
ssh2_scp_recv | Уровень выше | ssh2_sftp_lstat


ssh2_sftp_lstat

(PECL)

ssh2_sftp_lstat -- Stat a symbolic link

Description

array ssh2_sftp_lstat ( resource sftp, string path )

Stats a symbolic link on the remote filesystem without following the link. This function is similar to using the lstat() function with the ssh2.sftp:// wrapper in PHP5 and returns the same values. See the documentation for stat() for details on the values which may be returned.

Пример 1. Stating a symbolic link via SFTP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);
$statinfo = ssh2_lstat($sftp, '/path/to/symlink');

$filesize = $statinfo['size'];
$group = $statinfo['gid'];
$owner = $statinfo['uid'];
$atime = $statinfo['atime'];
$mtime = $statinfo['mtime'];
$mode = $statinfo['mode'];
?>

See Also:
ssh2_sftp_stat(),
lstat(), and
stat()

Пред. | Начало | След.
ssh2_scp_send | Уровень выше | ssh2_sftp_mkdir


ssh2_sftp_mkdir

(PECL)

ssh2_sftp_mkdir -- Create a directory

Description

bool ssh2_sftp_mkdir ( resource sftp, string dirname [, int mode [, bool recursive]] )

Creates a directory on the remote file server with permissions set to mode. If recursive is TRUE any parent directories required for dirname will be automatically created as well. This function is similar to using mkdir() with the ssh2.sftp:// wrapper.

Пример 1. Creating a directory on a remote server

<?php
$connection = ssh2_connet('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_mkdir($sftp, '/home/username/newdir');
/* Or:  mkdir("ssh2.sftp://$sftp/home/username/newdir"); */
?>

See Also: mkdir(), and ssh2_sftp_rmdir()

Пред. | Начало | След.
ssh2_sftp_lstat | Уровень выше | ssh2_sftp_readlink


ssh2_sftp_readlink

(PECL)

ssh2_sftp_readlink -- Return the target of a symbolic link

Description

string ssh2_sftp_readlink ( resource sftp, string link )

Returns the target of a symbolic link.

Пример 1. Reading a symbolic link

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

$target = ssh2_sftp_readlink($sftp, '/tmp/mysql.sock');
/* $target is now (e.g.): '/var/run/mysql.sock' */
?>

See Also: readlink(), and ssh2_sftp_symlink()

Пред. | Начало | След.
ssh2_sftp_mkdir | Уровень выше | ssh2_sftp_realpath


ssh2_sftp_realpath

(PECL)

ssh2_sftp_realpath -- Resolve the realpath of a provided path string

Description

string ssh2_sftp_realpath ( resource sftp, string filename )

Translates filename into the effective real path on the remote filesystem.

Пример 1. Resolving a pathname

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

$realpath = ssh2_sftp_realpath($sftp, '/home/username/../../../..//./usr/../etc/passwd');
/* $realpath is now: '/etc/passwd' */
?>

See Also:
realpath(), and
ssh2_sftp_symlink()
ssh2_sftp_readlink()

Пред. | Начало | След.
ssh2_sftp_readlink | Уровень выше | ssh2_sftp_rename


ssh2_sftp_rename

(PECL)

ssh2_sftp_rename -- Rename a remote file

Description

bool ssh2_sftp_rename ( resource sftp, string from, string to )

Renames a file on the remote filesystem.

Пример 1. Renaming a file via sftp

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_rename($sftp, '/home/username/oldname', '/home/username/newname');
?>

See Also: rename()

Пред. | Начало | След.
ssh2_sftp_realpath | Уровень выше | ssh2_sftp_rmdir


ssh2_sftp_rmdir

(PECL)

ssh2_sftp_rmdir -- Remove a directory

Description

bool ssh2_sftp_rmdir ( resource sftp, string dirname )

Removes a directory from the remote file server. This function is similar to using rmdir() with the ssh2.sftp:// wrapper.

Пример 1. Removing a directory on a remote server

<?php
$connection = ssh2_connet('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_rmdir($sftp, '/home/username/deltodel');
/* Or:  rmdir("ssh2.sftp://$sftp/home/username/dirtodel"); */
?>

See Also: rmdir(), and ssh2_sftp_mkdir()

Пред. | Начало | След.
ssh2_sftp_rename | Уровень выше | ssh2_sftp_stat


ssh2_sftp_stat

(PECL)

ssh2_sftp_stat -- Stat a file on a remote filesystem

Description

array ssh2_sftp_stat ( resource sftp, string path )

Stats a file on the remote filesystem following any symbolic links. This function is similar to using the stat() function with the ssh2.sftp:// wrapper in PHP5 and returns the same values. See the documentation for stat() for details on the values which may be returned.

Пример 1. Stating a file via SFTP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);
$statinfo = ssh2_stat($sftp, '/path/to/symlink');

$filesize = $statinfo['size'];
$group = $statinfo['gid'];
$owner = $statinfo['uid'];
$atime = $statinfo['atime'];
$mtime = $statinfo['mtime'];
$mode = $statinfo['mode'];
?>

See Also:
ssh2_sftp_lstat(),
lstat(), and
stat()

Пред. | Начало | След.
ssh2_sftp_rmdir | Уровень выше | ssh2_sftp_symlink


ssh2_sftp_symlink

(PECL)

ssh2_sftp_symlink -- Create a symlink

Description

bool ssh2_sftp_symlink ( resource sftp, string target, string link )

Creates a symbolic link named link on the remote filesystem pointing to target.

Пример 1. Creating a symbolic link

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_symlink($sftp, '/var/run/mysql.sock', '/tmp/mysql.sock');
?>

See Also: symlink(), and ssh2_sftp_readlink()

Пред. | Начало | След.
ssh2_sftp_stat | Уровень выше | ssh2_sftp_unlink


ssh2_sftp_unlink

(PECL)

ssh2_sftp_unlink -- Delete a file

Description

bool ssh2_sftp_unlink ( resource sftp, string filename )

Deletes a file on the remote filesystem

Пример 1. Deleting a file

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_unlink($sftp, '/home/username/stale_file');
?>

See Also: unlink()

Пред. | Начало | След.
ssh2_sftp_symlink | Уровень выше | ssh2_sftp


ssh2_sftp

(PECL)

ssh2_sftp -- Initialize SFTP subsystem

Description

resource ssh2_sftp ( resource session )

Request the SFTP subsystem from an already connected SSH2 server.

This method returns an SSH2 SFTP resource for use with all other ssh2_sftp_*() methods and the ssh2.sftp:// fopen wrapper.

Пример 1. Opening a file via SFTP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);

$stream = fopen("ssh2.sftp://$sftp/path/to/file", 'r');
?>

See Also: ssh2_scp_send(), and ssh2_scp_recv()

Пред. | Начало | След.
ssh2_sftp_unlink | Уровень выше | ssh2_shell


ssh2_shell

(PECL)

ssh2_shell -- Request an interactive shell

Description

resource ssh2_shell ( resource session [, string term_type [, array env [, int width [, int height [, int width_height_type]]]]] )

Open a shell at the remote end and allocate a stream for it. term_type should correspond to one of the entries in the target system's /etc/termcap file and defaults to vanilla. env may be passed as an associative array of name/value pairs to set in the target environment.

width, and height define the width and height of the virtual terminal allocated for the shell process. width_height_type should be one of SSH2_TERM_UNIT_CHARS or SSH2_TERM_UNIT_PIXELS.

Пример 1. Executing a command

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$stream = ssh2_shell($connection, 'vt102', null, 80, 24, SSH2_TERM_UNIT_CHARS);
?>

See Also:
ssh2_exec(),
ssh2_tunnel(), and
ssh2_fetch_stream()

Пред. | Начало | След.
ssh2_sftp | Уровень выше | ssh2_tunnel


ssh2_tunnel

(PECL)

ssh2_tunnel -- Open a tunnel through a remote server

Description

resource ssh2_tunnel ( resource session, string host, int port )

Open a socket stream to an arbitrary host/port by way of the currently connected SSH server.

Пример 1. Opening a tunnel to an arbitrary host

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_pubkey_file($connection, 'username', 'id_dsa.pub', 'id_dsa');

$tunnel = ssh2_tunnel($connection, '10.0.0.101', 12345);
?>

See Also: ssh2_connect(), and fsockopen()

Пред. | Начало | След.
ssh2_shell | Уровень выше | Stream Functions


Stream Functions

Руководство по PHP
Пред. След.

CXLV. Stream Functions

Введение

Streams were introduced with PHP 4.3.0 as a way of generalizing file, network, data compression, and other operations which share a common set of functions and uses. In its simplest definition, a stream is a resource object which exhibits streamable behavior. That is, it can be read from or written to in a linear fashion, and may be able to fseek() to an arbitrary locations within the stream.

A wrapper is additional code which tells the stream how to handle specific protocols/encodings. For example, the http wrapper knows how to translate a URL into an HTTP/1.0 request for a file on a remote server. There are many wrappers built into PHP by default (See Прил. M), and additional, custom wrappers may be added either within a PHP script using stream_wrapper_register(), or directly from an extension using the API Reference in Гл. 44. Because any variety of wrapper may be added to PHP, there is no set limit on what can be done with them. To access the list of currently registered wrappers, use stream_get_wrappers().

A stream is referenced as: scheme://target

  • scheme(string) - The name of the wrapper to be used. Examples include: file, http, https, ftp, ftps, compress.zlib, compress.bz2, and php. See Прил. M for a list of PHP builtin wrappers. If no wrapper is specified, the function default is used (typically file://).

  • target - Depends on the wrapper used. For filesystem related streams this is typically a path and filename of the desired file. For network related streams this is typically a hostname, often with a path appended. Again, see Прил. M for a description of targets for builtin streams.

Stream Filters

A filter is a final piece of code which may perform operations on data as it is being read from or written to a stream. Any number of filters may be stacked onto a stream. Custom filters can be defined in a PHP script using stream_filter_register() or in an extension using the API Reference in Гл. 44. To access the list of currently registered filters, use stream_get_filters().

Stream Contexts

A context is a set of parameters and wrapper specific options which modify or enhance the behavior of a stream. Contexts are created using stream_context_create() and can be passed to most filesystem related stream creation functions (i.e. fopen(), file(), file_get_contents(), etc...).

Options can be specified when calling stream_context_create(), or later using stream_context_set_option(). A list of wrapper specific options can be found with the list of built-in wrappers (See Прил. M).

In addition, parameters may be set on a context using stream_context_set_params(). Currently the only context parameter supported by PHP is notification. The value of this parameter must be the name of a function to be called when an event occurs on a stream. The notification function called during an event should accept the following six parameters:

void my_notifier ( int notification_code, int severity, string message, int message_code, int bytes_transferred, int bytes_max )

notification_code and severity are numerical values which correspond to the STREAM_NOTIFY_* constants listed below. If a descriptive message is available from the stream, message and message_code will be populated with the appropriate values. The meaning of these values is dependent on the specific wrapper in use. bytes_transferred and bytes_max will be populated when applicable.

Установка

Streams are an integral part of PHP as of version 4.3.0. No steps are required to enable them.

Stream Classes

User designed wrappers can be registered via stream_wrapper_register(), using the class definition shown on that manual page.

class php_user_filter is predefined and is an abstract baseclass for use with user defined filters. See the manual page for stream_filter_register() for details on implementing user defined filters.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

Constant | Description
STREAM_FILTER_READ * | Used with stream_filter_append() and stream_filter_prepend() to indicate that the specified filter should only be applied when reading
STREAM_FILTER_WRITE * | Used with stream_filter_append() and stream_filter_prepend() to indicate that the specified filter should only be applied when writing
STREAM_FILTER_ALL * | This constant is equivalent to STREAM_FILTER_READ | STREAM_FILTER_WRITE
PSFS_PASS_ON * | Return Code indicating that the userspace filter returned buckets in $out.
PSFS_FEED_ME * | Return Code indicating that the userspace filter did not return buckets in $out (i.e. No data available).
PSFS_ERR_FATAL * | Return Code indicating that the userspace filter encountered an unrecoverable error (i.e. Invalid data received).
STREAM_USE_PATH | Flag indicating if the stream used the include path.
STREAM_REPORT_ERRORS | Flag indicating if the wrapper is responsible for raising errors using trigger_error() during opening of the stream. If this flag is not set, you should not raise any errors.
STREAM_CLIENT_ASYNC_CONNECT * | Open client socket asynchronously. This option must be used together with the STREAM_CLIENT_CONNECT flag. Used with stream_socket_client().
STREAM_CLIENT_CONNECT * | Open client socket connection. Client sockets should always include this flag. Used with stream_socket_client().
STREAM_CLIENT_PERSISTENT * | Client socket opened with stream_socket_client() should remain persistent between page loads.
STREAM_SERVER_BIND * | Tells a stream created with stream_socket_server() to bind to the specified target. Server sockets should always include this flag.
STREAM_SERVER_LISTEN * | Tells a stream created with stream_socket_server() and bound using the STREAM_SERVER_BIND flag to start listening on the socket. Connection-orientated transports (such as TCP) must use this flag, otherwise the server socket will not be enabled. Using this flag for connect-less transports (such as UDP) is an error.
STREAM_NOTIFY_RESOLVE * | A remote address required for this stream has been resolved, or the resolution failed. See severity for an indication of which happened.
STREAM_NOTIFY_CONNECT | A connection with an external resource has been established.
STREAM_NOTIFY_AUTH_REQUIRED | Additional authorization is required to access the specified resource. Typical issued with severity level of STREAM_NOTIFY_SEVERITY_ERR.
STREAM_NOTIFY_MIME_TYPE_IS | The mime-type of resource has been identified, refer to message for a description of the discovered type.
STREAM_NOTIFY_FILE_SIZE_IS | The size of the resource has been discovered.
STREAM_NOTIFY_REDIRECTED | The external resource has redirected the stream to an alternate location. Refer to message.
STREAM_NOTIFY_PROGRESS | Indicates current progress of the stream transfer in bytes_transferred and possibly bytes_max as well.
STREAM_NOTIFY_COMPLETED * | There is no more data available on the stream.
STREAM_NOTIFY_FAILURE | A generic error occurred on the stream, consult message and message_code for details.
STREAM_NOTIFY_AUTH_RESULT | Authorization has been completed (with or without success).
STREAM_NOTIFY_SEVERITY_INFO | Normal, non-error related, notification.
STREAM_NOTIFY_SEVERITY_WARN | Non critical error condition. Processing may continue.
STREAM_NOTIFY_SEVERITY_ERR | A critical error occurred. Processing cannot continue.
STREAM_IPPROTO_ICMP + | Provides a ICMP socket.
STREAM_IPPROTO_IP + | Provides a IP socket.
STREAM_IPPROTO_RAW + | Provides a RAW socket.
STREAM_IPPROTO_TCP + | Provides a TCP socket.
STREAM_IPPROTO_UDP + | Provides a UDP socket.
STREAM_PF_INET + | Internet Protocol Version 4 (IPv4).
STREAM_PF_INET6 + | Internet Protocol Version 6 (IPv6).
STREAM_PF_UNIX + | Unix system internal protocols.
STREAM_SOCK_DGRAM + | Provides datagrams, which are connectionless messages (UDP, for example).
STREAM_SOCK_RAW + | Provides a raw socket, which provides access to internal network protocols and interfaces. Usually this type of socket is just available to the root user.
STREAM_SOCK_RDM + | Provides a RDM (Reliably-delivered messages) socket.
STREAM_SOCK_SEQPACKET + | Provides a sequenced packet stream socket.
STREAM_SOCK_STREAM + | Provides sequenced, two-way byte streams with a transmission mechanism for out-of-band data (TCP, for example).

Замечание: The constants marked with * are just available since PHP 5.0.0.

Замечание: The constants marked with + are available since PHP 5.1.0 and are meant to be used with stream_socket_pair(). Please note that some of these constants might not be available in your system.

Stream Errors

As with any file or socket related function, an operation on a stream may fail for a variety of normal reasons (i.e.: Unable to connect to remote host, file not found, etc...). A stream related call may also fail because the desired stream is not registered on the running system. See the array returned by stream_get_wrappers() for a list of streams supported by your installation of PHP. As with most PHP internal functions if a failure occurs an E_WARNING message will be generated describing the nature of the error.

Примеры

Пример 1. Using file_get_contents() to retrieve data from multiple sources

<?php
/* Read local file from /home/bar */
$localfile = file_get_contents("/home/bar/foo.txt");

/* Identical to above, explicitly naming FILE scheme */
$localfile = file_get_contents("file:///home/bar/foo.txt");

/* Read remote file from www.example.com using HTTP */
$httpfile  = file_get_contents("http://www.example.com/foo.txt");

/* Read remote file from www.example.com using HTTPS */
$httpsfile = file_get_contents("https://www.example.com/foo.txt");

/* Read remote file from ftp.example.com using FTP */
$ftpfile   = file_get_contents("ftp://user:pass@ftp.example.com/foo.txt");

/* Read remote file from ftp.example.com using FTPS */
$ftpsfile  = file_get_contents("ftps://user:pass@ftp.example.com/foo.txt");
?>

Пример 2. Making a POST request to an https server

<?php
/* Send POST request to https://secure.example.com/form_action.php
 * Include form elements named "foo" and "bar" with dummy values
 */

$sock = fsockopen("ssl://secure.example.com", 443, $errno, $errstr, 30);
if (!$sock) die("$errstr ($errno)\n");

$data = "foo=" . urlencode("Value for Foo") . "&bar=" . urlencode("Value for Bar");

fwrite($sock, "POST /form_action.php HTTP/1.0\r\n");
fwrite($sock, "Host: secure.example.com\r\n");
fwrite($sock, "Content-type: application/x-www-form-urlencoded\r\n");
fwrite($sock, "Content-length: " . strlen($data) . "\r\n");
fwrite($sock, "Accept: */*\r\n");
fwrite($sock, "\r\n");
fwrite($sock, "$data\r\n");
fwrite($sock, "\r\n");

$headers = "";
while ($str = trim(fgets($sock, 4096)))
  $headers .= "$str\n";

echo "\n";

$body = "";
while (!feof($sock))
  $body .= fgets($sock, 4096);

fclose($sock);
?>

Пример 3. Writing data to a compressed file

<?php
/* Create a compressed file containing an arbitrarty string
 * File can be read back using compress.zlib stream or just
 * decompressed from the command line using 'gzip -d foo-bar.txt.gz'
 */
$fp = fopen("compress.zlib://foo-bar.txt.gz", "wb");
if (!$fp) die("Unable to create file.");

fwrite($fp, "This is a test.\n");

fclose($fp);
?>

Содержание
stream_bucket_append -- Append bucket to brigade
stream_bucket_make_writeable -- Return a bucket object from the brigade for operating on
stream_bucket_new -- Create a new bucket for use on the current stream
stream_bucket_prepend -- Prepend bucket to brigade
stream_context_create -- Create a streams context
stream_context_get_default -- Retreive the default streams context
stream_context_get_options -- Retrieve options for a stream/wrapper/context
stream_context_set_option -- Sets an option for a stream/wrapper/context
stream_context_set_params -- Set parameters for a stream/wrapper/context
stream_copy_to_stream -- Copies data from one stream to another
stream_filter_append -- Attach a filter to a stream
stream_filter_prepend -- Attach a filter to a stream
stream_filter_register -- Register a stream filter implemented as a PHP class derived from php_user_filter
stream_filter_remove -- Remove a filter from a stream
stream_get_contents -- Reads remainder of a stream into a string
stream_get_filters -- Retrieve list of registered filters
stream_get_line -- Gets line from stream resource up to a given delimiter
stream_get_meta_data -- Retrieves header/meta data from streams/file pointers
stream_get_transports -- Retrieve list of registered socket transports
stream_get_wrappers -- Retrieve list of registered streams
stream_register_wrapper -- Alias of stream_wrapper_register()
stream_select -- Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec
stream_set_blocking -- Set blocking/non-blocking mode on a stream
stream_set_timeout -- Set timeout period on a stream
stream_set_write_buffer -- Sets file buffering on the given stream
stream_socket_accept -- Accept a connection on a socket created by stream_socket_server()
stream_socket_client -- Open Internet or Unix domain socket connection
stream_socket_enable_crypto -- Turns encryption on/off on an already connected socket
stream_socket_get_name -- Retrieve the name of the local or remote sockets
stream_socket_pair -- Creates a pair of connected, indistinguishable socket streams
stream_socket_recvfrom -- Receives data from a socket, connected or not
stream_socket_sendto -- Sends a message to a socket, whether it is connected or not
stream_socket_server -- Create an Internet or Unix domain server socket
stream_wrapper_register -- Register a URL wrapper implemented as a PHP class
stream_wrapper_restore -- Restores a previously unregistered built-in wrapper
stream_wrapper_unregister -- Unregister a URL wrapper

Пред. | Начало | След.
ssh2_tunnel | Уровень выше | stream_bucket_append


stream_context_create

(PHP 4 >= 4.3.0, PHP 5)

stream_context_create -- Create a streams context

Description

resource stream_context_create ( [array options] )

Creates and returns a stream context with any options supplied in options preset.

options must be an associative array of associative arrays in the format $arr['wrapper']['option'] = $value. It defaults to an empty array.

Пример 1. Using stream_context_create()

<?php
$opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar\r\n"
  )
);

$context = stream_context_create($opts);

/* Sends an http request to www.example.com
   with additional headers shown above */
$fp = fopen('http://www.example.com', 'r', false, $context);
fpassthru($fp);
fclose($fp);
?>

See also stream_context_set_option(), and Listing of supported wrappers with context options (Прил. M).

Пред. | Начало | След.
stream_bucket_prepend | Уровень выше | stream_context_get_default


stream_context_get_default

(PHP 5 >= 5.1.0RC1)

stream_context_get_default -- Retreive the default streams context

Description

resource stream_context_get_default ( [array options] )

Returns the default stream context which is used whenever file operations (fopen(), file_get_contents(), etc...) are called without a context parameter. Options for the default context can optionally be specified with this function using the same syntax as stream_context_create().

options must be an associative array of associative arrays in the format $arr['wrapper']['option'] = $value.

Пример 1. Using stream_context_get_default()

<?php
$default_opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar",
    'proxy'=>"tcp://10.54.1.39:8000"
  )
);

$alternate_opts = array(
  'http'=>array(
    'method'=>"POST",
    'header'=>"Content-type: application/x-www-form-urlencoded\r\n" .
              "Content-length: " . strlen("baz=bomb"),
    'content'=>"baz=bomb"
  )
);

$default = stream_context_get_default($default_opts);
$alternate = stream_context_create($alternate_opts);

/* Sends a regular GET request to proxy server at 10.54.1.39
 * For www.example.com using context options specified in $default_opts
 */
readfile('http://www.example.com');

/* Sends a POST request directly to www.example.com
 * Using context options specified in $alternate_opts
 */
readfile('http://www.example.com', false, $alternate);

?>

See also stream_context_create(), and Listing of supported wrappers with context options (Прил. M).

Пред. | Начало | След.
stream_context_create | Уровень выше | stream_context_get_options


stream_context_get_options

(PHP 4 >= 4.3.0, PHP 5)

stream_context_get_options -- Retrieve options for a stream/wrapper/context

Description

array stream_context_get_options ( resource stream_or_context )

Returns an array of options on the specified stream or context.

Пред. | Начало | След.
stream_context_get_default | Уровень выше | stream_context_set_option


stream_context_set_option

(PHP 4 >= 4.3.0, PHP 5)

stream_context_set_option -- Sets an option for a stream/wrapper/context

Description

bool stream_context_set_option ( resource stream_or_context, string wrapper, string option, mixed value )

bool stream_context_set_option ( resource stream_or_context, array options )

Sets an option on the specified context. value is set to option for wrapper

Пред. | Начало | След.
stream_context_get_options | Уровень выше | stream_context_set_params


stream_context_set_params

(PHP 4 >= 4.3.0, PHP 5)

stream_context_set_params -- Set parameters for a stream/wrapper/context

Description

bool stream_context_set_params ( resource stream_or_context, array params )

params should be an associative array of the structure: $params['paramname'] = "paramvalue";.

Таблица 1. Parameters

Parameters | Purpose
notification | Name of user-defined callback function to be called whenever a stream triggers a notification.

Пред. | Начало | След.
stream_context_set_option | Уровень выше | stream_copy_to_stream


stream_copy_to_stream

(PHP 5)

stream_copy_to_stream -- Copies data from one stream to another

Описание

int stream_copy_to_stream ( resource source, resource dest [, int maxlength [, int offset]] )

Makes a copy of up to maxlength bytes of data from the current position (or from the offset position, if specified) in source to dest. If maxlength is not specified, all remaining content in source will be copied.

Список параметров

source

The source stream

dest

The destination stream

maxlength

Maximum bytes to copy

offset

The offset where to start to copy data

Возвращаемые значения

Returns the total count of bytes copied.

Список изменений

Версия | Описание
5.1.0 | Added the offset parameter

Примеры

Пример 1. A stream_copy_to_stream() example

<?php
$src = fopen('http://www.example.com', 'r');
$dest1 = fopen('first1k.txt', 'w');
$dest2 = fopen('remainder.txt', 'w');

echo stream_copy_to_stream($src, $dest1, 1024) . " bytes copied to first1k.txt\n";
echo stream_copy_to_stream($src, $dest2) . " bytes copied to remainder.txt\n";

?>

Смотрите также

copy()

Пред. | Начало | След.
stream_context_set_params | Уровень выше | stream_filter_append


stream_filter_append

(PHP 4 >= 4.3.0, PHP 5)

stream_filter_append -- Attach a filter to a stream

Description

resource stream_filter_append ( resource stream, string filtername [, int read_write [, mixed params]] )

Adds filtername to the list of filters attached to stream. This filter will be added with the specified params to the end of the list and will therefore be called last during stream operations. To add a filter to the beginning of the list, use stream_filter_prepend().

By default, stream_filter_append() will attach the filter to the read filter chain if the file was opened for reading (i.e. File Mode: r, and/or +). The filter will also be attached to the write filter chain if the file was opened for writing (i.e. File Mode: w, a, and/or +). STREAM_FILTER_READ, STREAM_FILTER_WRITE, and/or STREAM_FILTER_ALL can also be passed to the read_write parameter to override this behavior.

As of PHP 5.1.0, this function returns a resource which can be used to refer to this filter instance during a call to stream_filter_remove(). Prior to PHP 5.1.0, this function returns TRUE on success or FALSE on failure.

Пример 1. Controlling where filters are applied

<?php
/* Open a test file for reading and writing */
$fp = fopen("test.txt", "rw");

/* Apply the ROT13 filter to the
 * write filter chain, but not the
 * read filter chain */
stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);

/* Write a simple string to the file
 * it will be ROT13 transformed on the
 * way out */
fwrite($fp, "This is a test\n");

/* Back up to the beginning of the file */
rewind($fp);

/* Read the contents of the file back out.
 * Had the filter been applied to the
 * read filter chain as well, we would see
 * the text ROT13ed back to its original state */
fpassthru($fp);

fclose($fp);

/* Expected Output
   ---------------

Guvf vf n grfg

 */
?>

When using custom (user) filters: stream_filter_register() must be called first in order to register the desired user filter to filtername.

Замечание: Stream data is read from resources (both local and remote) in chunks, with any unconsumed data kept in internal buffers. When a new filter is appended to a stream, data in the internal buffers is processed through the new filter at that time. This differs from the behavior of stream_filter_prepend().

See also
stream_filter_register(),
stream_filter_prepend(), and
stream_get_filters().

Пред. | Начало | След.
stream_copy_to_stream | Уровень выше | stream_filter_prepend


stream_filter_prepend

(PHP 4 >= 4.3.0, PHP 5)

stream_filter_prepend -- Attach a filter to a stream

Description

resource stream_filter_prepend ( resource stream, string filtername [, int read_write [, mixed params]] )

Adds filtername to the list of filters attached to stream. This filter will be added with the specified params to the beginning of the list and will therefore be called first during stream operations. To add a filter to the end of the list, use stream_filter_append().

By default, stream_filter_prepend() will attach the filter to the read filter chain if the file was opened for reading (i.e. File Mode: r, and/or +). The filter will also be attached to the write filter chain if the file was opened for writing (i.e. File Mode: w, a, and/or +). STREAM_FILTER_READ, STREAM_FILTER_WRITE, and/or STREAM_FILTER_ALL can also be passed to the read_write parameter to override this behavior. See stream_filter_append() for an example of using this parameter.

As of PHP 5.1.0, this function returns a resource which can be used to refer to this filter instance during a call to stream_filter_remove(). Prior to PHP 5.1.0, this function returns TRUE on success or FALSE on failure.

When using custom (user) filters: stream_filter_register() must be called first in order to register the desired user filter to filtername.

Замечание: Stream data is read from resources (both local and remote) in chunks, with any unconsumed data kept in internal buffers. When a new filter is prepended to a stream, data in the internal buffers, which has already been processed through other filters will not be reprocessed through the new filter at that time. This differs from the behavior of stream_filter_append().

See also stream_filter_register(), and stream_filter_append().

Пред. | Начало | След.
stream_filter_append | Уровень выше | stream_filter_register


stream_filter_register

(PHP 5)

stream_filter_register -- Register a stream filter implemented as a PHP class derived from php_user_filter

Description

bool stream_filter_register ( string filtername, string classname )

stream_filter_register() allows you to implement your own filter on any registered stream used with all the other filesystem functions (such as fopen(), fread() etc.).

To implement a filter, you need to define a class as an extension of php_user_filter with a number of member functions as defined below. When performing read/write operations on the stream to which your filter is attached, PHP will pass the data through your filter (and any other filters attached to that stream) so that the data may be modified as desired. You must implement the methods exactly as described below - doing otherwise will lead to undefined behaviour.

stream_filter_register() will return FALSE if the filtername is already defined.

int filter ( resource in, resource out, int &consumed, bool closing )

This method is called whenever data is read from or written to the attached stream (such as with fread() or fwrite()). in is a resource pointing to a bucket brigade which contains one or more bucket objects containing data to be filtered. out is a resource pointing to a second bucket brigade into which your modified buckets should be placed. consumed, which must always be declared by reference, should be incremented by the length of the data which your filter reads in and alters. In most cases this means you will increment consumed by $bucket->datalen for each $bucket. If the stream is in the process of closing (and therefore this is the last pass through the filterchain), the closing parameter will be set to TRUE The filter method must return one of three values upon completion.

Return Value | Meaning
PSFS_PASS_ON | Filter processed successfully with data available in the out bucket brigade.
PSFS_FEED_ME | Filter processed successfully, however no data was available to return. More data is required from the stream or prior filter.
PSFS_ERR_FATAL (default) | The filter experienced an unrecoverable error and cannot continue.

bool onCreate ( void )

This method is called during instantiation of the filter class object. If your filter allocates or initializes any other resources (such as a buffer), this is the place to do it. Your implementation of this method should return FALSE on failure, or TRUE on success.

When your filter is first instantiated, and yourfilter->onCreate() is called, a number of properties will be available as shown in the table below.

Property | Contents
FilterClass->filtername | A string containing the name the filter was instantiated with. Filters may be registered under multiple names or under wildcards. Use this property to determine which name was used.
FilterClass->params | The contents of the params parameter passed to stream_filter_append() or stream_filter_prepend().

void onClose ( void )

This method is called upon filter shutdown (typically, this is also during stream shutdown), and is executed after the flush method is called. If any resources were allocated or initialzed during onCreate this would be the time to destroy or dispose of them.

The example below implements a filter named strtoupper on the foo-bar.txt stream which will capitalize all letter characters written to/read from that stream.

Пример 1. Filter for capitalizing characters on foo-bar.txt stream

<?php

/* Define our filter class */
class strtoupper_filter extends php_user_filter {
  function filter($in, $out, &$consumed, $closing)
  {
    while ($bucket = stream_bucket_make_writeable($in)) {
      $bucket->data = strtoupper($bucket->data);
      $consumed += $bucket->datalen;
      stream_bucket_append($out, $bucket);
    }
    return PSFS_PASS_ON;
  }
}

/* Register our filter with PHP */
stream_filter_register("strtoupper", "strtoupper_filter")
    or die("Failed to register filter");

$fp = fopen("foo-bar.txt", "w");

/* Attach the registered filter to the stream just opened */
stream_filter_append($fp, "strtoupper");

fwrite($fp, "Line1\n");
fwrite($fp, "Word - 2\n");
fwrite($fp, "Easy As 123\n");

fclose($fp);

/* Read the contents back out
 */
readfile("foo-bar.txt");

?>

Результат выполнения данного примера:

LINE1
WORD - 2
EASY AS 123

Пример 2. Registering a generic filter class to match multiple filter names.

<?php

/* Define our filter class */
class string_filter extends php_user_filter {
  var $mode;

  function filter($in, $out, &$consumed, $closing)
  {
    while ($bucket = stream_bucket_make_writeable($in)) {
      if ($this->mode == 1) {
        $bucket->data = strtoupper($bucket->data);
      } elseif ($this->mode == 0) {
        $bucket->data = strtolower($bucket->data);
      }

      $consumed += $bucket->datalen;
      stream_bucket_append($out, $bucket);
    }
    return PSFS_PASS_ON;
  }

  function onCreate()
  {
    if ($this->filtername == 'str.toupper') {
      $this->mode = 1;
    } elseif ($this->filtername == 'str.tolower') {
      $this->mode = 0;
    } else {
      /* Some other str.* filter was asked for,
         report failure so that PHP will keep looking */
      return false;
    }

    return true;
  }
}

/* Register our filter with PHP */
stream_filter_register("str.*", "string_filter")
    or die("Failed to register filter");

$fp = fopen("foo-bar.txt", "w");

/* Attach the registered filter to the stream just opened
   We could alternately bind to str.tolower here */
stream_filter_append($fp, "str.toupper");

fwrite($fp, "Line1\n");
fwrite($fp, "Word - 2\n");
fwrite($fp, "Easy As 123\n");

fclose($fp);

/* Read the contents back out
 */
readfile("foo-bar.txt");
?>

Результат выполнения данного примера:

LINE1
WORD - 2
EASY AS 123

See also
stream_wrapper_register(),
stream_filter_prepend(), and
stream_filter_append().

Пред. | Начало | След.
stream_filter_prepend | Уровень выше | stream_filter_remove


stream_filter_remove

(PHP 5 >= 5.1.0RC1)

stream_filter_remove -- Remove a filter from a stream

Description

bool stream_filter_remove ( resource stream_filter )

Removes a stream filter previously added to a stream with stream_filter_prepend() or stream_filter_append(). Any data remaining in the filter's internal buffer will be flushed through to the next filter before removing it.

Пример 1. Dynamicly refiltering a stream

<?php
/* Open a test file for reading and writing */
$fp = fopen("test.txt", "rw");

$rot13_filter = stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);
fwrite($fp, "This is ");
stream_filter_remove($rot13_filter);
fwrite($fp, "a test\n");

rewind($fp);
fpassthru($fp);
fclose($fp);

/* Expected Output
   ---------------

Guvf vf a test

 */
?>

See also
stream_filter_register(),
stream_filter_append(), and
stream_filter_prepend().

Пред. | Начало | След.
stream_filter_register | Уровень выше | stream_get_contents


stream_get_contents

(PHP 5)

stream_get_contents -- Reads remainder of a stream into a string

Description

string stream_get_contents ( resource handle [, int maxlength [, int offset]] )

Identical to file_get_contents(), except that stream_get_contents() operates on an already open stream resource and returns the remaining contents in a string, up to maxlength bytes and starting at the specified offset.

Список параметров

handle (resource)

A stream resource (e.g. returned from fopen())

maxlength (integer)

The maximum bytes to read. Defaults to -1 (read all the remaining buffer).

offset (integer)

Seek to the specified offset before reading. Added in PHP 5.1.0.

Возвращаемые значения

Returns a string, or FALSE on failure.

Примеры

Пример 1. stream_get_contents() example

<?php

if ($stream = fopen('http://www.example.com', 'r')) {
    // print all the page starting at the offset 10
    echo stream_get_contents($stream, -1, 10);

    fclose($stream);
}

if ($stream = fopen('http://www.example.net', 'r')) {
    // print the first 5 bytes
    echo stream_get_contents($stream, 5);

    fclose($stream);
}

?>

Смотрите также

fgets()
fread()
fpassthru()

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Пред. | Начало | След.
stream_filter_remove | Уровень выше | stream_get_filters


stream_get_filters

(PHP 5)

stream_get_filters -- Retrieve list of registered filters

Description

array stream_get_filters ( void )

Returns an indexed array containing the name of all stream filters available on the running system.

Пример 1. Using stream_get_filters()

<?php
$streamlist = stream_get_filters();
print_r($streamlist);
?>

Output will be similar to the following. Note: there may be more or fewer filters in your version of PHP.

Array (
  [0] => string.rot13
  [1] => string.toupper
  [2] => string.tolower
  [3] => string.base64
  [4] => string.quoted-printable
)

See also stream_filter_register(), and stream_get_wrappers().

Пред. | Начало | След.
stream_get_contents | Уровень выше | stream_get_line


stream_get_line

(PHP 5)

stream_get_line -- Gets line from stream resource up to a given delimiter

Description

string stream_get_line ( resource handle, int length [, string ending] )

Returns a string of up to length bytes read from the file pointed to by handle. Reading ends when length bytes have been read, when the string specified by ending is found (which is not included in the return value), or on EOF (whichever comes first).

If an error occurs, returns FALSE.

This function is nearly identical to fgets() except in that it allows end of line delimiters other than the standard \n, \r, and \r\n, and does not return the delimiter itself.

See also fread(),
fgets(), and
fgetc().

Пред. | Начало | След.
stream_get_filters | Уровень выше | stream_get_meta_data


stream_get_meta_data

(PHP 4 >= 4.3.0, PHP 5)

stream_get_meta_data -- Retrieves header/meta data from streams/file pointers

Description

array stream_get_meta_data ( resource stream )

Returns information about an existing stream. The stream can be any stream created by fopen(), fsockopen() and pfsockopen(). The result array contains the following items:

  • timed_out (bool) - TRUE if the stream timed out while waiting for data on the last call to fread() or fgets().

  • blocked (bool) - TRUE if the stream is in blocking IO mode. See stream_set_blocking().

  • eof (bool) - TRUE if the stream has reached end-of-file. Note that for socket streams this member can be TRUE even when unread_bytes is non-zero. To determine if there is more data to be read, use feof() instead of reading this item.

  • unread_bytes (int) - the number of bytes currently contained in the PHP's own internal buffer.

    Замечание: You shouldn't use this value in a script.

The following items were added in PHP 4.3:

  • stream_type (string) - a label describing the underlying implementation of the stream.

  • wrapper_type (string) - a label describing the protocol wrapper implementation layered over the stream. See Прил. M for more information about wrappers.

  • wrapper_data (mixed) - wrapper specific data attached to this stream. See Прил. M for more information about wrappers and their wrapper data.

  • filters (array) - and array containing the names of any filters that have been stacked onto this stream. Documentation on filters can be found in the Filters appendix.

Замечание: This function was introduced in PHP 4.3, but prior to this version, socket_get_status() could be used to retrieve the first four items, for socket based streams only.

In PHP 4.3 and later, socket_get_status() is an alias for this function.

Замечание: This function does NOT work on sockets created by the Socket extension.

The following items were added in PHP 5.0:

  • mode (string) - the type of access required for this stream (see Table 1 of the fopen() reference)

  • seekable (bool) - whether the current stream can be seeked.

  • uri (string) - the URI/filename associated with this stream.

Пред. | Начало | След.
stream_get_line | Уровень выше | stream_get_transports


stream_get_transports

(PHP 5)

stream_get_transports -- Retrieve list of registered socket transports

Description

array stream_get_transports ( void )

Returns an indexed array containing the name of all socket transports available on the running system.

Пример 1. Using stream_get_transports()

<?php
$xportlist = stream_get_transports();
print_r($xportlist);
?>

Output will be similar to the following. Note: there may be more or fewer transports in your version of PHP.

Array (
  [0] => tcp
  [1] => udp
  [2] => unix
  [3] => udg
)

See also stream_get_filters(), and stream_get_wrappers().

Пред. | Начало | След.
stream_get_meta_data | Уровень выше | stream_get_wrappers


stream_get_wrappers

(PHP 5)

stream_get_wrappers -- Retrieve list of registered streams

Description

array stream_get_wrappers ( void )

Returns an indexed array containing the name of all stream wrappers available on the running system.

Пример 1. stream_get_wrappers() example

<?php
print_r(stream_get_wrappers());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => php
    [1] => file
    [2] => http
    [3] => ftp
    [4] => compress.bzip2
    [5] => compress.zlib
)

Пример 2. Checking for the existence of a stream wrapper

<?php
// check for the existence of the bzip2 stream wrapper
if (in_array('compress.bzip2', stream_get_wrappers())) {
    echo 'compress.bzip2:// support enabled.';
} else {
    echo 'compress.bzip2:// support not enabled.';
}
?>

See also stream_wrapper_register().

Пред. | Начало | След.
stream_get_transports | Уровень выше | stream_register_wrapper


stream_register_wrapper

(PHP 4 >= 4.3.0, PHP 5)

stream_register_wrapper -- Alias of stream_wrapper_register()

Description

This function is an alias of stream_wrapper_register(). This function is included for compatability with PHP 4.3.0 and PHP 4.3.1 only. stream_wrapper_register() should be used instead.

Пред. | Начало | След.
stream_get_wrappers | Уровень выше | stream_select


stream_select

(PHP 4 >= 4.3.0, PHP 5)

stream_select -- Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec

Description

int stream_select ( array &read, array &write, array &except, int tv_sec [, int tv_usec] )

The stream_select() function accepts arrays of streams and waits for them to change status. Its operation is equivalent to that of the socket_select() function except in that it acts on streams.

The streams listed in the read array will be watched to see if characters become available for reading (more precisely, to see if a read will not block - in particular, a stream resource is also ready on end-of-file, in which case an fread() will return a zero length string).

The streams listed in the write array will be watched to see if a write will not block.

The streams listed in the except array will be watched for high priority exceptional ("out-of-band") data arriving.

Замечание: When stream_select() returns, the arrays read, write and except are modified to indicate which stream resource(s) actually changed status.

The tv_sec and tv_usec together form the timeout parameter, tv_sec specifies the number of seconds while tv_usec the number of microseconds. The timeout is an upper bound on the amount of time that stream_select() will wait before it returns. If tv_sec and tv_usec are both set to 0, stream_select() will not wait for data - instead it will return immediately, indicating the current status of the streams. If tv_sec is NULL stream_select() can block indefinitely, returning only when an event on one of the watched streams occurs (or if a signal interrupts the system call).

On success stream_select() returns the number of stream resources contained in the modified arrays, which may be zero if the timeout expires before anything interesting happens. On error FALSE is returned and a warning raised (this can happen if the system call is interrupted by an incoming signal).

Внимание

Using a timeout value of 0 allows you to instantaneously poll the status of the streams, however, it is NOT a good idea to use a 0 timeout value in a loop as it will cause your script to consume too much CPU time.

It is much better to specify a timeout value of a few seconds, although if you need to be checking and running other code concurrently, using a timeout value of at least 200000 microseconds will help reduce the CPU usage of your script.

Remember that the timeout value is the maximum time that will elapse; stream_select() will return as soon as the requested streams are ready for use.

You do not need to pass every array to stream_select(). You can leave it out and use an empty array or NULL instead. Also do not forget that those arrays are passed by reference and will be modified after stream_select() returns.

This example checks to see if data has arrived for reading on either $stream1 or $stream2. Since the timeout value is 0 it will return immediately:
<?php
/* Prepare the read array */
$read = array($stream1, $stream2);

if (false === ($num_changed_streams = stream_select($read, $write = NULL, $except = NULL, 0))) {
    /* Error handling */
} elseif ($num_changed_streams > 0) {
    /* At least on one of the streams something interesting happened */
}
?>

Замечание: Due to a limitation in the current Zend Engine it is not possible to pass a constant modifier like NULL directly as a parameter to a function which expects this parameter to be passed by reference. Instead use a temporary variable or an expression with the leftmost member being a temporary variable:
<?php
stream_select($r, $w, $e = NULL, 0);
?>

Замечание: Be sure to use the === operator when checking for an error. Since the stream_select() may return 0 the comparison with == would evaluate to TRUE:
<?php
if (false === stream_select($r, $w, $e = NULL, 0)) {
    echo "stream_select() failed\n";
}
?>

Замечание: If you read/write to a stream returned in the arrays be aware that they do not necessarily read/write the full amount of data you have requested. Be prepared to even only be able to read/write a single byte.

Замечание: Windows compatibility: stream_select() used on a pipe returned from proc_open() may cause data loss under Windows 98.

Use of stream_select() on file descriptors returned by proc_open() will fail and return FALSE under Windows.

See also stream_set_blocking().

Пред. | Начало | След.
stream_register_wrapper | Уровень выше | stream_set_blocking


stream_set_blocking

(PHP 4 >= 4.3.0, PHP 5)

stream_set_blocking -- Set blocking/non-blocking mode on a stream

Description

bool stream_set_blocking ( resource stream, int mode )

If mode is 0, the given stream will be switched to non-blocking mode, and if 1, it will be switched to blocking mode. This affects calls like fgets() and fread() that read from the stream. In non-blocking mode an fgets() call will always return right away while in blocking mode it will wait for data to become available on the stream.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function was previously called as set_socket_blocking() and later socket_set_blocking() but this usage is deprecated.

Замечание: Prior to PHP 4.3, this function only worked on socket based streams. Since PHP 4.3, this function works for any stream that supports non-blocking mode (currently, regular files and socket streams).

See also stream_select().

Пред. | Начало | След.
stream_select | Уровень выше | stream_set_timeout


stream_set_timeout

(PHP 4 >= 4.3.0, PHP 5)

stream_set_timeout -- Set timeout period on a stream

Description

bool stream_set_timeout ( resource stream, int seconds [, int microseconds] )

Sets the timeout value on stream, expressed in the sum of seconds and microseconds. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

When the stream times out, the 'timed_out' key of the array returned by stream_get_meta_data() is set to TRUE, although no error/warning is generated.

Пример 1. stream_set_timeout() example

<?php
$fp = fsockopen("www.example.com", 80);
if (!$fp) {
    echo "Unable to open\n";
} else {

    fwrite($fp, "GET / HTTP/1.0\r\n\r\n");
    stream_set_timeout($fp, 2);
    $res = fread($fp, 2000);

    $info = stream_get_meta_data($fp);
    fclose($fp);

    if ($info['timed_out']) {
        echo 'Connection timed out!';
    } else {
        echo $res;
    }

}
?>

Замечание: As of PHP 4.3, this function can (potentially) work on any kind of stream. In PHP 4.3, socket based streams are still the only kind supported in the PHP core, although streams from other extensions may support this function.

Замечание: This function doesn't work with advanced operations like stream_socket_recvfrom(), use stream_select() with timeout parameter instead.

This function was previously called as set_socket_timeout() and later socket_set_timeout() but this usage is deprecated.

See also fsockopen() and fopen().

Пред. | Начало | След.
stream_set_blocking | Уровень выше | stream_set_write_buffer


stream_set_write_buffer

(PHP 4 >= 4.3.0, PHP 5)

stream_set_write_buffer -- Sets file buffering on the given stream

Description

int stream_set_write_buffer ( resource stream, int buffer )

Output using fwrite() is normally buffered at 8K. This means that if there are two processes wanting to write to the same output stream (a file), each is paused after 8K of data to allow the other to write. stream_set_write_buffer() sets the buffering for write operations on the given filepointer stream to buffer bytes. If buffer is 0 then write operations are unbuffered. This ensures that all writes with fwrite() are completed before other processes are allowed to write to that output stream.

The function returns 0 on success, or EOF if the request cannot be honored.

The following example demonstrates how to use stream_set_write_buffer() to create an unbuffered stream.

Пример 1. stream_set_write_buffer() example

<?php
$fp = fopen($file, "w");
if ($fp) {
  stream_set_write_buffer($fp, 0);
  fwrite($fp, $output);
  fclose($fp);
}
?>

See also fopen() and fwrite().

Пред. | Начало | След.
stream_set_timeout | Уровень выше | stream_socket_accept


stream_socket_accept

(PHP 5)

stream_socket_accept -- Accept a connection on a socket created by stream_socket_server()

Description

resource stream_socket_accept ( resource server_socket [, float timeout [, string &peername]] )

Accept a connection on a socket previously created by stream_socket_server(). If timeout is specified, the default socket accept timeout will be overridden with the time specified in seconds. The name (address) of the client which connected will be passed back in peername if included and available from the selected transport.

peername can also be determined later using stream_socket_get_name().

If the call fails, it will return FALSE.

Внимание

This function should not be used with UDP server sockets. Instead, use stream_socket_recvfrom() and stream_socket_sendto().

See also stream_socket_server(),
stream_socket_get_name(),
stream_set_blocking(),
stream_set_timeout(),
fgets(),
fgetss(), fwrite(),
fclose(), feof(), and
the Curl extension.

Пред. | Начало | След.
stream_set_write_buffer | Уровень выше | stream_socket_client


stream_socket_client

(PHP 5)

stream_socket_client -- Open Internet or Unix domain socket connection

Description

resource stream_socket_client ( string remote_socket [, int &errno [, string &errstr [, float timeout [, int flags [, resource context]]]]] )

Initiates a stream or datagram connection to the destination specified by remote_socket. The type of socket created is determined by the transport specified using standard URL formatting: transport://target. For Internet Domain sockets (AF_INET) such as TCP and UDP, the target portion of the remote_socket parameter should consist of a hostname or IP address followed by a colon and a port number. For Unix domain sockets, the target portion should point to the socket file on the filesystem. The optional timeout can be used to set a timeout in seconds for the connect system call. flags is a bitmask field which may be set to any combination of connection flags. Currently the selection of connection flags is limited to STREAM_CLIENT_CONNECT (default), STREAM_CLIENT_ASYNC_CONNECT and STREAM_CLIENT_PERSISTENT.

Замечание: If you need to set a timeout for reading/writing data over the socket, use stream_set_timeout(), as the timeout parameter to stream_socket_client() only applies while connecting the socket.

stream_socket_client() returns a
stream resource which may
be used together with the other file functions (such as
fgets(), fgetss(),
fwrite(), fclose(), and
feof()).

If the call fails, it will return FALSE and if the optional errno and errstr arguments are present they will be set to indicate the actual system level error that occurred in the system-level connect() call. If the value returned in errno is 0 and the function returned FALSE, it is an indication that the error occurred before the connect() call. This is most likely due to a problem initializing the socket. Note that the errno and errstr arguments will always be passed by reference.

Depending on the environment, the Unix domain or the optional connect timeout may not be available. A list of available transports can be retrieved using stream_get_transports(). See Прил. O for a list of built in transports.

The stream will by default be opened in blocking mode. You can switch it to non-blocking mode by using stream_set_blocking().

Пример 1. stream_socket_client() Example

<?php
$fp = stream_socket_client("tcp://www.example.com:80", $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    fwrite($fp, "GET / HTTP/1.0\r\nHost: www.example.com\r\nAccept: */*\r\n\r\n");
    while (!feof($fp)) {
        echo fgets($fp, 1024);
    }
    fclose($fp);
}
?>
The example below shows how to retrieve the day and time from the UDP service "daytime" (port 13) in your own machine.

Пример 2. Using UDP connection

<?php
$fp = stream_socket_client("udp://127.0.0.1:13", $errno, $errstr);
if (!$fp) {
    echo "ERROR: $errno - $errstr<br />\n";
} else {
    fwrite($fp, "\n");
    echo fread($fp, 26);
    fclose($fp);
}
?>

Внимание

UDP sockets will sometimes appear to have opened without an error, even if the remote host is unreachable. The error will only become apparent when you read or write data to/from the socket. The reason for this is because UDP is a "connectionless" protocol, which means that the operating system does not try to establish a link for the socket until it actually needs to send or receive data.

Замечание: При указании числового адреса IPv6 (например, fe80::1) вы должны заключать его в квадратные скобки. Например, tcp://[fe80::1]:80.

See also stream_socket_server(),
stream_set_blocking(),
stream_set_timeout(),
stream_select(),
fgets(),
fgetss(), fwrite(),
fclose(), feof(), and
the Curl extension.

Пред. | Начало | След.
stream_socket_accept | Уровень выше | stream_socket_enable_crypto


stream_socket_enable_crypto

(PHP 5 >= 5.1.0RC1)

stream_socket_enable_crypto -- Turns encryption on/off on an already connected socket

Description

mixed stream_socket_enable_crypto ( resource stream, bool enable [, int crypto_type [, resource session_stream]] )

When called with the crypto_type parameter, stream_socket_enable_crypto() will setup encryption on the stream using the specified method.

Valid values for crypto_type

  • STREAM_CRYPTO_METHOD_SSLv2_CLIENT

  • STREAM_CRYPTO_METHOD_SSLv3_CLIENT

  • STREAM_CRYPTO_METHOD_SSLv23_CLIENT

  • STREAM_CRYPTO_METHOD_TLS_CLIENT

  • STREAM_CRYPTO_METHOD_SSLv2_SERVER

  • STREAM_CRYPTO_METHOD_SSLv3_SERVER

  • STREAM_CRYPTO_METHOD_SSLv23_SERVER

  • STREAM_CRYPTO_METHOD_TLS_SERVER

Once the crypto settings are established, cryptography can be turned on and off dynamically by passing TRUE or FALSE in the enable parameter.

If this stream should be seeded with settings from an already established crypto enabled stream, pass that stream's resource variable in the fourth parameter.

Returns TRUE on success, FALSE if negotiation has failed or 0 if there isn't enough data and you should try again (only for non-blocking sockets).

Пример 1. stream_socket_enable_crypto() Example

<?php
$fp = stream_socket_client("tcp://myproto.example.com:31337", $errno, $errstr, 30);
if (!$fp) {
  die("Unable to connect: $errstr ($errno)");
}
/* Turn on encryption for login phase */
stream_socket_enable_crypto($fp, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT);
fwrite($fp, "USER god\r\n");
fwrite($fp, "PASS secret\r\n");
/* Turn off encryption for the rest */
stream_socket_enable_crypto($fp, false);
while ($motd = fgets($fp)) {
  echo $motd;
}
fclose($fp);
?>

Ссылка CI, OpenSSL Functions, and Прил. O

Пред. | Начало | След.
stream_socket_client | Уровень выше | stream_socket_get_name


stream_socket_get_name

(PHP 5)

stream_socket_get_name -- Retrieve the name of the local or remote sockets

Description

string stream_socket_get_name ( resource handle, bool want_peer )

Returns the local or remote name of a given socket connection. If want_peer is set to TRUE the remote socket name will be returned, if it is set to FALSE the local socket name will be returned.

See also stream_socket_accept().

Пред. | Начало | След.
stream_socket_enable_crypto | Уровень выше | stream_socket_pair


stream_socket_pair

(PHP 5 >= 5.1.0RC1)

stream_socket_pair -- Creates a pair of connected, indistinguishable socket streams

Описание

array stream_socket_pair ( int domain, int type, int protocol )

stream_socket_pair() creates a pair of connected, indistinguishable socket streams. This function is commonly used in IPC (Inter-Process Communication).

Список параметров

domain

The protocol family to be used: STREAM_PF_INET, STREAM_PF_INET6 or STREAM_PF_UNIX

type

The type of communication to be used: STREAM_SOCK_DGRAM, STREAM_SOCK_RAW, STREAM_SOCK_RDM, STREAM_SOCK_SEQPACKET or STREAM_SOCK_STREAM

protocol

The protocol to be used: STREAM_IPPROTO_ICMP, STREAM_IPPROTO_IP, STREAM_IPPROTO_RAW, STREAM_IPPROTO_TCP or STREAM_IPPROTO_UDP

Замечание: Please consult the Streams constant list for further details on each constant.

Возвращаемые значения

Returns an array with the two socket resources on success, or FALSE on failure.

Примеры

Пример 1. A stream_socket_pair() example

This example shows the basic usage of stream_socket_pair() in Inter-Process Comunication.

<?php

$sockets = stream_socket_pair(STREAM_PF_UNIX, STREAM_SOCK_STREAM, STREAM_IPPROTO_IP);
$pid     = pcntl_fork();

if ($pid == -1) {
     die('could not fork');

} else if ($pid) {
     /* parent */
    fclose($sockets[0]);

    fwrite($sockets[1], "child PID: $pid\n");
    echo fgets($sockets[1]);

    fclose($sockets[1]);

} else {
    /* child */
    fclose($sockets[1]);

    fwrite($sockets[0], "message from child\n");
    echo fgets($sockets[0]);

    fclose($sockets[0]);
}

?>

Результатом выполнения данного примера будет что-то подобное:

child PID: 1378
message from child

Пред. | Начало | След.
stream_socket_get_name | Уровень выше | stream_socket_recvfrom


stream_socket_recvfrom

(PHP 5)

stream_socket_recvfrom -- Receives data from a socket, connected or not

Description

string stream_socket_recvfrom ( resource socket, int length [, int flags [, string &address]] )

The function stream_socket_recvfrom() accepts data from a remote socket up to length bytes. If address is provided it will be populated with the address of the remote socket.

The value of flags can be any combination of the following:

Таблица 1. possible values for flags

STREAM_OOB | Process OOB (out-of-band) data.
STREAM_PEEK | Retrieve data from the socket, but do not consume the buffer. Subsequent calls to fread() or stream_socket_recvfrom() will see the same data.

Пример 1. stream_socket_recvfrom() Example

<?php
/* Open a server socket to port 1234 on localhost */
$server = stream_socket_server('tcp://127.0.0.1:1234');

/* Accept a connection */
$socket = stream_socket_accept($server);

/* Grab a packet (1500 is a typical MTU size) of OOB data */
echo "Received Out-Of-Band: '" . stream_socket_recvfrom($socket, 1500, STREAM_OOB) . "'\n";

/* Take a peek at the normal in-band data, but don't comsume it. */
echo "Data: '" . stream_socket_recvfrom($socket, 1500, STREAM_PEEK) . "'\n";

/* Get the exact same packet again, but remove it from the buffer this time. */
echo "Data: '" . stream_socket_recvfrom($socket, 1500) . "'\n";

/* Close it up */
fclose($socket);
fclose($server);
?>

Замечание: If a message received is longer than the length parameter, excess bytes may be discarded depending on the type of socket the message is received from (such as UDP).

See also
stream_socket_sendto(),
stream_socket_client(), and
stream_socket_server().

Пред. | Начало | След.
stream_socket_pair | Уровень выше | stream_socket_sendto


stream_socket_sendto

(PHP 5)

stream_socket_sendto -- Sends a message to a socket, whether it is connected or not

Description

int stream_socket_sendto ( resource socket, string data [, int flags [, string address]] )

The function stream_socket_sendto() sends the data specified by data through the socket specified by socket. The address specified when the socket stream was created will be used unless an alternate address is specified in address.

The value of flags can be any combination of the following:

Таблица 1. possible values for flags

STREAM_OOB Process OOB (out-of-band) data.

Пример 1. stream_socket_sendto() Example

<?php
/* Open a socket to port 1234 on localhost */
$socket = stream_socket_client('tcp://127.0.0.1:1234');

/* Send ordinary data via ordinary channels. */
fwrite($socket, "Normal data transmit.");

/* Send more data out of band. */
stream_socket_sendto($socket, "Out of Band data.", STREAM_OOB);

/* Close it up */
fclose($socket);
?>

See also
stream_socket_recvfrom(),
stream_socket_client(), and
stream_socket_server().

Пред. | Начало | След.
stream_socket_recvfrom | Уровень выше | stream_socket_server


stream_socket_server

(PHP 5)

stream_socket_server -- Create an Internet or Unix domain server socket

Description

resource stream_socket_server ( string local_socket [, int &errno [, string &errstr [, int flags [, resource context]]]] )

Creates a stream or datagram socket on the specified local_socket. The type of socket created is determined by the transport specified using standard URL formatting: transport://target. For Internet Domain sockets (AF_INET) such as TCP and UDP, the target portion of the remote_socket parameter should consist of a hostname or IP address followed by a colon and a port number. For Unix domain sockets, the target portion should point to the socket file on the filesystem. flags is a bitmask field which may be set to any combination of socket creation flags. The default value of flags is STREAM_SERVER_BIND | STREAM_SERVER_LISTEN.

Замечание: For UDP sockets, you must use STREAM_SERVER_BIND as the flags parameter.

This function only creates a socket, to begin accepting connections use stream_socket_accept().

If the call fails, it will return FALSE and if the optional errno and errstr arguments are present they will be set to indicate the actual system level error that occurred in the system-level socket(), bind(), and listen() calls. If the value returned in errno is 0 and the function returned FALSE, it is an indication that the error occurred before the bind() call. This is most likely due to a problem initializing the socket. Note that the errno and errstr arguments will always be passed by reference.

Depending on the environment, Unix domain sockets may not be available. A list of available transports can be retrieved using stream_get_transports(). See Прил. O for a list of bulitin transports.

Пример 1. Using TCP server sockets

<?php
$socket = stream_socket_server("tcp://0.0.0.0:8000", $errno, $errstr);
if (!$socket) {
  echo "$errstr ($errno)<br />\n";
} else {
  while ($conn = stream_socket_accept($socket)) {
    fwrite($conn, 'The local time is ' . date('n/j/Y g:i a') . "\n");
    fclose($conn);
  }
  fclose($socket);
}
?>

The example below shows how to act as a time server which can respond to time queries as shown in an example on stream_socket_client().

Замечание: Most systems require root access to create a server socket on a port below 1024.

Пример 2. Using UDP server sockets

<?php
$socket = stream_socket_server("udp://127.0.0.1:1113", $errno, $errstr, STREAM_SERVER_BIND);
if (!$socket) {
    die("$errstr ($errno)");
}

do {
    $pkt = stream_socket_recvfrom($socket, 1, 0, $peer);
    echo "$peer\n";
    stream_socket_sendto($socket, date("D M j H:i:s Y\r\n"), 0, $peer);
} while ($pkt !== false);

?>

Замечание: При указании числового адреса IPv6 (например, fe80::1) вы должны заключать его в квадратные скобки. Например, tcp://[fe80::1]:80.

See also stream_socket_client(),
stream_set_blocking(),
stream_set_timeout(),
fgets(),
fgetss(), fwrite(),
fclose(), feof(), and
the Curl extension.

Пред. | Начало | След.
stream_socket_sendto | Уровень выше | stream_wrapper_register


stream_wrapper_register

(PHP 4 >= 4.3.2, PHP 5)

stream_wrapper_register -- Register a URL wrapper implemented as a PHP class

Description

bool stream_wrapper_register ( string protocol, string classname )

stream_wrapper_register() allows you to implement your own protocol handlers and streams for use with all the other filesystem functions (such as fopen(), fread() etc.).

To implement a wrapper, you need to define a class with a number of member functions, as defined below. When someone fopens your stream, PHP will create an instance of classname and then call methods on that instance. You must implement the methods exactly as described below - doing otherwise will lead to undefined behaviour.

Замечание: As of PHP 5.0.0 the instance of classname will be populated with a context property referencing a Context Resource which may be accessed with stream_context_get_options(). If no context was passed to the stream creation function, context will be set to NULL.

stream_wrapper_register() will return FALSE if the protocol already has a handler.

bool stream_open ( string path, string mode, int options, string opened_path )

This method is called immediately after your stream object is created. path specifies the URL that was passed to fopen() and that this object is expected to retrieve. You can use parse_url() to break it apart.

mode is the mode used to open the file, as detailed for fopen(). You are responsible for checking that mode is valid for the path requested.

options holds additional flags set by the streams API. It can hold one or more of the following values OR'd together.

Flag | Description
STREAM_USE_PATH | If path is relative, search for the resource using the include_path.
STREAM_REPORT_ERRORS | If this flag is set, you are responsible for raising errors using trigger_error() during opening of the stream. If this flag is not set, you should not raise any errors.

If the path is opened successfully, and STREAM_USE_PATH is set in options, you should set opened_path to the full path of the file/resource that was actually opened.

If the requested resource was opened successfully, you should return TRUE, otherwise you should return FALSE

void stream_close ( void )

This method is called when the stream is closed, using fclose(). You must release any resources that were locked or allocated by the stream.

string stream_read ( int count )

This method is called in response to fread() and fgets() calls on the stream. You must return up-to count bytes of data from the current read/write position as a string. If there are less than count bytes available, return as many as are available. If no more data is available, return either FALSE or an empty string. You must also update the read/write position of the stream by the number of bytes that were successfully read.

int stream_write ( string data )

This method is called in response to fwrite() calls on the stream. You should store data into the underlying storage used by your stream. If there is not enough room, try to store as many bytes as possible. You should return the number of bytes that were successfully stored in the stream, or 0 if none could be stored. You must also update the read/write position of the stream by the number of bytes that were successfully written.

bool stream_eof ( void )

This method is called in response to feof() calls on the stream. You should return TRUE if the read/write position is at the end of the stream and if no more data is available to be read, or FALSE otherwise.

int stream_tell ( void )

This method is called in response to ftell() calls on the stream. You should return the current read/write position of the stream.

bool stream_seek ( int offset, int whence )

This method is called in response to fseek() calls on the stream. You should update the read/write position of the stream according to offset and whence. See fseek() for more information about these parameters. Return TRUE if the position was updated, FALSE otherwise.

bool stream_flush ( void )

This method is called in response to fflush() calls on the stream. If you have cached data in your stream but not yet stored it into the underlying storage, you should do so now. Return TRUE if the cached data was successfully stored (or if there was no data to store), or FALSE if the data could not be stored.

array stream_stat ( void )

This method is called in response to fstat() calls on the stream and should return an array containing the same values as appropriate for the stream.

bool unlink ( string path )

This method is called in response to unlink() calls on URL paths associated with the wrapper and should attempt to delete the item specified by path. It should return TRUE on success or FALSE on failure. In order for the appropriate error message to be returned, do not define this method if your wrapper does not support unlinking.

Замечание: Userspace wrapper unlink method is not supported prior to PHP 5.0.0.

bool rename ( string path_from, string path_to )

This method is called in response to rename() calls on URL paths associated with the wrapper and should attempt to rename the item specified by path_from to the specification given by path_to. It should return TRUE on success or FALSE on failure. In order for the appropriate error message to be returned, do not define this method if your wrapper does not support renaming.

Замечание: Userspace wrapper rename method is not supported prior to PHP 5.0.0.

bool mkdir ( string path, int mode, int options )

This method is called in response to mkdir() calls on URL paths associated with the wrapper and should attempt to create the directory specified by path. It should return TRUE on success or FALSE on failure. In order for the appropriate error message to be returned, do not define this method if your wrapper does not support creating directories. Posible values for options include STREAM_REPORT_ERRORS and STREAM_MKDIR_RECURSIVE.

Замечание: Userspace wrapper mkdir method is not supported prior to PHP 5.0.0.

bool rmdir ( string path, int options )

This method is called in response to rmdir() calls on URL paths associated with the wrapper and should attempt to remove the directory specified by path. It should return TRUE on success or FALSE on failure. In order for the appropriate error message to be returned, do not define this method if your wrapper does not support removing directories. Possible values for options include STREAM_REPORT_ERRORS.

Замечание: Userspace wrapper rmdir method is not supported prior to PHP 5.0.0.

bool dir_opendir ( string path, int options )

This method is called immediately when your stream object is created for examining directory contents with opendir(). path specifies the URL that was passed to opendir() and that this object is expected to explore. You can use parse_url() to break it apart.

array url_stat ( string path, int flags )

This method is called in response to stat() calls on the URL paths associated with the wrapper and should return as many elements in common with the system function as possible. Unknown or unavailable values should be set to a rational value (usually 0).

flags holds additional flags set by the streams API. It can hold one or more of the following values OR'd together.

Flag | Description
STREAM_URL_STAT_LINK | For resources with the ability to link to other resource (such as an HTTP Location: forward, or a filesystem symlink). This flag specified that only information about the link itself should be returned, not the resource pointed to by the link. This flag is set in response to calls to lstat(), is_link(), or filetype().
STREAM_URL_STAT_QUIET | If this flag is set, your wrapper should not raise any errors. If this flag is not set, you are responsible for reporting errors using the trigger_error() function during stating of the path.

string dir_readdir ( void )

This method is called in response to readdir() and should return a string representing the next filename in the location opened by dir_opendir().

bool dir_rewinddir ( void )

This method is called in response to rewinddir() and should reset the output generated by dir_readdir(). i.e.: The next call to dir_readdir() should return the first entry in the location returned by dir_opendir().

bool dir_closedir ( void )

This method is called in response to closedir(). You should release any resources which were locked or allocated during the opening and use of the directory stream.

The example below implements a var:// protocol handler that allows read/write access to a named global variable using standard filesystem stream functions such as fread(). The var:// protocol implemented below, given the URL "var://foo" will read/write data to/from $GLOBALS["foo"].

Пример 1. A Stream for reading/writing global variables

<?php

class VariableStream {
    var $position;
    var $varname;

    function stream_open($path, $mode, $options, &$opened_path)
    {
        $url = parse_url($path);
        $this->varname = $url["host"];
        $this->position = 0;

        return true;
    }

    function stream_read($count)
    {
        $ret = substr($GLOBALS[$this->varname], $this->position, $count);
        $this->position += strlen($ret);
        return $ret;
    }

    function stream_write($data)
    {
        $left = substr($GLOBALS[$this->varname], 0, $this->position);
        $right = substr($GLOBALS[$this->varname], $this->position + strlen($data));
        $GLOBALS[$this->varname] = $left . $data . $right;
        $this->position += strlen($data);
        return strlen($data);
    }

    function stream_tell()
    {
        return $this->position;
    }

    function stream_eof()
    {
        return $this->position >= strlen($GLOBALS[$this->varname]);
    }

    function stream_seek($offset, $whence)
    {
        switch ($whence) {
            case SEEK_SET:
                if ($offset < strlen($GLOBALS[$this->varname]) && $offset >= 0) {
                     $this->position = $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            case SEEK_CUR:
                if ($offset >= 0) {
                     $this->position += $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            case SEEK_END:
                if (strlen($GLOBALS[$this->varname]) + $offset >= 0) {
                     $this->position = strlen($GLOBALS[$this->varname]) + $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            default:
                return false;
        }
    }
}

stream_wrapper_register("var", "VariableStream")
    or die("Failed to register protocol");

$myvar = "";

$fp = fopen("var://myvar", "r+");

fwrite($fp, "line1\n");
fwrite($fp, "line2\n");
fwrite($fp, "line3\n");

rewind($fp);
while (!feof($fp)) {
    echo fgets($fp);
}
fclose($fp);
var_dump($myvar);

?>

Пред. | Начало | След.
stream_socket_server | Уровень выше | stream_wrapper_restore


stream_wrapper_restore

(PHP 5 >= 5.1.0RC1)

stream_wrapper_restore -- Restores a previously unregistered built-in wrapper

Description

bool stream_wrapper_restore ( string protocol )

Restores a built-in wrapper previously unregistered with stream_wrapper_unregister().

Пред. | Начало | След.
stream_wrapper_register | Уровень выше | stream_wrapper_unregister


stream_wrapper_unregister

(PHP 5 >= 5.1.0RC1)

stream_wrapper_unregister -- Unregister a URL wrapper

Description

bool stream_wrapper_unregister ( string protocol )

stream_wrapper_unregister() allows you to disable an already defined stream wrapper. Once the wrapper has been disabled you may override it with a user-defined wrapper using stream_wrapper_register() or reenable it later on with stream_wrapper_restore().

Пред. | Начало | След.
stream_wrapper_restore | Уровень выше | Функции обработки строк


Функции обработки строк

Руководство по PHP
Пред. След.

CXLVI. Функции обработки строк

Введение

Эти функции предназначены для выполнения различных манипуляций со строками. Более специализированные функции см. в разделах, посвященных регулярным выражениям и обработке URL.

Для получения общей информации о работе со строками, особенно об использовании одиночных и двойных кавычек и экранировании символов, смотрите главу "Строки" в разделе "Типы" .

Требования

Эти функции всегда доступны.

Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

CRYPT_SALT_LENGTH integer

CRYPT_STD_DES integer

CRYPT_EXT_DES integer

CRYPT_MD5 integer

CRYPT_BLOWFISH integer

HTML_SPECIALCHARS (integer)

HTML_ENTITIES (integer)

ENT_COMPAT (integer)

ENT_QUOTES (integer)

ENT_NOQUOTES (integer)

CHAR_MAX (integer)

LC_CTYPE (integer)

LC_NUMERIC (integer)

LC_TIME (integer)

LC_COLLATE (integer)

LC_MONETARY (integer)

LC_ALL (integer)

LC_MESSAGES (integer)

STR_PAD_LEFT (integer)

STR_PAD_RIGHT (integer)

STR_PAD_BOTH (integer)

Смотрите также

Для получения информации о более сложной обработке строк обратитесь к разделам о регулярных выражениях: POSIX-совместимых и Perl-совместимых.

Содержание
addcslashes -- Экранирует спецсимволы в стиле языка C
addslashes -- Экранирует спецсимволы в строке
bin2hex -- Преобразует бинарные данные в шестнадцатиричное представление
chop -- Псевдоним функции rtrim()
chr -- Возвращает символ по его коду
chunk_split -- Разбивает строку на фрагменты
convert_cyr_string -- Преобразует строку из одной кириллической кодировки в другую
convert_uudecode -- Преобразует строку из формата uuencode в обычный вид
convert_uuencode -- Преобразует строку в формат uuencode
count_chars -- Возвращает информацию о символах, входящих в строку
crc32 -- Вычисляет CRC32 для строки
crypt -- Необратимое шифрование (хэширование)
echo -- Выводит одну или более строк
explode -- Разбивает строку на подстроки
fprintf -- Записывает отформатированную строку в поток
get_html_translation_table -- Возвращает таблицу преобразований, используемую функциями htmlspecialchars() и htmlentities()
hebrev -- Преобразует текст на иврите из логической кодировки в визуальную.
hebrevc -- Преобразует текст на иврите из логической кодировки в визуальную с преобразованием перевода строки.
html_entity_decode -- Преобразует HTML сущности в соответствующие символы
htmlentities -- Преобразует символы в соответствующие HTML сущности.
htmlspecialchars_decode -- Преобразует специальные HTML-сущности обратно в соответствующие символы
htmlspecialchars -- Преобразует специальные символы в HTML сущности
implode -- Объединяет элементы массива в строку
join -- Псевдоним функции implode()
levenshtein -- Вычисляет расстояние Левенштейна между двумя строками
localeconv -- Возвращает информацию о числовых форматах
ltrim -- Удаляет пробелы из начала строки
md5_file -- Возвращает MD5 хэш файла
md5 -- Возвращает MD5 хэш строки
metaphone -- Возвращает ключ metaphone для строки
money_format -- Форматирует число как денежную величину
nl_langinfo -- Возвращает информацию о языке и локали
nl2br -- Вставляет HTML код разрыва строки перед каждым переводом строки
number_format -- Форматирует число с разделением групп
ord -- Возвращает ASCII код символа
parse_str -- Разбирает строку в переменные
print -- Выводит строку
printf -- Выводит отформатированную строку
quoted_printable_decode -- Раскодирует строку, закодированную методом quoted printable
quotemeta -- Экранирует специальные символы
rtrim -- Удаляет пробелы из конца строки
setlocale -- Устанавливает локаль
sha1_file -- Возвращает SHA1 хэш файла
sha1 -- Возвращает SHA1 хэш строки
similar_text -- Вычисляет степень похожести двух строк
soundex -- Возвращает ключ soundex для строки
sprintf -- Возвращает отформатированную строку
sscanf -- Разбирает строку в соответствии с заданным форматом
str_ireplace -- Регистро-независимый вариант функции str_replace().
str_pad -- Дополняет строку другой строкой до заданной длины
str_repeat -- Возвращает повторяющуюся строку
str_replace -- Заменяет строку поиска на строку замены
str_rot13 -- Выполняет над строкой преобразование ROT13
str_shuffle -- Переставляет символы в строке
str_split -- Преобразует строку в массив
str_word_count -- Возвращает информацию о словах, входящих в строку
strcasecmp -- Сравнение строк без учета регистра, безопасное для данных в двоичной форме
strchr -- Псевдоним функции strstr()
strcmp -- Сравнение строк, безопасное для данных в двоичной форме
strcoll -- Сравнение строк с учетом текущей локали
strcspn -- Возвращает длину участка в начале строки, не соответствующего маске
strip_tags -- Удаляет HTML и PHP тэги из строки
stripcslashes -- Удаляет экранирование символов, произведенное функцией addcslashes()
stripos -- Возвращает позицию первого вхождения подстроки без учета регистра
stripslashes -- Удаляет экранирование символов, произведенное функцией addslashes()
stristr -- Регистро-независимый вариант функции strstr().
strlen -- Возвращает длину строки
strnatcasecmp -- Сравнение строк без учета регистра с использованием алгоритма "естественного упорядочения"
strnatcmp -- Сравнение строк с использованием алгоритма "естественного упорядочения"
strncasecmp -- Сравнение первых n символов строк без учета регистра, безопасное для данных в двоичной форме
strncmp -- Сравнение первых n символов строк без учета регистра, безопасное для данных в двоичной форме
strpbrk -- Ищет в строке любой символ из заданного набора
strpos -- Возвращает позицию первого вхождения подстроки
strrchr -- Находит последнее вхождение подстроки
strrev -- Переворачивает строку
strripos -- Возвращает позицию последнего вхождения подстроки без учета регистра
strrpos -- Возвращает позицию последнего вхождения символа
strspn -- Возвращает длину участка в начале строки, соответствующего маске
strstr -- Находит первое вхождение подстроки
strtok -- Разбивает строку
strtolower -- Преобразует строку в нижний регистр
strtoupper -- Преобразует строку в верхний регистр
strtr -- Преобразует заданные символы
substr_compare -- Безопасное для обработки данных в двоичной форме сравнение 2 строк со смещением, с учетом или без учета регистра
substr_count -- Возвращает число вхождений подстроки
substr_replace -- Заменяет часть строки
substr -- Возвращает подстроку
trim -- Удаляет пробелы из начала и конца строки
ucfirst -- Преобразует первый символ строки в верхний регистр
ucwords -- Преобразует в верхний регистр первый символ каждого слова в строке
vfprintf -- Write a formatted string to a stream
vprintf -- Выводит отформатированную строку
vsprintf -- Возвращает отформатированную строку
wordwrap -- Выполняет перенос строки на данное количество символов с использованием символа разрыва строки.

Пред. | Начало | След.
stream_wrapper_unregister | Уровень выше | addcslashes


addcslashes

(PHP 4, PHP 5)

addcslashes -- Экранирует спецсимволы в стиле языка C

Описание

string addcslashes ( string str, string charlist )

Возвращает сроку str, в которой перед каждым символом из перечисленных в charlist символов добавлен обратный слэш (\). Экранируются \n, \r и т.д. в стиле языка C, символы с ASCII менее 32 и более 126 преобразуются в восьмеричное представление.

Будьте внимательны при экранировании символв 0, a, b, f, n, r, t и v. Они будут преобразованы в \0, \a, \b, \f, \n, \r, \t и \v. В C все они являются предопреденными escape-последовательностями, в то время как в PHP только \0 (NULL), \r (возврат каретки), \n (перевод строки) и \t (табуляция).

При передаче charlist вида "\0..\37" будут экранированы символы с ASCII кодами от 0 до 37.

Пример 1. Пример использования addcslashes()

<?php
$escaped = addcslashes($not_escaped, "\0..\37!@\177..\377");
?>

Следует быть внимательным при указании диапазона символов в аргументе charlist. Проверяйте, какие символы входят в этот диапазон.

<?php
echo addcslashes('foo[ ]', 'A..z');
// выводит:  \f\o\o\[ \]
// Будут экранированы заглавные и строчные английские буквы
// ... а также [\]^_`  а также табуляция,
// возврат каретки, перевод строки и т.д.
?>

Также, если ASCII код первого символа диапозона больше, чем последнего, диапазон не будет создан. Вместо этого будут экранироваться только первый и последний символы и точка. Для определения ASCII кода символов используйте функцию ord().

<?php
echo addcslashes("zoo['.']", 'z..A');
// выводит:  \zoo['\.']
?>

См. также описание функций stripcslashes(),
stripslashes(),
htmlspecialchars() и
quotemeta().

Пред. | Начало | След.
Функции обработки строк | Уровень выше | addslashes


addslashes

(PHP 3, PHP 4, PHP 5)

addslashes -- Экранирует спецсимволы в строке

Описание

string addslashes ( string str )

Возвращает сроку str, в которой перед каждым спецсимволом добавлен обратный слэш (\), например для последующего использования этой строки в запросе к базе данных. Экранируются одиночная кавычка ('), дойная кавычка ("), обратный слэш (\) и NUL (байт NULL).

Функция addslashes() часто применяется при записи в базу данных. Предположим, если нужно внести в базу данных имя O'reilly, то символ ' должен быть экранирован. В большинстве баз данных для этого используется \, строка будет выглядеть как O\'reilly. Заметьте, что сам символ \ в базу данных записан не будет. Если директива конфигурации magic_quotes_sybase имеет значение on, то символ ' будет экранироваться добавлением еще одного ' вместо \.

Директива конфигурации magic_quotes_gpc по умолчанию имеет значение on, при этом функция addslashes() автоматически применяется ко всем данным GET, POST, и COOKIE. Не используйте addslashes() для данных, обработанных magic_quotes_gpc, чтобы избежать двойного экранирования. Для проверки состояния этой директивы используется get_magic_quotes_gpc().

Пример 1. Пример использования addslashes()

<?php
$str = "Is your name O'reilly?";

// выводит: Is your name O\'reilly?
echo addslashes($str);
?>

См. также описание функций stripslashes(),
htmlspecialchars(),
quotemeta() и
get_magic_quotes_gpc().

Пред. | Начало | След.
addcslashes | Уровень выше | bin2hex


bin2hex

(PHP 3 >= 3.0.9, PHP 4, PHP 5)

bin2hex -- Преобразует бинарные данные в шестнадцатиричное представление

Описание

string bin2hex ( string str )

Возвращает строку, содержащую шестнадцатиричное представление аргумента str. Преобразование производится побайтно.

См. также описание функций pack() и unpack().

Пред. | Начало | След.
addslashes | Уровень выше | chop


chop

(PHP 3, PHP 4, PHP 5)

chop -- Псевдоним функции rtrim()

Описание

Эта функция является псевдонимом функции rtrim().

Замечание: Действие chop() отличается от одноименной функции языка Perl, удаляющей последний символ строки.

Пред. | Начало | След.
bin2hex | Уровень выше | chr


chr

(PHP 3, PHP 4, PHP 5)

chr -- Возвращает символ по его коду

Описание

string chr ( int ascii )

Возвращает строку из одного символа, код которого задан аргументом ascii.

Пример 1. Пример использования chr()

<?php
$str = "Эта строка окачивается escape: ";
$str .= chr(27); /* добавляет escape-символ в конец $str */

/* Но часто лучше использовать такую конструкцию */

$str = sprintf("The string ends in escape: %c", 27);
?>

Таблицу ASCII-кодов вы можете найти здесь: http://www.asciitable.com.

Эта функция дополняет функцию ord(). См. также описание формата %c функции sprintf().

Пред. | Начало | След.
chop | Уровень выше | chunk_split


chunk_split

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

chunk_split -- Разбивает строку на фрагменты

Описание

string chunk_split ( string body [, int chunklen [, string end]] )

Функция используется для разбиения строки на фрагменты, например, для приведения результата функции base64_encode() в соответствие с требованиями RFC 2045. Она вставляет строку end (по умолчанию "\r\n") после каждых chunklen символов (по умолчанию 76). Возвращает преобразованную строку без изменения исходной.

Пример 1. Пример использования chunk_split()

<?php
// форматирование данных в соответствии с RFC 2045
$new_string = chunk_split(base64_encode($data));
?>

См. также описание функций str_split(),
explode(), split(),
wordwrap(), и
RFC 2045.

Пред. | Начало | След.
chr | Уровень выше | convert_cyr_string


convert_cyr_string

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

convert_cyr_string -- Преобразует строку из одной кириллической кодировки в другую

Описание

string convert_cyr_string ( string str, string from, string to )

Эта функция преобразует строку str из одной кириллической кодировки в другую. Аргументы from и to задают входную и выходную кодировки соответственно, и состоят из одного символа. Поддерживаются следующие кодировки:

  • k - koi8-r

  • w - windows-1251

  • i - iso8859-5

  • a - x-cp866

  • d - x-cp866

  • m - x-mac-cyrillic

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Пред. | Начало | След.
chunk_split | Уровень выше | convert_uudecode


convert_uudecode

(PHP 5)

convert_uudecode -- Преобразует строку из формата uuencode в обычный вид

Описание

string convert_uudecode ( string data )

convert_uudecode() преобразует строку data из формата uuencode в обычный вид.

Пример 1. Пример использования функции convert_uudecode()

<?php
/* Догадаетесь, что выведет этот код? :) */
echo convert_uudecode("+22!L;W9E(%!(4\"$`\n`");
?>

См. также convert_uuencode().

Пред. | Начало | След.
convert_cyr_string | Уровень выше | convert_uuencode


convert_uuencode

(PHP 5)

convert_uuencode -- Преобразует строку в формат uuencode

Описание

string convert_uuencode ( string data )

convert_uuencode() преобразует строку data в формат uuencode.

Кодирование Uuencode переводит строки (включая двоичные символы) в последовательности печатных (7-битных) ASCII-символов, что позволяет безопасно обмениваться данными через четь. Закодированные данные примерно на 35% больше оригинала.

Пример 1. Пример использования функции convert_uuencode()

<?php
$some_string = "test\ntext text\r\n";

echo convert_uuencode($some_string);
?>

См. также convert_uudecode() and base64_encode().

Пред. | Начало | След.
convert_uudecode | Уровень выше | count_chars


count_chars

(PHP 4, PHP 5)

count_chars -- Возвращает информацию о символах, входящих в строку

Описание

mixed count_chars ( string string [, int mode] )

Подсчитывает количество вхождений каждого из символов с ASII кодами в диапазоне (0..255) в строку string и возвращает эту информацию в различных формата. Необязательный аргумент mode по умолчанию равен 0. В зависимости от его значения возвращается:

  • 0 - массив, индексами которого являются ASCII коды, а значениями - число вхождений соответствующего символа.

  • 1 - то же, что и для 0, но информация о символах с нулевым числом вхождений не включается в массив.

  • 2 - то же, что и для 0, но в массив включается информация только о символах с нулевым числом вхождений.

  • 3 - строка, состоящая из символов, которые входят в исходую строку хотя бы раз.

  • 4 - строка, состоящая из символов, которые не входят в исходую строку

Пример 1. Пример использования count_chars()

<?php

$data = "Две в и одна с";

$result = count_chars($data, 0);

for ($i=0; $i < count($result); $i++) {
   if ($result[$i] != 0)
       echo "\"" , chr($i) , "\" встречается в строке $result[$i] раз(а).\n";
}

?>

Этот код выведет :

" " встречается в строке 4 раз(а).
"Д" встречается в строке 1 раз(а).
"а" встречается в строке 1 раз(а).
"в" встречается в строке 2 раз(а).
"д" встречается в строке 1 раз(а).
"е" встречается в строке 1 раз(а).
"и" встречается в строке 1 раз(а).
"н" встречается в строке 1 раз(а).
"о" встречается в строке 1 раз(а).
"с" встречается в строке 1 раз(а).

См. также описание функций strpos() и substr_count().

Пред. | Начало | След.
convert_uuencode | Уровень выше | crc32


crc32

(PHP 4 >= 4.0.1, PHP 5)

crc32 -- Вычисляет CRC32 для строки

Описание

int crc32 ( string str )

Функция вычисляет контрольную сумму по алгоритму CRC32 для строки str. Это обычно используется для контроля правильности передачи данных.

В PHP целые числа имеют знак, и эта функция может возвращать отрицательные числа. Для получения строкового представления CRC32 без знака используйте формат "%u" в функциях sprintf() или printf().

Этот пример иллюстрирует вывод вычисленной CRC32 с помощью функции printf():

Пример 1. Вывод контрольной суммы CRC32

<?php
$checksum = crc32("The quick brown fox jumped over the lazy dog.");
printf("%u\n", $checksum);
?>

См. также описание функций md5() и sha1().

Пред. | Начало | След.
count_chars | Уровень выше | crypt


crypt

(PHP 3, PHP 4, PHP 5)

crypt -- Необратимое шифрование (хэширование)

Описание

string crypt ( string str [, string salt] )

crypt() возвращает строку, зашифрованную по стандартному алгоритму UNIX, основанному на DES, или другому алгоритму, имеющемуся в системе. Аргументами являются строка, которую требуется зашифровать, и необязательная salt-последовательность, на которой основывается шифрование. Для получения дополнительной информации обратитесь к руководству UNIX по функции crypt.

Если аргумент salt не передан, он будет выбран случайным образом.

Некоторые операционные системы поддерживают несколько алгоритмов шифрования. Иногда стандартный алгоритм, основанный на DES, заменяется алгоритмом на основе MD5. Вид шифрования определяется salt-последовательностью. При инсталляции PHP определяет, какие алгоритмы шифрования поддерживает crypt. Если salt-последовательность не передана, будет автоматически сгенерирована стандартная случайная двухсимвольная salt-последовательность, если только в системе по умолчанию не используется MD5, в этом случае будет создана случайная salt-последовательность, совместимая с MD5. Предопределенная константа CRYPT_SALT_LENGTH позволяет определить, используется ли в системе стандартная двухсимвольная salt, или 12-символьная.

Если вы опускаете аргумент salt, вы должны знать, что salt генериуется только при первом вызове этой функции, и для всех последующих вызовов используется полученное значение. Это в конечном итоге может привести к снижению безопасности.

Стандартная функция crypt() на основе DES копирует salt в начало возвращаемой строки. Кроме того, она использует только первые восемь символов строки str, поэтому для различных строк, первые восемь символов в которых совпадают, будет возвращаться один и тот же результат (при использовании одинаковых salt-последовательностей).

На системах, где функция crypt() поддерживает несколько алгоритмов шифрования, следующие константы устанавливаются в 0 или 1 в зависимости от доступности соответствующего алгоритма:

  • CRYPT_STD_DES - Стандартное DES-шифрование с двухсимвольной salt

  • CRYPT_EXT_DES - Расширенное DES-шифрование с девятисимвольной salt

  • CRYPT_MD5 - MD5-шифрование с 12-символьной salt, начинающейся с $1$

  • CRYPT_BLOWFISH - Blowfish-шифрование с 16-символьной salt, начинающейся с $2$

Замечание: Функция расшифровки отсутствует, так как crypt() использует необратимый алгоритм шифрования.

Пример 1. Пример использования crypt()

<?php
$password = crypt('My1sTpassword'); // salt будет сгенерирована автоматически

// Для проверки пароля в качестве salt следует передавать результат работы
// crypt() целиком во избежание проблем при использовании различных
// алгоритмов (как уже было отмечено выше, стандартный DES-алгоритм
// использует 2-символьную salt, а MD5 - 12-символьную.

if (crypt($user_input, $password) == $password) {
   echo "Пароль верен !";
}
?>

Пример 2. Использование crypt() с файлом .htpasswd

При создании пароля для использования в файле .htpasswd Apache, нужно использовать 2 первых символа пароля в качестве salt.

<?php
// пароль
$password = 'mypassword';

// получение хэша
$hash = crypt($password, substr($password, 0, 2));
?>

См. также описание функции md5() и модуля Mcrypt.

Пред. | Начало | След.
crc32 | Уровень выше | echo


echo

(PHP 3, PHP 4, PHP 5)

echo -- Выводит одну или более строк

Описание

void echo ( string arg1 [, string argn...] )

Выводит все аргументы.

На самом деле echo() - это не функция, а конструкция языка, поэтому заключать аргументы в скобки не обязательно, даже при использовании нескольких аргументов.

Пример 1. Примеры использования echo()

<?php
echo "Привет мир!";

echo "Это занимет
несколько строк. Переводы строки тоже
выводятся";

echo "Это занимет\nнесколько строк. Переводы строки тоже\nвыводятся";

echo "Экранирование символов делается \"Так\".";

// с echo можно использовать переменные ...
$foo = "foobar";
$bar = "barbaz";

echo "foo - это $foo"; // foo - это foobar

// ... и массивы
$bar = array("value" => "foo");

echo "это {$bar['value']} !"; // это foo !

// При использовании одиночных кавычек выводится
// имя переменной,а не значение
echo 'foo - это $foo'; // foo - это $foo

// можно вывести просто значения переменных
echo $foo;          // foobar
echo $foo,$bar;     // foobarbarbaz

// Некоторые предпочитают передачу нескольких аргументов
// вместо конкатенации
echo 'Эта ', 'строка ', 'была ', 'создана ', 'несколькими параметрами.', chr(10);
echo 'Эта ' . 'строка ' . 'была ' . 'создана ' . 'с помощью конкатенации.' . "\n";

echo <<<END
Здесь используется синтаксис "here document" для вывода
нескольких строк с подстановкой переменных $variable.
Заметьте,что закрывающий идентификатор должен
располагаться в отдельной строке. никаких пробелов!
END;

// Следующая строка неверна, так как echo не является функцией
($some_var) ? echo 'true' : echo 'false';

// Но это можно записать по другому
($some_var) ? print('true'): print('false'); // print является функцией
echo $some_var ? 'true': 'false'; // echo вынесен за пределы выражения
?>

echo() имеет также краткую форму, представляющую собой знак равенства, следующий непосредственно за открывающим тэгом. Этот сокращенный синтаксис допустим только когда директива конфигурации short_open_tag включена.

I have <?=$foo?> foo.

Различия между print() и echo() рассматриваются в этой статье: http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций

См. также описания функций
print(),
printf(), и
flush().

Пред. | Начало | След.
crypt | Уровень выше | explode


explode

(PHP 3, PHP 4, PHP 5)

explode -- Разбивает строку на подстроки

Описание

array explode ( string separator, string string [, int limit] )

Возвращает массив строк, полученных разбиением строки string с использованием separator в качестве разделителя. Если передан аргумент limit, массив будет содержать максимум limit элементов, при этом последний элемент будет содержать остаток строки string.

Если separator - пустая строка (""), explode() возвращает FALSE. Если separator не содержится в string, то explode() возвращает массив, содержащий один элемент string.

По историческим причинам, функции implode() можно передавать аргументы в любом порядке, но для explode() это недопустимо. separator всегда должен содержать разделитель, а string - исходную строку.

Замечание: Аргумент limit был добавлен в PHP 4.0.1

Пример 1. Примеры применения explode()

<?php
// Пример 1
$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2

// Пример 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *

?>

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

См. также описание функций
preg_split(),
spliti(),
split() и
implode().

Пред. | Начало | След.
echo | Уровень выше | fprintf


fprintf

(PHP 5)

fprintf -- Записывает отформатированную строку в поток

Описание

int fprintf ( resource handle, string format [, mixed args] )

Записывает строку, созданную с использованием строки формата format, в поток, дескриптор которого передается в handle. Аргумент format подробно рассмотрен в описании функции sprintf().

Возвращает длину выведенной строки.

См. также описание функций printf(),
sprintf(),
sscanf(), fscanf(),
vsprintf() и
number_format().

Примеры

Пример 1. fprintf(): заполнение нулями

<?php
if (!($fp = fopen('date.txt', 'w')))
    return;

fprintf($fp, "%04d-%02d-%02d", $year, $month, $day);
// запишет форматированную дату в файл date.txt
?>

Пример 2. fprintf(): форматирование денежных величин

<?php
if (!($fp = fopen('currency.txt', 'w')))
    return;

$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money выведет "123.1";
$len = fprintf($fp, '%01.2f', $money);
// строка "123.10" записана в файл currency.txt

echo "записано $len байт в файл currency.txt";
?>

Пред. | Начало | След.
explode | Уровень выше | get_html_translation_table


get_html_translation_table

(PHP 4, PHP 5)

get_html_translation_table -- Возвращает таблицу преобразований, используемую функциями htmlspecialchars() и htmlentities()

Описание

array get_html_translation_table ( int table [, int quote_style] )

get_html_translation_table() возвращает таблицу преобразований, используемую функциями htmlspecialchars() и htmlentities().

Константы HTML_ENTITIES и HTML_SPECIALCHARS позволяют указать нужную таблицу преобразований. Аналогично функциям htmlspecialchars() и htmlentities() можно задать необязательный аргумент quote_style, равный по умолчанию ENT_COMPAT. Описание quote_style см. в описании функции htmlspecialchars().

Пример 1. Пример таблицы преобразований

<?php
$trans = get_html_translation_table(HTML_ENTITIES);
$str = "Hallo & <Frau> & Krдmer";
$encoded = strtr($str, $trans);
?>
Переменная $encoded будет содержать: "Hallo &amp; &lt;Frau&gt; &amp; Kr&auml;mer".

Другим интересным применением этой функции является измененин направления преобразования с помощью функции array_flip().

<?php
$trans = array_flip($trans);
$original = strtr($encoded, $trans);
?>

Переменная $original будет содержать: "Hallo & <Frau> & Kr?mer".

См. также описание функций
htmlspecialchars(),
htmlentities(),
strtr() и
array_flip().

Пред. | Начало | След.
fprintf | Уровень выше | hebrev


hebrev

(PHP 3, PHP 4, PHP 5)

hebrev -- Преобразует текст на иврите из логической кодировки в визуальную.

Description

string hebrev ( string hebrew_text [, int max_chars_per_line] )

Необязательный аргумент max_chars_per_line предписывает вставлять символы перевода строки таким образом, чтобы результат не содержал строк длиннее, чем max_chars_per_line символов, не разрывая слова.

См. также описание функции hebrevc().

Пред. | Начало | След.
get_html_translation_table | Уровень выше | hebrevc


hebrevc

(PHP 3, PHP 4, PHP 5)

hebrevc -- Преобразует текст на иврите из логической кодировки в визуальную с преобразованием перевода строки.

Description

string hebrevc ( string hebrew_text [, int max_chars_per_line] )

Эта функция похожа на hebrev() с тем отличием, что что она преобразует символы перевода строки (\n) в "<br>\n". Необязательный аргумент max_chars_per_line предписывает вставлять символы перевода строки таким образом, чтобы результат не содержал строк длиннее, чем max_chars_per_line символов, не разрывая слова.

См. также описание функции hebrev().

Пред. | Начало | След.
hebrev | Уровень выше | html_entity_decode


html_entity_decode

(PHP 4 >= 4.3.0, PHP 5)

html_entity_decode -- Преобразует HTML сущности в соответствующие символы

Описание

string html_entity_decode ( string string [, int quote_style [, string charset]] )

html_entity_decode(), в противоположность функции htmlentities(), Преобразует HTML сущности в строке string в соответствующие символы.

Необязательный аргумент quote_style позволяет указать способ обработки 'одиночных' и "двойных" кавычек. Значением этого аргумента может быть одна из трех следующих констант (по умолчанию ENT_COMPAT):

Таблица 1. Константы quote_style

Имя константы | Описание
ENT_COMPAT | Преобразуются двойные кавычки, одиночные остаются без изменений.
ENT_QUOTES | Преобразуются и двойные, и одиночные кавычки.
ENT_NOQUOTES | И двойные, и одиночные кавычки остаются без изменений.

Необязательный третий аргумент charset определяет кодировку, используемую при преобразовании. По умолчанию используется кодировка ISO-8859-1.

Начиная с PHP 4.3.0 поддерживаются следующие кодировки.

Таблица 2. Поддерживаемые кодировки

Кодировка | Псевдонимы | Описание
ISO-8859-1 | ISO8859-1 | Западно-европейская Latin-1
ISO-8859-15 | ISO8859-15 | Западно-европейская Latin-9. Добавляет знак евро, французские и финские буквы к кодировке Latin-1(ISO-8859-1).
UTF-8 |  | 8-битная Unicode, совместимая с ASCII.
cp866 | ibm866, 866 | Кириллическая кодировка, применяемая в DOS. Поддерживается в версии 4.3.2.
cp1251 | Windows-1251, win-1251, 1251 | Кириллическая кодировка, применяемая в Windows. Поддерживается в версии 4.3.2.
cp1252 | Windows-1252, 1252 | Западно-европейская кодировка, применяемая в Windows.
KOI8-R | koi8-ru, koi8r | Русская кодировка. Поддерживается в версии 4.3.2.
BIG5 | 950 | Традиционный китайский, применяется в основном на Тайване.
GB2312 | 936 | Упрощенный китайский, стандартная национальная кодировка.
BIG5-HKSCS |  | Расширенная Big5, применяемая в Гонг-Конге.
Shift_JIS | SJIS, 932 | Японская кодировка.
EUC-JP | EUCJP | Японская кодировка.

Замечание: Не перечисленные выше кодировки не поддерживаются, и вместо них применяется ISO-8859-1.

Пример 1. Декодирование HTML сущностей

<?php
$orig = "I'll \"walk\" the <b>dog</b> now";

$a = htmlentities($orig);

$b = html_entity_decode($a);

echo $a; // I'll &quot;walk&quot; the &lt;b&gt;dog&lt;/b&gt; now

echo $b; // I'll "walk" the <b>dog</b> now

// в версиях до PHP 4.3.0 можно сделать так:
function unhtmlentities($string)
{
    $trans_tbl = get_html_translation_table(HTML_ENTITIES);
    $trans_tbl = array_flip($trans_tbl);
    return strtr($string, $trans_tbl);
}

$c = unhtmlentities($a);

echo $c; // I'll "walk" the <b>dog</b> now

?>

Замечание: Может показаться странным, что результатом вызова trim(html_entity_decode('&nbsp;')); не является пустая строка Причина том, что '&nbsp;' преобразуется не в символ с ASCII-кодом 32 (который удаляется функцией trim()),а в символ с ASCII-кодом 160 (0xa0) в принимаемой по умолчанию кодировке ISO-8859-1.

См. также описание функций htmlentities(),
htmlspecialchars(),
get_html_translation_table()
и urldecode().

Пред. | Начало | След.
hebrevc | Уровень выше | htmlentities


htmlentities

(PHP 3, PHP 4, PHP 5)

htmlentities -- Преобразует символы в соответствующие HTML сущности.

Описание

string htmlentities ( string string [, int quote_style [, string charset]] )

Эта функция идентична htmlspecialchars() за исключением того, что htmlentities() преобразует все символы в соответствющие HTML сущности (для тех символов, для которых HTML сущности существуют).

Подобно htmlspecialchars(), необязательный аргумент quote_style позволяет указать способ обработки 'одиночных' и "двойных" кавычек. Значением этого аргумента может быть одна из трех следующих констант (по умолчанию ENT_COMPAT):

Таблица 1. Константы quote_style

Имя константы | Описание
ENT_COMPAT | Преобразуются двойные кавычки, одиночные остаются без изменений.
ENT_QUOTES | Преобразуются и двойные, и одиночные кавычки.
ENT_NOQUOTES | И двойные, и одиночные кавычки остаются без изменений.

Поддержка необязательно аргумента quote_style была добавлена в PHP 4.0.3.

Подобно htmlspecialchars(), необязательный третий аргумент charset определяет кодировку, используемую при преобразовании. Поддержка этого аргумента была добавлена в PHP 4.1.0. По умолчанию в настоящее время используется кодировка ISO-8859-1.

Начиная с PHP 4.3.0 поддерживаются следующие кодировки.

Таблица 2. Поддерживаемые кодировки

Кодировка | Псевдонимы | Описание
ISO-8859-1 | ISO8859-1 | Западно-европейская Latin-1
ISO-8859-15 | ISO8859-15 | Западно-европейская Latin-9. Добавляет знак евро, французские и финские буквы к кодировке Latin-1(ISO-8859-1).
UTF-8 |  | 8-битная Unicode, совместимая с ASCII.
cp866 | ibm866, 866 | Кириллическая кодировка, применяемая в DOS. Поддерживается в версии 4.3.2.
cp1251 | Windows-1251, win-1251, 1251 | Кириллическая кодировка, применяемая в Windows. Поддерживается в версии 4.3.2.
cp1252 | Windows-1252, 1252 | Западно-европейская кодировка, применяемая в Windows.
KOI8-R | koi8-ru, koi8r | Русская кодировка. Поддерживается в версии 4.3.2.
BIG5 | 950 | Традиционный китайский, применяется в основном на Тайване.
GB2312 | 936 | Упрощенный китайский, стандартная национальная кодировка.
BIG5-HKSCS |  | Расширенная Big5, применяемая в Гонг-Конге.
Shift_JIS | SJIS, 932 | Японская кодировка.
EUC-JP | EUCJP | Японская кодировка.

Замечание: Не перечисленные выше кодировки не поддерживаются, и вместо них применяется ISO-8859-1.

Для выполнения обратного преобразования используется функция html_entity_decode().

Пример 1. Пример использования htmlentities()

<?php
$str = "A 'quote' is <b>bold</b>";

// выводит: A 'quote' is &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str);

// выводит: A &#039;quote&#039; is &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str, ENT_QUOTES);
?>

См. также описание функций html_entity_decode(),
get_html_translation_table(),
htmlspecialchars(), nl2br()
и urlencode().

Пред. | Начало | След.
html_entity_decode | Уровень выше | htmlspecialchars_decode


htmlspecialchars_decode

(PHP 5 >= 5.1.0RC1)

htmlspecialchars_decode -- Преобразует специальные HTML-сущности обратно в соответствующие символы

Описание

string htmlspecialchars_decode ( string string [, int quote_style] )

Эта функция является обратной к htmlspecialchars(). Она преобразует специальные HTML-сущности обратно в соответствующие символы.

Конвертируемые сущности : &amp;, &quot; (когда ENT_NOQUOTES не установлена), &#039; (когда ENT_QUOTES установлена), &lt; and &gt;.

Список параметров

string

Строка, которую надо преобразовать

quote_style

Стиль ковычек. Может принимать значение одной из следующих констант:

Таблица 1. Константы quote_style

Имя константы | Описание
ENT_COMPAT | Преобразовывать двойные ковычки и пропускать одинарные (по умолчанию)
ENT_QUOTES | Преобразовывать и двойные, и одинарные ковычки
ENT_NOQUOTES | Не преобразовывать ни двойные, ни одинарные ковычки

Возвращаемые значения

Возвращает преобразованную строку.

Примеры

Пример 1. Пример использования функции htmlspecialchars_decode()

<?php
$str = '<p>this -&gt; &quot;</p>';

echo htmlspecialchars_decode($str);

// обратите внимание, что в данном случае ковычки не будут преобразованы
echo htmlspecialchars_decode($str, ENT_NOQUOTES);
?>

Результат выполнения данного примера:

<p>this -> "</p>
<p>this -> &quot;</p>

Смотрите также

htmlspecialchars()
html_entity_decode()
get_html_translation_table()

Пред. | Начало | След.
htmlentities | Уровень выше | htmlspecialchars


htmlspecialchars

(PHP 3, PHP 4, PHP 5)

htmlspecialchars -- Преобразует специальные символы в HTML сущности

Описание

string htmlspecialchars ( string string [, int quote_style [, string charset]] )

В HTML некоторые символы имеют специальное значение и для сохранения своего значения должны быть преобразованы в HTML сущности. Эта функция возвращает строку, над которой проведены некоторые из таких преобразований. Этих преобразований достаточно для большинства задач веб-программирования. Если вам нужно преобразовать все возможные сущности, используйте htmlentities().

Эта функция полезна при отображении данных, введенных пользователем, которые могут содержать нежелательные HTML тэги, например в форуме или гостевой книге. Необязательный второй аргумент quote_style определяет режим обработки одиночных и двойных кавычек. В режиме по умолчанию, ENT_COMPAT, преобразуются двойные кавычки, одиночные остаются без изменений. В режиме ENT_QUOTES преобразуются и двойные, и одиночные кавычки. а в режиме ENT_NOQUOTES и двойные, и одиночные кавычки остаются без изменений.

Производятся следующие преобразования:

  • '&' (амперсанд) преобразуется в '&amp;'

  • '"' (двойная кавычка) преобразуется в '&quot;' when ENT_NOQUOTES is not set.

  • ''' (одиночная кавычка) преобразуется в '&#039;' только в режиме ENT_QUOTES.

  • '<' (знак "меньше чем") преобразуется в '&lt;'

  • '>' (знак "больше чем") преобразуется в '&gt;'

Пример 1. Пример использования htmlspecialchars()

<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>

Обратите внимание, что функция не производит других преобразований кроме описанных выше. Для преобразования всех HTML сущностей используйте htmlentities(). Поддержка необязательного второго аргумента была добавлена в PHP 3.0.17 и PHP 4.0.3.

Необязательный третий аргумент charset определяет кодировку, используемую при преобразовании. По умолчанию используется кодировка ISO-8859-1. Поддержка этого аргумента была добавлена в PHP 4.1.0.

Начиная с PHP 4.3.0 поддерживаются следующие кодировки.

Таблица 1. Поддерживаемые кодировки

Кодировка | Псевдонимы | Описание
ISO-8859-1 | ISO8859-1 | Западно-европейская Latin-1
ISO-8859-15 | ISO8859-15 | Западно-европейская Latin-9. Добавляет знак евро, французские и финские буквы к кодировке Latin-1(ISO-8859-1).
UTF-8 |  | 8-битная Unicode, совместимая с ASCII.
cp866 | ibm866, 866 | Кириллическая кодировка, применяемая в DOS. Поддерживается в версии 4.3.2.
cp1251 | Windows-1251, win-1251, 1251 | Кириллическая кодировка, применяемая в Windows. Поддерживается в версии 4.3.2.
cp1252 | Windows-1252, 1252 | Западно-европейская кодировка, применяемая в Windows.
KOI8-R | koi8-ru, koi8r | Русская кодировка. Поддерживается в версии 4.3.2.
BIG5 | 950 | Традиционный китайский, применяется в основном на Тайване.
GB2312 | 936 | Упрощенный китайский, стандартная национальная кодировка.
BIG5-HKSCS |  | Расширенная Big5, применяемая в Гонг-Конге.
Shift_JIS | SJIS, 932 | Японская кодировка.
EUC-JP | EUCJP | Японская кодировка.

Замечание: Не перечисленные выше кодировки не поддерживаются, и вместо них применяется ISO-8859-1.

См. также описание функций get_html_translation_table(),
strip_tags(), htmlentities()
и nl2br().

Пред. | Начало | След.
htmlspecialchars_decode | Уровень выше | implode


implode

(PHP 3, PHP 4, PHP 5)

implode -- Объединяет элементы массива в строку

Описание

string implode ( string glue, array pieces )

Возвращает строку, полученную объединением строковых представлений элементов массива pieces, со вставкой строки glue между соседними элементами.

Пример 1. Пример использования implode()

<?php

$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);

echo $comma_separated; // lastname,email,phone

?>

Замечание: По историческим причинам, функции implode() можно передавать аргументы в любом порядке, однако для унификации с функцией explode() следует использовать документированный порядок аргументов.

Замечание: Начиная с версии 4.3.0 аргумент glue функции implode() является необязательным и по умолчанию равен пустой строке (''). Для обеспечении обратной совместимости рекомендуется всегда передавать оба аргумента.

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

См. также описания функций explode() и split().

Пред. | Начало | След.
htmlspecialchars | Уровень выше | join


join

(PHP 3, PHP 4, PHP 5)

join -- Псевдоним функции implode()

Описание

Эта функция является псевдонимом функции implode().

Пред. | Начало | След.
implode | Уровень выше | levenshtein


levenshtein

(PHP 3 >= 3.0.17, PHP 4 >= 4.0.1, PHP 5)

levenshtein -- Вычисляет расстояние Левенштейна между двумя строками

Описание

int levenshtein ( string str1, string str2 )

int levenshtein ( string str1, string str2, int cost_ins, int cost_rep, int cost_del )

int levenshtein ( string str1, string str2, function cost )

Функция возвращает расстояние Левенштейна между двумя строками, или -1, если хотя бы одна из строк длиннее 255 символов (этого более чем достаточно для сравнения имен или поиска по словарю, а проводить генетический анализ на PHP просто несерьезно).

Расстояние Левенштейна - это минимальное количество вставок, замен и удалений символов, необходимое для преобразования str1 в str2. Сложность алгоритма равна O(m*n), где n и m - длины строк str1 и str2 (неплохо по сравнению с similar_text(), имеющей сложность O(max(n,m)**3), но все же довольно много).

В простейшей форме функция принимает в качестве аргументов две строки и возвращает минимальное количество вставок, замен и удалений символов, необходимое для преобразования str1 в str2.

Второй вариант принимает три дополнительных аргумента, задающих стоимость операций вставки, замены и удаления. Этот вариант универсальнее первого, но не так эффективен.

Третий вариант (который еще не реализован) будет наиболее универсальным, но и самым медленным. Он будет принимать в качестве третьего аргумента пользовательскую функцию, которая будет вычислять стоимость каждой возможной операции.

Пользовательская функция будет иметь следующие аргументы:

  • тип операции: 'I', 'R' or 'D'

  • текущий символ в строке 1

  • текущий символ в строке 2

  • текущая позиция символа в строке 1

  • текущая позиция символа в строке 2

  • количество символов, оставшихся в строке 1

  • количество символов, оставшихся в строке 2

Пользовательская функция должна возвращать положительное целое, определяющее стоимость конкретной операции.

Использование пользовательской функции позволяет учитывать различия между символами и даже контекст символов при вычислении стоимости операций вставки, замены и удаления, но ценой потери скорости по сравнению с двумя первыми вариантами.

См. также описание функций soundex(),
similar_text() и
metaphone().

Пред. | Начало | След.
join | Уровень выше | localeconv


localeconv

(PHP 4 >= 4.0.5, PHP 5)

localeconv -- Возвращает информацию о числовых форматах

Описание

array localeconv ( void )

Возвращает ассоциативный массив с информацией о числовых и денежных форматах в текущей локали.

localeconv() возвращает данные, основанные на текущей локали, установленной функцией setlocale(). Возвращаемый массив содержит следующие элементы:

Элемент | Описание
decimal_point | Символ десятичной точки
thousands_sep | Разделитель групп
grouping | Массив, содержащий количества цифр в группах для числовых данных
int_curr_symbol | Международное обозначение валюты (например RUR)
currency_symbol | Национальное обозначение валюты (например р.)
mon_decimal_point | Символ десятичной точки в денежном формате
mon_thousands_sep | Разделитель групп в денежном формате
mon_grouping | Массив, содержащий количества цифр в группах для денежных данных
positive_sign | Знак для положительных чисел
negative_sign | Знак для отрицательных чисел
int_frac_digits | Число разрядов после точки (международное)
frac_digits | Число разрядов после точки (национальное)
p_cs_precedes | TRUE если currency_symbol записывется перед положительным значением, иначе FALSE
p_sep_by_space | TRUE если currency_symbol отделяется от положительного значения пробелом, иначе FALSE
n_cs_precedes | TRUE если currency_symbol записывется перед отрицательным значением, иначе FALSE
n_sep_by_space | TRUE если currency_symbol отделяется от отрицательного значения пробелом, иначе FALSE
p_sign_posn Для положительных чисел

0 | Число и обозначение валюты заключаются в скобки
1 | Знак записывается перед числом и обозначением валюты
2 | Знак записывается после числа и обозначения валюты
3 | Знак записывается перед обозначением валюты
4 | Знак записывается после обозначения валюты

n_sign_posn Для отрицательных чисел

0 | Число и обозначение валюты заключаются в скобки
1 | Знак записывается перед числом и обозначением валюты
2 | Знак записывается после числа и обозначения валюты
3 | Знак записывается перед обозначением валюты
4 | Знак записывается после обозначения валюты

Элементы группировки описывают способ группировки цифр. Например, в локали en_US элемент grouping содержит массив из 2 элементов со значениями 3 и 3. Больший индек массива соответствует группировке цифр, расположенных левее. Если элемент массива равен CHAR_MAX, последующие цифры не группируются. Если элемент массива равен 0, используется значение предыдущего элемента.

Пример 1. Пример использования localeconv()

<?php
setlocale(LC_ALL, "ru_RU");

$locale_info = localeconv();

echo "<pre>\n";
echo "----------------------------------------------\n";
echo "Информация о форматировании числовых величин:  \n";
echo "----------------------------------------------\n\n";

echo "int_curr_symbol:   {$locale_info["int_curr_symbol"]}\n";
echo "currency_symbol:   {$locale_info["currency_symbol"]}\n";
echo "mon_decimal_point: {$locale_info["mon_decimal_point"]}\n";
echo "mon_thousands_sep: {$locale_info["mon_thousands_sep"]}\n";
echo "positive_sign:     {$locale_info["positive_sign"]}\n";
echo "negative_sign:     {$locale_info["negative_sign"]}\n";
echo "int_frac_digits:   {$locale_info["int_frac_digits"]}\n";
echo "frac_digits:       {$locale_info["frac_digits"]}\n";
echo "p_cs_precedes:     {$locale_info["p_cs_precedes"]}\n";
echo "p_sep_by_space:    {$locale_info["p_sep_by_space"]}\n";
echo "n_cs_precedes:     {$locale_info["n_cs_precedes"]}\n";
echo "n_sep_by_space:    {$locale_info["n_sep_by_space"]}\n";
echo "p_sign_posn:       {$locale_info["p_sign_posn"]}\n";
echo "n_sign_posn:       {$locale_info["n_sign_posn"]}\n";
echo "</pre>\n";
?>

Использование константы CHAR_MAX описано выше.

См. также описание функции setlocale().

Пред. | Начало | След.
levenshtein | Уровень выше | ltrim


ltrim

(PHP 3, PHP 4, PHP 5)

ltrim -- Удаляет пробелы из начала строки

Описание

string ltrim ( string str [, string charlist] )

Замечание: Второй аргумент был добавлен в PHP 4.1.0

Эта функция возвращает строку str с удаленными из начала строки пробелами. Если второй параметр не передан, ltrim() удаляет следующие символы:

  • " " (ASCII 32 (0x20)), символ пробела.

  • "\t" (ASCII 9 (0x09)), символ табуляции.

  • "\n" (ASCII 10 (0x0A)), символ перевода строки.

  • "\r" (ASCII 13 (0x0D)), символ возврата каретки.

  • "\0" (ASCII 0 (0x00)), NUL-байт.

  • "\x0B" (ASCII 11 (0x0B)), вертикальная табуляция.

Можно также задать список символов для удаления с помощью аргумента charlist. С помощью .. можно задать диапазон символов.

Пример 1. Пример использования ltrim()

<?php

$text = "\t\tЛишь несколько слов :) ...  ";
$trimmed = ltrim($text);
// $trimmed = "Лишь несколько слов :) ...  "
$trimmed = ltrim($text, " \t.");
// $trimmed = "Лишь несколько слов :) ...  "
$clean = ltrim($binary, "\x00..\x1F");
// удалить управляющие символы ASCII из начала строки $binary
// (от 0 до 31 включительно)

?>

См. также описание функций trim() и rtrim().

Пред. | Начало | След.
localeconv | Уровень выше | md5_file


md5_file

(PHP 4 >= 4.2.0, PHP 5)

md5_file -- Возвращает MD5 хэш файла

Description

string md5_file ( string filename [, bool raw_output] )

Вычисляет MD5 хэш файла, имя которого задано аргументом filename используя алгоритм MD5 RSA Data Security, Inc. и возвращает этот хэш. Хэш представляет собой 32-значное шестнадцатеричное число. Если необязательный аргумент raw_output имеет значение TRUE, то возвращается бинарная строка из 16 символов.

Замечание: Необязательный аргумент raw_output был добавлен в PHP 5.0.0 и по умолчанию равен FALSE

По назначению эта функция аналогична консольной программе md5sum.

См. также описание функций
md5(),
crc32() и
sha1_file().

Пред. | Начало | След.
ltrim | Уровень выше | md5


md5

(PHP 3, PHP 4, PHP 5)

md5 -- Возвращает MD5 хэш строки

Описание

string md5 ( string str [, bool raw_output] )

Вычисляет MD5 хэш строки str используя алгоритм MD5 RSA Data Security, Inc. и возвращает этот хэш. Хэш представляет собой 32-значное шестнадцатеричное число. Если необязательный аргумент raw_output имеет значение TRUE, то возвращается бинарная строка из 16 символов.

Замечание: Необязательный аргумент raw_output был добавлен в PHP 5.0.0 и по умолчанию равен FALSE

Пример 1. Пример использования md5()

<?php
$str = 'apple';

if (md5($str) === '1f3870be274f6c49b3e31a0c6728957f') {
    echo "Would you like a green or red apple?";
    exit;
}
?>

См. также описание функций crc32(), md5_file() и sha1().

Пред. | Начало | След.
md5_file | Уровень выше | metaphone


metaphone

(PHP 4, PHP 5)

metaphone -- Возвращает ключ metaphone для строки

Description

string metaphone ( string str )

Возвращает ключ metaphone для строки str.

Подобно функции soundex(),metaphone возвращает одинаковое значение для слов, имеющих сходное произношение. Эта функция более точна, чем soundex(), так как учитывает основные правила произношения английского языка. В отличие от soundex(), длина возвращаемой строки не фиксирована.

Функция metaphone была написана Lawrence Philips <lphilips at verity dot com> и описана в книге "Practical Algorithms for Programmers", Binstock & Rex, Addison Wesley, 1995.

Пред. | Начало | След.
md5 | Уровень выше | money_format


money_format

(PHP 4 >= 4.3.0, PHP 5)

money_format -- Форматирует число как денежную величину

Описание

string money_format ( string format, float number )

money_format() форматирует число number как денежную величину. Эта функция вызывает функцию strfmon языка C, но позволяет преобразовать только одно число за один вызов.

Замечание: Функция money_format() определена только если в системе присутствует функция strfmon. Например, в Windows она отсутствует, поэтому money_format() не определена в Windows.

Описание формата состоит из:

  • символа %

  • необязательных флагов

  • необязательной ширины поля

  • необязательной точности до запятой

  • необязательной точности после запятой

  • обязательного описателя преобразования

Флаги. Могут быть использованы следующие флаги:

=f

Символ =, за которым следует еще один символ, задает символ заполнения. По умолчанию пробел.

^

Запрещает группировку символов (определяемую текущей локалью).

+ или (

Задает способ форматирования положительных и отрицательных значений. При использовании + будут использоваться аналоги символов + и - из текущей локали. Если указана (, отрицательные числа будут заключены в скобки. По умолчанию +.

!

Подавляет вывод символа валюты.

-

Если этот флаг задан, поля будут выравнены влево, вместо используемого по умолчанию выравнивания вправо.

Ширина поля.

w

Строка из десятичных цифр, задающая минимальную ширину поля. Поле будет выравнено вправо, если не указан флаг -. Значение по умолчанию - 0 (ноль).

Точность до запятой.

#n

Максимальное количество цифр (n), которое ожидается до запятой. Это обычно используется при выводе значений одно под другим, чтобы десятичные точки распологались в одной колонке, при этом используется символ заполнения, если число цифр меньше n. Если число цифр больше n, этот параметр игнорируется.

Если группировка не была запрещена флагом ^, разделители групп будут вставлены перед добавлением символов заполнения. Разделители групп не вставляются между символами заполнения, даже если заполнитель - цифра.

Для обеспечения выравнивания, все символы, выводимые до или после числа, такие как сивол валюты или знак, будут дополнены пробелами до одинаковой ширины.

Точность после запятой .

.p

Точка, за которой следует число знаков, выводимых после запятой. Если значение p рано нулю, десятичная точка и цифры после нее не будут выводиться. Если этот параметр отсутствует, число знаков после запятой определяется текущей локалью. Перед форматированием число округляется до указанного количества знаков.

Описатель преобразования .

i

Используется международный денежный формат из текущей локали (например, для американской локали: USD 1,234.56).

n

Используется национальный денежный формат из текущей локали (например, для локали de_DE: DM1.234,56).

%

Вставляет символ %.

Замечание: На работу этой функции влияет установка категории LC_MONETARY текущей локали. Перед использованием этой функции установите нужную локаль с помощью setlocale().

Символы перед и после описания формата возвращаются без изменений.

Пример 1. Пример использования money_format()

Проиллюстрируем применение этой функции для различных локалей и разных описаний формата.

<?php

$number = 1234.56;

// международный формат в локали en_US
setlocale(LC_MONETARY, 'en_US');
echo money_format('%i', $number) . "\n";
// USD 1,234.56

// Итальянский национальный формат с 2 знаками после запятой
setlocale(LC_MONETARY, 'it_IT');
echo money_format('%.2n', $number) . "\n";
// L. 1.234,56

// Использование отрицательных чисел
$number = -1234.5672;

// национальный формат США, с использованием скобок для
// отрицательных чисел и 10 знаков до запятой
setlocale(LC_MONETARY, 'en_US');
echo money_format('%(#10n', $number) . "\n";
// ($        1,234.57)

// подобно предыдущему, но с  добавлением 2 знаков после запятой
// и '*' в качестве символа заполнения
echo money_format('%=*(#10.2n', $number) . "\n";
// ($********1,234.57)

// Выравнивание влево, ширина 14 знаков, 8 знаков дозапятой,
// 2 знака после запятой, без разбиения на группы
// с использованием  международного формата в локали de_DE.
setlocale(LC_MONETARY, 'de_DE');
echo money_format('%=*^-14#8.2i', 1234.56) . "\n";
// DEM 1234,56****

// А теперь добавим текст перед и после описателя формата
setlocale(LC_MONETARY, 'en_GB');
$fmt = 'The final value is %i (after a 10%% discount)';
echo money_format($fmt, 1234.56) . "\n";
// The final value is  GBP 1,234.56 (after a 10% discount)

?>

См. также описание функций setlocale(),
number_format(),sprintf(),
printf() и sscanf().

Пред. | Начало | След.
metaphone | Уровень выше | nl_langinfo


nl_langinfo

(PHP 4 >= 4.1.0, PHP 5)

nl_langinfo -- Возвращает информацию о языке и локали

Описание

string nl_langinfo ( int item )

nl_langinfo() используется для доступа к отдельным элементам различных категорий текущей локали. В отличии от localeconv(), возвращающей все элементы, nl_langinfo() позволяет выбрать отдельный элемент.

Если аргумент item имеет недопустимое значение, возвращает FALSE.

item может быть целым числом или соответствующей константой. Ниже приведены возможные константы и их описания. Для некоторых локалей отдельные константы могут быть неопределены.

Таблица 1. Константы nl_langinfo

Константа | Описание
Константы в категории LC_TIME
ABDAY_(1-7) | Сокращенное название n-го дня недели.
DAY_(1-7) | Полное название n-го дня недели (DAY_1 соответствует воскресенью).
ABMON_(1-12) | Сокращенное название n-го месяца.
MON_(1-12) | Полное название n-го месяца.
AM_STR | Обозначение "до полудня".
PM_STR | Обозначение "после полудня".
D_T_FMT | Строка, которую можно использовать в качестве формата с функцией strftime() для вывода даты и времени.
D_FMT | Строка, которую можно использовать в качестве формата с функцией strftime() для вывода даты.
T_FMT | Строка, которую можно использовать в качестве формата с функцией strftime() для вывода времени.
T_FMT_AMPM | Строка, которую можно использовать в качестве формата с функцией strftime() для вывода времени в 12-часовом формате.
ERA | Эра
ERA_YEAR | Год в формате с эрой
ERA_D_T_FMT | Дата и время в формате с эрой (Строка, которую можно использовать в качестве формата с функцией strftime()).
ERA_D_FMT | Дата в формате с эрой (Строка, которую можно использовать в качестве формата с функцией strftime()).
ERA_T_FMT | Время в формате с эрой (Строка, которую можно использовать в качестве формата с функцией strftime()).
Константы в категории LC_MONETARY
INT_CURR_SYMBOL | Международное обозначение валюты.
CURRENCY_SYMBOL | Национальное обозначение валюты.
CRNCYSTR | Аналог CURRENCY_SYMBOL.
MON_DECIMAL_POINT | Символ десятичной точки.
MON_THOUSANDS_SEP | Разделитель тысяч (групп из 3 цифр).
MON_GROUPING | Аналогичен элементу 'grouping'.
POSITIVE_SIGN | Знак для положительных чисел.
NEGATIVE_SIGN | Знак для отрицательных чисел.
INT_FRAC_DIGITS | Количество знаков после запятой (международный формат).
FRAC_DIGITS | Количество знаков после запятой (национальный формат).
P_CS_PRECEDES | Возвращает 1, если CURRENCY_SYMBOL записывется перед положительным значением.
P_SEP_BY_SPACE | Возвращает 1, если CURRENCY_SYMBOL отделяется от положительного значения пробелом.
N_CS_PRECEDES | Возвращает 1, если CURRENCY_SYMBOL записывется перед отрицательным значением.
N_SEP_BY_SPACE | Возвращает 1, если CURRENCY_SYMBOL отделяется от отрицательного значения пробелом.
P_SIGN_POSN

  • Возвращает 0 если число и обозначение валюты заключаются в скобки

  • Возвращает 1 если знак записывается перед числом и обозначением валюты

  • Возвращает 2 если знак записывается после числа и обозначения валюты

  • Возвращает 3 если знак записывается перед обозначением валюты

  • Возвращает 4 если знак записывается после обозначения валюты

N_SIGN_POSN
Константы в категории LC_NUMERIC
DECIMAL_POINT | Символ десятичной точки.
RADIXCHAR | Аналогично DECIMAL_POINT.
THOUSANDS_SEP | Разделитель тысяч (групп из 3 цифр).
THOUSEP | Аналогично THOUSANDS_SEP.
GROUPING
Константы в категории LC_MESSAGES
YESEXPR | Регулярное выражение, при совпадении с которым строка рассматривается как ответ 'да'.
NOEXPR | Регулярное выражение, при совпадении с которым строка рассматривается как ответ 'нет'.
YESSTR | Слово 'да'.
NOSTR | Слово 'нет'.
Константы в категории LC_CTYPE
CODESET | Возвращает строку с именем текущей кодировки.

Замечание: Для Windows-платформ эта функция не реализована.

See also setlocale() and localeconv().

Пред. | Начало | След.
money_format | Уровень выше | nl2br


nl2br

(PHP 3, PHP 4, PHP 5)

nl2br -- Вставляет HTML код разрыва строки перед каждым переводом строки

Description

string nl2br ( string string )

Возвращает строку string, в которой перед каждым переводом строки вставлен '<br />'

Замечание: Начиная с PHP 4.0.5, nl2br() работает в соответствии со стандартом XHTML. До версии 4.0.5 использовалось '<br>' вместо '<br />'.

Пример 1. Пример использования nl2br()

<?php
echo nl2br("foo - это вам не\n bar");
?>

выведет:

foo - этовам не<br />
 bar

См. также описание функций htmlspecialchars(),
htmlentities(),
wordwrap() и
str_replace().

Пред. | Начало | След.
nl_langinfo | Уровень выше | number_format


number_format

(PHP 3, PHP 4, PHP 5)

number_format -- Форматирует число с разделением групп

Описание

string number_format ( float number [, int decimals] )

string number_format ( float number, int decimals, string dec_point, string thousands_sep )

number_format() возвращает отформатированное число number. Функция принимает один, два или четыре аргумента (не три):

Если передан только один аргумент, number будет отформатирован без дробной части, но с запятой (",") между группами цифр по 3.

Если переданы два аргумента, number будет отформатирован с decimals знаками после точки (".") и с запятой (",") между группами цифр по 3.

Если переданы все четыре аргумента, number будет отформатирован с decimals знаками после точки и с разделитилем между группами цифр по 3, при этом в качестве десятичной точки будет использован dec_point, а в качестве разделителя групп - thousands_sep.

Используется только первый символ строки thousands_sep. Например, при передаче foo в качестве thousands_sep для форматирования числа 1000, number_format() возвращает 1f000.

Пример 1. Пример использования number_format()

Во Франции обычно используются 2 знака после запятой (','), и пробел (' ') в качестве разделителя групп. Такое форматирование получается при использовании следующего кода :

<?php

$number = 1234.56;

// английский формат (по умолчанию)
$english_format_number = number_format($number);
// 1,234

// французский формат
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56

$number = 1234.5678;

// английский формат без разделителей групп
$english_format_number = number_format($number, 2, '.', '');
// 1234.57

?>

См. также описание функций sprintf(), printf() и sscanf().

Пред. | Начало | След.
nl2br | Уровень выше | ord


ord

(PHP 3, PHP 4, PHP 5)

ord -- Возвращает ASCII код символа

Описание

int ord ( string string )

Возвращает ASCII код первого символа строки string. Эта функция дополняет функцию chr().

Пример 1. Пример использования ord()

<?php
$str = "\n";
if (ord($str) == 10) {
    echo "Первый символ \$str - перевод строки.\n";
}
?>

Таблицу ASCII кодов символов можно найти здесь: http://www.asciitable.com.

См. также описание функции chr().

Пред. | Начало | След.
number_format | Уровень выше | parse_str


parse_str

(PHP 3, PHP 4, PHP 5)

parse_str -- Разбирает строку в переменные

Description

void parse_str ( string str [, array arr] )

Разбирает строку str,которая должна иметь формат строки запроса URL и присваивает значения переменным в текущем контексте, если не передан второй аргумент arr. В последнем случае значения будкт сохранены в этой переменной как элементы массива.

Замечание: Поддержка необязательного второго аргумента была добавлена в PHP 4.0.3.

Замечание: Для получения текущей строки запроса (QUERY_STRING) может быть использована переменная $_SERVER['QUERY_STRING']. Также ознакомьтесь с разделом "Переменные вне PHP".

Пример 1. Использование parse_str()

<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo $first;  // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz

parse_str($str, $output);
echo $output['first'];  // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz

?>

См. также описание функций parse_url(),
pathinfo(),
set_magic_quotes_runtime() и
urldecode().

Пред. | Начало | След.
ord | Уровень выше | print


print

(PHP 3, PHP 4, PHP 5)

print -- Выводит строку

Description

int print ( string arg )

Выводит arg. Всегда возвращает 1.

print() не является "настоящей" функцией (это конструкция языка) поэтому заключать аргумент в скобки не обязательно.

Пример 1. Примеры использования print()

<?php
print ("Привет мир!");

print "print() можно использовать и без скобок.";

print "Это занимет
несколько строк. Переводы строки тоже
выводятся";

print "Это занимет\nнесколько строк. Переводы строки тоже\nвыводятся";

print "Экранирование символов делается \"Так\".";

// с print можно использовать переменные ...
$foo = "foobar";
$bar = "barbaz";

print "foo - это $foo"; // foo - это foobar

// ... и массивы
$bar = array("value" => "foo");

print "это {$bar['value']} !"; // это foo !

// При использовании одиночных кавычек выводится
// имя переменной,а не значение
print 'foo - это $foo'; // foo - это $foo

// можно вывести просто значения переменных
print $foo;          // foobar
print $foo,$bar;     // foobarbarbaz

print <<<END
Здесь используется синтаксис "here document" для вывода
нескольких строк с подстановкой переменных $variable.
Заметьте,что закрывающий идентификатор должен
располагаться в отдельной строке. никаких пробелов!
END;
?>

Различия между print() и echo() рассматриваются в этой статье: http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций

См. также описания функций echo(), printf() и flush().

Пред. | Начало | След.
parse_str | Уровень выше | printf


printf

(PHP 3, PHP 4, PHP 5)

printf -- Выводит отформатированную строку

Описание

int printf ( string format [, mixed args] )

Выводит строку, отформатированную в соответствии с аргументом format, описанном в документации функции sprintf().

Возвращает длину выведенной строки

См. также описания функций
print(),
sprintf(),
vprintf(),
sscanf(),
fscanf() и
flush().

Пред. | Начало | След.
print | Уровень выше | quoted_printable_decode


quoted_printable_decode

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

quoted_printable_decode -- Раскодирует строку, закодированную методом quoted printable

Описание

string quoted_printable_decode ( string str )

Возращает строку, полученную декодированием str методом quoted printable. Эта функция подобна функции imap_qprint(), но не требует для своей работы модуля IMAP.

Пред. | Начало | След.
printf | Уровень выше | quotemeta


quotemeta

(PHP 3, PHP 4, PHP 5)

quotemeta -- Экранирует специальные символы

Описание

string quotemeta ( string str )

Возвращает строку str, в которой вставлен обратный слэш (\) перед каждым символом из следующего списка:
. \\ + * ? [ ^ ] ( $ )

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

См. также описания функций addslashes(),
htmlentities(),
htmlspecialchars(),
nl2br() и
stripslashes().

Пред. | Начало | След.
quoted_printable_decode | Уровень выше | rtrim


rtrim

(PHP 3, PHP 4, PHP 5)

rtrim -- Удаляет пробелы из конца строки

Описание

string rtrim ( string str [, string charlist] )

Замечание: Второй аргумент был добавлен в PHP 4.1.0

Эта функция возвращает строку str с удаленными из конца строки пробелами. Если второй параметр не передан, rtrim() удаляет следующие символы:

  • " " (ASCII 32 (0x20)), символ пробела.

  • "\t" (ASCII 9 (0x09)), символ табуляции.

  • "\n" (ASCII 10 (0x0A)), символ перевода строки.

  • "\r" (ASCII 13 (0x0D)), символ возврата каретки.

  • "\0" (ASCII 0 (0x00)), NUL-байт.

  • "\x0B" (ASCII 11 (0x0B)), вертикальная табуляция.

Можно также задать список символов для удаления с помощью аргумента charlist. С помощью .. можно задать диапазон символов.

Пример 1. Пример использования rtrim()

<?php

$text = "\t\tЛишь несколько слов :) ...  ";
$trimmed = rtrim($text);
// $trimmed = "\t\tЛишь несколько слов :) ..."
$trimmed = rtrim($text, " \t.");
// $trimmed = "\t\tЛишь несколько слов :)"
$clean = ltrim($binary, "\x00..\x1F");
// удалить управляющие символы ASCII из конца строки $binary
// (от 0 до 31 включительно)

?>

См. также описание функций trim() и ltrim().

Пред. | Начало | След.
quotemeta | Уровень выше | setlocale


setlocale

(PHP 3, PHP 4, PHP 5)

setlocale -- Устанавливает локаль

Описание

string setlocale ( mixed category, string locale [, string ...] )

string setlocale ( mixed category, array locale )

category - строка или константа, задающая категорию функций, на которые будет влиять установка локали:

  • LC_ALL - все функции

  • LC_COLLATE - функции сравнения строк, см. strcoll()

  • LC_CTYPE - функции преобразования строк, например strtoupper()

  • LC_MONETARY - функция localeconv()

  • LC_NUMERIC - задает символ десятичной точки (см. также localeconv())

  • LC_TIME - форматирование дат функцией strftime()

Замечание: Начиная с 4.2.0, передача category в виде строки не поддерживается, рекомендуется использовать перечисленные константы. Передача этих констант как строк (в кавычках) вызовет вывод предупреждения.

Если в качестве locale передана пустая строка "", имена локалей будут взяты из соответствующих переменных окружения или переменной с именем "LANG".

Если в качестве locale передан NULL или "0", локаль изменена не будет, а будет возвращено текущее значение.

Если в качестве locale передан массив, или после этого аргумента следуют дополнительные аргументы, функция будет использовать элементы массива или аргументы по порядку в качестве имен локали до тех пор, пока установка локали не будет успешной. Это удобно, если одна и та же локаль имеет разное имя в различных системах, или необходимая локаль может отсутствовать в системе.

Замечание: Передача нескольких локалей доступна начиная с PHP 4.3.0

Setlocale возвращает имя вновь установленной локали или FALSE если системе не поддерживает установку локали, указанная локаль не существует или передано недопустимое имя категории. Недопустимое имя категории также вызывает предупредение. Имена локалей и категорий описаны в RFC 1766 и ISO 639.

Замечание: Возвращаемое функцией setlocale() значение зависит от системы - это значение, возвращаемое системной функцией setlocale.

Подсказка: Полезная информация о значениях аргумента locale в Windows содержится на сайте MSDN. Поддерживаемые языки перечислены здесь: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_language_strings.asp, поддерживаемые коды стран/регионов - здесь: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_country_strings.asp. Windows поддерживает трехбуквенные коды стран/регионов, определенные в стандарте ISO 3166-Alpha-3, который можно найти на этом сайте Unicode.

Пример 1. Примеры использования setlocale()

<?php
/* Установка голландской локали */
setlocale(LC_ALL, 'nl_NL');

/* выводит: vrijdag 22 december 1978 */
echo strftime("%A %e %B %Y", mktime(0, 0, 0, 12, 22, 1978));

/* попытка использовать различные локали для  немецкого языка (с PHP 4.3.0) */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
echo "На этой системе немецкая локаль имеет имя '$loc_de'";
?>

Пример 2. Примеры использования setlocale() в Windows

<?php
/* Установка голландской локали */
setlocale(LC_ALL, 'nl_NL');

/* выводит: vrijdag 22 december 1978 */
echo strftime("%A %d %B %Y", mktime(0, 0, 0, 12, 22, 1978));

/* попытка использовать различные локали для  немецкого языка (с PHP 4.3.0) */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
echo "На этой системе немецкая локаль имеет имя '$loc_de'";
?>

Пред. | Начало | След.
rtrim | Уровень выше | sha1_file


sha1_file

(PHP 4 >= 4.3.0, PHP 5)

sha1_file -- Возвращает SHA1 хэш файла

Описание

string sha1_file ( string filename [, bool raw_output] )

Вычисляет SHA1 хэш файла, имя которого задано аргументом filename, используя алгоритм US Secure Hash Algorithm 1 и возвращает этот хэш. Хэш представляет собой 40-значное шестнадцатеричное число. Если необязательный аргумент raw_output имеет значение TRUE, то возвращается двоичная строка из 20 символов.

Замечание: Необязательный аргумент raw_output был добавлен в PHP 5.0.0 и по умолчанию равен FALSE

См. также описание функций sha1(), crc32() и md5_file().

Пред. | Начало | След.
setlocale | Уровень выше | sha1


sha1

(PHP 4 >= 4.3.0, PHP 5)

sha1 -- Возвращает SHA1 хэш строки

Описание

string sha1 ( string str [, bool raw_output] )

Возвращает хэш строки str, вычисленный по алгоритму US Secure Hash Algorithm 1. Хэш представляет собой 40-разрядное шестнадцатиричное число. Если необязательный аргумент raw_output имет значение TRUE, хэш возвращается в виде двоичной строки из 20 символов.

Замечание: Необязательный аргумент raw_output был добавлен в PHP 5.0.0 и по умолчанию равен FALSE.

Пример 1. Пример использования sha1()

<?php
$str = 'яблоко';

if (sha1($str) === '6099a566a619528259db5aa8d7a5aa2d4122259a') {
    echo "Желаете зеленое или красное яблоко?";
    exit;
}
?>

См. также описание функций
sha1_file(),
crc32() и
md5().

Пред. | Начало | След.
sha1_file | Уровень выше | similar_text


similar_text

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

similar_text -- Вычисляет степень похожести двух строк

Описание

int similar_text ( string first, string second [, float percent] )

Вычисляет степень похожести двух строк по алгоритму, описанному Oliver [1993]. Эта реализация алгоритма не использует стэка, использованного в оригинале, вместо этого применяются рекурсивные вызовы, что в некоторых случаях может ускорить процесс. Сложность алгоритма составляет O(N**3), где N - длина более длинной из двух строк.

При передаче по ссылке третьего аргумента, ему присваивается степень похожести двух строк в процентах. Возвращается количество совпадающих символов в двух строках.

Пред. | Начало | След.
sha1 | Уровень выше | soundex


soundex

(PHP 3, PHP 4, PHP 5)

soundex -- Возвращает ключ soundex для строки

Описание

string soundex ( string str )

Возвращает ключ soundex для строки str.

Двум словам, имеющим схожее произношение, соответствует один и тот же ключ soundex. Это свойство может быть использовано, например, при поиске по базе даных, когда известно произношение слова и неизвестно его написание. Данная функция возвращает строку из 4 символов, начинающуюся с буквы.

Данная реализация функции soundex описана Дональдом Кнутом (Donald Knuth) в книге "The Art Of Computer Programming, vol. 3: Sorting And Searching", Addison-Wesley (1973), стр. 391-392.

Пример 1. Примеры soundex

<?php
soundex("Euler")       == soundex("Ellery"); // E460
soundex("Gauss")       == soundex("Ghosh"); // G200
soundex("Hilbert")     == soundex("Heilbronn"); // H416
soundex("Knuth")       == soundex("Kant"); // K530
soundex("Lloyd")       == soundex("Ladd"); // L300
soundex("Lukasiewicz") == soundex("Lissajous"); // L222
?>

См. также описание функций
levenshtein(),
metaphone() и
similar_text().

Пред. | Начало | След.
similar_text | Уровень выше | sprintf


sprintf

(PHP 3, PHP 4, PHP 5)

sprintf -- Возвращает отформатированную строку

Описание

string sprintf ( string format [, mixed args] )

Возвращает строку, созданную с использованием строки формата format.

Строка формата состоит из директив: обычных символов (за исключением %), которые копируются в результирующую строку, и описатели преобразований, каждый из которых заменяется на один из параметров. Это относится также к fprintf(), sprintf() и printf().

Каждый описатель прреобразований состоит из знака процента (%), за которым следует один или более дополнительных элементов (в том порядке, в котором они здесь перечислены):

  1. Необязательный описатель заполнения, который определяет, какой символ будет использоваться для дополнения результата до необходимой длины. Это может быть пробел или 0. По умолчанию используется пробел. Альтернативный символ может быть указан с помощью '. См. примеры ниже.

  2. Необязательный описатель выравнивания, определяющий выранивание влево или вправо. По умолчанию выравнивается вправо, - используется для выравнивания влево.

  3. Необязательное число, описатель ширины, определяющий минимальное число символов, которое будет содержать результат этого преобразования.

  4. Необязательный описатель точности, определяющий, сколько десятичных разрядов отображать для чисел с плавающей точкой. Имеет смысл только для числовых данных типа float. (Для форматирования чисел удобно также использовать функцию number_format().)

  5. Описатель типа, определяющий, как трактовать тип данных аргумента. Допустимые типы:

    % - символ процента. Аргумент не используется.
    b - аргумент трактуется как целое и выводится в виде двоичного числа.
    c - аргумент трактуется как целое и выводится в виде символа с соответствующим кодом ASCII.
    d - аргумент трактуется как целое и выводится в виде десятичного числа со знаком.
    e - аргумент трактуется как float и выводится в научной нотации (например 1.2e+2).
    u - аргумент трактуется как целое и выводится в виде десятичного числа без знака.
    f - аргумент трактуется как float и выводится в виде десятичного числа с плавающей точкой.
    o - аргумент трактуется как целое и выводится в виде восьмеричного числа.
    s - аргумент трактуется как строка.
    x - аргумент трактуется как целое и выводится в виде шестнадцатиричного числа (в нижнем регистре букв).
    X - аргумент трактуется как целое и выводится в виде шестнадцатиричного числа (в верхнем регистре букв).

Начиная с PHP 4.0.6 в строке формата поддерживается нумерация и изменение порядка параметров. Например:

Пример 1. Изменение порядка параметров

<?php
$format = "There are %d monkeys in the %s";
printf($format, $num, $location);
?>
Этот код выведет "There are 5 monkeys in the tree". Теперь представьте, что строка формата содержится в отдельном файле, который потом будет переведен на другой язык, и мы переписываем ее в таком виде:

Пример 2. Изменение порядка параметров

<?php
$format = "The %s contains %d monkeys";
printf($format, $num, $location);
?>
Появляется проблема: порядок описателей преобразования не соответствует порядку аргументов. Мы не хотим менять код, и нам нужно указать, какому аргументу соответствует тот или иной описатель преобразования.

Пример 3. Изменение порядка параметров

<?php
$format = "The %2\$s contains %1\$d monkeys";
printf($format, $num, $location);
?>
Нумерация аргументов имеет еще одно применение: она позволят вывести один и тот же аргумент несколько раз без передачи функции дополнительных параметров.

Пример 4. Изменение порядка параметров

<?php
$format = "The %2\$s contains %1\$d monkeys.
           That's a nice %2\$s full of %1\$d monkeys.";
printf($format, $num, $location);
?>

См. также описание функций printf(),
sscanf(), fscanf(),
vsprintf() и
number_format().

Примеры

Пример 5. sprintf(): заполнение нулями

<?php
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>

Пример 6. sprintf(): форматирование денежных величин

<?php
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money выведет "123.1";
$formatted = sprintf("%01.2f", $money);
// echo $formatted выведет "123.10"
?>

Пример 7. sprintf(): научная нотация

<?php
$number = 362525200;

echo sprintf("%.3e", $number); // выведет 3.63e+8
?>

Пред. | Начало | След.
soundex | Уровень выше | sscanf


sscanf

(PHP 4 >= 4.0.1, PHP 5)

sscanf -- Разбирает строку в соответствии с заданным форматом

Описание

mixed sscanf ( string str, string format [, mixed & ...] )

Функция sscanf() похожа на функцию printf(), но используется не для вывода, а для ввода данных. sscanf() интерпретирует строку str в соответствии с форматом format. Если переданы только эти два аргумента, будет возвращен массив. В противном случае, считанные из строки значения будкт присвоены переменным, переданным через дополнительные аргументы, и будет возвращено количество присвоенных значений. Дополнительные аргументы должны передаваться по ссылке.

Любые пробельные символы в строке формата соответствуют любым пробельным символам во входной строке. Это значит, что например символ табуляци \t в строке формата соответствует символу пробела во входной строке.

Пример 1. sscanf() Example

<?php
// получаем серийный номер
list($serial) = sscanf("SN/2350001", "SN/%d");
// и дату изготовления
$mandate = "Январь 01 2000";
list($month, $day, $year) = sscanf($mandate, "%s %d %d");
echo "Узел $serial был изготовлен: $year-" . substr($month, 0, 3) . "-$day\n";
?>
Если переданы необязательные аргументы, значения будут присвоены им, а возвращено будет количество присвоенных значений.

Пример 2. sscanf() - использование необязательных аргументов

<?php
// получить имя автора и сформировать запись в формате DocBook
$auth = "24\tLewis Carroll";
$n = sscanf($auth, "%d\t%s %s", $id, $first, $last);
echo "<author id='$id'>
    <firstname>$first</firstname>
    <surname>$last</surname>
</author>\n";
?>

См. также описание функций fscanf(), printf() и sprintf().

Пред. | Начало | След.
sprintf | Уровень выше | str_ireplace


str_ireplace

(PHP 5)

str_ireplace -- Регистро-независимый вариант функции str_replace().

Описание

mixed str_ireplace ( mixed search, mixed replace, mixed subject [, int &count] )

Эта функция возвращает строку или массив subject, в котором все вхождения search (без учета регистра символов) заменены на replace. Если не нужны сложные правила поиска/замены, использование этой функции предпочтительнее eregi_replace() или preg_replace() с модификатором i.

Если subject - массив, поиск и замена производится в каждом элементе этого массива, и возвращается также массив.

Если и search, и replace - массивы, то str_ireplace() использует все значения массива search и соответствующие значения массива replace для поиска и замены в subject. Если в массиве replace меньше элементов, чем в search, в качестве строки замены для оставшихся значений будет использована пустая строка. Если search - массив, а replace - строка, то replace будет использована как строка замены для каждого элемента массива search.

Пример 1. Пример использования str_ireplace()

<?php
$bodytag = str_ireplace("%body%", "black", "<body text=%BODY%>");
?>

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Замечание: Начиная с PHP 5.0.0 количество произведенных замен может быть получено в необязательном аргументе count, который передается по ссылке. В версиях до PHP 5.0.0 этот аргумент недоступен.

См. также описание функций
str_replace(),
ereg_replace(),
preg_replace() и
strtr().

Пред. | Начало | След.
sscanf | Уровень выше | str_pad


str_pad

(PHP 4 >= 4.0.1, PHP 5)

str_pad -- Дополняет строку другой строкой до заданной длины

Описание

string str_pad ( string input, int pad_length [, string pad_string [, int pad_type]] )

Эта функция возвращает строку input, дополненную слева, справа или с обоих сторон до заданной аргументом pad_length длины строкой pad_string. По умолчанию pad_string содержит пробел.

Необязательный аргумент pad_type может иметь значение STR_PAD_RIGHT, STR_PAD_LEFT или STR_PAD_BOTH, по умолчанию STR_PAD_RIGHT.

Если pad_length меньше длины строки input, строка возвращается без изменений.

Пример 1. Пример использования str_pad()

<?php
$input = "Alien";
echo str_pad($input, 10);                      // выводит "Alien     "
echo str_pad($input, 10, "-=", STR_PAD_LEFT);  // выводит "-=-=-Alien"
echo str_pad($input, 10, "_", STR_PAD_BOTH);   // выводит "__Alien___"
echo str_pad($input, 6 , "___");               // выводит "Alien_"
?>

Замечание: pad_string может быть обрезан, если необходимое количество дополнительных символов не делится нацело на длину строки pad_string.

Пред. | Начало | След.
str_ireplace | Уровень выше | str_repeat


str_repeat

(PHP 4, PHP 5)

str_repeat -- Возвращает повторяющуюся строку

Описание

string str_repeat ( string input, int multiplier )

Возвращает строку input_str, повторенную multiplier раз. multiplier должен быть больше или равен нулю. Если он равен нулю, возвращается пустая строка.

Пример 1. Пример использования str_repeat()

<?php
echo str_repeat("-=", 10);
?>

Выводит "-=-=-=-=-=-=-=-=-=-=".

См. также for, str_pad() и substr_count().

Пред. | Начало | След.
str_pad | Уровень выше | str_replace


str_replace

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

str_replace -- Заменяет строку поиска на строку замены

Описание

mixed str_replace ( mixed search, mixed replace, mixed subject [, int &count] )

Эта функция возвращает строку или массив subject, в котором все вхождения search заменены на replace. Если не нужны сложные правила поиска/замены, использование этой функции предпочтительнее ereg_replace() или preg_replace().

С версии PHP 4.0.5, любой аргумент str_replace() может быть массивом.

Внимание

В версиях младше 4.3.3 эта функция содержит ошибку при одновременной передаче массивов в аргументах search и replace. Ошибка заключается в том, что пустые элементы массива search пропускались без перемещения к следующему элементу массива replace. Эта ошибка была исправлена в PHP 4.3.3. Если ваши скрипты использовали эту ошибку, то в них нужно удалить пустые элементы из массива search перед вызовом этой функции.

Если subject - массив, поиск и замена производится в каждом элементе этого массива, и возвращается также массив.

Если и search, и replace - массивы, то str_replace() использует все значения массива search и соответствующие значения массива replace для поиска и замены в subject. Если в массиве replace меньше элементов, чем в search, в качестве строки замены для оставшихся значений будет использована пустая строка. Если search - массив, а replace - строка, то replace будет использована как строка замены для каждого элемента массива search.

Пример 1. Примеры использования str_replace()

<?php
// присваивает <body text='black'>
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");

// присваивает: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");

// присваивает: You should eat pizza, beer, and ice cream every day
$phrase  = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy   = array("pizza", "beer", "ice cream");

$newphrase = str_replace($healthy, $yummy, $phrase);

// начиная с версии 5.0.0 доступен аргумент count
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count; // 2
?>

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Замечание: Начиная с PHP 5.0.0 количество произведенных замен может быть получено в необязательном аргументе count, который передается по ссылке. В версиях до PHP 5.0.0 этот аргумент недоступен.

См. также описание функций
str_ireplace(),
substr_replace(),
ereg_replace(),
preg_replace() и
strtr().

Пред. | Начало | След.
str_repeat | Уровень выше | str_rot13


str_rot13

(PHP 4 >= 4.2.0, PHP 5)

str_rot13 -- Выполняет над строкой преобразование ROT13

Описание

string str_rot13 ( string str )

Выполняет над строкой str преобразование ROT13 и возвращает полученную строку. Преобразование ROT13 заключается в простом сдвиге каждой латинской буквы на 13 позиций в алфавите, остальные символы не изменяются. Обратное преобразование выполняется той же функцией.

Пример 1. Пример использования str_rot13()

<?php

echo str_rot13('PHP 4.3.0'); // CUC 4.3.0

?>

Замечание: В версиях младше 4.3.0 эта функция содержала ошибку, которая заключалась в том str также изменялась, как при передаче по ссылке.

Пред. | Начало | След.
str_replace | Уровень выше | str_shuffle


str_shuffle

(PHP 4 >= 4.3.0, PHP 5)

str_shuffle -- Переставляет символы в строке

Описание

string str_shuffle ( string str )

str_shuffle() переставляет символы в строке. Выбирается одна возможная перестановка из всех возможных.

Пример 1. Пример использования str_shuffle()

<?php
$str = 'abcdef';
$shuffled = str_shuffle($str);

// выведет что-то подобное этому: bfdaec
echo $shuffled;
?>

См. также описание функций shuffle() и rand().

Пред. | Начало | След.
str_rot13 | Уровень выше | str_split


str_split

(PHP 5)

str_split -- Преобразует строку в массив

Описание

array str_split ( string string [, int split_length] )

Преобразует строку в массив. Если указан необязательный аргумент split_length, возвращаемый массив будет содержать части исходной строки длиной split_length каждая, иначе каждый элемент будет содержать один символ.

Если split_length меньше 1, возвращается FALSE. Если split_length больше длины строки string, вся строка будет возвращена в первом и единственном элементе массива.

Пример 1. Примерв использования str_split()

<?php

$str = "Hello Friend";

$arr1 = str_split($str);
$arr2 = str_split($str, 3);

print_r($arr1);
print_r($arr2);

?>

Вывод:

Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
    [5] =>
    [6] => F
    [7] => r
    [8] => i
    [9] => e
    [10] => n
    [11] => d
)

Array
(
    [0] => Hel
    [1] => lo
    [2] => Fri
    [3] => end
)

См. также описание функций chunk_split(),
preg_split(),
split(),
count_chars() и
str_word_count(), а также
for.

Пред. | Начало | След.
str_shuffle | Уровень выше | str_word_count


str_word_count

(PHP 4 >= 4.3.0, PHP 5)

str_word_count -- Возвращает информацию о словах, входящих в строку

Описание

mixed str_word_count ( string string [, int format] )

Подсчитывает количество слов, входящих в строку string. Если необязательный аргумент format не передан, возвращается целое число, равное количеству слов. В случае, если аргумент format передан, возвращается массив, содержимое которого зависит от значения этого аргумента. Ниже описаны допустимые значения аргумента format и соответствующие им возвращаемые значения.

  • 1 - возвращается массив, содержащий все слова, входящие в строку string.

  • 2 - возвращается массив, индексами которого являются позиции в строке, а значениями - соответствующие слова.

Эта функция считает словами последовательности алфавитных символов, возможно, включающие, но не начинающихся с "'" и "-". Набор символов, считающихся алфавитными, зависит от текущей локали.

Пример 1. Пример использования str_word_count()

<?php

$str = "Hello friend, you're
        looking          good today!";

$a   = str_word_count($str, 1);
$b   = str_word_count($str, 2);
$c   = str_word_count($str);

print_r($a);
print_r($b);
echo $c;
?>

Вывод:

Array
(
    [0] => Hello
    [1] => friend
    [2] => you're
    [3] => looking
    [4] => good
    [5] => today
)

Array
(
    [0] => Hello
    [6] => friend
    [14] => you're
    [29] => looking
    [46] => good
    [51] => today
)

6

См. также описание функций explode(),
preg_split(),
split(),
count_chars() и
substr_count().

Пред. | Начало | След.
str_split | Уровень выше | strcasecmp


strcasecmp

(PHP 3 >= 3.0.2, PHP 4, PHP 5)

strcasecmp -- Сравнение строк без учета регистра, безопасное для данных в двоичной форме

Описание

int strcasecmp ( string str1, string str2 )

Возвращает отрицательное число, если str1 меньше, чем str2; положительное число, если str1 больше, чем str2, и 0 если строки равны.

Пример 1. Пример использования strcasecmp()

<?php
$var1 = "Hello";
$var2 = "hello";
if (strcasecmp($var1, $var2) == 0) {
    echo '$var1 равно $var2 при сравнении без учета регистра';
}
?>

См. также описание функций
ereg(),
strcmp(),
substr(),
stristr(),
strncasecmp() и
strstr().

Пред. | Начало | След.
str_word_count | Уровень выше | strchr


strchr

(PHP 3, PHP 4, PHP 5)

strchr -- Псевдоним функции strstr()

Описание

Эта функция является псевдонимом функции strstr().

Пред. | Начало | След.
strcasecmp | Уровень выше | strcmp


strcmp

(PHP 3, PHP 4, PHP 5)

strcmp -- Сравнение строк, безопасное для данных в двоичной форме

Описание

int strcmp ( string str1, string str2 )

Возвращает отрицательное число, если str1 меньше, чем str2; положительное число, если str1 больше, чем str2, и 0 если строки равны.

Эта функция учитывает регистр символов.

См. также описание функций
ereg(),
strcasecmp(),
substr(),
stristr(),
strncasecmp(),
strncmp() и
strstr().

Пред. | Начало | След.
strchr | Уровень выше | strcoll


strcoll

(PHP 4 >= 4.0.5, PHP 5)

strcoll -- Сравнение строк с учетом текущей локали

Описание

int strcoll ( string str1, string str2 )

Возвращает положительное число если str1 меньше, чем str2; отрицательное число если str1 больше, чем str2, и 0 если строки равны. strcoll() при сравнении использует установки текущей локали. Если установлена локаль C или POSIX, эта функция аналогична strcmp().

Обратите внимание, что эта функция учитывает регистр символов, и, в отличие от strcmp() не безопасна для обработки данных в двоичной форме.

Замечание: strcoll() была добавлена в PHP 4.0.5, но под Windows не была включена до версии 4.2.3.

См. также описание функций ereg(),
strcmp(), strcasecmp(),
substr(), stristr(),
strncasecmp(), strncmp(),
strstr() и setlocale().

Пред. | Начало | След.
strcmp | Уровень выше | strcspn


strcspn

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

strcspn -- Возвращает длину участка в начале строки, не соответствующего маске

Описание

int strcspn ( string str1, string str2 [, int start [, int length]] )

Возвращает длину участка в начале строки str1, который не содержит ни одного символа из строки str2.

Начиная с версии PHP 4.3.0, поддерживаются два необязательных аргумента, задающие начальную позицию и длину участка строки, в котором производится поиск.

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

См. также описание функции strspn().

Пред. | Начало | След.
strcoll | Уровень выше | strip_tags


strip_tags

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

strip_tags -- Удаляет HTML и PHP тэги из строки

Описание

string strip_tags ( string str [, string allowable_tags] )

Эта функция возвращает строку str, из которой удалены HTML и PHP тэги. Для удаления тэго используется автомат, аналогичный примененному в функции fgetss().

Необязательный второй аргумент может быть использован для указания тэгов, которые не должны удаляться.

Замечание: Аргумент allowable_tags был добавлен в PHP 3.0.13 и PHP 4.0b3. С версии PHP 4.3.0 удаляются также HTML комментарии.

Внимание

Так как strip_tags() не проверяет корректность HTML кода, незавершенные тэги могу привести к удалению текста, не входящего в тэги.

Пример 1. Пример использования strip_tags()

<?php
$text = '
<p>Параграф.</p>
<!-- Comment -->
Еще немного текста';

echo strip_tags($text);

echo "\n\n-------\n";

// не удалять <p>
echo strip_tags($text, '<p>');
?>

Этот пример выведет:

Параграф.

Еще немного текста

-------

<p>Параграф.</p>

Еще немного текста

Внимание

Эта функция не изменяет атрибуты тэгов, указанных в аргументе allowable_tags, включая style и onmouseover.

С версии PHP 5.0.0 strip_tags() безопасна для обработки данных в двоичной форме.

См. также описание функции htmlspecialchars().

Пред. | Начало | След.
strcspn | Уровень выше | stripcslashes


stripcslashes

(PHP 4, PHP 5)

stripcslashes -- Удаляет экранирование символов, произведенное функцией addcslashes()

Описание

string stripcslashes ( string str )

Удаляет экранирующие бэкслэши. Распознает экранирование в стиле C (\n, \r ..., восемеричное и шестнадцатиричное представление).

См. также описание функции addcslashes().

Пред. | Начало | След.
strip_tags | Уровень выше | stripos


stripos

(PHP 5)

stripos -- Возвращает позицию первого вхождения подстроки без учета регистра

Описание

int stripos ( string haystack, string needle [, int offset] )

Возвращает позицию первого вхождения подстроки needle в строку haystack. В отличие от strpos(), эта функция не учитывает регистр символов.

needle должен содержать не менее одного символа.

Если подстрока needle не найдена, stripos() возвращает FALSE.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и не относящееся к логическому типу значение, которое приводится к FALSE, например, 0 или "". За более подробной информации обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Пример 1. Пример использования stripos()

<?php
$findme    = 'a';
$mystring1 = 'xyz';
$mystring2 = 'ABC';

$pos1 = stripos($mystring1, $findme);
$pos2 = stripos($mystring2, $findme);

// Конечно, 'a' не входит в 'xyz'
if ($pos1 === false) {
    echo "Строка '$findme' не найдена в строке '$mystring1'";
}

// Заметьте, что используется ===.  Использование == не даст верного
// результата, так как 'a' в нулевой позиции.
if ($pos2 !== false) {
    echo "Нашел '$findme' в '$mystring2' в позиции $pos2";
}
?>

Если needle не является строкой, он приводится к целому и трактуется как код символа.

Необязательный аргумент offset позволяет указать, с какого по счету символа строки haystack начинать поиск. Возвращается всегда позиция относительно начала строки haystack.

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

См. также описание функций strpos(),
strrpos(), strrchr(),
substr(), stristr(),
strstr(), strripos() и
str_ireplace().

Пред. | Начало | След.
stripcslashes | Уровень выше | stripslashes


stripslashes

(PHP 3, PHP 4, PHP 5)

stripslashes -- Удаляет экранирование символов, произведенное функцией addslashes()

Описание

string stripslashes ( string str )

Удаляет экранирующие бэкслэши. (\' преобразуется в ', и т.д.). Двойные бэкслэши (\\) преобразуется в одиночные(\).

stripslashes() используется, например, когда директива конфигурации magic_quotes_gpc включена (она включена по умолчанию), и экранирование символов не требуется. Например, данные не вставляются в базу данных, а просто выводятся в браузер.

Пример 1. Пример использования stripslashes()

<?php
$str = "Is your name O\'reilly?";

// выводит: Is your name O'reilly?
echo stripslashes($str);
?>

См. также описание функций addslashes() и get_magic_quotes_gpc().

Пред. | Начало | След.
stripos | Уровень выше | stristr


stristr

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

stristr -- Регистро-независимый вариант функции strstr().

Описание

string stristr ( string haystack, string needle )

Возвращает подстроку строки haystack начиная с первого вхождения needle до конца строки. Эта функция не учитывает регистр сиволов.

Если подстрока needle не найдена, stristr() возвращает FALSE.

Если needle не является строкой, он приводится к целому и трактуется как код символа.

Пример 1. Пример использования stristr()

<?php
  $email = 'USER@EXAMPLE.com';
  $domain = stristr($email, 'e');
  echo $domain;
// выводит ER@EXAMPLE.com
?>

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

См. также описание функций
strstr(),
strrchr(),
substr() и
ereg().

Пред. | Начало | След.
stripslashes | Уровень выше | strlen


strlen

(PHP 3, PHP 4, PHP 5)

strlen -- Возвращает длину строки

Описание

int strlen ( string string )

Возвращает длину строки string.

Пример 1. Пример использования strlen()

<?php
$str = 'abcdef';
echo strlen($str); // 6

$str = ' ab cd ';
echo strlen($str); // 7
?>

См. также описание функций count() и mb_strlen().

Пред. | Начало | След.
stristr | Уровень выше | strnatcasecmp


strnatcasecmp

(PHP 4, PHP 5)

strnatcasecmp -- Сравнение строк без учета регистра с использованием алгоритма "естественного упорядочения"

Описание

int strnatcasecmp ( string str1, string str2 )

Эта функция реализует алгоритм сравнения, упорядочивающий алфавитно-цифровые строки подобно тому, как это сделал бы человек. Эта функция подобна strnatcmp(), за исключением того, что strnatcasecmp() не учитывает регистр символов. Для получения дополнительной информации см. Natural Order String Comparison

Подобно другим функциям сравнения строк, strnatcasecmp() возвращает отрицательное число, если str1 меньше, чем str2; положительное число, если str1 больше, чем str2, и 0 если строки равны.

См. также описание функций
ereg(),
strcasecmp(),
substr(),
stristr(),
strcmp(),
strncmp(),
strncasecmp(),
strnatcmp() и
strstr().

Пред. | Начало | След.
strlen | Уровень выше | strnatcmp


strnatcmp

(PHP 4, PHP 5)

strnatcmp -- Сравнение строк с использованием алгоритма "естественного упорядочения"

Описание

int strnatcmp ( string str1, string str2 )

Эта функция реализует алгоритм сравнения, упорядочивающий алфавитно-цифровые строки подобно тому, как это сделал бы человек. Пример, показывающий отличие этого алгоритма от обыных функций сравнения, приведен ниже

<?php
$arr1 = $arr2 = array("img12.png", "img10.png", "img2.png", "img1.png");
echo "Стандартный алгоритм сравнения\n";
usort($arr1, "strcmp");
print_r($arr1);
echo "\nАлгоритм \"естественного упорядочения\"\n";
usort($arr2, "strnatcmp");
print_r($arr2);
?>

Этот пример выводит следующее:

Стандартный алгоритм сравнения
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Алгоритм "естественного упорядочения"
Array
(
    [0] => img1.png
    [1] => img2.png
    [2] => img10.png
    [3] => img12.png
)

Для получения дополнительной информации см. Natural Order String Comparison

Подобно другим функциям сравнения строк, strnatcmp() возвращает отрицательное число, если str1 меньше, чем str2; положительное число если, str1 больше, чем str2, и 0 если строки равны.

Эта функция учитывает регистр символов.

См. также описание функций ereg(),
strcasecmp(), substr(),
stristr(), strcmp(),
strncmp(), strncasecmp(),
strnatcasecmp(), strstr(),
natsort() и natcasesort().

Пред. | Начало | След.
strnatcasecmp | Уровень выше | strncasecmp


strncasecmp

(PHP 4 >= 4.0.2, PHP 5)

strncasecmp -- Сравнение первых n символов строк без учета регистра, безопасное для данных в двоичной форме

Описание

int strncasecmp ( string str1, string str2, int len )

Эта функция подобна strcasecmp(), за исключением того, что можно указать максимальное количество символов в обоих строках, которые будут участвовать в сравнении.

Возвращает отрицательное число, если str1 меньше, чем str2; положительное число, если str1 больше, чем str2, и 0 если строки равны.

См. также описание функций
ereg(),
strcasecmp(),
strcmp(),
substr(),
stristr() и
strstr().

Пред. | Начало | След.
strnatcmp | Уровень выше | strncmp


strncmp

(PHP 4, PHP 5)

strncmp -- Сравнение первых n символов строк без учета регистра, безопасное для данных в двоичной форме

Описание

int strncmp ( string str1, string str2, int len )

Эта функция подобна strcmp(), за исключением того, что можно указать максимальное количество символов в обоих строках, которые будут участвовать в сравнении.

Возвращает отрицательное число, если str1 меньше, чем str2; положительное число, если str1 больше, чем str2, и 0 если строки равны.

Эта функция учитывает регистр символов.

См. также описание функций ereg(),
strncasecmp(),
strcasecmp(), substr(),
stristr(), strcmp() и
strstr().

Пред. | Начало | След.
strncasecmp | Уровень выше | strpbrk


strpbrk

(PHP 5)

strpbrk -- Ищет в строке любой символ из заданного набора

Описание

string strpbrk ( string haystack, string char_list )

strpbrk() ищет в строке haystack символы из набора char_list и возвращает строку начиная с той позиции, где был найден символ (или FALSE если символ не найден).

Замечание: Параметр char_list чувствителен к регистру.

Пример 1. Пример использования функции strpbrk()

<?php

$text = 'This is a Simple text.';

// Этот код выдаст "is is a Simple text.", т.к. символ 'i' встретится раньше
echo strpbrk($text, 'mi');

// Этот код выдаст "Simple text.", т.к. символы чувствительны к регистру
echo strpbrk($text, 'S');
?>

Пред. | Начало | След.
strncmp | Уровень выше | strpos


strpos

(PHP 3, PHP 4, PHP 5)

strpos -- Возвращает позицию первого вхождения подстроки

Описание

int strpos ( string haystack, string needle [, int offset] )

Возвращает позицию первого вхождения подстроки needle в строку haystack. В отличие от strrpos(), использует всю строку needle, а не только первый символ.

Если подстрока needle не найдена, strpos() возвращает FALSE.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и не относящееся к логическому типу значение, которое приводится к FALSE, например, 0 или "". За более подробной информации обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Пример 1. Пример использования strpos()

<?php
$mystring = 'abc';
$findme   = 'a';
$pos = strpos($mystring, $findme);

// Заметьте, что используется ===.  Использование == не даст верного
// результата, так как 'a' в нулевой позиции.
if ($pos === false) {
    echo "Строка '$findme' не найдена в строке '$mystring1'";
} else {
    echo "Строка '$findme' найдена в строке '$mystring1'";
    echo " в позиции $pos";
}

// Ищем , начиная со второго символа
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, not 0
?>

Если needle не является строкой, он приводится к целому и трактуется как код символа.

Необязательный аргумент offset позволяет указать, с какого посчету символа строки haystack начинать поиск. Возвращается всегда позиция относительно начала строки haystack.

См. также описание функций strrpos(),
stripos(),
strripos(),
strrchr(),
substr(),
stristr() и
strstr().

Пред. | Начало | След.
strpbrk | Уровень выше | strrchr


strrchr

(PHP 3, PHP 4, PHP 5)

strrchr -- Находит последнее вхождение подстроки

Описание

string strrchr ( string haystack, char needle )

Возвращает подстроку строки haystack начиная с последнего вхождения needle до конца строки.

Если подстрока needle не найдена, возвращает FALSE.

В отличие от strchr(), если needle состоит более чем из одного символа, используется только первый символ.

Если needle не является строкой, он приводится к целому и трактуется как код символа.

Пример 1. Пример использования strrchr()

<?php
// получить последнюю директорию из $PATH
$dir = substr(strrchr($PATH, ":"), 1);

// получить все после последнего перевода строки
$text = "Line 1\nLine 2\nLine 3";
$last = substr(strrchr($text, 10), 1 );
?>

С версии PHP 4.3.0 strrchr() безопасна для обработки данных в двоичной форме.

См. также описание функций strstr(), substr() и stristr().

Пред. | Начало | След.
strpos | Уровень выше | strrev


strrev

(PHP 3, PHP 4, PHP 5)

strrev -- Переворачивает строку

Description

string strrev ( string string )

Возвращает строку string, в которой порядок символов изменен на обратный.

Пример 1. Пример использования strrev()

<?php
echo strrev("Hello world!"); // выводит "!dlrow olleH"
?>

Пред. | Начало | След.
strrchr | Уровень выше | strripos


strripos

(PHP 5)

strripos -- Возвращает позицию последнего вхождения подстроки без учета регистра

Описание

int strripos ( string haystack, string needle [, int offset] )

Возвращает позицию последнего вхождения подстроки needle в строку haystack. В отличие от strrpos(), эта функция не учитывает регистр символов.

needle должен содержать не менее одного символа.

Если подстрока needle не найдена, возвращает FALSE.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и не относящееся к логическому типу значение, которое приводится к FALSE, например, 0 или "". За более подробной информации обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Пример 1. Пример использования strripos()

<?php
$haystack = 'ababcd';
$needle   = 'aB';

$pos      = strripos($haystack, $needle);

if ($pos === false) {
    echo "К сожалению, ($needle) не найдено в ($haystack)";
} else {
    echo "Поздравляем!\n";
    echo "Последнее ($needle) найдено в ($haystack) в позиции ($pos)";
}
?>

Вывод:

Поздравляем!
   Последнее (aB) найдено в (ababcd) в позиции (2)

Необязательный аргумент offset позволяет указать, с какого по счету символа строки haystack начинать поиск. Отрицательное значение предписывает прекратить поиск при достижении определенной позиции до конца строки.

См. также описание функций strrpos(),
strrchr(),
substr(), stripos() и
stristr().

Пред. | Начало | След.
strrev | Уровень выше | strrpos


strrpos

(PHP 3, PHP 4, PHP 5)

strrpos -- Возвращает позицию последнего вхождения символа

Описание

int strrpos ( string haystack, string needle [, int offset] )

Возвращает позицию последнего вхождения needle в строку haystack. В PHP 4 используется только первый символ строки needle.

Если подстрока needle не найдена, возвращает FALSE.

Внимание

Эта функция может возвращать как логическое значение FALSE, так и не относящееся к логическому типу значение, которое приводится к FALSE, например, 0 или "". За более подробной информации обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Если needle не является строкой, он приводится к целому и трактуется как код символа.

Замечание: Начиная с PHP 5.0.0, необязательный аргумент offset позволяет указать, с какого по счету символа строки haystack начинать поиск. Отрицательное значение предписывает прекратить поиск при достижении определенной позиции до конца строки.

Замечание: Начиная с PHP 5.0.0 needle используется полностью (а не только первый символ).

См. также описание функций strpos(),
strripos(),
strrchr(),
substr(),
stristr() и
strstr().

Пред. | Начало | След.
strripos | Уровень выше | strspn


strspn

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

strspn -- Возвращает длину участка в начале строки, соответствующего маске

Description

int strspn ( string str1, string str2 [, int start [, int length]] )

Возвращает длину участка в начале строки str1, любой символ которого входит в строку str2.

Строка:

<?php
$var = strspn("42 is the answer, what is the question ...", "1234567890");
?>

присвоит 2 переменной $var, так как "42" - это самый длинный участок строки, состоящий только из символов "1234567890".

Начиная с версии PHP 4.3.0, поддерживаются два необязательных аргумента, задающие начальную позицию и длину участка строки, в котором производится поиск.

<?php
echo strspn("foo", "o", 1, 2); // 2
?>

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

См. также описание функции strcspn().

Пред. | Начало | След.
strrpos | Уровень выше | strstr


strstr

(PHP 3, PHP 4, PHP 5)

strstr -- Находит первое вхождение подстроки

Описание

string strstr ( string haystack, string needle )

Возвращает подстроку строки haystack начиная с первого вхождения needle до конца строки.

Если подстрока needle не найдена, возвращает FALSE.

Если needle не является строкой, он приводится к целому и трактуется как код символа.

Замечание: Эта функция учитывает регистр символов. Для поиска без учета регистра используйте stristr().

Пример 1. Пример использования strstr()

<?php
$email = 'user@example.com';
$domain = strstr($email, '@');
echo $domain; // выводит @example.com
?>

Замечание: Если нужно лишь определить, встречается ли подстрока needle в haystack, используйте функцию strpos(), которая работает быстрее и потребляет меньше памяти.

С версии PHP 4.3.0 strstr() безопасна для обработки данных в двоичной форме.

См. также описание функций
ereg(),
preg_match(),
stristr(),
strpos(),
strrchr() и
substr().

Пред. | Начало | След.
strspn | Уровень выше | strtok


strtok

(PHP 3, PHP 4, PHP 5)

strtok -- Разбивает строку

Описание

string strtok ( string arg1, string arg2 )

strtok() разбивает строку arg1 на подстроки, используя в качесве разделителей символы из arg2. Например строку "This is an example string" можно разбить на отдельные слова.

Пример 1. Пример использования strtok()

<?php
$string = "This is\tan example\nstring";
/* в качестве разделителей используем пробел, табуляцию и перевод строки */
$tok = strtok($string, " \n\t");
while ($tok) {
    echo "Word=$tok<br />";
    $tok = strtok(" \n\t");
}
?>

Заметьте, что исходная строка передается только при первом вызове этой функции. Последующим вызовам передаются только разделители, так как эта функция сохраняет исходную строку и запоминает позицию в этой строке между вызовами. Для работы с новой строкой нужно снова вызвать функцию с двумя аргументами.

Начиная с PHP 4.1.0, был изменен способ обработки пустых подстрок. До версии 4.1.0 эта функция возвращала пустые подстроки, а начиная с 4.1.0 эти подстроки пропускаются.

Пример 2. Старый способ обработки пустых подстрок функцией strtok()

<?php
$first_token  = strtok('/something', '/');
$second_token = strtok('/');
var_dump($first_token, $second_token);
?>

Вывод:

string(0) ""
    string(9) "something"

Пример 3. Новый способ обработки пустых подстрок функцией strtok()

<?php
$first_token  = strtok('/something', '/');
$second_token = strtok('/');
var_dump($first_token, $second_token);
?>

Вывод:

string(9) "something"
    bool(false)

Помните также о том, что может быть возвращена подстрока "0". В логических выражениях это значение может соответствовать FALSE.

См. также описание функций split() и explode().

Пред. | Начало | След.
strstr | Уровень выше | strtolower


strtolower

(PHP 3, PHP 4, PHP 5)

strtolower -- Преобразует строку в нижний регистр

Описание

string strtolower ( string str )

Возвращает строку string, в которой все буквенные символы переведены в нижний регистр.

Принадлежность того или иного символа к буквенным определяется с учетом текущей локали. Это означает, что, например, в используемой по умолчанию локали "C" locale, символ ? не будет преобразован.

Пример 1. Пример использования strtolower()

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = strtolower($str);
echo $str; // выводит: mary had a little lamb and she loved it so
?>

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

См. также описание функций strtoupper(),
ucfirst(), ucwords() и
mb_strtolower().

Пред. | Начало | След.
strtok | Уровень выше | strtoupper


strtoupper

(PHP 3, PHP 4, PHP 5)

strtoupper -- Преобразует строку в верхний регистр

Описание

string strtoupper ( string string )

Возвращает строку string, в которой все буквенные символы переведены в верхний регистр.

Принадлежность того или иного символа к буквенным определяется с учетом текущей локали. Это означает, что, например, в используемой по умолчанию локали "C" locale, символ ? не будет преобразован.

Пример 1. Пример использования strtoupper()

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = strtoupper($str);
echo $str; // выводит: MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
?>

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

См. также описание функций strtolower(),
ucfirst(), ucwords() and
mb_strtoupper().

Пред. | Начало | След.
strtolower | Уровень выше | strtr


strtr

(PHP 3, PHP 4, PHP 5)

strtr -- Преобразует заданные символы

Описание

string strtr ( string str, string from, string to )

string strtr ( string str, array replace_pairs )

Эта функция возвращает строку str, в которой каждое вхождение любого символа из перечисленных в from заменено на соответствующий символ из строки to.

Если длины строк from и to отличаются, "лишние" символы в более длинной строке не используются.

Пример 1. Пример использования strtr()

<?php
$addr = strtr($addr, "дец", "aao");
?>

strtr() может вызываться с двумя аргументами. В этом случае from должен быть массивом, индексы которого трактуются как строки поиска, а соответствующие значения - как строки замены. strtr() в первую очередь заменяет более длинные подстроки, причем одна и та же строка поиска используется только один раз.

Пример 2. Пример использования strtr() с двумя аргументами

<?php
$trans = array("hello" => "hi", "hi" => "hello");
echo strtr("hi all, I said hello", $trans);
?>

Этот код выведет:

hello all, I said hi

Замечание: Аргументы to и from были добавлены в PHP 4.0.0

См. также описание функции ereg_replace().

Пред. | Начало | След.
strtoupper | Уровень выше | substr_compare


substr_compare

(PHP 5)

substr_compare -- Безопасное для обработки данных в двоичной форме сравнение 2 строк со смещением, с учетом или без учета регистра

Описание

int substr_compare ( string main_str, string str, int offset [, int length [, bool case_sensitivity]] )

substr_compare() сравнивает строку main_str начиная с символа, номер которого задан аргументом offset, со строкой str. В сравнении участвуют максимум length символов.

Возвращает число < 0 если main_str начиная с символа offset меньше чем str, > 0 если она больше str, и 0 если строки равны. Если length больше или равен длине main_str и offset передан, substr_compare() выводит предупреждение и возвращает FALSE.

Если case_sensitivity имеет значение TRUE, сравнение выполняется с учетом регистра.

Пример 1. Пример использования substr_compare()

<?php
echo substr_compare("abcde", "bc", 1, 2); // 0
echo substr_compare("abcde", "bcg", 1, 2); // 0
echo substr_compare("abcde", "BC", 1, 2, true); // 0
echo substr_compare("abcde", "bc", 1, 3); // 1
echo substr_compare("abcde", "cd", 1, 2); // -1
echo substr_compare("abcde", "abc", 5, 1); // warning
?>

Пред. | Начало | След.
strtr | Уровень выше | substr_count


substr_count

(PHP 4, PHP 5)

substr_count -- Возвращает число вхождений подстроки

Описание

int substr_count ( string haystack, string needle )

substr_count() Возвращает число вхождений подстроки needle в строку haystack. Заметьте, что поиск ведется с учетом регистра символов.

Пример 1. Пример использования substr_count()

<?php
echo substr_count("This is a test", "is"); // 2
?>

См. также описание функций count_chars(),
strpos(), substr()
и strstr().

Пред. | Начало | След.
substr_compare | Уровень выше | substr_replace


substr_replace

(PHP 4, PHP 5)

substr_replace -- Заменяет часть строки

Описание

string substr_replace ( string string, string replacement, int start [, int length] )

substr_replace() заменяет часть строки string начинающуюся с символа с порядковым номером start и длиной length строкой replacement и возвращает результат.

Если start - положительное число, замена начинается с символа с порядковым номером start.

Если start - отрицательное число, замена начинается с символа с порядковым номером start, считая от конца строки.

Если аргумент length - положительное число, то он определяет длину заменяемой подстроки. Если этот аргумент отрицательный, он определяет количество символов от конца строки, на котором заканчивается замена. Этот аргумент необязателен и по умолчанию равен strlen(string );, т.е. замена до конца строки string.

Пример 1. Пример использования substr_replace()

<?php
$var = 'ABCDEFGH:/MNRPQR/';
echo "Оригинал: $var<hr />\n";

/* Обе следующих строки заменяют всю строку $var на 'bob'. */
echo substr_replace($var, 'bob', 0) . "<br />\n";
echo substr_replace($var, 'bob', 0, strlen($var)) . "<br />\n";

/* Вставляет 'bob' в начало $var. */
echo substr_replace($var, 'bob', 0, 0) . "<br />\n";

/* Обе следующих строки заменяют 'MNRPQR' in $var на 'bob'. */
echo substr_replace($var, 'bob', 10, -1) . "<br />\n";
echo substr_replace($var, 'bob', -7, -1) . "<br />\n";

/* Удаляет 'MNRPQR' из $var. */
echo substr_replace($var, '', 10, -1) . "<br />\n";
?>

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

См. также описание функций str_replace() и substr().

Пред. | Начало | След.
substr_count | Уровень выше | substr


substr

(PHP 3, PHP 4, PHP 5)

substr -- Возвращает подстроку

Описание

string substr ( string string, int start [, int length] )

substr() возвращает подстроку строки string длиной length, начинающегося с start символа по счету.

Если start неотрицателен, возвращаемая подстрока начинается в позиции start от начала строки, считая от нуля. Например, в строке 'abcdef', в позиции 0 находится символ 'a', в позиции 2 - символ 'c', и т.д.

Пример 1. Пример использования substr()

<?php
$rest = substr("abcdef", 1);    // возвращает "bcdef"
$rest = substr("abcdef", 1, 3); // возвращает "bcd"
$rest = substr("abcdef", 0, 4); // возвращает "abcd"
$rest = substr("abcdef", 0, 8); // возвращает "abcdef"

// к отдельным символам можно обращаться с помощью фигурных скобок
$string = 'abcdef';
echo $string{0};                // выводит a
echo $string{3};                // выводит d
?>

Если start отрицательный, возвращаемая подстрока начинается с start символа с конца строки string.

Пример 2. Использование отрицательного start

<?php
$rest = substr("abcdef", -1);    // возвращает "f"
$rest = substr("abcdef", -2);    // возвращает "ef"
$rest = substr("abcdef", -3, 1); // возвращает "d"
?>

Если length положительный, возвращаемая строка будет не длиннее length символов. Если длина строки string меньше или равна start символов, возвращается FALSE.

Если length отрицательный, то будет отброшено указанное этим аргументом число символов с конца строки string. Если при этом позиция начала подстроки, определяемая аргументом start, находится в отброшенной части строки, возвращается пустая строка.

Пример 3. Использование отрицательного length

<?php
$rest = substr("abcdef", 0, -1);  // возвращает "abcde"
$rest = substr("abcdef", 2, -1);  // возвращает "cde"
$rest = substr("abcdef", 4, -4);  // возвращает ""
$rest = substr("abcdef", -3, -1); // возвращает "de"
?>

См. также описание функций
strrchr(),
substr_replace(),
ereg(),
trim() и
mb_substr().

Пред. | Начало | След.
substr_replace | Уровень выше | trim


trim

(PHP 3, PHP 4, PHP 5)

trim -- Удаляет пробелы из начала и конца строки

Описание

string trim ( string str [, string charlist] )

Эта функция возвращает строку str с удаленными из начала и конца строки пробелами. Если второй параметр не передан, trim() удаляет следующие символы:

  • " " (ASCII 32 (0x20)), символ пробела.

  • "\t" (ASCII 9 (0x09)), символ табуляции.

  • "\n" (ASCII 10 (0x0A)), символ перевода строки.

  • "\r" (ASCII 13 (0x0D)), символ возврата каретки.

  • "\0" (ASCII 0 (0x00)), NUL-байт.

  • "\x0B" (ASCII 11 (0x0B)), вертикальная табуляция.

Можно также задать список символов для удаления с помощью аргумента charlist. С помощью .. можно задать диапазон символов.

Пример 1. Пример использования trim()

<?php

$text = "\t\tЛишь несколько слов :) ...  ";

echo trim($text);           // "Лишь несколько слов :) ..."
echo trim($text, " \t."); // "Лишь несколько слов :)"

// удалить управляющие символы ASCII из начала и конца
// строки $binary (от 0 до 31 включительно)
$clean = trim($binary, "\x00..\x1F");

?>

Замечание: Необязательный аргумент charlist был добавлен в версии 4.1.0

См. также описание функций ltrim() и rtrim().

Пред. | Начало | След.
substr | Уровень выше | ucfirst


ucfirst

(PHP 3, PHP 4, PHP 5)

ucfirst -- Преобразует первый символ строки в верхний регистр

Описание

string ucfirst ( string str )

Возвращает строку string, в которой первый символ переведен в верхний регистр, если этот символ буквенный.

Принадлежность того или иного символа к буквенным определяется с учетом текущей локали. Это означает, что, например, в используемой по умолчанию локали "C" locale, символ ? не будет преобразован.

Пример 1. Пример использования ucfirst()

<?php
$foo = 'hello world!';
$foo = ucfirst($foo);             // Hello world!

$bar = 'HELLO WORLD!';
$bar = ucfirst($bar);             // HELLO WORLD!
$bar = ucfirst(strtolower($bar)); // Hello world!
?>

См. также описание функций strtolower(), strtoupper() и ucwords().

Пред. | Начало | След.
trim | Уровень выше | ucwords


ucwords

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

ucwords -- Преобразует в верхний регистр первый символ каждого слова в строке

Описание

string ucwords ( string str )

Возвращает строку string, в которой первый символ каждого слова переведен в верхний регистр, если этот символ буквенный.

Эта функция считает словами последовательности символов, разделенных пробелом, переводом строки, возвратом каретки, горизонтальной или вертикальной табуляцией.

Пример 1. Пример использования ucwords()

<?php
$foo = 'hello world!';
$foo = ucwords($foo);             // Hello World!

$bar = 'HELLO WORLD!';
$bar = ucwords($bar);             // HELLO WORLD!
$bar = ucwords(strtolower($bar)); // Hello World!
?>

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

См. также описание функций strtoupper(), strtolower() и ucfirst().

Пред. | Начало | След.
ucfirst | Уровень выше | vfprintf


vfprintf

(PHP 5)

vfprintf -- Write a formatted string to a stream

Description

int vfprintf ( resource handle, string format, array args )

Write a string produced according to format to the stream resource specified by handle. format is described in the documentation for sprintf().

Operates as fprintf() but accepts an array of arguments, rather than a variable number of arguments.

Returns the length of the outputted string.

See also: printf(),
sprintf(),
sscanf(), fscanf(),
vsprintf(), and
number_format().

Examples

Пример 1. vfprintf(): zero-padded integers

<?php
if (!($fp = fopen('date.txt', 'w')))
    return;

vfprintf($fp, "%04d-%02d-%02d", array($year, $month, $day));
// will write the formatted ISO date to date.txt
?>

Пред. | Начало | След.
ucwords | Уровень выше | vprintf


vprintf

(PHP 4 >= 4.1.0, PHP 5)

vprintf -- Выводит отформатированную строку

Описание

int vprintf ( string format, array args )

Выводит значения массива args, отформатированные в соответствии с аргументом format, описанном в документации функции sprintf().

Эта функция подобна printf(), но она принимает не переменное число аргументов, а массив.

Возвращает длину выведенной строки

См. также описания функций printf(), sprintf() и vsprintf()

Пред. | Начало | След.
vfprintf | Уровень выше | vsprintf


vsprintf

(PHP 4 >= 4.1.0, PHP 5)

vsprintf -- Возвращает отформатированную строку

Описание

string vsprintf ( string format, array args )

Выводит значения массива args, отформатированные в соответствии с аргументом format, описанном в документации функции sprintf().

Эта функция подобна sprintf(), но она принимает не переменное число аргументов, а массив.

См. также описания функций sprintf() и vprintf()

Пред. | Начало | След.
vprintf | Уровень выше | wordwrap


wordwrap

(PHP 4 >= 4.0.2, PHP 5)

wordwrap -- Выполняет перенос строки на данное количество символов с использованием символа разрыва строки.

Описание

string wordwrap ( string str [, int width [, string break [, boolean cut]]] )

Возвращает строку str с переносом в столбце с номером, заданном аргументом width. Строка разбивется с помощью аргумента break.

Аргументы width и break необязательны и по умолчанию равны 75 и '\n' соответственно.

Если аргумент cut установлен в 1, разрыв делается точно в заданной колонке. Поэтому если исходная строка содержит слово длиннее, чем заданная длина, то в этом случае слово будет разорвано. (См. второй пример).

Замечание: Необязательный аргумент cut был добавлен в PHP 4.0.3

Пример 1. Пример использования wordwrap()

<?php
$text = "The quick brown fox jumped over the lazy dog.";
$newtext = wordwrap($text, 20, "<br />\n");
echo "$newtext";
?>

Этот пример выведет:

The quick brown fox<br />
jumped over the lazy<br />
dog.

Пример 2. Пример использования wordwrap()

<?php
$text = "Очень длинное слоооооооооооооооово.";
$newtext = wordwrap($text, 8, "\n", 1);

echo "$newtext\n";
?>

Этот пример выведет:

Очень
длинное
слоооооо
оооооооо
оово.

См. также описание функций nl2br() и chunk_split().

Пред. | Начало | След.
vsprintf | Уровень выше | Shockwave Flash Functions


Shockwave Flash Functions

Руководство по PHP
Пред. След.

CXLVII. Shockwave Flash Functions

Введение

PHP offers the ability to create Shockwave Flash files via Paul Haeberli's libswf module.

Замечание: SWF support was added in PHP 4 RC2.

The libswf does not have support for Windows. The development of that library has been stopped, and the source is not available to port it to another systems.

For up to date SWF support take a look at the MING functions.

Требования

You need the libswf library to compile PHP with support for this extension. You can download libswf at ftp://ftp.sgi.com/sgi/graphics/grafica/flash/.

Установка

Once you have libswf all you need to do is to configure --with-swf[=DIR] where DIR is a location containing the directories include and lib. The include directory has to contain the swf.h file and the lib directory has to contain the libswf.a file. If you unpack the libswf distribution the two files will be in one directory. Consequently you will have to copy the files to the proper location manually.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

MOD_COLOR (integer)

MOD_MATRIX (integer)

TYPE_PUSHBUTTON (integer)

TYPE_MENUBUTTON (integer)

BSHitTest (float)

BSDown (float)

BSOver (float)

BSUp (float)

OverDowntoIdle (integer)

IdletoOverDown (integer)

OutDowntoIdle (integer)

OutDowntoOverDown (integer)

OverDowntoOutDown (integer)

OverUptoOverDown (integer)

OverUptoIdle (integer)

IdletoOverUp (integer)

ButtonEnter (integer)

ButtonExit (integer)

MenuEnter (integer)

MenuExit (integer)

Примеры

Once you've successfully installed PHP with Shockwave Flash support you can then go about creating Shockwave files from PHP. You would be surprised at what you can do, take the following code:

Пример 1. SWF example

<?php
swf_openfile("test.swf", 256, 256, 30, 1, 1, 1);
swf_ortho2(-100, 100, -100, 100);
swf_defineline(1, -70, 0, 70, 0, .2);
swf_definerect(4, 60, -10, 70, 0, 0);
swf_definerect(5, -60, 0, -70, 10, 0);
swf_addcolor(0, 0, 0, 0);

swf_definefont(10, "Mod");
swf_fontsize(5);
swf_fontslant(10);
swf_definetext(11, "This be Flash wit PHP!", 1);

swf_pushmatrix();
swf_translate(-50, 80, 0);
swf_placeobject(11, 60);
swf_popmatrix();

for ($i = 0; $i < 30; $i++) {
    $p = $i/(30-1);
    swf_pushmatrix();
    swf_scale(1-($p*.9), 1, 1);
    swf_rotate(60*$p, 'z');
    swf_translate(20+20*$p, $p/1.5, 0);
    swf_rotate(270*$p,  'z');
    swf_addcolor($p, 0, $p/1.2, -$p);
    swf_placeobject(1, 50);
    swf_placeobject(4, 50);
    swf_placeobject(5, 50);
    swf_popmatrix();
    swf_showframe();
}

for ($i = 0; $i < 30; $i++) {
    swf_removeobject(50);
    if (($i%4) == 0) {
        swf_showframe();
    }
}

swf_startdoaction();
swf_actionstop();
swf_enddoaction();

swf_closefile();
?>

Содержание
swf_actiongeturl -- Get a URL from a Shockwave Flash movie
swf_actiongotoframe -- Play a frame and then stop
swf_actiongotolabel -- Display a frame with the specified label
swf_actionnextframe -- Go forward one frame
swf_actionplay -- Start playing the flash movie from the current frame
swf_actionprevframe -- Go backwards one frame
swf_actionsettarget -- Set the context for actions
swf_actionstop -- Stop playing the flash movie at the current frame
swf_actiontogglequality -- Toggle between low and high quality
swf_actionwaitforframe -- Skip actions if a frame has not been loaded
swf_addbuttonrecord -- Controls location, appearance and active area of the current button
swf_addcolor -- Set the global add color to the rgba value specified
swf_closefile -- Close the current Shockwave Flash file
swf_definebitmap -- Define a bitmap
swf_definefont -- Defines a font
swf_defineline -- Define a line
swf_definepoly -- Define a polygon
swf_definerect -- Define a rectangle
swf_definetext -- Define a text string
swf_endbutton -- End the definition of the current button
swf_enddoaction -- End the current action
swf_endshape -- Completes the definition of the current shape
swf_endsymbol -- End the definition of a symbol
swf_fontsize -- Change the font size
swf_fontslant -- Set the font slant
swf_fonttracking -- Set the current font tracking
swf_getbitmapinfo -- Get information about a bitmap
swf_getfontinfo -- The height in pixels of a capital A and a lowercase x
swf_getframe -- Get the frame number of the current frame
swf_labelframe -- Label the current frame
swf_lookat -- Define a viewing transformation
swf_modifyobject -- Modify an object
swf_mulcolor -- Sets the global multiply color to the rgba value specified
swf_nextid -- Returns the next free object id
swf_oncondition -- Describe a transition used to trigger an action list
swf_openfile -- Open a new Shockwave Flash file
swf_ortho2 -- Defines 2D orthographic mapping of user coordinates onto the current viewport
swf_ortho -- Defines an orthographic mapping of user coordinates onto the current viewport
swf_perspective -- Define a perspective projection transformation
swf_placeobject -- Place an object onto the screen
swf_polarview -- Define the viewer's position with polar coordinates
swf_popmatrix -- Restore a previous transformation matrix
swf_posround -- Enables or Disables the rounding of the translation when objects are placed or moved
swf_pushmatrix -- Push the current transformation matrix back unto the stack
swf_removeobject -- Remove an object
swf_rotate -- Rotate the current transformation
swf_scale -- Scale the current transformation
swf_setfont -- Change the current font
swf_setframe -- Switch to a specified frame
swf_shapearc -- Draw a circular arc
swf_shapecurveto3 -- Draw a cubic bezier curve
swf_shapecurveto -- Draw a quadratic bezier curve between two points
swf_shapefillbitmapclip -- Set current fill mode to clipped bitmap
swf_shapefillbitmaptile -- Set current fill mode to tiled bitmap
swf_shapefilloff -- Turns off filling
swf_shapefillsolid -- Set the current fill style to the specified color
swf_shapelinesolid -- Set the current line style
swf_shapelineto -- Draw a line
swf_shapemoveto -- Move the current position
swf_showframe -- Display the current frame
swf_startbutton -- Start the definition of a button
swf_startdoaction -- Start a description of an action list for the current frame
swf_startshape -- Start a complex shape
swf_startsymbol -- Define a symbol
swf_textwidth -- Get the width of a string
swf_translate -- Translate the current transformations
swf_viewport -- Select an area for future drawing

Пред. | Начало | След.
wordwrap | Уровень выше | swf_actiongeturl


swf_actiongeturl

(PHP 4, PECL)

swf_actiongeturl -- Get a URL from a Shockwave Flash movie

Description

void swf_actiongeturl ( string url, string target )

The swf_actiongeturl() function gets the URL specified by the parameter url with the target target.

Пред. | Начало | След.
Shockwave Flash Functions | Уровень выше | swf_actiongotoframe


swf_actiongotoframe

(PHP 4, PECL)

swf_actiongotoframe -- Play a frame and then stop

Description

void swf_actiongotoframe ( int framenumber )

The swf_actiongotoframe() function will go to the frame specified by framenumber, play it, and then stop.

Пред. | Начало | След.
swf_actiongeturl | Уровень выше | swf_actiongotolabel


swf_actiongotolabel

(PHP 4, PECL)

swf_actiongotolabel -- Display a frame with the specified label

Description

void swf_actiongotolabel ( string label )

The swf_actiongotolabel() function displays the frame with the label given by the label parameter and then stops.

Пред. | Начало | След.
swf_actiongotoframe | Уровень выше | swf_actionnextframe


swf_actionnextframe

(PHP 4, PECL)

swf_actionnextframe -- Go forward one frame

Description

void swf_actionnextframe ( void )

Go forward one frame.

Пред. | Начало | След.
swf_actiongotolabel | Уровень выше | swf_actionplay


swf_actionplay

(PHP 4, PECL)

swf_actionplay -- Start playing the flash movie from the current frame

Description

void swf_actionplay ( void )

Start playing the flash movie from the current frame.

Пред. | Начало | След.
swf_actionnextframe | Уровень выше | swf_actionprevframe


swf_actionprevframe

(PHP 4, PECL)

swf_actionprevframe -- Go backwards one frame

Description

void swf_actionprevframe ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
swf_actionplay | Уровень выше | swf_actionsettarget


swf_actionsettarget

(PHP 4, PECL)

swf_actionsettarget -- Set the context for actions

Description

void swf_actionsettarget ( string target )

The swf_actionsettarget() function sets the context for all actions. You can use this to control other flash movies that are currently playing.

Пред. | Начало | След.
swf_actionprevframe | Уровень выше | swf_actionstop


swf_actionstop

(PHP 4, PECL)

swf_actionstop -- Stop playing the flash movie at the current frame

Description

void swf_actionstop ( void )

Stop playing the flash movie at the current frame.

Пред. | Начало | След.
swf_actionsettarget | Уровень выше | swf_actiontogglequality


swf_actiontogglequality

(PHP 4, PECL)

swf_actiontogglequality -- Toggle between low and high quality

Description

void swf_actiontogglequality ( void )

Toggle the flash movie between high and low quality.

Пред. | Начало | След.
swf_actionstop | Уровень выше | swf_actionwaitforframe


swf_actionwaitforframe

(PHP 4, PECL)

swf_actionwaitforframe -- Skip actions if a frame has not been loaded

Description

void swf_actionwaitforframe ( int framenumber, int skipcount )

The swf_actionwaitforframe() function will check to see if the frame, specified by the framenumber parameter has been loaded, if not it will skip the number of actions specified by the skipcount parameter. This can be useful for "Loading..." type animations.

Пред. | Начало | След.
swf_actiontogglequality | Уровень выше | swf_addbuttonrecord


swf_addbuttonrecord

(PHP 4, PECL)

swf_addbuttonrecord -- Controls location, appearance and active area of the current button

Description

void swf_addbuttonrecord ( int states, int shapeid, int depth )

The swf_addbuttonrecord() function allows you to define the specifics of using a button. The first parameter, states, defines what states the button can have, these can be any or all of the following constants: BSHitTest, BSDown, BSOver or BSUp. The second parameter, the shapeid is the look of the button, this is usually the object id of the shape of the button. The depth parameter is the placement of the button in the current frame.

Пример 1. swf_addbuttonrecord() example

<?php
swf_startButton($objid, TYPE_MENUBUTTON);
swf_addButtonRecord(BSDown|BSOver, $buttonImageId, 340);
swf_onCondition(MenuEnter);
swf_actionGetUrl("http://www.example.com", "_level1");
swf_onCondition(MenuExit);
swf_actionGetUrl("", "_level1");
swf_endButton();
?>

Пред. | Начало | След.
swf_actionwaitforframe | Уровень выше | swf_addcolor


swf_addcolor

(PHP 4, PECL)

swf_addcolor -- Set the global add color to the rgba value specified

Description

void swf_addcolor ( float r, float g, float b, float a )

The swf_addcolor() function sets the global add color to the rgba color specified. This color is then used (implicitly) by the swf_placeobject(), swf_modifyobject() and the swf_addbuttonrecord() functions. The color of the object will be add by the rgba values when the object is written to the screen.

Замечание: The rgba values can be either positive or negative.

Пред. | Начало | След.
swf_addbuttonrecord | Уровень выше | swf_closefile


swf_closefile

(PHP 4, PECL)

swf_closefile -- Close the current Shockwave Flash file

Description

void swf_closefile ( [int return_file] )

Close a file that was opened by the swf_openfile() function. If the return_file parameter is set then the contents of the SWF file are returned from the function.

Пример 1. Creating a simple flash file based on user input and outputting it and saving it in a database

<?php

// The $text variable is submitted by the
// user

// Global variables for database
// access (used in the swf_savedata() function)
$DBHOST = "localhost";
$DBUSER = "sterling";
$DBPASS = "secret";

swf_openfile("php://stdout", 256, 256, 30, 1, 1, 1);

    swf_definefont(10, "Ligon-Bold");
        swf_fontsize(12);
        swf_fontslant(10);

    swf_definetext(11, $text, 1);

    swf_pushmatrix();
        swf_translate(-50, 80, 0);
        swf_placeobject(11, 60);
    swf_popmatrix();

    swf_showframe();

    swf_startdoaction();
        swf_actionstop();
    swf_enddoaction();

$data = swf_closefile(1);

$data ?
  swf_savedata($data) :
  die("Error could not save SWF file");

// void swf_savedata(string data)
// Save the generated file a database
// for later retrieval
function swf_savedata($data)
{
    global $DBHOST,
           $DBUSER,
           $DBPASS;

    $dbh = @mysql_connect($DBHOST, $DBUSER, $DBPASS);

    if (!$dbh) {
        die (sprintf("Error [%d]: %s",
                      mysql_errno(), mysql_error()));
    }

    $stmt = "INSERT INTO swf_files (file) VALUES ('$data')";

    $sth = @mysql_query($stmt, $dbh);

    if (!$sth) {
        die (sprintf("Error [%d]: %s",
                      mysql_errno(), mysql_error()));
    }

    @mysql_free_result($sth);
    @mysql_close($dbh);
}
?>

Пред. | Начало | След.
swf_addcolor | Уровень выше | swf_definebitmap


swf_definebitmap

(PHP 4, PECL)

swf_definebitmap -- Define a bitmap

Description

void swf_definebitmap ( int objid, string image_name )

The swf_definebitmap() function defines a bitmap given a GIF, JPEG, RGB or FI image. The image will be converted into a Flash JPEG or Flash color map format.

Пред. | Начало | След.
swf_closefile | Уровень выше | swf_definefont


swf_definefont

(PHP 4, PECL)

swf_definefont -- Defines a font

Description

void swf_definefont ( int fontid, string fontname )

The swf_definefont() function defines a font given by the fontname parameter and gives it the id specified by the fontid parameter. It then sets the font given by fontname to the current font.

Пред. | Начало | След.
swf_definebitmap | Уровень выше | swf_defineline


swf_defineline

(PHP 4, PECL)

swf_defineline -- Define a line

Description

void swf_defineline ( int objid, float x1, float y1, float x2, float y2, float width )

The swf_defineline() defines a line starting from the x coordinate given by x1 and the y coordinate given by y1 parameter. Up to the x coordinate given by the x2 parameter and the y coordinate given by the y2 parameter. It will have a width defined by the width parameter.

Пред. | Начало | След.
swf_definefont | Уровень выше | swf_definepoly


swf_definepoly

(PHP 4, PECL)

swf_definepoly -- Define a polygon

Description

void swf_definepoly ( int objid, array coords, int npoints, float width )

The swf_definepoly() function defines a polygon given an array of x, y coordinates (the coordinates are defined in the parameter coords). The parameter npoints is the number of overall points that are contained in the array given by coords. The width is the width of the polygon's border, if set to 0.0 the polygon is filled.

Пред. | Начало | След.
swf_defineline | Уровень выше | swf_definerect


swf_definerect

(PHP 4, PECL)

swf_definerect -- Define a rectangle

Description

void swf_definerect ( int objid, float x1, float y1, float x2, float y2, float width )

The swf_definerect() defines a rectangle with an upper left hand coordinate given by the x, x1, and the y, y1. And a lower right hand coordinate given by the x coordinate, x2, and the y coordinate, y2 . Width of the rectangles border is given by the width parameter, if the width is 0.0 then the rectangle is filled.

Пред. | Начало | След.
swf_definepoly | Уровень выше | swf_definetext


swf_definetext

(PHP 4, PECL)

swf_definetext -- Define a text string

Description

void swf_definetext ( int objid, string str, int docenter )

Define a text string (the str parameter) using the current font and font size. The docenter is where the word is centered, if docenter is 1, then the word is centered in x.

Пред. | Начало | След.
swf_definerect | Уровень выше | swf_endbutton


swf_endbutton

(PHP 4, PECL)

swf_endbutton -- End the definition of the current button

Description

void swf_endbutton ( void )

The swf_endbutton() function ends the definition of the current button.

Пред. | Начало | След.
swf_definetext | Уровень выше | swf_enddoaction


swf_enddoaction

(PHP 4, PECL)

swf_enddoaction -- End the current action

Description

void swf_enddoaction ( void )

Ends the current action started by the swf_startdoaction() function.

Пред. | Начало | След.
swf_endbutton | Уровень выше | swf_endshape


swf_endshape

(PHP 4, PECL)

swf_endshape -- Completes the definition of the current shape

Description

void swf_endshape ( void )

The swf_endshape() completes the definition of the current shape.

Пред. | Начало | След.
swf_enddoaction | Уровень выше | swf_endsymbol


swf_endsymbol

(PHP 4, PECL)

swf_endsymbol -- End the definition of a symbol

Description

void swf_endsymbol ( void )

The swf_endsymbol() function ends the definition of a symbol that was started by the swf_startsymbol() function.

Пред. | Начало | След.
swf_endshape | Уровень выше | swf_fontsize


swf_fontsize

(PHP 4, PECL)

swf_fontsize -- Change the font size

Description

void swf_fontsize ( float size )

The swf_fontsize() function changes the font size to the value given by the size parameter.

Пред. | Начало | След.
swf_endsymbol | Уровень выше | swf_fontslant


swf_fontslant

(PHP 4, PECL)

swf_fontslant -- Set the font slant

Description

void swf_fontslant ( float slant )

Set the current font slant to the angle indicated by the slant parameter. Positive values create a forward slant, negative values create a negative slant.

Пред. | Начало | След.
swf_fontsize | Уровень выше | swf_fonttracking


swf_fonttracking

(PHP 4, PECL)

swf_fonttracking -- Set the current font tracking

Description

void swf_fonttracking ( float tracking )

Set the font tracking to the value specified by the tracking parameter. This function is used to increase the spacing between letters and text, positive values increase the space and negative values decrease the space between letters.

Пред. | Начало | След.
swf_fontslant | Уровень выше | swf_getbitmapinfo


swf_getbitmapinfo

(PHP 4, PECL)

swf_getbitmapinfo -- Get information about a bitmap

Description

array swf_getbitmapinfo ( int bitmapid )

The swf_getbitmapinfo() function returns an array of information about a bitmap given by the bitmapid parameter. The returned array has the following elements:

  • "size" - The size in bytes of the bitmap.

  • "width" - The width in pixels of the bitmap.

  • "height" - The height in pixels of the bitmap.

Пред. | Начало | След.
swf_fonttracking | Уровень выше | swf_getfontinfo


swf_getfontinfo

(PHP 4, PECL)

swf_getfontinfo -- The height in pixels of a capital A and a lowercase x

Description

array swf_getfontinfo ( void )

The swf_getfontinfo() function returns an associative array with the following parameters:

  • Aheight - The height in pixels of a capital A.

  • xheight - The height in pixels of a lowercase x.

Пред. | Начало | След.
swf_getbitmapinfo | Уровень выше | swf_getframe


swf_getframe

(PHP 4, PECL)

swf_getframe -- Get the frame number of the current frame

Description

int swf_getframe ( void )

The swf_getframe() function gets the number of the current frame.

Пред. | Начало | След.
swf_getfontinfo | Уровень выше | swf_labelframe


swf_labelframe

(PHP 4, PECL)

swf_labelframe -- Label the current frame

Description

void swf_labelframe ( string name )

Label the current frame with the name given by the name parameter.

Пред. | Начало | След.
swf_getframe | Уровень выше | swf_lookat


swf_lookat

(PHP 4, PECL)

swf_lookat -- Define a viewing transformation

Description

void swf_lookat ( float view_x, float view_y, float view_z, float reference_x, float reference_y, float reference_z, float twist )

The swf_lookat() function defines a viewing transformation by giving the viewing position (the parameters view_x, view_y, and view_z) and the coordinates of a reference point in the scene, the reference point is defined by the reference_x, reference_y , and reference_z parameters. The twist controls the rotation along with viewer's z axis.

Пред. | Начало | След.
swf_labelframe | Уровень выше | swf_modifyobject


swf_modifyobject

(PHP 4, PECL)

swf_modifyobject -- Modify an object

Description

void swf_modifyobject ( int depth, int how )

Updates the position and/or color of the object at the specified depth, depth. The parameter how determines what is updated. how can either be the constant MOD_MATRIX or MOD_COLOR or it can be a combination of both (MOD_MATRIX|MOD_COLOR).

MOD_COLOR uses the current mulcolor (specified by the function swf_mulcolor()) and addcolor (specified by the function swf_addcolor()) to color the object. MOD_MATRIX uses the current matrix to position the object.

Пред. | Начало | След.
swf_lookat | Уровень выше | swf_mulcolor


swf_mulcolor

(PHP 4, PECL)

swf_mulcolor -- Sets the global multiply color to the rgba value specified

Description

void swf_mulcolor ( float r, float g, float b, float a )

The swf_mulcolor() function sets the global multiply color to the rgba color specified. This color is then used (implicitly) by the swf_placeobject(), swf_modifyobject() and the swf_addbuttonrecord() functions. The color of the object will be multiplied by the rgba values when the object is written to the screen.

Замечание: The rgba values can be either positive or negative.

Пред. | Начало | След.
swf_modifyobject | Уровень выше | swf_nextid


swf_nextid

(PHP 4, PECL)

swf_nextid -- Returns the next free object id

Description

int swf_nextid ( void )

The swf_nextid() function returns the next available object id.

Пред. | Начало | След.
swf_mulcolor | Уровень выше | swf_oncondition


swf_oncondition

(PHP 4, PECL)

swf_oncondition -- Describe a transition used to trigger an action list

Description

void swf_oncondition ( int transition )

The swf_oncondition() function describes a transition that will trigger an action list. There are several types of possible transitions, the following are for buttons defined as TYPE_MENUBUTTON:

  • IdletoOverUp

  • OverUptoIdle

  • OverUptoOverDown

  • OverDowntoOverUp

  • IdletoOverDown

  • OutDowntoIdle

  • MenuEnter (IdletoOverUp|IdletoOverDown)

  • MenuExit (OverUptoIdle|OverDowntoIdle)

For TYPE_PUSHBUTTON there are the following options:

  • IdletoOverUp

  • OverUptoIdle

  • OverUptoOverDown

  • OverDowntoOverUp

  • OverDowntoOutDown

  • OutDowntoOverDown

  • OutDowntoIdle

  • ButtonEnter (IdletoOverUp|OutDowntoOverDown)

  • ButtonExit (OverUptoIdle|OverDowntoOutDown)

Пред. | Начало | След.
swf_nextid | Уровень выше | swf_openfile


swf_openfile

(PHP 4, PECL)

swf_openfile -- Open a new Shockwave Flash file

Description

void swf_openfile ( string filename, float width, float height, float framerate, float r, float g, float b )

The swf_openfile() function opens a new file named filename with a width of width and a height of height a frame rate of framerate and background with a red color of r a green color of g and a blue color of b.

The swf_openfile() must be the first function you call, otherwise your script will cause a segfault. If you want to send your output to the screen make the filename: "php://stdout" (support for this is in 4.0.1 and up).

Пред. | Начало | След.
swf_oncondition | Уровень выше | swf_ortho2


swf_ortho2

(PHP 4, PECL)

swf_ortho2 -- Defines 2D orthographic mapping of user coordinates onto the current viewport

Description

void swf_ortho2 ( float xmin, float xmax, float ymin, float ymax )

The swf_ortho2() function defines a two dimensional orthographic mapping of user coordinates onto the current viewport, this defaults to one to one mapping of the area of the Flash movie. If a perspective transformation is desired, the swf_perspective() function can be used.

Пред. | Начало | След.
swf_openfile | Уровень выше | swf_ortho


swf_ortho

(PHP 4 >= 4.0.1, PECL)

swf_ortho -- Defines an orthographic mapping of user coordinates onto the current viewport

Description

void swf_ortho ( float xmin, float xmax, float ymin, float ymax, float zmin, float zmax )

The swf_ortho() function defines an orthographic mapping of user coordinates onto the current viewport.

Пред. | Начало | След.
swf_ortho2 | Уровень выше | swf_perspective


swf_perspective

(PHP 4, PECL)

swf_perspective -- Define a perspective projection transformation

Description

void swf_perspective ( float fovy, float aspect, float near, float far )

The swf_perspective() function defines a perspective projection transformation. The fovy parameter is field-of-view angle in the y direction. The aspect parameter should be set to the aspect ratio of the viewport that is being drawn onto. The near parameter is the near clipping plane and the far parameter is the far clipping plane.

Замечание: Various distortion artifacts may appear when performing a perspective projection, this is because Flash players only have a two dimensional matrix. Some are not to pretty.

Пред. | Начало | След.
swf_ortho | Уровень выше | swf_placeobject


swf_placeobject

(PHP 4, PECL)

swf_placeobject -- Place an object onto the screen

Description

void swf_placeobject ( int objid, int depth )

Places the object specified by objid in the current frame at a depth of depth. The objid parameter and the depth must be between 1 and 65535.

This uses the current mulcolor (specified by swf_mulcolor()) and the current addcolor (specified by swf_addcolor()) to color the object and it uses the current matrix to position the object.

Замечание: Full RGBA colors are supported.

Пред. | Начало | След.
swf_perspective | Уровень выше | swf_polarview


swf_polarview

(PHP 4, PECL)

swf_polarview -- Define the viewer's position with polar coordinates

Description

void swf_polarview ( float dist, float azimuth, float incidence, float twist )

The swf_polarview() function defines the viewer's position in polar coordinates. The dist parameter gives the distance between the viewpoint to the world space origin. The azimuth parameter defines the azimuthal angle in the x,y coordinate plane, measured in distance from the y axis. The incidence parameter defines the angle of incidence in the y,z plane, measured in distance from the z axis. The incidence angle is defined as the angle of the viewport relative to the z axis. Finally the twist specifies the amount that the viewpoint is to be rotated about the line of sight using the right hand rule.

Пред. | Начало | След.
swf_placeobject | Уровень выше | swf_popmatrix


swf_popmatrix

(PHP 4, PECL)

swf_popmatrix -- Restore a previous transformation matrix

Description

void swf_popmatrix ( void )

The swf_popmatrix() function pushes the current transformation matrix back onto the stack.

Пред. | Начало | След.
swf_polarview | Уровень выше | swf_posround


swf_posround

(PHP 4, PECL)

swf_posround -- Enables or Disables the rounding of the translation when objects are placed or moved

Description

void swf_posround ( int round )

The swf_posround() function enables or disables the rounding of the translation when objects are placed or moved, there are times when text becomes more readable because rounding has been enabled. The round is whether to enable rounding or not, if set to the value of 1, then rounding is enabled, if set to 0 then rounding is disabled.

Пред. | Начало | След.
swf_popmatrix | Уровень выше | swf_pushmatrix


swf_pushmatrix

(PHP 4, PECL)

swf_pushmatrix -- Push the current transformation matrix back unto the stack

Description

void swf_pushmatrix ( void )

The swf_pushmatrix() function pushes the current transformation matrix back onto the stack.

Пред. | Начало | След.
swf_posround | Уровень выше | swf_removeobject


swf_removeobject

(PHP 4, PECL)

swf_removeobject -- Remove an object

Description

void swf_removeobject ( int depth )

Removes the object at the depth specified by depth.

Пред. | Начало | След.
swf_pushmatrix | Уровень выше | swf_rotate


swf_rotate

(PHP 4, PECL)

swf_rotate -- Rotate the current transformation

Description

void swf_rotate ( float angle, string axis )

The swf_rotate() rotates the current transformation by the angle given by the angle parameter around the axis given by the axis parameter. Valid values for the axis are 'x' (the x axis), 'y' (the y axis) or 'z' (the z axis).

Пред. | Начало | След.
swf_removeobject | Уровень выше | swf_scale


swf_scale

(PHP 4, PECL)

swf_scale -- Scale the current transformation

Description

void swf_scale ( float x, float y, float z )

The swf_scale() scales the x coordinate of the curve by the value of the x parameter, the y coordinate of the curve by the value of the y parameter, and the z coordinate of the curve by the value of the z parameter.

Пред. | Начало | След.
swf_rotate | Уровень выше | swf_setfont


swf_setfont

(PHP 4, PECL)

swf_setfont -- Change the current font

Description

void swf_setfont ( int fontid )

The swf_setfont() sets the current font to the value given by the fontid parameter.

Пред. | Начало | След.
swf_scale | Уровень выше | swf_setframe


swf_setframe

(PHP 4, PECL)

swf_setframe -- Switch to a specified frame

Description

void swf_setframe ( int framenumber )

The swf_setframe() changes the active frame to the frame specified by framenumber.

Пред. | Начало | След.
swf_setfont | Уровень выше | swf_shapearc


swf_shapearc

(PHP 4, PECL)

swf_shapearc -- Draw a circular arc

Description

void swf_shapearc ( float x, float y, float r, float ang1, float ang2 )

The swf_shapearc() function draws a circular arc from angle A given by the ang1 parameter to angle B given by the ang2 parameter. The center of the circle has an x coordinate given by the x parameter and a y coordinate given by the y, the radius of the circle is given by the r parameter.

Пред. | Начало | След.
swf_setframe | Уровень выше | swf_shapecurveto3


swf_shapecurveto3

(PHP 4, PECL)

swf_shapecurveto3 -- Draw a cubic bezier curve

Description

void swf_shapecurveto3 ( float x1, float y1, float x2, float y2, float x3, float y3 )

Draw a cubic bezier curve using the x,y coordinate pairs x1, y1 and x2,y2 as off curve control points and the x,y coordinate x3, y3 as an endpoint. The current position is then set to the x,y coordinate pair given by x3,y3.

Пред. | Начало | След.
swf_shapearc | Уровень выше | swf_shapecurveto


swf_shapecurveto

(PHP 4, PECL)

swf_shapecurveto -- Draw a quadratic bezier curve between two points

Description

void swf_shapecurveto ( float x1, float y1, float x2, float y2 )

The swf_shapecurveto() function draws a quadratic bezier curve from the current location, though the x coordinate given by x1 and the y coordinate given by y1 to the x coordinate given by x2 and the y coordinate given by y2. The current position is then set to the x,y coordinates given by the x2 and y2 parameters

Пред. | Начало | След.
swf_shapecurveto3 | Уровень выше | swf_shapefillbitmapclip


swf_shapefillbitmapclip

(PHP 4, PECL)

swf_shapefillbitmapclip -- Set current fill mode to clipped bitmap

Description

void swf_shapefillbitmapclip ( int bitmapid )

Sets the fill to bitmap clipped, empty spaces will be filled by the bitmap given by the bitmapid parameter.

Пред. | Начало | След.
swf_shapecurveto | Уровень выше | swf_shapefillbitmaptile


swf_shapefillbitmaptile

(PHP 4, PECL)

swf_shapefillbitmaptile -- Set current fill mode to tiled bitmap

Description

void swf_shapefillbitmaptile ( int bitmapid )

Sets the fill to bitmap tile, empty spaces will be filled by the bitmap given by the bitmapid parameter (tiled).

Пред. | Начало | След.
swf_shapefillbitmapclip | Уровень выше | swf_shapefilloff


swf_shapefilloff

(PHP 4, PECL)

swf_shapefilloff -- Turns off filling

Description

void swf_shapefilloff ( void )

The swf_shapefilloff() function turns off filling for the current shape.

Пред. | Начало | След.
swf_shapefillbitmaptile | Уровень выше | swf_shapefillsolid


swf_shapefillsolid

(PHP 4, PECL)

swf_shapefillsolid -- Set the current fill style to the specified color

Description

void swf_shapefillsolid ( float r, float g, float b, float a )

The swf_shapefillsolid() function sets the current fill style to solid, and then sets the fill color to the values of the rgba parameters.

Пред. | Начало | След.
swf_shapefilloff | Уровень выше | swf_shapelinesolid


swf_shapelinesolid

(PHP 4, PECL)

swf_shapelinesolid -- Set the current line style

Description

void swf_shapelinesolid ( float r, float g, float b, float a, float width )

The swf_shapelinesolid() function sets the current line style to the color of the rgba parameters and width to the width parameter. If 0.0 is given as a width then no lines are drawn.

Пред. | Начало | След.
swf_shapefillsolid | Уровень выше | swf_shapelineto


swf_shapelineto

(PHP 4, PECL)

swf_shapelineto -- Draw a line

Description

void swf_shapelineto ( float x, float y )

The swf_shapelineto() draws a line to the x,y coordinates given by the x parameter & the y parameter. The current position is then set to the x,y parameters.

Пред. | Начало | След.
swf_shapelinesolid | Уровень выше | swf_shapemoveto


swf_shapemoveto

(PHP 4, PECL)

swf_shapemoveto -- Move the current position

Description

void swf_shapemoveto ( float x, float y )

The swf_shapemoveto() function moves the current position to the x coordinate given by the x parameter and the y position given by the y parameter.

Пред. | Начало | След.
swf_shapelineto | Уровень выше | swf_showframe


swf_showframe

(PHP 4, PECL)

swf_showframe -- Display the current frame

Description

void swf_showframe ( void )

The swf_showframe function will output the current frame.

Пред. | Начало | След.
swf_shapemoveto | Уровень выше | swf_startbutton


swf_startbutton

(PHP 4, PECL)

swf_startbutton -- Start the definition of a button

Description

void swf_startbutton ( int objid, int type )

The swf_startbutton() function starts off the definition of a button. The type parameter can either be TYPE_MENUBUTTON or TYPE_PUSHBUTTON. The TYPE_MENUBUTTON constant allows the focus to travel from the button when the mouse is down, TYPE_PUSHBUTTON does not allow the focus to travel when the mouse is down.

Пред. | Начало | След.
swf_showframe | Уровень выше | swf_startdoaction


swf_startdoaction

(PHP 4, PECL)

swf_startdoaction -- Start a description of an action list for the current frame

Description

void swf_startdoaction ( void )

The swf_startdoaction() function starts the description of an action list for the current frame. This must be called before actions are defined for the current frame.

Пред. | Начало | След.
swf_startbutton | Уровень выше | swf_startshape


swf_startshape

(PHP 4, PECL)

swf_startshape -- Start a complex shape

Description

void swf_startshape ( int objid )

The swf_startshape() function starts a complex shape, with an object id given by the objid parameter.

Пред. | Начало | След.
swf_startdoaction | Уровень выше | swf_startsymbol


swf_startsymbol

(PHP 4, PECL)

swf_startsymbol -- Define a symbol

Description

void swf_startsymbol ( int objid )

Define an object id as a symbol. Symbols are tiny flash movies that can be played simultaneously. The objid parameter is the object id you want to define as a symbol.

Пред. | Начало | След.
swf_startshape | Уровень выше | swf_textwidth


swf_textwidth

(PHP 4, PECL)

swf_textwidth -- Get the width of a string

Description

float swf_textwidth ( string str )

The swf_textwidth() function gives the width of the string, str, in pixels, using the current font and font size.

Пред. | Начало | След.
swf_startsymbol | Уровень выше | swf_translate


swf_translate

(PHP 4, PECL)

swf_translate -- Translate the current transformations

Description

void swf_translate ( float x, float y, float z )

The swf_translate() function translates the current transformation by the x, y, and z values given.

Пред. | Начало | След.
swf_textwidth | Уровень выше | swf_viewport


swf_viewport

(PHP 4, PECL)

swf_viewport -- Select an area for future drawing

Description

void swf_viewport ( float xmin, float xmax, float ymin, float ymax )

The swf_viewport() function selects an area for future drawing for xmin to xmax and ymin to ymax, if this function is not called the area defaults to the size of the screen.

Пред. | Начало | След.
swf_translate | Уровень выше | Sybase Functions


Sybase Functions

Руководство по PHP
Пред. След.

CXLVIII. Sybase Functions

Введение

Требования

Установка

To enable Sybase-DB support configure PHP --with-sybase[=DIR]. DIR is the Sybase home directory, defaults to /home/sybase. To enable Sybase-CT support configure PHP --with-sybase-ct[=DIR]. DIR is the Sybase home directory, defaults to /home/sybase.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Sybase configuration options

Name | Default | Changeable | Changelog
sybase.allow_persistent | "1" | PHP_INI_ALL | Available since PHP 4.0.3.
sybase.max_persistent | "-1" | PHP_INI_ALL | Available since PHP 4.0.3.
sybase.max_links | "-1" | PHP_INI_ALL | Available since PHP 4.0.3.
sybase.interface_file | "/usr/sybase/interfaces" | PHP_INI_SYSTEM |
sybase.min_error_severity | "10" | PHP_INI_ALL |
sybase.min_message_severity | "10" | PHP_INI_ALL |
sybase.compatability_mode | "0" | PHP_INI_ALL |
magic_quotes_sybase | "0" | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

sybase.allow_persistent boolean

Whether to allow persistent Sybase connections.

sybase.max_persistent integer

The maximum number of persistent Sybase connections per process. -1 means no limit.

sybase.max_links integer

The maximum number of Sybase connections per process, including persistent connections. -1 means no limit.

sybase.min_error_severity integer

Minimum error severity to display.

sybase.min_message_severity integer

Minimum message severity to display.

sybase.compatability_mode boolean

Compatibility mode with old versions of PHP 3.0. If on, this will cause PHP to automatically assign types to results according to their Sybase type, instead of treating them all as strings. This compatibility mode will probably not stay around forever, so try applying whatever necessary changes to your code, and turn it off.

magic_quotes_sybase boolean

If magic_quotes_sybase is on, a single-quote is escaped with a single-quote instead of a backslash if magic_quotes_gpc or magic_quotes_runtime are enabled.

Замечание: Note that when magic_quotes_sybase is ON it completely overrides magic_quotes_gpc . In this case even when magic_quotes_gpc is enabled neither double quotes, backslashes or NUL's will be escaped.

Таблица 2. Sybase-CT configuration options

Name | Default | Changeable | Changelog
sybct.allow_persistent | "1" | PHP_INI_SYSTEM | Available since PHP 4.0.4.
sybct.max_persistent | "-1" | PHP_INI_SYSTEM | Available since PHP 4.0.4.
sybct.max_links | "-1" | PHP_INI_SYSTEM | Available since PHP 4.0.4.
sybct.min_server_severity | "10" | PHP_INI_ALL | Available since PHP 4.0.4.
sybct.min_client_severity | "10" | PHP_INI_ALL | Available since PHP 4.0.4.
sybct.hostname | NULL | PHP_INI_ALL | Available since PHP 4.0.4.
sybct.deadlock_retry_count | "0" | PHP_INI_ALL | Available since PHP 4.3.0.

Краткое разъяснение конфигурационных директив.

sybct.allow_persistent boolean

Whether to allow persistent Sybase-CT connections. The default is on.

sybct.max_persistent integer

The maximum number of persistent Sybase-CT connections per process. The default is -1 meaning unlimited.

sybct.max_links integer

The maximum number of Sybase-CT connections per process, including persistent connections. The default is -1 meaning unlimited.

sybct.min_server_severity integer

Server messages with severity greater than or equal to sybct.min_server_severity will be reported as warnings. This value can also be set from a script by calling sybase_min_server_severity(). The default is 10 which reports errors of information severity or greater.

sybct.min_client_severity integer

Client library messages with severity greater than or equal to sybct.min_client_severity will be reported as warnings. This value can also be set from a script by calling sybase_min_client_severity(). The default is 10 which effectively disables reporting.

sybct.login_timeout integer

The maximum time in seconds to wait for a connection attempt to succeed before returning failure. Note that if max_execution_time has been exceeded when a connection attempt times out, your script will be terminated before it can take action on failure. The default is one minute.

sybct.timeout integer

The maximum time in seconds to wait for a select_db or query operation to succeed before returning failure. Note that if max_execution_time has been exceeded when an operation times out, your script will be terminated before it can take action on failure. The default is no limit.

sybct.hostname string

The name of the host you claim to be connecting from, for display by sp_who. The default is none.

sybct.deadlock_retry_count int

Allows you to define how often deadlocks are to be retried. The default is -1, or "forever".

Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Типы ресурсов

Предопределенные константы

Данное расширение не определяет никакие константы.

Содержание
sybase_affected_rows -- Gets number of affected rows in last query
sybase_close -- Closes a Sybase connection
sybase_connect -- Opens a Sybase server connection
sybase_data_seek -- Moves internal row pointer
sybase_deadlock_retry_count -- Sets the deadlock retry count
sybase_fetch_array -- Fetch row as array
sybase_fetch_assoc -- Fetch a result row as an associative array
sybase_fetch_field -- Get field information from a result
sybase_fetch_object -- Fetch a row as an object
sybase_fetch_row -- Get a result row as an enumerated array
sybase_field_seek -- Sets field offset
sybase_free_result -- Frees result memory
sybase_get_last_message -- Returns the last message from the server
sybase_min_client_severity -- Sets minimum client severity
sybase_min_error_severity -- Sets minimum error severity
sybase_min_message_severity -- Sets minimum message severity
sybase_min_server_severity -- Sets minimum server severity
sybase_num_fields -- Gets the number of fields in a result set
sybase_num_rows -- Get number of rows in a result set
sybase_pconnect -- Open persistent Sybase connection
sybase_query -- Sends a Sybase query
sybase_result -- Get result data
sybase_select_db -- Selects a Sybase database
sybase_set_message_handler -- Sets the handler called when a server message is raised
sybase_unbuffered_query -- Send a Sybase query and do not block

Пред. | Начало | След.
swf_viewport | Уровень выше | sybase_affected_rows


sybase_affected_rows

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

sybase_affected_rows -- Gets number of affected rows in last query

Description

int sybase_affected_rows ( [resource link_identifier] )

sybase_affected_rows() returns the number of rows affected by the last INSERT, UPDATE or DELETE query on the server associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed.

Пример 1. Delete-Query

<?php
/* connect to database */
sybase_connect('SYBASE', '', '') or
die("Could not connect");
sybase_select_db("db");

sybase_query("DELETE FROM sometable WHERE id < 10");
printf("Records deleted: %d\n", sybase_affected_rows());
?>

Результат выполнения данного примера:

Records deleted: 10

This command is not effective for SELECT statements, only on statements which modify records. To retrieve the number of rows returned from a SELECT, use sybase_num_rows().

See also sybase_num_rows().

Пред. | Начало | След.
Sybase Functions | Уровень выше | sybase_close


sybase_close

(PHP 3, PHP 4, PHP 5)

sybase_close -- Closes a Sybase connection

Description

bool sybase_close ( [resource link_identifier] )

sybase_close() closes the link to a Sybase database that's associated with the specified link link_identifier. If the link identifier isn't specified, the last opened link is assumed.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Note that this isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.

sybase_close() will not close persistent links generated by sybase_pconnect().

See also sybase_connect() and sybase_pconnect().

Пред. | Начало | След.
sybase_affected_rows | Уровень выше | sybase_connect


sybase_connect

(PHP 3, PHP 4, PHP 5)

sybase_connect -- Opens a Sybase server connection

Description

resource sybase_connect ( [string servername [, string username [, string password [, string charset [, string appname]]]]] )

Returns a positive Sybase link identifier on success, or FALSE on failure.

sybase_connect() establishes a connection to a Sybase server. The servername argument has to be a valid servername that is defined in the 'interfaces' file.

In case a second call is made to sybase_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned.

The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling sybase_close().

Пример 1. sybase_connect() example

<?php
$link = sybase_connect('SYBASE', '', '')
        or die("Could not connect !");
echo "Connected successfully";
sybase_close($link);
?>

See also sybase_pconnect() and sybase_close().

Пред. | Начало | След.
sybase_close | Уровень выше | sybase_data_seek


sybase_data_seek

(PHP 3, PHP 4, PHP 5)

sybase_data_seek -- Moves internal row pointer

Description

bool sybase_data_seek ( resource result_identifier, int row_number )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

sybase_data_seek() moves the internal row pointer of the Sybase result associated with the specified result identifier to pointer to the specified row number. The next call to sybase_fetch_row() would return that row.

See also sybase_fetch_row().

Пред. | Начало | След.
sybase_connect | Уровень выше | sybase_deadlock_retry_count


sybase_deadlock_retry_count

(PHP 4 >= 4.3.0, PHP 5)

sybase_deadlock_retry_count -- Sets the deadlock retry count

Description

void sybase_deadlock_retry_count ( int retry_count )

Using sybase_deadlock_retry_count(), the number of retries can be defined in cases of deadlocks. By default, every deadlock is retried an infinite number of times or until the process is killed by Sybase, the executing script is killed (for instance, by set_time_limit()) or the query succeeds.

Замечание: Эта функция доступна только при использовании интерфейса к Sybase библиотеки CT, но не библиотеки DB.

Таблица 1. Values for retry_count

-1 | Retry forever (default)
0 | Do not retry
n | Retry n times

Пред. | Начало | След.
sybase_data_seek | Уровень выше | sybase_fetch_array


sybase_fetch_array

(PHP 3, PHP 4, PHP 5)

sybase_fetch_array -- Fetch row as array

Description

array sybase_fetch_array ( resource result )

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

sybase_fetch_array() is an extended version of sybase_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

An important thing to note is that using sybase_fetch_array() is NOT significantly slower than using sybase_fetch_row(), while it provides a significant added value.

Замечание: When selecting fields with identical names (for instance, in a join), the associative indices will have a sequential number prepended. See the example for details.

Пример 1. Identical fieldnames

<?php

$dbh = sybase_connect('SYBASE', '', '');
$q = sybase_query('SELECT * FROM p, a WHERE p.person_id= a.person_id');
var_dump(sybase_fetch_array($q));
sybase_close($dbh);
?>

The above example would produce the following output (assuming the two tables only have each one column called "person_id"):

array(4) {
  [0]=>
  int(1)
  ["person_id"]=>
  int(1)
  [1]=>
  int(1)
  ["person_id1"]=>
  int(1)
}

See also
sybase_fetch_row(),
sybase_fetch_assoc() and
sybase_fetch_object().

Пред. | Начало | След.
sybase_deadlock_retry_count | Уровень выше | sybase_fetch_assoc


sybase_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

sybase_fetch_assoc -- Fetch a result row as an associative array

Description

array sybase_fetch_assoc ( resource result )

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

Замечание: Эта функция доступна только при использовании интерфейса к Sybase библиотеки CT, но не библиотеки DB.

sybase_fetch_assoc() is a version of sybase_fetch_row() that uses column names instead of integers for indices in the result array. Columns from different tables with the same names are returned as name, name1, name2, ..., nameN.

An important thing to note is that using sybase_fetch_assoc() is NOT significantly slower than using sybase_fetch_row(), while it provides a significant added value.

See also
sybase_fetch_array(),
sybase_fetch_object() and
sybase_fetch_row().

Пред. | Начало | След.
sybase_fetch_array | Уровень выше | sybase_fetch_field


sybase_fetch_field

(PHP 3, PHP 4, PHP 5)

sybase_fetch_field -- Get field information from a result

Description

object sybase_fetch_field ( resource result [, int field_offset] )

Returns an object containing field information.

sybase_fetch_field() can be used in order to obtain information about fields in a certain query result. If the field offset isn't specified, the next field that wasn't yet retrieved by sybase_fetch_field() is retrieved.

The properties of the object are:

  • name - column name. if the column is a result of a function, this property is set to computed#N, where #N is a serial number.

  • column_source - the table from which the column was taken

  • max_length - maximum length of the column

  • numeric - 1 if the column is numeric

  • type - datatype of the column

See also sybase_field_seek().

Пред. | Начало | След.
sybase_fetch_assoc | Уровень выше | sybase_fetch_object


sybase_fetch_object

(PHP 3, PHP 4, PHP 5)

sybase_fetch_object -- Fetch a row as an object

Description

object sybase_fetch_object ( resource result [, mixed object] )

Returns an object with properties that correspond to the fetched row, or FALSE if there are no more rows.

sybase_fetch_object() is similar to sybase_fetch_assoc(), with one difference - an object is returned, instead of an array.

Use the second object to specify the type of object you want to return. If this parameter is omitted, the object will be of type stdClass.

Замечание: As of PHP 4.3.0, this function will no longer return numeric object members.

Old behaviour:
object(stdclass)(3) {
  [0]=>
  string(3) "foo"
  ["foo"]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  ["bar"]=>
  string(3) "bar"
}
New behaviour:
object(stdclass)(3) {
  ["foo"]=>
  string(3) "foo"
  ["bar"]=>
  string(3) "bar"
}

Пример 1. sybase_fetch_object() return as Foo

<?php
    class Foo {
        var $foo, $bar, $baz;
    }

    // {...]
    $qrh= sybase_query('SELECT foo, bar, baz FROM example');
    $foo= sybase_fetch_object($qrh, 'Foo');
    $bar= sybase_fetch_object($qrh, new Foo());
    // {...]
?>

Speed-wise, the function is identical to sybase_fetch_array(), and almost as quick as sybase_fetch_row() (the difference is insignificant).

See also sybase_fetch_array() and sybase_fetch_row().

Пред. | Начало | След.
sybase_fetch_field | Уровень выше | sybase_fetch_row


sybase_fetch_row

(PHP 3, PHP 4, PHP 5)

sybase_fetch_row -- Get a result row as an enumerated array

Description

array sybase_fetch_row ( resource result )

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

sybase_fetch_row() fetches one row of data from the result associated with the specified result identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0.

Subsequent call to sybase_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

Таблица 1. Data types

PHP | Sybase
string | VARCHAR, TEXT, CHAR, IMAGE, BINARY, VARBINARY, DATETIME
int | NUMERIC (w/o precision), DECIMAL (w/o precision), INT, BIT, TINYINT, SMALLINT
float | NUMERIC (w/ precision), DECIMAL (w/ precision), REAL, FLOAT, MONEY
NULL | NULL

See also
sybase_fetch_array(),
sybase_fetch_assoc(),
sybase_fetch_object(),
sybase_data_seek() and
sybase_result().

Пред. | Начало | След.
sybase_fetch_object | Уровень выше | sybase_field_seek


sybase_field_seek

(PHP 3, PHP 4, PHP 5)

sybase_field_seek -- Sets field offset

Description

bool sybase_field_seek ( resource result, int field_offset )

Seeks to the specified field offset. If the next call to sybase_fetch_field() won't include a field offset, this field would be returned.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

See also sybase_fetch_field().

Пред. | Начало | След.
sybase_fetch_row | Уровень выше | sybase_free_result


sybase_free_result

(PHP 3, PHP 4, PHP 5)

sybase_free_result -- Frees result memory

Description

bool sybase_free_result ( resource result )

sybase_free_result() only needs to be called if you are worried about using too much memory while your script is running. All result memory will automatically be freed when the script ends. You may call sybase_free_result() with the result identifier as an argument and the associated result memory will be freed.

Пред. | Начало | След.
sybase_field_seek | Уровень выше | sybase_get_last_message


sybase_get_last_message

(PHP 3, PHP 4, PHP 5)

sybase_get_last_message -- Returns the last message from the server

Description

string sybase_get_last_message ( void )

sybase_get_last_message() returns the last message reported by the server.

See also sybase_min_message_severity().

Пред. | Начало | След.
sybase_free_result | Уровень выше | sybase_min_client_severity


sybase_min_client_severity

(PHP 3, PHP 4, PHP 5)

sybase_min_client_severity -- Sets minimum client severity

Description

void sybase_min_client_severity ( int severity )

sybase_min_client_severity() sets the minimum client severity level.

Замечание: Эта функция доступна только при использовании интерфейса к Sybase библиотеки CT, но не библиотеки DB.

See also sybase_min_server_severity().

Пред. | Начало | След.
sybase_get_last_message | Уровень выше | sybase_min_error_severity


sybase_min_error_severity

(PHP 3, PHP 4, PHP 5)

sybase_min_error_severity -- Sets minimum error severity

Description

void sybase_min_error_severity ( int severity )

sybase_min_error_severity() sets the minimum error severity level.

Замечание: Эта функция доступна только при использовании интерфейса к Sybase библиотеки DB, но не библиотеки CT.

See also sybase_min_message_severity().

Пред. | Начало | След.
sybase_min_client_severity | Уровень выше | sybase_min_message_severity


sybase_min_message_severity

(PHP 3, PHP 4, PHP 5)

sybase_min_message_severity -- Sets minimum message severity

Description

void sybase_min_message_severity ( int severity )

sybase_min_message_severity() sets the minimum message severity level.

Замечание: Эта функция доступна только при использовании интерфейса к Sybase библиотеки DB, но не библиотеки CT.

See also sybase_min_error_severity().

Пред. | Начало | След.
sybase_min_error_severity | Уровень выше | sybase_min_server_severity


sybase_min_server_severity

(PHP 3, PHP 4, PHP 5)

sybase_min_server_severity -- Sets minimum server severity

Description

void sybase_min_server_severity ( int severity )

sybase_min_server_severity() sets the minimum server severity level.

Замечание: Эта функция доступна только при использовании интерфейса к Sybase библиотеки CT, но не библиотеки DB.

See also sybase_min_client_severity().

Пред. | Начало | След.
sybase_min_message_severity | Уровень выше | sybase_num_fields


sybase_num_fields

(PHP 3, PHP 4, PHP 5)

sybase_num_fields -- Gets the number of fields in a result set

Description

int sybase_num_fields ( resource result )

sybase_num_fields() returns the number of fields in a result set.

See also
sybase_query(),
sybase_fetch_field() and
sybase_num_rows().

Пред. | Начало | След.
sybase_min_server_severity | Уровень выше | sybase_num_rows


sybase_num_rows

(PHP 3, PHP 4, PHP 5)

sybase_num_rows -- Get number of rows in a result set

Description

int sybase_num_rows ( resource result )

sybase_num_rows() returns the number of rows in a result set.

See also
sybase_num_fields(),
sybase_query() and
sybase_fetch_row().

Пред. | Начало | След.
sybase_num_fields | Уровень выше | sybase_pconnect


sybase_pconnect

(PHP 3, PHP 4, PHP 5)

sybase_pconnect -- Open persistent Sybase connection

Description

resource sybase_pconnect ( [string servername [, string username [, string password [, string charset [, string appname]]]]] )

Returns a positive Sybase persistent link identifier on success, or FALSE on error.

sybase_pconnect() acts very much like sybase_connect() with two major differences.

First, when connecting, the function would first try to find a (persistent) link that's already open with the same host, username and password. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (sybase_close() will not close links established by sybase_pconnect()).

This type of links is therefore called 'persistent'.

See also sybase_connect().

Пред. | Начало | След.
sybase_num_rows | Уровень выше | sybase_query


sybase_query

(PHP 3, PHP 4, PHP 5)

sybase_query -- Sends a Sybase query

Description

mixed sybase_query ( string query [, resource link_identifier] )

Returns a positive Sybase result identifier on success, FALSE on error, or TRUE if the query was successful but didn't return any columns.

sybase_query() sends a query to the currently active database on the server that's associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed. If no link is open, the function tries to establish a link as if sybase_connect() was called, and use it.

See also sybase_select_db() and sybase_connect().

Пред. | Начало | След.
sybase_pconnect | Уровень выше | sybase_result


sybase_result

(PHP 3, PHP 4, PHP 5)

sybase_result -- Get result data

Description

string sybase_result ( resource result, int row, mixed field )

Returns the contents of the cell at the row and offset in the specified Sybase result set.

sybase_result() returns the contents of one cell from a Sybase result set. The field argument can be the field's offset, or the field's name, or the field's table dot field's name (tablename.fieldname). If the column name has been aliased ('select foo as bar from...'), use the alias instead of the column name.

When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they're MUCH quicker than sybase_result(). Also, note that specifying a numeric offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname argument.

Recommended high-performance alternatives:
sybase_fetch_row(),
sybase_fetch_array() and
sybase_fetch_object().

Пред. | Начало | След.
sybase_query | Уровень выше | sybase_select_db


sybase_select_db

(PHP 3, PHP 4, PHP 5)

sybase_select_db -- Selects a Sybase database

Description

bool sybase_select_db ( string database_name [, resource link_identifier] )

sybase_select_db() sets the current active database on the server that's associated with the specified link identifier. If no link identifier is specified, the last opened link is assumed. If no link is open, the function will try to establish a link as if sybase_connect() was called, and use it.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Every subsequent call to sybase_query() will be made on the active database.

See also
sybase_connect(),
sybase_pconnect() and
sybase_query()

Пред. | Начало | След.
sybase_result | Уровень выше | sybase_set_message_handler


sybase_set_message_handler

(PHP 4 >= 4.3.0, PHP 5)

sybase_set_message_handler -- Sets the handler called when a server message is raised

Description

bool sybase_set_message_handler ( callback handler [, resource connection] )

sybase_set_message_handler() sets a user function to handle messages generated by the server. You may specify the name of a global function, or use an array to specify an object reference and a method name.

Замечание: Эта функция доступна только при использовании интерфейса к Sybase библиотеки CT, но не библиотеки DB.

The handler expects five arguments in the following order: message number, severity, state, line number and description. The first four are integers. The last is a string. If the function returns FALSE, PHP generates an ordinary error message.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: The connection parameter was added in PHP 4.3.5.

Пример 1. sybase_set_message_handler() callback function

<?php
    function msg_handler($msgnumber, $severity, $state, $line, $text)
    {
        var_dump($msgnumber, $severity, $state, $line, $text);
    }

    sybase_set_message_handler('msg_handler');
?>

Пример 2. sybase_set_message_handler() callback to a class

<?php
    class Sybase {
        function handler($msgnumber, $severity, $state, $line, $text)
        {
            var_dump($msgnumber, $severity, $state, $line, $text);
        }
    }

    $sybase= new Sybase();
    sybase_set_message_handler(array($sybase, 'handler'));
?>

Пример 3. sybase_set_message_handler() unhandled messages

<?php
    // Return FALSE from this function to indicate you can't handle
    // this. The error is printed out as a warning, the way you're used
    // to it if there is no handler installed.
    function msg_handler($msgnumber, $severity, $state, $line, $text)
    {
        if (257 == $msgnumber) {
            return false;
        }
        var_dump($msgnumber, $severity, $state, $line, $text);
    }

    sybase_set_message_handler('msg_handler');
?>

Пред. | Начало | След.
sybase_select_db | Уровень выше | sybase_unbuffered_query


sybase_unbuffered_query

(PHP 4 >= 4.3.0, PHP 5)

sybase_unbuffered_query -- Send a Sybase query and do not block

Description

resource sybase_unbuffered_query ( string query, resource link_identifier [, bool store_result] )

Returns a positive Sybase result identifier on success, or FALSE on error.

Замечание: Эта функция доступна только при использовании интерфейса к Sybase библиотеки CT, но не библиотеки DB.

sybase_unbuffered_query() sends a query to the currently active database on the server that's associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed. If no link is open, the function tries to establish a link as if sybase_connect() was called, and use it.

Unlike sybase_query(), sybase_unbuffered_query() reads only the first row of the result set. sybase_fetch_array() and similar function read more rows as needed. sybase_data_seek() reads up to the target row. The behavior may produce better performance for large result sets.

sybase_num_rows() will only return the correct number of rows if all result sets have been read. To Sybase, the number of rows is not known and is therefore computed by the client implementation.

Замечание: If you don't read all of the resultsets prior to executing the next query, PHP will raise a warning and cancel all of the pending results. To get rid of this, use sybase_free_result() which will cancel pending results of an unbuffered query.

The optional store_result can be FALSE to indicate the resultsets shouldn't be fetched into memory, thus minimizing memory usage which is particularly interesting with very large resultsets.

Пример 1. sybase_unbuffered_query() example

<?php

$dbh = sybase_connect('SYBASE', '', '');
$q = sybase_unbuffered_query('select firstname, lastname from huge_table', $dbh, false);
sybase_data_seek($q, 10000);
$i = 0;

while ($row = sybase_fetch_row($q)) {
    echo $row[0], ' ', $row[1], '<br />';
    if ($i++ > 40000) {
        break;
    }
}

sybase_free_result($q);
sybase_close($dbh);

?>

See also sybase_query().

Пред. | Начало | След.
sybase_set_message_handler | Уровень выше | TCP Wrappers Functions


TCP Wrappers Functions

Руководство по PHP
Пред. След.

CXLIX. TCP Wrappers Functions

Введение

The TCP wrappers provides a classical unix mechanism which has been designed to check if the remote client is able to connect from the given IP address.

Установка

Tcpwrap is currently available through PECL http://pecl.php.net/package/tcpwrap.

If PEAR is available on your *nix-like system you can use the pear installer to install the tcpwrap extension, by the following command: pear -v install tcpwrap.

You can always download the tar.gz package and install tcpwrap by hand:

Пример 1. tcpwrap install by hand

gunzip tcpwrap-xxx.tgz
tar -xvf tcpwrap-xxx.tar
cd tcpwrap-xxx
phpize
./configure && make && make install

Содержание
tcpwrap_check -- Performs a tcpwrap check

Пред. | Начало | След.
sybase_unbuffered_query | Уровень выше | tcpwrap_check


tcpwrap_check

(PECL)

tcpwrap_check -- Performs a tcpwrap check

Описание

bool tcpwrap_check ( string daemon, string address [, string user [, bool nodns]] )

This function consults the /etc/hosts.allow and /etc/hosts.deny files to check if access to service daemon should be granted or denied for a client.

Список параметров

daemon

The service name.

address

The client remote address. Can be either an IP address or a domain name.

user

An optional user name.

nodns

If address looks like domain name then DNS is used to resolve it to IP address; set nodns to TRUE to avoid this.

Возвращаемые значения

This function returns TRUE if access should be granted, FALSE otherwise.

Примеры

Пример 1. Deny all connections from localhost

If your /etc/hosts.deny file contains:

php: 127.0.0.1

And your code looks like:

<?php
if (!tcpwrap_check('php', $_SERVER['REMOTE_ADDR'])) {
  die('You are not welcome here');
}
?>

Смотрите также

For more details please consult hosts_access(3) man page.

Пред. | Начало | След.
TCP Wrappers Functions | Уровень выше | Tidy Functions


Tidy Functions

Руководство по PHP
Пред. След.

CL. Tidy Functions

Введение

Tidy is a binding for the Tidy HTML clean and repair utility which allows you to not only clean and otherwise manipulate HTML documents, but also traverse the document tree.

Требования

To use Tidy, you will need libtidy installed, available on the tidy homepage http://tidy.sourceforge.net/.

Установка

Tidy is currently available for PHP 4.3.x and PHP 5 as a PECL extension from http://pecl.php.net/package/tidy.

Замечание: Tidy 1.0 is just for PHP 4.3.x, while Tidy 2.0 is just for PHP 5.

If PEAR is available on your *nix-like system you can use the pear installer to install the tidy extension, by the following command: pear -v install tidy.

You can always download the tar.gz package and install tidy by hand:

Пример 1. tidy install by hand in PHP 4.3.x

gunzip tidy-xxx.tgz
tar -xvf tidy-xxx.tar
cd tidy-xxx
phpize
./configure && make && make install

Windows users can download the extension dll php_tidy.dll from http://snaps.php.net/win32/PECL_STABLE/.

In PHP 5 you need only to compile using the --with-tidy option.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Tidy Configuration Options

Name | Default | Changeable | Changelog
tidy.default_config | "" | PHP_INI_SYSTEM | Available since PHP 5.0.0.
tidy.clean_output | "0" | PHP_INI_PERDIR | Available since PHP 5.0.0.
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

tidy.default_config string

Default path for tidy config file.

tidy.clean_output boolean

Turns on/off the output repairing by Tidy.

Внимание

Do not turn on tidy.clean_output if you are generating non-html content such as dynamic images.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные классы

tidyNode

Методы

  • tidyNode->hasChildren - Returns TRUE if the current node has childrens

  • tidyNode->hasSiblings - Returns TRUE if the current node has siblings

  • tidyNode->isAsp - Returns TRUE if the current node is ASP code

  • tidyNode->isComment - Returns TRUE if the current node is a comment

  • tidyNode->isHtml - Returns TRUE if the current node is HTML

  • tidyNode->isJste - Returns TRUE if the current node is JSTE

  • tidyNode->isPhp - Returns TRUE if the current node is PHP

  • tidyNode->isText - Returns TRUE if the current node is Text (no markup)

Свойства

  • value - the value of the node (e.g. the html text)

  • name - the name of the tag (e.g. html, a, etc..)

  • type - the type of the node (one of the constants above, e.g. TIDY_NODETYPE_PHP)

  • line* - the line where the node starts

  • column* - the column where the node starts

  • proprietary* - TRUE if the node refers to a proprietary tag

  • id - the ID of the tag (one of the constants above, e.g. TIDY_TAG_FRAME)

  • attribute - an array with the attributes of the current node, or NULL if there aren't any

  • child - an array with the child tidyNodes, or NULL if there aren't any

Замечание: The properties marked with * are just available since PHP 5.1.0.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

Each TIDY_TAG_XXX represents a HTML tag. For example, TIDY_TAG_A represents a <a href="XX">link</a> tag. Each TIDY_ATTR_XXX represents a HTML atribute. For example TIDY_ATTR_HREF would represent the href atribute in the previous example.

The following constants are defined:

Таблица 2. tidy tag constants

constant
TIDY_TAG_UNKNOWN
TIDY_TAG_A
TIDY_TAG_ABBR
TIDY_TAG_ACRONYM
TIDY_TAG_ALIGN
TIDY_TAG_APPLET
TIDY_TAG_AREA
TIDY_TAG_B
TIDY_TAG_BASE
TIDY_TAG_BASEFONT
TIDY_TAG_BDO
TIDY_TAG_BGSOUND
TIDY_TAG_BIG
TIDY_TAG_BLINK
TIDY_TAG_BLOCKQUOTE
TIDY_TAG_BODY
TIDY_TAG_BR
TIDY_TAG_BUTTON
TIDY_TAG_CAPTION
TIDY_TAG_CENTER
TIDY_TAG_CITE
TIDY_TAG_CODE
TIDY_TAG_COL
TIDY_TAG_COLGROUP
TIDY_TAG_COMMENT
TIDY_TAG_DD
TIDY_TAG_DEL
TIDY_TAG_DFN
TIDY_TAG_DIR
TIDY_TAG_DIV
TIDY_TAG_DL
TIDY_TAG_DT
TIDY_TAG_EM
TIDY_TAG_EMBED
TIDY_TAG_FIELDSET
TIDY_TAG_FONT
TIDY_TAG_FORM
TIDY_TAG_FRAME
TIDY_TAG_FRAMESET
TIDY_TAG_H1
TIDY_TAG_H2
TIDY_TAG_H3
TIDY_TAG_H4
TIDY_TAG_H5
TIDY_TAG_H6
TIDY_TAG_HEAD
TIDY_TAG_HR
TIDY_TAG_HTML
TIDY_TAG_I
TIDY_TAG_IFRAME
TIDY_TAG_ILAYER
TIDY_TAG_IMG
TIDY_TAG_INPUT
TIDY_TAG_INS
TIDY_TAG_ISINDEX
TIDY_TAG_KBD
TIDY_TAG_KEYGEN
TIDY_TAG_LABEL
TIDY_TAG_LAYER
TIDY_TAG_LEGEND
TIDY_TAG_LI
TIDY_TAG_LINK
TIDY_TAG_LISTING
TIDY_TAG_MAP
TIDY_TAG_MARQUEE
TIDY_TAG_MENU
TIDY_TAG_META
TIDY_TAG_MULTICOL
TIDY_TAG_NOBR
TIDY_TAG_NOEMBED
TIDY_TAG_NOFRAMES
TIDY_TAG_NOLAYER
TIDY_TAG_NOSAFE
TIDY_TAG_NOSCRIPT
TIDY_TAG_OBJECT
TIDY_TAG_OL
TIDY_TAG_OPTGROUP
TIDY_TAG_OPTION
TIDY_TAG_P
TIDY_TAG_PARAM
TIDY_TAG_PLAINTEXT
TIDY_TAG_PRE
TIDY_TAG_Q
TIDY_TAG_RP
TIDY_TAG_RT
TIDY_TAG_RTC
TIDY_TAG_RUBY
TIDY_TAG_S
TIDY_TAG_SAMP
TIDY_TAG_SCRIPT
TIDY_TAG_SELECT
TIDY_TAG_SERVER
TIDY_TAG_SERVLET
TIDY_TAG_SMALL
TIDY_TAG_SPACER
TIDY_TAG_SPAN
TIDY_TAG_STRIKE
TIDY_TAG_STRONG
TIDY_TAG_STYLE
TIDY_TAG_SUB
TIDY_TAG_TABLE
TIDY_TAG_TBODY
TIDY_TAG_TD
TIDY_TAG_TEXTAREA
TIDY_TAG_TFOOT
TIDY_TAG_TH
TIDY_TAG_THEAD
TIDY_TAG_TITLE
TIDY_TAG_TR
TIDY_TAG_TR
TIDY_TAG_TT
TIDY_TAG_U
TIDY_TAG_UL
TIDY_TAG_VAR
TIDY_TAG_WBR
TIDY_TAG_XMP

Таблица 3. tidy attribute constants

constant
TIDY_ATTR_UNKNOWN
TIDY_ATTR_ABBR
TIDY_ATTR_ACCEPT
TIDY_ATTR_ACCEPT_CHARSET
TIDY_ATTR_ACCESSKEY
TIDY_ATTR_ACTION
TIDY_ATTR_ADD_DATE
TIDY_ATTR_ALIGN
TIDY_ATTR_ALINK
TIDY_ATTR_ALT
TIDY_ATTR_ARCHIVE
TIDY_ATTR_AXIS
TIDY_ATTR_BACKGROUND
TIDY_ATTR_BGCOLOR
TIDY_ATTR_BGPROPERTIES
TIDY_ATTR_BORDER
TIDY_ATTR_BORDERCOLOR
TIDY_ATTR_BOTTOMMARGIN
TIDY_ATTR_CELLPADDING
TIDY_ATTR_CELLSPACING
TIDY_ATTR_CHAR
TIDY_ATTR_CHAROFF
TIDY_ATTR_CHARSET
TIDY_ATTR_CHECKED
TIDY_ATTR_CITE
TIDY_ATTR_CLASS
TIDY_ATTR_CLASSID
TIDY_ATTR_CLEAR
TIDY_ATTR_CODE
TIDY_ATTR_CODEBASE
TIDY_ATTR_CODETYPE
TIDY_ATTR_COLOR
TIDY_ATTR_COLS
TIDY_ATTR_COLSPAN
TIDY_ATTR_COMPACT
TIDY_ATTR_CONTENT
TIDY_ATTR_COORDS
TIDY_ATTR_DATA
TIDY_ATTR_DATAFLD
TIDY_ATTR_DATAPAGESIZE
TIDY_ATTR_DATASRC
TIDY_ATTR_DATETIME
TIDY_ATTR_DECLARE
TIDY_ATTR_DEFER
TIDY_ATTR_DIR
TIDY_ATTR_DISABLED
TIDY_ATTR_ENCODING
TIDY_ATTR_ENCTYPE
TIDY_ATTR_FACE
TIDY_ATTR_FOR
TIDY_ATTR_FRAME
TIDY_ATTR_FRAMEBORDER
TIDY_ATTR_FRAMESPACING
TIDY_ATTR_GRIDX
TIDY_ATTR_GRIDY
TIDY_ATTR_HEADERS
TIDY_ATTR_HEIGHT
TIDY_ATTR_HREF
TIDY_ATTR_HREFLANG
TIDY_ATTR_HSPACE
TIDY_ATTR_HTTP_EQUIV
TIDY_ATTR_ID
TIDY_ATTR_ISMAP
TIDY_ATTR_LABEL
TIDY_ATTR_LANG
TIDY_ATTR_LANGUAGE
TIDY_ATTR_LAST_MODIFIED
TIDY_ATTR_LAST_VISIT
TIDY_ATTR_LEFTMARGIN
TIDY_ATTR_LINK
TIDY_ATTR_LONGDESC
TIDY_ATTR_LOWSRC
TIDY_ATTR_MARGINHEIGHT
TIDY_ATTR_MARGINWIDTH
TIDY_ATTR_MAXLENGTH
TIDY_ATTR_MEDIA
TIDY_ATTR_METHOD
TIDY_ATTR_MULTIPLE
TIDY_ATTR_NAME
TIDY_ATTR_NOHREF
TIDY_ATTR_NORESIZE
TIDY_ATTR_NOSHADE
TIDY_ATTR_NOWRAP
TIDY_ATTR_OBJECT
TIDY_ATTR_OnAFTERUPDATE
TIDY_ATTR_OnBEFOREUNLOAD
TIDY_ATTR_OnBEFOREUPDATE
TIDY_ATTR_OnBLUR
TIDY_ATTR_OnCHANGE
TIDY_ATTR_OnCLICK
TIDY_ATTR_OnDATAAVAILABLE
TIDY_ATTR_OnDATASETCHANGED
TIDY_ATTR_OnDATASETCOMPLETE
TIDY_ATTR_OnDBLCLICK
TIDY_ATTR_OnERRORUPDATE
TIDY_ATTR_OnFOCUS
TIDY_ATTR_OnKEYDOWN
TIDY_ATTR_OnKEYPRESS
TIDY_ATTR_OnKEYUP
TIDY_ATTR_OnLOAD
TIDY_ATTR_OnMOUSEDOWN
TIDY_ATTR_OnMOUSEMOVE
TIDY_ATTR_OnMOUSEOUT
TIDY_ATTR_OnMOUSEOVER
TIDY_ATTR_OnMOUSEUP
TIDY_ATTR_OnRESET
TIDY_ATTR_OnROWENTER
TIDY_ATTR_OnROWEXIT
TIDY_ATTR_OnSELECT
TIDY_ATTR_OnSUBMIT
TIDY_ATTR_OnUNLOAD
TIDY_ATTR_PROFILE
TIDY_ATTR_PROMPT
TIDY_ATTR_RBSPAN
TIDY_ATTR_READONLY
TIDY_ATTR_REL
TIDY_ATTR_REV
TIDY_ATTR_RIGHTMARGIN
TIDY_ATTR_ROWS
TIDY_ATTR_ROWSPAN
TIDY_ATTR_RULES
TIDY_ATTR_SCHEME
TIDY_ATTR_SCOPE
TIDY_ATTR_SCROLLING
TIDY_ATTR_SELECTED
TIDY_ATTR_SHAPE
TIDY_ATTR_SHOWGRID
TIDY_ATTR_SHOWGRIDX
TIDY_ATTR_SHOWGRIDY
TIDY_ATTR_SIZE
TIDY_ATTR_SPAN
TIDY_ATTR_SRC
TIDY_ATTR_STANDBY
TIDY_ATTR_START
TIDY_ATTR_STYLE
TIDY_ATTR_SUMMARY
TIDY_ATTR_TABINDEX
TIDY_ATTR_TARGET
TIDY_ATTR_TEXT
TIDY_ATTR_TITLE
TIDY_ATTR_TOPMARGIN
TIDY_ATTR_TYPE
TIDY_ATTR_USEMAP
TIDY_ATTR_VALIGN
TIDY_ATTR_VALUE
TIDY_ATTR_VALUETYPE
TIDY_ATTR_VERSION
TIDY_ATTR_VLINK
TIDY_ATTR_VSPACE
TIDY_ATTR_WIDTH
TIDY_ATTR_WRAP
TIDY_ATTR_XML_LANG
TIDY_ATTR_XML_SPACE
TIDY_ATTR_XMLNS

Таблица 4. tidy nodetype constants

constant | description
TIDY_NODETYPE_ROOT | root node
TIDY_NODETYPE_DOCTYPE | doctype
TIDY_NODETYPE_COMMENT | HTML comment
TIDY_NODETYPE_PROCINS | Processing Instruction
TIDY_NODETYPE_TEXT | Text
TIDY_NODETYPE_START | start tag
TIDY_NODETYPE_END | end tag
TIDY_NODETYPE_STARTEND | empty tag
TIDY_NODETYPE_CDATA | CDATA
TIDY_NODETYPE_SECTION | XML section
TIDY_NODETYPE_ASP | ASP code
TIDY_NODETYPE_JSTE | JSTE code
TIDY_NODETYPE_PHP | PHP code
TIDY_NODETYPE_XMLDECL | XML declaration

Примеры

This simple example shows basic Tidy usage.

Пример 2. Basic Tidy usage

<?php
ob_start();
?>
<html>a html document</html>
<?
$html = ob_get_clean();

// Specify configuration
$config = array(
           'indent'         => true,
           'output-xhtml'   => true,
           'wrap'           => 200);

// Tidy
$tidy = new tidy;
$tidy->parseString($html, $config, 'utf8');
$tidy->cleanRepair();

// Output
echo $tidy;
?>

Содержание
ob_tidyhandler -- ob_start callback function to repair the buffer
tidy_access_count -- Returns the Number of Tidy accessibility warnings encountered for specified document
tidy_clean_repair -- Execute configured cleanup and repair operations on parsed markup
tidy_config_count -- Returns the Number of Tidy configuration errors encountered for specified document
tidy::__construct -- Constructs a new tidy object
tidy_diagnose -- Run configured diagnostics on parsed and repaired markup
tidy_error_count -- Returns the Number of Tidy errors encountered for specified document
tidy_get_body -- Returns a tidyNode Object starting from the <body> tag of the tidy parse tree
tidy_get_config -- Get current Tidy configuration
tidy_get_error_buffer -- Return warnings and errors which occurred parsing the specified document
tidy_get_head -- Returns a tidyNode Object starting from the <head> tag of the tidy parse tree
tidy_get_html_ver -- Get the Detected HTML version for the specified document
tidy_get_html -- Returns a tidyNode Object starting from the <html> tag of the tidy parse tree
tidy_get_opt_doc -- Returns the documentation for the given option name
tidy_get_output -- Return a string representing the parsed tidy markup
tidy_get_release -- Get release date (version) for Tidy library
tidy_get_root -- Returns a tidyNode object representing the root of the tidy parse tree
tidy_get_status -- Get status of specified document
tidy_getopt -- Returns the value of the specified configuration option for the tidy document
tidy_is_xhtml -- Indicates if the document is a XHTML document
tidy_is_xml -- Indicates if the document is a generic (non HTML/XHTML) XML document
tidy_load_config -- Load an ASCII Tidy configuration file with the specified encoding
tidy_node->get_attr -- Return the attribute with the provided attribute id
tidy_node->get_nodes -- Return an array of nodes under this node with the specified id
tidy_node->next -- Returns the next sibling to this node
tidy_node->prev -- Returns the previous sibling to this node
tidy_parse_file -- Parse markup in file or URI
tidy_parse_string -- Parse a document stored in a string
tidy_repair_file -- Repair a file and return it as a string
tidy_repair_string -- Repair a string using an optionally provided configuration file
tidy_reset_config -- Restore Tidy configuration to default values
tidy_save_config -- Save current settings to named file
tidy_set_encoding -- Set the input/output character encoding for parsing markup
tidy_setopt -- Updates the configuration settings for the specified tidy document
tidy_warning_count -- Returns the Number of Tidy warnings encountered for specified document
tidyNode->hasChildren -- Returns true if this node has children
tidyNode->hasSiblings -- Returns true if this node has siblings
tidyNode->isAsp -- Returns true if this node is ASP
tidyNode->isComment -- Returns true if this node represents a comment
tidyNode->isHtml -- Returns true if this node is part of a HTML document
tidyNode->isJste -- Returns true if this node is JSTE
tidyNode->isPhp -- Returns true if this node is PHP
tidyNode->isText -- Returns true if this node represents text (no markup)

Пред. | Начало | След.
tcpwrap_check | Уровень выше | ob_tidyhandler


ob_tidyhandler

(PHP 5)

ob_tidyhandler -- ob_start callback function to repair the buffer

Description

string ob_tidyhandler ( string input [, int mode] )

ob_tidyhandler() is intended to be used as a callback function for ob_start() to repair the buffer.

Пример 1. ob_tidyhandler() example

<?php
ob_start('ob_tidyhandler');

echo '<p>test</i>';
?>

Результат выполнения данного примера:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>test</p>
</body>
</html>

See also ob_start().

Пред. | Начало | След.
Tidy Functions | Уровень выше | tidy_access_count


tidy_access_count

(PHP 5)

tidy_access_count -- Returns the Number of Tidy accessibility warnings encountered for specified document

Description

int tidy_access_count ( tidy object )

tidy_access_count() returns the number of accessibility warnings found for the specified document.

Замечание: Due to the design of the TidyLib, you must call tidy_diagnose() before tidy_access_count() or it will return always 0. You must also need to enable the accessibility-check option.

Пример 1. tidy_access_count() example

<?php

$html ='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html><head><title>Title</title></head>
<body>

<p><img src="img.png"></p>

</body></html>';

// select the accessibility check level: 1, 2 or 3
$config = array('accessibility-check' => 3);

$tidy = new tidy();
$tidy->parseString($html, $config);
$tidy->CleanRepair();

/* Never forget to call this! */
$tidy->diagnose();

echo tidy_access_count($tidy); //5

?>

See also tidy_error_count() and tidy_warning_count().

Пред. | Начало | След.
ob_tidyhandler | Уровень выше | tidy_clean_repair


tidy_clean_repair

(PHP 5)

tidy_clean_repair -- Execute configured cleanup and repair operations on parsed markup

Description

Procedural style:

bool tidy_clean_repair ( tidy object )

Object oriented style:

bool tidy->cleanRepair ( void )

This function cleans and repairs the given tidy object.

Пример 1. tidy_clean_repair() example

<?php
$html = '<p>test</I>';

$tidy = tidy_parse_string($html);
tidy_clean_repair($tidy);

echo $tidy;
?>

Результат выполнения данного примера:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>test</p>
</body>
</html>

See also tidy_repair_file() and tidy_repair_string().

Пред. | Начало | След.
tidy_access_count | Уровень выше | tidy_config_count


tidy_config_count

(PHP 5)

tidy_config_count -- Returns the Number of Tidy configuration errors encountered for specified document

Description

int tidy_config_count ( tidy object )

tidy_config_count() returns the number of errors encountered in the configuration of the specified tidy object.

Пример 1. tidy_config_count() example

<?php
$html = '<p>test</I>';

$config = array('doctype' => 'bogus');

$tidy = tidy_parse_string($html, $config);

/* This outputs 1, because 'bogus' isn't a valid doctype */
echo tidy_config_count($tidy);
?>

Пред. | Начало | След.
tidy_clean_repair | Уровень выше | tidy::__construct


tidy::__construct

(no version information, might be only in CVS)

tidy::__construct -- Constructs a new tidy object

Description

tidy tidy::__construct ( [string filename [, mixed config [, string encoding [, bool use_include_path]]]] )

tidy::__construct() constructs a new tidy object.

If the filename parameter is given, this function will also read that file and initialize the object with the file, acting like tidy_parse_file().

Параметр config может быть передан как в виде строки, так и в виде массива. В случае передачи строки, параметр рассматривается как путь к конфигурационному файлу, в противном случае содержание массива рассматривается как собственно конфигурация. За подробной информацией о опциях обращайтесь к http://tidy.sourceforge.net/docs/quickref.html.

Возможные значения параметра encoding: ascii, latin1, raw, utf8, iso2022, mac, win1252, utf16le, utf16be, utf16, big5 и shiftjis.

Пример 1. tidy::__construct() example

<?php

$html = <<< HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><title>title</title></head>
<body>
<p>paragraph <bt />
text</p>
</body></html>

HTML;

$tidy = new tidy;
$tidy->parseString($html);

$tidy->CleanRepair();

if ($tidy->errorBuffer) {
    echo "The following errors were detected:\n";
    echo $tidy->errorBuffer;
}

?>

Результат выполнения данного примера:

The following errors were detected:
line 8 column 14 - Error: <bt> is not recognized!
line 8 column 14 - Warning: discarding unexpected <bt>

See also tidy_parse_file() and tidy_parse_string().

Пред. | Начало | След.
tidy_config_count | Уровень выше | tidy_diagnose


tidy_diagnose

(PHP 5)

tidy_diagnose -- Run configured diagnostics on parsed and repaired markup

Description

Procedural style:

bool tidy_diagnose ( tidy object )

Object oriented style:

bool tidy->diagnose ( void )

tidy_diagnose() runs diagnostic tests on the given tidy object, adding some more information about the document in the error buffer.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. tidy_diagnose() example

<?php

$html = <<< HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<p>paragraph</p>
HTML;

$tidy = tidy_parse_string($html);
$tidy->CleanRepair();

// note the difference between the two outputs
echo tidy_get_error_buffer($tidy) . "\n";

$tidy->diagnose();
echo tidy_get_error_buffer($tidy);

?>

Результат выполнения данного примера:

line 5 column 1 - Warning: <p> isn't allowed in <head> elements
line 5 column 1 - Warning: inserting missing 'title' element

line 5 column 1 - Warning: <p> isn't allowed in <head> elements
line 5 column 1 - Warning: inserting missing 'title' element
Info: Doctype given is "-//W3C//DTD XHTML 1.0 Strict//EN"
Info: Document content looks like XHTML 1.0 Strict
2 warnings, 0 errors were found!

See also tidy_get_error_buffer().

Пред. | Начало | След.
tidy::__construct | Уровень выше | tidy_error_count


tidy_error_count

(PHP 5)

tidy_error_count -- Returns the Number of Tidy errors encountered for specified document

Description

int tidy_error_count ( tidy object )

tidy_error_count() returns the number of Tidy errors encountered for the specified document.

Пример 1. tidy_error_count() example

<?php
$html = '<p>test</i>
<bogustag>bogus</bogustag>';

$tidy = tidy_parse_string($html);

echo tidy_error_count($tidy) . "\n"; //1

echo $tidy->ErrorBuffer;
?>

Результат выполнения данного примера:

1
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 1 column 8 - Warning: discarding unexpected </i>
line 2 column 1 - Error: <bogustag> is not recognized!
line 2 column 1 - Warning: discarding unexpected <bogustag>
line 2 column 16 - Warning: discarding unexpected </bogustag>
line 1 column 1 - Warning: inserting missing 'title' element

See also tidy_access_count() and tidy_warning_count().

Пред. | Начало | След.
tidy_diagnose | Уровень выше | tidy_get_body


tidy_get_body

(PHP 5)

tidy_get_body -- Returns a tidyNode Object starting from the <body> tag of the tidy parse tree

Description

Procedural style:

tidyNode tidy_get_body ( tidy object )

Object oriented style:

tidyNode tidy->body ( void )

This function returns a tidyNode object starting from the <body> tag of the tidy parse tree.

Пример 1. tidy_get_body() example

<?php
$html = '
<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>paragraph</p>
  </body>
</html>';

$tidy = tidy_parse_string($html);

$body = tidy_get_body($tidy);
echo $body->value;
?>

Результат выполнения данного примера:

<body>
<p>paragraph</p>
</body>

Замечание: Эта функция доступна только в Движке Zend 2, что означает PHP >= 5.0.0.

See also tidy_get_head() and tidy_get_html().

Пред. | Начало | След.
tidy_error_count | Уровень выше | tidy_get_config


tidy_get_config

(PHP 5)

tidy_get_config -- Get current Tidy configuration

Description

Procedural style:

array tidy_get_config ( tidy object )

Object oriented style:

array tidy->getConfig ( void )

tidy_get_config() returns an array with the configuration options in use by the given tidy object.

For an explanation about each option, visit http://tidy.sourceforge.net/docs/quickref.html.

Пример 1. tidy_get_config() example

<?php
$html = '<p>test</p>';
$config = array('indent' => TRUE,
                'output-xhtml' => TRUE,
                'wrap' => 200);

$tidy = tidy_parse_string($html, $config);

print_r(tidy_get_config($tidy));
?>

Результат выполнения данного примера:

Array
(
    [indent-spaces] => 2
    [wrap] => 200
    [tab-size] => 8
    [char-encoding] => 1
    [input-encoding] => 3
    [output-encoding] => 1
    [newline] => 1
    [doctype-mode] => 1
    [doctype] =>
    [repeated-attributes] => 1
    [alt-text] =>
    [slide-style] =>
    [error-file] =>
    [output-file] =>
    [write-back] =>
    [markup] => 1
    [show-warnings] => 1
    [quiet] =>
    [indent] => 1
    [hide-endtags] =>
    [input-xml] =>
    [output-xml] => 1
    [output-xhtml] => 1
    [output-html] =>
    [add-xml-decl] =>
    [uppercase-tags] =>
    [uppercase-attributes] =>
    [bare] =>
    [clean] =>
    [logical-emphasis] =>
    [drop-proprietary-attributes] =>
    [drop-font-tags] =>
    [drop-empty-paras] => 1
    [fix-bad-comments] => 1
    [break-before-br] =>
    [split] =>
    [numeric-entities] =>
    [quote-marks] =>
    [quote-nbsp] => 1
    [quote-ampersand] => 1
    [wrap-attributes] =>
    [wrap-script-literals] =>
    [wrap-sections] => 1
    [wrap-asp] => 1
    [wrap-jste] => 1
    [wrap-php] => 1
    [fix-backslash] => 1
    [indent-attributes] =>
    [assume-xml-procins] =>
    [add-xml-space] =>
    [enclose-text] =>
    [enclose-block-text] =>
    [keep-time] =>
    [word-2000] =>
    [tidy-mark] =>
    [gnu-emacs] =>
    [gnu-emacs-file] =>
    [literal-attributes] =>
    [show-body-only] =>
    [fix-uri] => 1
    [lower-literals] => 1
    [hide-comments] =>
    [indent-cdata] =>
    [force-output] => 1
    [show-errors] => 6
    [ascii-chars] => 1
    [join-classes] =>
    [join-styles] => 1
    [escape-cdata] =>
    [language] =>
    [ncr] => 1
    [output-bom] => 2
    [replace-color] =>
    [css-prefix] =>
    [new-inline-tags] =>
    [new-blocklevel-tags] =>
    [new-empty-tags] =>
    [new-pre-tags] =>
    [accessibility-check] => 0
    [vertical-space] =>
    [punctuation-wrap] =>
    [merge-divs] => 1
)

See also tidy_reset_config() and tidy_save_config().

Пред. | Начало | След.
tidy_get_body | Уровень выше | tidy_get_error_buffer


tidy_get_error_buffer

(PHP 5)

tidy_get_error_buffer -- Return warnings and errors which occurred parsing the specified document

Description

Procedural style:

string tidy_get_error_buffer ( tidy object )

Object oriented style (property):

class tidy {

string errorBuffer

}

tidy_get_error_buffer() returns warnings and errors which occurred parsing the specified document.

Пример 1. tidy_get_error_buffer() example

<?php
$html = '<p>paragraph</p>';

$tidy = tidy_parse_string($html);

echo tidy_get_error_buffer($tidy);
/* or in OO: */
echo $tidy->errorBuffer;
?>

Результат выполнения данного примера:

line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 1 column 1 - Warning: inserting missing 'title' element

See also tidy_access_count(),
tidy_error_count() and
tidy_warning_count().

Пред. | Начало | След.
tidy_get_config | Уровень выше | tidy_get_head


tidy_get_head

(PHP 5)

tidy_get_head -- Returns a tidyNode Object starting from the <head> tag of the tidy parse tree

Description

Procedural style:

tidyNode tidy_get_head ( tidy object )

Object oriented style:

tidyNode tidy->head ( void )

This function returns a tidyNode object starting from the <head> tag of the tidy parse tree.

Пример 1. tidy_get_head() example

<?php
$html = '
<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>paragraph</p>
  </body>
</html>';

$tidy = tidy_parse_string($html);

$head = tidy_get_head($tidy);
echo $head->value;
?>

Результат выполнения данного примера:

<head>
<title>test</title>
</head>

Замечание: Эта функция доступна только в Движке Zend 2, что означает PHP >= 5.0.0.

See also tidy_get_body() and tidy_get_html().

Пред. | Начало | След.
tidy_get_error_buffer | Уровень выше | tidy_get_html_ver


tidy_get_html_ver

(PHP 5)

tidy_get_html_ver -- Get the Detected HTML version for the specified document

Description

Procedural style:

int tidy_get_html_ver ( tidy object )

Object oriented style:

int tidy->getHtmlVer ( void )

tidy_get_html_ver() returns the detected HTML version for the specified tidy object.

Внимание

This function is not yet implemented in the Tidylib itself, so it always return 0.

Пред. | Начало | След.
tidy_get_head | Уровень выше | tidy_get_html


tidy_get_html

(PHP 5)

tidy_get_html -- Returns a tidyNode Object starting from the <html> tag of the tidy parse tree

Description

Procedural style:

tidyNode tidy_get_html ( tidy object )

Object oriented style:

tidyNode tidy->html ( void )

This function returns a tidyNode object starting from the <html> tag of the tidy parse tree.

Пример 1. tidy_get_html() example

<?php
$html = '
<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>paragraph</p>
  </body>
</html>';

$tidy = tidy_parse_string($html);

$html = tidy_get_html($tidy);
echo $html->value;
?>

Результат выполнения данного примера:

<html>
<head>
<title>test</title>
</head>
<body>
<p>paragraph</p>
</body>
</html>

Замечание: Эта функция доступна только в Движке Zend 2, что означает PHP >= 5.0.0.

See also tidy_get_body() and tidy_get_head().

Пред. | Начало | След.
tidy_get_html_ver | Уровень выше | tidy_get_opt_doc


tidy_get_output

(PHP 5)

tidy_get_output -- Return a string representing the parsed tidy markup

Description

string tidy_get_output ( tidy object )

tidy_get_output() returns a string with the repaired html.

Пример 1. tidy_get_output() example

<?php

$html = '<p>paragraph</i>';
$tidy = tidy_parse_string($html);

$tidy->CleanRepair();

echo tidy_get_output($tidy);
?>

Результат выполнения данного примера:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>paragraph</p>
</body>
</html>

Пред. | Начало | След.
tidy_get_opt_doc | Уровень выше | tidy_get_release


tidy_get_release

(PHP 5)

tidy_get_release -- Get release date (version) for Tidy library

Description

Procedural style:

string tidy_get_release ( void )

Object oriented style:

string tidy->getRelease ( void )

This function returns a string with the release date of the Tidy library.

Пред. | Начало | След.
tidy_get_output | Уровень выше | tidy_get_root


tidy_get_root

(PHP 5)

tidy_get_root -- Returns a tidyNode object representing the root of the tidy parse tree

Description

Procedural style:

tidyNode tidy_get_root ( tidy object )

Object oriented style:

tidyNode tidy->root ( void )

Returns a tidyNode object representing the root of the tidy parse tree.

Пример 1. dump nodes

<?php

$html = <<< HTML
<html><body>

<p>paragraph</p>
<br/>

</body></html>
HTML;

$tidy = tidy_parse_string($html);
dump_nodes($tidy->root(), 1);

function dump_nodes($node, $indent) {

    if($node->hasChildren()) {
        foreach($node->child as $child) {
            echo str_repeat('.', $indent*2) . ($child->name ? $child->name : '"'.$child->value.'"'). "\n";

            dump_nodes($child, $indent+1);
        }
    }
}
?>

Результат выполнения данного примера:

..html
....head
......title
....body
......p
........"paragraph"
......br

Замечание: Эта функция доступна только в Движке Zend 2, что означает PHP >= 5.0.0.

Пред. | Начало | След.
tidy_get_release | Уровень выше | tidy_get_status


tidy_get_status

(PHP 5)

tidy_get_status -- Get status of specified document

Description

Procedural style:

int tidy_get_status ( tidy object )

Object oriented style:

int tidy->getStatus ( void )

tidy_get_status() returns the status for the specified tidy object. It returns 0 if no error/warning was raised, 1 for warnings or accessibility errors, or 2 for errors.

Пример 1. tidy_get_status() example

<?php
$html = '<p>paragraph</i>';
$tidy = tidy_parse_string($html);

$html2 = '<bogus>test</bogus>';
$tidy2 = tidy_parse_string($html2);

echo tidy_get_status($tidy); //1

echo tidy_get_status($tidy2); //2
?>

Пред. | Начало | След.
tidy_get_root | Уровень выше | tidy_getopt


tidy_getopt

(PHP 5)

tidy_getopt -- Returns the value of the specified configuration option for the tidy document

Description

Procedural style:

mixed tidy_getopt ( tidy object, string option )

Object oriented style:

mixed tidy->getOpt ( string option )

tidy_getopt() returns the value of the specified option for the specified tidy object. The return type depends on the type of the specified option. You will find a list with each configuration option and their types at: http://tidy.sourceforge.net/docs/quickref.html.

Пример 1. tidy_getopt() example

<?php

$html ='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html><head><title>Title</title></head>
<body>

<p><img src="img.png"></p>

</body></html>';

$config = array('accessibility-check' => 3,
                'alt-text' => 'some text');

$tidy = new tidy();
$tidy->parseString($html, $config);

var_dump($tidy->getOpt('accessibility-check')); //integer
var_dump($tidy->getOpt('lower-literals')); //boolean
var_dump($tidy->getOpt('alt-text')); //string

?>

Результат выполнения данного примера:

int(3)
bool(true)
string(9) "some text"

Пред. | Начало | След.
tidy_get_status | Уровень выше | tidy_is_xhtml


tidy_is_xhtml

(PHP 5)

tidy_is_xhtml -- Indicates if the document is a XHTML document

Description

Procedural style:

bool tidy_is_xhtml ( tidy object )

Object oriented style:

bool tidy->isXhtml ( void )

This function returns TRUE if the specified tidy object is a XHTML document, or FALSE otherwise.

Внимание

This function is not yet implemented in the Tidylib itself, so it always return FALSE.

Пред. | Начало | След.
tidy_getopt | Уровень выше | tidy_is_xml


tidy_is_xml

(PHP 5)

tidy_is_xml -- Indicates if the document is a generic (non HTML/XHTML) XML document

Description

Procedural style:

bool tidy_is_xml ( tidy object )

Object oriented style:

bool tidy->isXml ( void )

This function returns TRUE if the specified tidy object is a generic XML document (non HTML/XHTML), or FALSE otherwise.

Внимание

This function is not yet implemented in the Tidylib itself, so it always return FALSE.

Пред. | Начало | След.
tidy_is_xhtml | Уровень выше | tidy_load_config


tidy_load_config

(no version information, might be only in CVS)

tidy_load_config -- Load an ASCII Tidy configuration file with the specified encoding

Description

void tidy_load_config ( string filename, string encoding )

This function loads a Tidy configuration file, with the specified encoding.

Замечание: Эта функция доступна только в Tidy 1.0. С приходом Tidy 2.0 она стала ненужной и была удалена.

Пред. | Начало | След.
tidy_is_xml | Уровень выше | tidy_node->get_attr


tidy_node->get_attr

(no version information, might be only in CVS)

tidy_node->get_attr -- Return the attribute with the provided attribute id

Description

tidy_attr tidy_node->get_attr ( int attrib_id )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
tidy_load_config | Уровень выше | tidy_node->get_nodes


tidy_node->get_nodes

(no version information, might be only in CVS)

tidy_node->get_nodes -- Return an array of nodes under this node with the specified id

Description

array tidy_node->get_nodes ( int node_id )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
tidy_node->get_attr | Уровень выше | tidy_node->next


tidy_node->next

(no version information, might be only in CVS)

tidy_node->next -- Returns the next sibling to this node

Description

tidy_node tidy_node->next ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
tidy_node->get_nodes | Уровень выше | tidy_node->prev


tidy_node->prev

(no version information, might be only in CVS)

tidy_node->prev -- Returns the previous sibling to this node

Description

tidy_node tidy_node->prev ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
tidy_node->next | Уровень выше | tidy_parse_file


tidy_parse_file

(PHP 5)

tidy_parse_file -- Parse markup in file or URI

Description

Procedural style:

tidy tidy_parse_file ( string filename [, mixed config [, string encoding [, bool use_include_path]]] )

Object oriented style:

bool tidy->parseFile ( string filename [, mixed config [, string encoding [, bool use_include_path]]] )

This function parses the given file.

Параметр config может быть передан как в виде строки, так и в виде массива. В случае передачи строки, параметр рассматривается как путь к конфигурационному файлу, в противном случае содержание массива рассматривается как собственно конфигурация. За подробной информацией о опциях обращайтесь к http://tidy.sourceforge.net/docs/quickref.html.

Возможные значения параметра encoding: ascii, latin1, raw, utf8, iso2022, mac, win1252, utf16le, utf16be, utf16, big5 и shiftjis.

Пример 1. tidy_parse_file() example

<?php
$tidy = tidy_parse_file('file.html');

$tidy->cleanRepair();

if(!empty($tidy->errorBuffer)) {
    echo "The following errors or warnings occured:\n";
    echo $tidy->errorBuffer;
}
?>

Замечание: Опциональные параметры config_options и enconding были добавлены в Tidy 2.0.

See also tidy_parse_string(),
tidy_repair_file() and
tidy_repair_string().

Пред. | Начало | След.
tidy_node->prev | Уровень выше | tidy_parse_string


tidy_parse_string

(PHP 5)

tidy_parse_string -- Parse a document stored in a string

Description

Procedural style:

tidy tidy_parse_string ( string input [, mixed config [, string encoding]] )

Object oriented style:

bool tidy->parseString ( string input [, mixed config [, string encoding]] )

tidy_parse_string() parses a document stored in a string.

Параметр config может быть передан как в виде строки, так и в виде массива. В случае передачи строки, параметр рассматривается как путь к конфигурационному файлу, в противном случае содержание массива рассматривается как собственно конфигурация. За подробной информацией о опциях обращайтесь к http://tidy.sourceforge.net/docs/quickref.html.

Возможные значения параметра encoding: ascii, latin1, raw, utf8, iso2022, mac, win1252, utf16le, utf16be, utf16, big5 и shiftjis.

Пример 1. tidy_parse_string() example

<?php
ob_start();
?>

<html>
  <head>
   <title>test</title>
  </head>
  <body>
   <p>error<br>another line</i>
  </body>
</html>

<?php

$buffer = ob_get_clean();
$config = array('indent' => TRUE,
                'output-xhtml' => TRUE,
                'wrap' => 200);

$tidy = tidy_parse_string($buffer, $config, 'UTF8');

$tidy->cleanRepair();
echo $tidy;
?>

Результат выполнения данного примера:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>
      test
    </title>
  </head>
  <body>
    <p>
      error<br />
      another line
    </p>
  </body>
</html>

Замечание: Опциональные параметры config_options и enconding были добавлены в Tidy 2.0.

See also tidy_parse_file(),
tidy_repair_file() and
tidy_repair_string().

Пред. | Начало | След.
tidy_parse_file | Уровень выше | tidy_repair_file


tidy_repair_file

(PHP 5)

tidy_repair_file -- Repair a file and return it as a string

Description

string tidy_repair_file ( string filename [, mixed config [, string encoding [, bool use_include_path]]] )

This function repairs the given file and returns it as a string.

Параметр config может быть передан как в виде строки, так и в виде массива. В случае передачи строки, параметр рассматривается как путь к конфигурационному файлу, в противном случае содержание массива рассматривается как собственно конфигурация. За подробной информацией о опциях обращайтесь к http://tidy.sourceforge.net/docs/quickref.html.

Возможные значения параметра encoding: ascii, latin1, raw, utf8, iso2022, mac, win1252, utf16le, utf16be, utf16, big5 и shiftjis.

Пример 1. tidy_repair_file() example

<?php
$file = 'file.html';

$repaired = tidy_repair_file($file);
rename($file, $file . '.bak');

file_put_contents($file, $repaired);
?>

Замечание: Опциональные параметры config_options и enconding были добавлены в Tidy 2.0.

See also tidy_parse_file(),
tidy_parse_string() and
tidy_repair_string().

Пред. | Начало | След.
tidy_parse_string | Уровень выше | tidy_repair_string


tidy_repair_string

(PHP 5)

tidy_repair_string -- Repair a string using an optionally provided configuration file

Description

string tidy_repair_string ( string data [, mixed config [, string encoding]] )

This function repairs the given string.

Параметр config может быть передан как в виде строки, так и в виде массива. В случае передачи строки, параметр рассматривается как путь к конфигурационному файлу, в противном случае содержание массива рассматривается как собственно конфигурация. За подробной информацией о опциях обращайтесь к http://tidy.sourceforge.net/docs/quickref.html.

Возможные значения параметра encoding: ascii, latin1, raw, utf8, iso2022, mac, win1252, utf16le, utf16be, utf16, big5 и shiftjis.

Пример 1. tidy_repair_string() example

<?php
ob_start();
?>

<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>error</i>
  </body>
</html>

<?php

$buffer = ob_get_clean();
$tidy = tidy_repair_string($buffer);

echo $tidy;
?>

Результат выполнения данного примера:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>test</title>
</head>
<body>
<p>error</p>
</body>
</html>

Замечание: Опциональные параметры config_options и enconding были добавлены в Tidy 2.0.

See also tidy_parse_file(),
tidy_parse_string() and
tidy_repair_file().

Пред. | Начало | След.
tidy_repair_file | Уровень выше | tidy_reset_config


tidy_reset_config

(no version information, might be only in CVS)

tidy_reset_config -- Restore Tidy configuration to default values

Description

bool tidy_reset_config ( void )

This function restores the Tidy configuration to the default values.

Замечание: Эта функция доступна только в Tidy 1.0. С приходом Tidy 2.0 она стала ненужной и была удалена.

Пред. | Начало | След.
tidy_repair_string | Уровень выше | tidy_save_config


tidy_save_config

(no version information, might be only in CVS)

tidy_save_config -- Save current settings to named file

Description

bool tidy_save_config ( string filename )

tidy_save_config() saves current settings to the specified file. Only non-default values are written.

See also tidy_get_config(),
tidy_getopt(),
tidy_reset_config() and
tidy_setopt().

Замечание: Эта функция доступна только в Tidy 1.0. С приходом Tidy 2.0 она стала ненужной и была удалена.

Пред. | Начало | След.
tidy_reset_config | Уровень выше | tidy_set_encoding


tidy_set_encoding

(no version information, might be only in CVS)

tidy_set_encoding -- Set the input/output character encoding for parsing markup

Description

bool tidy_set_encoding ( string encoding )

Sets the encoding for input/output documents. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Possible values for encoding are ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5 and shiftjis

Замечание: Эта функция доступна только в Tidy 1.0. С приходом Tidy 2.0 она стала ненужной и была удалена.

Пред. | Начало | След.
tidy_save_config | Уровень выше | tidy_setopt


tidy_setopt

(no version information, might be only in CVS)

tidy_setopt -- Updates the configuration settings for the specified tidy document

Description

bool tidy_setopt ( string option, mixed value )

tidy_setopt() updates the specified option with a new value.

Пример 1. tidy_setopt() example

<?php
$html = '<p>test</i>';

$tidy = tidy_parse_string($html);

tidy_setopt('indent', FALSE);
?>

See also tidy_getopt(),
tidy_get_config(),
tidy_reset_config() and
tidy_save_config().

Замечание: Эта функция доступна только в Tidy 1.0. С приходом Tidy 2.0 она стала ненужной и была удалена.

Пред. | Начало | След.
tidy_set_encoding | Уровень выше | tidy_warning_count


tidy_warning_count

(PHP 5)

tidy_warning_count -- Returns the Number of Tidy warnings encountered for specified document

Description

int tidy_warning_count ( tidy object )

tidy_warning_count() returns the number of Tidy warnings encountered for the specified document.

Пример 1. tidy_warning_count() example

<?php
$html = '<p>test</i>
<bogustag>bogus</bogustag>';

$tidy = tidy_parse_string($html);

echo tidy_error_count($tidy) . "\n"; //1
echo tidy_warning_count($tidy) . "\n"; //5
?>

See also tidy_access_count() and tidy_error_count().

Пред. | Начало | След.
tidy_setopt | Уровень выше | tidyNode->hasChildren


tidyNode->hasChildren

(no version information, might be only in CVS)

tidyNode->hasChildren -- Returns true if this node has children

Description

bool tidyNode->hasChildren ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Замечание: This function was named tidy_node->has_children() in PHP 4/Tidy 1.

Пред. | Начало | След.
tidy_warning_count | Уровень выше | tidyNode->hasSiblings


tidyNode->hasSiblings

(no version information, might be only in CVS)

tidyNode->hasSiblings -- Returns true if this node has siblings

Description

bool tidyNode->hasSiblings ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Замечание: This function was named tidy_node->has_siblings() in PHP 4/Tidy 1.

Пред. | Начало | След.
tidyNode->hasChildren | Уровень выше | tidyNode->isAsp


tidyNode->isAsp

(no version information, might be only in CVS)

tidyNode->isAsp -- Returns true if this node is ASP

Description

bool tidyNode->isAsp ( void )

This functions returns TRUE if the current node is ASP, or FALSE otherwise.

Замечание: This function was named tidy_node->is_asp() in PHP 4/Tidy 1.

Пред. | Начало | След.
tidyNode->hasSiblings | Уровень выше | tidyNode->isComment


tidyNode->isComment

(no version information, might be only in CVS)

tidyNode->isComment -- Returns true if this node represents a comment

Description

bool tidyNode->isComment ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Замечание: This function was named tidy_node->is_comment() in PHP 4/Tidy 1.

Пред. | Начало | След.
tidyNode->isAsp | Уровень выше | tidyNode->isHtml


tidyNode->isHtml

(no version information, might be only in CVS)

tidyNode->isHtml -- Returns true if this node is part of a HTML document

Description

bool tidyNode->isHtml ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Замечание: This function was named tidy_node->is_html() in PHP 4/Tidy 1.

Пред. | Начало | След.
tidyNode->isComment | Уровень выше | tidyNode->isJste


tidyNode->isJste

(no version information, might be only in CVS)

tidyNode->isJste -- Returns true if this node is JSTE

Description

bool tidyNode->isJste ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Замечание: This function was named tidy_node->is_jste() in PHP 4/Tidy 1.

Пред. | Начало | След.
tidyNode->isHtml | Уровень выше | tidyNode->isPhp


tidyNode->isPhp

(no version information, might be only in CVS)

tidyNode->isPhp -- Returns true if this node is PHP

Description

bool tidyNode->isPhp ( void )

Returns TRUE if the current node is PHP code, FALSE otherwise.

Пример 1. get the PHP code from a mixed HTML/PHP document

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>title</title>'; ?>
</head>
<body>

<?php
echo 'hello world!';
?>

</body></html>
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_php($tidy->html());

function get_php($node) {

    // check if the current node is PHP code
    if($node->isPhp()) {
        echo "\n\n# PHP node #" . ++$GLOBALS['num'] . "\n";
        echo $node->value;
    }

    // check if the current node has childrens
    if($node->hasChildren()) {
        foreach($node->child as $child) {
            get_php($child);
        }
    }
}

?>

Результат выполнения данного примера:

# PHP node #1
<?php echo '<title>title</title>'; ?>

# PHP node #2
<?php
echo 'hello world!';
?>

Замечание: This function was named tidy_node->is_php() in PHP 4/Tidy 1.

Пред. | Начало | След.
tidyNode->isJste | Уровень выше | tidyNode->isText


tidyNode->isText

(no version information, might be only in CVS)

tidyNode->isText -- Returns true if this node represents text (no markup)

Description

bool tidyNode->isText ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Замечание: This function was named tidy_node->is_text() in PHP 4/Tidy 1.

Пред. | Начало | След.
tidyNode->isPhp | Уровень выше | Tokenizer Functions


Tokenizer Functions

Руководство по PHP
Пред. След.

CLI. Tokenizer Functions

Введение

The tokenizer functions provide an interface to the PHP tokenizer embedded in the Zend Engine. Using these functions you may write your own PHP source analyzing or modification tools without having to deal with the language specification at the lexical level.

See also the appendix about tokens.

Требования

Эти функции всегда доступны.

Установка

Beginning with PHP 4.3.0 these functions are enabled by default. For older versions you have to configure and compile PHP with --enable-tokenizer. You can disable tokenizer support with --disable-tokenizer.

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.

Замечание: Builtin support for tokenizer is available with PHP 4.3.0.

Предопределенные константы

When the extension has either been compiled into PHP or dynamically loaded at runtime, the tokens listed in Прил. Q are defined as constants.

Примеры

Here is a simple example PHP scripts using the tokenizer that will read in a PHP file, strip all comments from the source and print the pure code only.

Пример 1. Strip comments with the tokenizer

<?php
/*
 * T_ML_COMMENT does not exist in PHP 5.
 * The following three lines define it in order to
 * preserve backwards compatibility.
 *
 * The next two lines define the PHP 5 only T_DOC_COMMENT,
 * which we will mask as T_ML_COMMENT for PHP 4.
 */
if (!defined('T_ML_COMMENT')) {
    define('T_ML_COMMENT', T_COMMENT);
} else {
    define('T_DOC_COMMENT', T_ML_COMMENT);
}

$source = file_get_contents('example.php');
$tokens = token_get_all($source);

foreach ($tokens as $token) {
    if (is_string($token)) {
        // simple 1-character token
        echo $token;
    } else {
        // token array
        list($id, $text) = $token;

        switch ($id) {
            case T_COMMENT:
            case T_ML_COMMENT: // we've defined this
            case T_DOC_COMMENT: // and this
                // no action on comments
                break;

            default:
                // anything else -> output "as is"
                echo $text;
                break;
        }
    }
}
?>
Содержание
token_get_all -- Split given source into PHP tokens
token_name -- Get the symbolic name of a given PHP token

Пред. | Начало | След.
tidyNode->isText | Уровень выше | token_get_all


token_get_all

(PHP 4 >= 4.2.0, PHP 5)

token_get_all -- Split given source into PHP tokens

Описание

array token_get_all ( string source )

token_get_all() parses the given source string into PHP language tokens using the Zend engine's lexical scanner.

For a list of parser tokens, see Прил. Q, or use token_name() to translate a token value into its string representation.

Список параметров

source

The PHP source to parse.

Возвращаемые значения

An array of token identifiers. Each individual token identifier is either a single character (i.e.: ;, ., >, !, etc...), or a two element array containing the token index in element 0, and the string content of the original token in element 1.

Примеры

Пример 1. token_get_all() examples

<?php
$tokens = token_get_all('<?php echo; ?>'); /* => array(
                                                  array(T_OPEN_TAG, '<?php'),
                                                  array(T_ECHO, 'echo'),
                                                  ';',
                                                  array(T_CLOSE_TAG, '?>') ); */

/* Note in the following example that the string is parsed as T_INLINE_HTML
   rather than the otherwise expected T_COMMENT (T_ML_COMMENT in PHP <5).
   This is because no open/close tags were used in the "code" provided.
   This would be equivalent to putting a comment outside of <?php ?> tags in a normal file. */
$tokens = token_get_all('/* comment */'); // => array(array(T_INLINE_HTML, '/* comment */'));
?>

Пред. | Начало | След.
Tokenizer Functions | Уровень выше | token_name


token_name

(PHP 4 >= 4.2.0, PHP 5)

token_name -- Get the symbolic name of a given PHP token

Описание

string token_name ( int token )

token_name() gets the symbolic name for a PHP token value.

Список параметров

token

The token value.

Возвращаемые значения

The symbolic name of the given token. The returned name returned matches the name of the matching token constant.

Примеры

Пример 1. token_name() example

<?php
// 260 is the token value for the T_REQUIRE token
echo token_name(260);        // -> "T_REQUIRE"

// a token constant maps to its own name
echo token_name(T_FUNCTION); // -> "T_FUNCTION"
?>

Смотрите также

List of Parser Tokens

Пред. | Начало | След.
token_get_all | Уровень выше | Unicode Functions


ODBC Functions (Unified)

Руководство по PHP
Пред. След.

XCVII. ODBC Functions (Unified)

Введение

In addition to normal ODBC support, the Unified ODBC functions in PHP allow you to access several databases that have borrowed the semantics of the ODBC API to implement their own API. Instead of maintaining multiple database drivers that were all nearly identical, these drivers have been unified into a single set of ODBC functions.

The following databases are supported by the Unified ODBC functions: Adabas D, IBM DB2, iODBC, Solid, and Sybase SQL Anywhere.

Замечание: There is no ODBC involved when connecting to the above databases. The functions that you use to speak natively to them just happen to share the same names and syntax as the ODBC functions. The exception to this is iODBC. Building PHP with iODBC support enables you to use any ODBC-compliant drivers with your PHP applications. iODBC is maintained by OpenLink Software. More information on iODBC, as well as a HOWTO, is available at www.iodbc.org.

Требования

To access any of the supported databases you need to have the required libraries installed.

Установка

--with-adabas[=DIR]

Include Adabas D support. DIR is the Adabas base install directory, defaults to /usr/local.

--with-sapdb[=DIR]

Include SAP DB support. DIR is SAP DB base install directory, defaults to /usr/local.

--with-solid[=DIR]

Include Solid support. DIR is the Solid base install directory, defaults to /usr/local/solid.

--with-ibm-db2[=DIR]

Include IBM DB2 support. DIR is the DB2 base install directory, defaults to /home/db2inst1/sqllib.

--with-empress[=DIR]

Include Empress support. DIR is the Empress base install directory, defaults to $EMPRESSPATH. From PHP 4, this option only supports Empress Version 8.60 and above.

--with-empress-bcs[=DIR]

Include Empress Local Access support. DIR is the Empress base install directory, defaults to $EMPRESSPATH. From PHP 4, this option only supports Empress Version 8.60 and above.

--with-birdstep[=DIR]

Include Birdstep support. DIR is the Birdstep base install directory, defaults to /usr/local/birdstep.

--with-custom-odbc[=DIR]

Include a user defined ODBC support. The DIR is ODBC install base directory, which defaults to /usr/local. Make sure to define CUSTOM_ODBC_LIBS and have some odbc.h in your include dirs. E.g., you should define following for Sybase SQL Anywhere 5.5.00 on QNX, prior to run configure script: CPPFLAGS="-DODBC_QNX -DSQLANY_BUG" LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc".

--with-iodbc[=DIR]

Include iODBC support. DIR is the iODBC base install directory, defaults to /usr/local.

--with-esoob[=DIR]

Include Easysoft OOB support. DIR is the OOB base install directory, defaults to /usr/local/easysoft/oob/client.

--with-unixODBC[=DIR]

Include unixODBC support. DIR is the unixODBC base install directory, defaults to /usr/local.

--with-openlink[=DIR]

Include OpenLink ODBC support. DIR is the OpenLink base install directory, defaults to /usr/local. This is the same as iODBC.

--with-dbmaker[=DIR]

Include DBMaker support. DIR is the DBMaker base install directory, defaults to where the latest version of DBMaker is installed (such as /home/dbmaker/3.6).

To disable unified ODBC support in PHP 3 add --disable-unified-odbc to your configure line. Only applicable if iODBC, Adabas, Solid, Velocis or a custom ODBC interface is enabled.

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Unified ODBC Configuration Options

Name | Default | Changeable | Changelog
odbc.default_db * | NULL | PHP_INI_ALL |
odbc.default_user * | NULL | PHP_INI_ALL |
odbc.default_pw * | NULL | PHP_INI_ALL |
odbc.allow_persistent | "1" | PHP_INI_SYSTEM |
odbc.check_persistent | "1" | PHP_INI_SYSTEM |
odbc.max_persistent | "-1" | PHP_INI_SYSTEM |
odbc.max_links | "-1" | PHP_INI_SYSTEM |
odbc.defaultlrl | "4096" | PHP_INI_ALL |
odbc.defaultbinmode | "1" | PHP_INI_ALL |

Замечание: Entries marked with * are not implemented yet.

Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

odbc.default_db string

ODBC data source to use if none is specified in odbc_connect() or odbc_pconnect().

odbc.default_user string

User name to use if none is specified in odbc_connect() or odbc_pconnect().

odbc.default_pw string

Password to use if none is specified in odbc_connect() or odbc_pconnect().

odbc.allow_persistent boolean

Whether to allow persistent ODBC connections.

odbc.check_persistent boolean

Check that a connection is still valid before reuse.

odbc.max_persistent integer

The maximum number of persistent ODBC connections per process.

odbc.max_links integer

The maximum number of ODBC connections per process, including persistent connections.

odbc.defaultlrl integer

Handling of LONG fields. Specifies the number of bytes returned to variables.

Если используется integer, значение измеряется байтами. Вы также можете использовать сокращённую запись, которая описана в этом разделе FAQ.

odbc.defaultbinmode integer

Handling of binary data.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

ODBC_TYPE (integer)

ODBC_BINMODE_PASSTHRU (integer)

ODBC_BINMODE_RETURN (integer)

ODBC_BINMODE_CONVERT (integer)

SQL_ODBC_CURSORS (integer)

SQL_CUR_USE_DRIVER (integer)

SQL_CUR_USE_IF_NEEDED (integer)

SQL_CUR_USE_ODBC (integer)

SQL_CONCURRENCY (integer)

SQL_CONCUR_READ_ONLY (integer)

SQL_CONCUR_LOCK (integer)

SQL_CONCUR_ROWVER (integer)

SQL_CONCUR_VALUES (integer)

SQL_CURSOR_TYPE (integer)

SQL_CURSOR_FORWARD_ONLY (integer)

SQL_CURSOR_KEYSET_DRIVEN (integer)

SQL_CURSOR_DYNAMIC (integer)

SQL_CURSOR_STATIC (integer)

SQL_KEYSET_SIZE (integer)

SQL_CHAR (integer)

SQL_VARCHAR (integer)

SQL_LONGVARCHAR (integer)

SQL_DECIMAL (integer)

SQL_NUMERIC (integer)

SQL_BIT (integer)

SQL_TINYINT (integer)

SQL_SMALLINT (integer)

SQL_INTEGER (integer)

SQL_BIGINT (integer)

SQL_REAL (integer)

SQL_FLOAT (integer)

SQL_DOUBLE (integer)

SQL_BINARY (integer)

SQL_VARBINARY (integer)

SQL_LONGVARBINARY (integer)

SQL_DATE (integer)

SQL_TIME (integer)

SQL_TIMESTAMP (integer)

SQL_TYPE_DATE (integer)

SQL_TYPE_TIME (integer)

SQL_TYPE_TIMESTAMP (integer)

SQL_BEST_ROWID (integer)

SQL_ROWVER (integer)

SQL_SCOPE_CURROW (integer)

SQL_SCOPE_TRANSACTION (integer)

SQL_SCOPE_SESSION (integer)

SQL_NO_NULLS (integer)

SQL_NULLABLE (integer)

SQL_INDEX_UNIQUE (integer)

SQL_INDEX_ALL (integer)

SQL_ENSURE (integer)

SQL_QUICK (integer)

Содержание
odbc_autocommit -- Toggle autocommit behaviour
odbc_binmode -- Handling of binary column data
odbc_close_all -- Close all ODBC connections
odbc_close -- Close an ODBC connection
odbc_columnprivileges -- Returns a result identifier that can be used to fetch a list of columns and associated privileges
odbc_columns -- Lists the column names in specified tables
odbc_commit -- Commit an ODBC transaction
odbc_connect -- Connect to a datasource
odbc_cursor -- Get cursorname
odbc_data_source -- Returns information about a current connection
odbc_do -- Synonym for odbc_exec()
odbc_error -- Get the last error code
odbc_errormsg -- Get the last error message
odbc_exec -- Prepare and execute a SQL statement
odbc_execute -- Execute a prepared statement
odbc_fetch_array -- Fetch a result row as an associative array
odbc_fetch_into -- Fetch one result row into array
odbc_fetch_object -- Fetch a result row as an object
odbc_fetch_row -- Fetch a row
odbc_field_len -- Get the length (precision) of a field
odbc_field_name -- Get the columnname
odbc_field_num -- Return column number
odbc_field_precision -- Synonym for odbc_field_len()
odbc_field_scale -- Get the scale of a field
odbc_field_type -- Datatype of a field
odbc_foreignkeys -- Returns a list of foreign keys in the specified table or a list of foreign keys in other tables that refer to the primary key in the specified table
odbc_free_result -- Free resources associated with a result
odbc_gettypeinfo -- Returns a result identifier containing information about data types supported by the data source
odbc_longreadlen -- Handling of LONG columns
odbc_next_result -- Checks if multiple results are available
odbc_num_fields -- Number of columns in a result
odbc_num_rows -- Number of rows in a result
odbc_pconnect -- Open a persistent database connection
odbc_prepare -- Prepares a statement for execution
odbc_primarykeys -- Returns a result identifier that can be used to fetch the column names that comprise the primary key for a table
odbc_procedurecolumns -- Retrieve information about parameters to procedures
odbc_procedures -- Get the list of procedures stored in a specific data source
odbc_result_all -- Print result as HTML table
odbc_result -- Get result data
odbc_rollback -- Rollback a transaction
odbc_setoption -- Adjust ODBC settings
odbc_specialcolumns -- Returns either the optimal set of columns that uniquely identifies a row in the table or columns that are automatically updated when any value in the row is updated by a transaction
odbc_statistics -- Retrieve statistics about a table
odbc_tableprivileges -- Lists tables and the privileges associated with each table
odbc_tables -- Get the list of table names stored in a specific data source

Пред. | Начало | След.
ociwritetemporarylob | Уровень выше | odbc_autocommit


odbc_autocommit

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_autocommit -- Toggle autocommit behaviour

Description

mixed odbc_autocommit ( resource connection_id [, bool OnOff] )

Without the OnOff parameter, this function returns auto-commit status for connection_id. Non-zero is returned if auto-commit is on, 0 if it is off, or FALSE if an error occurs.

If OnOff is TRUE, auto-commit is enabled, if it is FALSE auto-commit is disabled. Returns TRUE on success, FALSE on failure.

By default, auto-commit is on for a connection. Disabling auto-commit is equivalent with starting a transaction.

See also odbc_commit() and odbc_rollback().

Пред. | Начало | След.
ODBC Functions (Unified) | Уровень выше | odbc_binmode


odbc_binmode

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_binmode -- Handling of binary column data

Description

bool odbc_binmode ( resource result_id, int mode )

(ODBC SQL types affected: BINARY, VARBINARY, LONGVARBINARY)

  • ODBC_BINMODE_PASSTHRU: Passthru BINARY data

  • ODBC_BINMODE_RETURN: Return as is

  • ODBC_BINMODE_CONVERT: Convert to char and return

When binary SQL data is converted to character C data, each byte (8 bits) of source data is represented as two ASCII characters. These characters are the ASCII character representation of the number in its hexadecimal form. For example, a binary 00000001 is converted to "01" and a binary 11111111 is converted to "FF".

Таблица 1. LONGVARBINARY handling

binmode | longreadlen | result
ODBC_BINMODE_PASSTHRU | 0 | passthru
ODBC_BINMODE_RETURN | 0 | passthru
ODBC_BINMODE_CONVERT | 0 | passthru
ODBC_BINMODE_PASSTHRU | 0 | passthru
ODBC_BINMODE_PASSTHRU | >0 | passthru
ODBC_BINMODE_RETURN | >0 | return as is
ODBC_BINMODE_CONVERT | >0 | return as char

If odbc_fetch_into() is used, passthru means that an empty string is returned for these columns.

If result_id is 0, the settings apply as default for new results.

Замечание: Default for longreadlen is 4096 and binmode defaults to ODBC_BINMODE_RETURN. Handling of binary long columns is also affected by odbc_longreadlen()

Пред. | Начало | След.
odbc_autocommit | Уровень выше | odbc_close_all


odbc_close_all

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_close_all -- Close all ODBC connections

Description

void odbc_close_all ( void )

odbc_close_all() will close down all connections to database server(s).

Замечание: This function will fail if there are open transactions on a connection. This connection will remain open in this case.

Пред. | Начало | След.
odbc_binmode | Уровень выше | odbc_close


odbc_close

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_close -- Close an ODBC connection

Description

void odbc_close ( resource connection_id )

odbc_close() will close down the connection to the database server associated with the given connection identifier.

Замечание: This function will fail if there are open transactions on this connection. The connection will remain open in this case.

Пред. | Начало | След.
odbc_close_all | Уровень выше | odbc_columnprivileges


odbc_columnprivileges

(PHP 4, PHP 5)

odbc_columnprivileges -- Returns a result identifier that can be used to fetch a list of columns and associated privileges

Description

resource odbc_columnprivileges ( resource connection_id, string qualifier, string owner, string table_name, string column_name )

Lists columns and associated privileges for the given table. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • GRANTOR

  • GRANTEE

  • PRIVILEGE

  • IS_GRANTABLE

The result set is ordered by TABLE_QUALIFIER, TABLE_OWNER and TABLE_NAME.

The column_name argument accepts search patterns ('%' to match zero or more characters and '_' to match a single character).

Пред. | Начало | След.
odbc_close | Уровень выше | odbc_columns


odbc_columns

(PHP 4, PHP 5)

odbc_columns -- Lists the column names in specified tables

Description

resource odbc_columns ( resource connection_id [, string qualifier [, string schema [, string table_name [, string column_name]]]] )

Lists all columns in the requested range. Returns an ODBC result identifier containing the information or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER

  • TABLE_SCHEM

  • TABLE_NAME

  • COLUMN_NAME

  • DATA_TYPE

  • TYPE_NAME

  • PRECISION

  • LENGTH

  • SCALE

  • RADIX

  • NULLABLE

  • REMARKS

The result set is ordered by TABLE_QUALIFIER, TABLE_SCHEM and TABLE_NAME.

The schema, table_name and column_name arguments accept search patterns ('%' to match zero or more characters and '_' to match a single character).

See also odbc_columnprivileges() to retrieve associated privileges.

Пред. | Начало | След.
odbc_columnprivileges | Уровень выше | odbc_commit


odbc_commit

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_commit -- Commit an ODBC transaction

Description

bool odbc_commit ( resource connection_id )

odbc_commit() commits all pending transactions on the connection_id connection. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
odbc_columns | Уровень выше | odbc_connect


odbc_connect

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_connect -- Connect to a datasource

Description

resource odbc_connect ( string dsn, string user, string password [, int cursor_type] )

Returns an ODBC connection id or 0 (FALSE) on error.

The connection id returned by this functions is needed by other ODBC functions. You can have multiple connections open at once as long as they either use different db or different credentials. The optional fourth parameter sets the type of cursor to be used for this connection. This parameter is not normally needed, but can be useful for working around problems with some ODBC drivers.

With some ODBC drivers, executing a complex stored procedure may fail with an error similar to: "Cannot open a cursor on a stored procedure that has anything other than a single select statement in it". Using SQL_CUR_USE_ODBC may avoid that error. Also, some drivers don't support the optional row_number parameter in odbc_fetch_row(). SQL_CUR_USE_ODBC might help in that case, too.

The following constants are defined for cursortype:

  • SQL_CUR_USE_IF_NEEDED

  • SQL_CUR_USE_ODBC

  • SQL_CUR_USE_DRIVER

  • SQL_CUR_DEFAULT

For persistent connections see odbc_pconnect().

Пред. | Начало | След.
odbc_commit | Уровень выше | odbc_cursor


odbc_cursor

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_cursor -- Get cursorname

Description

string odbc_cursor ( resource result_id )

odbc_cursor will return a cursorname for the given result_id.

Пред. | Начало | След.
odbc_connect | Уровень выше | odbc_data_source


odbc_data_source

(PHP 4 >= 4.3.0, PHP 5)

odbc_data_source -- Returns information about a current connection

Description

array odbc_data_source ( resource connection_id, int fetch_type )

Returns FALSE on error, and an array upon success.

This function will return the list of available DNS (after calling it several times). The connection_id is required to be a valid ODBC connection. The fetch_type can be one of two constant types: SQL_FETCH_FIRST, SQL_FETCH_NEXT. Use SQL_FETCH_FIRST the first time this function is called, thereafter use the SQL_FETCH_NEXT.

Пред. | Начало | След.
odbc_cursor | Уровень выше | odbc_do


odbc_do

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_do -- Synonym for odbc_exec()

Description

resource odbc_do ( resource conn_id, string query )

odbc_do() will execute a query on the given connection.

Пред. | Начало | След.
odbc_data_source | Уровень выше | odbc_error


odbc_error

(PHP 4 >= 4.0.5, PHP 5)

odbc_error -- Get the last error code

Description

string odbc_error ( [resource connection_id] )

Returns a six-digit ODBC state, or an empty string if there has been no errors. If connection_id is specified, the last state of that connection is returned, else the last state of any connection is returned.

This function returns meaningful value only if last odbc query failed (i.e. odbc_exec() returned FALSE).

See also: odbc_errormsg() and odbc_exec().

Пред. | Начало | След.
odbc_do | Уровень выше | odbc_errormsg


odbc_errormsg

(PHP 4 >= 4.0.5, PHP 5)

odbc_errormsg -- Get the last error message

Description

string odbc_errormsg ( [resource connection_id] )

Returns a string containing the last ODBC error message, or an empty string if there has been no errors. If connection_id is specified, the last state of that connection is returned, else the last state of any connection is returned.

This function returns meaningful value only if last odbc query failed (i.e. odbc_exec() returned FALSE).

See also: odbc_error() and odbc_exec().

Пред. | Начало | След.
odbc_error | Уровень выше | odbc_exec


odbc_exec

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_exec -- Prepare and execute a SQL statement

Description

resource odbc_exec ( resource connection_id, string query_string [, int flags] )

Returns FALSE on error. Returns an ODBC result identifier if the SQL command was executed successfully.

odbc_exec() will send an SQL statement to the database server specified by connection_id. This parameter must be a valid identifier returned by odbc_connect() or odbc_pconnect().

See also: odbc_prepare() and odbc_execute() for multiple execution of SQL statements.

Пред. | Начало | След.
odbc_errormsg | Уровень выше | odbc_execute


odbc_execute

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_execute -- Execute a prepared statement

Description

bool odbc_execute ( resource result_id [, array parameters_array] )

Executes a statement prepared with odbc_prepare().Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. The array parameters_array only needs to be given if you really have parameters in your statement.

Parameters in parameter_array will be substituted for placeholders in the prepared statement in order.

Any parameters in parameter_array which start and end with single quotes will be taken as the name of a file to read and send to the database server as the data for the appropriate placeholder.

Замечание: As of PHP 4.1.1, this file reading functionality has the following restrictions:

  • File reading is not subject to any безопасный режим or open-basedir restrictions. This is fixed in PHP 4.2.0.

  • Remote files are not supported.

  • If you wish to store a string which actually begins and ends with single quotes, you must escape them or add a space or other non-single-quote character to the beginning or end of the parameter, which will prevent the parameter's being taken as a file name. If this is not an option, then you must use another mechanism to store the string, such as executing the query directly with odbc_exec()).

Пред. | Начало | След.
odbc_exec | Уровень выше | odbc_fetch_array


odbc_fetch_array

(PHP 4 >= 4.0.2, PHP 5)

odbc_fetch_array -- Fetch a result row as an associative array

Описание

array odbc_fetch_array ( resource result [, int rownumber] )

Fetch an associative array from an ODBC query. See the changelog below for when this function is available.

Список параметров

result

The result resource from odbc_exec().

rownumber

Optionally choose which row number to retrieve.

Возвращаемые значения

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

Список изменений

Версия | Описание
4.3.3 | This function exists when compiled with IBM DB2 or UnixODBC support.
4.3.2 | This function exists when compiled for Windows.
4.0.2 | This function exists when compiled with DBMaker support.

Смотрите также

odbc_fetch_row()
odbc_fetch_object()
odbc_num_rows()

Пред. | Начало | След.
odbc_execute | Уровень выше | odbc_fetch_into


odbc_fetch_into

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_fetch_into -- Fetch one result row into array

Description

int odbc_fetch_into ( resource result_id, array &result_array [, int rownumber] )

bool odbc_fetch_into ( resource result_id [, int rownumber, array &result_array] )

Returns the number of columns in the result; FALSE on error. result_array must be passed by reference, but it can be of any type since it will be converted to type array. The array will contain the column values starting at array index 0.

As of PHP 4.0.5 the result_array does not need to be passed by reference any longer.

As of PHP 4.0.6 the rownumber cannot be passed as a constant, but rather as a variable.

As of PHP 4.2.0 the result_array and rownumber have been swapped. This allows the rownumber to be a constant again. This change will also be the last one to this function.

Пример 1. odbc_fetch_into() pre 4.0.6 example

<?php
$rc = odbc_fetch_into($res_id, $my_array);
?>

or

<?php
$rc = odbc_fetch_into($res_id, $row, $my_array);

$rc = odbc_fetch_into($res_id, 1, $my_array);
?>

Пример 2. odbc_fetch_into() 4.0.6 example

<?php
$rc = odbc_fetch_into($res_id, $my_array);
?>

or

<?php
$row = 1;
$rc = odbc_fetch_into($res_id, $row, $my_array);
?>

Пример 3. odbc_fetch_into() 4.2.0 example

<?php
$rc = odbc_fetch_into($res_id, $my_array);
?>

or

<?php
$rc = odbc_fetch_into($res_id, $my_array, 2);
?>

Пред. | Начало | След.
odbc_fetch_array | Уровень выше | odbc_fetch_object


odbc_fetch_object

(PHP 4 >= 4.0.2, PHP 5)

odbc_fetch_object -- Fetch a result row as an object

Описание

object odbc_fetch_object ( resource result [, int rownumber] )

Fetch an object from an ODBC query. See the changelog below for when this function is available.

Список параметров

result

The result resource from odbc_exec().

rownumber

Optionally choose which row number to retrieve.

Возвращаемые значения

Returns an object that corresponds to the fetched row, or FALSE if there are no more rows.

Список изменений

Версия | Описание
4.3.3 | This function exists when compiled with IBM DB2 or UnixODBC support.
4.3.2 | This function exists when compiled for Windows.
4.0.2 | This function exists when compiled with DBMaker support.

Смотрите также

odbc_fetch_row()
odbc_fetch_array()
odbc_num_rows()

Пред. | Начало | След.
odbc_fetch_into | Уровень выше | odbc_fetch_row


odbc_fetch_row

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_fetch_row -- Fetch a row

Description

bool odbc_fetch_row ( resource result_id [, int row_number] )

If odbc_fetch_row() was successful (there was a row), TRUE is returned. If there are no more rows, FALSE is returned.

odbc_fetch_row() fetches a row of the data that was returned by odbc_do() / odbc_exec(). After odbc_fetch_row() is called, the fields of that row can be accessed with odbc_result().

If row_number is not specified, odbc_fetch_row() will try to fetch the next row in the result set. Calls to odbc_fetch_row() with and without row_number can be mixed.

To step through the result more than once, you can call odbc_fetch_row() with row_number 1, and then continue doing odbc_fetch_row() without row_number to review the result. If a driver doesn't support fetching rows by number, the row_number parameter is ignored.

Пред. | Начало | След.
odbc_fetch_object | Уровень выше | odbc_field_len


odbc_field_len

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_field_len -- Get the length (precision) of a field

Description

int odbc_field_len ( resource result_id, int field_number )

odbc_field_len() will return the length of the field referenced by number in the given ODBC result identifier. Field numbering starts at 1.

See also: odbc_field_scale() to get the scale of a floating point number.

Пред. | Начало | След.
odbc_fetch_row | Уровень выше | odbc_field_name


odbc_field_name

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_field_name -- Get the columnname

Description

string odbc_field_name ( resource result_id, int field_number )

odbc_field_name() will return the name of the field occupying the given column number in the given ODBC result identifier. Field numbering starts at 1. FALSE is returned on error.

Пред. | Начало | След.
odbc_field_len | Уровень выше | odbc_field_num


odbc_field_num

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_field_num -- Return column number

Description

int odbc_field_num ( resource result_id, string field_name )

odbc_field_num() will return the number of the column slot that corresponds to the named field in the given ODBC result identifier. Field numbering starts at 1. FALSE is returned on error.

Пред. | Начало | След.
odbc_field_name | Уровень выше | odbc_field_precision


odbc_field_precision

(PHP 4, PHP 5)

odbc_field_precision -- Synonym for odbc_field_len()

Description

int odbc_field_precision ( resource result_id, int field_number )

odbc_field_precision() will return the precision of the field referenced by number in the given ODBC result identifier.

See also: odbc_field_scale() to get the scale of a floating point number.

Пред. | Начало | След.
odbc_field_num | Уровень выше | odbc_field_scale


odbc_field_scale

(PHP 4, PHP 5)

odbc_field_scale -- Get the scale of a field

Description

int odbc_field_scale ( resource result_id, int field_number )

odbc_field_scale() will return the scale of the field referenced by number in the given ODBC result identifier.

Пред. | Начало | След.
odbc_field_precision | Уровень выше | odbc_field_type


odbc_field_type

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_field_type -- Datatype of a field

Description

string odbc_field_type ( resource result_id, int field_number )

odbc_field_type() will return the SQL type of the field referenced by number in the given ODBC result identifier. Field numbering starts at 1.

Пред. | Начало | След.
odbc_field_scale | Уровень выше | odbc_foreignkeys


odbc_foreignkeys

(PHP 4, PHP 5)

odbc_foreignkeys -- Returns a list of foreign keys in the specified table or a list of foreign keys in other tables that refer to the primary key in the specified table

Description

resource odbc_foreignkeys ( resource connection_id, string pk_qualifier, string pk_owner, string pk_table, string fk_qualifier, string fk_owner, string fk_table )

odbc_foreignkeys() retrieves information about foreign keys. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • PKTABLE_QUALIFIER

  • PKTABLE_OWNER

  • PKTABLE_NAME

  • PKCOLUMN_NAME

  • FKTABLE_QUALIFIER

  • FKTABLE_OWNER

  • FKTABLE_NAME

  • FKCOLUMN_NAME

  • KEY_SEQ

  • UPDATE_RULE

  • DELETE_RULE

  • FK_NAME

  • PK_NAME

If pk_table contains a table name, odbc_foreignkeys() returns a result set containing the primary key of the specified table and all of the foreign keys that refer to it.

If fk_table contains a table name, odbc_foreignkeys() returns a result set containing all of the foreign keys in the specified table and the primary keys (in other tables) to which they refer.

If both pk_table and fk_table contain table names, odbc_foreignkeys() returns the foreign keys in the table specified in fk_table that refer to the primary key of the table specified in pk_table. This should be one key at most.

Пред. | Начало | След.
odbc_field_type | Уровень выше | odbc_free_result


odbc_free_result

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_free_result -- Free resources associated with a result

Description

bool odbc_free_result ( resource result_id )

Always returns TRUE.

odbc_free_result() only needs to be called if you are worried about using too much memory while your script is running. All result memory will automatically be freed when the script is finished. But, if you are sure you are not going to need the result data anymore in a script, you may call odbc_free_result(), and the memory associated with result_id will be freed.

Замечание: If auto-commit is disabled (see odbc_autocommit()) and you call odbc_free_result() before committing, all pending transactions are rolled back.

Пред. | Начало | След.
odbc_foreignkeys | Уровень выше | odbc_gettypeinfo


odbc_gettypeinfo

(PHP 4, PHP 5)

odbc_gettypeinfo -- Returns a result identifier containing information about data types supported by the data source

Description

resource odbc_gettypeinfo ( resource connection_id [, int data_type] )

Retrieves information about data types supported by the data source. Returns an ODBC result identifier or FALSE on failure. The optional argument data_type can be used to restrict the information to a single data type.

The result set has the following columns:

  • TYPE_NAME

  • DATA_TYPE

  • PRECISION

  • LITERAL_PREFIX

  • LITERAL_SUFFIX

  • CREATE_PARAMS

  • NULLABLE

  • CASE_SENSITIVE

  • SEARCHABLE

  • UNSIGNED_ATTRIBUTE

  • MONEY

  • AUTO_INCREMENT

  • LOCAL_TYPE_NAME

  • MINIMUM_SCALE

  • MAXIMUM_SCALE

The result set is ordered by DATA_TYPE and TYPE_NAME.

Пред. | Начало | След.
odbc_free_result | Уровень выше | odbc_longreadlen


odbc_longreadlen

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_longreadlen -- Handling of LONG columns

Description

bool odbc_longreadlen ( resource result_id, int length )

(ODBC SQL types affected: LONG, LONGVARBINARY) The number of bytes returned to PHP is controlled by the parameter length. If it is set to 0, Long column data is passed through to the client.

Замечание: Handling of LONGVARBINARY columns is also affected by odbc_binmode().

Пред. | Начало | След.
odbc_gettypeinfo | Уровень выше | odbc_next_result


odbc_next_result

(PHP 4 >= 4.0.5, PHP 5)

odbc_next_result -- Checks if multiple results are available

Description

bool odbc_next_result ( resource result_id )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
odbc_longreadlen | Уровень выше | odbc_num_fields


odbc_num_fields

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_num_fields -- Number of columns in a result

Description

int odbc_num_fields ( resource result_id )

odbc_num_fields() will return the number of fields (columns) in an ODBC result. This function will return -1 on error. The argument is a valid result identifier returned by odbc_exec().

Пред. | Начало | След.
odbc_next_result | Уровень выше | odbc_num_rows


odbc_num_rows

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_num_rows -- Number of rows in a result

Description

int odbc_num_rows ( resource result_id )

odbc_num_rows() will return the number of rows in an ODBC result. This function will return -1 on error. For INSERT, UPDATE and DELETE statements odbc_num_rows() returns the number of rows affected. For a SELECT clause this can be the number of rows available.

Note: Using odbc_num_rows() to determine the number of rows available after a SELECT will return -1 with many drivers.

Пред. | Начало | След.
odbc_num_fields | Уровень выше | odbc_pconnect


odbc_pconnect

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_pconnect -- Open a persistent database connection

Description

resource odbc_pconnect ( string dsn, string user, string password [, int cursor_type] )

Returns an ODBC connection id or 0 (FALSE) on error. This function is much like odbc_connect(), except that the connection is not really closed when the script has finished. Future requests for a connection with the same dsn, user, password combination (via odbc_connect() and odbc_pconnect()) can reuse the persistent connection.

Замечание: Persistent connections have no effect if PHP is used as a CGI program.

For information about the optional cursor_type parameter see the odbc_connect() function. For more information on persistent connections, refer to the PHP FAQ.

Пред. | Начало | След.
odbc_num_rows | Уровень выше | odbc_prepare


odbc_prepare

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_prepare -- Prepares a statement for execution

Description

resource odbc_prepare ( resource connection_id, string query_string )

Returns FALSE on error.

Returns an ODBC result identifier if the SQL command was prepared successfully. The result identifier can be used later to execute the statement with odbc_execute().

Some databases (such as IBM DB2, MS SQL Server, and Oracle) support stored procedures that accept parameters of type IN, INOUT, and OUT as defined by the ODBC specification. However, the Unified ODBC driver currently only supports parameters of type IN to stored procedures.

In the following code, $res will only be valid if all three parameters to myproc are IN parameters:
<?php
$a = 1;
$b = 2;
$c = 3;
$stmt = odbc_prepare($conn, 'CALL myproc(?,?,?)');
$res = odbc_execute($stmt, array($a, $b, $c));
?>
If you need to call a stored procedure using INOUT or OUT parameters, the recommended workaround is to use a native extension for your database (for example, mssql for MS SQL Server, or oci8 for Oracle).

Пред. | Начало | След.
odbc_pconnect | Уровень выше | odbc_primarykeys


odbc_primarykeys

(PHP 4, PHP 5)

odbc_primarykeys -- Returns a result identifier that can be used to fetch the column names that comprise the primary key for a table

Description

resource odbc_primarykeys ( resource connection_id, string qualifier, string owner, string table )

Returns the column names that comprise the primary key for a table. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • COLUMN_NAME

  • KEY_SEQ

  • PK_NAME

Пред. | Начало | След.
odbc_prepare | Уровень выше | odbc_procedurecolumns


odbc_procedurecolumns

(PHP 4, PHP 5)

odbc_procedurecolumns -- Retrieve information about parameters to procedures

Description

resource odbc_procedurecolumns ( resource connection_id [, string qualifier, string owner, string proc, string column] )

Returns the list of input and output parameters, as well as the columns that make up the result set for the specified procedures. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • PROCEDURE_QUALIFIER

  • PROCEDURE_OWNER

  • PROCEDURE_NAME

  • COLUMN_NAME

  • COLUMN_TYPE

  • DATA_TYPE

  • TYPE_NAME

  • PRECISION

  • LENGTH

  • SCALE

  • RADIX

  • NULLABLE

  • REMARKS

The result set is ordered by PROCEDURE_QUALIFIER, PROCEDURE_OWNER, PROCEDURE_NAME and COLUMN_TYPE.

The owner, proc and column arguments accept search patterns ('%' to match zero or more characters and '_' to match a single character).

Пред. | Начало | След.
odbc_primarykeys | Уровень выше | odbc_procedures


odbc_procedures

(PHP 4, PHP 5)

odbc_procedures -- Get the list of procedures stored in a specific data source

Description

resource odbc_procedures ( resource connection_id [, string qualifier, string owner, string name] )

Lists all procedures in the requested range. Returns an ODBC result identifier containing the information or FALSE on failure.

The result set has the following columns:

  • PROCEDURE_QUALIFIER

  • PROCEDURE_OWNER

  • PROCEDURE_NAME

  • NUM_INPUT_PARAMS

  • NUM_OUTPUT_PARAMS

  • NUM_RESULT_SETS

  • REMARKS

  • PROCEDURE_TYPE

The owner and name arguments accept search patterns ('%' to match zero or more characters and '_' to match a single character).

Пред. | Начало | След.
odbc_procedurecolumns | Уровень выше | odbc_result_all


odbc_result_all

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_result_all -- Print result as HTML table

Description

int odbc_result_all ( resource result_id [, string format] )

Returns the number of rows in the result or FALSE on error.

odbc_result_all() will print all rows from a result identifier produced by odbc_exec(). The result is printed in HTML table format. With the optional string argument format, additional overall table formatting can be done.

Пред. | Начало | След.
odbc_procedures | Уровень выше | odbc_result


odbc_result

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_result -- Get result data

Description

mixed odbc_result ( resource result_id, mixed field )

Returns the string contents of the field, FALSE on error, NULL for NULL data, or TRUE for binary data.

field can either be an integer containing the column number of the field you want; or it can be a string containing the name of the field. For example:

<?php
$item_3 = odbc_result($Query_ID, 3);
$item_val = odbc_result($Query_ID, "val");
?>

The first call to odbc_result() returns the value of the third field in the current record of the query result. The second function call to odbc_result() returns the value of the field whose field name is "val" in the current record of the query result. An error occurs if a column number parameter for a field is less than one or exceeds the number of columns (or fields) in the current record. Similarly, an error occurs if a field with a name that is not one of the fieldnames of the table(s) that is(are) being queried.

Field indices start from 1. Regarding the way binary or long column data is returned refer to odbc_binmode() and odbc_longreadlen().

Пред. | Начало | След.
odbc_result_all | Уровень выше | odbc_rollback


odbc_rollback

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_rollback -- Rollback a transaction

Description

bool odbc_rollback ( resource connection_id )

Rolls back all pending statements on connection_id. Returns TRUE on success, FALSE on failure.

Пред. | Начало | След.
odbc_result | Уровень выше | odbc_setoption


odbc_setoption

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

odbc_setoption -- Adjust ODBC settings

Description

bool odbc_setoption ( resource id, int function, int option, int param )

This function allows fiddling with the ODBC options for a particular connection or query result. It was written to help find work around to problems in quirky ODBC drivers. You should probably only use this function if you are an ODBC programmer and understand the effects the various options will have. You will certainly need a good ODBC reference to explain all the different options and values that can be used. Different driver versions support different options.

Because the effects may vary depending on the ODBC driver, use of this function in scripts to be made publicly available is strongly discouraged. Also, some ODBC options are not available to this function because they must be set before the connection is established or the query is prepared. However, if on a particular job it can make PHP work so your boss doesn't tell you to use a commercial product, that's all that really matters.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

id is a connection id or result id on which to change the settings.For SQLSetConnectOption(), this is a connection id. For SQLSetStmtOption(), this is a result id.

Function is the ODBC function to use. The value should be 1 for SQLSetConnectOption() and 2 for SQLSetStmtOption().

Parameter option is the option to set.

Parameter param is the value for the given option.

Пример 1. ODBC Setoption Examples

<?php
// 1. Option 102 of SQLSetConnectOption() is SQL_AUTOCOMMIT.
//    Value 1 of SQL_AUTOCOMMIT is SQL_AUTOCOMMIT_ON.
//    This example has the same effect as
//    odbc_autocommit($conn, true);

odbc_setoption($conn, 1, 102, 1);

// 2. Option 0 of SQLSetStmtOption() is SQL_QUERY_TIMEOUT.
//    This example sets the query to timeout after 30 seconds.

$result = odbc_prepare($conn, $sql);
odbc_setoption($result, 2, 0, 30);
odbc_execute($result);
?>

Пред. | Начало | След.
odbc_rollback | Уровень выше | odbc_specialcolumns


odbc_specialcolumns

(PHP 4, PHP 5)

odbc_specialcolumns -- Returns either the optimal set of columns that uniquely identifies a row in the table or columns that are automatically updated when any value in the row is updated by a transaction

Description

resource odbc_specialcolumns ( resource connection_id, int type, string qualifier, string owner, string table, int scope, int nullable )

When the type argument is SQL_BEST_ROWID, odbc_specialcolumns() returns the column or columns that uniquely identify each row in the table.

When the type argument is SQL_ROWVER, odbc_specialcolumns() returns the column or columns in the specified table, if any, that are automatically updated by the data source when any value in the row is updated by any transaction.

Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • SCOPE

  • COLUMN_NAME

  • DATA_TYPE

  • TYPE_NAME

  • PRECISION

  • LENGTH

  • SCALE

  • PSEUDO_COLUMN

The result set is ordered by SCOPE.

Пред. | Начало | След.
odbc_setoption | Уровень выше | odbc_statistics


odbc_statistics

(PHP 4, PHP 5)

odbc_statistics -- Retrieve statistics about a table

Description

resource odbc_statistics ( resource connection_id, string qualifier, string owner, string table_name, int unique, int accuracy )

Get statistics about a table and its indexes. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • NON_UNIQUE

  • INDEX_QUALIFIER

  • INDEX_NAME

  • TYPE

  • SEQ_IN_INDEX

  • COLUMN_NAME

  • COLLATION

  • CARDINALITY

  • PAGES

  • FILTER_CONDITION

The result set is ordered by NON_UNIQUE, TYPE, INDEX_QUALIFIER, INDEX_NAME and SEQ_IN_INDEX.

Пред. | Начало | След.
odbc_specialcolumns | Уровень выше | odbc_tableprivileges


odbc_tableprivileges

(PHP 4, PHP 5)

odbc_tableprivileges -- Lists tables and the privileges associated with each table

Description

resource odbc_tableprivileges ( resource connection_id, string qualifier, string owner, string name )

Lists tables in the requested range and the privileges associated with each table. Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • GRANTOR

  • GRANTEE

  • PRIVILEGE

  • IS_GRANTABLE

The result set is ordered by TABLE_QUALIFIER, TABLE_OWNER and TABLE_NAME.

The owner and name arguments accept search patterns ('%' to match zero or more characters and '_' to match a single character).

Пред. | Начало | След.
odbc_statistics | Уровень выше | odbc_tables


odbc_tables

(PHP 3 >= 3.0.17, PHP 4, PHP 5)

odbc_tables -- Get the list of table names stored in a specific data source

Description

resource odbc_tables ( resource connection_id [, string qualifier [, string owner [, string name [, string types]]]] )

Lists all tables in the requested range. Returns an ODBC result identifier containing the information or FALSE on failure.

The result set has the following columns:

  • TABLE_QUALIFIER

  • TABLE_OWNER

  • TABLE_NAME

  • TABLE_TYPE

  • REMARKS

The result set is ordered by TABLE_TYPE, TABLE_QUALIFIER, TABLE_OWNER and TABLE_NAME.

The owner and name arguments accept search patterns ('%' to match zero or more characters and '_' to match a single character).

To support enumeration of qualifiers, owners, and table types, the following special semantics for the qualifier, owner, name, and table_type are available:

  • If qualifier is a single percent character (%) and owner and name are empty strings, then the result set contains a list of valid qualifiers for the data source. (All columns except the TABLE_QUALIFIER column contain NULLs.)

  • If owner is a single percent character (%) and qualifier and name are empty strings, then the result set contains a list of valid owners for the data source. (All columns except the TABLE_OWNER column contain NULLs.)

  • If table_type is a single percent character (%) and qualifier, owner and name are empty strings, then the result set contains a list of valid table types for the data source. (All columns except the TABLE_TYPE column contain NULLs.)

If table_type is not an empty string, it must contain a list of comma-separated values for the types of interest; each value may be enclosed in single quotes (') or unquoted. For example, "'TABLE','VIEW'" or "TABLE, VIEW". If the data source does not support a specified table type, odbc_tables() does not return any results for that type.

See also odbc_tableprivileges() to retrieve associated privileges.

Пред. | Начало | След.
odbc_tableprivileges | Уровень выше | ODBC and DB2 functions (PDO_ODBC)


URL Functions

Руководство по PHP
Пред. След.

CLIII. URL Functions

Введение

Dealing with URL strings: encoding, decoding and parsing.

Требования

Эти функции всегда доступны.

Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Содержание
base64_decode -- Decodes data encoded with MIME base64
base64_encode -- Encodes data with MIME base64
get_headers -- Fetches all the headers sent by the server in response to a HTTP request
get_meta_tags -- Extracts all meta tag content attributes from a file and returns an array
http_build_query -- Generate URL-encoded query string
parse_url -- Parse a URL and return its components
rawurldecode -- Decode URL-encoded strings
rawurlencode -- URL-encode according to RFC 1738
urldecode -- Decodes URL-encoded string
urlencode -- URL-encodes string

Пред. | Начало | След.
unicode_encode | Уровень выше | base64_decode


base64_decode

(PHP 3, PHP 4, PHP 5)

base64_decode -- Decodes data encoded with MIME base64

Description

string base64_decode ( string encoded_data )

base64_decode() decodes encoded_data and returns the original data or FALSE on failure. The returned data may be binary.

Пример 1. base64_decode() example

<?php
$str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==';
echo base64_decode($str);
?>

This example will produce:

This is an encoded string

See also base64_encode() and RFC 2045 section 6.8.

Пред. | Начало | След.
URL Functions | Уровень выше | base64_encode


base64_encode

(PHP 3, PHP 4, PHP 5)

base64_encode -- Encodes data with MIME base64

Description

string base64_encode ( string data )

base64_encode() returns data encoded with base64. This encoding is designed to make binary data survive transport through transport layers that are not 8-bit clean, such as mail bodies.

Base64-encoded data takes about 33% more space than the original data.

Пример 1. base64_encode() example

<?php
  $str = 'This is an encoded string';
  echo base64_encode($str);
?>

This example will produce:

VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==

See also
base64_decode(),
chunk_split(),
convert_uuencode() and
RFC 2045 section 6.8.

Пред. | Начало | След.
base64_decode | Уровень выше | get_headers


get_headers

(PHP 5)

get_headers -- Fetches all the headers sent by the server in response to a HTTP request

Description

array get_headers ( string url [, int format] )

get_headers() returns an array with the headers sent by the server in response to a HTTP request. Returns FALSE on failure and an error of level E_WARNING will be issued.

If the optional format parameter is set to 1, get_headers() parses the response and sets the array's keys.

Пример 1. get_headers() example

<?php
$url = 'http://www.example.com';

print_r(get_headers($url));

print_r(get_headers($url, 1));
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => HTTP/1.1 200 OK
    [1] => Date: Sat, 29 May 2004 12:28:13 GMT
    [2] => Server: Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
    [4] => ETag: "3f80f-1b6-3e1cb03b"
    [5] => Accept-Ranges: bytes
    [6] => Content-Length: 438
    [7] => Connection: close
    [8] => Content-Type: text/html
)

Array
(
    [0] => HTTP/1.1 200 OK
    [Date] => Sat, 29 May 2004 12:28:14 GMT
    [Server] => Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [Last-Modified] => Wed, 08 Jan 2003 23:11:55 GMT
    [ETag] => "3f80f-1b6-3e1cb03b"
    [Accept-Ranges] => bytes
    [Content-Length] => 438
    [Connection] => close
    [Content-Type] => text/html
)

Пред. | Начало | След.
base64_encode | Уровень выше | get_meta_tags


get_meta_tags

(PHP 3 >= 3.0.4, PHP 4, PHP 5)

get_meta_tags -- Extracts all meta tag content attributes from a file and returns an array

Description

array get_meta_tags ( string filename [, bool use_include_path] )

Opens filename and parses it line by line for <meta> tags in the file. This can be a local file or an URL. The parsing stops at </head>.

Setting use_include_path to TRUE will result in PHP trying to open the file along the standard include path as per the include_path directive. This is used for local files, not URLs.

Пример 1. What get_meta_tags() parses

<meta name="author" content="name">
<meta name="keywords" content="php documentation">
<meta name="DESCRIPTION" content="a php manual">
<meta name="geo.position" content="49.33;-86.59">
</head> <!-- parsing stops here -->
(pay attention to line endings - PHP uses a native function to parse the input, so a Mac file won't work on Unix).

The value of the name property becomes the key, the value of the content property becomes the value of the returned array, so you can easily use standard array functions to traverse it or access single values. Special characters in the value of the name property are substituted with '_', the rest is converted to lower case. If two meta tags have the same name, only the last one is returned.

Пример 2. What get_meta_tags() returns

<?php
// Assuming the above tags are at www.example.com
$tags = get_meta_tags('http://www.example.com/');

// Notice how the keys are all lowercase now, and
// how . was replaced by _ in the key.
echo $tags['author'];       // name
echo $tags['keywords'];     // php documentation
echo $tags['description'];  // a php manual
echo $tags['geo_position']; // 49.33;-86.59
?>

Замечание: As of PHP 4.0.5, get_meta_tags() supports unquoted HTML attributes.

See also htmlentities() and urlencode().

Пред. | Начало | След.
get_headers | Уровень выше | http_build_query


http_build_query

(PHP 5)

http_build_query -- Generate URL-encoded query string

Description

string http_build_query ( array formdata [, string numeric_prefix] )

Generates a URL-encoded query string from the associative (or indexed) array provided. formdata may be an array or object containing properties. A formdata array may be a simple one-dimensional structure, or an array of arrays (who in turn may contain other arrays). If numeric indices are used in the base array and a numeric_prefix is provided, it will be prepended to the numeric index for elements in the base array only. This is to allow for legal variable names when the data is decoded by PHP or another CGI application later on.

Замечание: arg_separator.output is used to separate arguments.

Пример 1. Simple usage of http_build_query()

<?php
$data = array('foo'=>'bar',
              'baz'=>'boom',
              'cow'=>'milk',
              'php'=>'hypertext processor');

echo http_build_query($data); // foo=bar&baz=boom&cow=milk&php=hypertext+processor
?>

Пример 2. http_build_query() with numerically index elements.

<?php
$data = array('foo', 'bar', 'baz', 'boom', 'cow' => 'milk', 'php' =>'hypertext processor');

echo http_build_query($data);
/* Outputs:
      0=foo&1=bar&2=baz&3=boom&cow=milk&php=hypertext+processor
 */

echo http_build_query($data, 'myvar_');
/* Outputs:
      myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_3=boom&cow=milk&php=hypertext+processor
 */
?>

Пример 3. http_build_query() with complex arrays

<?php
$data = array('user'=>array('name'=>'Bob Smith',
                            'age'=>47,
                            'sex'=>'M',
                            'dob'=>'5/12/1956'),
              'pastimes'=>array('golf', 'opera', 'poker', 'rap'),
              'children'=>array('bobby'=>array('age'=>12,
                                               'sex'=>'M'),
                                'sally'=>array('age'=>8,
                                               'sex'=>'F')),
              'CEO');

echo http_build_query($data, 'flags_');
?>

this will output : (word wrapped for readability)

user[name]=Bob+Smith&user[age]=47&user[sex]=M&user[dob]=5%1F12%1F1956&
pastimes[0]=golf&pastimes[1]=opera&pastimes[2]=poker&pastimes[3]=rap&
children[bobby][age]=12&children[bobby][sex]=M&children[sally][age]=8&
children[sally][sex]=F&flags_0=CEO

Замечание: Only the numerically indexed element in the base array "CEO" received a prefix. The other numeric indices, found under pastimes, do not require a string prefix to be legal variable names.

Пример 4. Using http_build_query() with an object

<?php
class myClass {
  var $foo;
  var $baz;

  function myClass()
  {
    $this->foo = 'bar';
    $this->baz = 'boom';
  }
}

$data = new myClass();

echo http_build_query($data); // foo=bar&baz=boom

?>

See also:
parse_str(),
parse_url(),
urlencode(), and
array_walk()

Пред. | Начало | След.
get_meta_tags | Уровень выше | parse_url


parse_url

(PHP 3, PHP 4, PHP 5)

parse_url -- Parse a URL and return its components

Описание

array parse_url ( string url )

This function parses a URL and returns an associative array containing any of the various components of the URL that are present.

This function is not meant to validate the given URL, it only breaks it up into the above listed parts. Partial URLs are also accepted, parse_url() tries its best to parse them correctly.

Список параметров

url

The URL to parse

Возвращаемые значения

On seriously malformed URLs, parse_url() may return FALSE and emit a E_WARNING. Otherwise an associative array is returned, whose components may be (at least one):

  • scheme - e.g. http

  • host

  • port

  • user

  • pass

  • path

  • query - after the question mark ?

  • fragment - after the hashmark #

Примеры

Пример 1. A parse_url() example

<?php
$url = 'http://username:password@hostname/path?arg=value#anchor';

print_r(parse_url($url));
?>

Результат выполнения данного примера:

Array
(
    [scheme] => http
    [host] => hostname
    [user] => username
    [pass] => password
    [path] => /path
    [query] => arg=value
    [fragment] => anchor
)

Примечания

Замечание: This function doesn't work with relative URLs.

Замечание: parse_url() is intended specifically for the purpose of parsing URLs and not URIs. However, to comply with PHP's backwards compatibility requirements it makes an exception for the file:// scheme where tripple slashes (file:///...) are allowed. For any other scheme this is invalid.

Смотрите также

pathinfo()
parse_str()
dirname()
basename()

Пред. | Начало | След.
http_build_query | Уровень выше | rawurldecode


rawurldecode

(PHP 3, PHP 4, PHP 5)

rawurldecode -- Decode URL-encoded strings

Description

string rawurldecode ( string str )

Returns a string in which the sequences with percent (%) signs followed by two hex digits have been replaced with literal characters.

Пример 1. rawurldecode() example

<?php

echo rawurldecode('foo%20bar%40baz'); // foo bar@baz

?>

Замечание: rawurldecode() does not decode plus symbols ('+') into spaces. urldecode() does.

See also rawurlencode(),
urldecode() and
urlencode().

Пред. | Начало | След.
parse_url | Уровень выше | rawurlencode


rawurlencode

(PHP 3, PHP 4, PHP 5)

rawurlencode -- URL-encode according to RFC 1738

Description

string rawurlencode ( string str )

Returns a string in which all non-alphanumeric characters except -_. have been replaced with a percent (%) sign followed by two hex digits. This is the encoding described in RFC 1738 for protecting literal characters from being interpreted as special URL delimiters, and for protecting URL's from being mangled by transmission media with character conversions (like some email systems). For example, if you want to include a password in an FTP URL:

Пример 1. rawurlencode() example 1

<?php
echo '<a href="ftp://user:', rawurlencode('foo @+%/'),
     '@ftp.example.com/x.txt">';
?>

Or, if you pass information in a PATH_INFO component of the URL:

Пример 2. rawurlencode() example 2

<?php
echo '<a href="http://example.com/department_list_script/',
    rawurlencode('sales and marketing/Miami'), '">';
?>

See also rawurldecode(),
urldecode(),
urlencode() and
RFC 1738.

Пред. | Начало | След.
rawurldecode | Уровень выше | urldecode


urldecode

(PHP 3, PHP 4, PHP 5)

urldecode -- Decodes URL-encoded string

Description

string urldecode ( string str )

Decodes any %## encoding in the given string. The decoded string is returned.

Пример 1. urldecode() example

<?php
$a = explode('&', $QUERY_STRING);
$i = 0;
while ($i < count($a)) {
    $b = split('=', $a[$i]);
    echo 'Value for parameter ', htmlspecialchars(urldecode($b[0])),
         ' is ', htmlspecialchars(urldecode($b[1])), "<br />\n";
    $i++;
}
?>

See also urlencode(),
rawurlencode() and
rawurldecode().

Пред. | Начало | След.
rawurlencode | Уровень выше | urlencode


urlencode

(PHP 3, PHP 4, PHP 5)

urlencode -- URL-encodes string

Description

string urlencode ( string str )

Returns a string in which all non-alphanumeric characters except -_. have been replaced with a percent (%) sign followed by two hex digits and spaces encoded as plus (+) signs. It is encoded the same way that the posted data from a WWW form is encoded, that is the same way as in application/x-www-form-urlencoded media type. This differs from the RFC1738 encoding (see rawurlencode()) in that for historical reasons, spaces are encoded as plus (+) signs. This function is convenient when encoding a string to be used in a query part of a URL, as a convenient way to pass variables to the next page:

Пример 1. urlencode() example

<?php
echo '<a href="mycgi?foo=', urlencode($userinput), '">';
?>

Note: Be careful about variables that may match HTML entities. Things like &amp, &copy and &pound are parsed by the browser and the actual entity is used instead of the desired variable name. This is an obvious hassle that the W3C has been telling people about for years. The reference is here: http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2. PHP supports changing the argument separator to the W3C-suggested semi-colon through the arg_separator .ini directive. Unfortunately most user agents do not send form data in this semi-colon separated format. A more portable way around this is to use &amp; instead of & as the separator. You don't need to change PHP's arg_separator for this. Leave it as &, but simply encode your URLs using htmlentities() or htmlspecialchars().

Пример 2. urlencode() and htmlentities() example

<?php
$query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar);
echo '<a href="mycgi?' . htmlentities($query_string) . '">';
?>

See also urldecode(),
htmlentities(),
rawurldecode() and
rawurlencode().

Пред. | Начало | След.
urldecode | Уровень выше | Variable Handling Functions


Variable Handling Functions

Руководство по PHP
Пред. След.

CLIV. Variable Handling Functions

Введение

For information on how variables behave, see the Variables entry in the Language Reference section of the manual.

Требования

Эти функции всегда доступны.

Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Variables Configuration Options

Name | Default | Changeable | Changelog
unserialize_callback_func | NULL | PHP_INI_ALL | Available since PHP 4.2.0.
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

unserialize_callback_func string

The unserialize() callback function will called (with the undefined class' name as parameter), if the unserializer finds an undefined class which should be instanciated. A warning appears if the specified function is not defined, or if the function doesn't include/implement the missing class. So only set this entry, if you really want to implement such a callback-function.

See also unserialize().

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Содержание
debug_zval_dump -- Dumps a string representation of an internal zend value to output
doubleval -- Alias of floatval()
empty -- Determine whether a variable is empty
floatval -- Get float value of a variable
get_defined_vars -- Returns an array of all defined variables
get_resource_type -- Returns the resource type
gettype -- Get the type of a variable
import_request_variables -- Import GET/POST/Cookie variables into the global scope
intval -- Get the integer value of a variable
is_array -- Finds whether a variable is an array
is_bool -- Finds out whether a variable is a boolean
is_callable -- Verify that the contents of a variable can be called as a function
is_double -- Alias of is_float()
is_float -- Finds whether a variable is a float
is_int -- Find whether a variable is an integer
is_integer -- Alias of is_int()
is_long -- Alias of is_int()
is_null -- Finds whether a variable is NULL
is_numeric -- Finds whether a variable is a number or a numeric string
is_object -- Finds whether a variable is an object
is_real -- Alias of is_float()
is_resource -- Finds whether a variable is a resource
is_scalar -- Finds whether a variable is a scalar
is_string -- Finds whether a variable is a string
isset -- Determine whether a variable is set
print_r -- Prints human-readable information about a variable
serialize -- Generates a storable representation of a value
settype -- Set the type of a variable
strval -- Get string value of a variable
unserialize -- Creates a PHP value from a stored representation
unset -- Unset a given variable
var_dump -- Dumps information about a variable
var_export -- Outputs or returns a parsable string representation of a variable

Пред. | Начало | След.
urlencode | Уровень выше | debug_zval_dump


debug_zval_dump

(PHP 4 >= 4.2.0, PHP 5)

debug_zval_dump -- Dumps a string representation of an internal zend value to output

Описание

void debug_zval_dump ( mixed variable )

Dumps a string representation of an internal zend value to output.

Список параметров

variable

The variable being evaluated.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример 1. debug_zval_dump() example

<?php
$var1 = 'Hello World';
$var2 = '';

$var2 =& $var1;

debug_zval_dump(&$var1);
?>

Результат выполнения данного примера:

string(11) "Hello World" refcount(3)

Beware the refcount: The refcount value returned by this function is non-obvious in certain circumstances. For example, a developer might expect the above example to indicate a refcount of 2. The third reference is created when actually calling debug_zval_dump().

This behavior is further compounded when a variable is not passed to debug_zval_dump() by reference. To illustrate, consider a slightly modified version of the above example:

Пример 2.

<?php
$var1 = 'Hello World';
$var2 = '';

$var2 =& $var1;

debug_zval_dump($var1); // not passed by reference, this time
?>

Результат выполнения данного примера:

string(11) "Hello World" refcount(1)

Why refcount(1)? Because a copy of $var1 is being made, when the function is called.

This function becomes even more confusing when a variable with a refcount of 1 is passed (by copy/value):

Пример 3.

<?php
$var1 = 'Hello World';

debug_zval_dump($var1);
?>

Результат выполнения данного примера:

string(11) "Hello World" refcount(2)

A refcount of 2, here, is extremely non-obvious. Especially considering the above examples. So what's happening?

When a variable has a single reference (as did $var1 before it was used as an argument to debug_zval_dump()), PHP's engine optimizes the manner in which it is passed to a function. Internally, PHP treats $var1 like a reference (in that the refcount is increased for the scope of this function), with the caveat that if the passed reference happens to be written to, a copy is made, but only at the moment of writing. This is known as "copy on write."

So, if debug_zval_dump() happened to write to its sole parameter (and it doesn't), then a copy would be made. Until then, the parameter remains a reference, causing the refcount to be incremented to 2 for the scope of the function call.

Смотрите также

var_dump()
debug_backtrace()
References Explained
Reference Counting and Aliasing (by Andi Gutmans)

Пред. | Начало | След.
Variable Handling Functions | Уровень выше | doubleval


doubleval

(PHP 3, PHP 4, PHP 5)

doubleval -- Alias of floatval()

Описание

This function is an alias of: floatval().

Список изменений

Версия | Описание
4.2.0 | doubleval() became an alias of floatval(). Before this time, only doubleval() existed.

Пред. | Начало | След.
debug_zval_dump | Уровень выше | empty


empty

(PHP 3, PHP 4, PHP 5)

empty -- Determine whether a variable is empty

Описание

bool empty ( mixed var )

Determine whether a variable is considered to be empty.

Список параметров

var

Variable to be checked

Замечание: empty() only checks variables as anything else will result in a parse error. In other words, the following will not work: empty(trim($name)).

empty() is the opposite of (boolean) var, except that no warning is generated when the variable is not set.

Возвращаемые значения

Returns FALSE if var has a non-empty and non-zero value.

The following things are considered to be empty:

"" (an empty string)
0 (0 as an integer)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
var $var; (a variable declared, but without a value in a class)

Список изменений

Версия | Описание
PHP 5 | As of PHP 5, objects with no properties are no longer considered empty.
PHP 4 | As of PHP 4, The string value "0" is considered empty.

Примеры

Пример 1. A simple empty() / isset() comparison.

<?php
$var = 0;

// Evaluates to true because $var is empty
if (empty($var)) {
    echo '$var is either 0, empty, or not set at all';
}

// Evaluates as true because $var is set
if (isset($var)) {
    echo '$var is set even though it is empty';
}
?>

Примечания

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций

Смотрите также

isset()
unset()
array_key_exists()
count()
strlen()
The type comparison tables

Пред. | Начало | След.
doubleval | Уровень выше | floatval


floatval

(PHP 4 >= 4.2.0, PHP 5)

floatval -- Get float value of a variable

Описание

float floatval ( mixed var )

Gets the float value of var.

Список параметров

var

May be any scalar type. You cannot use floatval() on arrays or objects.

Возвращаемые значения

The float value of the given variable.

Примеры

Пример 1. floatval() Example

<?php
$var = '122.34343The';
$float_value_of_var = floatval($var);
echo $float_value_of_var; // 122.34343
?>

Смотрите также

intval()
strval()
settype()
Type juggling

Пред. | Начало | След.
empty | Уровень выше | get_defined_vars


get_defined_vars

(PHP 4 >= 4.0.4, PHP 5)

get_defined_vars -- Returns an array of all defined variables

Описание

array get_defined_vars ( void )

This function returns a multidimensional array containing a list of all defined variables, be them environment, server or user-defined variables, within the scope that get_defined_vars() is called.

Возвращаемые значения

A multidimensional array with all the variables.

Примеры

Пример 1. get_defined_vars() Example

<?php
$b = array(1, 1, 2, 3, 5, 8);

$arr = get_defined_vars();

// print $b
print_r($arr["b"]);

/* print path to the PHP interpreter (if used as a CGI)
 * e.g. /usr/local/bin/php */
echo $arr["_"];

// print the command-line parameters if any
print_r($arr["argv"]);

// print all the server vars
print_r($arr["_SERVER"]);

// print all the available keys for the arrays of variables
print_r(array_keys(get_defined_vars()));
?>

Список изменений

Версия | Описание
5.0.0 | The $GLOBALS variable is included in the results of the array returned.

Смотрите также

isset()
get_defined_functions()
get_defined_constants()

Пред. | Начало | След.
floatval | Уровень выше | get_resource_type


get_resource_type

(PHP 4 >= 4.0.2, PHP 5)

get_resource_type -- Returns the resource type

Описание

string get_resource_type ( resource handle )

This function gets the type of the given resource.

Список параметров

handle

The evaluated resource handle.

Возвращаемые значения

If the given handle is a resource, this function will return a string representing its type. If the type is not identified by this function, the return value will be the string Unknown.

This function will return FALSE and generate an error if handle is not a resource.

Примеры

Пример 1. get_resource_type() example

<?php
// prints: mysql link
$c = mysql_connect();
echo get_resource_type($c) . "\n";

// prints: file
$fp = fopen("foo", "w");
echo get_resource_type($fp) . "\n";

// prints: domxml document
$doc = new_xmldoc("1.0");
echo get_resource_type($doc->doc) . "\n";
?>

Пред. | Начало | След.
get_defined_vars | Уровень выше | gettype


gettype

(PHP 3, PHP 4, PHP 5)

gettype -- Get the type of a variable

Description

string gettype ( mixed var )

Returns the type of the PHP variable var.

Внимание

Never use gettype() to test for a certain type, since the returned string may be subject to change in a future version. In addition, it is slow too, as it involves string comparison.

Instead, use the is_* functions.

Possibles values for the returned string are:

  • "boolean" (since PHP 4)

  • "integer"

  • "double" (for historical reasons "double" is returned in case of a float, and not simply "float")

  • "string"

  • "array"

  • "object"

  • "resource" (since PHP 4)

  • "NULL" (since PHP 4)

  • "user function" (PHP 3 only, deprecated)

  • "unknown type"

For PHP 4, you should use function_exists() and method_exists() to replace the prior usage of gettype() on a function.

See also
settype(),
is_array(),
is_bool(),
is_float(),
is_int(),
is_null(),
is_numeric(),
is_object(),
is_resource(),
is_scalar(), and
is_string().

Пред. | Начало | След.
get_resource_type | Уровень выше | import_request_variables


import_request_variables

(PHP 4 >= 4.1.0, PHP 5)

import_request_variables -- Import GET/POST/Cookie variables into the global scope

Description

bool import_request_variables ( string types [, string prefix] )

Imports GET/POST/Cookie variables into the global scope. It is useful if you disabled register_globals, but would like to see some variables in the global scope.

Using the types parameter, you can specify which request variables to import. You can use 'G', 'P' and 'C' characters respectively for GET, POST and Cookie. These characters are not case sensitive, so you can also use any combination of 'g', 'p' and 'c'. POST includes the POST uploaded file information. Note that the order of the letters matters, as when using "gp", the POST variables will overwrite GET variables with the same name. Any other letters than GPC are discarded.

The prefix parameter is used as a variable name prefix, prepended before all variable's name imported into the global scope. So if you have a GET value named "userid", and provide a prefix "pref_", then you'll get a global variable named $pref_userid.

If you're interested in importing other variables into the global scope, such as SERVER, consider using extract().

Замечание: Although the prefix parameter is optional, you will get an E_NOTICE level error if you specify no prefix, or specify an empty string as a prefix. This is a possible security hazard. Notice level errors are not displayed using the default error reporting level.

<?php
// This will import GET and POST vars
// with an "rvar_" prefix
import_request_variables("gP", "rvar_");

echo $rvar_foo;
?>

See also $_REQUEST, register_globals, Predefined Variables, and extract().

Пред. | Начало | След.
gettype | Уровень выше | intval


intval

(PHP 3, PHP 4, PHP 5)

intval -- Get the integer value of a variable

Описание

int intval ( mixed var [, int base] )

Returns the integer value of var, using the specified base for the conversion (the default is base 10).

Список параметров

var

The scalar value being converted to an integer

base

The base for the conversion (default is base 10)

Возвращаемые значения

The integer value of var on success, or 0 on failure. Empty arrays and objects return 0, non-empty arrays and objects return 1.

The maximum value depends on the system. 32 bit systems have a maximum signed integer range of -2147483648 to 2147483647. So for example on such a system, intval('1000000000000') will return 2147483647. The maximum signed integer value for 64 bit systems is 9223372036854775807.

Strings will most likely return 0 although this depends on the leftmost characters of the string. The common rules of integer casting apply.

Примеры

Пример 1. intval() examples

The following examples are based on a 32 bit system.

<?php
echo intval(42);                      // 42
echo intval(4.2);                     // 4
echo intval('42');                    // 42
echo intval('+42');                   // 42
echo intval('-42');                   // -42
echo intval(042);                     // 34
echo intval('042');                   // 42
echo intval(1e10);                    // 1410065408
echo intval('1e10');                  // 1
echo intval(0x1A);                    // 26
echo intval(42000000);                // 42000000
echo intval(420000000000000000000);   // 0
echo intval('420000000000000000000'); // 2147483647
echo intval(42, 8);                   // 42
echo intval('42', 8);                 // 34
?>

Примечания

Замечание: The base parameter has no effect unless the var parameter is a string.

Смотрите также

floatval()
strval()
settype()
is_numeric()
Type juggling
BCMath Arbitrary Precision Mathematics Functions

Пред. | Начало | След.
import_request_variables | Уровень выше | is_array


is_array

(PHP 3, PHP 4, PHP 5)

is_array -- Finds whether a variable is an array

Описание

bool is_array ( mixed var )

Finds whether the given variable is an array.

Список параметров

var

The variable being evaluated.

Возвращаемые значения

Returns TRUE if var is an array, FALSE otherwise.

Примеры

Пример 1. Check that variable is an array

<?php
$yes = array('this', 'is', 'an array');

echo is_array($yes) ? 'Array' : 'not an Array';
echo "\n";

$no = 'this is a string';

echo is_array($no) ? 'Array' : 'not an Array';
?>

Результат выполнения данного примера:

Array
not an Array

Смотрите также

is_float()
is_int()
is_string()
is_object()

Пред. | Начало | След.
intval | Уровень выше | is_bool


is_bool

(PHP 4, PHP 5)

is_bool -- Finds out whether a variable is a boolean

Описание

bool is_bool ( mixed var )

Finds whether the given variable is a boolean.

Список параметров

var

The variable being evaluated.

Возвращаемые значения

Returns TRUE if var is a boolean, FALSE otherwise.

Примеры

Пример 1. is_bool() examples

<?php
$a = false;
$b = 0;

// Since $a is a boolean, this is true
if (is_bool($a)) {
    echo "Yes, this is a boolean";
}

// Since $b is not a boolean, this is not true
if (is_bool($b)) {
    echo "Yes, this is a boolean";
}
?>

Смотрите также

is_float()
is_int()
is_string()
is_object()
is_array()

Пред. | Начало | След.
is_array | Уровень выше | is_callable


is_callable

(PHP 4 >= 4.0.6, PHP 5)

is_callable -- Verify that the contents of a variable can be called as a function

Description

bool is_callable ( mixed var [, bool syntax_only [, string &callable_name]] )

Verify that the contents of a variable can be called as a function. This can check that a simple variable contains the name of a valid function, or that an array contains a properly encoded object and function name.

The var parameter can be either the name of a function stored in a string variable, or an object and the name of a method within the object, like this:
array($SomeObject, 'MethodName')

If the syntax_only argument is TRUE the function only verifies that var might be a function or method. It will only reject simple variables that are not strings, or an array that does not have a valid structure to be used as a callback. The valid ones are supposed to have only 2 entries, the first of which is an object or a string, and the second a string.

The callable_name argument receives the "callable name". In the example below it's "someClass:someMethod". Note, however, that despite the implication that someClass::SomeMethod() is a callable static method, this is not the case.

<?php
//  How to check a variable to see if it can be called
//  as a function.

//
//  Simple variable containing a function
//

function someFunction()
{
}

$functionVariable = 'someFunction';

var_dump(is_callable($functionVariable, false, $callable_name));  // bool(true)

echo $callable_name, "\n";  // someFunction

//
//  Array containing a method
//

class someClass {

  function someMethod()
  {
  }

}

$anObject = new someClass();

$methodVariable = array($anObject, 'someMethod');

var_dump(is_callable($methodVariable, true, $callable_name));  //  bool(true)

echo $callable_name, "\n";  //  someClass:someMethod

?>

See also function_exists() and method_exists().

Пред. | Начало | След.
is_bool | Уровень выше | is_double


is_double

(PHP 3, PHP 4, PHP 5)

is_double -- Alias of is_float()

Описание

This function is an alias of: is_float().

Пред. | Начало | След.
is_callable | Уровень выше | is_float


is_float

(PHP 3, PHP 4, PHP 5)

is_float -- Finds whether a variable is a float

Описание

bool is_float ( mixed var )

Finds whether the given variable is a float.

Замечание: To test if a variable is a number or a numeric string (such as form input, which is always a string), you must use is_numeric().

Список параметров

var

The variable being evaluated.

Возвращаемые значения

Returns TRUE if var is a float, FALSE otherwise.

Смотрите также

is_bool()
is_int()
is_numeric()
is_string()
is_array()
is_object()

Пред. | Начало | След.
is_double | Уровень выше | is_int


is_int

(PHP 3, PHP 4, PHP 5)

is_int -- Find whether a variable is an integer

Описание

bool is_int ( mixed var )

Finds whether the given variable is an integer.

Замечание: To test if a variable is a number or a numeric string (such as form input, which is always a string), you must use is_numeric().

Список параметров

var

The variable being evaluated.

Возвращаемые значения

Returns TRUE if var is an integer, FALSE otherwise.

Смотрите также

is_bool()
is_float()
is_numeric()
is_string()
is_array()
is_object()

Пред. | Начало | След.
is_float | Уровень выше | is_integer


is_integer

(PHP 3, PHP 4, PHP 5)

is_integer -- Alias of is_int()

Описание

This function is an alias of: is_int().

Пред. | Начало | След.
is_int | Уровень выше | is_long


is_long

(PHP 3, PHP 4, PHP 5)

is_long -- Alias of is_int()

Описание

This function is an alias of: is_int().

Пред. | Начало | След.
is_integer | Уровень выше | is_null


is_null

(PHP 4 >= 4.0.4, PHP 5)

is_null -- Finds whether a variable is NULL

Описание

bool is_null ( mixed var )

Finds whether the given variable is NULL.

Список параметров

var

The variable being evaluated.

Возвращаемые значения

Returns TRUE if var is null, FALSE otherwise.

Смотрите также

The NULL type
is_bool()
is_numeric()
is_float()
is_int()
is_string()
is_object()
is_array()

Пред. | Начало | След.
is_long | Уровень выше | is_numeric


is_numeric

(PHP 4, PHP 5)

is_numeric -- Finds whether a variable is a number or a numeric string

Описание

bool is_numeric ( mixed var )

Finds whether the given variable is numeric. Numeric strings consist of optional sign, any number of digits, optional decimal part and optional exponential part. Thus +0123.45e6 is a valid numeric value. Hexadecimal notation (0xFF) is allowed too but only without sign, decimal and exponential part.

Список параметров

var

The variable being evaluated.

Возвращаемые значения

Returns TRUE if var is a number or a numeric string, FALSE otherwise.

Смотрите также

ctype_digit()
is_bool()
is_null()
is_float()
is_int()
is_string()
is_object()
is_array()

Пред. | Начало | След.
is_null | Уровень выше | is_object


is_object

(PHP 3, PHP 4, PHP 5)

is_object -- Finds whether a variable is an object

Описание

bool is_object ( mixed var )

Finds whether the given variable is an object.

Список параметров

var

The variable being evaluated.

Возвращаемые значения

Returns TRUE if var is an object, FALSE otherwise.

Смотрите также

is_bool()
is_int()
is_float()
is_string()
is_array()

Пред. | Начало | След.
is_numeric | Уровень выше | is_real


is_real

(PHP 3, PHP 4, PHP 5)

is_real -- Alias of is_float()

Описание

This function is an alias of: is_float().

Пред. | Начало | След.
is_object | Уровень выше | is_resource


is_resource

(PHP 4, PHP 5)

is_resource -- Finds whether a variable is a resource

Описание

bool is_resource ( mixed var )

Finds whether the given variable is a resource.

Список параметров

var

The variable being evaluated.

Возвращаемые значения

Returns TRUE if var is a resource, FALSE otherwise.

Примеры

Пример 1. is_resource() example

<?php

$db_link = @mysql_connect('localhost', 'mysql_user', 'mysql_pass');
if (!is_resource($db_link)) {
    die('Can\'t connect : ' . mysql_error());
}

?>

Смотрите также

The resource-type documentation
get_resource_type()

Пред. | Начало | След.
is_real | Уровень выше | is_scalar


is_scalar

(PHP 4 >= 4.0.5, PHP 5)

is_scalar -- Finds whether a variable is a scalar

Описание

bool is_scalar ( mixed var )

Finds whether the given variable is a scalar.

Scalar variables are those containing an integer, float, string or boolean. Types array, object and resource are not scalar.

Замечание: is_scalar() does not consider resource type values to be scalar as resources are abstract datatypes which are currently based on integers. This implementation detail should not be relied upon, as it may change.

Список параметров

var

The variable being evaluated.

Возвращаемые значения

Returns TRUE if var is a scalar FALSE otherwise.

Примеры

Пример 1. is_scalar() example

<?php
function show_var($var)
{
    if (is_scalar($var)) {
        echo $var;
    } else {
        var_dump($var);
    }
}
$pi = 3.1416;
$proteins = array("hemoglobin", "cytochrome c oxidase", "ferredoxin");

show_var($pi);
show_var($proteins)

?>

Результат выполнения данного примера:

3.1416
array(3) {
  [0]=>
  string(10) "hemoglobin"
  [1]=>
  string(20) "cytochrome c oxidase"
  [2]=>
  string(10) "ferredoxin"
}

Смотрите также

is_float()
is_int()
is_numeric()
is_real()
is_string()
is_bool()
is_object()
is_array()

Пред. | Начало | След.
is_resource | Уровень выше | is_string


is_string

(PHP 3, PHP 4, PHP 5)

is_string -- Finds whether a variable is a string

Описание

bool is_string ( mixed var )

Finds whether the given variable is a string.

Список параметров

var

The variable being evaluated.

Возвращаемые значения

Returns TRUE if var is a string, FALSE otherwise.

Смотрите также

is_float()
is_int()
is_bool()
is_object()
is_array()

Пред. | Начало | След.
is_scalar | Уровень выше | isset


isset

(PHP 3, PHP 4, PHP 5)

isset -- Determine whether a variable is set

Description

bool isset ( mixed var [, mixed var [, ...]] )

Returns TRUE if var exists; FALSE otherwise.

If a variable has been unset with unset(), it will no longer be set. isset() will return FALSE if testing a variable that has been set to NULL. Also note that a NULL byte ("\0") is not equivalent to the PHP NULL constant.

Warning: isset() only works with variables as passing anything else will result in a parse error. For checking if constants are set use the defined() function.

<?php

$var = '';

// This will evaluate to TRUE so the text will be printed.
if (isset($var)) {
    echo "This var is set so I will print.";
}

// In the next examples we'll use var_dump to output
// the return value of isset().

$a = "test";
$b = "anothertest";

var_dump(isset($a));      // TRUE
var_dump(isset($a, $b)); // TRUE

unset ($a);

var_dump(isset($a));     // FALSE
var_dump(isset($a, $b)); // FALSE

$foo = NULL;
var_dump(isset($foo));   // FALSE

?>

This also work for elements in arrays:

<?php

$a = array ('test' => 1, 'hello' => NULL);

var_dump(isset($a['test']));            // TRUE
var_dump(isset($a['foo']));             // FALSE
var_dump(isset($a['hello']));           // FALSE

// The key 'hello' equals NULL so is considered unset
// If you want to check for NULL key values then try:
var_dump(array_key_exists('hello', $a)); // TRUE

?>

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций

See also empty(), unset(), defined(), the type comparison tables, array_key_exists(), and the error control @ operator.

Пред. | Начало | След.
is_string | Уровень выше | print_r


print_r

(PHP 4, PHP 5)

print_r -- Prints human-readable information about a variable

Description

bool print_r ( mixed expression [, bool return] )

Замечание: The return parameter was added in PHP 4.3.0

print_r() displays information about a variable in a way that's readable by humans. If given a string, integer or float, the value itself will be printed. If given an array, values will be presented in a format that shows keys and elements. Similar notation is used for objects. print_r() and var_export() will also show protected and private properties of objects with PHP 5, on the contrary to var_dump().

Remember that print_r() will move the array pointer to the end. Use reset() to bring it back to beginning.

<pre>
<?php
    $a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));
    print_r ($a);
?>
</pre>

Результат выполнения данного примера:

<pre>
Array
(
    [a] => apple
    [b] => banana
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)
</pre>

If you would like to capture the output of print_r(), use the return parameter. If this parameter is set to TRUE, print_r() will return its output, instead of printing it (which it does by default).

Пример 1. return parameter example

<?php
    $b = array ('m' => 'monkey', 'foo' => 'bar', 'x' => array ('x', 'y', 'z'));
    $results = print_r($b, true); //$results now contains output from print_r
?>

Замечание: If you need to capture the output of print_r() with a version of PHP prior to 4.3.0, use the output-control functions.

Замечание: Prior to PHP 4.0.4, print_r() will continue forever if given an array or object that contains a direct or indirect reference to itself. An example is print_r($GLOBALS) because $GLOBALS is itself a global variable that contains a reference to itself.

See also ob_start(),
var_dump() and
var_export().

Пред. | Начало | След.
isset | Уровень выше | serialize


serialize

(PHP 3 >= 3.0.5, PHP 4, PHP 5)

serialize -- Generates a storable representation of a value

Description

string serialize ( mixed value )

serialize() returns a string containing a byte-stream representation of value that can be stored anywhere.

This is useful for storing or passing PHP values around without losing their type and structure.

To make the serialized string into a PHP value again, use unserialize(). serialize() handles all types, except the resource-type. You can even serialize() arrays that contain references to itself. References inside the array/object you are serialize()ing will also be stored.

When serializing objects, PHP will attempt to call the member function __sleep() prior to serialization. This is to allow the object to do any last minute clean-up, etc. prior to being serialized. Likewise, when the object is restored using unserialize() the __wakeup() member function is called.

Замечание: This didn't work correctly until 4.0.7.

Замечание: In PHP 3, object properties will be serialized, but methods are lost. That limitation was removed in PHP 4 as both properties and methods are now restored. Please see the Serializing Objects section of Classes and Objects for more information.

It is not possible to serialize PHP built-in objects.

Пример 1. serialize() example

<?php
// $session_data contains a multi-dimensional array with session
// information for the current user.  We use serialize() to store
// it in a database at the end of the request.

$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn,
      "UPDATE sessions SET data = ? WHERE id = ?");
$sqldata = array (serialize($session_data), $PHP_AUTH_USER);
if (!odbc_execute($stmt, &$sqldata)) {
    $stmt = odbc_prepare($conn,
     "INSERT INTO sessions (id, data) VALUES(?, ?)");
    if (!odbc_execute($stmt, &$sqldata)) {
        /* Something went wrong.. */
    }
}
?>

See Also: unserialize().

Пред. | Начало | След.
print_r | Уровень выше | settype


settype

(PHP 3, PHP 4, PHP 5)

settype -- Set the type of a variable

Description

bool settype ( mixed &var, string type )

Set the type of variable var to type.

Possibles values of type are:

  • "boolean" (or, since PHP 4.2.0, "bool")

  • "integer" (or, since PHP 4.2.0, "int")

  • "float" (only possible since PHP 4.2.0, for older versions use the deprecated variant "double")

  • "string"

  • "array"

  • "object"

  • "null" (since PHP 4.2.0)

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. settype() example

<?php
$foo = "5bar"; // string
$bar = true;   // boolean

settype($foo, "integer"); // $foo is now 5   (integer)
settype($bar, "string");  // $bar is now "1" (string)
?>

See also gettype(), type-casting and type-juggling.

Пред. | Начало | След.
serialize | Уровень выше | strval


strval

(PHP 3, PHP 4, PHP 5)

strval -- Get string value of a variable

Description

string strval ( mixed var )

Returns the string value of var. See the documentation on string for more information on converting to string.

var may be any scalar type. You cannot use strval() on arrays or objects.

See also floatval(), intval(), settype() and Type juggling.

Пред. | Начало | След.
settype | Уровень выше | unserialize


unserialize

(PHP 3 >= 3.0.5, PHP 4, PHP 5)

unserialize -- Creates a PHP value from a stored representation

Description

mixed unserialize ( string str )

unserialize() takes a single serialized variable (see serialize()) and converts it back into a PHP value. The converted value is returned, and can be a boolean, integer, float, string, array or object. In case the passed string is not unserializeable, FALSE is returned and E_NOTICE is issued.

Внимание

FALSE is returned both in the case of an error and if unserializing the serialized FALSE value. This special case can be catched by comparing str with serialize(false) or by catching the issued E_NOTICE.

unserialize_callback_func directive: It's possible to set a callback-function which will be called, if an undefined class should be instantiated during unserializing. (to prevent getting an incomplete object "__PHP_Incomplete_Class".) Use your php.ini, ini_set() or .htaccess to define 'unserialize_callback_func'. Everytime an undefined class should be instantiated, it'll be called. To disable this feature just empty this setting. Also note that the directive unserialize_callback_func directive became available in PHP 4.2.0.

If the variable being unserialized is an object, after successfully reconstructing the object PHP will automatically attempt to call the __wakeup() member function (if it exists).

Пример 1. unserialize_callback_func example

<?php
$serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}';

// unserialize_callback_func directive available as of PHP 4.2.0
ini_set('unserialize_callback_func', 'mycallback'); // set your callback_function

function mycallback($classname)
{
    // just include a file containing your classdefinition
    // you get $classname to figure out which classdefinition is required
}
?>

Замечание: In PHP 3, methods are not preserved when unserializing a serialized object. That limitation was removed in PHP 4 as both properties and methods are now restored. Please see the Serializing Objects section of Classes and Objects or more information.

Пример 2. unserialize() example

<?php
// Here, we use unserialize() to load session data to the
// $session_data array from the string selected from a database.
// This example complements the one described with serialize().

$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn, "SELECT data FROM sessions WHERE id = ?");
$sqldata = array ($PHP_AUTH_USER);
if (!odbc_execute($stmt, &$sqldata) || !odbc_fetch_into($stmt, &$tmp)) {
    // if the execute or fetch fails, initialize to empty array
    $session_data = array();
} else {
    // we should now have the serialized data in $tmp[0].
    $session_data = unserialize($tmp[0]);
    if (!is_array($session_data)) {
        // something went wrong, initialize to empty array
        $session_data = array();
    }
}
?>

See also serialize().

Пред. | Начало | След.
strval | Уровень выше | unset


unset

(PHP 3, PHP 4, PHP 5)

unset -- Unset a given variable

Description

void unset ( mixed var [, mixed var [, mixed ...]] )

unset() destroys the specified variables. Note that in PHP 3, unset() will always return TRUE (actually, the integer value 1). In PHP 4, however, unset() is no longer a true function: it is now a statement. As such no value is returned, and attempting to take the value of unset() results in a parse error.

Пример 1. unset() example

<?php
// destroy a single variable
unset($foo);

// destroy a single element of an array
unset($bar['quux']);

// destroy more than one variable
unset($foo1, $foo2, $foo3);
?>

The behavior of unset() inside of a function can vary depending on what type of variable you are attempting to destroy.

If a globalized variable is unset() inside of a function, only the local variable is destroyed. The variable in the calling environment will retain the same value as before unset() was called.

<?php
function destroy_foo()
{
    global $foo;
    unset($foo);
}

$foo = 'bar';
destroy_foo();
echo $foo;
?>

Результат выполнения данного примера:

bar

If you would like to unset() a global variable inside of a function, you can use the $GLOBALS array to do so:

<?php
function foo()
{
    unset($GLOBALS['bar']);
}

$bar = "something";
foo();
?>

If a variable that is PASSED BY REFERENCE is unset() inside of a function, only the local variable is destroyed. The variable in the calling environment will retain the same value as before unset() was called.

<?php
function foo(&$bar)
{
    unset($bar);
    $bar = "blah";
}

$bar = 'something';
echo "$bar\n";

foo($bar);
echo "$bar\n";
?>

Результат выполнения данного примера:

something
something

If a static variable is unset() inside of a function, unset() destroys the variable only in the context of the rest of a function. Following calls will restore the previous value of a variable.

<?php
function foo()
{
    static $bar;
    $bar++;
    echo "Before unset: $bar, ";
    unset($bar);
    $bar = 23;
    echo "after unset: $bar\n";
}

foo();
foo();
foo();
?>

Результат выполнения данного примера:

Before unset: 1, after unset: 23
Before unset: 2, after unset: 23
Before unset: 3, after unset: 23

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций

See also isset(),
empty(), and
array_splice().

Пред. | Начало | След.
unserialize | Уровень выше | var_dump


var_dump

(PHP 3 >= 3.0.5, PHP 4, PHP 5)

var_dump -- Dumps information about a variable

Описание

void var_dump ( mixed expression [, mixed expression [, ...]] )

This function displays structured information about one or more expressions that includes its type and value. Arrays and objects are explored recursively with values indented to show structure.

In PHP 5 only public, private and protected properties of objects will be returned in the output.

Подсказка: Как и с любой другой функцией, осуществляющей вывод непосредственно в браузер, вы можете использовать функции контроля вывода, чтобы перехватывать выводимые этой функцией данные и сохранять их, например, в string.

Список параметров

expression

The variable you want to export.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример 1. var_dump() example

<?php
$a = array(1, 2, array("a", "b", "c"));
var_dump($a);
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  array(3) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "b"
    [2]=>
    string(1) "c"
  }
}
<?php

$b = 3.1;
$c = true;
var_dump($b, $c);

?>

Результат выполнения данного примера:

float(3.1)
bool(true)

Смотрите также

var_export()
print_r()

Пред. | Начало | След.
unset | Уровень выше | var_export


var_export

(PHP 4 >= 4.2.0, PHP 5)

var_export -- Outputs or returns a parsable string representation of a variable

Описание

mixed var_export ( mixed expression [, bool return] )

var_export() gets structured information about the given variable. It is similar to var_dump() with one exception: the returned representation is valid PHP code.

Список параметров

expression

The variable you want to export.

return

If used and set to TRUE, var_export() will return the variable representation instead of outputing it.

Возвращаемые значения

Returns the variable representation when the return parameter is used and evaluates to TRUE. Otherwise, this function will return NULL.

Список изменений

Версия | Описание
5.1.0 | Possibility to export classes and arrays containing classes using the __set_state magic method.

Примеры

Пример 1. var_export() Examples

<?php
$a = array (1, 2, array ("a", "b", "c"));
var_export($a);
?>

Результат выполнения данного примера:

array (
  0 => 1,
  1 => 2,
  2 =>
  array (
    0 => 'a',
    1 => 'b',
    2 => 'c',
  ),
)
<?php

$b = 3.1;
$v = var_export($b, true);
echo $v;

?>

Результат выполнения данного примера:

3.1

Пример 2. Exporting classes since PHP 5.1.0

<?php
class A { public $var; }
$a = new A;
$a->var = 5;
var_export($a);
?>

Результат выполнения данного примера:

A::__set_state(array(
   'var' => 5,
))

Примечания

Замечание: Variables of type resource couldn't be exported by this function.

Смотрите также

var_dump()
print_r()

Пред. | Начало | След.
var_dump | Уровень выше | Verisign Payflow Pro Functions


vpopmail Functions

Руководство по PHP
Пред. След.

CLVI. vpopmail Functions

Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

This extension has been moved from PHP as of PHP 4.3.0 and now vpopmail lives in PECL.

Установка

As of PHP 4, these functions are only available if PHP was configured with --with-vpopmail[=DIR].

Содержание
vpopmail_add_alias_domain_ex -- Add alias to an existing virtual domain
vpopmail_add_alias_domain -- Add an alias for a virtual domain
vpopmail_add_domain_ex -- Add a new virtual domain
vpopmail_add_domain -- Add a new virtual domain
vpopmail_add_user -- Add a new user to the specified virtual domain
vpopmail_alias_add -- Insert a virtual alias
vpopmail_alias_del_domain -- Deletes all virtual aliases of a domain
vpopmail_alias_del -- Deletes all virtual aliases of a user
vpopmail_alias_get_all -- Get all lines of an alias for a domain
vpopmail_alias_get -- Get all lines of an alias for a domain
vpopmail_auth_user -- Attempt to validate a username/domain/password
vpopmail_del_domain_ex -- Delete a virtual domain
vpopmail_del_domain -- Delete a virtual domain
vpopmail_del_user -- Delete a user from a virtual domain
vpopmail_error -- Get text message for last vpopmail error
vpopmail_passwd -- Change a virtual user's password
vpopmail_set_user_quota -- Sets a virtual user's quota

Пред. | Начало | След.
pfpro_version | Уровень выше | vpopmail_add_alias_domain_ex


vpopmail_add_alias_domain_ex

(4.0.5 - 4.2.3 only, PECL)

vpopmail_add_alias_domain_ex -- Add alias to an existing virtual domain

Description

bool vpopmail_add_alias_domain_ex ( string olddomain, string newdomain )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
vpopmail Functions | Уровень выше | vpopmail_add_alias_domain


vpopmail_add_alias_domain

(4.0.5 - 4.2.3 only, PECL)

vpopmail_add_alias_domain -- Add an alias for a virtual domain

Description

bool vpopmail_add_alias_domain ( string domain, string aliasdomain )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
vpopmail_add_alias_domain_ex | Уровень выше | vpopmail_add_domain_ex


vpopmail_add_domain_ex

(4.0.5 - 4.2.3 only, PECL)

vpopmail_add_domain_ex -- Add a new virtual domain

Description

bool vpopmail_add_domain_ex ( string domain, string passwd [, string quota [, string bounce [, bool apop]]] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
vpopmail_add_alias_domain | Уровень выше | vpopmail_add_domain


vpopmail_add_domain

(4.0.5 - 4.2.3 only, PECL)

vpopmail_add_domain -- Add a new virtual domain

Description

bool vpopmail_add_domain ( string domain, string dir, int uid, int gid )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
vpopmail_add_domain_ex | Уровень выше | vpopmail_add_user


vpopmail_add_user

(4.0.5 - 4.2.3 only, PECL)

vpopmail_add_user -- Add a new user to the specified virtual domain

Description

bool vpopmail_add_user ( string user, string domain, string password [, string gecos [, bool apop]] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
vpopmail_add_domain | Уровень выше | vpopmail_alias_add


vpopmail_alias_add

(4.1.0 - 4.2.3 only, PECL)

vpopmail_alias_add -- Insert a virtual alias

Description

bool vpopmail_alias_add ( string user, string domain, string alias )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
vpopmail_add_user | Уровень выше | vpopmail_alias_del_domain


vpopmail_alias_del_domain

(4.1.0 - 4.2.3 only, PECL)

vpopmail_alias_del_domain -- Deletes all virtual aliases of a domain

Description

bool vpopmail_alias_del_domain ( string domain )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
vpopmail_alias_add | Уровень выше | vpopmail_alias_del


vpopmail_alias_del

(4.1.0 - 4.2.3 only, PECL)

vpopmail_alias_del -- Deletes all virtual aliases of a user

Description

bool vpopmail_alias_del ( string user, string domain )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
vpopmail_alias_del_domain | Уровень выше | vpopmail_alias_get_all


vpopmail_alias_get_all

(4.1.0 - 4.2.3 only, PECL)

vpopmail_alias_get_all -- Get all lines of an alias for a domain

Description

array vpopmail_alias_get_all ( string domain )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
vpopmail_alias_del | Уровень выше | vpopmail_alias_get


vpopmail_alias_get

(4.1.0 - 4.2.3 only, PECL)

vpopmail_alias_get -- Get all lines of an alias for a domain

Description

array vpopmail_alias_get ( string alias, string domain )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
vpopmail_alias_get_all | Уровень выше | vpopmail_auth_user


vpopmail_auth_user

(4.0.5 - 4.2.3 only, PECL)

vpopmail_auth_user -- Attempt to validate a username/domain/password

Description

bool vpopmail_auth_user ( string user, string domain, string password [, string apop] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
vpopmail_alias_get | Уровень выше | vpopmail_del_domain_ex


vpopmail_del_domain_ex

(4.0.5 - 4.2.3 only, PECL)

vpopmail_del_domain_ex -- Delete a virtual domain

Description

bool vpopmail_del_domain_ex ( string domain )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
vpopmail_auth_user | Уровень выше | vpopmail_del_domain


vpopmail_del_domain

(4.0.5 - 4.2.3 only, PECL)

vpopmail_del_domain -- Delete a virtual domain

Description

bool vpopmail_del_domain ( string domain )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
vpopmail_del_domain_ex | Уровень выше | vpopmail_del_user


vpopmail_del_user

(4.0.5 - 4.2.3 only, PECL)

vpopmail_del_user -- Delete a user from a virtual domain

Description

bool vpopmail_del_user ( string user, string domain )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
vpopmail_del_domain | Уровень выше | vpopmail_error


vpopmail_error

(4.0.5 - 4.2.3 only, PECL)

vpopmail_error -- Get text message for last vpopmail error

Description

string vpopmail_error ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
vpopmail_del_user | Уровень выше | vpopmail_passwd


vpopmail_passwd

(4.0.5 - 4.2.3 only, PECL)

vpopmail_passwd -- Change a virtual user's password

Description

bool vpopmail_passwd ( string user, string domain, string password [, bool apop] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
vpopmail_error | Уровень выше | vpopmail_set_user_quota


vpopmail_set_user_quota

(4.0.5 - 4.2.3 only, PECL)

vpopmail_set_user_quota -- Sets a virtual user's quota

Description

bool vpopmail_set_user_quota ( string user, string domain, string quota )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
vpopmail_passwd | Уровень выше | W32api Functions


W32api Functions

Руководство по PHP
Пред. След.

CLVII. W32api Functions

Введение

This extension is a generic extension API to DLLs. This was originally written to allow access to the Win32 API from PHP, although you can also access other functions exported via other DLLs.

Currently supported types are generic PHP types (strings, booleans, floats, integers and nulls) and types you define with w32api_deftype().

Замечание: This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 5.1.0.

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

Требования

This extension will only work on Windows systems.

Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

This extension defines one resource type, used for user defined types. The name of this resource is "dynaparm".

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

DC_MICROSOFT (integer)

DC_BORLAND (integer)

DC_CALL_CDECL (integer)

DC_CALL_STD (integer)

DC_RETVAL_MATH4 (integer)

DC_RETVAL_MATH8 (integer)

DC_CALL_STD_BO (integer)

DC_CALL_STD_MS (integer)

DC_CALL_STD_M8 (integer)

DC_FLAG_ARGPTR (integer)

Примеры

This example gets the amount of time the system has been running and displays it in a message box.

Пример 1. Get the uptime and display it in a message box

<?php
// Define constants needed, taken from
// Visual Studio/Tools/Winapi/WIN32API.txt
define("MB_OK", 0);

// Load the extension in
dl("php_w32api.dll");

// Register the GetTickCount function from kernel32.dll
w32api_register_function("kernel32.dll",
                         "GetTickCount",
                         "long");

// Register the MessageBoxA function from User32.dll
w32api_register_function("User32.dll",
                         "MessageBoxA",
                         "long");

// Get uptime information
$ticks = GetTickCount();

// Convert it to a nicely displayable text
$secs  = floor($ticks / 1000);
$mins  = floor($secs / 60);
$hours = floor($mins / 60);

$str = sprintf("You have been using your computer for:" .
                "\r\n %d Milliseconds, or \r\n %d Seconds" .
                "or \r\n %d mins or\r\n %d hours %d mins.",
                $ticks,
                $secs,
                $mins,
                $hours,
                $mins - ($hours*60));

// Display a message box with only an OK button and the uptime text
MessageBoxA(NULL,
            $str,
            "Uptime Information",
            MB_OK);
?>
Содержание
w32api_deftype -- Defines a type for use with other w32api_functions
w32api_init_dtype -- Creates an instance of the data type typename and fills it with the values passed
w32api_invoke_function -- Invokes function funcname with the arguments passed after the function name
w32api_register_function -- Registers function function_name from library with PHP
w32api_set_call_method -- Sets the calling method used

Пред. | Начало | След.
vpopmail_set_user_quota | Уровень выше | w32api_deftype


w32api_deftype

(4.2.0 - 4.2.3 only)

w32api_deftype -- Defines a type for use with other w32api_functions

Description

bool w32api_deftype ( string typename, string member1_type, string member1_name [, string ... [, string ...]] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

If you would like to define a type for a w32api call, you need to call w32api_deftype(). This function takes 2n+1 arguments, where n is the number of members the type has. The first argument is the name of the type. After that is the type of the member followed by the members name (in pairs). A member type can be a user defined type. All the type names are case sensitive. Built in type names should be provided in lowercase. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
W32api Functions | Уровень выше | w32api_init_dtype


w32api_init_dtype

(4.2.0 - 4.2.3 only)

w32api_init_dtype -- Creates an instance of the data type typename and fills it with the values passed

Description

resource w32api_init_dtype ( string typename, mixed value [, mixed ...] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

This function creates an instance of the data type named typename, filling in the values of the data type. The typename parameter is case sensitive. You should give the values in the same order as you defined the data type with w32api_deftype(). The type of the resource returned is dynaparm.

Пред. | Начало | След.
w32api_deftype | Уровень выше | w32api_invoke_function


w32api_invoke_function

(4.2.0 - 4.2.3 only)

w32api_invoke_function -- Invokes function funcname with the arguments passed after the function name

Description

mixed w32api_invoke_function ( string funcname, mixed argument [, mixed ...] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

w32api_invoke_function() tries to find the previously registered function, named funcname, passing the parameters you provided. The return type is the one you set when you registered the function, the value is the one returned by the function itself. Any of the arguments can be of any PHP type or w32api_deftype() defined type, as needed.

Пред. | Начало | След.
w32api_init_dtype | Уровень выше | w32api_register_function


w32api_register_function

(4.2.0 - 4.2.3 only)

w32api_register_function -- Registers function function_name from library with PHP

Description

bool w32api_register_function ( string library, string function_name, string return_type )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

This function tries to find the function_name function in libary, and tries to import it into PHP. The function will be registered with the given return_type. This type can be a generic PHP type, or a type defined with w32api_deftype(). All type names are case sensitive. Built in type names should be provided in lowercase. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
w32api_invoke_function | Уровень выше | w32api_set_call_method


w32api_set_call_method

(4.2.0 - 4.2.3 only)

w32api_set_call_method -- Sets the calling method used

Description

void w32api_set_call_method ( int method )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

This function sets the method call type. The parameter can be one of the constants DC_CALL_CDECL or DC_CALL_STD. The extension default is DC_CALL_STD.

Пред. | Начало | След.
w32api_register_function | Уровень выше | WDDX Functions


WDDX Functions

Руководство по PHP
Пред. След.

CLVIII. WDDX Functions

Введение

These functions are intended for work with WDDX.

Требования

In order to use WDDX, you will need to install the expat library (which comes with Apache 1.3.7 or higher).

Установка

After installing expat compile PHP with --enable-wddx.

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Примеры

All the functions that serialize variables use the first element of an array to determine whether the array is to be serialized into an array or structure. If the first element has string key, then it is serialized into a structure, otherwise, into an array.

Пример 1. Serializing a single value with WDDX

<?php
echo wddx_serialize_value("PHP to WDDX packet example", "PHP packet");
?>

This example will produce:

<wddxPacket version='1.0'><header comment='PHP packet'/><data>
<string>PHP to WDDX packet example</string></data></wddxPacket>

Пример 2. Using incremental packets with WDDX

<?php
$pi = 3.1415926;
$packet_id = wddx_packet_start("PHP");
wddx_add_vars($packet_id, "pi");

/* Suppose $cities came from database */
$cities = array("Austin", "Novato", "Seattle");
wddx_add_vars($packet_id, "cities");

$packet = wddx_packet_end($packet_id);
echo $packet;
?>

This example will produce:

<wddxPacket version='1.0'><header comment='PHP'/><data><struct>
<var name='pi'><number>3.1415926</number></var><var name='cities'>
<array length='3'><string>Austin</string><string>Novato</string>
<string>Seattle</string></array></var></struct></data></wddxPacket>

Замечание: If you want to serialize non-ASCII characters you have to convert your data to UTF-8 first (see utf8_encode() and iconv()).

Содержание
wddx_add_vars -- Add variables to a WDDX packet with the specified ID
wddx_deserialize -- Alias of wddx_unserialize()
wddx_packet_end -- Ends a WDDX packet with the specified ID
wddx_packet_start -- Starts a new WDDX packet with structure inside it
wddx_serialize_value -- Serialize a single value into a WDDX packet
wddx_serialize_vars -- Serialize variables into a WDDX packet
wddx_unserialize -- Unserializes a WDDX packet

Пред. | Начало | След.
w32api_set_call_method | Уровень выше | wddx_add_vars


wddx_add_vars

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

wddx_add_vars -- Add variables to a WDDX packet with the specified ID

Description

bool wddx_add_vars ( int packet_id, mixed name_var [, mixed ...] )

wddx_add_vars() is used to serialize passed variables and add the result to the packet specified by the packet_id. The variables to be serialized are specified in exactly the same way as wddx_serialize_vars().

Пред. | Начало | След.
WDDX Functions | Уровень выше | wddx_deserialize


wddx_deserialize

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

wddx_deserialize -- Alias of wddx_unserialize()

Описание

This function is an alias of: wddx_unserialize().

Пред. | Начало | След.
wddx_add_vars | Уровень выше | wddx_packet_end


wddx_packet_end

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

wddx_packet_end -- Ends a WDDX packet with the specified ID

Description

string wddx_packet_end ( resource packet_id )

wddx_packet_end() ends the WDDX packet specified by the packet_id and returns the string with the packet.

Пред. | Начало | След.
wddx_deserialize | Уровень выше | wddx_packet_start


wddx_packet_start

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

wddx_packet_start -- Starts a new WDDX packet with structure inside it

Description

resource wddx_packet_start ( [string comment] )

Use wddx_packet_start() to start a new WDDX packet for incremental addition of variables. It takes an optional comment string and returns a packet ID for use in later functions. It automatically creates a structure definition inside the packet to contain the variables.

Пред. | Начало | След.
wddx_packet_end | Уровень выше | wddx_serialize_value


wddx_serialize_value

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

wddx_serialize_value -- Serialize a single value into a WDDX packet

Description

string wddx_serialize_value ( mixed var [, string comment] )

wddx_serialize_value() is used to create a WDDX packet from a single given value. It takes the value contained in var, and an optional comment string that appears in the packet header, and returns the WDDX packet.

Пред. | Начало | След.
wddx_packet_start | Уровень выше | wddx_serialize_vars


wddx_serialize_vars

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

wddx_serialize_vars -- Serialize variables into a WDDX packet

Description

string wddx_serialize_vars ( mixed var_name [, mixed ...] )

wddx_serialize_vars() is used to create a WDDX packet with a structure that contains the serialized representation of the passed variables.

wddx_serialize_vars() takes a variable number of arguments, each of which can be either a string naming a variable or an array containing strings naming the variables or another array, etc.

Пример 1. wddx_serialize_vars() example

<?php
$a = 1;
$b = 5.5;
$c = array("blue", "orange", "violet");
$d = "colors";

$clvars = array("c", "d");
echo wddx_serialize_vars("a", "b", $clvars);
?>

The above example will produce:
<wddxPacket version='1.0'><header/><data><struct><var name='a'><number>1</number></var>
<var name='b'><number>5.5</number></var><var name='c'><array length='3'>
<string>blue</string><string>orange</string><string>violet</string></array></var>
<var name='d'><string>colors</string></var></struct></data></wddxPacket>

Пред. | Начало | След.
wddx_serialize_value | Уровень выше | wddx_unserialize


xattr Functions

Руководство по PHP
Пред. След.

CLX. xattr Functions

Введение

The xattr extension allows for the manipulation of extended attributes on a filesystem.

Требования

To use xattr, you will need libattr installed. It is available at http://oss.sgi.com/projects/xfs/.

Замечание: These functions only work on filesystems that support extended attributes, and have them enabled at mount time. Some common filesystems that support extended attributes are ext2, ext3, reiserfs, jfs, and xfs.

Установка

xattr is currently available through PECL http://pecl.php.net/package/xattr.

If PEAR is available on your *nix-like system you can use the pear installer to install the xattr extension, by the following command: pear -v install xattr.

You can always download the tar.gz package and install xattr by hand:

Пример 1. xattr install by hand

gunzip xattr-xxx.tgz
tar -xvf xattr-xxx.tar
cd xattr-xxx
phpize
./configure && make && make install

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

XATTR_ROOT (integer)

Set attribute in root (trusted) namespace. Requires root privileges.

XATTR_DONTFOLLOW (integer)

Do not follow the symbolic link but operate on symbolic link itself.

XATTR_CREATE (integer)

Function will fail if extended attribute already exists.

XATTR_REPLACE (integer)

Function will fail if extended attribute doesn't exist.

Содержание
xattr_get -- Get an extended attribute
xattr_list -- Get a list of extended attributes
xattr_remove -- Remove an extended attribute
xattr_set -- Set an extended attribute
xattr_supported -- Check if filesystem supports extended attributes

Пред. | Начало | След.
win32_stop_service | Уровень выше | xattr_get


xattr_get

(PECL)

xattr_get -- Get an extended attribute

Описание

string xattr_get ( string filename, string name [, int flags] )

This function gets the value of an extended attribute of a file.

Расширенные аттрибуты имеют два различных пространства имён: пользовательское и корневое (root). Пользовательское пространство имён доступно для всех пользователей, в то время как корневое - только для пользователей с root-привилегиями. По умолчанию xattr оперирует в пользовательском пространтсве имён, но вы можете изменить это поведение при помощи аргумента flags.

Список параметров

filename

The file from which we get the attribute.

name

The name of the attribute.

flags

Таблица 1. Supported xattr flags

XATTR_DONTFOLLOW | Do not follow the symbolic link but operate on symbolic link itself.
XATTR_ROOT | Set attribute in root (trusted) namespace. Requires root privileges.

Возвращаемые значения

Returns a string containing the value or FALSE if the attribute doesn't exist.

Примеры

Пример 1. Checks if system administrator has signed the file

<?php
$file = '/usr/local/sbin/some_binary';
$signature = xattr_get($file, 'Root signature', XATTR_ROOT);

/* ... check if $signature is valid ... */

?>

Смотрите также

xattr_list()
xattr_set()
xattr_remove()

Пред. | Начало | След.
xattr Functions | Уровень выше | xattr_list


xattr_list

(PECL)

xattr_list -- Get a list of extended attributes

Описание

array xattr_list ( string filename [, int flags] )

This functions gets a list of names of extended attributes of a file.

Расширенные аттрибуты имеют два различных пространства имён: пользовательское и корневое (root). Пользовательское пространство имён доступно для всех пользователей, в то время как корневое - только для пользователей с root-привилегиями. По умолчанию xattr оперирует в пользовательском пространтсве имён, но вы можете изменить это поведение при помощи аргумента flags.

Список параметров

filename

The path of the file.

flags

Таблица 1. Supported xattr flags

XATTR_DONTFOLLOW | Do not follow the symbolic link but operate on symbolic link itself.
XATTR_ROOT | Set attribute in root (trusted) namespace. Requires root privileges.

Возвращаемые значения

This function returns an array with names of extended attributes.

Примеры

Пример 1. Prints names of all extended attributes of file

<?php
$file = 'some_file';
$root_attributes = xattr_list($file, XATTR_ROOT);
$user_attributes = xattr_list($file);

echo "Root attributes: \n";
foreach ($root_attributes as $attr_name) {
    printf("%s\n", $attr_name);
}

echo "\n User attributes: \n";
foreach ($attributes as $attr_name) {
    printf("%s\n", $attr_name);
}

?>

Смотрите также

xattr_get()

Пред. | Начало | След.
xattr_get | Уровень выше | xattr_remove


xattr_remove

(PECL)

xattr_remove -- Remove an extended attribute

Описание

bool xattr_remove ( string filename, string name [, int flags] )

This function removes an extended attribute of a file.

Расширенные аттрибуты имеют два различных пространства имён: пользовательское и корневое (root). Пользовательское пространство имён доступно для всех пользователей, в то время как корневое - только для пользователей с root-привилегиями. По умолчанию xattr оперирует в пользовательском пространтсве имён, но вы можете изменить это поведение при помощи аргумента flags.

Список параметров

filename

The file from which we remove the attribute.

name

The name of the attribute to remove.

flags

Таблица 1. Supported xattr flags

XATTR_DONTFOLLOW | Do not follow the symbolic link but operate on symbolic link itself.
XATTR_ROOT | Set attribute in root (trusted) namespace. Requires root privileges.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Removes all extended attributes of a file

<?php
$file = 'some_file';
$attributes = xattr_list($file);

foreach ($attributes as $attr_name) {
    xattr_remove($file, $attr_name);
}
?>

Смотрите также

xattr_list()
xattr_set()
xattr_get()

Пред. | Начало | След.
xattr_list | Уровень выше | xattr_set


xattr_set

(PECL)

xattr_set -- Set an extended attribute

Описание

bool xattr_set ( string filename, string name, string value [, int flags] )

This function sets the value of an extended attribute of a file.

Расширенные аттрибуты имеют два различных пространства имён: пользовательское и корневое (root). Пользовательское пространство имён доступно для всех пользователей, в то время как корневое - только для пользователей с root-привилегиями. По умолчанию xattr оперирует в пользовательском пространтсве имён, но вы можете изменить это поведение при помощи аргумента flags.

Список параметров

filename

The file in which we set the attribute.

name

The name of the extended attribute. This attribute will be created if it doesn't exist or replaced otherwise. You can change this behaviour by using the flags parameter.

value

The value of the attribute.

flags

Таблица 1. Supported xattr flags

XATTR_CREATE | Function will fail if extended attribute already exists.
XATTR_REPLACE | Function will fail if extended attribute doesn't exist.
XATTR_DONTFOLLOW | Do not follow the symbolic link but operate on symbolic link itself.
XATTR_ROOT | Set attribute in root (trusted) namespace. Requires root privileges.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Sets extended attributes on .wav file

<?php
$file = 'my_favourite_song.wav';
xattr_set($file, 'Artist', 'Someone');
xattr_set($file, 'My ranking', 'Good');
xattr_set($file, 'Listen count', '34');

/* ... other code ... */

printf("You've played this song %d times", xattr_get($file, 'Listen count'));
?>

Смотрите также

xattr_get()
xattr_remove()

Пред. | Начало | След.
xattr_remove | Уровень выше | xattr_supported


xattr_supported

(PECL)

xattr_supported -- Check if filesystem supports extended attributes

Описание

bool xattr_supported ( string filename [, int flags] )

This functions checks if the filesystem holding the given file supports extended attributes. Read access to the file is required.

Список параметров

filename

The path of the tested file.

flags

Таблица 1. Supported xattr flags

XATTR_DONTFOLLOW Do not follow the symbolic link but operate on symbolic link itself.

Возвращаемые значения

This function returns TRUE if filesystem supports extended attributes, FALSE if it doesn't and NULL if it can't be determined (for example wrong path or lack of permissions to file).

Примеры

Пример 1. xattr_supported() example

The following code checks if we can use extended attributes.

<?php
$file = 'some_file';

if (xattr_supported($file)) {
    /* ... make use of some xattr_* functions ... */
}

?>

Смотрите также

xattr_get()
xattr_list()

Пред. | Начало | След.
xattr_set | Уровень выше | xdiff Functions


xdiff Functions

Руководство по PHP
Пред. След.

CLXI. xdiff Functions

Введение

xdiff extension creates and applies patches to both text and binary files.

Требования

To use xdiff, you will need libxdiff installed, available on the libxdiff homepage http://www.xmailserver.org/xdiff-lib.html.

Замечание: You'll need at least libxdiff 0.7 for these functions to be aware of memory_limit.

Установка

xdiff is currently available through PECL http://pecl.php.net/package/xdiff.

If PEAR is available on your *nix-like system you can use the pear installer to install the xdiff extension, by the following command: pear -v install xdiff.

You can always download the tar.gz package and install xdiff by hand:

Пример 1. xdiff install by hand

gunzip xdiff-xxx.tgz
tar -xvf xdiff-xxx.tar
cd xdiff-xxx
phpize
./configure && make && make install

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

XDIFF_PATCH_NORMAL (integer)

XDIFF_PATCH_REVERSE (integer)

Содержание
xdiff_file_diff_binary -- Make binary diff of two files
xdiff_file_diff -- Make unified diff of two files
xdiff_file_merge3 -- Merge 3 files into one
xdiff_file_patch_binary -- Patch a file with a binary diff
xdiff_file_patch -- Patch a file with an unified diff
xdiff_string_diff_binary -- Make binary diff of two strings
xdiff_string_diff -- Make unified diff of two strings
xdiff_string_merge3 -- Merge 3 strings into one
xdiff_string_patch_binary -- Patch a string with a binary diff
xdiff_string_patch -- Patch a string with an unified diff

Пред. | Начало | След.
xattr_supported | Уровень выше | xdiff_file_diff_binary


xdiff_file_diff_binary

(PECL)

xdiff_file_diff_binary -- Make binary diff of two files

Description

bool xdiff_file_diff_binary ( string file1, string file2, string dest )

xdiff_file_diff_binary() makes binary diff of files file1 and file2 and stores result in file dest. This function works with both text and binary files. Resulting file is in binary format.

Замечание: Both files will be loaded into memory so ensure that your memory_limit is set high enough.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. xdiff_file_diff_binary() example

The following code makes binary diff of two archives.

<?php
$old_version = 'my_script_1.0.tgz';
$new_version = 'my_script_1.1.tgz';

xdiff_file_diff_binary($old_version, $new_version, 'my_script.bdiff');
?>

See also xdiff_string_diff_binary().

Пред. | Начало | След.
xdiff Functions | Уровень выше | xdiff_file_diff


xdiff_file_diff

(PECL)

xdiff_file_diff -- Make unified diff of two files

Description

bool xdiff_file_diff ( string file1, string file2, string dest [, int context [, bool minimal]] )

xdiff_file_diff() makes unified diff of files file1 and file2 and stores result in file dest. context indicated how many lines of context you want to include in diff result. Set minimal to TRUE if you want to minimalize size of diff (can take a long time). Resulting file is human-readable.

Замечание: This function doesn't work well with binary files. To make diff of binary files use xdiff_file_diff_binary().

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. xdiff_file_diff() example

The following code makes unified diff of two php files.

<?php
$old_version = 'my_script.php';
$new_version = 'my_new_script.php';

xdiff_file_diff($old_version, $new_version, 'my_script.diff', 2);
?>

See also xdiff_string_diff().

Пред. | Начало | След.
xdiff_file_diff_binary | Уровень выше | xdiff_file_merge3


xdiff_file_merge3

(PECL)

xdiff_file_merge3 -- Merge 3 files into one

Description

mixed xdiff_file_merge3 ( string file1, string file2, string file3, string dest )

xdiff_file_merge3() merges files file1, file2 and file3 into one and stores result in file dest.

Returns TRUE if merge was successful, string with rejected chunks if it was not or FALSE if an internal error happened.

Пример 1. xdiff_file_merge3() example

The following code merges three files into one.

<?php
$old_version = 'original_script.php';
$fix1 = 'script_with_fix1.php';
$fix2 = 'script_with_fix2.php';

$errors = xdiff_file_merge3($old_version, $fix1, $fix2, 'fixed_script.php');
if (is_string($errors)) {
    echo "Rejects:\n";
    echo $errors;
}
?>

See also xdiff_string_merge3().

Пред. | Начало | След.
xdiff_file_diff | Уровень выше | xdiff_file_patch_binary


xdiff_file_patch_binary

(PECL)

xdiff_file_patch_binary -- Patch a file with a binary diff

Description

bool xdiff_file_patch_binary ( string file, string patch, string dest )

xdiff_file_patch_binary() patches file file with binary patch in file patch and stores result in file dest.

Замечание: Both files (file and patch) will be loaded into memory so ensure that your memory_limit is set high enough.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример 1. xdiff_file_patch_binary() example

The following code applies binary diff to a file.

<?php
$old_version = 'archive-1.0.tgz';
$patch = 'archive.bpatch';

$result = xdiff_file_patch_binary($old_version, $patch, 'archive-1.1.tgz');
if ($result) {
   echo "File patched";
} else {
   echo "File couldn't be patched";
}

?>

See also xdiff_string_patch_binary().

Пред. | Начало | След.
xdiff_file_merge3 | Уровень выше | xdiff_file_patch


xdiff_file_patch

(PECL)

xdiff_file_patch -- Patch a file with an unified diff

Description

mixed xdiff_file_patch ( string file, string patch, string dest [, int flags] )

xdiff_file_patch() patches file file with unified patch in file patch and stores result in file dest.

flags can be either XDIFF_PATCH_NORMAL (default mode, normal patch) or XDIFF_PATCH_REVERSE (reversed patch).

Returns FALSE if an internal error happened, string with rejected chunks of patch or TRUE if patch has been successfully applied.

Пример 1. xdiff_file_patch() example

The following code applies unified diff to a file.

<?php
$old_version = 'my_script-1.0.php';
$patch = 'my_script.patch';

$errors = xdiff_file_patch($old_version, $patch, 'my_script-1.1.php');
if (is_string($errors)) {
   echo "Rejects:\n";
   echo $errors;
}

?>

Пример 2. Patch reversing example

The following code reverses a patch.

<?php
$new_version = 'my_script-1.1.php';
$patch = 'my_script.patch';

$errors = xdiff_file_patch($new_version, $patch, 'my_script-1.0.php', XDIFF_PATCH_REVERSE);
if (is_string($errors)) {
   echo "Rejects:\n";
   echo $errors;
}

?>

See also xdiff_string_patch().

Пред. | Начало | След.
xdiff_file_patch_binary | Уровень выше | xdiff_string_diff_binary


xdiff_string_diff_binary

(PECL)

xdiff_string_diff_binary -- Make binary diff of two strings

Description

string xdiff_string_diff_binary ( string str1, string str2 )

xdiff_string_diff_binary() makes binary diff of strings str1 and str2.

Returns string with result or FALSE if an internal error happened.

See also xdiff_file_diff_binary().

Пред. | Начало | След.
xdiff_file_patch | Уровень выше | xdiff_string_diff


xdiff_string_diff

(PECL)

xdiff_string_diff -- Make unified diff of two strings

Description

string xdiff_string_diff ( string str1, string str2 [, int context [, bool minimal]] )

xdiff_string_diff() makes unified diff of strings str1 and str2. context indicated how many lines of context you want to include in diff result. Set minimal to TRUE if you want to minimalize size of diff (can take a long time).

Замечание: This function doesn't work well with binary strings. To make diff of binary strings use xdiff_string_diff_binary().

Returns string with result or FALSE if an internal error happened.

Пример 1. xdiff_string_diff() example

The following code makes unified diff of two articles.

<?php
$old_article = file_get_contents('./old_article.txt');
$new_article = $_REQUEST['article']; /* Let's say that someone pasted a new article to html form */

$diff = xdiff_string_diff($old_article, $new_article, 1);
if (is_string($diff)) {
    echo "Differences between two articles:\n";
    echo $diff;
}

?>

See also xdiff_file_diff().

Пред. | Начало | След.
xdiff_string_diff_binary | Уровень выше | xdiff_string_merge3


xdiff_string_merge3

(PECL)

xdiff_string_merge3 -- Merge 3 strings into one

Description

mixed xdiff_string_merge3 ( string str1, string str2, string str3 [, string &error] )

xdiff_string_merge3() merges strings str1, str2 and str3 into one.

If error is passed then rejected parts are stored inside this variable.

Returns merged string, FALSE if an internal error happened, or TRUE if merged string is empty.

See also xdiff_file_merge3().

Пред. | Начало | След.
xdiff_string_diff | Уровень выше | xdiff_string_patch_binary


xdiff_string_patch_binary

(PECL)

xdiff_string_patch_binary -- Patch a string with a binary diff

Description

string xdiff_string_patch_binary ( string str, string patch )

xdiff_string_patch_binary() patches string str with binary patch in string patch.

Returns a patched string.

See also xdiff_file_patch_binary().

Пред. | Начало | След.
xdiff_string_merge3 | Уровень выше | xdiff_string_patch


xdiff_string_patch

(PECL)

xdiff_string_patch -- Patch a string with an unified diff

Description

string xdiff_string_patch ( string str, string patch [, int flags [, string &error]] )

xdiff_string_patch() patches string str with unified patch in string patch.

flags can be either XDIFF_PATCH_NORMAL (default mode, normal patch) or XDIFF_PATCH_REVERSE (reversed patch).

If error is passed then rejected parts are stored inside this variable.

Пример 1. xdiff_string_patch() example

The following code applies changes to some article.

<?php
$old_article = file_get_contents('./old_article.txt');
$diff = $_SERVER['patch']; /* Let's say that someone pasted a patch to html form */

$errors = '';

$new_article = xdiff_string_patch($old_article, $diff, XDIFF_PATCH_NORMAL, $errors);
if (is_string($new_article)) {
    echo "New article:\n";
    echo $new_article;
}

if (strlen($errors)) {
    echo "Rejects: \n";
    echo $errors;
}

?>

Returns a patched string.

See also xdiff_file_patch().

Пред. | Начало | След.
xdiff_string_patch_binary | Уровень выше | XML Parser Functions


XML Parser Functions

Руководство по PHP
Пред. След.

CLXII. XML Parser Functions

Введение

XML (eXtensible Markup Language) is a data format for structured document interchange on the Web. It is a standard defined by The World Wide Web consortium (W3C). Information about XML and related technologies can be found at http://www.w3.org/XML/.

This PHP extension implements support for James Clark's expat in PHP. This toolkit lets you parse, but not validate, XML documents. It supports three source character encodings also provided by PHP: US-ASCII, ISO-8859-1 and UTF-8. UTF-16 is not supported.

This extension lets you create XML parsers and then define handlers for different XML events. Each XML parser also has a few parameters you can adjust.

Требования

This extension uses an expat compat layer by default. It can use also expat, which can be found at http://www.jclark.com/xml/expat.html. The Makefile that comes with expat does not build a library by default, you can use this make rule for that:
libexpat.a: $(OBJS)
    ar -rc $@ $(OBJS)
    ranlib $@
A source RPM package of expat can be found at http://sourceforge.net/projects/expat/.

Установка

These functions are enabled by default, using the bundled expat library. You can disable XML support with --disable-xml. If you compile PHP as a module for Apache 1.3.9 or later, PHP will automatically use the bundled expat library from Apache. In order you don't want to use the bundled expat library configure PHP --with-expat-dir=DIR, where DIR should point to the base installation directory of expat.

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

xml

The xml resource as returned by xml_parser_create() and xml_parser_create_ns() references an xml parser instance to be used with the functions provided by this extension.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

XML_ERROR_NONE (integer)

XML_ERROR_NO_MEMORY (integer)

XML_ERROR_SYNTAX (integer)

XML_ERROR_NO_ELEMENTS (integer)

XML_ERROR_INVALID_TOKEN (integer)

XML_ERROR_UNCLOSED_TOKEN (integer)

XML_ERROR_PARTIAL_CHAR (integer)

XML_ERROR_TAG_MISMATCH (integer)

XML_ERROR_DUPLICATE_ATTRIBUTE (integer)

XML_ERROR_JUNK_AFTER_DOC_ELEMENT (integer)

XML_ERROR_PARAM_ENTITY_REF (integer)

XML_ERROR_UNDEFINED_ENTITY (integer)

XML_ERROR_RECURSIVE_ENTITY_REF (integer)

XML_ERROR_ASYNC_ENTITY (integer)

XML_ERROR_BAD_CHAR_REF (integer)

XML_ERROR_BINARY_ENTITY_REF (integer)

XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF (integer)

XML_ERROR_MISPLACED_XML_PI (integer)

XML_ERROR_UNKNOWN_ENCODING (integer)

XML_ERROR_INCORRECT_ENCODING (integer)

XML_ERROR_UNCLOSED_CDATA_SECTION (integer)

XML_ERROR_EXTERNAL_ENTITY_HANDLING (integer)

XML_OPTION_CASE_FOLDING (integer)

XML_OPTION_TARGET_ENCODING (integer)

XML_OPTION_SKIP_TAGSTART (integer)

XML_OPTION_SKIP_WHITE (integer)

Event Handlers

The XML event handlers defined are:

Таблица 1. Supported XML handlers

PHP function to set handler | Event description
xml_set_element_handler() | Element events are issued whenever the XML parser encounters start or end tags. There are separate handlers for start tags and end tags.
xml_set_character_data_handler() | Character data is roughly all the non-markup contents of XML documents, including whitespace between tags. Note that the XML parser does not add or remove any whitespace, it is up to the application (you) to decide whether whitespace is significant.
xml_set_processing_instruction_handler() | PHP programmers should be familiar with processing instructions (PIs) already. <?php ?> is a processing instruction, where php is called the "PI target". The handling of these are application-specific, except that all PI targets starting with "XML" are reserved.
xml_set_default_handler() | What goes not to another handler goes to the default handler. You will get things like the XML and document type declarations in the default handler.
xml_set_unparsed_entity_decl_handler() | This handler will be called for declaration of an unparsed (NDATA) entity.
xml_set_notation_decl_handler() | This handler is called for declaration of a notation.
xml_set_external_entity_ref_handler() | This handler is called when the XML parser finds a reference to an external parsed general entity. This can be a reference to a file or URL, for example. See the external entity example for a demonstration.

Case Folding

The element handler functions may get their element names case-folded. Case-folding is defined by the XML standard as "a process applied to a sequence of characters, in which those identified as non-uppercase are replaced by their uppercase equivalents". In other words, when it comes to XML, case-folding simply means uppercasing.

By default, all the element names that are passed to the handler functions are case-folded. This behaviour can be queried and controlled per XML parser with the xml_parser_get_option() and xml_parser_set_option() functions, respectively.

Error Codes

The following constants are defined for XML error codes (as returned by xml_parse()):

XML_ERROR_NONE
XML_ERROR_NO_MEMORY
XML_ERROR_SYNTAX
XML_ERROR_NO_ELEMENTS
XML_ERROR_INVALID_TOKEN
XML_ERROR_UNCLOSED_TOKEN
XML_ERROR_PARTIAL_CHAR
XML_ERROR_TAG_MISMATCH
XML_ERROR_DUPLICATE_ATTRIBUTE
XML_ERROR_JUNK_AFTER_DOC_ELEMENT
XML_ERROR_PARAM_ENTITY_REF
XML_ERROR_UNDEFINED_ENTITY
XML_ERROR_RECURSIVE_ENTITY_REF
XML_ERROR_ASYNC_ENTITY
XML_ERROR_BAD_CHAR_REF
XML_ERROR_BINARY_ENTITY_REF
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF
XML_ERROR_MISPLACED_XML_PI
XML_ERROR_UNKNOWN_ENCODING
XML_ERROR_INCORRECT_ENCODING
XML_ERROR_UNCLOSED_CDATA_SECTION
XML_ERROR_EXTERNAL_ENTITY_HANDLING

Character Encoding

PHP's XML extension supports the Unicode character set through different character encodings. There are two types of character encodings, source encoding and target encoding. PHP's internal representation of the document is always encoded with UTF-8.

Source encoding is done when an XML document is parsed. Upon creating an XML parser, a source encoding can be specified (this encoding can not be changed later in the XML parser's lifetime). The supported source encodings are ISO-8859-1, US-ASCII and UTF-8. The former two are single-byte encodings, which means that each character is represented by a single byte. UTF-8 can encode characters composed by a variable number of bits (up to 21) in one to four bytes. The default source encoding used by PHP is ISO-8859-1.

Target encoding is done when PHP passes data to XML handler functions. When an XML parser is created, the target encoding is set to the same as the source encoding, but this may be changed at any point. The target encoding will affect character data as well as tag names and processing instruction targets.

If the XML parser encounters characters outside the range that its source encoding is capable of representing, it will return an error.

If PHP encounters characters in the parsed XML document that can not be represented in the chosen target encoding, the problem characters will be "demoted". Currently, this means that such characters are replaced by a question mark.

Примеры

Here are some example PHP scripts parsing XML documents.

XML Element Structure Example

This first example displays the structure of the start elements in a document with indentation.

Пример 1. Show XML Element Structure

<?php
$file = "data.xml";
$depth = array();

function startElement($parser, $name, $attrs)
{
    global $depth;
    for ($i = 0; $i < $depth[$parser]; $i++) {
        echo "  ";
    }
    echo "$name\n";
    $depth[$parser]++;
}

function endElement($parser, $name)
{
    global $depth;
    $depth[$parser]--;
}

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
if (!($fp = fopen($file, "r"))) {
    die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);
?>

XML Tag Mapping Example

Пример 2. Map XML to HTML

This example maps tags in an XML document directly to HTML tags. Elements not found in the "map array" are ignored. Of course, this example will only work with a specific XML document type.

<?php
$file = "data.xml";
$map_array = array(
    "BOLD"     => "B",
    "EMPHASIS" => "I",
    "LITERAL"  => "TT"
);

function startElement($parser, $name, $attrs)
{
    global $map_array;
    if (isset($map_array[$name])) {
        echo "<$map_array[$name]>";
    }
}

function endElement($parser, $name)
{
    global $map_array;
    if (isset($map_array[$name])) {
        echo "</$map_array[$name]>";
    }
}

function characterData($parser, $data)
{
    echo $data;
}

$xml_parser = xml_parser_create();
// use case-folding so we are sure to find the tag in $map_array
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
if (!($fp = fopen($file, "r"))) {
    die("could not open XML input");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);
?>

XML External Entity Example

This example highlights XML code. It illustrates how to use an external entity reference handler to include and parse other documents, as well as how PIs can be processed, and a way of determining "trust" for PIs containing code.

XML documents that can be used for this example are found below the example (xmltest.xml and xmltest2.xml.)

Пример 3. External Entity Example

<?php
$file = "xmltest.xml";

function trustedFile($file)
{
    // only trust local files owned by ourselves
    if (!eregi("^([a-z]+)://", $file)
        && fileowner($file) == getmyuid()) {
            return true;
    }
    return false;
}

function startElement($parser, $name, $attribs)
{
    echo "&lt;<font color=\"#0000cc\">$name</font>";
    if (count($attribs)) {
        foreach ($attribs as $k => $v) {
            echo " <font color=\"#009900\">$k</font>=\"<font
                   color=\"#990000\">$v</font>\"";
        }
    }
    echo "&gt;";
}

function endElement($parser, $name)
{
    echo "&lt;/<font color=\"#0000cc\">$name</font>&gt;";
}

function characterData($parser, $data)
{
    echo "<b>$data</b>";
}

function PIHandler($parser, $target, $data)
{
    switch (strtolower($target)) {
        case "php":
            global $parser_file;
            // If the parsed document is "trusted", we say it is safe
            // to execute PHP code inside it.  If not, display the code
            // instead.
            if (trustedFile($parser_file[$parser])) {
                eval($data);
            } else {
                printf("Untrusted PHP code: <i>%s</i>",
                        htmlspecialchars($data));
            }
            break;
    }
}

function defaultHandler($parser, $data)
{
    if (substr($data, 0, 1) == "&" && substr($data, -1, 1) == ";") {
        printf('<font color="#aa00aa">%s</font>',
                htmlspecialchars($data));
    } else {
        printf('<font size="-1">%s</font>',
                htmlspecialchars($data));
    }
}

function externalEntityRefHandler($parser, $openEntityNames, $base, $systemId,
                                  $publicId) {
    if ($systemId) {
        if (!list($parser, $fp) = new_xml_parser($systemId)) {
            printf("Could not open entity %s at %s\n", $openEntityNames,
                   $systemId);
            return false;
        }
        while ($data = fread($fp, 4096)) {
            if (!xml_parse($parser, $data, feof($fp))) {
                printf("XML error: %s at line %d while parsing entity %s\n",
                       xml_error_string(xml_get_error_code($parser)),
                       xml_get_current_line_number($parser), $openEntityNames);
                xml_parser_free($parser);
                return false;
            }
        }
        xml_parser_free($parser);
        return true;
    }
    return false;
}

function new_xml_parser($file)
{
    global $parser_file;

    $xml_parser = xml_parser_create();
    xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 1);
    xml_set_element_handler($xml_parser, "startElement", "endElement");
    xml_set_character_data_handler($xml_parser, "characterData");
    xml_set_processing_instruction_handler($xml_parser, "PIHandler");
    xml_set_default_handler($xml_parser, "defaultHandler");
    xml_set_external_entity_ref_handler($xml_parser, "externalEntityRefHandler");

    if (!($fp = @fopen($file, "r"))) {
        return false;
    }
    if (!is_array($parser_file)) {
        settype($parser_file, "array");
    }
    $parser_file[$xml_parser] = $file;
    return array($xml_parser, $fp);
}

if (!(list($xml_parser, $fp) = new_xml_parser($file))) {
    die("could not open XML input");
}

echo "<pre>";
while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d\n",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
echo "</pre>";
echo "parse complete\n";
xml_parser_free($xml_parser);

?>

Пример 4. xmltest.xml

<?xml version='1.0'?>
<!DOCTYPE chapter SYSTEM "/just/a/test.dtd" [
<!ENTITY plainEntity "FOO entity">
<!ENTITY systemEntity SYSTEM "xmltest2.xml">
]>
<chapter>
 <TITLE>Title &plainEntity;</TITLE>
 <para>
  <informaltable>
   <tgroup cols="3">
    <tbody>
     <row><entry>a1</entry><entry morerows="1">b1</entry><entry>c1</entry></row>
     <row><entry>a2</entry><entry>c2</entry></row>
     <row><entry>a3</entry><entry>b3</entry><entry>c3</entry></row>
    </tbody>
   </tgroup>
  </informaltable>
 </para>
 &systemEntity;
 <section id="about">
  <title>About this Document</title>
  <para>
   <!-- this is a comment -->
   <?php echo 'Hi!  This is PHP version ' . phpversion(); ?>
  </para>
 </section>
</chapter>

This file is included from xmltest.xml:

Пример 5. xmltest2.xml

<?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY testEnt "test entity">
]>
<foo>
   <element attrib="value"/>
   &testEnt;
   <?php echo "This is some more PHP code being executed."; ?>
</foo>

Содержание
utf8_decode -- Converts a string with ISO-8859-1 characters encoded with UTF-8 to single-byte ISO-8859-1
utf8_encode -- Encodes an ISO-8859-1 string to UTF-8
xml_error_string -- Get XML parser error string
xml_get_current_byte_index -- Get current byte index for an XML parser
xml_get_current_column_number -- Get current column number for an XML parser
xml_get_current_line_number -- Get current line number for an XML parser
xml_get_error_code -- Get XML parser error code
xml_parse_into_struct -- Parse XML data into an array structure
xml_parse -- Start parsing an XML document
xml_parser_create_ns -- Create an XML parser with namespace support
xml_parser_create -- Create an XML parser
xml_parser_free -- Free an XML parser
xml_parser_get_option -- Get options from an XML parser
xml_parser_set_option -- Set options in an XML parser
xml_set_character_data_handler -- Set up character data handler
xml_set_default_handler -- Set up default handler
xml_set_element_handler -- Set up start and end element handlers
xml_set_end_namespace_decl_handler -- Set up end namespace declaration handler
xml_set_external_entity_ref_handler -- Set up external entity reference handler
xml_set_notation_decl_handler -- Set up notation declaration handler
xml_set_object -- Use XML Parser within an object
xml_set_processing_instruction_handler -- Set up processing instruction (PI) handler
xml_set_start_namespace_decl_handler -- Set up start namespace declaration handler
xml_set_unparsed_entity_decl_handler -- Set up unparsed entity declaration handler

Пред. | Начало | След.
xdiff_string_patch | Уровень выше | utf8_decode


utf8_decode

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

utf8_decode -- Converts a string with ISO-8859-1 characters encoded with UTF-8 to single-byte ISO-8859-1

Description

string utf8_decode ( string data )

This function decodes data, assumed to be UTF-8 encoded, to ISO-8859-1.

See also utf8_encode() for an explanation of UTF-8 encoding.

Пред. | Начало | След.
XML Parser Functions | Уровень выше | utf8_encode


utf8_encode

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

utf8_encode -- Encodes an ISO-8859-1 string to UTF-8

Description

string utf8_encode ( string data )

This function encodes the string data to UTF-8, and returns the encoded version. UTF-8 is a standard mechanism used by Unicode for encoding wide character values into a byte stream. UTF-8 is transparent to plain ASCII characters, is self-synchronized (meaning it is possible for a program to figure out where in the bytestream characters start) and can be used with normal string comparison functions for sorting and such. PHP encodes UTF-8 characters in up to four bytes, like this:

Таблица 1. UTF-8 encoding

bytes | bits | representation
1 | 7 | 0bbbbbbb
2 | 11 | 110bbbbb 10bbbbbb
3 | 16 | 1110bbbb 10bbbbbb 10bbbbbb
4 | 21 | 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb
Each b represents a bit that can be used to store character data.

Пред. | Начало | След.
utf8_decode | Уровень выше | xml_error_string


xml_error_string

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_error_string -- Get XML parser error string

Описание

string xml_error_string ( int code )

Gets the XML parser error string associated with the given code.

Список параметров

code

An error code from xml_get_error_code().

Возвращаемые значения

Returns a string with a textual description of the error code, or FALSE if no description was found.

Смотрите также

xml_get_error_code()

Пред. | Начало | След.
utf8_encode | Уровень выше | xml_get_current_byte_index


xml_get_current_byte_index

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_get_current_byte_index -- Get current byte index for an XML parser

Описание

int xml_get_current_byte_index ( resource parser )

Gets the current byte index of the given XML parser.

Список параметров

parser

A reference to the XML parser to get byte index from.

Возвращаемые значения

This function returns FALSE if parser does not refer to a valid parser, or else it returns which byte index the parser is currently at in its data buffer (starting at 0).

Смотрите также

xml_get_current_column_index()
xml_get_current_line_index()

Пред. | Начало | След.
xml_error_string | Уровень выше | xml_get_current_column_number


xml_get_current_column_number

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_get_current_column_number -- Get current column number for an XML parser

Описание

int xml_get_current_column_number ( resource parser )

Gets the current column number of the given XML parser.

Список параметров

parser

A reference to the XML parser to get column number from.

Возвращаемые значения

This function returns FALSE if parser does not refer to a valid parser, or else it returns which column on the current line (as given by xml_get_current_line_number()) the parser is currently at.

Смотрите также

xml_get_current_byte_index()
xml_get_current_line_index()

Пред. | Начало | След.
xml_get_current_byte_index | Уровень выше | xml_get_current_line_number


xml_get_current_line_number

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_get_current_line_number -- Get current line number for an XML parser

Описание

int xml_get_current_line_number ( resource parser )

Gets the current line number for the given XML parser.

Список параметров

parser

A reference to the XML parser to get line number from.

Возвращаемые значения

This function returns FALSE if parser does not refer to a valid parser, or else it returns which line the parser is currently at in its data buffer.

Смотрите также

xml_get_current_column_index()
xml_get_current_byte_index()

Пред. | Начало | След.
xml_get_current_column_number | Уровень выше | xml_get_error_code


xml_get_error_code

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_get_error_code -- Get XML parser error code

Описание

int xml_get_error_code ( resource parser )

Gets the XML parser error code.

Список параметров

parser

A reference to the XML parser to get error code from.

Возвращаемые значения

This function returns FALSE if parser does not refer to a valid parser, or else it returns one of the error codes listed in the error codes section.

Смотрите также

xml_error_string()

Пред. | Начало | След.
xml_get_current_line_number | Уровень выше | xml_parse_into_struct


xml_parse_into_struct

(PHP 3 >= 3.0.8, PHP 4, PHP 5)

xml_parse_into_struct -- Parse XML data into an array structure

Description

int xml_parse_into_struct ( resource parser, string data, array &values [, array &index] )

This function parses an XML file into 2 parallel array structures, one (index) containing pointers to the location of the appropriate values in the values array. These last two parameters must be passed by reference.

Замечание: xml_parse_into_struct() returns 0 for failure and 1 for success. This is not the same as FALSE and TRUE, be careful with operators such as ===.

Below is an example that illustrates the internal structure of the arrays being generated by the function. We use a simple note tag embedded inside a para tag, and then we parse this and print out the structures generated:

Пример 1. xml_parse_into_struct() example

<?php
$simple = "<para><note>simple note</note></para>";
$p = xml_parser_create();
xml_parse_into_struct($p, $simple, $vals, $index);
xml_parser_free($p);
echo "Index array\n";
print_r($index);
echo "\nVals array\n";
print_r($vals);
?>

When we run that code, the output will be:

Index array
Array
(
    [PARA] => Array
        (
            [0] => 0
            [1] => 2
        )

    [NOTE] => Array
        (
            [0] => 1
        )

)

Vals array
Array
(
    [0] => Array
        (
            [tag] => PARA
            [type] => open
            [level] => 1
        )

    [1] => Array
        (
            [tag] => NOTE
            [type] => complete
            [level] => 2
            [value] => simple note
        )

    [2] => Array
        (
            [tag] => PARA
            [type] => close
            [level] => 1
        )

)

Event-driven parsing (based on the expat library) can get complicated when you have an XML document that is complex. This function does not produce a DOM style object, but it generates structures amenable of being transversed in a tree fashion. Thus, we can create objects representing the data in the XML file easily. Let's consider the following XML file representing a small database of aminoacids information:

Пример 2. moldb.xml - small database of molecular information

<?xml version="1.0"?>
<moldb>

    <molecule>
        <name>Alanine</name>
        <symbol>ala</symbol>
        <code>A</code>
        <type>hydrophobic</type>
    </molecule>

    <molecule>
        <name>Lysine</name>
        <symbol>lys</symbol>
        <code>K</code>
        <type>charged</type>
    </molecule>

</moldb>
And some code to parse the document and generate the appropriate objects:

Пример 3. parsemoldb.php - parses moldb.xml into an array of molecular objects

<?php

class AminoAcid {
    var $name;  // aa name
    var $symbol;    // three letter symbol
    var $code;  // one letter code
    var $type;  // hydrophobic, charged or neutral

    function AminoAcid ($aa)
    {
        foreach ($aa as $k=>$v)
            $this->$k = $aa[$k];
    }
}

function readDatabase($filename)
{
    // read the XML database of aminoacids
    $data = implode("", file($filename));
    $parser = xml_parser_create();
    xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
    xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
    xml_parse_into_struct($parser, $data, $values, $tags);
    xml_parser_free($parser);

    // loop through the structures
    foreach ($tags as $key=>$val) {
        if ($key == "molecule") {
            $molranges = $val;
            // each contiguous pair of array entries are the
            // lower and upper range for each molecule definition
            for ($i=0; $i < count($molranges); $i+=2) {
                $offset = $molranges[$i] + 1;
                $len = $molranges[$i + 1] - $offset;
                $tdb[] = parseMol(array_slice($values, $offset, $len));
            }
        } else {
            continue;
        }
    }
    return $tdb;
}

function parseMol($mvalues)
{
    for ($i=0; $i < count($mvalues); $i++) {
        $mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];
    }
    return new AminoAcid($mol);
}

$db = readDatabase("moldb.xml");
echo "** Database of AminoAcid objects:\n";
print_r($db);

?>
After executing parsemoldb.php, the variable $db contains an array of AminoAcid objects, and the output of the script confirms that:

** Database of AminoAcid objects:
Array
(
    [0] => aminoacid Object
        (
            [name] => Alanine
            [symbol] => ala
            [code] => A
            [type] => hydrophobic
        )

    [1] => aminoacid Object
        (
            [name] => Lysine
            [symbol] => lys
            [code] => K
            [type] => charged
        )

)

Пред. | Начало | След.
xml_get_error_code | Уровень выше | xml_parse


xml_parse

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_parse -- Start parsing an XML document

Описание

int xml_parse ( resource parser, string data [, bool is_final] )

xml_parse() parses an XML document. The handlers for the configured events are called as many times as necessary.

Список параметров

parser

A reference to the XML parser to use.

data

Chunk of data to parse. A document may be parsed piece-wise by calling xml_parse() several times with new data, as long as the is_final parameter is set and TRUE when the last data is parsed.

is_final

If set and TRUE, data is the last piece of data sent in this parse.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

For unsuccessful parses, error information can be retrieved with
xml_get_error_code(),
xml_error_string(),
xml_get_current_line_number(),
xml_get_current_column_number() and
xml_get_current_byte_index().

Замечание: Entity errors are reported at the end of the data thus only if is_final is set and TRUE.

Пред. | Начало | След.
xml_parse_into_struct | Уровень выше | xml_parser_create_ns


xml_parser_create_ns

(PHP 4 >= 4.0.5, PHP 5)

xml_parser_create_ns -- Create an XML parser with namespace support

Description

resource xml_parser_create_ns ( [string encoding [, string separator]] )

xml_parser_create_ns() creates a new XML parser with XML namespace support and returns a resource handle referencing it to be used by the other XML functions.

With a namespace aware parser tag parameters passed to the various handler functions will consist of namespace and tag name separated by the string specified in seperator or ':' by default.

The optional encoding specifies the character encoding for the input/output in PHP 4. Starting from PHP 5, the input encoding is automatically detected, so that the encoding parameter specifies only the output encoding. In PHP 4, the default output encoding is the same as the input charset. In PHP 5.0.0 and 5.0.1, the default output charset is ISO-8859-1, while in PHP 5.0.2 and upper is UTF-8. The supported encodings are ISO-8859-1, UTF-8 and US-ASCII.

See also xml_parser_create(), and xml_parser_free().

Пред. | Начало | След.
xml_parse | Уровень выше | xml_parser_create


xml_parser_create

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_parser_create -- Create an XML parser

Description

resource xml_parser_create ( [string encoding] )

xml_parser_create() creates a new XML parser and returns a resource handle referencing it to be used by the other XML functions.

The optional encoding specifies the character encoding for the input/output in PHP 4. Starting from PHP 5, the input encoding is automatically detected, so that the encoding parameter specifies only the output encoding. In PHP 4, the default output encoding is the same as the input charset. If empty string is passed, the parser attempts to identify which encoding the document is encoded in by looking at the heading 3 or 4 bytes. In PHP 5.0.0 and 5.0.1, the default output charset is ISO-8859-1, while in PHP 5.0.2 and upper is UTF-8. The supported encodings are ISO-8859-1, UTF-8 and US-ASCII.

See also xml_parser_create_ns() and xml_parser_free().

Пред. | Начало | След.
xml_parser_create_ns | Уровень выше | xml_parser_free


xml_parser_free

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_parser_free -- Free an XML parser

Description

bool xml_parser_free ( resource parser )

parser

A reference to the XML parser to free.

This function returns FALSE if parser does not refer to a valid parser, or else it frees the parser and returns TRUE.

Пред. | Начало | След.
xml_parser_create | Уровень выше | xml_parser_get_option


xml_parser_get_option

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_parser_get_option -- Get options from an XML parser

Description

mixed xml_parser_get_option ( resource parser, int option )

parser

A reference to the XML parser to get an option from.

option

Which option to fetch. XML_OPTION_CASE_FOLDING and XML_OPTION_TARGET_ENCODING are available. See xml_parser_set_option() for their description.

This function returns FALSE if parser does not refer to a valid parser or if option isn't valid (generates also a E_WARNING). Else the option's value is returned.

Пред. | Начало | След.
xml_parser_free | Уровень выше | xml_parser_set_option


xml_parser_set_option

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_parser_set_option -- Set options in an XML parser

Description

bool xml_parser_set_option ( resource parser, int option, mixed value )

parser

A reference to the XML parser to set an option in.

option

Which option to set. See below.

value

The option's new value.

This function returns FALSE if parser does not refer to a valid parser, or if the option could not be set. Else the option is set and TRUE is returned.

The following options are available:

Таблица 1. XML parser options

Option constant | Data type | Description
XML_OPTION_CASE_FOLDING | integer | Controls whether case-folding is enabled for this XML parser. Enabled by default.
XML_OPTION_SKIP_TAGSTART | integer | Specify how many characters should be skipped in the beginning of a tag name.
XML_OPTION_SKIP_WHITE | integer | Whether to skip values consisting of whitespace characters.
XML_OPTION_TARGET_ENCODING | string | Sets which target encoding to use in this XML parser. By default, it is set to the same as the source encoding used by xml_parser_create(). Supported target encodings are ISO-8859-1, US-ASCII and UTF-8.

Пред. | Начало | След.
xml_parser_get_option | Уровень выше | xml_set_character_data_handler


xml_set_character_data_handler

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_set_character_data_handler -- Set up character data handler

Description

bool xml_set_character_data_handler ( resource parser, callback handler )

Sets the character data handler function for the XML parser parser. handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

The function named by handler must accept two parameters: handler ( resource parser, string data )

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

data

The second parameter, data, contains the character data as a string.

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handler is set up, FALSE if parser is not a parser.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Пред. | Начало | След.
xml_parser_set_option | Уровень выше | xml_set_default_handler


xml_set_default_handler

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_set_default_handler -- Set up default handler

Description

bool xml_set_default_handler ( resource parser, callback handler )

Sets the default handler function for the XML parser parser. handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

The function named by handler must accept two parameters: handler ( resource parser, string data )

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

data

The second parameter, data, contains the character data. This may be the XML declaration, document type declaration, entities or other data for which no other handler exists.

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handler is set up, FALSE if parser is not a parser.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Пред. | Начало | След.
xml_set_character_data_handler | Уровень выше | xml_set_element_handler


xml_set_element_handler

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_set_element_handler -- Set up start and end element handlers

Description

bool xml_set_element_handler ( resource parser, callback start_element_handler, callback end_element_handler )

Sets the element handler functions for the XML parser parser. start_element_handler and end_element_handler are strings containing the names of functions that must exist when xml_parse() is called for parser.

The function named by start_element_handler must accept three parameters: start_element_handler ( resource parser, string name, array attribs )

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

name

The second parameter, name, contains the name of the element for which this handler is called. If case-folding is in effect for this parser, the element name will be in uppercase letters.

attribs

The third parameter, attribs, contains an associative array with the element's attributes (if any). The keys of this array are the attribute names, the values are the attribute values. Attribute names are case-folded on the same criteria as element names. Attribute values are not case-folded.

The original order of the attributes can be retrieved by walking through attribs the normal way, using each(). The first key in the array was the first attribute, and so on.

The function named by end_element_handler must accept two parameters: end_element_handler ( resource parser, string name )

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

name

The second parameter, name, contains the name of the element for which this handler is called. If case-folding is in effect for this parser, the element name will be in uppercase letters.

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handlers are set up, FALSE if parser is not a parser.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Пред. | Начало | След.
xml_set_default_handler | Уровень выше | xml_set_end_namespace_decl_handler


xml_set_end_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5)

xml_set_end_namespace_decl_handler -- Set up end namespace declaration handler

Description

bool xml_set_end_namespace_decl_handler ( resource parser, callback handler )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Пред. | Начало | След.
xml_set_element_handler | Уровень выше | xml_set_external_entity_ref_handler


xml_set_external_entity_ref_handler

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_set_external_entity_ref_handler -- Set up external entity reference handler

Description

bool xml_set_external_entity_ref_handler ( resource parser, callback handler )

Sets the external entity reference handler function for the XML parser parser. handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

The function named by handler must accept five parameters, and should return an integer value. If the value returned from the handler is FALSE (which it will be if no value is returned), the XML parser will stop parsing and xml_get_error_code() will return XML_ERROR_EXTERNAL_ENTITY_HANDLING. handler ( resource parser, string open_entity_names, string base, string system_id, string public_id )

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

open_entity_names

The second parameter, open_entity_names, is a space-separated list of the names of the entities that are open for the parse of this entity (including the name of the referenced entity).

base

This is the base for resolving the system identifier (system_id) of the external entity. Currently this parameter will always be set to an empty string.

system_id

The fourth parameter, system_id, is the system identifier as specified in the entity declaration.

public_id

The fifth parameter, public_id, is the public identifier as specified in the entity declaration, or an empty string if none was specified; the whitespace in the public identifier will have been normalized as required by the XML spec.

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handler is set up, FALSE if parser is not a parser.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Пред. | Начало | След.
xml_set_end_namespace_decl_handler | Уровень выше | xml_set_notation_decl_handler


xml_set_notation_decl_handler

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_set_notation_decl_handler -- Set up notation declaration handler

Description

bool xml_set_notation_decl_handler ( resource parser, callback handler )

Sets the notation declaration handler function for the XML parser parser. handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

A notation declaration is part of the document's DTD and has the following format:
<!NOTATION <parameter>name</parameter>
{ <parameter>systemId</parameter> | <parameter>publicId</parameter>?>
See section 4.7 of the XML 1.0 spec for the definition of notation declarations.

The function named by handler must accept five parameters: handler ( resource parser, string notation_name, string base, string system_id, string public_id )

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

notation_name

This is the notation's name, as per the notation format described above.

base

This is the base for resolving the system identifier (system_id) of the notation declaration. Currently this parameter will always be set to an empty string.

system_id

System identifier of the external notation declaration.

public_id

Public identifier of the external notation declaration.

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handler is set up, FALSE if parser is not a parser.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Пред. | Начало | След.
xml_set_external_entity_ref_handler | Уровень выше | xml_set_object


xml_set_object

(PHP 4, PHP 5)

xml_set_object -- Use XML Parser within an object

Description

bool xml_set_object ( resource parser, object &object )

This function allows to use parser inside object. All callback functions could be set with xml_set_element_handler() etc and assumed to be methods of object.

Пример 1. xml_set_object() example

<?php
class xml  {
    var $parser;

    function xml()
    {
        $this->parser = xml_parser_create();

        xml_set_object($this->parser, $this);
        xml_set_element_handler($this->parser, "tag_open", "tag_close");
        xml_set_character_data_handler($this->parser, "cdata");
    }

    function parse($data)
    {
        xml_parse($this->parser, $data);
    }

    function tag_open($parser, $tag, $attributes)
    {
        var_dump($parser, $tag, $attributes);
    }

    function cdata($parser, $cdata)
    {
        var_dump($parser, $cdata);
    }

    function tag_close($parser, $tag)
    {
        var_dump($parser, $tag);
    }

} // end of class xml

$xml_parser = new xml();
$xml_parser->parse("<A ID='hallo'>PHP</A>");
?>

Пред. | Начало | След.
xml_set_notation_decl_handler | Уровень выше | xml_set_processing_instruction_handler


xml_set_processing_instruction_handler

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_set_processing_instruction_handler -- Set up processing instruction (PI) handler

Description

bool xml_set_processing_instruction_handler ( resource parser, callback handler )

Sets the processing instruction (PI) handler function for the XML parser parser. handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

A processing instruction has the following format:

<?target
       data?>

You can put PHP code into such a tag, but be aware of one limitation: in an XML PI, the PI end tag (?>) can not be quoted, so this character sequence should not appear in the PHP code you embed with PIs in XML documents. If it does, the rest of the PHP code, as well as the "real" PI end tag, will be treated as character data.

The function named by handler must accept three parameters: handler ( resource parser, string target, string data )

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

target

The second parameter, target, contains the PI target.

data

The third parameter, data, contains the PI data.

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handler is set up, FALSE if parser is not a parser.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Пред. | Начало | След.
xml_set_object | Уровень выше | xml_set_start_namespace_decl_handler


xml_set_start_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5)

xml_set_start_namespace_decl_handler -- Set up start namespace declaration handler

Description

bool xml_set_start_namespace_decl_handler ( resource parser, callback handler )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Пред. | Начало | След.
xml_set_processing_instruction_handler | Уровень выше | xml_set_unparsed_entity_decl_handler


xml_set_unparsed_entity_decl_handler

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

xml_set_unparsed_entity_decl_handler -- Set up unparsed entity declaration handler

Description

bool xml_set_unparsed_entity_decl_handler ( resource parser, callback handler )

Sets the unparsed entity declaration handler function for the XML parser parser. handler is a string containing the name of a function that must exist when xml_parse() is called for parser.

This handler will be called if the XML parser encounters an external entity declaration with an NDATA declaration, like the following:
<!ENTITY <parameter>name</parameter> {<parameter>publicId</parameter> | <parameter>systemId</parameter>}
        NDATA <parameter>notationName</parameter>

See section 4.2.2 of the XML 1.0 spec for the definition of notation declared external entities.

The function named by handler must accept six parameters: handler ( resource parser, string entity_name, string base, string system_id, string public_id, string notation_name )

parser

The first parameter, parser, is a reference to the XML parser calling the handler.

entity_name

The name of the entity that is about to be defined.

base

This is the base for resolving the system identifier (systemId) of the external entity. Currently this parameter will always be set to an empty string.

system_id

System identifier for the external entity.

public_id

Public identifier for the external entity.

notation_name

Name of the notation of this entity (see xml_set_notation_decl_handler()).

If a handler function is set to an empty string, or FALSE, the handler in question is disabled.

TRUE is returned if the handler is set up, FALSE if parser is not a parser.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Пред. | Начало | След.
xml_set_start_namespace_decl_handler | Уровень выше | XML-RPC Functions


XML-RPC Functions

Руководство по PHP
Пред. След.

CLXIII. XML-RPC Functions

Введение

These functions can be used to write XML-RPC servers and clients. You can find more information about XML-RPC at http://www.xmlrpc.com/, and more documentation on this extension and its functions at http://xmlrpc-epi.sourceforge.net/.

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

Требования

Эти функции всегда доступны.

Установка

XML-RPC support in PHP is not enabled by default. You will need to use the --with-xmlrpc[=DIR] configuration option when compiling PHP to enable XML-RPC support. This extension is bundled into PHP as of 4.1.0.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. XML-RPC configuration options

Name | Default | Changeable | Changelog
xmlrpc_errors | "0" | PHP_INI_SYSTEM | Available since PHP 4.1.0.
xmlrpc_error_number | "0" | PHP_INI_ALL | Available since PHP 4.1.0.
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Содержание
xmlrpc_decode_request -- Decodes XML into native PHP types
xmlrpc_decode -- Decodes XML into native PHP types
xmlrpc_encode_request -- Generates XML for a method request
xmlrpc_encode -- Generates XML for a PHP value
xmlrpc_get_type -- Gets xmlrpc type for a PHP value
xmlrpc_is_fault -- Determines if an array value represents an XMLRPC fault
xmlrpc_parse_method_descriptions -- Decodes XML into a list of method descriptions
xmlrpc_server_add_introspection_data -- Adds introspection documentation
xmlrpc_server_call_method -- Parses XML requests and call methods
xmlrpc_server_create -- Creates an xmlrpc server
xmlrpc_server_destroy -- Destroys server resources
xmlrpc_server_register_introspection_callback -- Register a PHP function to generate documentation
xmlrpc_server_register_method -- Register a PHP function to resource method matching method_name
xmlrpc_set_type -- Sets xmlrpc type, base64 or datetime, for a PHP string value

Пред. | Начало | След.
xml_set_unparsed_entity_decl_handler | Уровень выше | xmlrpc_decode_request


xmlrpc_decode_request

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_decode_request -- Decodes XML into native PHP types

Description

array xmlrpc_decode_request ( string xml, string &method [, string encoding] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
XML-RPC Functions | Уровень выше | xmlrpc_decode


xmlrpc_decode

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_decode -- Decodes XML into native PHP types

Description

array xmlrpc_decode ( string xml [, string encoding] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
xmlrpc_decode_request | Уровень выше | xmlrpc_encode_request


xmlrpc_encode_request

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_encode_request -- Generates XML for a method request

Description

string xmlrpc_encode_request ( string method, mixed params [, array output_options] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
xmlrpc_decode | Уровень выше | xmlrpc_encode


xmlrpc_encode

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_encode -- Generates XML for a PHP value

Description

string xmlrpc_encode ( mixed value )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
xmlrpc_encode_request | Уровень выше | xmlrpc_get_type


xmlrpc_get_type

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_get_type -- Gets xmlrpc type for a PHP value

Description

string xmlrpc_get_type ( mixed value )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

This function is especially useful for base64 and datetime strings.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
xmlrpc_encode | Уровень выше | xmlrpc_is_fault


xmlrpc_is_fault

(PHP 4 >= 4.3.0, PHP 5)

xmlrpc_is_fault -- Determines if an array value represents an XMLRPC fault

Description

bool xmlrpc_is_fault ( array arg )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
xmlrpc_get_type | Уровень выше | xmlrpc_parse_method_descriptions


xmlrpc_parse_method_descriptions

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_parse_method_descriptions -- Decodes XML into a list of method descriptions

Description

array xmlrpc_parse_method_descriptions ( string xml )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
xmlrpc_is_fault | Уровень выше | xmlrpc_server_add_introspection_data


xmlrpc_server_add_introspection_data

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_add_introspection_data -- Adds introspection documentation

Description

int xmlrpc_server_add_introspection_data ( resource server, array desc )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
xmlrpc_parse_method_descriptions | Уровень выше | xmlrpc_server_call_method


xmlrpc_server_call_method

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_call_method -- Parses XML requests and call methods

Description

string xmlrpc_server_call_method ( resource server, string xml, mixed user_data [, array output_options] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
xmlrpc_server_add_introspection_data | Уровень выше | xmlrpc_server_create


xmlrpc_server_create

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_create -- Creates an xmlrpc server

Description

resource xmlrpc_server_create ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
xmlrpc_server_call_method | Уровень выше | xmlrpc_server_destroy


xmlrpc_server_destroy

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_destroy -- Destroys server resources

Description

int xmlrpc_server_destroy ( resource server )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
xmlrpc_server_create | Уровень выше | xmlrpc_server_register_introspection_callback


xmlrpc_server_register_introspection_callback

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_register_introspection_callback -- Register a PHP function to generate documentation

Description

bool xmlrpc_server_register_introspection_callback ( resource server, string function )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
xmlrpc_server_destroy | Уровень выше | xmlrpc_server_register_method


xmlrpc_server_register_method

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_server_register_method -- Register a PHP function to resource method matching method_name

Description

bool xmlrpc_server_register_method ( resource server, string method_name, string function )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
xmlrpc_server_register_introspection_callback | Уровень выше | xmlrpc_set_type


xmlrpc_set_type

(PHP 4 >= 4.1.0, PHP 5)

xmlrpc_set_type -- Sets xmlrpc type, base64 or datetime, for a PHP string value

Description

bool xmlrpc_set_type ( string &value, string type )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
xmlrpc_server_register_method | Уровень выше | XMLReader functions


XSL functions

Руководство по PHP
Пред. След.

CLXV. XSL functions

Введение

The XSL extension implements the XSL standard, performing XSLT transformations using the libxslt library

Требования

This extension uses libxslt which can be found at http://xmlsoft.org/XSLT/. libxslt version 1.0.18 or greater is required.

Установка

PHP 5 includes the XSL extension by default and can be enabled by adding the argument --with-xsl[=DIR] to your configure line. DIR is the libxslt installation directory.

Предопределенные классы

XSLTProcessor

Конструктор

  • XSLTProcessor->__construct() - construct a new XSLTProcessor object

Методы

  • XSLTProcessor->getParameter() - Get value of a parameter

  • XSLTProcessor->hasExsltSupport() - Determine if PHP has EXSLT support

  • XSLTProcessor->importStylesheet() - Import stylesheet

  • XSLTProcessor->registerPHPFunctions() - Enables the ability to use PHP functions as XSLT functions

  • XSLTProcessor->removeParameter() - Remove parameter

  • XSLTProcessor->setParameter() - Set value for a parameter

  • XSLTProcessor->transformToDoc() - Transform to DOMDocument

  • XSLTProcessor->transformToURI() - Transform to URI

  • XSLTProcessor->transformToXML() - Transform to XML

Примеры

Many examples in this reference require both an XML and an XSL file. We will use collection.xml and collection.xsl that contains the following:

Пример 1. collection.xml

<collection>
 <cd>
  <title>Fight for your mind</title>
  <artist>Ben Harper</artist>
  <year>1995</year>
 </cd>
 <cd>
  <title>Electric Ladyland</title>
  <artist>Jimi Hendrix</artist>
  <year>1997</year>
 </cd>
</collection>

Пример 2. collection.xsl

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:param name="owner" select="'Nicolas Eliaszewicz'"/>
 <xsl:output method="html" encoding="iso-8859-1" indent="no"/>
 <xsl:template match="collection">
  Hey! Welcome to <xsl:value-of select="$owner"/>'s sweet CD collection!
  <xsl:apply-templates/>
 </xsl:template>
 <xsl:template match="cd">
  <h1><xsl:value-of select="title"/></h1>
  <h2>by <xsl:value-of select="artist"/> - <xsl:value-of select="year"/></h2>
  <hr />
 </xsl:template>
</xsl:stylesheet>

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

XSL_CLONE_AUTO (integer)

XSL_CLONE_NEVER (integer)

XSL_CLONE_ALWAYS (integer)

Содержание
XSLTProcessor->__construct() -- Creates a new XSLTProcessor object
XSLTProcessor->getParameter() -- Get value of a parameter
XSLTProcessor->hasExsltSupport() -- Determine if PHP has EXSLT support
XSLTProcessor->importStylesheet() -- Import stylesheet
XSLTProcessor->registerPHPFunctions() -- Enables the ability to use PHP functions as XSLT functions
XSLTProcessor->removeParameter() -- Remove parameter
XSLTProcessor->setParameter() -- Set value for a parameter
XSLTProcessor->transformToDoc() -- Transform to a DOMDocument
XSLTProcessor->transformToURI() -- Transform to URI
XSLTProcessor->transformToXML() -- Transform to XML

Пред. | Начало | След.
XMLReader->XML() | Уровень выше | XSLTProcessor->__construct()


XSLTProcessor->__construct()

(no version information, might be only in CVS)

XSLTProcessor->__construct() -- Creates a new XSLTProcessor object

Описание

class XSLTProcessor {

__construct ( (void); )

}

Creates a new XSLTProcessor object.

Примеры

Пример 1. Creating an XSLTProcessor

<?php

$xsl = new XSLTProcessor();
$xsl->importStyleSheet(DOMDocument::load($xsl_filename));
echo $xsl->transformToXML(DOMDocument::load($xml_filename));

?>

Пред. | Начало | След.
XSL functions | Уровень выше | XSLTProcessor->getParameter()


XSLTProcessor->getParameter()

(no version information, might be only in CVS)

XSLTProcessor->getParameter() -- Get value of a parameter

Описание

class XSLTProcessor {

string getParameter ( string namespaceURI, string localName )

}

Gets a parameter if previously set by XSLTProcessor->setParameter().

Список параметров

namespaceURI

The namespace URI of the XSLT parameter.

localName

The local name of the XSLT parameter.

Возвращаемые значения

The value of the parameter or NULL if it's not set.

Смотрите также

XSLTProcessor->setParameter()
XSLTProcessor->removeParameter()

Пред. | Начало | След.
XSLTProcessor->__construct() | Уровень выше | XSLTProcessor->hasExsltSupport()


XSLTProcessor->hasExsltSupport()

(no version information, might be only in CVS)

XSLTProcessor->hasExsltSupport() -- Determine if PHP has EXSLT support

Описание

class XSLTProcessor {

bool hasExsltSupport ( void )

}

This method determine if PHP was built with the EXSLT library.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Testing EXSLT support

<?php

$proc = new XSLTProcessor;
if (!$proc->hasExsltSupport()) {
    die('EXSLT support not available');
}

// do EXSLT stuff here ..

?>

Пред. | Начало | След.
XSLTProcessor->getParameter() | Уровень выше | XSLTProcessor->importStylesheet()


XSLTProcessor->importStylesheet()

(no version information, might be only in CVS)

XSLTProcessor->importStylesheet() -- Import stylesheet

Описание

class XSLTProcessor {

void importStylesheet ( DOMDocument stylesheet )

}

This method import the stylesheet into the XSLTProcessor for transformations.

Список параметров

stylesheet

The imported style sheet as a DOMDocument object.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Пред. | Начало | След.
XSLTProcessor->hasExsltSupport() | Уровень выше | XSLTProcessor->registerPHPFunctions()


XSLTProcessor->registerPHPFunctions()

(no version information, might be only in CVS)

XSLTProcessor->registerPHPFunctions() -- Enables the ability to use PHP functions as XSLT functions

Описание

class XSLTProcessor {

void registerPHPFunctions ( [mixed restrict] )

}

This method enables the ability to use PHP functions as XSLT functions within XSL stylesheets.

Список параметров

restrict

Use this parameter to only allow certain functions to be called from XSLT.

This parameter can be either a string (a function name) or an array of functions.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
5.1.0 | The restrict parameter was added.

Пред. | Начало | След.
XSLTProcessor->importStylesheet() | Уровень выше | XSLTProcessor->removeParameter()


XSLTProcessor->removeParameter()

(no version information, might be only in CVS)

XSLTProcessor->removeParameter() -- Remove parameter

Описание

class XSLTProcessor {

bool removeParameter ( string namespaceURI, string localName )

}

Removes a parameter, if set. This will make the processor use the default value for the parameter as specified in the stylesheet.

Список параметров

namespaceURI

The namespace URI of the XSLT parameter.

localName

The local name of the XSLT parameter.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

XSLTProcessor->setParameter()
XSLTProcessor->getParameter()

Пред. | Начало | След.
XSLTProcessor->registerPHPFunctions() | Уровень выше | XSLTProcessor->setParameter()


XSLTProcessor->setParameter()

(no version information, might be only in CVS)

XSLTProcessor->setParameter() -- Set value for a parameter

Описание

class XSLTProcessor {

bool setParameter ( string namespace, string name, string value )

}class XSLTProcessor {

bool setParameter ( string namespace, array options )

}

Sets the value of one or more parameters to be used in subsequent transformations with XSLTProcessor. If the parameter doesn't exist in the stylesheet it will be ignored.

Список параметров

namespace

The namespace URI of the XSLT parameter.

name

The local name of the XSLT parameter.

value

The new value of the XSLT parameter.

options

An array of name => value pairs. This syntax is available since PHP 5.1.0.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Changing the owner before the transformation

<?php

$collections = array(
    'Marc Rutkowski' => 'marc',
    'Olivier Parmentier' => 'olivier'
);

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configure the transformer
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // attach the xsl rules

foreach ($collections as $name => $file) {
    // Load the XML source
    $xml = new DOMDocument;
    $xml->load('collection_' . $file . '.xml');

    $proc->setParameter('', 'owner', $name);
    $proc->transformToURI($xml, 'file:///tmp/' . $file . '.html');
}

?>

Смотрите также

XSLTProcessor->getParameter()
XSLTProcessor->removeParameter()

Пред. | Начало | След.
XSLTProcessor->removeParameter() | Уровень выше | XSLTProcessor->transformToDoc()


XSLTProcessor->transformToDoc()

(no version information, might be only in CVS)

XSLTProcessor->transformToDoc() -- Transform to a DOMDocument

Описание

class XSLTProcessor {

DOMDocument transformToDoc ( DOMNode doc )

}

Transforms the source node to a DOMDocument applying the stylesheet given by the XSLTProcessor->importStylesheet() method.

Список параметров

doc

The node to be transformed.

Возвращаемые значения

The resulting DOMDocument or FALSE on error.

Примеры

Пример 1. Transforming to a DOMDocument

<?php

// Load the XML source
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configure the transformer
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // attach the xsl rules

echo trim($proc->transformToDoc($xml)->firstChild->wholeText);

?>

Результат выполнения данного примера:

Hey! Welcome to Nicolas Eliaszewicz's sweet CD collection!

Смотрите также

XSLTProcessor->transformToURI()
XSLTProcessor->transformToXML()

Пред. | Начало | След.
XSLTProcessor->setParameter() | Уровень выше | XSLTProcessor->transformToURI()


XSLTProcessor->transformToURI()

(no version information, might be only in CVS)

XSLTProcessor->transformToURI() -- Transform to URI

Описание

class XSLTProcessor {

int transformToURI ( DOMDocument doc, string uri )

}

Transforms the source node to an URI applying the stylesheet given by the XSLTProcessor->importStylesheet() method.

Список параметров

doc

The transformed document.

uri

Возвращаемые значения

Returns the number of bytes written or FALSE if an error occurred.

Примеры

Пример 1. Transforming to a HTML file

<?php

// Load the XML source
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configure the transformer
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // attach the xsl rules

$proc->transformToURI($xml, 'file:///tmp/out.html');

?>

Смотрите также

XSLTProcessor->transformToDoc()
XSLTProcessor->transformToXML()

Пред. | Начало | След.
XSLTProcessor->transformToDoc() | Уровень выше | XSLTProcessor->transformToXML()


XSLTProcessor->transformToXML()

(no version information, might be only in CVS)

XSLTProcessor->transformToXML() -- Transform to XML

Описание

class XSLTProcessor {

string transformToXML ( DOMDocument doc )

}

Transforms the source node to a string applying the stylesheet given by the XSLTProcessor->importStylesheet() method.

Список параметров

doc

The transformed document.

Возвращаемые значения

The result of the transformation as a string or FALSE on error.

Примеры

Пример 1. Transforming to a string

<?php

// Load the XML source
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Configure the transformer
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // attach the xsl rules

echo $proc->transformToXML($xml);

?>

Результат выполнения данного примера:

Hey! Welcome to Nicolas Eliaszewicz's sweet CD collection!

<h1>Fight for your mind</h1><h2>by Ben Harper - 1995</h2><hr>
<h1>Electric Ladyland</h1><h2>by Jimi Hendrix - 1997</h2><hr>

Смотрите также

XSLTProcessor->transformToDoc()
XSLTProcessor->transformToURI()

Пред. | Начало | След.
XSLTProcessor->transformToURI() | Уровень выше | XSLT Functions


XSLT Functions

Руководство по PHP
Пред. След.

CLXVI. XSLT Functions

Введение

This PHP extension provides a processor independent API to XSLT transformations. Currently this extension only supports the Sablotron library from the Ginger Alliance. Support is planned for other libraries, such as the Xalan library or the libxslt library.

XSLT (Extensible Stylesheet Language (XSL) Transformations) is a language for transforming XML documents into other XML documents. It is a standard defined by The World Wide Web Consortium (W3C). Information about XSLT and related technologies can be found at http://www.w3.org/TR/xslt.

Замечание: This extension is different than the sablotron extension distributed with versions of PHP prior to PHP 4.1, currently only the new XSLT extension in PHP 4.1 is supported. If you need support for the old extension, please ask your questions on the PHP mailing lists.

Замечание: This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 5.0.0.

Замечание: If you need xslt support with PHP 5 you can use the XSL extension.

Требования

This extension uses Sablotron and expat, which can both be found at http://www.gingerall.com/. Binaries are provided as well as source.

Установка

On Unix, run configure with the --enable-xslt --with-xslt-sablot options. The Sablotron library should be installed somewhere your compiler can find it.

Make sure you have the same libraries linked to the Sablotron library as those, which are linked with PHP. The configuration options: --with-expat-dir=DIR --with-iconv-dir=DIR are there to help you specify them. When asking for support, always mention these directives, and whether there are other versions of those libraries installed on your system somewhere. Naturally, provide all the version numbers.

Предостережение

Be sure your Sablot library is linked to -lstdc++ as otherwise your configure will fail, or PHP will fail to run or load.

JavaScript E-XSLT support: If you compiled Sablotron with JavaScript support, you must specify the option: --with-sablot-js=DIR.

Note to Win32 Users: In order to enable this module on a Windows environment, you must copy several files from the DLL folder of the PHP/Win32 binary package to the SYSTEM32 folder of your windows machine. (Ex: C:\WINNT\SYSTEM32 or C:\WINDOWS\SYSTEM32). For PHP <= 4.2.0 copy sablot.dll and expat.dll to your SYSTEM32 folder. For PHP >= 4.2.1 copy sablot.dll, expat.dll and iconv.dll to your SYSTEM32 folder.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

XSLT_OPT_SILENT (integer)

Drop all logging and error reporting. This is a generic option for all backends that may be added in the future.

XSLT_SABOPT_PARSE_PUBLIC_ENTITIES (integer)

Tell Sablotron to parse public entities. By default this has been turned off.

XSLT_SABOPT_DISABLE_ADDING_META (integer)

Do not add the meta tag "Content-Type" for HTML output. The default is set during compilation of Sablotron.

XSLT_SABOPT_DISABLE_STRIPPING (integer)

Suppress the whitespace stripping (on data files only).

XSLT_SABOPT_IGNORE_DOC_NOT_FOUND (integer)

Consider unresolved documents (the document() function) non-lethal.

XSLT_SABOPT_FILES_TO_HANDLER (integer)

XSLT_ERR_UNSUPPORTED_SCHEME (integer)

Error return code, for scheme handlers.

Содержание
xslt_backend_info -- Returns the information on the compilation settings of the backend
xslt_backend_name -- Returns the name of the backend
xslt_backend_version -- Returns the version number of Sablotron
xslt_create -- Create a new XSLT processor
xslt_errno -- Returns an error number
xslt_error -- Returns an error string
xslt_free -- Free XSLT processor
xslt_getopt -- Get options on a given xsl processor
xslt_process -- Perform an XSLT transformation
xslt_set_base -- Set the base URI for all XSLT transformations
xslt_set_encoding -- Set the encoding for the parsing of XML documents
xslt_set_error_handler -- Set an error handler for a XSLT processor
xslt_set_log -- Set the log file to write log messages to
xslt_set_object -- Sets the object in which to resolve callback functions
xslt_set_sax_handler -- Set SAX handlers for a XSLT processor
xslt_set_sax_handlers -- Set the SAX handlers to be called when the XML document gets processed
xslt_set_scheme_handler -- Set Scheme handlers for a XSLT processor
xslt_set_scheme_handlers -- Set the scheme handlers for the XSLT processor
xslt_setopt -- Set options on a given xsl processor

Пред. | Начало | След.
XSLTProcessor->transformToXML() | Уровень выше | xslt_backend_info


xslt_backend_info

(PHP 4 >= 4.3.0, PECL)

xslt_backend_info -- Returns the information on the compilation settings of the backend

Description

string xslt_backend_info ( void )

xslt_backend_info() returns a string with information about the compilation setting of the backend or an error string when no information available.

Смотрите также

xslt_backend_name() и xslt_backend_version().

Пред. | Начало | След.
XSLT Functions | Уровень выше | xslt_backend_name


xslt_backend_name

(PHP 4 >= 4.3.0, PECL)

xslt_backend_name -- Returns the name of the backend

Description

string xslt_backend_name ( void )

xslt_backend_name() will always return Sablotron.

Примеры

Пример 1. xslt_backend_name() example

<?php

echo xslt_backend_name(); // Sablotron

?>

Смотрите также

xslt_backend_info() и xslt_backend_version().

Пред. | Начало | След.
xslt_backend_info | Уровень выше | xslt_backend_version


xslt_backend_version

(PHP 4 >= 4.3.0, PECL)

xslt_backend_version -- Returns the version number of Sablotron

Description

string xslt_backend_version ( void )

xslt_backend_version() returns the version number of Sablotron if available, FALSE otherwise.

Примеры

Пример 1. xslt_backend_version() example

<?php

echo xslt_backend_version(); // 0.98 for example

?>

Смотрите также

xslt_backend_name() и xslt_backend_info().

Пред. | Начало | След.
xslt_backend_name | Уровень выше | xslt_create


xslt_create

(PHP 4 >= 4.0.3, PECL)

xslt_create -- Create a new XSLT processor

Description

resource xslt_create ( void )

Create and return a new XSLT processor resource for manipulation by the other XSLT functions.

Примеры

Пример 1. xslt_create() example

<?php
function xml2html($xmldata, $xsl)
{
    /* $xmldata -> your XML */
    /* $xsl -> XSLT file */

    $path = 'include';
    $arguments = array('/_xml' => $xmldata);
    $xsltproc = xslt_create();
    xslt_set_encoding($xsltproc, 'ISO-8859-1');
    $html =
        xslt_process($xsltproc, 'arg:/_xml', "$path/$xsl", NULL, $arguments);

    if (empty($html)) {
       die('XSLT processing error: '. xslt_error($xsltproc));
    }
    xslt_free($xsltproc);
    return $html;
}
?>

Смотрите также

xslt_free().

Пред. | Начало | След.
xslt_backend_version | Уровень выше | xslt_errno


xslt_errno

(PHP 4 >= 4.0.3, PECL)

xslt_errno -- Returns an error number

Description

int xslt_errno ( resource xh )

Returns an error code describing the last error that occurred on the passed XSLT processor.

Смотрите также

xslt_error().

Пред. | Начало | След.
xslt_create | Уровень выше | xslt_error


xslt_error

(PHP 4 >= 4.0.3, PECL)

xslt_error -- Returns an error string

Description

string xslt_error ( resource xh )

Returns a string describing the last error that occurred on the passed XSLT processor.

Примеры

Пример 1. Handling errors using the xslt_error() and xslt_errno() functions.

<?php

$xh = xslt_create();
$result = xslt_process($xh, 'dog.xml', 'pets.xsl');
if (!$result) {
    die(sprintf("Cannot process XSLT document [%d]: %s",
                xslt_errno($xh), xslt_error($xh)));
}

echo $result;

xslt_free($xh);
?>

Смотрите также

xslt_errno().

Пред. | Начало | След.
xslt_errno | Уровень выше | xslt_free


xslt_free

(PHP 4 >= 4.0.3, PECL)

xslt_free -- Free XSLT processor

Description

void xslt_free ( resource xh )

Free the XSLT processor identified by the given handle.

Смотрите также

xslt_create()

Пред. | Начало | След.
xslt_error | Уровень выше | xslt_getopt


xslt_getopt

(PHP 4 >= 4.3.0, PECL)

xslt_getopt -- Get options on a given xsl processor

Description

int xslt_getopt ( resource processor )

xslt_getopt() returns the options on the given processor.

Смотрите также

xslt_setopt().

Пред. | Начало | След.
xslt_free | Уровень выше | xslt_process


xslt_process

(PHP 4 >= 4.0.3, PECL)

xslt_process -- Perform an XSLT transformation

Description

mixed xslt_process ( resource xh, string xmlcontainer, string xslcontainer [, string resultcontainer [, array arguments [, array parameters]]] )

The xslt_process() function is the crux of the new XSLT extension. It allows you to perform an XSLT transformation using almost any type of input source - the containers. This is accomplished through the use of argument buffers -- a concept taken from the Sablotron XSLT processor (currently the only XSLT processor this extension supports). The input containers default to a filename 'containing' the document to be processed. The result container defaults to a filename for the transformed document. If the result container is not specified - i.e. NULL - than the result is returned.

Внимание

This function has changed its arguments, since version 4.0.6. Do NOT provide the actual XML or XSL content as 2nd and 3rd argument, as this will create a segmentation fault, in Sablotron versions up to and including 0.95.

Containers can also be set via the $arguments array (see below).

The simplest type of transformation with the xslt_process() function is the transformation of an XML file with an XSLT file, placing the result in a third file containing the new XML (or HTML) document. Doing this with sablotron is really quite easy...

Пример 1. Using the xslt_process() to transform an XML file and a XSL file to a new XML file

<?php

// Allocate a new XSLT processor
$xh = xslt_create();

// Process the document
if (xslt_process($xh, 'sample.xml', 'sample.xsl', 'result.xml')) {
    echo "SUCCESS, sample.xml was transformed by sample.xsl into result.xml";
    echo ", result.xml has the following contents\n<br />\n";
    echo "<pre>\n";
    readfile('result.xml');
    echo "</pre>\n";
} else {
    echo "Sorry, sample.xml could not be transformed by sample.xsl into";
    echo "  result.xml the reason is that " . xslt_error($xh) . " and the ";
    echo "error code is " . xslt_errno($xh);
}

xslt_free($xh);

?>

While this functionality is great, many times, especially in a web environment, you want to be able to print out your results directly. Therefore, if you omit the third argument to the xslt_process() function (or provide a NULL value for the argument), it will automatically return the value of the XSLT transformation, instead of writing it to a file...

Пример 2. Using the xslt_process() to transform an XML file and a XSL file to a variable containing the resulting XML data

<?php

// Allocate a new XSLT processor
$xh = xslt_create();

// Process the document, returning the result into the $result variable
$result = xslt_process($xh, 'sample.xml', 'sample.xsl');
if ($result) {
    echo "SUCCESS, sample.xml was transformed by sample.xsl into the \$result";
    echo " variable, the \$result variable has the following contents\n<br />\n";
    echo "<pre>\n";
    echo $result;
    echo "</pre>\n";
} else {
    echo "Sorry, sample.xml could not be transformed by sample.xsl into";
    echo "  the \$result variable the reason is that " . xslt_error($xh);
    echo " and the error code is " . xslt_errno($xh);
}

xslt_free($xh);

?>

The above two cases are the two simplest cases there are when it comes to XSLT transformation and I'd dare say that they are the most common cases, however, sometimes you get your XML and XSLT code from external sources, such as a database or a socket. In these cases you'll have the XML and/or XSLT data in a variable -- and in production applications the overhead of dumping these to file may be too much. This is where XSLT's "argument" syntax, comes to the rescue. Instead of files as the XML and XSLT arguments to the xslt_process() function, you can specify "argument place holders" which are then substituted by values given in the arguments array (5th parameter to the xslt_process() function). The following is an example of processing XML and XSLT into a result variable without the use of files at all.

Пример 3. Using the xslt_process() to transform a variable containing XML data and a variable containing XSL data into a variable containing the resulting XML data

<?php
// $xml and $xsl contain the XML and XSL data

$arguments = array(
     '/_xml' => $xml,
     '/_xsl' => $xsl
);

// Allocate a new XSLT processor
$xh = xslt_create();

// Process the document
$result = xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, $arguments);
if ($result) {
    echo "SUCCESS, sample.xml was transformed by sample.xsl into the \$result";
    echo " variable, the \$result variable has the following contents\n<br />\n";
    echo "<pre>\n";
    echo $result;
    echo "</pre>\n";
} else {
    echo "Sorry, sample.xml could not be transformed by sample.xsl into";
    echo "  the \$result variable the reason is that " . xslt_error($xh);
    echo " and the error code is " . xslt_errno($xh);
}
xslt_free($xh);
?>

Finally, the last argument to the xslt_process() function represents an array for any top-level parameters that you want to pass to the XSLT document. These parameters can then be accessed within your XSL files using the <xsl:param name="parameter_name"> instruction. The parameters must be UTF-8 encoded and their values will be interpreted as strings by the Sablotron processor. In other words - you cannot pass node-sets as parameters to the XSLT document.

Пример 4. Passing PHP variables to XSL files

<?php

// XML string
$xml = '<?xml version="1.0"?>
<para>
 change me
</para>';

// XSL string
$xsl = '
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="ISO-8859-1" indent="no"
 omit-xml-declaration="yes"  media-type="text/html"/>
 <xsl:param name="myvar"/>
 <xsl:param name="mynode"/>
 <xsl:template match="/">
My PHP variable : <xsl:value-of select="$myvar"/><br />
My node set : <xsl:value-of select="$mynode"/>
 </xsl:template>
</xsl:stylesheet>';

$xh = xslt_create();

// the second parameter will be interpreted as a string
$parameters = array (
  'myvar' => 'test',
  'mynode' => '<foo>bar</foo>'
);

$arguments = array (
  '/_xml' => $xml,
  '/_xsl' => $xsl
);

echo xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, $arguments, $parameters);

?>

Результат выполнения данного примера:

My PHP variable : test<br>
My node set : &lt;foo&gt;bar&lt;/foo&gt;

Замечание: Учтите, что в случае использования Windows, вам нужно указать file:// в начале пути.

Пред. | Начало | След.
xslt_getopt | Уровень выше | xslt_set_base


xslt_set_base

(PHP 4 >= 4.0.5, PECL)

xslt_set_base -- Set the base URI for all XSLT transformations

Description

void xslt_set_base ( resource xh, string uri )

Sets the base URI for all XSLT transformations, the base URI is used with Xpath instructions to resolve document() and other commands which access external resources. It is also used to resolve URIs for the <xsl:include> and <xsl:import> elements.

As of 4.3, the default base URI is the directory of the executing script. In effect, it is the directory name value of the __FILE__ constant. Prior to 4.3, the default base URI was less predictable.

Замечание: Учтите, что в случае использования Windows, вам нужно указать file:// в начале пути.

Пред. | Начало | След.
xslt_process | Уровень выше | xslt_set_encoding


xslt_set_encoding

(PHP 4 >= 4.0.5, PECL)

xslt_set_encoding -- Set the encoding for the parsing of XML documents

Description

void xslt_set_encoding ( resource xh, string encoding )

Set the output encoding for the XSLT transformations. When using the Sablotron backend, this option is only available when you compile Sablotron with encoding support.

Пред. | Начало | След.
xslt_set_base | Уровень выше | xslt_set_error_handler


xslt_set_error_handler

(PHP 4 >= 4.0.4, PECL)

xslt_set_error_handler -- Set an error handler for a XSLT processor

Description

void xslt_set_error_handler ( resource xh, mixed handler )

Set an error handler function for the XSLT processor given by xh, this function will be called whenever an error occurs in the XSLT transformation (this function is also called for notices).

The user function needs to accept four parameters: the XSLT processor, the error level, the error code and an array of messages. The function can be shown as: error_handler ( resource xh, int error_level, int error_code, array messages )

Примеры

Пример 1. xslt_set_error_handler() Example

<?php

// Our XSLT error handler
function xslt_error_handler($handler, $errno, $level, $info)
{
  // for now, let's just see the arguments
  var_dump(func_get_args());
}

// XML content :
$xml='<?xml version="1.0"?>
<para>
 oops, I misspelled the closing tag
</pata>';

// XSL content :
$xsl='<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
   <strong><xsl:value-of select="para"/></strong>
</xsl:template>
</xsl:stylesheet>';

$xh = xslt_create();

xslt_set_error_handler($xh, "xslt_error_handler");

echo xslt_process($xh, 'arg:/_xml', 'arg:/_xsl',
                  NULL, array("/_xml" => $xml, "/_xsl" => $xsl));

?>

Результатом выполнения данного примера будет что-то подобное:

array(4) {
  [0]=>
  resource(1) of type (XSLT Processor)
  [1]=>
  int(3)
  [2]=>
  int(0)
  [3]=>
  array(6) {
    ["msgtype"]=>
    string(5) "error"
    ["code"]=>
    string(1) "2"
    ["module"]=>
    string(9) "Sablotron"
    ["URI"]=>
    string(9) "arg:/_xml"
    ["line"]=>
    string(1) "4"
    ["msg"]=>
    string(34) "XML parser error 7: mismatched tag"
  }
}

Смотрите также

xslt_set_object() if you want to use an object method as handler.

Пред. | Начало | След.
xslt_set_encoding | Уровень выше | xslt_set_log


xslt_set_log

(PHP 4 >= 4.0.6, PECL)

xslt_set_log -- Set the log file to write log messages to

Description

void xslt_set_log ( resource xh [, mixed log] )

xh

A reference to the XSLT parser.

log

This parameter is either a boolean value which toggles logging on and off, or a string containing the logfile in which log errors too.

This function allows you to set the file in which you want XSLT log messages to, XSLT log messages are different than error messages, in that log messages are not actually error messages but rather messages related to the state of the XSLT processor. They are useful for debugging XSLT, when something goes wrong.

By default logging is disabled, in order to enable logging you must first call xslt_set_log() with a boolean parameter which enables logging, then if you want to set the log file to debug to, you must then pass it a string containing the filename.

Замечание: Учтите, что в случае использования Windows, вам нужно указать file:// в начале пути.

Примеры

Пример 1. Using the XSLT Logging features

<?php

$xh = xslt_create();
xslt_set_log($xh, true);
xslt_set_log($xh, getcwd() . '/myfile.log');

$result = xslt_process($xh, 'dog.xml', 'pets.xsl');
echo $result;

xslt_free($xh);
?>

Пред. | Начало | След.
xslt_set_error_handler | Уровень выше | xslt_set_object


xslt_set_object

(PHP 4 >= 4.3.0, PECL)

xslt_set_object -- Sets the object in which to resolve callback functions

Description

bool xslt_set_object ( resource processor, object &obj )

This function allows to use the processor inside an object and to resolve all callback functions in it.

The callback functions can be declared with xml_set_sax_handlers(), xslt_set_scheme_handlers() or xslt_set_error_handler() and are assumed to be methods of object.

Примеры

Пример 1. Using your own error handler as a method

<?php

class my_xslt_processor {

    var $_xh; // our XSLT processor

    function my_xslt_processor()
    {
        $this->_xh = xslt_create();

        // Make $this object the callback resolver
        xslt_set_object($this->_xh, $this);

        // Let's handle the errors
        xslt_set_error_handler($this->_xh, "my_xslt_error_handler");
    }

    function my_xslt_error_handler($handler, $errno, $level, $info)
    {
        // for now, let's just see the arguments
        var_dump(func_get_args());
    }
}

?>

Пред. | Начало | След.
xslt_set_log | Уровень выше | xslt_set_sax_handler


xslt_set_sax_handler

(4.0.3 - 4.0.6 only)

xslt_set_sax_handler -- Set SAX handlers for a XSLT processor

Description

void xslt_set_sax_handler ( resource xh, array handlers )

Set SAX handlers on the resource handle given by xh. SAX handlers should be a two dimensional array with the format (all top level elements are optional):

array(
[document] =>
    array(
        start document handler,
        end document handler
    ),
[element] =>
    array(
        start element handler,
        end element handler
    ),
[namespace] =>
    array(
        start namespace handler,
        end namespace handler
    ),
[comment] => comment handler,
[pi] => processing instruction handler,
[character] => character data handler
)

Пред. | Начало | След.
xslt_set_object | Уровень выше | xslt_set_sax_handlers


xslt_set_sax_handlers

(PHP 4 >= 4.0.6, PECL)

xslt_set_sax_handlers -- Set the SAX handlers to be called when the XML document gets processed

Description

void xslt_set_sax_handlers ( resource processor, array handlers )

xslt_set_sax_handlers() registers the SAX handlers for the document, given a XSLT processor resource.

handlers should be an array in the following format:

<?php

$handlers = array(

  "document" => array(
    "start_doc",
    "end_doc"),

  "element"  => array(
    "start_element",
    "end_element"),

  "namespace" => array(
    "start_namespace",
    "end_namespace"),

  "comment"   => "comment",

  "pi"        => "pi",

  "character" => "characters"

);
?>

Where the functions follow the syntax described for the scheme handler functions.

Замечание: The given array does not need to contain all of the different sax handler elements (although it can), but it only needs to conform to "handler" => "function" format described above.

Each of the individual SAX handler functions are in the format below:

  • start_doc ( resource processor )

  • end_doc ( resource processor )

  • start_element ( resource processor, string name, array attributes )

  • end_element ( resource processor, string name )

  • start_namespace ( resource processor, string prefix, string uri )

  • end_namespace ( resource processor, string prefix )

  • comment ( resource processor, string contents )

  • pi ( resource processor, string target, string contents )

  • characters ( resource processor, string contents )

Using xslt_set_sax_handlers() doesn't look very different than running a SAX parser like xml_parse() on the result of an xslt_process() transformation.

Примеры

Пример 1. xslt_set_sax_handlers() Example

<?php
// From ohlesbeauxjours at yahoo dot fr
// Here's a simple example that applies strtoupper() on
// the content of every <auteur> tag and then displays the
// resulting XML tree:

$xml='<?xml version="1.0"?>
<books>
 <book>
  <title>Mme Bovary</title>
  <author>Gustave Flaubert</author>
 </book>
 <book>
  <title>Mrs Dalloway</title>
  <author>Virginia Woolf</author>
 </book>
</books>';

$xsl='<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="ISO-8859-1" indent="no" omit-xml-declaration="yes"/>
<xsl:template match="/">
 <xsl:for-each select="books/book">
  <livre>
   <auteur><xsl:value-of select="author/text()"/></auteur>
  </livre>
 </xsl:for-each>
</xsl:template>
</xsl:stylesheet>';

// Handlers :
function start_document()
{
  // start reading the document
}

function end_document()
{
  // end reading the document
}

function start_element($parser, $name, $attributes)
{
  global $result,$tag;
  $result .= "<". $name . ">";
  $tag = $name;
}

function end_element($parser, $name)
{
  global $result;
  $result .= "</" . $name . ">";
}

function characters($parser, $data)
{
  global $result,$tag;
  if ($tag == "auteur" ) {
    $data = strtoupper($data);
  }
  $result .= $data;
}

// Transformation :
$xh = xslt_create();
$handlers = array("document" => array("start_document","end_document"),
   "element" => array("start_element","end_element"),
   "character" => "characters");

xslt_set_sax_handlers($xh, $handlers);
xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, array("/_xml"=>$xml, "/_xsl"=>$xsl));
xslt_free($xh);
?>

You can also use xslt_set_object() if you want to implement your handlers in an object.

Пример 2. Object oriented handler

<?php
// This is the object oriented version of the previous example
class data_sax_handler {

  var $buffer, $tag, $attrs;

  var $_xh;

  function data_sax_handler($xml, $xsl)
  {
      // our xslt resource
      $this->_xh = xslt_create();

      xslt_set_object($this->_xs, $this);

      // configure sax handlers
      $handlers = array(
        "document" => array('start_document', 'end_document'),
        "element" => array('start_element', 'end_element'),
        "character" => 'characters'
      );

      xslt_set_sax_handlers($this->_xh, $handlers);

      xslt_process($this->_xh, 'arg:/_xml', 'arg:/_xsl', NULL, array("/_xml"=>$xml, "/_xsl"=>$xsl));
      xslt_free($this->_xh);

  }

  function start_document()
  {
        // start reading the document
  }

  function end_document() {
        // complete reading the document
  }

  function start_element($parser, $name, $attributes) {
        $this->tag = $name;
        $this->buffer .= "<" . $name . ">";
        $this->attrs = $attributes;
  }

  function end_element($parser, $name)
  {
        $this->tag = '';
        $this->buffer .= "</" . $name . ">";
  }

  function characters($parser, $data)
  {
    if ($this->tag == 'auteur') {
          $data = strtoupper($data);
    }
    $this->buffer .= $data;
  }

  function get_buffer() {
    return $this->buffer;
  }

}

$exec = new data_sax_handler($xml, $xsl);

?>

Both examples will output:

<livre>
   <auteur>GUSTAVE FLAUBERT</auteur>
</livre>
<livre>
   <auteur>VIRGINIA WOOLF</auteur>
</livre>

Пред. | Начало | След.
xslt_set_sax_handler | Уровень выше | xslt_set_scheme_handler


xslt_set_scheme_handler

(4.0.5 - 4.0.6 only)

xslt_set_scheme_handler -- Set Scheme handlers for a XSLT processor

Description

void xslt_set_scheme_handler ( resource xh, array handlers )

Set Scheme handlers on the resource handle given by xh. Scheme handlers should be an array with the format (all elements are optional):

array(
[get_all] => get all handler,
[open] => open handler,
[get] => get handler,
[put] => put handler,
[close] => close handler
)

Пред. | Начало | След.
xslt_set_sax_handlers | Уровень выше | xslt_set_scheme_handlers


xslt_set_scheme_handlers

(PHP 4 >= 4.0.6, PECL)

xslt_set_scheme_handlers -- Set the scheme handlers for the XSLT processor

Description

void xslt_set_scheme_handlers ( resource processor, array handlers )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
xslt_set_scheme_handler | Уровень выше | xslt_setopt


xslt_setopt

(PHP 4 >= 4.3.0, PECL)

xslt_setopt -- Set options on a given xsl processor

Description

mixed xslt_setopt ( resource processor, int newmask )

xslt_setopt() sets the options specified by newmask on the given processor. Returns the number of previous mask is possible, TRUE otherwise, FALSE in case of an error.

newmask is a bitmask constructed with the following constants:

  • XSLT_SABOPT_PARSE_PUBLIC_ENTITIES - Tell the processor to parse public entities. By default this has been turned off.

  • XSLT_SABOPT_DISABLE_ADDING_META - Do not add the meta tag "Content-Type" for HTML output. The default is set during the compilation of the processor.

  • XSLT_SABOPT_DISABLE_STRIPPING - Suppress the whitespace stripping (on data files only).

  • XSLT_SABOPT_IGNORE_DOC_NOT_FOUND - Consider unresolved documents (the document() function) non-lethal.

Примеры

Пример 1. xslt_setopt() Example

<?php

$xh = xslt_create();

// Tell Sablotron to process public entities
xslt_setopt($xh, XSLT_SABOPT_PARSE_PUBLIC_ENTITIES);

// Let's also ask him to suppress whitespace stripping
xslt_setopt($xh, xslt_getopt($xh) | XSLT_SABOPT_DISABLE_STRIPPING);

?>

Смотрите также

xslt_getopt().

Пред. | Начало | След.
xslt_set_scheme_handlers | Уровень выше | YAZ Functions


YAZ Functions

Руководство по PHP
Пред. След.

CLXVII. YAZ Functions

Введение

This extension offers a PHP interface to the YAZ toolkit that implements the Z39.50 Protocol for Information Retrieval. With this extension you can easily implement a Z39.50 origin (client) that searches or scans Z39.50 targets (servers) in parallel.

The module hides most of the complexity of Z39.50 so it should be fairly easy to use. It supports persistent stateless connections very similar to those offered by the various RDB APIs that are available for PHP. This means that sessions are stateless but shared among users, thus saving the connect and initialize phase steps in most cases.

YAZ is available at http://www.indexdata.dk/yaz/. You can find news information, example scripts, etc. for this extension at http://www.indexdata.dk/phpyaz/.

Замечание: This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 5.0.0.

Установка

Obtain YAZ (ANSI/NISO Z39.50 support) and install it. YAZ can be fetched in source or in various prebuilt packages from the YAZ archive. Systems such as Debian GNU/Linux, Suse Linux, FreeBSD also has YAZ as part of their distribution.

For the PHP 4 series, the YAZ extension is bundled (but not YAZ itself) Build PHP with your favorite modules and add option --with-yaz[=DIR].

Пример 1. YAZ compilation for PHP 4 on Unix

gunzip -c php-4.4.X.tar.gz|tar xf -
gunzip -c yaz-2.1.8.tar.gz|tar xf -
cd yaz-2.1.8
./configure --prefix=/usr
make
sudo make install
cd ../php-4.4.X.
./configure --with-yaz=/usr/bin
make
sudo make install

For PHP 5, the YAZ extension is in PECL and is installed as a shared object/dll. If you have pear installed the easiest way to download, configure and install the YAZ extension is by using the pear command.

Пример 2. Installation of PECL YAZ on GNU/Debian Linux

On a Debian GNU/Linux system the following installs YAZ and PECL YAZ: commands usually suffice:

sudo apt-get install libyaz-dev
sudo pear install yaz

On Windows, php_yaz.dll depend on yaz.dll. The yaz.dll is part of the Win32 ZIP from the PHP site. It is also part of the Windows YAZ install available from the YAZ WIN32 area.

Внимание

The PHP 5.0.5 Win32 zip includes a too old version of yaz.dll (version 1.9.1 < required version 2.0.13). If that's the case use the yaz.dll from a newer YAZ WIN32 install.

On windows, don't forget to add the PHP directory to the PATH, so that the yaz.dll file can be found by the system.

If you are using YAZ as a shared extension, add (or uncomment) the following line in php.ini on Unix:
extension=php_yaz.so
And for Windows:
extension=php_yaz.dll

Внимание

Расширение IMAP не может использоваться вместе с расширениями перекодировки или YAZ. Это связано с тем фактом, что они оба используют один и тот же внутренний символ.

Замечание: The above problem is solved in version 2.0 of YAZ.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. YAZ configuration options

Name | Default | Changeable | Changelog
yaz.max_links | "100" | PHP_INI_ALL | Available since PHP 4.3.0.
yaz.log_file | NULL | PHP_INI_ALL | Available since PHP 4.3.0.
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Примеры

PHP/YAZ keeps track of connections with targets (Z-Associations). A resource represents a connection to a target.

The script below demonstrates the parallel searching feature of the API. When invoked with no arguments it prints a query form; else (arguments are supplied) it searches the targets as given in array host.

Пример 3. Parallel searching using Yaz

<?php
$host=$_REQUEST[host];
$query=$_REQUEST[query];
$num_hosts = count($host);
if (empty($query) || count($host) == 0) {
    echo '<form method="get">
    <input type="checkbox"
    name="host[]" value="bagel.indexdata.dk/gils" />
        GILS test
    <input type="checkbox"
    name="host[]" value="localhost:9999/Default" />
        local test
    <input type="checkbox" checked="checked"
    name="host[]" value="z3950.loc.gov:7090/voyager" />
        Library of Congress
    <br />
    RPN Query:
    <input type="text" size="30" name="query" />
    <input type="submit" name="action" value="Search" />
    </form>
    ';
} else {
    echo 'You searched for ' . htmlspecialchars($query) . '<br />';
    for ($i = 0; $i < $num_hosts; $i++) {
        $id[] = yaz_connect($host[$i]);
    yaz_syntax($id[$i], "usmarc");
        yaz_range($id[$i], 1, 10);
        yaz_search($id[$i], "rpn", $query);
    }
    yaz_wait();
    for ($i = 0; $i < $num_hosts; $i++) {
        echo '<hr />' . $host[$i] . ':';
        $error = yaz_error($id[$i]);
        if (!empty($error)) {
            echo "Error: $error";
        } else {
            $hits = yaz_hits($id[$i]);
            echo "Result Count $hits";
        }
        echo '<dl>';
        for ($p = 1; $p <= 10; $p++) {
            $rec = yaz_record($id[$i], $p, "string");
            if (empty($rec)) continue;
            echo "<dt><b>$p</b></dt><dd>";
            echo nl2br($rec);
            echo "</dd>";
        }
        echo '</dl>';
    }
}
?>

Содержание
yaz_addinfo -- Returns additional error information
yaz_ccl_conf -- Configure CCL parser
yaz_ccl_parse -- Invoke CCL Parser
yaz_close -- Close YAZ connection
yaz_connect -- Prepares for a connection to a Z39.50 server
yaz_database -- Specifies the databases within a session
yaz_element -- Specifies Element-Set Name for retrieval
yaz_errno -- Returns error number
yaz_error -- Returns error description
yaz_es_result -- Inspects Extended Services Result
yaz_get_option -- Returns value of option for connection
yaz_hits -- Returns number of hits for last search
yaz_itemorder -- Prepares for Z39.50 Item Order with an ILL-Request package
yaz_present -- Prepares for retrieval (Z39.50 present)
yaz_range -- Specifies a range of records to retrieve
yaz_record -- Returns a record
yaz_scan_result -- Returns Scan Response result
yaz_scan -- Prepares for a scan
yaz_schema -- Specifies schema for retrieval
yaz_search -- Prepares for a search
yaz_set_option -- Sets one or more options for connection
yaz_sort -- Sets sorting criteria
yaz_syntax -- Specifies the preferred record syntax for retrieval
yaz_wait -- Wait for Z39.50 requests to complete

Пред. | Начало | След.
xslt_setopt | Уровень выше | yaz_addinfo


yaz_addinfo

(PHP 4 >= 4.0.1, PECL)

yaz_addinfo -- Returns additional error information

Описание

string yaz_addinfo ( resource id )

Returns additional error information for the last request on the server.

With some servers, this function may return the same string as yaz_error().

Список параметров

id

The connection resource returned by yaz_connect().

Возвращаемые значения

A string containing additional error information or an empty string if the last operation was successful or if no additional information was provided by the server.

Смотрите также

yaz_error()
yaz_errno()

Пред. | Начало | След.
YAZ Functions | Уровень выше | yaz_ccl_conf


yaz_ccl_conf

(PHP 4 >= 4.0.5, PECL)

yaz_ccl_conf -- Configure CCL parser

Описание

void yaz_ccl_conf ( resource id, array config )

This function configures the CCL query parser for a server with definitions of access points (CCL qualifiers) and their mapping to RPN.

To map a specific CCL query to RPN afterwards call the yaz_ccl_parse() function.

Список параметров

id

The connection resource returned by yaz_connect().

config

An array of configuration. Each key of the array is the name of a CCL field and the corresponding value holds a string that specifies a mapping to RPN.

The mapping is a sequence of attribute-type, attribute-value pairs. Attribute-type and attribute-value is separated by an equal sign (=). Each pair is separated by white space.

Additional information can be found on the CCL page.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

In the example below, the CCL parser is configured to support three CCL fields: ti, au and isbn. Each field is mapped to their BIB-1 equivalent. It is assumed that variable $id is the connection ID.

Пример 1. CCL configuration

<?php
$fields = array(
  "ti" => "1=4",
  "au"   => "1=1",
  "isbn" => "1=7"
);
yaz_ccl_conf($id, $fields);
?>

Смотрите также

yaz_ccl_parse()

Пред. | Начало | След.
yaz_addinfo | Уровень выше | yaz_ccl_parse


yaz_ccl_parse

(PHP 4 >= 4.0.5, PECL)

yaz_ccl_parse -- Invoke CCL Parser

Описание

bool yaz_ccl_parse ( resource id, string query, array &result )

This function invokes a CCL parser. It converts a given CCL FIND query to an RPN query which may be passed to the yaz_search() function to perform a search.

To define a set of valid CCL fields call yaz_ccl_conf() prior to this function.

Список параметров

id

The connection resource returned by yaz_connect().

query

The CCL FIND query.

result

If the function was executed successfully, this will be an array containing the valid RPN query under the key rpn.

Upon failure, three indexes are set in this array to indicate the cause of failure:

  • errorcode - the CCL error code (integer)

  • errorstring - the CCL error string

  • errorpos - approximate position in query of failure (integer is character position)

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. CCL Parsing

We will try to search using CCL. In the example below, $ccl is a CCL query.

<?php

yaz_ccl_conf($id, $fields);  // see example for yaz_ccl_conf
if (!yaz_ccl_parse($id, $ccl, &$cclresult)) {
    echo 'Error: ' . $cclresult["errorstring"];
} else {
    $rpn = $cclresult["rpn"];
    yaz_search($id, "rpn", $rpn);
}
?>

Пред. | Начало | След.
yaz_ccl_conf | Уровень выше | yaz_close


yaz_close

(PHP 4 >= 4.0.1, PECL)

yaz_close -- Close YAZ connection

Описание

bool yaz_close ( resource id )

Closes the connection given by parameter id.

Замечание: This function will only close a non-persistent connection opened by setting the persistent option to FALSE with yaz_connect().

Список параметров

id

The connection resource returned by yaz_connect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

yaz_connect()

Пред. | Начало | След.
yaz_ccl_parse | Уровень выше | yaz_connect


yaz_connect

(PHP 4 >= 4.0.1, PECL)

yaz_connect -- Prepares for a connection to a Z39.50 server

Описание

mixed yaz_connect ( string zurl [, mixed options] )

This function returns a connection resource on success, zero on failure.

yaz_connect() prepares for a connection to a Z39.50 server. This function is non-blocking and does not attempt to establish a connection - it merely prepares a connect to be performed later when yaz_wait() is called.

Замечание: The YAZ proxy is a freely available Z39.50 proxy.

Список параметров

zurl

A string that takes the form host[:port][/database]. If port is omitted, port 210 is used. If database is omitted Default is used.

options

If given as a string, it is treated as the Z39.50 V2 authentication string (OpenAuth).

If given as an array, the contents of the array serves as options.

user

Username for authentication.

group

Group for authentication.

password

Password for authentication.

cookie

Cookie for session (YAZ proxy).

proxy

Proxy for connection (YAZ proxy).

persistent

A boolean. If TRUE the connection is persistent; If FALSE the connection is not persistent. By default connections are persistent.

Замечание: If you open a persistent connection, you won't be able to close it later with yaz_close().

piggyback

A boolean. If TRUE piggyback is enabled for searches; If FALSE piggyback is disabled. By default piggyback is enabled.

Enabling piggyback is more efficient and usually saves a network-round-trip for first time fetches of records. However, a few Z39.50 servers do not support piggyback or they ignore element set names. For those, piggyback should be disabled.

charset

A string that specifies character set to be used in Z39.50 language and character set negotiation. Use strings such as: ISO-8859-1, UTF-8, UTF-16.

Most Z39.50 servers do not support this feature (and thus, this is ignored). Many servers use the ISO-8859-1 encoding for queries and messages. MARC21/USMARC records are not affected by this setting.

Возвращаемые значения

A connection resource on success, FALSE on error.

Список изменений

Версия | Описание
4.1.0 | The parameter options was added.

Смотрите также

yaz_close()

Пред. | Начало | След.
yaz_close | Уровень выше | yaz_database


yaz_database

(PHP 4 >= 4.0.6, PECL)

yaz_database -- Specifies the databases within a session

Описание

bool yaz_database ( resource id, string databases )

This function allows you to change databases within a session by specifying one or more databases to be used in search, retrieval, etc. - overriding databases specified in call to yaz_connect().

Список параметров

id

The connection resource returned by yaz_connect().

databases

A string containing one or more databases. Multiple databases are separated by a plus sign +.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
yaz_connect | Уровень выше | yaz_element


yaz_element

(PHP 4 >= 4.0.1, PECL)

yaz_element -- Specifies Element-Set Name for retrieval

Описание

bool yaz_element ( resource id, string elementset )

This function sets the element set name for retrieval.

Call this function before yaz_search() or yaz_present() to specify the element set name for records to be retrieved.

Замечание: If this function seems effectless, see the description of the piggybacking option in yaz_connect().

Список параметров

id

The connection resource returned by yaz_connect().

elementset

Most servers support F (for full records) and B (for brief records).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
yaz_database | Уровень выше | yaz_errno


yaz_errno

(PHP 4 >= 4.0.1, PECL)

yaz_errno -- Returns error number

Описание

int yaz_errno ( resource id )

Returns an error number for the server (last request) identified by id.

yaz_errno() should be called after network activity for each server - (after yaz_wait() returns) to determine the success or failure of the last operation (e.g. search).

Список параметров

id

The connection resource returned by yaz_connect().

Возвращаемые значения

Returns an error code. The error code is either a Z39.50 diagnostic code (usually a Bib-1 diagnostic) or a client side error code which is generated by PHP/YAZ itself, such as "Connect failed", "Init Rejected", etc.

Смотрите также

yaz_error()
yaz_addinfo()

Пред. | Начало | След.
yaz_element | Уровень выше | yaz_error


yaz_error

(PHP 4 >= 4.0.1, PECL)

yaz_error -- Returns error description

Описание

string yaz_error ( resource id )

yaz_error() returns an English text message corresponding to the last error number as returned by yaz_errno().

Список параметров

id

The connection resource returned by yaz_connect().

Возвращаемые значения

Returns an error text message for server (last request), identified by parameter id. An empty string is returned if the last operation was successful.

Смотрите также

yaz_errno()
yaz_addinfo()

Пред. | Начало | След.
yaz_errno | Уровень выше | yaz_es_result


yaz_es_result

(PHP 4 >= 4.2.0, PECL)

yaz_es_result -- Inspects Extended Services Result

Описание

array yaz_es_result ( resource id )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

id

The connection resource returned by yaz_connect().

Пред. | Начало | След.
yaz_error | Уровень выше | yaz_get_option


yaz_get_option

(PECL)

yaz_get_option -- Returns value of option for connection

Описание

string yaz_get_option ( resource id, string name )

Returns the value of the option specified with name.

Список параметров

id

The connection resource returned by yaz_connect().

name

The option name.

Возвращаемые значения

Returns the value of the specified option or an empty string if the option wasn't set.

Смотрите также

The description of yaz_set_option() for available options

Пред. | Начало | След.
yaz_es_result | Уровень выше | yaz_hits


yaz_hits

(PHP 4 >= 4.0.1, PECL)

yaz_hits -- Returns number of hits for last search

Описание

int yaz_hits ( resource id [, array searchresult] )

yaz_hits() returns the number of hits for the last search.

Список параметров

id

The connection resource returned by yaz_connect().

searchresult

Result array for detailed search result information.

Возвращаемые значения

Returns the number of hits for the last search or 0 if no search was performed.

The search result array (if supplied) holds information that is returned by a Z39.50 server in the SearchResult-1 format part of a search response. The SearchResult-1 format can be used to obtain information about hit counts for various parts of the query (subquery). In particular, it is possible to obtain hit counts for the individual search terms in a query. Information for first subquery is in $array[0], second subquery in $array[1], and so forth.

Таблица 1. searchresult members

Element | Description
id | Sub query ID2 (string)
count | Result count / hits (integer)
subquery.term | Sub query term (string)
interpretation.term | Interpretated sub query term (string)
recommendation.term | Recommended sub query term (string)

Замечание: The SearchResult facility requires PECL YAZ 1.0.5 or later and YAZ 2.1.9 or later.

Замечание: Very few Z39.50 implementations support the SearchResult facility.

Пред. | Начало | След.
yaz_get_option | Уровень выше | yaz_itemorder


yaz_itemorder

(PHP 4 >= 4.0.5, PECL)

yaz_itemorder -- Prepares for Z39.50 Item Order with an ILL-Request package

Описание

void yaz_itemorder ( resource id, array args )

This function prepares for an Extended Services request using the Profile for the Use of Z39.50 Item Order Extended Service to Transport ILL (Profile/1). See this and the specification.

Список параметров

id

The connection resource returned by yaz_connect().

args

Must be an associative array with information about the Item Order request to be sent. The key of the hash is the name of the corresponding ASN.1 tag path. For example, the ISBN below the Item-ID has the key item-id,ISBN.

The ILL-Request parameters are:

protocol-version-num
transaction-id,initial-requester-id,person-or-institution-symbol,person
transaction-id,initial-requester-id,person-or-institution-symbol,institution
transaction-id,initial-requester-id,name-of-person-or-institution,name-of-person
transaction-id,initial-requester-id,name-of-person-or-institution,name-of-institution
transaction-id,transaction-group-qualifier
transaction-id,transaction-qualifier
transaction-id,sub-transaction-qualifier
service-date-time,this,date
service-date-time,this,time
service-date-time,original,date
service-date-time,original,time
requester-id,person-or-institution-symbol,person
requester-id,person-or-institution-symbol,institution
requester-id,name-of-person-or-institution,name-of-person
requester-id,name-of-person-or-institution,name-of-institution
responder-id,person-or-institution-symbol,person
responder-id,person-or-institution-symbol,institution
responder-id,name-of-person-or-institution,name-of-person
responder-id,name-of-person-or-institution,name-of-institution
transaction-type
delivery-address,postal-address,name-of-person-or-institution,name-of-person
delivery-address,postal-address,name-of-person-or-institution,name-of-institution
delivery-address,postal-address,extended-postal-delivery-address
delivery-address,postal-address,street-and-number
delivery-address,postal-address,post-office-box
delivery-address,postal-address,city
delivery-address,postal-address,region
delivery-address,postal-address,country
delivery-address,postal-address,postal-code
delivery-address,electronic-address,telecom-service-identifier
delivery-address,electronic-address,telecom-service-addreess
billing-address,postal-address,name-of-person-or-institution,name-of-person
billing-address,postal-address,name-of-person-or-institution,name-of-institution
billing-address,postal-address,extended-postal-delivery-address
billing-address,postal-address,street-and-number
billing-address,postal-address,post-office-box
billing-address,postal-address,city
billing-address,postal-address,region
billing-address,postal-address,country
billing-address,postal-address,postal-code
billing-address,electronic-address,telecom-service-identifier
billing-address,electronic-address,telecom-service-addreess
ill-service-type
requester-optional-messages,can-send-RECEIVED
requester-optional-messages,can-send-RETURNED
requester-optional-messages,requester-SHIPPED
requester-optional-messages,requester-CHECKED-IN
search-type,level-of-service
search-type,need-before-date
search-type,expiry-date
search-type,expiry-flag
place-on-hold
client-id,client-name
client-id,client-status
client-id,client-identifier
item-id,item-type
item-id,call-number
item-id,author
item-id,title
item-id,sub-title
item-id,sponsoring-body
item-id,place-of-publication
item-id,publisher
item-id,series-title-number
item-id,volume-issue
item-id,edition
item-id,publication-date
item-id,publication-date-of-component
item-id,author-of-article
item-id,title-of-article
item-id,pagination
item-id,ISBN
item-id,ISSN
item-id,additional-no-letters
item-id,verification-reference-source
copyright-complicance
retry-flag
forward-flag
requester-note
forward-note

There are also a few parameters that are part of the Extended Services Request package and the ItemOrder package:

package-name
user-id
contact-name
contact-phone
contact-email
itemorder-item

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Пред. | Начало | След.
yaz_hits | Уровень выше | yaz_present


yaz_present

(PHP 4 >= 4.0.5, PECL)

yaz_present -- Prepares for retrieval (Z39.50 present)

Описание

bool yaz_present ( resource id )

This function prepares for retrieval of records after a successful search.

The yaz_range() function should be called prior to this function to specify the range of records to be retrieved.

Список параметров

id

The connection resource returned by yaz_connect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
yaz_itemorder | Уровень выше | yaz_range


yaz_range

(PHP 4 >= 4.0.1, PECL)

yaz_range -- Specifies a range of records to retrieve

Описание

void yaz_range ( resource id, int start, int number )

Specifies a range of records to retrieve.

This function should be called before yaz_search() or yaz_present().

Список параметров

id

The connection resource returned by yaz_connect().

start

Specifies the position of the first record to be retrieved. The records numbers goes from 1 to yaz_hits().

number

Specifies the number of records to be retrieved.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Пред. | Начало | След.
yaz_present | Уровень выше | yaz_record


yaz_record

(PHP 4 >= 4.0.1, PECL)

yaz_record -- Returns a record

Описание

string yaz_record ( resource id, int pos, string type )

The yaz_record() function inspects a record in the current result set at the position specified by parameter pos.

Список параметров

id

The connection resource returned by yaz_connect().

pos

The record position. Records positions in a result set are numbered 1, 2, ... $hits where $hits is the count returned by yaz_hits().

type

The type specifies the form of the returned record.

Замечание: It is the application which is responsible for actually ensuring that the records are returned from the Z39.50/SRW server in the proper format. The type given only specifies a conversion to take place on the client side (in PHP/YAZ).

Besides conversion of the transfer record to a string/array, PHP/YAZ it is also possible to perform a character set conversion of the record. Especially for USMARC/MARC21 that is recommended since these are typically returned in the character set MARC-8 that is not supported by browsers, etc. To specify a conversion, add ; charset=from, to where from is the original character set of the record and to is the resulting character set (as seen by PHP).

string

The record is returned as a string for simple display. In this mode, all MARC records are converted to a line-by-line format since ISO2709 is hardly readable. XML records and SUTRS are returned in their original format. GRS-1 are returned in a (ugly) line-by-line format.

This format is suitable if records are to be displayed in a quick way - for debugging - or because it is not feasible to perform proper display.

xml

The record is returned as an XML string if possible. In this mode, all MARC records are converted to MARCXML. XML records and SUTRS are returned in their original format. GRS-1 is not supported.

This format is similar to string except that MARC records are converted to MARCXML

This format is suitable if records are processed by an XML parser or XSLT processor afterwards.

raw

The record is returned as a string in its original form. This type is suitable for MARC, XML and SUTRS. It does not work for GRS-1.

MARC records are returned as a ISO2709 string. XML and SUTRS are returned as strings.

syntax

The syntax of the record is returned as a string, i.e. USmarc, GRS-1, XML, etc.

database

The name of database associated with record at the position is returned as a string.

array

The record is returned as an array that reflects the GRS-1 structure. This type is suitable for MARC and GRS-1. XML, SUTRS are not supported and if the actual record is XML or SUTRS an empty string will be returned.

The array returned consists of a list corresponding to each leaf/internal node of GRS-1. Each list item consists a sub list with first element path and data (if data is available).

The path which is a string holds a list of each tree component (of the structured GRS-1 record) from root to leaf. Each component is a tag type, tag value pair of the form (type, value

String tags normally has a corresponding tag type 3. MARC can also be returned as an array (they are converted to GRS-1 internally).

Возвращаемые значения

Returns the record at position pos or an empty string if no record exists at the given position.

If no database record exists at the given position an empty string is returned.

Примеры

Пример 1. Array for GRS-1 record

Consider this GRS-1 record:
(4,52)Robert M. Pirsig
(4,70)
      (4,90)
            (2,7)Transworld Publishers, ltd.
This record has two nodes at root level. First element at root level is (4,52) [tag type 4, tag value 52], and has data Robert M. Pirsig. Second element at root level (4,70) has a subtree with a single element (4,90). (4,90) has yet another sub tree (2,7) with data Transworld Publishers, ltd..

If this record is present at position $p, then
<?php

$ar = yaz_record($id, $p, "array");
print_r($ar);

?>
will output:
Array
(
    [0] => Array
        (
            [0] => (4,52)
            [1] => Robert M. Pirsig
        )
    [1] => Array
        (
            [0] => (4,70)
        )
    [2] => Array
        (
            [0] => (4,70)(4,90)
        )
    [3] => Array
        (
            [0] => (4,70)(4,90)(2,7)
            [1] => Transworld Publishers, ltd.
        )
)

Пример 2. Working with MARCXML

The following PHP snippet returns a MARC21/USMARC record as MARCXML. The original record is returned in marc-8 (unknown to most XML parsers), so we convert it to UTF-8 (which all XML parsers must support).
<?php
$rec = yaz_record($id, $p, "xml; charset=marc-8,utf-8");
?>

The record $rec can be processed with the Sablotron XSLT processor as follows:

<?php

$xslfile = 'display.xsl';
$processor = xslt_create();
$parms = array('/_xml' => $rec);
$res = xslt_process($processor, 'arg:/_xml', $xslfile, NULL, $parms);
xslt_free($processor);
$res = preg_replace("'</?html[^>]*>'", '', $res);
echo $res;

?>

For PHP 5 the XSL extension must be used instead of Sablotron XSLT.

Пред. | Начало | След.
yaz_range | Уровень выше | yaz_scan_result


yaz_scan_result

(PHP 4 >= 4.0.5, PECL)

yaz_scan_result -- Returns Scan Response result

Описание

array yaz_scan_result ( resource id [, array &result] )

yaz_scan_result() returns terms and associated information as received from the server in the last performed yaz_scan().

Список параметров

id

The connection resource returned by yaz_connect().

result

If given, this array will be modified to hold additional information taken from the Scan Response:

  • number - Number of entries returned

  • stepsize - Step size

  • position - Position of term

  • status - Scan status

Возвращаемые значения

Returns an array (0..n-1) where n is the number of terms returned. Each value is a pair where the first item is the term, and the second item is the result-count.

Пред. | Начало | След.
yaz_record | Уровень выше | yaz_scan


yaz_scan

(PHP 4 >= 4.0.5, PECL)

yaz_scan -- Prepares for a scan

Описание

void yaz_scan ( resource id, string type, string startterm [, array flags] )

This function prepares for a Z39.50 Scan Request on the specified connection.

To actually transfer the Scan Request to the server and receive the Scan Response, yaz_wait() must be called. Upon completion of yaz_wait() call yaz_error() and yaz_scan_result() to handle the response.

Список параметров

id

The connection resource returned by yaz_connect().

type

Currently only type rpn is supported.

startterm

Starting term point for the scan.

The form in which the starting term is specified is given by parameter type.

The syntax this parameter is similar to the RPN query as described in yaz_search(). It consists of zero or more @attr-operator specifications, then followed by exactly one token.

flags

This optional parameter specifies additional information to control the behaviour of the scan request. Three indexes are currently read from the flags array: number (number of terms requested), position (preferred position of term) and stepSize (preferred step size).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример 1. PHP function that scans titles

<?php
function scan_titles($id, $startterm)
{
  yaz_scan($id, "rpn", "@attr 1=4 " . $startterm);
  yaz_wait();
  $errno = yaz_errno($id);
  if ($errno == 0) {
    $ar = yaz_scan_result($id, &$options);
    echo 'Scan ok; ';
    foreach ($options as $key => $val) {
      echo "$key = $val &nbsp;";
    }
    echo '<br /><table>';
    while (list($key, list($k, $term, $tcount)) = each($ar)) {
      if (empty($k)) continue;
      echo "<tr><td>$term</td><td>$tcount</td></tr>";
    }
    echo '</table>';
  } else {
    echo "Scan failed. Error: " . yaz_error($id) . "<br />";
  }
}
?>

Пред. | Начало | След.
yaz_scan_result | Уровень выше | yaz_schema


yaz_schema

(PHP 4 >= 4.2.0, PECL)

yaz_schema -- Specifies schema for retrieval

Описание

void yaz_schema ( resource id, string schema )

yaz_schema() specifies the schema for retrieval.

This function should be called before yaz_search() or yaz_present().

Список параметров

id

The connection resource returned by yaz_connect().

schema

Must be specified as an OID (Object Identifier) in a raw dot-notation (like 1.2.840.10003.13.4) or as one of the known registered schemas: GILS-schema, Holdings, Zthes, ...

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Пред. | Начало | След.
yaz_scan | Уровень выше | yaz_search


yaz_search

(PHP 4 >= 4.0.1, PECL)

yaz_search -- Prepares for a search

Описание

bool yaz_search ( resource id, string type, string query )

yaz_search() prepares for a search on the given connection.

Like yaz_connect() this function is non-blocking and only prepares for a search to be executed later when yaz_wait() is called.

Список параметров

id

The connection resource returned by yaz_connect().

type

This parameter represents the query type - only "rpn" is supported now in which case the third argument specifies a Type-1 query in prefix query notation.

query

The RPN query is a textual representation of the Type-1 query as defined by the Z39.50 standard. However, in the text representation as used by YAZ a prefix notation is used, that is the operator precedes the operands. The query string is a sequence of tokens where white space is ignored unless surrounded by double quotes. Tokens beginning with an at-character (@) are considered operators, otherwise they are treated as search terms.

Таблица 1. RPN Operators

Construct | Description
@and query1 query2 | intersection of query1 and query2
@or query1 query2 | union of query1 and query2
@not query1 query2 | query1 and not query2
@set name | result set reference
@attrset set query | specifies attribute-set for query. This construction is only allowed once - in the beginning of the whole query
@attr [set] type=value query | applies attribute to query. The type and value are integers specifying the attribute-type and attribute-value respectively. The set, if given, specifies the attribute-set.

You can find information about attributes at the Z39.50 Maintenance Agency site.

Замечание: If you would like to use a more friendly notation, use the CCL parser - functions yaz_ccl_conf() and yaz_ccl_parse().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Query Examples

You can search for simple terms, like this:
computer
which matches documents where "computer" occur. No attributes are specified.

The query
"knuth donald"
matches documents where "knuth donald" occur (provided that the server supports phrase search).

This query applies two attributes for the same phrase.
@attr 1=1003 @attr 4=1 "knuth donald"
First attribute is type 1 (Bib-1 use), attribute value is 1003 (Author). Second attribute has is type 4 (structure), value 1 (phrase), so this should match documents where Donald Knuth is author.

The query
@and @or a b @not @or c d e
would in infix notation look like (a or b) and ((c or d) not e).

Another, more complex, one:
@attrset gils @and @attr 1=4 art @attr 1=2000 company
The query as a whole uses the GILS attributeset. The query matches documents where art occur in the title (GILS,BIB-1) and in which company occur as Distributor (GILS).

Пред. | Начало | След.
yaz_schema | Уровень выше | yaz_set_option


yaz_set_option

(PECL)

yaz_set_option -- Sets one or more options for connection

Описание

void yaz_set_option ( resource id, string name, string value )

void yaz_set_option ( resource id, array options )

Sets one or more options on the given connection.

Список параметров

id

The connection resource returned by yaz_connect().

name or options

May be either a string or an array.

If given as a string, this will be the name of the option to set. You'll need to give it's value.

If given as an array, this will be an associative array (option name => option value).

Таблица 1. PHP/YAZ Connection Options

Name | Description
implementationName | implementation name of server
implementationVersion | implementation version of server
implementationId | implementation ID of server
schema | schema for retrieval. By default, no schema is used. Setting this option is equivalent to using function yaz_schema()
preferredRecordSyntax | record syntax for retrieval. By default, no syntax is used. Setting this option is equivalent to using function yaz_syntax()
start | offset for first record to be retrieved via yaz_search() or yaz_present(). First record is numbered has a start value of 0. Second record has start value 1. Setting this option in combination with option count has the same effect as calling yaz_range() except that records are numbered from 1 in yaz_range()
count | maximum number of records to be retrieved via yaz_search() or yaz_present().
elementSetName | element-set-name for retrieval. Setting this option is equivalent to calling yaz_element().
value

The new value of the option. Use this only if the previous argument is a string.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Пред. | Начало | След.
yaz_search | Уровень выше | yaz_sort


yaz_sort

(PHP 4 >= 4.1.0, PECL)

yaz_sort -- Sets sorting criteria

Описание

void yaz_sort ( resource id, string criteria )

This function sets sorting criteria and enables Z39.50 Sort.

Call this function before yaz_search(). Using this function alone does not have any effect. When used in conjunction with yaz_search(), a Z39.50 Sort will be sent after a search response has been received and before any records are retrieved with Z39.50 Present (yaz_present().

Список параметров

id

The connection resource returned by yaz_connect().

criteria

A string that takes the form field1 flags1 field2 flags2 where field1 specifies the primary attributes for sort, field2 seconds, etc..

The field specifies either a numerical attribute combinations consisting of type=value pairs separated by comma (e.g. 1=4,2=1) ; or the field may specify a plain string criteria (e.g. title. The flags is a sequence of the following characters which may not be separated by any white space.

Sort Flags

a

Sort ascending

d

Sort descending

i

Case insensitive sorting

s

Case sensitive sorting

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример 1. Sort Criterias

To sort on Bib1 attribute title, case insensitive, and ascending you would use the following sort criteria:
1=4 ia

If the secondary sorting criteria should be author, case sensitive and ascending you would use:
1=4 ia 1=1003 sa

Пред. | Начало | След.
yaz_set_option | Уровень выше | yaz_syntax


yaz_syntax

(PHP 4 >= 4.0.1, PECL)

yaz_syntax -- Specifies the preferred record syntax for retrieval

Описание

void yaz_syntax ( resource id, string syntax )

yaz_syntax() specifies the preferred record syntax for retrieval

This function should be called before yaz_search() or yaz_present().

Список параметров

id

The connection resource returned by yaz_connect().

syntax

The syntax must be specified as an OID (Object Identifier) in a raw dot-notation (like 1.2.840.10003.5.10) or as one of the known registered record syntaxes (sutrs, usmarc, grs1, xml, etc.).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Пред. | Начало | След.
yaz_sort | Уровень выше | yaz_wait


yaz_wait

(PHP 4 >= 4.0.1, PECL)

yaz_wait -- Wait for Z39.50 requests to complete

Описание

mixed yaz_wait ( [array &options] )

This function carries out networked (blocked) activity for outstanding
requests which have been prepared by the functions
yaz_connect(), yaz_search(),
yaz_present(), yaz_scan() and
yaz_itemorder().

yaz_wait() returns when all servers have either completed all requests or aborted (in case of errors).

Список параметров

options

An associative array of options:

timeout

Sets timeout in seconds. If a server has not responded within the timeout it is considered dead and yaz_wait() returns. The default value for timeout is 15 seconds.

event

A boolean.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. In event mode, returns resource or FALSE in case of an error.

Пред. | Начало | След.
yaz_syntax | Уровень выше | YP/NIS Functions


Zip File Functions (Read Only Access)

Руководство по PHP
Пред. След.

CLXIX. Zip File Functions (Read Only Access)

Введение

This module enables you to transparently read ZIP compressed archives and the files inside them.

Требования

This module uses the functions of the ZZIPlib library by Guido Draheim. You need ZZIPlib version >= 0.10.6.

Note that ZZIPlib only provides a subset of functions provided in a full implementation of the ZIP compression algorithm and can only read ZIP file archives. A normal ZIP utility is needed to create the ZIP file archives read by this library.

Установка

Это расширение PECL не поставляется вместе с PHP. Дополнительная информация, такая как новый версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, могут быть найдены здесь: http://pecl.php.net/package/zip.

В PHP 4 исходные файлы этого расширения PECL могут быть найдены в директории ext/ внутри исходных файлов PHP или по ссылке PECL выше. In order to use these functions you must compile PHP with zip support by using the --with-zip[=DIR] configure option.

Windows users will enable php_zip.dll inside of php.ini in order to use these functions. В PHP 4 этот DLL находится в директории extensions/ внутри директории бинарного дистрибутива PHP для Windows. Вы можете скачать DLL этого расширения PECL со страницы PHP Downloads или http://snaps.php.net/.

Замечание: Zip support before PHP 4.1.0 is experimental. This section reflects the Zip extension as it exists in PHP 4.1.0 and later.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Примеры

This example opens a ZIP file archive, reads each file in the archive and prints out its contents. The test2.zip archive used in this example is one of the test archives in the ZZIPlib source distribution.

Пример 1. Zip Usage Example

<?php

$zip = zip_open("/tmp/test2.zip");

if ($zip) {

    while ($zip_entry = zip_read($zip)) {
        echo "Name:               " . zip_entry_name($zip_entry) . "\n";
        echo "Actual Filesize:    " . zip_entry_filesize($zip_entry) . "\n";
        echo "Compressed Size:    " . zip_entry_compressedsize($zip_entry) . "\n";
        echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "\n";

        if (zip_entry_open($zip, $zip_entry, "r")) {
            echo "File Contents:\n";
            $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
            echo "$buf\n";

            zip_entry_close($zip_entry);
        }
        echo "\n";

    }

    zip_close($zip);

}

?>
Содержание
zip_close -- Close a ZIP file archive
zip_entry_close -- Close a directory entry
zip_entry_compressedsize -- Retrieve the compressed size of a directory entry
zip_entry_compressionmethod -- Retrieve the compression method of a directory entry
zip_entry_filesize -- Retrieve the actual file size of a directory entry
zip_entry_name -- Retrieve the name of a directory entry
zip_entry_open -- Open a directory entry for reading
zip_entry_read -- Read from an open directory entry
zip_open -- Open a ZIP file archive
zip_read -- Read next entry in a ZIP file archive

Пред. | Начало | След.
yp_order | Уровень выше | zip_close


zip_close

(PHP 4 >= 4.1.0, PECL)

zip_close -- Close a ZIP file archive

Описание

void zip_close ( resource zip )

Closes the given ZIP file archive.

Список параметров

zip

A ZIP file previously opened with zip_open().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

zip_open()
zip_read()

Пред. | Начало | След.
Zip File Functions (Read Only Access) | Уровень выше | zip_entry_close


zip_entry_close

(PHP 4 >= 4.1.0, PECL)

zip_entry_close -- Close a directory entry

Описание

void zip_entry_close ( resource zip_entry )

Closes the specified directory entry.

Список параметров

zip_entry

A directory entry previously opened zip_entry_open().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

zip_entry_open()
zip_entry_read()

Пред. | Начало | След.
zip_close | Уровень выше | zip_entry_compressedsize


zip_entry_compressedsize

(PHP 4 >= 4.1.0, PECL)

zip_entry_compressedsize -- Retrieve the compressed size of a directory entry

Описание

int zip_entry_compressedsize ( resource zip_entry )

Returns the compressed size of the specified directory entry.

Список параметров

zip_entry

A directory entry returned by zip_read().

Возвращаемые значения

The compressed size.

Смотрите также

zip_open()
zip_read()

Пред. | Начало | След.
zip_entry_close | Уровень выше | zip_entry_compressionmethod


zip_entry_compressionmethod

(PHP 4 >= 4.1.0, PECL)

zip_entry_compressionmethod -- Retrieve the compression method of a directory entry

Описание

string zip_entry_compressionmethod ( resource zip_entry )

Returns the compression method of the directory entry specified by zip_entry.

Список параметров

zip_entry

A directory entry returned by zip_read().

Возвращаемые значения

The compression method.

Смотрите также

zip_open()
zip_read()

Пред. | Начало | След.
zip_entry_compressedsize | Уровень выше | zip_entry_filesize


zip_entry_filesize

(PHP 4 >= 4.1.0, PECL)

zip_entry_filesize -- Retrieve the actual file size of a directory entry

Описание

int zip_entry_filesize ( resource zip_entry )

Returns the actual size of the specified directory entry.

Список параметров

zip_entry

A directory entry returned by zip_read().

Возвращаемые значения

The size of the directory entry.

Смотрите также

zip_open()
zip_read()

Пред. | Начало | След.
zip_entry_compressionmethod | Уровень выше | zip_entry_name


zip_entry_name

(PHP 4 >= 4.1.0, PECL)

zip_entry_name -- Retrieve the name of a directory entry

Описание

string zip_entry_name ( resource zip_entry )

Returns the name of the specified directory entry.

Список параметров

zip_entry

A directory entry returned by zip_read().

Возвращаемые значения

The name of the directory entry.

Смотрите также

zip_open()
zip_read()

Пред. | Начало | След.
zip_entry_filesize | Уровень выше | zip_entry_open


zip_entry_open

(PHP 4 >= 4.1.0, PECL)

zip_entry_open -- Open a directory entry for reading

Описание

bool zip_entry_open ( resource zip, resource zip_entry [, string mode] )

Opens a directory entry in a zip file for reading.

Список параметров

zip

A valid resource handle returned by zip_open().

zip_entry

A directory entry returned by zip_read().

mode

Any of the modes specified in the documentation of fopen().

Замечание: Currently, mode is ignored and is always "rb". This is due to the fact that zip support in PHP is read only access.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание: Unlike fopen() and other similar functions, the return value of zip_entry_open() only indicates the result of the operation and is not needed for reading or closing the directory entry.

Смотрите также

zip_entry_close()
zip_entry_read()

Пред. | Начало | След.
zip_entry_name | Уровень выше | zip_entry_read


zip_entry_read

(PHP 4 >= 4.1.0, PECL)

zip_entry_read -- Read from an open directory entry

Описание

string zip_entry_read ( resource zip_entry [, int length] )

Reads from an open directory entry.

Список параметров

zip_entry

A directory entry returned by zip_read().

length

The number of bytes to return. If not specified, this function will attempt to read 1024 bytes.

Замечание: This should be the uncompressed length you wish to read.

Возвращаемые значения

Returns the data read, or FALSE if the end of the file is reached.

Смотрите также

zip_entry_open()
zip_entry_close()
zip_entry_filesize()

Пред. | Начало | След.
zip_entry_open | Уровень выше | zip_open


zip_open

(PHP 4 >= 4.1.0, PECL)

zip_open -- Open a ZIP file archive

Описание

resource zip_open ( string filename )

Opens a new zip archive for reading.

Список параметров

filename

The file name of the ZIP archive to open.

Возвращаемые значения

Returns a resource handle for later use with zip_read() and zip_close() or returns FALSE if filename does not exist.

Смотрите также

zip_read()
zip_close()

Пред. | Начало | След.
zip_entry_read | Уровень выше | zip_read


zip_read

(PHP 4 >= 4.1.0, PECL)

zip_read -- Read next entry in a ZIP file archive

Описание

resource zip_read ( resource zip )

Reads the next entry in a zip file archive.

Список параметров

zip

A ZIP file previously opened with zip_open().

Возвращаемые значения

Returns a directory entry resource for later use with the zip_entry_... functions or FALSE if there's no more entries to read.

Смотрите также

zip_open()
zip_close()
zip_entry_open()
zip_entry_read()

Пред. | Начало | След.
zip_open | Уровень выше | Функции сжатия Zlib


Функции сжатия Zlib

Руководство по PHP
Пред. След.

CLXX. Функции сжатия Zlib

Введение

Этот модуль позволяет работать со сжатыми файлами gzip (.gz) стандартным методом, наподобие функций файловой системы (исключение составляют только сокеты).

Замечание: В версии 4.0.4 появился новый протокол 'zlib:' для доступа прямого к сжатым файлам через обычные функции f*() (для этого нужно было добавить 'zlib:' в начало пути к файлу при вызове fopen().

В версии 4.3.0, префикс изменился на 'zlib://' для предотвращения многозначности в случае файлов, содержащих ':' в имени.

Требуется библиотека времени выполнения C, предоставляющая функцию fopencookie(). Насколько нам известно, такой библиотекой является только GNU libc.

Требования

Этот модуль использует библиотеку zlib, написанную Jean-loup Gailly и Mark Adler. Используйте версию zlib >= 1.0.9 с этим модулем.

Установка

Поддержка Zlib при стандартной сборке PHP отсутствует. Чтобы изменить это, добавьте ключ --with-zlib[=DIR] при запуске сценария ./configure

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.

Замечание: Т.к. библиотека zlib отсутствует в Windows, она встроена в PHP начиная с версии 4.3.0.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Модуль zlib предоставляет возможность сжатия передаваемых страниц (в т.ч. динамических) на лету, если браузер это поддерживает. За сжатие отвечают три параметра в конфигурационном файле php.ini.

Таблица 1. Конфигурационные параметры, касающиеся Zlib

Параметр | Значение по умолчанию | Переменная окружения
zlib.output_compression | "Off" | PHP_INI_ALL
zlib.output_compression_level | "-1" | PHP_INI_ALL
zlib.output_handler | "" | PHP_INI_ALL
Для подробностей и определения переменных PHP_INI_* см. ini_set().

Краткое разъяснение конфигурационных директив.

zlib.output_compression boolean/integer

Сжимать ли страницы. Если значение равно "On" в php.ini или в настройках Apache, страницы будут сжиматься если обозреватель посылает заголовок "Accept-Encoding: gzip" или "deflate". при этом в вывод будут добавлены заголовки "Content-Encoding: gzip" (соответственно "deflate") и "Vary: Accept-Encoding".

Аргументы также могут быть целого типа, так вы можете установить размер буфера (дискретизации) вывода (по умолчанию 4 Кб).

Замечание: output_handler должен быть пустым, если выбрано значение 'On'! Вместо него следует использовать zlib.output_handler.

zlib.output_compression_level integer

Уровень сжатия.

zlib.output_handler string

Если zlib.output_compression активировано здесь, указывать дополнительные обработчики вывода (output handlers) нельзя. Этот параметр делает то же, что и output_handler, но в другом порядке.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

FORCE_GZIP (integer)

FORCE_DEFLATE (integer)

Примеры

Здесь открывается временный файл, в него записывается строка, затем дважды печатается содержимое этого файла.

Пример 1. Небольшой пример использования Zlib

<?php

$filename = tempnam('/tmp', 'zlibtest') . '.gz';
echo "<html>\n<head></head>\n<body>\n<pre>\n";
$s = "Only a test, test, test, test, test, test, test, test!\n";

// открыть файл для записи с максимальным сжатием
$zp = gzopen($filename, "w9");

// записать строку в файл
gzwrite($zp, $s);

// акрыть файл
gzclose($zp);

// открыть файл для чтения
$zp = gzopen($filename, "r");

// прочитать три символа
echo gzread($zp, 3);

// выводить до конца файла, затем закрыть его
gzpassthru($zp);
gzclose($zp);

echo "\n";

// открыть файл и напечатать его содержимое (во второй раз)
if (readgzfile($filename) != strlen($s)) {
        echo "Error with zlib functions!";
}
unlink($filename);
echo "</pre>\n</body>\n</html>\n";

?>
Содержание
gzclose -- Закрывает открытый gz-указатель
gzcompress -- Сжимает строку
gzdeflate -- Сжимает строку
gzencode -- Сжимает строку в формате gzip
gzeof -- Проверяет, находится ли текущая позиция в конце gz-файла
gzfile -- Считывает весь gz-файл в массив
gzgetc -- Возвращает символ из gz-файла
gzgets -- Возвращает строку из gz-файла
gzgetss -- Возвращает строку из gz-файла с удалёнными HTML-тегами
gzinflate -- Распаковывает строку
gzopen -- Открывает gz-файл
gzpassthru -- Выводит все оставшиеся данные из указателя gz-файла.
gzputs -- Псевдоним gzwrite()
gzread -- Бинарное чтение gz-файла
gzrewind -- Перемещает индикатор позиции в gz-файле в начало
gzseek -- Перемещает индикатор позиции в gz-файле
gztell -- Возвращает текущую позицию чтения/записи в gz-файле
gzuncompress -- Распаковывает строку
gzwrite -- Бинарная запись в gz-файл
readgzfile -- Выводит содержимое gz-файла
zlib_get_coding_type -- Возвращает тип кодирования, используемый для сжатия вывода

Пред. | Начало | След.
zip_read | Уровень выше | gzclose


gzclose

(PHP 3, PHP 4, PHP 5)

gzclose -- Закрывает открытый gz-указатель

Описание

bool gzclose ( resource zp )

Закрывает открытый gz-файл по его указателю.

Список параметров

zp

Указатель на gz-файл. Должен указывать на файл, успешно открытый gzopen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

gzopen()

Пред. | Начало | След.
Функции сжатия Zlib | Уровень выше | gzcompress


gzcompress

(PHP 4 >= 4.0.1, PHP 5)

gzcompress -- Сжимает строку

Описание

string gzcompress ( string data [, int level] )

Сжимает строку используя формат данных ZLIB.

Для подробностей по алгоритму сжатия ZLIB, см. "ZLIB Compressed Data Format Specification 3.3" (RFC 1950).

Замечание: Это не есть gzip-сжатие, которое включает некоторые заголовочные данные. Для gzip-сжатие обратитесь к gzencode().

Список параметров

data

Данные для сжаитя.

level

Уровень сжатия. 0 - без сжатия, 9 - максимум.

Возвращаемые значения

Сжатая строка или FALSE в случае ошибки.

Смотрите также

gzdeflate()
gzinflate()
gzuncompress()
gzencode()

Пред. | Начало | След.
gzclose | Уровень выше | gzdeflate


gzdeflate

(PHP 4 >= 4.0.4, PHP 5)

gzdeflate -- Сжимает строку

Описание

string gzdeflate ( string data [, int level] )

Сжимает строку используя формат данных DEFLATE.

Для подробностей по алгоритму сжатия DEFLATE, см. "DEFLATE Compressed Data Format Specification 1.3" (RFC 1951).

Список параметров

data

Данные для сжатия.

level

Уровень сжатия. 0 - без сжатия, 9 - максимум. Если не указан, будет использоваться уровень сжатия по умолчанию библиотеки zlib.

Возвращаемые значения

Сжатая строка или FALSE в случае ошибки.

Смотрите также

gzinflate()
gzcompress()
gzuncompress()
gzencode()

Пред. | Начало | След.
gzcompress | Уровень выше | gzencode


gzencode

(PHP 4 >= 4.0.4, PHP 5)

gzencode -- Сжимает строку в формате gzip

Описание

string gzencode ( string data [, int level [, int encoding_mode]] )

Возвращает сжатую версию данных data, аналогично выводу программы gzip.

Для подробностей по формату GZIP, см. GZIP file format specification 4.3 (RFC 1952).

Список параметров

data

Данные для сжатия.

level

Уровень сжатия. 0 - без сжатия, 9 - максимальное сжатие. Если не указано, будет использоваться уровень сжатия по умолчанию библиотеки zlib.

encoding_mode

Режим сжатия, может быть FORCE_GZIP (по умолчанию) или FORCE_DEFLATE.

В случае FORCE_DEFLATE, будет возвращена строка, сжатая по алгоритму zlib deflate (с заголовками zlib) после заголовка файла gzip, но без проверочной суммы crc32 в конце.

Возвращаемые значения

Сжатая строка или FALSE в случае ошибки.

Примеры

Возвращаемые данные будут содержать соответствующие заголовки и структуры данных как в обычном .gz-файле, например:

Пример 1. CСоздание файла gzip

<?php
$data = implode("", file("bigfile.txt"));
$gzdata = gzencode($data, 9);
$fp = fopen("bigfile.txt.gz", "w");
fwrite($fp, $gzdata);
fclose($fp);
?>

Список изменений

Версия | Описание
4.2 | добавлен аргумент level.

Смотрите также

gzdeflate()
gzinflate()
gzuncompress()
gzcompress()

Пред. | Начало | След.
gzdeflate | Уровень выше | gzeof


gzeof

(PHP 3, PHP 4, PHP 5)

gzeof -- Проверяет, находится ли текущая позиция в конце gz-файла

Описание

int gzeof ( resource zp )

Тестирует позицию указателя на GZ-файл на EOF (end-of-file).

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

Возвращаемые значения

Возвращает TRUE если позиция в gz-файле находится в EOF или в случае ошибки; иначе возвращает FALSE.

Пред. | Начало | След.
gzencode | Уровень выше | gzfile


gzfile

(PHP 3, PHP 4, PHP 5)

gzfile -- Считывает весь gz-файл в массив

Описание

array gzfile ( string filename [, int use_include_path] )

Аналогична readgzfile(), но возвращает файл, разбитый построчно на массив.

Список параметров

filename

Имя файла.

use_include_path

Если вы хотите, чтобы файл также искался в директориях include_path, установите значение этого аргумента в 1.

Возвращаемые значения

Массив строк файла.

Смотрите также

readgzfile()
gzopen()

Пред. | Начало | След.
gzeof | Уровень выше | gzgetc


gzgetc

(PHP 3, PHP 4, PHP 5)

gzgetc -- Возвращает символ из gz-файла

Описание

string gzgetc ( resource zp )

Возвращает один символ (после распаковки) из gz-файл по его указателю.

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

Возвращаемые значения

Символ (после распаковки) или FALSE в случае EOF (в отличие от gzeof()).

Смотрите также

gzopen()
gzgets()

Пред. | Начало | След.
gzfile | Уровень выше | gzgets


gzgets

(PHP 3, PHP 4, PHP 5)

gzgets -- Возвращает строку из gz-файла

Описание

string gzgets ( resource zp, int length )

Возвращает строку (после распаковки) из gz-файла, её длина ограничивается length - 1 байтами. Чтение заканчивается при достижении максимальной длины, конца строки или конца файла (EOF).

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

length

Максимальный размер возвращаемых данных.

Возвращаемые значения

Распакованная строка или FALSE в случае ошибки.

Смотрите также

gzopen()
gzgetc()
gzgets()

Пред. | Начало | След.
gzgetc | Уровень выше | gzgetss


gzgetss

(PHP 3, PHP 4, PHP 5)

gzgetss -- Возвращает строку из gz-файла с удалёнными HTML-тегами

Описание

string gzgetss ( resource zp, int length [, string allowable_tags] )

Аналогично gzgets(), только gzgetss() также удаляет все теги HTML PHP из возвращаемой строки.

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

length

Максимальный размер возвращаемых данных.

allowable_tags

Используйте этот аргумент чтобы указать теги, которые не следует удалять из возвращаемой строки.

Возвращаемые значения

Распакованная строка без разметки или FALSE в случае ошибки.

Список изменений

Версия | Описание
3.0.13 и 4.0b3 | добавлен аргумент allowable_tags.

Смотрите также

gzopen()
gzgets()
strip_tags()

Пред. | Начало | След.
gzgets | Уровень выше | gzinflate


gzinflate

(PHP 4 >= 4.0.4, PHP 5)

gzinflate -- Распаковывает строку

Описание

string gzinflate ( string data [, int length] )

Распаковывает сжатую строку.

Список параметров

data

Данные, сжатые функцией gzdeflate().

length

Максимальная длина данных для распаковки.

Возвращаемые значения

Распакованные данные или FALSE в случае ошибки.

Функция сообщит об ошибке также в случае, когда распакованные данные длиннее в более, чем 32768 или length раз, сжатых.

Смотрите также

gzdeflate()
gzcompress()
gzuncompress()
gzencode()

Пред. | Начало | След.
gzgetss | Уровень выше | gzopen


gzopen

(PHP 3, PHP 4, PHP 5)

gzopen -- Открывает gz-файл

Описание

resource gzopen ( string filename, string mode [, int use_include_path] )

Открывает файл gzip (.gz) для чтение или записи.

gzopen() также можно использовать для несжатых файлов (т.е. не в формате gzip); в этом случае gzread() вернёт файл напрямую, без какой-либо обработки.

Список параметров

filename

Имя файла.

mode

К в fopen() (rb или wb), но также может включать уровень сжатия (wb9) или стратегию: f для фильтрации данных как в wb6f, h для Huffman only compression как в wb1h (см. описание deflateInit2 в zlib.h).

use_include_path

Если вы хотите, чтобы файл также искался в директориях include_path, установите значение этого аргумента в 1.

Возвращаемые значения

Возвращает указатель на открытый файл, после чего всё, что вы читаете из этого дескриптора, будет автоматически распаковываться, а всё, что вы записываете - упаковываться.

В случае ошибки функция возвращает FALSE.

Примеры

Пример 1. Пример использования gzopen()

<?php
$fp = gzopen("/tmp/file.gz", "r");
?>

Смотрите также

gzclose()

Пред. | Начало | След.
gzinflate | Уровень выше | gzpassthru


gzpassthru

(PHP 3, PHP 4, PHP 5)

gzpassthru -- Выводит все оставшиеся данные из указателя gz-файла.

Описание

int gzpassthru ( resource zp )

Читает до конца файла (EOF) данные из указателя gz-файла и записывает (несжатый) результат в стандартный вывод.

Замечание: Используйте gzrewind(), чтобы переместить позицию в начало файла, если вы уже записали данные в него.

Подсказка: Если вам нужно просто вывести содержимое файла без перемещения позиции или внесения изменений, используйте функцию readgzfile(), которая не требует вызова функции gzopen().

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

Возвращаемые значения

Количество символов (после распаковки), прочтённых из gz, или FALSE в случае ошибки.

Примеры

Пример 1. Пример использования gzpassthru()

<?php
$fp = gzopen('file.gz', 'r');
gzpassthru($fp);
gzclose($fp);
?>

Пред. | Начало | След.
gzopen | Уровень выше | gzputs


gzputs

(PHP 3, PHP 4, PHP 5)

gzputs -- Псевдоним gzwrite()

Описание

Псевдоним функции gzwrite().

Пред. | Начало | След.
gzpassthru | Уровень выше | gzread


gzread

(PHP 3, PHP 4, PHP 5)

gzread -- Бинарное чтение gz-файла

Описание

string gzread ( resource zp, int length )

Читает (распаковывая) до length байт из gz-файла по указателю на него. Чтение заканчивается при достижении максимальной длины или конца файла (EOF).

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

length

Количество байт (после распаковки), которые следует считать.

Возвращаемые значения

Прочтённые данные.

Примеры

Пример 1. Пример использования gzread()

<?php
// поместить содержимое gz-файла в строку
$filename = "/usr/local/something.txt.gz";
$zd = gzopen($filename, "r");
$contents = gzread($zd, 10000);
gzclose($zd);
?>

Смотрите также

gzwrite()
gzopen()
gzgets()
gzgetss()
gzfile()
gzpassthru()

Пред. | Начало | След.
gzputs | Уровень выше | gzrewind


gzrewind

(PHP 3, PHP 4, PHP 5)

gzrewind -- Перемещает индикатор позиции в gz-файле в начало

Описание

bool gzrewind ( resource zp )

Устанавливает индикатор позиции файла на начало потока этого файла.

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

gzseek()
gztell()

Пред. | Начало | След.
gzread | Уровень выше | gzseek


gzseek

(PHP 3, PHP 4, PHP 5)

gzseek -- Перемещает индикатор позиции в gz-файле

Описание

int gzseek ( resource zp, int offset )

Устанавливает индикатор позиции файла, на который ссылается zp, в смещение в байтах потока этого файла. Эквивалентно вызову (на C) gzseek(zp, offset, SEEK_SET).

Если файл открыт для чтения, эта функция симулируется, но будет работать очень медленно. Если файл открыт для записи, разрешён только поиск вперёд; gzseek() при этом сжимает последовательность нулей до новой позиции.

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

offset

Смещение.

Возвращаемые значения

При успешном завершении возвращает 0; иначе -1. Обратите внимание, что если смещение стоит после EOF, это не является ошибкой.

Смотрите также

gztell()
gzrewind()

Пред. | Начало | След.
gzrewind | Уровень выше | gztell


gztell

(PHP 3, PHP 4, PHP 5)

gztell -- Возвращает текущую позицию чтения/записи в gz-файле

Описание

int gztell ( resource zp )

Возвращает позицию в файле по его указателю, т.е. смещение в потоке данного файла.

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

Возвращаемые значения

Текущая позиция или FALSE в случае ошибки.

Смотрите также

gzopen()
gzseek()
gzrewind()

Пред. | Начало | След.
gzseek | Уровень выше | gzuncompress


gzuncompress

(PHP 4 >= 4.0.1, PHP 5)

gzuncompress -- Распаковывает строку

Описание

string gzuncompress ( string data [, int length] )

Распаковывает строку.

Список параметров

data

Данные, сжатые функцией gzcompress().

length

Максимальная длина данных для распаковки.

Возвращаемые значения

Распакованные данные или FALSE в случае ошибки.

Функция сообщит об ошибке также в случае, когда распакованные данные длиннее в более, чем 32768 или length раз сжатых.

Смотрите также

gzcompress()
gzinflate()
gzdeflate()
gzencode()

Пред. | Начало | След.
gztell | Уровень выше | gzwrite


gzwrite

(PHP 3, PHP 4, PHP 5)

gzwrite -- Бинарная запись в gz-файл

Описание

int gzwrite ( resource zp, string string [, int length] )

Записывает содержимое string в данный gz-файл.

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

string

Записываемая строка.

length

Число записываемых байтов (до сжатия). Если указано, запись завершится по записи length байтов или достижении конца строки string.

Замечание: Обратите внимание, что если аргумент length задан, конфигурационный паарметр magic_quotes_runtime будет проигнорирован и удаление косых чёрточек из записываемый строки произведено не будет.

Возвращаемые значения

Возвращает число действительно записанных байт (без учёта сжатия) в поток gz-файла.

Смотрите также

gzread()
gzopen()

Пред. | Начало | След.
gzuncompress | Уровень выше | readgzfile


readgzfile

(PHP 3, PHP 4, PHP 5)

readgzfile -- Выводит содержимое gz-файла

Описание

int readgzfile ( string filename [, int use_include_path] )

Читает файл, распаковывает его и записывает в стандартный вывод.

Может также использоваться для чтения файла, не имеющего формат gzip; в этом случае readgzfile() непосредственно читает из файла без дополнительной обработки.

Список параметров

filename

Имя файла.

use_include_path

Вы можете использовать необязательный второй параметр и установить его в 1, если вы хотите, чтобы файл также искался в директориях include_path.

Возвращаемые значения

Возвращает количество байтов в файле (после распаковки). Если возникает ошибка, возвращается FALSE и, если функция не была вызвана как @readgzfile, выводится сообщение об ошибке.

Смотрите также

gzpassthru()
gzfile()
gzopen()

Пред. | Начало | След.
gzwrite | Уровень выше | zlib_get_coding_type


zlib_get_coding_type

(PHP 4 >= 4.3.2, PHP 5)

zlib_get_coding_type -- Возвращает тип кодирования, используемый для сжатия вывода

Описание

string zlib_get_coding_type ( void )

Возвращает тип кодирования, используемый для сжатия вывода.

Возвращаемые значения

Возможные значения: gzip, deflate или FALSE.

Смотрите также

zlib.output_compression

Пред. | Начало | След.
readgzfile | Уровень выше | PHP and Zend Engine Internals


Zend API: Hacking the Core of PHP

Руководство по PHP
Пред. След.

Глава 46. Zend API: Hacking the Core of PHP

Содержание
Introduction
Overview
Extension Possibilities
Source Layout
PHP's Automatic Build System
Creating Extensions
Using Extensions
Troubleshooting
Source Discussion
Accepting Arguments
Creating Variables
Duplicating Variable Contents: The Copy Constructor
Returning Values
Printing Information
Startup and Shutdown Functions
Calling User Functions
Initialization File Support
Where to Go from Here
Reference: Some Configuration Macros
API Macros
API Functions (work in progress)

Introduction

Those who know don't talk.

Those who talk don't know.

Sometimes, PHP "as is" simply isn't enough. Although these cases are rare for the average user, professional applications will soon lead PHP to the edge of its capabilities, in terms of either speed or functionality. New functionality cannot always be implemented natively due to language restrictions and inconveniences that arise when having to carry around a huge library of default code appended to every single script, so another method needs to be found for overcoming these eventual lacks in PHP.

As soon as this point is reached, it's time to touch the heart of PHP and take a look at its core, the C code that makes PHP go.

Пред. | Начало | След.
Error handling | Уровень выше | Overview


Overview

"Extending PHP" is easier said than done. PHP has evolved to a full-fledged tool consisting of a few megabytes of source code, and to hack a system like this quite a few things have to be learned and considered. When structuring this chapter, we finally decided on the "learn by doing" approach. This is not the most scientific and professional approach, but the method that's the most fun and gives the best end results. In the following sections, you'll learn quickly how to get the most basic extensions to work almost instantly. After that, you'll learn about Zend's advanced API functionality. The alternative would have been to try to impart the functionality, design, tips, tricks, etc. as a whole, all at once, thus giving a complete look at the big picture before doing anything practical. Although this is the "better" method, as no dirty hacks have to be made, it can be very frustrating as well as energy- and time-consuming, which is why we've decided on the direct approach.

Note that even though this chapter tries to impart as much knowledge as possible about the inner workings of PHP, it's impossible to really give a complete guide to extending PHP that works 100% of the time in all cases. PHP is such a huge and complex package that its inner workings can only be understood if you make yourself familiar with it by practicing, so we encourage you to work with the source.

What Is Zend? and What Is PHP?

The name Zend refers to the language engine, PHP's core. The term PHP refers to the complete system as it appears from the outside. This might sound a bit confusing at first, but it's not that complicated (see Рис. 46-1). To implement a Web script interpreter, you need three parts:

  1. The interpreter part analyzes the input code, translates it, and executes it.

  2. The functionality part implements the functionality of the language (its functions, etc.).

  3. The interface part talks to the Web server, etc.

Zend takes part 1 completely and a bit of part 2; PHP takes parts 2 and 3. Together they form the complete PHP package. Zend itself really forms only the language core, implementing PHP at its very basics with some predefined functions. PHP contains all the modules that actually create the language's outstanding capabilities.

Рисунок 46-1. The internal structure of PHP.

The following sections discuss where PHP can be extended and how it's done.

Пред. | Начало | След.
Zend API: Hacking the Core of PHP | Уровень выше | Extension Possibilities


Extension Possibilities

As shown in Рис. 46-1 above, PHP can be extended primarily at three points: external modules, built-in modules, and the Zend engine. The following sections discuss these options.

External Modules

External modules can be loaded at script runtime using the function dl(). This function loads a shared object from disk and makes its functionality available to the script to which it's being bound. After the script is terminated, the external module is discarded from memory. This method has both advantages and disadvantages, as described in the following table:

Advantages | Disadvantages
External modules don't require recompiling of PHP. | The shared objects need to be loaded every time a script is being executed (every hit), which is very slow.
The size of PHP remains small by "outsourcing" certain functionality. | External additional files clutter up the disk.
 | Every script that wants to use an external module's functionality has to specifically include a call to dl(), or the extension tag in php.ini needs to be modified (which is not always a suitable solution).

To sum up, external modules are great for third-party products, small additions to PHP that are rarely used, or just for testing purposes. To develop additional functionality quickly, external modules provide the best results. For frequent usage, larger implementations, and complex code, the disadvantages outweigh the advantages.

Third parties might consider using the extension tag in php.ini to create additional external modules to PHP. These external modules are completely detached from the main package, which is a very handy feature in commercial environments. Commercial distributors can simply ship disks or archives containing only their additional modules, without the need to create fixed and solid PHP binaries that don't allow other modules to be bound to them.

Built-in Modules

Built-in modules are compiled directly into PHP and carried around with every PHP process; their functionality is instantly available to every script that's being run. Like external modules, built-in modules have advantages and disadvantages, as described in the following table:

Advantages | Disadvantages
No need to load the module specifically; the functionality is instantly available. | Changes to built-in modules require recompiling of PHP.
No external files clutter up the disk; everything resides in the PHP binary. | The PHP binary grows and consumes more memory.

Built-in modules are best when you have a solid library of functions that remains relatively unchanged, requires better than poor-to-average performance, or is used frequently by many scripts on your site. The need to recompile PHP is quickly compensated by the benefit in speed and ease of use. However, built-in modules are not ideal when rapid development of small additions is required.

The Zend Engine

Of course, extensions can also be implemented directly in the Zend engine. This strategy is good if you need a change in the language behavior or require special functions to be built directly into the language core. In general, however, modifications to the Zend engine should be avoided. Changes here result in incompatibilities with the rest of the world, and hardly anyone will ever adapt to specially patched Zend engines. Modifications can't be detached from the main PHP sources and are overridden with the next update using the "official" source repositories. Therefore, this method is generally considered bad practice and, due to its rarity, is not covered in this book.

Пред. | Начало | След.
Overview | Уровень выше | Source Layout


Source Layout

Замечание: Prior to working through the rest of this chapter, you should retrieve clean, unmodified source trees of your favorite Web server. We're working with Apache (available at http://www.apache.org/) and, of course, with PHP (available at http://www.php.net/ - does it need to be said?).

Make sure that you can compile a working PHP environment by yourself! We won't go into this issue here, however, as you should already have this most basic ability when studying this chapter.

Before we start discussing code issues, you should familiarize yourself with the source tree to be able to quickly navigate through PHP's files. This is a must-have ability to implement and debug extensions.

The following table describes the contents of the major directories.

Directory | Contents
php-src | Main PHP source files and main header files; here you'll find all of PHP's API definitions, macros, etc. (important). Everything else is below this directory.
php-src/ext | Repository for dynamic and built-in modules; by default, these are the "official" PHP modules that have been integrated into the main source tree. From PHP 4.0, it's possible to compile these standard extensions as dynamic loadable modules (at least, those that support it).
php-src/main | This directory contains the main php macros and definitions. (important)
php-src/pear | Directory for the PHP Extension and Application Repository. This directory contains core PEAR files.
php-src/sapi | Contains the code for the different server abstraction layers.
TSRM | Location of the "Thread Safe Resource Manager" (TSRM) for Zend and PHP.
ZendEngine2 | Location of the Zend Engine files; here you'll find all of Zend's API definitions, macros, etc. (important).

Discussing all the files included in the PHP package is beyond the scope of this chapter. However, you should take a close look at the following files:

  • php-src/main/php.h, located in the main PHP directory. This file contains most of PHP's macro and API definitions.

  • php-src/Zend/zend.h, located in the main Zend directory. This file contains most of Zend's macros and definitions.

  • php-src/Zend/zend_API.h, also located in the Zend directory, which defines Zend's API.

You should also follow some sub-inclusions from these files; for example, the ones relating to the Zend executor, the PHP initialization file support, and such. After reading these files, take the time to navigate around the package a little to see the interdependencies of all files and modules - how they relate to each other and especially how they make use of each other. This also helps you to adapt to the coding style in which PHP is authored. To extend PHP, you should quickly adapt to this style.

Extension Conventions

Zend is built using certain conventions; to avoid breaking its standards, you should follow the rules described in the following sections.

Macros

For almost every important task, Zend ships predefined macros that are extremely handy. The tables and figures in the following sections describe most of the basic functions, structures, and macros. The macro definitions can be found mainly in zend.h and zend_API.h. We suggest that you take a close look at these files after having studied this chapter. (Although you can go ahead and read them now, not everything will make sense to you yet.)

Memory Management

Resource management is a crucial issue, especially in server software. One of the most valuable resources is memory, and memory management should be handled with extreme care. Memory management has been partially abstracted in Zend, and you should stick to this abstraction for obvious reasons: Due to the abstraction, Zend gets full control over all memory allocations. Zend is able to determine whether a block is in use, automatically freeing unused blocks and blocks with lost references, and thus prevent memory leaks. The functions to be used are described in the following table:

Function | Description
emalloc() | Serves as replacement for malloc().
efree() | Serves as replacement for free().
estrdup() | Serves as replacement for strdup().
estrndup() | Serves as replacement for strndup(). Faster than estrdup() and binary-safe. This is the recommended function to use if you know the string length prior to duplicating it.
ecalloc() | Serves as replacement for calloc().
erealloc() | Serves as replacement for realloc().

emalloc(), estrdup(), estrndup(), ecalloc(), and erealloc() allocate internal memory; efree() frees these previously allocated blocks. Memory handled by the e*() functions is considered local to the current process and is discarded as soon as the script executed by this process is terminated.

Внимание

To allocate resident memory that survives termination of the current script, you can use malloc() and free(). This should only be done with extreme care, however, and only in conjunction with demands of the Zend API; otherwise, you risk memory leaks.

Zend also features a thread-safe resource manager to provide better native support for multithreaded Web servers. This requires you to allocate local structures for all of your global variables to allow concurrent threads to be run. Because the thread-safe mode of Zend was not finished back when this was written, it is not yet extensively covered here.

Directory and File Functions

The following directory and file functions should be used in Zend modules. They behave exactly like their C counterparts, but provide virtual working directory support on the thread level.

Zend Function | Regular C Function
V_GETCWD() | getcwd()
V_FOPEN() | fopen()
V_OPEN() | open()
V_CHDIR() | chdir()
V_GETWD() | getwd()
V_CHDIR_FILE() | Takes a file path as an argument and changes the current working directory to that file's directory.
V_STAT() | stat()
V_LSTAT() | lstat()

String Handling

Strings are handled a bit differently by the Zend engine than other values such as integers, Booleans, etc., which don't require additional memory allocation for storing their values. If you want to return a string from a function, introduce a new string variable to the symbol table, or do something similar, you have to make sure that the memory the string will be occupying has previously been allocated, using the aforementioned e*() functions for allocation. (This might not make much sense to you yet; just keep it somewhere in your head for now - we'll get back to it shortly.)

Complex Types

Complex types such as arrays and objects require different treatment. Zend features a single API for these types - they're stored using hash tables.

Замечание: To reduce complexity in the following source examples, we're only working with simple types such as integers at first. A discussion about creating more advanced types follows later in this chapter.

Пред. | Начало | След.
Extension Possibilities | Уровень выше | PHP's Automatic Build System


PHP's Automatic Build System

PHP 4 features an automatic build system that's very flexible. All modules reside in a subdirectory of the ext directory. In addition to its own sources, each module consists of a config.m4 file, for extension configuration. (for example, see http://www.gnu.org/software/m4/manual/m4.html)

All these stub files are generated automatically, along with .cvsignore, by a little shell script named ext_skel that resides in the ext directory. As argument it takes the name of the module that you want to create. The shell script then creates a directory of the same name, along with the appropriate stub files.

Step by step, the process looks like this:
:~/cvs/php4/ext:> ./ext_skel --extname=my_module
Creating directory my_module
Creating basic files: config.m4 .cvsignore my_module.c php_my_module.h CREDITS EXPERIMENTAL tests/001.phpt my_module.php [done].

To use your new extension, you will have to execute the following steps:

1.  $ cd ..
2.  $ vi ext/my_module/config.m4
3.  $ ./buildconf
4.  $ ./configure --[with|enable]-my_module
5.  $ make
6.  $ ./php -f ext/my_module/my_module.php
7.  $ vi ext/my_module/my_module.c
8.  $ make

Repeat steps 3-6 until you are satisfied with ext/my_module/config.m4 and
step 6 confirms that your module is compiled into PHP. Then, start writing
code and repeat the last two steps as often as necessary.
This instruction creates the aforementioned files. To include the new module in the automatic configuration and build process, you have to run buildconf, which regenerates the configure script by searching through the ext directory and including all found config.m4 files.

The default config.m4 shown in Прим. 46-1 is a bit more complex:

Пример 46-1. The default config.m4.

dnl $Id: build.xml,v 1.1 2005/08/21 16:27:06 goba Exp $
dnl config.m4 for extension my_module

dnl Comments in this file start with the string 'dnl'.
dnl Remove where necessary. This file will not work
dnl without editing.

dnl If your extension references something external, use with:

dnl PHP_ARG_WITH(my_module, for my_module support,
dnl Make sure that the comment is aligned:
dnl [  --with-my_module             Include my_module support])

dnl Otherwise use enable:

dnl PHP_ARG_ENABLE(my_module, whether to enable my_module support,
dnl Make sure that the comment is aligned:
dnl [  --enable-my_module           Enable my_module support])

if test "$PHP_MY_MODULE" != "no"; then
  dnl Write more examples of tests here...

  dnl # --with-my_module -> check with-path
  dnl SEARCH_PATH="/usr/local /usr"     # you might want to change this
  dnl SEARCH_FOR="/include/my_module.h"  # you most likely want to change this
  dnl if test -r $PHP_MY_MODULE/; then # path given as parameter
  dnl   MY_MODULE_DIR=$PHP_MY_MODULE
  dnl else # search default path list
  dnl   AC_MSG_CHECKING([for my_module files in default path])
  dnl   for i in $SEARCH_PATH ; do
  dnl     if test -r $i/$SEARCH_FOR; then
  dnl       MY_MODULE_DIR=$i
  dnl       AC_MSG_RESULT(found in $i)
  dnl     fi
  dnl   done
  dnl fi
  dnl
  dnl if test -z "$MY_MODULE_DIR"; then
  dnl   AC_MSG_RESULT([not found])
  dnl   AC_MSG_ERROR([Please reinstall the my_module distribution])
  dnl fi

  dnl # --with-my_module -> add include path
  dnl PHP_ADD_INCLUDE($MY_MODULE_DIR/include)

  dnl # --with-my_module -> chech for lib and symbol presence
  dnl LIBNAME=my_module # you may want to change this
  dnl LIBSYMBOL=my_module # you most likely want to change this

  dnl PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL,
  dnl [
  dnl   PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $MY_MODULE_DIR/lib, MY_MODULE_SHARED_LIBADD)
  dnl   AC_DEFINE(HAVE_MY_MODULELIB,1,[ ])
  dnl ],[
  dnl   AC_MSG_ERROR([wrong my_module lib version or lib not found])
  dnl ],[
  dnl   -L$MY_MODULE_DIR/lib -lm -ldl
  dnl ])
  dnl
  dnl PHP_SUBST(MY_MODULE_SHARED_LIBADD)

  PHP_NEW_EXTENSION(my_module, my_module.c, $ext_shared)
fi

If you're unfamiliar with M4 files (now is certainly a good time to get familiar), this might be a bit confusing at first; but it's actually quite easy.

Note: Everything prefixed with dnl is treated as a comment and is not parsed.

The config.m4 file is responsible for parsing the command-line options passed to configure at configuration time. This means that it has to check for required external files and do similar configuration and setup tasks.

The default file creates two configuration directives in the configure script: --with-my_module and --enable-my_module. Use the first option when referring external files (such as the --with-apache directive that refers to the Apache directory). Use the second option when the user simply has to decide whether to enable your extension. Regardless of which option you use, you should uncomment the other, unnecessary one; that is, if you're using --enable-my_module, you should remove support for --with-my_module, and vice versa.

By default, the config.m4 file created by ext_skel accepts both directives and automatically enables your extension. Enabling the extension is done by using the PHP_EXTENSION macro. To change the default behavior to include your module into the PHP binary when desired by the user (by explicitly specifying --enable-my_module or --with-my_module), change the test for $PHP_MY_MODULE to == "yes":
if test "$PHP_MY_MODULE" == "yes"; then dnl
    Action.. PHP_EXTENSION(my_module, $ext_shared)
    fi
This would require you to use --enable-my_module each time when reconfiguring and recompiling PHP.

Note: Be sure to run buildconf every time you change config.m4!

We'll go into more details on the M4 macros available to your configuration scripts later in this chapter. For now, we'll simply use the default files.

Пред. | Начало | След.
Source Layout | Уровень выше | Creating Extensions


Creating Extensions

We'll start with the creation of a very simple extension at first, which basically does nothing more than implement a function that returns the integer it receives as parameter. Прим. 46-2 shows the source.

Пример 46-2. A simple extension.

/* include standard header */
#include "php.h"

/* declaration of functions to be exported */
ZEND_FUNCTION(first_module);

/* compiled function list so Zend knows what's in this module */
zend_function_entry firstmod_functions[] =
{
    ZEND_FE(first_module, NULL)
    {NULL, NULL, NULL}
};

/* compiled module information */
zend_module_entry firstmod_module_entry =
{
    STANDARD_MODULE_HEADER,
    "First Module",
    firstmod_functions,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NO_VERSION_YET,
    STANDARD_MODULE_PROPERTIES
};

/* implement standard "stub" routine to introduce ourselves to Zend */
#if COMPILE_DL_FIRST_MODULE
ZEND_GET_MODULE(firstmod)
#endif

/* implement function that is meant to be made available to PHP */
ZEND_FUNCTION(first_module)
{
    long parameter;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &parameter) == FAILURE) {
        return;
    }

    RETURN_LONG(parameter);
}

This code contains a complete PHP module. We'll explain the source code in detail shortly, but first we'd like to discuss the build process. (This will allow the impatient to experiment before we dive into API discussions.)

Замечание: The example source makes use of some features introduced with the Zend version used in PHP 4.1.0 and above, it won't compile with older PHP 4.0.x versions.

Compiling Modules

There are basically two ways to compile modules:

  • Use the provided "make" mechanism in the ext directory, which also allows building of dynamic loadable modules.

  • Compile the sources manually.

The first method should definitely be favored, since, as of PHP 4.0, this has been standardized into a sophisticated build process. The fact that it is so sophisticated is also its drawback, unfortunately - it's hard to understand at first. We'll provide a more detailed introduction to this later in the chapter, but first let's work with the default files.

The second method is good for those who (for some reason) don't have the full PHP source tree available, don't have access to all files, or just like to juggle with their keyboard. These cases should be extremely rare, but for the sake of completeness we'll also describe this method.

Compiling Using Make. To compile the sample sources using the standard mechanism, copy all their subdirectories to the ext directory of your PHP source tree. Then run buildconf, which will create an updated configure script containing appropriate options for the new extension. By default, all the sample sources are disabled, so you don't have to fear breaking your build process.

After you run buildconf, configure --help shows the following additional modules:

--enable-array_experiments   BOOK: Enables array experiments
  --enable-call_userland       BOOK: Enables userland module
  --enable-cross_conversion    BOOK: Enables cross-conversion module
  --enable-first_module        BOOK: Enables first module
  --enable-infoprint           BOOK: Enables infoprint module
  --enable-reference_test      BOOK: Enables reference test module
  --enable-resource_test       BOOK: Enables resource test module
  --enable-variable_creation   BOOK: Enables variable-creation module

The module shown earlier in Прим. 46-2 can be enabled with --enable-first_module or --enable-first_module=yes.

Compiling Manually. To compile your modules manually, you need the following commands:

Action | Command
Compiling | cc -fpic -DCOMPILE_DL=1 -I/usr/local/include -I. -I.. -I../Zend -c -o <your_object_file> <your_c_file>
Linking | cc -shared -L/usr/local/lib -rdynamic -o <your_module_file> <your_object_file(s)>

The command to compile the module simply instructs the compiler to generate position-independent code (-fpic shouldn't be omitted) and additionally defines the constant COMPILE_DL to tell the module code that it's compiled as a dynamically loadable module (the test module above checks for this; we'll discuss it shortly). After these options, it specifies a number of standard include paths that should be used as the minimal set to compile the source files.

Note: All include paths in the example are relative to the directory ext. If you're compiling from another directory, change the pathnames accordingly. Required items are the PHP directory, the Zend directory, and (if necessary), the directory in which your module resides.

The link command is also a plain vanilla command instructing linkage as a dynamic module.

You can include optimization options in the compilation command, although these have been omitted in this example (but some are included in the makefile template described in an earlier section).

Note: Compiling and linking manually as a static module into the PHP binary involves very long instructions and thus is not discussed here. (It's not very efficient to type all those commands.)

Пред. | Начало | След.
PHP's Automatic Build System | Уровень выше | Using Extensions


Using Extensions

Depending on the build process you selected, you should either end up with a new PHP binary to be linked into your Web server (or run as CGI), or with an .so (shared object) file. If you compiled the example file first_module.c as a shared object, your result file should be first_module.so. To use it, you first have to copy it to a place from which it's accessible to PHP. For a simple test procedure, you can copy it to your htdocs directory and try it with the source in Прим. 46-3. If you compiled it into the PHP binary, omit the call to dl(), as the module's functionality is instantly available to your scripts.

Внимание

For security reasons, you should not put your dynamic modules into publicly accessible directories. Even though it can be done and it simplifies testing, you should put them into a separate directory in production environments.

Пример 46-3. A test file for first_module.so.

<?php

// remove next comment if necessary
// dl("first_module.so");

$param = 2;
$return = first_module($param);

print("We sent '$param' and got '$return'");

?>

Calling this PHP file in your Web browser should give you the output shown in Рис. 46-2.

Рисунок 46-2. Output of first_module.php.

If required, the dynamic loadable module is loaded by calling the dl() function. This function looks for the specified shared object, loads it, and makes its functions available to PHP. The module exports the function first_module(), which accepts a single parameter, converts it to an integer, and returns the result of the conversion.

If you've gotten this far, congratulations! You just built your first extension to PHP.

Пред. | Начало | След.
Creating Extensions | Уровень выше | Troubleshooting


Troubleshooting

Actually, not much troubleshooting can be done when compiling static or dynamic modules. The only problem that could arise is that the compiler will complain about missing definitions or something similar. In this case, make sure that all header files are available and that you specified their path correctly in the compilation command. To be sure that everything is located correctly, extract a clean PHP source tree and use the automatic build in the ext directory with the fresh files; this will guarantee a safe compilation environment. If this fails, try manual compilation.

PHP might also complain about missing functions in your module. (This shouldn't happen with the sample sources if you didn't modify them.) If the names of external functions you're trying to access from your module are misspelled, they'll remain as "unlinked symbols" in the symbol table. During dynamic loading and linkage by PHP, they won't resolve because of the typing errors - there are no corresponding symbols in the main binary. Look for incorrect declarations in your module file or incorrectly written external references. Note that this problem is specific to dynamic loadable modules; it doesn't occur with static modules. Errors in static modules show up at compile time.

Пред. | Начало | След.
Using Extensions | Уровень выше | Source Discussion


Source Discussion

Now that you've got a safe build environment and you're able to include the modules into PHP files, it's time to discuss how everything works.

Module Structure

All PHP modules follow a common structure:

  • Header file inclusions (to include all required macros, API definitions, etc.)

  • C declaration of exported functions (required to declare the Zend function block)

  • Declaration of the Zend function block

  • Declaration of the Zend module block

  • Implementation of get_module()

  • Implementation of all exported functions

Header File Inclusions

The only header file you really have to include for your modules is php.h, located in the PHP directory. This file makes all macros and API definitions required to build new modules available to your code.

Tip: It's good practice to create a separate header file for your module that contains module-specific definitions. This header file should contain all the forward definitions for exported functions and include php.h. If you created your module using ext_skel you already have such a header file prepared.

Declaring Exported Functions

To declare functions that are to be exported (i.e., made available to PHP as new native functions), Zend provides a set of macros. A sample declaration looks like this:
ZEND_FUNCTION ( my_function );

ZEND_FUNCTION declares a new C function that complies with Zend's internal API. This means that the function is of type void and accepts INTERNAL_FUNCTION_PARAMETERS (another macro) as parameters. Additionally, it prefixes the function name with zif. The immediately expanded version of the above definitions would look like this:
void zif_my_function ( INTERNAL_FUNCTION_PARAMETERS );
Expanding INTERNAL_FUNCTION_PARAMETERS results in the following:
void zif_my_function( int ht
                    , zval * return_value
                    , zval * this_ptr
                    , int return_value_used
                    , zend_executor_globals * executor_globals
                    );

Since the interpreter and executor core have been separated from the main PHP package, a second API defining macros and function sets has evolved: the Zend API. As the Zend API now handles quite a few of the responsibilities that previously belonged to PHP, a lot of PHP functions have been reduced to macros aliasing to calls into the Zend API. The recommended practice is to use the Zend API wherever possible, as the old API is only preserved for compatibility reasons. For example, the types zval and pval are identical. zval is Zend's definition; pval is PHP's definition (actually, pval is an alias for zval now). As the macro INTERNAL_FUNCTION_PARAMETERS is a Zend macro, the above declaration contains zval. When writing code, you should always use zval to conform to the new Zend API.

The parameter list of this declaration is very important; you should keep these parameters in mind (see Табл. 46-1 for descriptions).

Таблица 46-1. Zend's Parameters to Functions Called from PHP

Parameter | Description
ht | The number of arguments passed to the Zend function. You should not touch this directly, but instead use ZEND_NUM_ARGS() to obtain the value.
return_value | This variable is used to pass any return values of your function back to PHP. Access to this variable is best done using the predefined macros. For a description of these see below.
this_ptr | Using this variable, you can gain access to the object in which your function is contained, if it's used within an object. Use the function getThis() to obtain this pointer.
return_value_used | This flag indicates whether an eventual return value from this function will actually be used by the calling script. 0 indicates that the return value is not used; 1 indicates that the caller expects a return value. Evaluation of this flag can be done to verify correct usage of the function as well as speed optimizations in case returning a value requires expensive operations (for an example, see how array.c makes use of this).
executor_globals | This variable points to global settings of the Zend engine. You'll find this useful when creating new variables, for example (more about this later). The executor globals can also be introduced to your function by using the macro TSRMLS_FETCH().

Declaration of the Zend Function Block

Now that you have declared the functions to be exported, you also have to introduce them to Zend. Introducing the list of functions is done by using an array of zend_function_entry. This array consecutively contains all functions that are to be made available externally, with the function's name as it should appear in PHP and its name as defined in the C source. Internally, zend_function_entry is defined as shown in Прим. 46-4.

Пример 46-4. Internal declaration of zend_function_entry.

typedef struct _zend_function_entry {
    char *fname;
    void (*handler)(INTERNAL_FUNCTION_PARAMETERS);
    unsigned char *func_arg_types;
} zend_function_entry;

Entry | Description
fname | Denotes the function name as seen in PHP (for example, fopen, mysql_connect, or, in our example, first_module).
handler | Pointer to the C function responsible for handling calls to this function. For example, see the standard macro INTERNAL_FUNCTION_PARAMETERS discussed earlier.
func_arg_types | Allows you to mark certain parameters so that they're forced to be passed by reference. You usually should set this to NULL.

In the example above, the declaration looks like this:
zend_function_entry firstmod_functions[] =
{
    ZEND_FE(first_module, NULL)
    {NULL, NULL, NULL}
};
You can see that the last entry in the list always has to be {NULL, NULL, NULL}. This marker has to be set for Zend to know when the end of the list of exported functions is reached.

Замечание: You cannot use the predefined macros for the end marker, as these would try to refer to a function named "NULL"!

The macro ZEND_FE (short for 'Zend Function Entry') simply expands to a structure entry in zend_function_entry. Note that these macros introduce a special naming scheme to your functions - your C functions will be prefixed with zif_, meaning that ZEND_FE(first_module) will refer to a C function zif_first_module(). If you want to mix macro usage with hand-coded entries (not a good practice), keep this in mind.

Tip: Compilation errors that refer to functions named zif_*() relate to functions defined with ZEND_FE.

Табл. 46-2 shows a list of all the macros that you can use to define functions.

Таблица 46-2. Macros for Defining Functions

Macro Name | Description
ZEND_FE(name, arg_types) | Defines a function entry of the name name in zend_function_entry. Requires a corresponding C function. arg_types needs to be set to NULL. This function uses automatic C function name generation by prefixing the PHP function name with zif_. For example, ZEND_FE("first_module", NULL) introduces a function first_module() to PHP and links it to the C function zif_first_module(). Use in conjunction with ZEND_FUNCTION.
ZEND_NAMED_FE(php_name, name, arg_types) | Defines a function that will be available to PHP by the name php_name and links it to the corresponding C function name. arg_types needs to be set to NULL. Use this function if you don't want the automatic name prefixing introduced by ZEND_FE. Use in conjunction with ZEND_NAMED_FUNCTION.
ZEND_FALIAS(name, alias, arg_types) | Defines an alias named alias for name. arg_types needs to be set to NULL. Doesn't require a corresponding C function; refers to the alias target instead.
PHP_FE(name, arg_types) | Old PHP API equivalent of ZEND_FE.
PHP_NAMED_FE(runtime_name, name, arg_types) | Old PHP API equivalent of ZEND_NAMED_FE.

Note: You can't use ZEND_FE in conjunction with PHP_FUNCTION, or PHP_FE in conjunction with ZEND_FUNCTION. However, it's perfectly legal to mix ZEND_FE and ZEND_FUNCTION with PHP_FE and PHP_FUNCTION when staying with the same macro set for each function to be declared. But mixing is not recommended; instead, you're advised to use the ZEND_* macros only.

Declaration of the Zend Module Block

This block is stored in the structure zend_module_entry and contains all necessary information to describe the contents of this module to Zend. You can see the internal definition of this module in Прим. 46-5.

Пример 46-5. Internal declaration of zend_module_entry.

typedef struct _zend_module_entry zend_module_entry;

    struct _zend_module_entry {
    unsigned short size;
    unsigned int zend_api;
    unsigned char zend_debug;
    unsigned char zts;
    char *name;
    zend_function_entry *functions;
    int (*module_startup_func)(INIT_FUNC_ARGS);
    int (*module_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    int (*request_startup_func)(INIT_FUNC_ARGS);
    int (*request_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    void (*info_func)(ZEND_MODULE_INFO_FUNC_ARGS);
    char *version;

[ Rest of the structure is not interesting here ]

};

Entry | Description
size, zend_api, zend_debug and zts | Usually filled with the "STANDARD_MODULE_HEADER", which fills these four members with the size of the whole zend_module_entry, the ZEND_MODULE_API_NO, whether it is a debug build or normal build (ZEND_DEBUG) and if ZTS is enabled (USING_ZTS).
name | Contains the module name (for example, "File functions", "Socket functions", "Crypt", etc.). This name will show up in phpinfo(), in the section "Additional Modules."
functions | Points to the Zend function block, discussed in the preceding section.
module_startup_func | This function is called once upon module initialization and can be used to do one-time initialization steps (such as initial memory allocation, etc.). To indicate a failure during initialization, return FAILURE; otherwise, SUCCESS. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MINIT.
module_shutdown_func | This function is called once upon module shutdown and can be used to do one-time deinitialization steps (such as memory deallocation). This is the counterpart to module_startup_func(). To indicate a failure during deinitialization, return FAILURE; otherwise, SUCCESS. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MSHUTDOWN.
request_startup_func | This function is called once upon every page request and can be used to do one-time initialization steps that are required to process a request. To indicate a failure here, return FAILURE; otherwise, SUCCESS. Note: As dynamic loadable modules are loaded only on page requests, the request startup function is called right after the module startup function (both initialization events happen at the same time). To mark this field as unused, use NULL. To declare a function, use the macro ZEND_RINIT.
request_shutdown_func | This function is called once after every page request and works as counterpart to request_startup_func(). To indicate a failure here, return FAILURE; otherwise, SUCCESS. Note: As dynamic loadable modules are loaded only on page requests, the request shutdown function is immediately followed by a call to the module shutdown handler (both deinitialization events happen at the same time). To mark this field as unused, use NULL. To declare a function, use the macro ZEND_RSHUTDOWN.
info_func | When phpinfo() is called in a script, Zend cycles through all loaded modules and calls this function. Every module then has the chance to print its own "footprint" into the output page. Generally this is used to dump environmental or statistical information. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MINFO.
version | The version of the module. You can use NO_VERSION_YET if you don't want to give the module a version number yet, but we really recommend that you add a version string here. Such a version string can look like this (in chronological order): "2.5-dev", "2.5RC1", "2.5" or "2.5pl3".
Remaining structure elements | These are used internally and can be prefilled by using the macro STANDARD_MODULE_PROPERTIES_EX. You should not assign any values to them. Use STANDARD_MODULE_PROPERTIES_EX only if you use global startup and shutdown functions; otherwise, use STANDARD_MODULE_PROPERTIES directly.

In our example, this structure is implemented as follows:
zend_module_entry firstmod_module_entry =
{
    STANDARD_MODULE_HEADER,
    "First Module",
    firstmod_functions,
    NULL, NULL, NULL, NULL, NULL,
    NO_VERSION_YET,
    STANDARD_MODULE_PROPERTIES,
};
This is basically the easiest and most minimal set of values you could ever use. The module name is set to First Module, then the function list is referenced, after which all startup and shutdown functions are marked as being unused.

For reference purposes, you can find a list of the macros involved in declared startup and shutdown functions in Табл. 46-3. These are not used in our basic example yet, but will be demonstrated later on. You should make use of these macros to declare your startup and shutdown functions, as these require special arguments to be passed (INIT_FUNC_ARGS and SHUTDOWN_FUNC_ARGS), which are automatically included into the function declaration when using the predefined macros. If you declare your functions manually and the PHP developers decide that a change in the argument list is necessary, you'll have to change your module sources to remain compatible.

Таблица 46-3. Macros to Declare Startup and Shutdown Functions

Macro | Description
ZEND_MINIT(module) | Declares a function for module startup. The generated name will be zend_minit_<module> (for example, zend_minit_first_module). Use in conjunction with ZEND_MINIT_FUNCTION.
ZEND_MSHUTDOWN(module) | Declares a function for module shutdown. The generated name will be zend_mshutdown_<module> (for example, zend_mshutdown_first_module). Use in conjunction with ZEND_MSHUTDOWN_FUNCTION.
ZEND_RINIT(module) | Declares a function for request startup. The generated name will be zend_rinit_<module> (for example, zend_rinit_first_module). Use in conjunction with ZEND_RINIT_FUNCTION.
ZEND_RSHUTDOWN(module) | Declares a function for request shutdown. The generated name will be zend_rshutdown_<module> (for example, zend_rshutdown_first_module). Use in conjunction with ZEND_RSHUTDOWN_FUNCTION.
ZEND_MINFO(module) | Declares a function for printing module information, used when phpinfo() is called. The generated name will be zend_info_<module> (for example, zend_info_first_module). Use in conjunction with ZEND_MINFO_FUNCTION.

Creation of get_module()

This function is special to all dynamic loadable modules. Take a look at the creation via the ZEND_GET_MODULE macro first:

#if COMPILE_DL_FIRSTMOD
     ZEND_GET_MODULE(firstmod)
#endif

The function implementation is surrounded by a conditional compilation statement. This is needed since the function get_module() is only required if your module is built as a dynamic extension. By specifying a definition of COMPILE_DL_FIRSTMOD in the compiler command (see above for a discussion of the compilation instructions required to build a dynamic extension), you can instruct your module whether you intend to build it as a dynamic extension or as a built-in module. If you want a built-in module, the implementation of get_module() is simply left out.

get_module() is called by Zend at load time of the module. You can think of it as being invoked by the dl() call in your script. Its purpose is to pass the module information block back to Zend in order to inform the engine about the module contents.

If you don't implement a get_module() function in your dynamic loadable module, Zend will compliment you with an error message when trying to access it.

Implementation of All Exported Functions

Implementing the exported functions is the final step. The example function in first_module looks like this:
ZEND_FUNCTION(first_module)
{
    long parameter;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &parameter) == FAILURE) {
        return;
    }

    RETURN_LONG(parameter);
}
The function declaration is done using ZEND_FUNCTION, which corresponds to ZEND_FE in the function entry table (discussed earlier).

After the declaration, code for checking and retrieving the function's arguments, argument conversion, and return value generation follows (more on this later).

Summary

That's it, basically - there's nothing more to implementing PHP modules. Built-in modules are structured similarly to dynamic modules, so, equipped with the information presented in the previous sections, you'll be able to fight the odds when encountering PHP module source files.

Now, in the following sections, read on about how to make use of PHP's internals to build powerful extensions.

Пред. | Начало | След.
Troubleshooting | Уровень выше | Accepting Arguments


Accepting Arguments

One of the most important issues for language extensions is accepting and dealing with data passed via arguments. Most extensions are built to deal with specific input data (or require parameters to perform their specific actions), and function arguments are the only real way to exchange data between the PHP level and the C level. Of course, there's also the possibility of exchanging data using predefined global values (which is also discussed later), but this should be avoided by all means, as it's extremely bad practice.

PHP doesn't make use of any formal function declarations; this is why call syntax is always completely dynamic and never checked for errors. Checking for correct call syntax is left to the user code. For example, it's possible to call a function using only one argument at one time and four arguments the next time - both invocations are syntactically absolutely correct.

Determining the Number of Arguments

Since PHP doesn't have formal function definitions with support for call syntax checking, and since PHP features variable arguments, sometimes you need to find out with how many arguments your function has been called. You can use the ZEND_NUM_ARGS macro in this case. In previous versions of PHP, this macro retrieved the number of arguments with which the function has been called based on the function's hash table entry, ht, which is passed in the INTERNAL_FUNCTION_PARAMETERS list. As ht itself now contains the number of arguments that have been passed to the function, ZEND_NUM_ARGS has been stripped down to a dummy macro (see its definition in zend_API.h). But it's still good practice to use it, to remain compatible with future changes in the call interface. Note: The old PHP equivalent of this macro is ARG_COUNT.

The following code checks for the correct number of arguments:
if(ZEND_NUM_ARGS() != 2) WRONG_PARAM_COUNT;
If the function is not called with two arguments, it exits with an error message. The code snippet above makes use of the tool macro WRONG_PARAM_COUNT, which can be used to generate a standard error message (see Рис. 46-3).

Рисунок 46-3. WRONG_PARAM_COUNT in action.

This macro prints a default error message and then returns to the caller. Its definition can also be found in zend_API.h and looks like this:
ZEND_API void wrong_param_count(void);

#define WRONG_PARAM_COUNT { wrong_param_count(); return; }
As you can see, it calls an internal function named wrong_param_count() that's responsible for printing the warning. For details on generating customized error messages, see the later section "Printing Information."

Retrieving Arguments

New parameter parsing API: This chapter documents the new Zend parameter parsing API introduced by Andrei Zmievski. It was introduced in the development stage between PHP 4.0.6 and 4.1.0 .

Parsing parameters is a very common operation and it may get a bit tedious. It would also be nice to have standardized error checking and error messages. Since PHP 4.1.0, there is a way to do just that by using the new parameter parsing API. It greatly simplifies the process of receiving parameteres, but it has a drawback in that it can't be used for functions that expect variable number of parameters. But since the vast majority of functions do not fall into those categories, this parsing API is recommended as the new standard way.

The prototype for parameter parsing function looks like this:
int zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec, ...);
The first argument to this function is supposed to be the number of actual parameters passed to your function, so ZEND_NUM_ARGS() can be used for that. The second parameter should always be TSRMLS_CC macro. The third argument is a string that specifies the number and types of arguments your function is expecting, similar to how printf format string specifies the number and format of the output values it should operate on. And finally the rest of the arguments are pointers to variables which should receive the values from the parameters.

zend_parse_parameters() also performs type conversions whenever possible, so that you always receive the data in the format you asked for. Any type of scalar can be converted to another one, but conversions between complex types (arrays, objects, and resources) and scalar types are not allowed.

If the parameters could be obtained successfully and there were no errors during type conversion, the function will return SUCCESS, otherwise it will return FAILURE. The function will output informative error messages, if the number of received parameters does not match the requested number, or if type conversion could not be performed.

Here are some sample error messages:
Warning - ini_get_all() requires at most 1 parameter, 2 given
     Warning - wddx_deserialize() expects parameter 1 to be string, array given
Of course each error message is accompanied by the filename and line number on which it occurs.

Here is the full list of type specifiers:

  • l - long

  • d - double

  • s - string (with possible null bytes) and its length

  • b - boolean

  • r - resource, stored in zval*

  • a - array, stored in zval*

  • o - object (of any class), stored in zval*

  • O - object (of class specified by class entry), stored in zval*

  • z - the actual zval*

The following characters also have a meaning in the specifier string:

  • | - indicates that the remaining parameters are optional. The storage variables corresponding to these parameters should be initialized to default values by the extension, since they will not be touched by the parsing function if the parameters are not passed.

  • / - the parsing function will call SEPARATE_ZVAL_IF_NOT_REF() on the parameter it follows, to provide a copy of the parameter, unless it's a reference.

  • ! - the parameter it follows can be of specified type or NULL (only applies to a, o, O, r, and z). If NULL value is passed by the user, the storage pointer will be set to NULL.

The best way to illustrate the usage of this function is through examples:
/* Gets a long, a string and its length, and a zval. */
long l;
char *s;
int s_len;
zval *param;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
                          "lsz", &l, &s, &s_len, &param) == FAILURE) {
    return;
}

/* Gets an object of class specified by my_ce, and an optional double. */
zval *obj;
double d = 0.5;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
                          "O|d", &obj, my_ce, &d) == FAILURE) {
    return;
}

/* Gets an object or null, and an array.
   If null is passed for object, obj will be set to NULL. */
zval *obj;
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O!a", &obj, &arr) == FAILURE) {
    return;
}

/* Gets a separated array. */
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/", &arr) == FAILURE) {
    return;
}

/* Get only the first three parameters (useful for varargs functions). */
zval *z;
zend_bool b;
zval *r;
if (zend_parse_parameters(3, "zbr!", &z, &b, &r) == FAILURE) {
    return;
}

Note that in the last example we pass 3 for the number of received parameters, instead of ZEND_NUM_ARGS(). What this lets us do is receive the least number of parameters if our function expects a variable number of them. Of course, if you want to operate on the rest of the parameters, you will have to use zend_get_parameters_array_ex() to obtain them.

The parsing function has an extended version that allows for an additional flags argument that controls its actions.
int zend_parse_parameters_ex(int flags, int num_args TSRMLS_DC, char *type_spec, ...);

The only flag you can pass currently is ZEND_PARSE_PARAMS_QUIET, which instructs the function to not output any error messages during its operation. This is useful for functions that expect several sets of completely different arguments, but you will have to output your own error messages.

For example, here is how you would get either a set of three longs or a string:
long l1, l2, l3;
char *s;
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
                             ZEND_NUM_ARGS() TSRMLS_CC,
                             "lll", &l1, &l2, &l3) == SUCCESS) {
    /* manipulate longs */
} else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
                                    ZEND_NUM_ARGS(), "s", &s, &s_len) == SUCCESS) {
    /* manipulate string */
} else {
    php_error(E_WARNING, "%s() takes either three long values or a string as argument",
              get_active_function_name(TSRMLS_C));
    return;
}

With all the abovementioned ways of receiving function parameters you should have a good handle on this process. For even more example, look through the source code for extensions that are shipped with PHP - they illustrate every conceivable situation.

Old way of retrieving arguments (deprecated)

Deprecated parameter parsing API: This API is deprecated and superseded by the new ZEND parameter parsing API.

After having checked the number of arguments, you need to get access to the arguments themselves. This is done with the help of zend_get_parameters_ex():
zval **parameter;

if(zend_get_parameters_ex(1, &parameter) != SUCCESS)
  WRONG_PARAM_COUNT;
All arguments are stored in a zval container, which needs to be pointed to twice. The snippet above tries to retrieve one argument and make it available to us via the parameter pointer.

zend_get_parameters_ex() accepts at least two arguments. The first argument is the number of arguments to retrieve (which should match the number of arguments with which the function has been called; this is why it's important to check for correct call syntax). The second argument (and all following arguments) are pointers to pointers to pointers to zvals. (Confusing, isn't it?) All these pointers are required because Zend works internally with **zval; to adjust a local **zval in our function,zend_get_parameters_ex() requires a pointer to it.

The return value of zend_get_parameters_ex() can either be SUCCESS or FAILURE, indicating (unsurprisingly) success or failure of the argument processing. A failure is most likely related to an incorrect number of arguments being specified, in which case you should exit with WRONG_PARAM_COUNT.

To retrieve more than one argument, you can use a similar snippet:
zval **param1, **param2, **param3, **param4;

if(zend_get_parameters_ex(4, &param1, &param2, &param3, &param4) != SUCCESS)
    WRONG_PARAM_COUNT;

zend_get_parameters_ex() only checks whether you're trying to retrieve too many parameters. If the function is called with five arguments, but you're only retrieving three of them with zend_get_parameters_ex(), you won't get an error but will get the first three parameters instead. Subsequent calls of zend_get_parameters_ex() won't retrieve the remaining arguments, but will get the same arguments again.

Dealing with a Variable Number of Arguments/Optional Parameters

If your function is meant to accept a variable number of arguments, the snippets just described are sometimes suboptimal solutions. You have to create a line calling zend_get_parameters_ex() for every possible number of arguments, which is often unsatisfying.

For this case, you can use the function zend_get_parameters_array_ex(), which accepts the number of parameters to retrieve and an array in which to store them:
zval **parameter_array[4];

/* get the number of arguments */
argument_count = ZEND_NUM_ARGS();

/* see if it satisfies our minimal request (2 arguments) */
/* and our maximal acceptance (4 arguments) */
if(argument_count < 2 || argument_count > 4)
    WRONG_PARAM_COUNT;

/* argument count is correct, now retrieve arguments */
if(zend_get_parameters_array_ex(argument_count, parameter_array) != SUCCESS)
    WRONG_PARAM_COUNT;
First, the number of arguments is checked to make sure that it's in the accepted range. After that, zend_get_parameters_array_ex() is used to fill parameter_array with valid pointers to the argument values.

A very clever implementation of this can be found in the code handling PHP's fsockopen() located in ext/standard/fsock.c, as shown in Прим. 46-6. Don't worry if you don't know all the functions used in this source yet; we'll get to them shortly.

Пример 46-6. PHP's implementation of variable arguments in fsockopen().

pval **args[5];
int *sock=emalloc(sizeof(int));
int *sockp;
int arg_count=ARG_COUNT(ht);
int socketd = -1;
unsigned char udp = 0;
struct timeval timeout = { 60, 0 };
unsigned short portno;
unsigned long conv;
char *key = NULL;
FLS_FETCH();

if (arg_count > 5 || arg_count < 2 || zend_get_parameters_array_ex(arg_count,args)==FAILURE) {
    CLOSE_SOCK(1);
    WRONG_PARAM_COUNT;
}

switch(arg_count) {
    case 5:
        convert_to_double_ex(args[4]);
        conv = (unsigned long) (Z_DVAL_PP(args[4]) * 1000000.0);
        timeout.tv_sec = conv / 1000000;
        timeout.tv_usec = conv % 1000000;
        /* fall-through */
    case 4:
        if (!PZVAL_IS_REF(*args[3])) {
            php_error(E_WARNING,"error string argument to fsockopen not passed by reference");
        }
        pval_copy_constructor(*args[3]);
        ZVAL_EMPTY_STRING(*args[3]);
        /* fall-through */
    case 3:
        if (!PZVAL_IS_REF(*args[2])) {
            php_error(E_WARNING,"error argument to fsockopen not passed by reference");
            return;
        }
        ZVAL_LONG(*args[2], 0);
        break;
}

convert_to_string_ex(args[0]);
convert_to_long_ex(args[1]);
portno = (unsigned short) Z_LVAL_P(args[1]);

key = emalloc(Z_STRLEN_P(args[0]) + 10);

fsockopen() accepts two, three, four, or five parameters. After the obligatory variable declarations, the function checks for the correct range of arguments. Then it uses a fall-through mechanism in a switch() statement to deal with all arguments. The switch() statement starts with the maximum number of arguments being passed (five). After that, it automatically processes the case of four arguments being passed, then three, by omitting the otherwise obligatory break keyword in all stages. After having processed the last case, it exits the switch() statement and does the minimal argument processing needed if the function is invoked with only two arguments.

This multiple-stage type of processing, similar to a stairway, allows convenient processing of a variable number of arguments.

Accessing Arguments

To access arguments, it's necessary for each argument to have a clearly defined type. Again, PHP's extremely dynamic nature introduces some quirks. Because PHP never does any kind of type checking, it's possible for a caller to pass any kind of data to your functions, whether you want it or not. If you expect an integer, for example, the caller might pass an array, and vice versa - PHP simply won't notice.

To work around this, you have to use a set of API functions to force a type conversion on every argument that's being passed (see Табл. 46-4).

Note: All conversion functions expect a **zval as parameter.

Таблица 46-4. Argument Conversion Functions

Function | Description
convert_to_boolean_ex() | Forces conversion to a Boolean type. Boolean values remain untouched. Longs, doubles, and strings containing 0 as well as NULL values will result in Boolean 0 (FALSE). Arrays and objects are converted based on the number of entries or properties, respectively, that they have. Empty arrays and objects are converted to FALSE; otherwise, to TRUE. All other values result in a Boolean 1 (TRUE).
convert_to_long_ex() | Forces conversion to a long, the default integer type. NULL values, Booleans, resources, and of course longs remain untouched. Doubles are truncated. Strings containing an integer are converted to their corresponding numeric representation, otherwise resulting in 0. Arrays and objects are converted to 0 if empty, 1 otherwise.
convert_to_double_ex() | Forces conversion to a double, the default floating-point type. NULL values, Booleans, resources, longs, and of course doubles remain untouched. Strings containing a number are converted to their corresponding numeric representation, otherwise resulting in 0.0. Arrays and objects are converted to 0.0 if empty, 1.0 otherwise.
convert_to_string_ex() | Forces conversion to a string. Strings remain untouched. NULL values are converted to an empty string. Booleans containing TRUE are converted to "1", otherwise resulting in an empty string. Longs and doubles are converted to their corresponding string representation. Arrays are converted to the string "Array" and objects to the string "Object".
convert_to_array_ex(value) | Forces conversion to an array. Arrays remain untouched. Objects are converted to an array by assigning all their properties to the array table. All property names are used as keys, property contents as values. NULL values are converted to an empty array. All other values are converted to an array that contains the specific source value in the element with the key 0.
convert_to_object_ex(value) | Forces conversion to an object. Objects remain untouched. NULL values are converted to an empty object. Arrays are converted to objects by introducing their keys as properties into the objects and their values as corresponding property contents in the object. All other types result in an object with the property scalar , having the corresponding source value as content.
convert_to_null_ex(value) | Forces the type to become a NULL value, meaning empty.

Замечание: You can find a demonstration of the behavior in cross_conversion.php on the accompanying CD-ROM. Рис. 46-4 shows the output.

Рисунок 46-4. Cross-conversion behavior of PHP.

Using these functions on your arguments will ensure type safety for all data that's passed to you. If the supplied type doesn't match the required type, PHP forces dummy contents on the resulting value (empty strings, arrays, or objects, 0 for numeric values, FALSE for Booleans) to ensure a defined state.

Following is a quote from the sample module discussed previously, which makes use of the conversion functions:
zval **parameter;

if((ZEND_NUM_ARGS() != 1) || (zend_get_parameters_ex(1, &parameter) != SUCCESS))
{
    WRONG_PARAM_COUNT;
}

convert_to_long_ex(parameter);

RETURN_LONG(Z_LVAL_P(parameter));
After retrieving the parameter pointer, the parameter value is converted to a long (an integer), which also forms the return value of this function. Understanding access to the contents of the value requires a short discussion of the zval type, whose definition is shown in Прим. 46-7.

Пример 46-7. PHP/Zend zval type definition.

typedef pval zval;

typedef struct _zval_struct zval;

typedef union _zvalue_value {
    long lval;					/* long value */
    double dval;				/* double value */
    struct {
        char *val;
        int len;
    } str;
    HashTable *ht;				/* hash table value */
    struct {
        zend_class_entry *ce;
        HashTable *properties;
    } obj;
} zvalue_value;

struct _zval_struct {
    /* Variable information */
    zvalue_value value;		/* value */
    unsigned char type;	/* active type */
    unsigned char is_ref;
    short refcount;
};

Actually, pval (defined in php.h) is only an alias of zval (defined in zend.h), which in turn refers to _zval_struct. This is a most interesting structure. _zval_struct is the "master" structure, containing the value structure, type, and reference information. The substructure zvalue_value is a union that contains the variable's contents. Depending on the variable's type, you'll have to access different members of this union. For a description of both structures, see Табл. 46-5, Табл. 46-6 and Табл. 46-7.

Таблица 46-5. Zend zval Structure

Entry | Description
value | Union containing this variable's contents. See Табл. 46-6 for a description.
type | Contains this variable's type. For a list of available types, see Табл. 46-7.
is_ref | 0 means that this variable is not a reference; 1 means that this variable is a reference to another variable.
refcount | The number of references that exist for this variable. For every new reference to the value stored in this variable, this counter is increased by 1. For every lost reference, this counter is decreased by 1. When the reference counter reaches 0, no references exist to this value anymore, which causes automatic freeing of the value.

Таблица 46-6. Zend zvalue_value Structure

Entry | Description
lval | Use this property if the variable is of the type IS_LONG, IS_BOOLEAN, or IS_RESOURCE.
dval | Use this property if the variable is of the type IS_DOUBLE.
str | This structure can be used to access variables of the type IS_STRING. The member len contains the string length; the member val points to the string itself. Zend uses C strings; thus, the string length contains a trailing 0x00.
ht | This entry points to the variable's hash table entry if the variable is an array.
obj | Use this property if the variable is of the type IS_OBJECT.

Таблица 46-7. Zend Variable Type Constants

Constant | Description
IS_NULL | Denotes a NULL (empty) value.
IS_LONG | A long (integer) value.
IS_DOUBLE | A double (floating point) value.
IS_STRING | A string.
IS_ARRAY | Denotes an array.
IS_OBJECT | An object.
IS_BOOL | A Boolean value.
IS_RESOURCE | A resource (for a discussion of resources, see the appropriate section below).
IS_CONSTANT | A constant (defined) value.

To access a long you access zval.value.lval, to access a double you use zval.value.dval, and so on. Because all values are stored in a union, trying to access data with incorrect union members results in meaningless output.

Accessing arrays and objects is a bit more complicated and is discussed later.

Dealing with Arguments Passed by Reference

If your function accepts arguments passed by reference that you intend to modify, you need to take some precautions.

What we didn't say yet is that under the circumstances presented so far, you don't have write access to any zval containers designating function parameters that have been passed to you. Of course, you can change any zval containers that you created within your function, but you mustn't change any zvals that refer to Zend-internal data!

We've only discussed the so-called *_ex() API so far. You may have noticed that the API functions we've used are called zend_get_parameters_ex() instead of zend_get_parameters(), convert_to_long_ex() instead of convert_to_long(), etc. The *_ex() functions form the so-called new "extended" Zend API. They give a minor speed increase over the old API, but as a tradeoff are only meant for providing read-only access.

Because Zend works internally with references, different variables may reference the same value. Write access to a zval container requires this container to contain an isolated value, meaning a value that's not referenced by any other containers. If a zval container were referenced by other containers and you changed the referenced zval, you would automatically change the contents of the other containers referencing this zval (because they'd simply point to the changed value and thus change their own value as well).

zend_get_parameters_ex() doesn't care about this situation, but simply returns a pointer to the desired zval containers, whether they consist of references or not. Its corresponding function in the traditional API, zend_get_parameters(), immediately checks for referenced values. If it finds a reference, it creates a new, isolated zval container; copies the referenced data into this newly allocated space; and then returns a pointer to the new, isolated value.

This action is called zval separation (or pval separation). Because the *_ex() API doesn't perform zval separation, it's considerably faster, while at the same time disabling write access.

To change parameters, however, write access is required. Zend deals with this situation in a special way: Whenever a parameter to a function is passed by reference, it performs automatic zval separation. This means that whenever you're calling a function like this in PHP, Zend will automatically ensure that $parameter is being passed as an isolated value, rendering it to a write-safe state:
my_function(&$parameter);

But this is not the case with regular parameters! All other parameters that are not passed by reference are in a read-only state.

This requires you to make sure that you're really working with a reference - otherwise you might produce unwanted results. To check for a parameter being passed by reference, you can use the macro PZVAL_IS_REF. This macro accepts a zval* to check if it is a reference or not. Examples are given in in Прим. 46-8.

Пример 46-8. Testing for referenced parameter passing.

zval *parameter;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &parameter) == FAILURE)
    return;

/* check for parameter being passed by reference */
if (!PZVAL_IS_REF(parameter)) {
{
    zend_error(E_WARNING, "Parameter wasn't passed by reference");
    RETURN_NULL();
}

/* make changes to the parameter */
ZVAL_LONG(parameter, 10);

Assuring Write Safety for Other Parameters

You might run into a situation in which you need write access to a parameter that's retrieved with zend_get_parameters_ex() but not passed by reference. For this case, you can use the macro SEPARATE_ZVAL, which does a zval separation on the provided container. The newly generated zval is detached from internal data and has only a local scope, meaning that it can be changed or destroyed without implying global changes in the script context:
zval **parameter;

/* retrieve parameter */
zend_get_parameters_ex(1, &parameter);

/* at this stage, <parameter> still is connected */
/* to Zend's internal data buffers */

/* make <parameter> write-safe */
SEPARATE_ZVAL(parameter);

/* now we can safely modify <parameter> */
/* without implying global changes */
SEPARATE_ZVAL uses emalloc() to allocate the new zval container, which means that even if you don't deallocate this memory yourself, it will be destroyed automatically upon script termination. However, doing a lot of calls to this macro without freeing the resulting containers will clutter up your RAM.

Note: As you can easily work around the lack of write access in the "traditional" API (with zend_get_parameters() and so on), this API seems to be obsolete, and is not discussed further in this chapter.

Пред. | Начало | След.
Source Discussion | Уровень выше | Creating Variables


Creating Variables

When exchanging data from your own extensions with PHP scripts, one of the most important issues is the creation of variables. This section shows you how to deal with the variable types that PHP supports.

Overview

To create new variables that can be seen "from the outside" by the executing script, you need to allocate a new zval container, fill this container with meaningful values, and then introduce it to Zend's internal symbol table. This basic process is common to all variable creations:

zval *new_variable;

/* allocate and initialize new container */
MAKE_STD_ZVAL(new_variable);

/* set type and variable contents here, see the following sections */

/* introduce this variable by the name "new_variable_name" into the symbol table */
ZEND_SET_SYMBOL(EG(active_symbol_table), "new_variable_name", new_variable);

/* the variable is now accessible to the script by using $new_variable_name */

The macro MAKE_STD_ZVAL allocates a new zval container using ALLOC_ZVAL and initializes it using INIT_ZVAL. As implemented in Zend at the time of this writing, initializing means setting the reference count to 1 and clearing the is_ref flag, but this process could be extended later - this is why it's a good idea to keep using MAKE_STD_ZVAL instead of only using ALLOC_ZVAL. If you want to optimize for speed (and you don't have to explicitly initialize the zval container here), you can use ALLOC_ZVAL, but this isn't recommended because it doesn't ensure data integrity.

ZEND_SET_SYMBOL takes care of introducing the new variable to Zend's symbol table. This macro checks whether the value already exists in the symbol table and converts the new symbol to a reference if so (with automatic deallocation of the old zval container). This is the preferred method if speed is not a crucial issue and you'd like to keep memory usage low.

Note that ZEND_SET_SYMBOL makes use of the Zend executor globals via the macro EG. By specifying EG(active_symbol_table), you get access to the currently active symbol table, dealing with the active, local scope. The local scope may differ depending on whether the function was invoked from within a function.

If you need to optimize for speed and don't care about optimal memory usage, you can omit the check for an existing variable with the same value and instead force insertion into the symbol table by using zend_hash_update():
zval *new_variable;

/* allocate and initialize new container */
MAKE_STD_ZVAL(new_variable);

/* set type and variable contents here, see the following sections */

/* introduce this variable by the name "new_variable_name" into the symbol table */
zend_hash_update(
    EG(active_symbol_table),
    "new_variable_name",
    strlen("new_variable_name") + 1,
    &new_variable,
    sizeof(zval *),
    NULL
);
This is actually the standard method used in most modules.

The variables generated with the snippet above will always be of local scope, so they reside in the context in which the function has been called. To create new variables in the global scope, use the same method but refer to another symbol table:
zval *new_variable;

// allocate and initialize new container
MAKE_STD_ZVAL(new_variable);

//
// set type and variable contents here
//

// introduce this variable by the name "new_variable_name" into the global symbol table
ZEND_SET_SYMBOL(&EG(symbol_table), "new_variable_name", new_variable);
The macro ZEND_SET_SYMBOL is now being called with a reference to the main, global symbol table by referring EG(symbol_table).

Note: The active_symbol_table variable is a pointer, but symbol_table is not. This is why you have to use EG(active_symbol_table) and &EG(symbol_table) as parameters to ZEND_SET_SYMBOL - it requires a pointer.

Similarly, to get a more efficient version, you can hardcode the symbol table update:
zval *new_variable;

// allocate and initialize new container
MAKE_STD_ZVAL(new_variable);

//
// set type and variable contents here
//

// introduce this variable by the name "new_variable_name" into the global symbol table
zend_hash_update(
    &EG(symbol_table),
    "new_variable_name",
    strlen("new_variable_name") + 1,
    &new_variable,
    sizeof(zval *),
    NULL
);
Прим. 46-9 shows a sample source that creates two variables - local_variable with a local scope and global_variable with a global scope (see Figure 9.7). The full example can be found on the CD-ROM.

Note: You can see that the global variable is actually not accessible from within the function. This is because it's not imported into the local scope using global $global_variable; in the PHP source.

Пример 46-9. Creating variables with different scopes.

ZEND_FUNCTION(variable_creation)
{
    zval *new_var1, *new_var2;

    MAKE_STD_ZVAL(new_var1);
    MAKE_STD_ZVAL(new_var2);

    ZVAL_LONG(new_var1, 10);
    ZVAL_LONG(new_var2, 5);

    ZEND_SET_SYMBOL(EG(active_symbol_table), "local_variable", new_var1);
    ZEND_SET_SYMBOL(&EG(symbol_table), "global_variable", new_var2);

    RETURN_NULL();

}

Longs (Integers)

Now let's get to the assignment of data to variables, starting with longs. Longs are PHP's integers and are very simple to store. Looking at the zval.value container structure discussed earlier in this chapter, you can see that the long data type is directly contained in the union, namely in the lval field. The corresponding type value for longs is IS_LONG (see Прим. 46-10).

Пример 46-10. Creation of a long.

zval *new_long;

MAKE_STD_ZVAL(new_long);

new_long->type = IS_LONG;
new_long->value.lval = 10;
Alternatively, you can use the macro ZVAL_LONG:
zval *new_long;

MAKE_STD_ZVAL(new_long);
ZVAL_LONG(new_long, 10);

Doubles (Floats)

Doubles are PHP's floats and are as easy to assign as longs, because their value is also contained directly in the union. The member in the zval.value container is dval; the corresponding type is IS_DOUBLE.
zval *new_double;

MAKE_STD_ZVAL(new_double);

new_double->type = IS_DOUBLE;
new_double->value.dval = 3.45;
Alternatively, you can use the macro ZVAL_DOUBLE:
zval *new_double;

MAKE_STD_ZVAL(new_double);
ZVAL_DOUBLE(new_double, 3.45);

Strings

Strings need slightly more effort. As mentioned earlier, all strings that will be associated with Zend's internal data structures need to be allocated using Zend's own memory-management functions. Referencing of static strings or strings allocated with standard routines is not allowed. To assign strings, you have to access the structure str in the zval.value container. The corresponding type is IS_STRING:
zval *new_string;
char *string_contents = "This is a new string variable";

MAKE_STD_ZVAL(new_string);

new_string->type = IS_STRING;
new_string->value.str.len = strlen(string_contents);
new_string->value.str.val = estrdup(string_contents);
Note the usage of Zend's estrdup() here. Of course, you can also use the predefined macro ZVAL_STRING:
zval *new_string;
char *string_contents = "This is a new string variable";

MAKE_STD_ZVAL(new_string);
ZVAL_STRING(new_string, string_contents, 1);
ZVAL_STRING accepts a third parameter that indicates whether the supplied string contents should be duplicated (using estrdup()). Setting this parameter to 1 causes the string to be duplicated; 0 simply uses the supplied pointer for the variable contents. This is most useful if you want to create a new variable referring to a string that's already allocated in Zend internal memory.

If you want to truncate the string at a certain position or you already know its length, you can use ZVAL_STRINGL(zval, string, length, duplicate), which accepts an explicit string length to be set for the new string. This macro is faster than ZVAL_STRING and also binary-safe.

To create empty strings, set the string length to 0 and use empty_string as contents:
new_string->type = IS_STRING;
new_string->value.str.len = 0;
new_string->value.str.val = empty_string;
Of course, there's a macro for this as well (ZVAL_EMPTY_STRING):
MAKE_STD_ZVAL(new_string);
ZVAL_EMPTY_STRING(new_string);

Booleans

Booleans are created just like longs, but have the type IS_BOOL. Allowed values in lval are 0 and 1:
zval *new_bool;

MAKE_STD_ZVAL(new_bool);

new_bool->type = IS_BOOL;
new_bool->value.lval = 1;
The corresponding macros for this type are ZVAL_BOOL (allowing specification of the value) as well as ZVAL_TRUE and ZVAL_FALSE (which explicitly set the value to TRUE and FALSE, respectively).

Arrays

Arrays are stored using Zend's internal hash tables, which can be accessed using the zend_hash_*() API. For every array that you want to create, you need a new hash table handle, which will be stored in the ht member of the zval.value container.

There's a whole API solely for the creation of arrays, which is extremely handy. To start a new array, you call array_init().
zval *new_array;

MAKE_STD_ZVAL(new_array);

array_init(new_array);
array_init() always returns SUCCESS.

To add new elements to the array, you can use numerous functions, depending on what you want to do. Табл. 46-8, Табл. 46-9 and Табл. 46-10 describe these functions. All functions return FAILURE on failure and SUCCESS on success.

Таблица 46-8. Zend's API for Associative Arrays

Function | Description
add_assoc_long(zval *array, char *key, long n);() | Adds an element of type long.
add_assoc_unset(zval *array, char *key);() | Adds an unset element.
add_assoc_bool(zval *array, char *key, int b);() | Adds a Boolean element.
add_assoc_resource(zval *array, char *key, int r);() | Adds a resource to the array.
add_assoc_double(zval *array, char *key, double d);() | Adds a floating-point value.
add_assoc_string(zval *array, char *key, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_assoc_stringl(zval *array, char *key, char *str, uint length, int duplicate); () | Adds a string with the desired length length to the array. Otherwise, behaves like add_assoc_string().
add_assoc_zval(zval *array, char *key, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...

Таблица 46-9. Zend's API for Indexed Arrays, Part 1

Function | Description
add_index_long(zval *array, uint idx, long n);() | Adds an element of type long.
add_index_unset(zval *array, uint idx);() | Adds an unset element.
add_index_bool(zval *array, uint idx, int b);() | Adds a Boolean element.
add_index_resource(zval *array, uint idx, int r);() | Adds a resource to the array.
add_index_double(zval *array, uint idx, double d);() | Adds a floating-point value.
add_index_string(zval *array, uint idx, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_index_stringl(zval *array, uint idx, char *str, uint length, int duplicate);() | Adds a string with the desired length length to the array. This function is faster and binary-safe. Otherwise, behaves like add_index_string()().
add_index_zval(zval *array, uint idx, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...

Таблица 46-10. Zend's API for Indexed Arrays, Part 2

Function | Description
add_next_index_long(zval *array, long n);() | Adds an element of type long.
add_next_index_unset(zval *array);() | Adds an unset element.
add_next_index_bool(zval *array, int b);() | Adds a Boolean element.
add_next_index_resource(zval *array, int r);() | Adds a resource to the array.
add_next_index_double(zval *array, double d);() | Adds a floating-point value.
add_next_index_string(zval *array, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_next_index_stringl(zval *array, char *str, uint length, int duplicate);() | Adds a string with the desired length length to the array. This function is faster and binary-safe. Otherwise, behaves like add_index_string()().
add_next_index_zval(zval *array, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...

All these functions provide a handy abstraction to Zend's internal hash API. Of course, you can also use the hash functions directly - for example, if you already have a zval container allocated that you want to insert into an array. This is done using zend_hash_update()() for associative arrays (see Прим. 46-11) and zend_hash_index_update() for indexed arrays (see Прим. 46-12):

Пример 46-11. Adding an element to an associative array.

zval *new_array, *new_element;
char *key = "element_key";

MAKE_STD_ZVAL(new_array);
MAKE_STD_ZVAL(new_element);

array_init(new_array);

ZVAL_LONG(new_element, 10);

if(zend_hash_update(new_array->value.ht, key, strlen(key) + 1, (void *)&new_element, sizeof(zval *), NULL) == FAILURE)
{
    // do error handling here
}

Пример 46-12. Adding an element to an indexed array.

zval *new_array, *new_element;
int key = 2;

MAKE_STD_ZVAL(new_array);
MAKE_STD_ZVAL(new_element);

array_init(new_array);

ZVAL_LONG(new_element, 10);

if(zend_hash_index_update(new_array->value.ht, key, (void *)&new_element, sizeof(zval *), NULL) == FAILURE)
{
    // do error handling here
}

To emulate the functionality of add_next_index_*(), you can use this:

zend_hash_next_index_insert(ht, zval **new_element, sizeof(zval *), NULL)

Note: To return arrays from a function, use array_init() and all following actions on the predefined variable return_value (given as argument to your exported function; see the earlier discussion of the call interface). You do not have to use MAKE_STD_ZVAL on this.

Tip: To avoid having to write new_array->value.ht every time, you can use HASH_OF(new_array), which is also recommended for compatibility and style reasons.

Objects

Since objects can be converted to arrays (and vice versa), you might have already guessed that they have a lot of similarities to arrays in PHP. Objects are maintained with the same hash functions, but there's a different API for creating them.

To initialize an object, you use the function object_init():
zval *new_object;

MAKE_STD_ZVAL(new_object);

if(object_init(new_object) != SUCCESS)
{
    // do error handling here
}
You can use the functions described in Табл. 46-11 to add members to your object.

Таблица 46-11. Zend's API for Object Creation

Function | Description
add_property_long(zval *object, char *key, long l);() | Adds a long to the object.
add_property_unset(zval *object, char *key);() | Adds an unset property to the object.
add_property_bool(zval *object, char *key, int b);() | Adds a Boolean to the object.
add_property_resource(zval *object, char *key, long r);() | Adds a resource to the object.
add_property_double(zval *object, char *key, double d);() | Adds a double to the object.
add_property_string(zval *object, char *key, char *str, int duplicate);() | Adds a string to the object.
add_property_stringl(zval *object, char *key, char *str, uint length, int duplicate);() | Adds a string of the specified length to the object. This function is faster than add_property_string() and also binary-safe.
add_property_zval(zval *obect, char *key, zval *container):() | Adds a zval container to the object. This is useful if you have to add properties which aren't simple types like integers or strings but arrays or other objects.

Resources

Resources are a special kind of data type in PHP. The term resources doesn't really refer to any special kind of data, but to an abstraction method for maintaining any kind of information. Resources are kept in a special resource list within Zend. Each entry in the list has a correspondending type definition that denotes the kind of resource to which it refers. Zend then internally manages all references to this resource. Access to a resource is never possible directly - only via a provided API. As soon as all references to a specific resource are lost, a corresponding shutdown function is called.

For example, resources are used to store database links and file descriptors. The de facto standard implementation can be found in the MySQL module, but other modules such as the Oracle module also make use of resources.

Замечание: In fact, a resource can be a pointer to anything you need to handle in your functions (e.g. pointer to a structure) and the user only has to pass a single resource variable to your function.

To create a new resource you need to register a resource destruction handler for it. Since you can store any kind of data as a resource, Zend needs to know how to free this resource if its not longer needed. This works by registering your own resource destruction handler to Zend which in turn gets called by Zend whenever your resource can be freed (whether manually or automatically). Registering your resource handler within Zend returns you the resource type handle for that resource. This handle is needed whenever you want to access a resource of this type later and is most of time stored in a global static variable within your extension. There is no need to worry about thread safety here because you only register your resource handler once during module initialization.

The Zend function to register your resource handler is defined as:
ZEND_API int zend_register_list_destructors_ex(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, char *type_name, int module_number);

There are two different kinds of resource destruction handlers you can pass to this function: a handler for normal resources and a handler for persistent resources. Persistent resources are for example used for database connection. When registering a resource, either of these handlers must be given. For the other handler just pass NULL.

zend_register_list_destructors_ex() accepts the following parameters:

ld | Normal resource destruction handler callback
pld | Pesistent resource destruction handler callback
type_name | A string specifying the name of your resource. It's always a good thing to specify a unique name within PHP for the resource type so when the user for example calls var_dump($resource); he also gets the name of the resource.
module_number | The module_number is automatically available in your PHP_MINIT_FUNCTION function and therefore you just pass it over.

The return value is a unique integer ID for your resource type.

The resource destruction handler (either normal or persistent resources) has the following prototype:
void resource_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC);
The passed rsrc is a pointer to the following structure:
typedef struct _zend_rsrc_list_entry {

    void *ptr;
    int type;
    int refcount;

} zend_rsrc_list_entry;
The member void *ptr is the actual pointer to your resource.

Now we know how to start things, we define our own resource we want register within Zend. It is only a simple structure with two integer members:
typedef struct {

    int resource_link;
    int resource_type;

} my_resource;
Our resource destruction handler is probably going to look something like this:
void my_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC) {

    // You most likely cast the void pointer to your structure type

    my_resource *my_rsrc = (my_resource *) rsrc->ptr;

    // Now do whatever needs to be done with you resource. Closing
    // Files, Sockets, freeing additional memory, etc.
    // Also, don't forget to actually free the memory for your resource too!

    do_whatever_needs_to_be_done_with_the_resource(my_rsrc);
}

Замечание: One important thing to mention: If your resource is a rather complex structure which also contains pointers to memory you allocated during runtime you have to free them before freeing the resource itself!

Now that we have defined

  1. what our resource is and

  2. our resource destruction handler

we can go on and do the rest of the steps:

  1. create a global variable within the extension holding the resource ID so it can be accessed from every function which needs it

  2. define the resource name

  3. write the resource destruction handler

  4. and finally register the handler

// Somewhere in your extension, define the variable for your registered resources.
    // If you wondered what 'le' stands for: it simply means 'list entry'.
    static int le_myresource;

    // It's nice to define your resource name somewhere
    #define le_myresource_name  "My type of resource"

    [...]

    // Now actually define our resource destruction handler
    void my_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC) {

        my_resource *my_rsrc = (my_resource *) rsrc->ptr;
        do_whatever_needs_to_be_done_with_the_resource(my_rsrc);
    }

    [...]

    PHP_MINIT_FUNCTION(my_extension) {

        // Note that 'module_number' is already provided through the
        // PHP_MINIT_FUNCTION() function definition.

        le_myresource = zend_register_list_destructors_ex(my_destruction_handler, NULL, le_myresource_name, module_number);

        // You can register additional resources, initialize
        // your global vars, constants, whatever.
    }

To actually register a new resource you use can either use the zend_register_resource() function or the ZEND_REGISTER_RESOURE() macro, both defined in zend_list.h . Although the arguments for both map 1:1 it's a good idea to always use macros to be upwards compatible:
int ZEND_REGISTER_RESOURCE(zval *rsrc_result, void *rsrc_pointer, int rsrc_type);

rsrc_result | This is an already initialized zval * container.
rsrc_pointer | Your resource pointer you want to store.
rsrc_type | The type which you received when you registered the resource destruction handler. If you followed the naming scheme this would be le_myresource.

The return value is a unique integer identifier for that resource.

What is really going on when you register a new resource is it gets inserted in an internal list in Zend and the result is just stored in the given zval * container:
rsrc_id = zend_list_insert(rsrc_pointer, rsrc_type);

    if (rsrc_result) {
        rsrc_result->value.lval = rsrc_id;
        rsrc_result->type = IS_RESOURCE;
    }

    return rsrc_id;
The returned rsrc_id uniquly identifies the newly registered resource. You can use the macro RETURN_RESOURE to return it to the user:
RETURN_RESOURCE(rsrc_id)

Замечание: It is common practice that if you want to return the resource immidiately to the user you specify the return_value as the zval * container.

Zend now keeps track of all references to this resource. As soon as all references to the resource are lost, the destructor that you previously registered for this resource is called. The nice thing about this setup is that you don't have to worry about memory leakages introduced by allocations in your module - just register all memory allocations that your calling script will refer to as resources. As soon as the script decides it doesn't need them anymore, Zend will find out and tell you.

Now that the user got his resource, at some point he is passing it back to one of your functions. The value.lval inside the zval * container contains the key to your resource and thus can be used to fetch the resource with the following macro: ZEND_FETCH_RESOURCE:
ZEND_FETCH_RESOURCE(rsrc, rsrc_type, rsrc_id, default_rsrc_id, resource_type_name, resource_type)

rsrc | This is your pointer which will point to your previously registered resource.
rsrc_type | This is the typecast argument for your pointer, e.g. myresource *.
rsrc_id | This is the address of the zval *container the user passed to your function, e.g. &z_resource if zval *z_resource is given.
default_rsrc_id | This integer specifies the default resource ID if no resource could be fetched or -1.
resource_type_name | This is the name of the requested resource. It's a string and is used when the resource can't be found or is invalid to form a meaningful error message.
resource_type | The resource_type you got back when registering the resource destruction handler. In our example this was le_myresource.

This macro has no return value. It is for the developers convenience and takes care of TSRMLS arguments passing and also does check if the resource could be fetched. It throws a warning message and returns the current PHP function with NULL if there was a problem retrieving the resource.

To force removal of a resource from the list, use the function zend_list_delete(). You can also force the reference count to increase if you know that you're creating another reference for a previously allocated value (for example, if you're automatically reusing a default database link). For this case, use the function zend_list_addref(). To search for previously allocated resource entries, use zend_list_find(). The complete API can be found in zend_list.h.

Macros for Automatic Global Variable Creation

In addition to the macros discussed earlier, a few macros allow easy creation of simple global variables. These are nice to know in case you want to introduce global flags, for example. This is somewhat bad practice, but Table Табл. 46-12 describes macros that do exactly this task. They don't need any zval allocation; you simply have to supply a variable name and value.

Таблица 46-12. Macros for Global Variable Creation

Macro | Description
SET_VAR_STRING(name, value) | Creates a new string.
SET_VAR_STRINGL(name, value, length) | Creates a new string of the specified length. This macro is faster than SET_VAR_STRING and also binary-safe.
SET_VAR_LONG(name, value) | Creates a new long.
SET_VAR_DOUBLE(name, value) | Creates a new double.

Creating Constants

Zend supports the creation of true constants (as opposed to regular variables). Constants are accessed without the typical dollar sign ($) prefix and are available in all scopes. Examples include TRUE and FALSE, to name just two.

To create your own constants, you can use the macros in Табл. 46-13. All the macros create a constant with the specified name and value.

You can also specify flags for each constant:

  • CONST_CS - This constant's name is to be treated as case sensitive.

  • CONST_PERSISTENT - This constant is persistent and won't be "forgotten" when the current process carrying this constant shuts down.

To use the flags, combine them using a inary OR:
// register a new constant of type "long"
     REGISTER_LONG_CONSTANT("NEW_MEANINGFUL_CONSTANT", 324, CONST_CS |
     CONST_PERSISTENT);
There are two types of macros - REGISTER_*_CONSTANT andREGISTER_MAIN_*_CONSTANT. The first type creates constants bound to the current module. These constants are dumped from the symbol table as soon as the module that registered the constant is unloaded from memory. The second type creates constants that remain in the symbol table independently of the module.

Таблица 46-13. Macros for Creating Constants

Macro | Description
REGISTER_LONG_CONSTANT(name, value, flags) REGISTER_MAIN_LONG_CONSTANT(name, value, flags) | Registers a new constant of type long.
REGISTER_DOUBLE_CONSTANT(name, value, flags) REGISTER_MAIN_DOUBLE_CONSTANT(name, value, flags) | Registers a new constant of type double.
REGISTER_STRING_CONSTANT(name, value, flags) REGISTER_MAIN_STRING_CONSTANT(name, value, flags) | Registers a new constant of type string. The specified string must reside in Zend's internal memory.
REGISTER_STRINGL_CONSTANT(name, value, length, flags) REGISTER_MAIN_STRINGL_CONSTANT(name, value, length, flags) | Registers a new constant of type string. The string length is explicitly set to length. The specified string must reside in Zend's internal memory.

Пред. | Начало | След.
Accepting Arguments | Уровень выше | Duplicating Variable Contents: The Copy Constructor


Duplicating Variable Contents: The Copy Constructor

Sooner or later, you may need to assign the contents of one zval container to another. This is easier said than done, since the zval container doesn't contain only type information, but also references to places in Zend's internal data. For example, depending on their size, arrays and objects may be nested with lots of hash table entries. By assigning one zval to another, you avoid duplicating the hash table entries, using only a reference to them (at most).

To copy this complex kind of data, use the copy constructor. Copy constructors are typically defined in languages that support operator overloading, with the express purpose of copying complex types. If you define an object in such a language, you have the possibility of overloading the "=" operator, which is usually responsible for assigning the contents of the rvalue (result of the evaluation of the right side of the operator) to the lvalue (same for the left side).

Overloading means assigning a different meaning to this operator, and is usually used to assign a function call to an operator. Whenever this operator would be used on such an object in a program, this function would be called with the lvalue and rvalue as parameters. Equipped with that information, it can perform the operation it intends the "=" operator to have (usually an extended form of copying).

This same form of "extended copying" is also necessary for PHP's zval containers. Again, in the case of an array, this extended copying would imply re-creation of all hash table entries relating to this array. For strings, proper memory allocation would have to be assured, and so on.

Zend ships with such a function, called zend_copy_ctor() (the previous PHP equivalent was pval_copy_constructor()).

A most useful demonstration is a function that accepts a complex type as argument, modifies it, and then returns the argument:

zval *parameter;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &parameter) == FAILURE)
   return;
}

// do modifications to the parameter here

// now we want to return the modified container:
*return_value = *parameter;
zval_copy_ctor(return_value);

The first part of the function is plain-vanilla argument retrieval. After the (left out) modifications, however, it gets interesting: The container of parameter is assigned to the (predefined) return_value container. Now, in order to effectively duplicate its contents, the copy constructor is called. The copy constructor works directly with the supplied argument, and the standard return values are FAILURE on failure and SUCCESS on success.

If you omit the call to the copy constructor in this example, both parameter and return_value would point to the same internal data, meaning that return_value would be an illegal additional reference to the same data structures. Whenever changes occurred in the data that parameter points to, return_value might be affected. Thus, in order to create separate copies, the copy constructor must be used.

The copy constructor's counterpart in the Zend API, the destructor zval_dtor(), does the opposite of the constructor.

Пред. | Начало | След.
Creating Variables | Уровень выше | Returning Values


Returning Values

Returning values from your functions to PHP was described briefly in an earlier section; this section gives the details. Return values are passed via the return_value variable, which is passed to your functions as argument. The return_value argument consists of a zval container (see the earlier discussion of the call interface) that you can freely modify. The container itself is already allocated, so you don't have to run MAKE_STD_ZVAL on it. Instead, you can access its members directly.

To make returning values from functions easier and to prevent hassles with accessing the internal structures of the zval container, a set of predefined macros is available (as usual). These macros automatically set the correspondent type and value, as described in Табл. 46-14 and Табл. 46-15.

Замечание: The macros in Табл. 46-14 automatically return from your function, those in Табл. 46-15 only set the return value; they don't return from your function.

Таблица 46-14. Predefined Macros for Returning Values from a Function

Macro | Description
RETURN_RESOURCE(resource) | Returns a resource.
RETURN_BOOL(bool) | Returns a Boolean.
RETURN_NULL() | Returns nothing (a NULL value).
RETURN_LONG(long) | Returns a long.
RETURN_DOUBLE(double) | Returns a double.
RETURN_STRING(string, duplicate) | Returns a string. The duplicate flag indicates whether the string should be duplicated using estrdup().
RETURN_STRINGL(string, length, duplicate) | Returns a string of the specified length; otherwise, behaves like RETURN_STRING. This macro is faster and binary-safe, however.
RETURN_EMPTY_STRING() | Returns an empty string.
RETURN_FALSE | Returns Boolean false.
RETURN_TRUE | Returns Boolean true.

Таблица 46-15. Predefined Macros for Setting the Return Value of a Function

Macro | Description
RETVAL_RESOURCE(resource) | Sets the return value to the specified resource.
RETVAL_BOOL(bool) | Sets the return value to the specified Boolean value.
RETVAL_NULL | Sets the return value to NULL.
RETVAL_LONG(long) | Sets the return value to the specified long.
RETVAL_DOUBLE(double) | Sets the return value to the specified double.
RETVAL_STRING(string, duplicate) | Sets the return value to the specified string and duplicates it to Zend internal memory if desired (see also RETURN_STRING).
RETVAL_STRINGL(string, length, duplicate) | Sets the return value to the specified string and forces the length to become length (see also RETVAL_STRING). This macro is faster and binary-safe, and should be used whenever the string length is known.
RETVAL_EMPTY_STRING | Sets the return value to an empty string.
RETVAL_FALSE | Sets the return value to Boolean false.
RETVAL_TRUE | Sets the return value to Boolean true.

Complex types such as arrays and objects can be returned by using array_init() and object_init(), as well as the corresponding hash functions on return_value. Since these types cannot be constructed of trivial information, there are no predefined macros for them.

Пред. | Начало | След.
Duplicating Variable Contents: The Copy Constructor | Уровень выше | Printing Information


Printing Information

Often it's necessary to print messages to the output stream from your module, just as print() would be used within a script. PHP offers functions for most generic tasks, such as printing warning messages, generating output for phpinfo(), and so on. The following sections provide more details. Examples of these functions can be found on the CD-ROM.

zend_printf()

zend_printf() works like the standard printf(), except that it prints to Zend's output stream.

zend_error()

zend_error() can be used to generate error messages. This function accepts two arguments; the first is the error type (see zend_errors.h), and the second is the error message.
zend_error(E_WARNING, "This function has been called with empty arguments");
Табл. 46-16 shows a list of possible values (see Рис. 46-5). These values are also referred to in php.ini. Depending on which error type you choose, your messages will be logged.

Таблица 46-16. Zend's Predefined Error Messages.

Error | Description
E_ERROR | Signals an error and terminates execution of the script immediately .
E_WARNING | Signals a generic warning. Execution continues.
E_PARSE | Signals a parser error. Execution continues.
E_NOTICE | Signals a notice. Execution continues. Note that by default the display of this type of error messages is turned off in php.ini.
E_CORE_ERROR | Internal error by the core; shouldn't be used by user-written modules.
E_COMPILE_ERROR | Internal error by the compiler; shouldn't be used by user-written modules.
E_COMPILE_WARNING | Internal warning by the compiler; shouldn't be used by user-written modules.

Рисунок 46-5. Display of warning messages in the browser.

Including Output in phpinfo()

After creating a real module, you'll want to show information about the module in phpinfo() (in addition to the module name, which appears in the module list by default). PHP allows you to create your own section in the phpinfo() output with the ZEND_MINFO() function. This function should be placed in the module descriptor block (discussed earlier) and is always called whenever a script calls phpinfo().

PHP automatically prints a section in phpinfo() for you if you specify the ZEND_MINFO function, including the module name in the heading. Everything else must be formatted and printed by you.

Typically, you can print an HTML table header using php_info_print_table_start() and then use the standard functions php_info_print_table_header() and php_info_print_table_row(). As arguments, both take the number of columns (as integers) and the column contents (as strings). Прим. 46-13 shows a source example and its output. To print the table footer, use php_info_print_table_end().

Пример 46-13. Source code and screenshot for output in phpinfo().

php_info_print_table_start();
php_info_print_table_header(2, "First column", "Second column");
php_info_print_table_row(2, "Entry in first row", "Another entry");
php_info_print_table_row(2, "Just to fill", "another row here");
php_info_print_table_end();

Execution Information

You can also print execution information, such as the current file being executed. The name of the function currently being executed can be retrieved using the function get_active_function_name(). This function returns a pointer to the function name and doesn't accept any arguments. To retrieve the name of the file currently being executed, use zend_get_executed_filename(). This function accesses the executor globals, which are passed to it using the TSRMLS_C macro. The executor globals are automatically available to every function that's called directly by Zend (they're part of the INTERNAL_FUNCTION_PARAMETERS described earlier in this chapter). If you want to access the executor globals in another function that doesn't have them available automatically, call the macro TSRMLS_FETCH() once in that function; this will introduce them to your local scope.

Finally, the line number currently being executed can be retrieved using the function zend_get_executed_lineno(). This function also requires the executor globals as arguments. For examples of these functions, see Прим. 46-14.

Пример 46-14. Printing execution information.

zend_printf("The name of the current function is %s<br>", get_active_function_name(TSRMLS_C));
zend_printf("The file currently executed is %s<br>", zend_get_executed_filename(TSRMLS_C));
zend_printf("The current line being executed is %i<br>", zend_get_executed_lineno(TSRMLS_C));

Пред. | Начало | След.
Returning Values | Уровень выше | Startup and Shutdown Functions


Startup and Shutdown Functions

Startup and shutdown functions can be used for one-time initialization and deinitialization of your modules. As discussed earlier in this chapter (see the description of the Zend module descriptor block), there are module, and request startup and shutdown events.

The module startup and shutdown functions are called whenever a module is loaded and needs initialization; the request startup and shutdown functions are called every time a request is processed (meaning that a file is being executed).

For dynamic extensions, module and request startup/shutdown events happen at the same time.

Declaration and implementation of these functions can be done with macros; see the earlier section "Declaration of the Zend Module Block" for details.

Пред. | Начало | След.
Printing Information | Уровень выше | Calling User Functions


Calling User Functions

You can call user functions from your own modules, which is very handy when implementing callbacks; for example, for array walking, searching, or simply for event-based programs.

User functions can be called with the function call_user_function_ex(). It requires a hash value for the function table you want to access, a pointer to an object (if you want to call a method), the function name, return value, number of arguments, argument array, and a flag indicating whether you want to perform zval separation.

ZEND_API int call_user_function_ex(HashTable *function_table, zval *object,
zval *function_name, zval **retval_ptr_ptr,
int param_count, zval **params[],
int no_separation);

Note that you don't have to specify both function_table and object; either will do. If you want to call a method, you have to supply the object that contains this method, in which case call_user_function()automatically sets the function table to this object's function table. Otherwise, you only need to specify function_table and can set object to NULL.

Usually, the default function table is the "root" function table containing all function entries. This function table is part of the compiler globals and can be accessed using the macro CG. To introduce the compiler globals to your function, call the macro TSRMLS_FETCH once.

The function name is specified in a zval container. This might be a bit surprising at first, but is quite a logical step, since most of the time you'll accept function names as parameters from calling functions within your script, which in turn are contained in zval containers again. Thus, you only have to pass your arguments through to this function. This zval must be of type IS_STRING.

The next argument consists of a pointer to the return value. You don't have to allocate memory for this container; the function will do so by itself. However, you have to destroy this container (using zval_dtor()) afterward!

Next is the parameter count as integer and an array containing all necessary parameters. The last argument specifies whether the function should perform zval separation - this should always be set to 0. If set to 1, the function consumes less memory but fails if any of the parameters need separation.

Прим. 46-15 shows a small demonstration of calling a user function. The code calls a function that's supplied to it as argument and directly passes this function's return value through as its own return value. Note the use of the constructor and destructor calls at the end - it might not be necessary to do it this way here (since they should be separate values, the assignment might be safe), but this is bulletproof.

Пример 46-15. Calling user functions.

zval **function_name;
zval *retval;

if((ZEND_NUM_ARGS() != 1) || (zend_get_parameters_ex(1, &function_name) != SUCCESS))
{
    WRONG_PARAM_COUNT;
}

if((*function_name)->type != IS_STRING)
{
    zend_error(E_ERROR, "Function requires string argument");
}

TSRMSLS_FETCH();

if(call_user_function_ex(CG(function_table), NULL, *function_name, &retval, 0, NULL, 0) != SUCCESS)
{
    zend_error(E_ERROR, "Function call failed");
}

zend_printf("We have %i as type<br>", retval->type);

*return_value = *retval;
zval_copy_ctor(return_value);
zval_ptr_dtor(&retval);

<?php

dl("call_userland.so");

function test_function()
{

    print("We are in the test function!<br>");

    return("hello");

}

$return_value = call_userland("test_function");

print("Return value: \"$return_value\"<br>");
?>

Пред. | Начало | След.
Startup and Shutdown Functions | Уровень выше | Initialization File Support


Initialization File Support

PHP 4 features a redesigned initialization file support. It's now possible to specify default initialization entries directly in your code, read and change these values at runtime, and create message handlers for change notifications.

To create an .ini section in your own module, use the macros PHP_INI_BEGIN() to mark the beginning of such a section and PHP_INI_END() to mark its end. In between you can use PHP_INI_ENTRY() to create entries.
PHP_INI_BEGIN()
PHP_INI_ENTRY("first_ini_entry",  "has_string_value", PHP_INI_ALL, NULL)
PHP_INI_ENTRY("second_ini_entry", "2",                PHP_INI_SYSTEM, OnChangeSecond)
PHP_INI_ENTRY("third_ini_entry",  "xyz",              PHP_INI_USER, NULL)
PHP_INI_END()
The PHP_INI_ENTRY() macro accepts four parameters: the entry name, the entry value, its change permissions, and a pointer to a change-notification handler. Both entry name and value must be specified as strings, regardless of whether they really are strings or integers.

The permissions are grouped into three sections:PHP_INI_SYSTEM allows a change only directly in the php.ini file; PHP_INI_USER allows a change to be overridden by a user at runtime using additional configuration files, such as .htaccess; and PHP_INI_ALL allows changes to be made without restrictions. There's also a fourth level, PHP_INI_PERDIR, for which we couldn't verify its behavior yet.

The fourth parameter consists of a pointer to a change-notification handler. Whenever one of these initialization entries is changed, this handler is called. Such a handler can be declared using the PHP_INI_MH macro:
PHP_INI_MH(OnChangeSecond);             // handler for ini-entry "second_ini_entry"

// specify ini-entries here

PHP_INI_MH(OnChangeSecond)
{

    zend_printf("Message caught, our ini entry has been changed to %s<br>", new_value);

    return(SUCCESS);

}
The new value is given to the change handler as string in the variable new_value. When looking at the definition of PHP_INI_MH, you actually have a few parameters to use:
#define PHP_INI_MH(name) int name(php_ini_entry *entry, char *new_value,
                                  uint new_value_length, void *mh_arg1,
                                  void *mh_arg2, void *mh_arg3)
All these definitions can be found in php_ini.h. Your message handler will have access to a structure that contains the full entry, the new value, its length, and three optional arguments. These optional arguments can be specified with the additional macros PHP_INI_ENTRY1 (allowing one additional argument), PHP_INI_ENTRY2 (allowing two additional arguments), and PHP_INI_ENTRY3 (allowing three additional arguments).

The change-notification handlers should be used to cache initialization entries locally for faster access or to perform certain tasks that are required if a value changes. For example, if a constant connection to a certain host is required by a module and someone changes the hostname, automatically terminate the old connection and attempt a new one.

Access to initialization entries can also be handled with the macros shown in Табл. 46-17.

Таблица 46-17. Macros to Access Initialization Entries in PHP

Macro | Description
INI_INT(name) | Returns the current value of entry name as integer (long).
INI_FLT(name) | Returns the current value of entry name as float (double).
INI_STR(name) | Returns the current value of entry name as string. Note: This string is not duplicated, but instead points to internal data. Further access requires duplication to local memory.
INI_BOOL(name) | Returns the current value of entry name as Boolean (defined as zend_bool, which currently means unsigned char).
INI_ORIG_INT(name) | Returns the original value of entry name as integer (long).
INI_ORIG_FLT(name) | Returns the original value of entry name as float (double).
INI_ORIG_STR(name) | Returns the original value of entry name as string. Note: This string is not duplicated, but instead points to internal data. Further access requires duplication to local memory.
INI_ORIG_BOOL(name) | Returns the original value of entry name as Boolean (defined as zend_bool, which currently means unsigned char).

Finally, you have to introduce your initialization entries to PHP. This can be done in the module startup and shutdown functions, using the macros REGISTER_INI_ENTRIES() and UNREGISTER_INI_ENTRIES():
ZEND_MINIT_FUNCTION(mymodule)
{

    REGISTER_INI_ENTRIES();

}

ZEND_MSHUTDOWN_FUNCTION(mymodule)
{

    UNREGISTER_INI_ENTRIES();

}

Пред. | Начало | След.
Calling User Functions | Уровень выше | Where to Go from Here


Where to Go from Here

You've learned a lot about PHP. You now know how to create dynamic loadable modules and statically linked extensions. You've learned how PHP and Zend deal with internal storage of variables and how you can create and access these variables. You know quite a set of tool functions that do a lot of routine tasks such as printing informational texts, automatically introducing variables to the symbol table, and so on.

Even though this chapter often had a mostly "referential" character, we hope that it gave you insight on how to start writing your own extensions. For the sake of space, we had to leave out a lot; we suggest that you take the time to study the header files and some modules (especially the ones in the ext/standard directory and the MySQL module, as these implement commonly known functionality). This will give you an idea of how other people have used the API functions - particularly those that didn't make it into this chapter.

Пред. | Начало | След.
Initialization File Support | Уровень выше | Reference: Some Configuration Macros


Reference: Some Configuration Macros

config.m4

The file config.m4 is processed by buildconf and must contain all the instructions to be executed during configuration. For example, these can include tests for required external files, such as header files, libraries, and so on. PHP defines a set of macros that can be used in this process, the most useful of which are described in Табл. 46-18.

Таблица 46-18. M4 Macros for config.m4

Macro | Description
AC_MSG_CHECKING(message) | Prints a "checking <message>" text during configure.
AC_MSG_RESULT(value) | Gives the result to AC_MSG_CHECKING; should specify either yes or no as value.
AC_MSG_ERROR(message) | Prints message as error message during configure and aborts the script.
AC_DEFINE(name,value,description) | Adds #define to php_config.h with the value of value and a comment that says description (this is useful for conditional compilation of your module).
AC_ADD_INCLUDE(path) | Adds a compiler include path; for example, used if the module needs to add search paths for header files.
AC_ADD_LIBRARY_WITH_PATH(libraryname,librarypath) | Specifies an additional library to link.
AC_ARG_WITH(modulename,description,unconditionaltest,conditionaltest) | Quite a powerful macro, adding the module with description to the configure --help output. PHP checks whether the option --with-<modulename> is given to the configure script. If so, it runs the script unconditionaltest (for example, --with-myext=yes), in which case the value of the option is contained in the variable $withval. Otherwise, it executes conditionaltest.
PHP_EXTENSION(modulename, [shared]) | This macro is a must to call for PHP to configure your extension. You can supply a second argument in addition to your module name, indicating whether you intend compilation as a shared module. This will result in a definition at compile time for your source as COMPILE_DL_<modulename>.

Пред. | Начало | След.
Where to Go from Here | Уровень выше | API Macros


API Macros

A set of macros was introduced into Zend's API that simplify access to zval containers (see Табл. 46-19).

Таблица 46-19. API Macros for Accessing zval Containers

Macro | Refers to
Z_LVAL(zval) | (zval).value.lval
Z_DVAL(zval) | (zval).value.dval
Z_STRVAL(zval) | (zval).value.str.val
Z_STRLEN(zval) | (zval).value.str.len
Z_ARRVAL(zval) | (zval).value.ht
Z_LVAL_P(zval) | (*zval).value.lval
Z_DVAL_P(zval) | (*zval).value.dval
Z_STRVAL_P(zval_p) | (*zval).value.str.val
Z_STRLEN_P(zval_p) | (*zval).value.str.len
Z_ARRVAL_P(zval_p) | (*zval).value.ht
Z_LVAL_PP(zval_pp) | (**zval).value.lval
Z_DVAL_PP(zval_pp) | (**zval).value.dval
Z_STRVAL_PP(zval_pp) | (**zval).value.str.val
Z_STRLEN_PP(zval_pp) | (**zval).value.str.len
Z_ARRVAL_PP(zval_pp) | (**zval).value.ht

Пред. | Начало | След.
Reference: Some Configuration Macros | Уровень выше | API Functions (work in progress)


Streams API for PHP Extension Authors

Руководство по PHP
Пред. След.

Глава 44. Streams API for PHP Extension Authors

Содержание
Overview
Streams Basics
Streams as Resources
Streams Common API Reference
Streams Dir API Reference
Streams File API Reference
Streams Socket API Reference
Streams Structures
Streams Constants

Overview

The PHP Streams API introduces a unified approach to the handling of files and sockets in PHP extension. Using a single API with standard functions for common operations, the streams API allows your extension to access files, sockets, URLs, memory and script-defined objects. Streams is a run-time extensible API that allows dynamically loaded modules (and scripts!) to register new streams.

The aim of the Streams API is to make it comfortable for developers to open files, URLs and other streamable data sources with a unified API that is easy to understand. The API is more or less based on the ANSI C stdio family of functions (with identical semantics for most of the main functions), so C programmers will have a feeling of familiarity with streams.

The streams API operates on a couple of different levels: at the base level, the API defines php_stream objects to represent streamable data sources. On a slightly higher level, the API defines php_stream_wrapper objects which "wrap" around the lower level API to provide support for retrieving data and meta-data from URLs. An additional context parameter, accepted by most stream creation functions, is passed to the wrapper's stream_opener method to fine-tune the behavior of the wrapper.

Any stream, once opened, can also have any number of filters applied to it, which process data as it is read from/written to the stream.

Streams can be cast (converted) into other types of file-handles, so that they can be used with third-party libraries without a great deal of trouble. This allows those libraries to access data directly from URL sources. If your system has the fopencookie() or funopen() function, you can even pass any PHP stream to any library that uses ANSI stdio!

Замечание: The functions in this chapter are for use in the PHP source code and are not PHP functions. Userland stream functions can be found in the Stream Reference.

Пред. | Начало | След.
PHP and Zend Engine Internals | Уровень выше | Streams Basics


Streams Basics

Using streams is very much like using ANSI stdio functions. The main difference is in how you obtain the stream handle to begin with. In most cases, you will use php_stream_open_wrapper() to obtain the stream handle. This function works very much like fopen, as can be seen from the example below:

Пример 44-1. simple stream example that displays the PHP home page

php_stream * stream = php_stream_open_wrapper("http://www.php.net", "rb", REPORT_ERRORS, NULL);
if (stream) {
    while(!php_stream_eof(stream)) {
        char buf[1024];

        if (php_stream_gets(stream, buf, sizeof(buf))) {
            printf(buf);
        } else {
            break;
        }
    }
    php_stream_close(stream);
}

The table below shows the Streams equivalents of the more common ANSI stdio functions. Unless noted otherwise, the semantics of the functions are identical.

Таблица 44-1. ANSI stdio equivalent functions in the Streams API

ANSI Stdio Function | PHP Streams Function | Notes
fopen | php_stream_open_wrapper | Streams includes additional parameters
fclose | php_stream_close |
fgets | php_stream_gets |
fread | php_stream_read | The nmemb parameter is assumed to have a value of 1, so the prototype looks more like read(2)
fwrite | php_stream_write | The nmemb parameter is assumed to have a value of 1, so the prototype looks more like write(2)
fseek | php_stream_seek |
ftell | php_stream_tell |
rewind | php_stream_rewind |
feof | php_stream_eof |
fgetc | php_stream_getc |
fputc | php_stream_putc |
fflush | php_stream_flush |
puts | php_stream_puts | Same semantics as puts, NOT fputs
fstat | php_stream_stat | Streams has a richer stat structure

Пред. | Начало | След.
Streams API for PHP Extension Authors | Уровень выше | Streams as Resources


Streams as Resources

All streams are registered as resources when they are created. This ensures that they will be properly cleaned up even if there is some fatal error. All of the filesystem functions in PHP operate on streams resources - that means that your extensions can accept regular PHP file pointers as parameters to, and return streams from their functions. The streams API makes this process as painless as possible:

Пример 44-2. How to accept a stream as a parameter

PHP_FUNCTION(example_write_hello)
{
    zval *zstream;
    php_stream *stream;

    if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zstream))
        return;

    php_stream_from_zval(stream, &zstream);

    /* you can now use the stream.  However, you do not "own" the
        stream, the script does.  That means you MUST NOT close the
        stream, because it will cause PHP to crash! */

    php_stream_write(stream, "hello\n");

    RETURN_TRUE();
}

Пример 44-3. How to return a stream from a function

PHP_FUNCTION(example_open_php_home_page)
{
    php_stream *stream;

    stream = php_stream_open_wrapper("http://www.php.net", "rb", REPORT_ERRORS, NULL);

    php_stream_to_zval(stream, return_value);

    /* after this point, the stream is "owned" by the script.
        If you close it now, you will crash PHP! */
}

Since streams are automatically cleaned up, it's tempting to think that we can get away with being sloppy programmers and not bother to close the streams when we are done with them. Although such an approach might work, it is not a good idea for a number of reasons: streams hold locks on system resources while they are open, so leaving a file open after you have finished with it could prevent other processes from accessing it. If a script deals with a large number of files, the accumulation of the resources used, both in terms of memory and the sheer number of open files, can cause web server requests to fail. Sounds bad, doesn't it? The streams API includes some magic that helps you to keep your code clean - if a stream is not closed by your code when it should be, you will find some helpful debugging information in you web server error log.

Замечание: Always use a debug build of PHP when developing an extension (--enable-debug when running configure), as a lot of effort has been made to warn you about memory and stream leaks.

In some cases, it is useful to keep a stream open for the duration of a request, to act as a log or trace file for example. Writing the code to safely clean up such a stream is not difficult, but it's several lines of code that are not strictly needed. To save yourself the trouble of writing the code, you can mark a stream as being OK for auto cleanup. What this means is that the streams API will not emit a warning when it is time to auto-cleanup a stream. To do this, you can use php_stream_auto_cleanup().

Пред. | Начало | След.
Streams Basics | Уровень выше | Streams Common API Reference


Streams Dir API Reference

Содержание
php_stream_opendir -- Open a directory for file enumeration
php_stream_readdir -- Fetch the next directory entry from an opened dir
php_stream_rewinddir -- Rewind a directory stream to the first entry
php_stream_closedir -- Close a directory stream and release resources

The functions listed in this section work on local files, as well as remote files (provided that the wrapper supports this functionality!).

Пред. | Начало | След.
php_stream_filter_unregister_factory | Уровень выше | php_stream_opendir


Streams File API Reference

Содержание
php_stream_fopen_from_file -- Convert an ANSI FILE* into a stream
php_stream_fopen_tmpfile -- Open a FILE* with tmpfile() and convert into a stream
php_stream_fopen_temporary_file -- Generate a temporary file name and open a stream on it

Пред. | Начало | След.
php_stream_closedir | Уровень выше | php_stream_fopen_from_file


Streams Socket API Reference

Содержание
php_stream_sock_open_from_socket -- Convert a socket descriptor into a stream
php_stream_sock_open_host -- Open a connection to a host and return a stream
php_stream_sock_open_unix -- Open a Unix domain socket and convert into a stream

Пред. | Начало | След.
php_stream_fopen_temporary_file | Уровень выше | php_stream_sock_open_from_socket


Streams Structures

Содержание
struct php_stream_statbuf -- Holds information about a file or URL
struct php_stream_dirent -- Holds information about a single file during dir scanning
struct php_stream_ops -- Holds member functions for a stream implementation
struct php_stream_wrapper -- Holds wrapper properties and pointer to operations
struct php_stream_wrapper_ops -- Holds member functions for a stream wrapper implementation
struct php_stream_filter -- Holds filter properties and pointer to operations
struct php_stream_filter_ops -- Holds member functions for a stream filter implementation

Пред. | Начало | След.
php_stream_sock_open_unix | Уровень выше | struct php_stream_statbuf


Streams Constants

Содержание
Stream open options -- Affects the operation of stream factory functions

Пред. | Начало | След.
struct php_stream_filter_ops | Уровень выше | Stream open options


ЧАВО: ЧАсто задаваемые Вопросы и Ответы на них

Руководство по PHP
Пред. След.

VIII. ЧАВО: ЧАсто задаваемые Вопросы и Ответы на них

Содержание
48. Общая Информация
49. Списки рассылки
50. Получение PHP
51. Вопросы по Базам Данных
52. Установка
53. Проблемы Сборки
54. Использование PHP
55. PHP и HTML
56. PHP и COM
57. PHP и другие языки
58. Переход из PHP 2 в PHP 3
59. Переход из PHP 3 в PHP 4
60. Переход из PHP 4 в PHP 5
61. Разные вопросы

Пред. | Начало | След.
Reporting Errors |  | Общая Информация


Общая Информация

Руководство по PHP
Пред. След.

Глава 48. Общая Информация

Этот раздел содержит наиболее общие вопросы по PHP: что это такое и что оно делает.

1. Что такое PHP?
2. Что PHP означает?
3. Какая связь между версиями PHP?
4. Могу ли я одновременно запускать несколько версий PHP?
5. Какие отличия между PHP 3 и PHP 4?
6. Я думаю, Я нашёл ошибку! Кому я должен сказать?

1. Что такое PHP?

Из предисловия к руководству:

PHP - это скриптовый язык, который может быть встроен в HTML. Синтаксис языка в большинстве заимствован из C, Java и Perl c добавлением нескольких специфичных для PHP особенностей. Цель языка - позволить web-разработчикам легко создавать динамически генерируемые страницы.

Хорошее введение в PHP, написаное Stig Saether Bakken, можно найти по адресу http://www.zend.com/zend/art/intro.php. Также большинство материалов PHP Конференций свободно доступно.

2. Что PHP означает?

PHP означает PHP: Hypertext Preprocessor. Это название смущает многих людей, так как первое слово в акрониме также является акронимом. Такой тип акронимов называется рекурсивным. Любопытствующие могут посетить Free On-Line Dictionary of Computing для дополнительной информации по рекурсивным акронимам.

3. Какая связь между версиями PHP?

PHP/FI 2.0 - ранняя и более неподдерживаемия версия PHP. PHP 3 - улучшенная замена PHP/FI 2.0. PHP 4 - текущая версия, которая использует Zend engine. PHP 5 использует Zend engine 2, которая, кроме прочего, предлагает множество дополнительных возможностей для объектно-ориентированного программирования .

4. Могу ли я одновременно запускать несколько версий PHP?

Да. Смотрите файл INSTALL из дистрибутива исходников PHP 4. Также читайте соответствующее приложение.

5. Какие отличия между PHP 3 и PHP 4?

На эту тему авторами PHP 4 написано несколько статей. Вот только некоторые из более важных новых возможностей:

  • Модуль расширенного API

  • Обобщённый процесс сборки под Unix

  • Общий интерфейс для web серверов, который также поддерживает многопоточные web сервера

  • Улучшенный выделитель синтаксиса

  • Поддержка родной HTTP сессии

  • Поддержка буферизованного вывода

  • Более мощная система конфигурации

  • Подсчёт ссылок

Пожалуйста, смотрите обзор Что нового в PHP 4 для детального объяснения этих возможностей и прочего. Если вы переходите из PHP 3 в PHP 4, также читайте соответствующее приложение.

6. Я думаю, Я нашёл ошибку! Кому я должен сказать?

Вам надо обратиться к базе данных ошибок в PHP и убедиться, что ошибка ещё не известна. Если вы не видите её в базе данных, заполните форму сообщения об ошибках. При занесении в базу данных, ошибка получает номер, по которому вы можете отслеживать её статус, поэтому важно использовать базу данных, а не просто послать сообщение в один из списков рассылки. База данных ошибок может быть найдена по адресу http://bugs.php.net/.

Пред. | Начало | След.
ЧАВО: ЧАсто задаваемые Вопросы и Ответы на них | Уровень выше | Списки рассылки


Списки рассылки

Руководство по PHP
Пред. След.

Глава 49. Списки рассылки

Этот раздел содержит вопросы о том как связаться с PHP общественностью. Самый лучший способ - списки рассылки.

1. Есть ли какие-либо списки рассылки по PHP?
2. Существуют ли какие-либо другие сообщества?
3. Помогите! Похоже, я не могу подписаться/отписаться?
4. Существует ли где-нибудь архив списков рассылки?
5. О чём я могу спрашивать в списке рассылки?
6. Какую информацию я должен включить при посылки в список?

1. Есть ли какие-либо списки рассылки по PHP?

Конечно! Существует множество списков рассылки на различные темы. Полный перечень списков можно найти на нашей странице Поддержки.

Наиболее общий список рассылки - php-general. Чтобы подписаться на него, пошлите письмо на адрес php-general-subscribe@lists.php.net. Ничего особенного в тему и тело письма включать не надо. Чтобы отписаться, пошлите письмо на адрес php-general-unsubscribe@lists.php.net.

Также вы можете подписаться/отписаться используя web интерфейс на нашей странице Поддержки.

2. Существуют ли какие-либо другие сообщества?

Бесчётно по всему миру. На нашей странице Поддержки для примера есть ссылки на некоторые IRC сервера и списки рассылок на иностранных языках.

3. Помогите! Похоже, я не могу подписаться/отписаться?

Если у вас возникла проблема с подпиской на или отпиской от php-general, возможно это потому, что программное обеспечение списка рассылки не может определить ваш правильный почтовый адрес. Если ваш адрес был joeblow@example.com, то вы можете послать запрос на подписку по адресу php-general-subscribe-joeblow=example.com@lists.php.net, или запрос на отписку по адресу php-general-unsubscribe-joeblow=example.com@lists.php.net. Для других списков рассылки используйте аналогичные адреса.

4. Существует ли где-нибудь архив списков рассылки?

Да, список архивов можно найти на странице Поддержки. Сообщения из списков рассылки также сохраняются как статьи новостей. Сервер новостей доступет по адресу news://news.php.net/. Также есть экспериментальный web интерфейс для сервера новостей, доступный по адресу http://news.php.net/.

5. О чём я могу спрашивать в списке рассылки?

С растущей день ото дня популярностью PHP, нагрузка на список рассылки php-general увеличилась и на сегодня составляет примерно 150-200 сообщений в день. Поэтому, в интересах всех, используйте список рассылки только в крайнем случае, когда поиски во всех других возможных местах завершились неудачно.

Прежде чем послать сообщение в список, пожалуйста, просмотрите этот FAQ и это руководство, может в них вам удастся найти решение вашей проблемы. Если там ничего не удалось найти, просмотрите архивы списка (см. выше). Если у вас проблема с установкой или настройкой PHP, пожалуйста, читайте всю сопровождающую документацию и файлы README. Eсли после всего этого вам не удалось найти ответ, то ваш вопрос в списке рассылки более чем желателен.

Хорошая идея, перед тем как задавать вопросы, прочитать статью Как Задавать Вопросы По-Умному.

6. Какую информацию я должен включить при посылки в список?

Сообщения типа "Не могу запустить PHP! Помогите мне! В чём дело?" совершенно бесполезны. Если у вас проблема с запуском PHP, вы должны указать операционную систему, версию PHP, как вы его получили (прекомпилированный, CVS, RPM и т.п.), что уже сделали, на чём отстановились и, если есть, точное сообщение об ошибке.

Это также относится к любой другой проблеме. Вам необходимо указать что вы уже сделали, на чём застопорились, что пытаетесь делать и, если есть, точное сообщение об ошибке. Если проблема с вашим исходным кодом, то надо включить часть кода, которая не работает. Но не пытайтесь послать больше, чем необходимо! Иначе ваше сообщение будет тяжело читать и большинство людей его просто пропустит. Если вы затрудняетесь решить какой объём информации достаточен, то лучше послать больше, чем слишком мало.

Другая важная вещь, которую стоит помнить, это краткое изложение вашей проблемы в строке темы сообщения. Заголовки типа "ПОМОГИТЕ МНЕ!!!" или "В чём здесь проблема?" будут проигнорированы большинством читателей.

И на последок, для всеобщей пользы и особенно для вас, весьма рекомендуется прочитать статью Как Задавать Вопросы По-Умному.

Пред. | Начало | След.
Общая Информация | Уровень выше | Получение PHP


Получение PHP

Руководство по PHP
Пред. След.

Глава 50. Получение PHP

Этот раздел содержит информацию о том где получить PHP и вопросы, касающиеся OC.

1. Где я могу взять PHP?
2. Доступны ли прекомпилированные бинарники?
3. Где я могу достать библиотеки, необходимые для компиляции некоторых дополнительных расширений PHP?
4. Как подключить эти библиотеки?
5. Я получил последнюю версию исходного кода PHP из CVS. Что нужно для компиляции его под Windows?
6. Где найти файл возможностей браузеров (Browser Capabilities File)?

1. Где я могу взять PHP?

Вы можете скачать PHP с любого сайта из PHP сети. Сайты сети можно найти на http://www.php.net/. Вы также можете воспользоваться анонимным CVS для получения самой последней версии исходников. Для подробностей зайдите на http://www.php.net/anoncvs.php.

2. Доступны ли прекомпилированные бинарники?

Мы распространяем прекомпилированные бинарники только для Windows, так как мы не в состоянии компилировать PHP со всеми возможными комбинациями расширений даже для самых основных Linux/Unix платформ. Также заметьте, что на сегодня многие дистрибутивы Linux поставляются с PHP. Бинарники для Windows можно скачать с нашей страницы Downloads, для бинарников под Linux, пожалуйста, посетите web сайт вашего дистрибутива.

3. Где я могу достать библиотеки, необходимые для компиляции некоторых дополнительных расширений PHP?

Замечание: Звёздочкой (*) помечены библиотеки, которые не могут быть использованы с PHP, установленным как модуль на многопоточных web серверах (IIS, Netscape) под Windows, так как они небезопасны в многопоточной среде. Это не относится к Unix среде.

  • LDAP (Unix).

  • LDAP* (Unix).

  • LDAP (Unix/Win) : Netscape Directory (LDAP) SDK 1.1.

  • free LDAP server.

  • Berkeley DB2 (Unix/Win) : http://www.sleepycat.com/.

  • SNMP* (Unix): .

  • GD* (Unix/Win).

  • mSQL* (Unix).

  • PostgreSQL (Unix).

  • IMAP* (Win/Unix).

  • Sybase-CT* (Linux, libc5) : Доступна локально.

  • FreeType (libttf):.

  • ZLib (Unix/Win32).

  • expat XML parser (Unix/Win32).

  • PDFLib.

  • mcrypt.

  • mhash.

  • t1lib.

  • dmalloc.

  • aspell.

  • readline.

4. Как подключить эти библиотеки?

Вам необходимо следовать инструкциям, сопровождающим библиотеку. При запуске скрипта 'configure', некоторые библиотеки (такие как библиотека GD) находятся автоматически, другие должны быть включены с помощью опции '--with-EXTENSION'. Запустите 'configure --help' для получения списка всех опций '--with-EXTENSION' .

5. Я получил последнюю версию исходного кода PHP из CVS. Что нужно для компиляции его под Windows?

Во-первых, вам будет нужен Microsoft Visual C++ v6 (v5 может тоже работать, но мы пользуемся v6), и вам будут нужны некоторые файлы поддержки. Смотрите раздел руководства сборка PHP из исходников под Windows.

6. Где найти файл возможностей браузеров (Browser Capabilities File)?

Файл browscap.ini можно скачать с http://www.garykeith.com/browsers/downloads.asp.

Пред. | Начало | След.
Списки рассылки | Уровень выше | Вопросы по Базам Данных


Вопросы по Базам Данных

Руководство по PHP
Пред. След.

Глава 51. Вопросы по Базам Данных

Этот раздел содержит общие вопросы о связи между PHP и базами данных. Да, сегодня практически любая база данных может быть доступна из PHP.

1. Я слышал, что можно получить доступ к Microsoft SQL серверу из PHP. Как?
2. Могу ли я получить доступ к базам данных Microsoft Access?
3. Я обновился до PHP 4 и теперь mysql постоянно выдает "Warning: MySQL: Unable to save result set in ..." (Предупреждение: MySQL: Не могу сохранить результат в ...). Что это?
4. Клиентские библиотеки MySQL больше не включены в PHP 5, как это отразится на мне? Могу ли я всё так же использовать MySQL c PHP? Я пытаюсь работать с MySQL и получаю ошибки "function undefined" (функция неопределена), что выдаёт их?
5. После установки поддержки разделения в MySQL, Apache выдаёт дампы сразу после загрузки libphp4.so. Можно ли это исправить?
6. Почему я получаю ошибки типа "Warning: 0 is not a MySQL result index in <file> on line <x>" или "Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>?

1. Я слышал, что можно получить доступ к Microsoft SQL серверу из PHP. Как?

На Windows машинах, вы просто используете поддержку ODBC и соответсвующий ODBC драйвер.

На Unix машинах для доступа к Microsoft SQL серверам вы можете использовать Sybase-CT драйвер, так как они (по крайней мере в основном) совместимы по протоколу. У Sybase есть бесплатная версия необходимых библиотек для Linux. Для других Unix систем вам необходимо обратиться в Sybase за соответствующими библиотеками. Также смотрите ответ на следующий вопрос.

2. Могу ли я получить доступ к базам данных Microsoft Access?

Да. Если всё полностью выполняется под Windows 9x/Me или NT/2000, то у вас уже есть все необходимые средства, так как для баз данных Microsoft Access вы можете использовать ODBC и драйверы ODBC от Microsoft.

Если вы хотите связать PHP, выполняющийся на Unix, и MS Access на Windows, то вам будут нужны драйверы ODBC для Unix. Такие ODBC драйверы для Unix есть у OpenLink Software. По бесплатной пилотной программе вы можете скачать пробную копию без срока истечения, а цены на комерчески поддерживаемую версию начинаются от 675$.

Другая возможность - хранить данные на SQL сервере, который имеет ODBC драйверы для Windows, и затем обращаться к этой базе данных из Microsoft Access (используя ODBC) и из PHP (используя встроенные драйверы) или использовать промежуточный формат понятный и для Access, и для PHP, как то последовательные файлы или базы данных dBase. По этому поводу Тим Хэйз (Tim Hayes) из OpenLink software пишет:

Использование промежуточной базы данных - не очень хорошая идея, когда есть возможность работать с базой данных на прямую из PHP через ODBC, например с драйверами от OpenLink. Если вам всё-таки надо использовать промежуточный формат, OpenLink выпустил Virtuoso (механизм виртуальной базы данных) для NT, Linux и других платформ Unix. Пожалуйста, посетите наш web сайт для бесплатной загрузки.

Другой проверенный вариант - использовать MySQL с её MyODBC драйверами на Windows и делать синхронизацию баз данных. Стив Лоренс (Steve Lawrence) пишет:

  • Установите MySQL согласно поставляемым с ней инструкциям. Последняя версия доступна с www.mysql.com (получите её с ближайшего зеркала!). Особой конфигурации не требуется, за исключением того, что при настройке баз данных и создании пользователя, в поле хоста вы должны поместить % или имя Windows машины, на которую вы хотите получить доступ из MySQL. Запишите имя вашего сервера, имя пользователя и пароль.

  • Скачайте MyODBC драйвер для Windows с сайта MySQL. Последний релиз - myodbc-2_50_19-win95.zip (доступен также для NT и как исходный код). Установите его на вашей Windows машине. Вы можете проверить его работоспособность с помощью поставляемых с ним утилит.

  • Создайте пользователя или системный dsn в вашем администраторе ODBC, расположенном в контрольной панели. Создайте dsn имя, введите имя хоста, имя пользователя, пароль и т.д. для вашей базы данных MySQL, сконфигурированной на 1-ом шаге.

  • Запустите полную инсталяцию Access, это даст вам уверенность, что вы получите все нужные добавки (add-ins). По крайней мере вам будут необходимы поддержка ODBC и администратор связанных таблиц.

  • И теперь самое интересное! Создайте новую базу данных Access. В окне таблицы щёлкните правой кнопкой мышки и выберите Link Tables (Связать Таблицы), либо из файлового меню выберите Get External Data (Получить Внешние Данные) и затем Link Tables. В появившемся окне просмотра файлов выберите файлы типа ODBC. Выберите системный dsn и имя вашего dsn, созданного на 3-ем шаге. Выберите таблицу для связи, нажмите OK и вуаля! Теперь вы можете открыть таблицу и добавить/удалить/отредактировать данные на вашем MySQL сервере! Вы также можете строить запросы, импортировать/экспортировать таблицы в MySQL, создавать формы и отчёты, и т.д.

Полезные Советы и Трюки:

  • Вы можете построить ваши таблицы в Access, экспортировать их в MySQL и затем привязать их назад. Это убыстряет создание таблиц.

  • При создании таблиц в Access, вы должны определить первичный ключ, чтобы иметь доступ к таблице по записи. Убедитесь что вы создали первичный ключ в MySQL перед тем как привязать таблицу к Access.

  • Если вы изменяете таблицу в MySQL, то вы должны связать её с Access по-новой. Идите в tools>add-ins>linked table manager, следуйте к вашему ODBC DSN, и выберите оттуда таблицу для пересвязки. Там же вы можете изменить источник вашего dsn, для этого, перед тем как нажать OK, просто пометьте "always prompt for new location" (всегда запрашивать новое местонахождение).

3. Я обновился до PHP 4 и теперь mysql постоянно выдает "Warning: MySQL: Unable to save result set in ..." (Предупреждение: MySQL: Не могу сохранить результат в ...). Что это?

Вероятнее всего PHP 4 был скомпилирован с опцией --with-mysql без задания пути к MySQL. Это означает, что PHP использует его встроенную клиентскую библиотеку MySQL. Если на вашей системе выполняются приложения (такие как PHP 3, в виде паралельного модуля Apache, или auth-mysql), которые используют другие версии MySQL клиентов, то возникает конфликт между двумя разными версиями этих клиентов.

Обычно, перекомпиляция PHP 4 с указанием пути к MySQL в опции '--with-mysql=/your/path/to/mysql' решает эту проблему.

4. Клиентские библиотеки MySQL больше не включены в PHP 5, как это отразится на мне? Могу ли я всё так же использовать MySQL c PHP? Я пытаюсь работать с MySQL и получаю ошибки "function undefined" (функция неопределена), что выдаёт их?

Да. PHP всегда будет поддерживать MySQL в том или ином виде. Единственное что изменилось в PHP 5 - это то, что мы больше не поставляем саму клиентскую библиотеку. Вот некоторые причины для этого:

  • Сегодня клиентские библиотеки уже установлены на большинстве систем.

  • Учитывая предыдущий пункт, имея несколько версий, проще запутаться. Например, если вы компонуете mod_auth_mysql с одной версией, а PHP с другой, и затем разрешаете оба в Apache, то вы получите хороший жирный крах. Также, поставляемые библиотеки не всегда дружат с установленной серверной версией. Наиболее очевидный симптом этого - разногласие по тому где искать файл mysql.socket (файл Unix сокета).

  • Также поддержка была вялой и отставала от релизов всё больше и больше.

  • Последующие версии библиотеки будут под GPL и мы не можем поставлять библиотеку под GPL с проектом лицензируемым по типу BSD/Apache. Поэтому полный разрыв в PHP 5 видится как самый лучший вариант.

На самом деле это заденет не так уж много людей. Пользователи Unix, по крайней мере те, кто знает что они делают, всегда были склонны собирать PHP с уже установленной на их системе библиотекой libmesqlclient, просто задав опцию --with-mysql=/usr при сборке. Пользователи Windows могут включить расширение php_mysql.dll внутри php.ini. Также убедитесь, что libmysql.dll доступен в системном PATH. О том как - читайте FAQ: установка системного PATH в Windows. Так как libmysql.dll (и многие другие PHP файлы) находится в папке PHP, вам лучше добавить PHP папку в ваш системный PATH.

5. После установки поддержки разделения в MySQL, Apache выдаёт дампы сразу после загрузки libphp4.so. Можно ли это исправить?

Это происходит если вы скомпоновали ваши библиотеки MySQL с pthreads. Проверьте используя ldd. Если это так, скомпилируйте MySQL из исходников или перекомпилируйте исходный rpm, отключив поточный код клиента в файле спецификации. Любой из этих вариантов исправит проблему. Затем перекомпилируйте PHP с новыми библиотеками MySQL.

6. Почему я получаю ошибки типа "Warning: 0 is not a MySQL result index in <file> on line <x>" или "Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>?

Вы пытаетесь использовать идентификатор результата, который равен 0. 0 означает что ваш запрос неудался по какой-либо причине. Вам необходимо сделать проверку на ошибки после того как вы послали ваш запрос и перед тем как вы пытаетесь использовать возвращённый идентификатор результата. Правильный способ для этого выглядит примерно как следующий код:
<?php

$result = mysql_query("SELECT * FROM tables_priv");
if (!$result) {
    echo mysql_error();
    exit;
}
?>
или
<?php

$result = mysql_query("SELECT * FROM tables_priv")
    or die("Bad query: " . mysql_error());
?>

Пред. | Начало | След.
Получение PHP | Уровень выше | Установка


Установка

Руководство по PHP
Пред. След.

Глава 52. Установка

Этот раздел содержит общие вопросы по установке PHP. PHP доступен практически для любой ОС (за исключением, может быть, MacOS предшествующей OSX) и любого web сервера.

Для установки PHP следуйте инструкциям в файле INSTALL из дистрибутива. Пользователи Windows также должны прочитать install.txt. И здесь есть некоторые полезные советы для пользователей Windows.

1. Почему я не должен использовать Apache2 с потоковым MPM в эксплуатации?
2. Unix/Windows: Где должен находиться файл php.ini?
3. Unix: Я установил PHP, но каждый раз при загрузке документа я получаю сообщение 'Document Contains No Data' (Документ Не Содержит Данных)! Что происходит?
4. Unix: Я установил PHP, используя RPMS, но Apache не обрабатывает PHP страницы! Что происходит?
5. Unix: Я установил PHP 3 используя RPMS, но он не компилируется с поддержкой нужной мне базы данных! Что происходит?
6. Unix: Я установил заплатку в Apache для расширений FrontPage и неожиданно PHP перестал работать. Неужели PHP не совместим с FrontPage расширениями для Apache?
7. Unix/Windows: Я установил PHP, но когда я пытаюсь вызвать PHP скрипт из моего браузера, я получаю пустой экран.
8. Unix/Windows: Я установил PHP, но когда я пытаюсь вызвать PHP скрипт из моего браузера, я получаю ошибку сервера 500.
9. Некоторые операционные системы: Я установил PHP без ошибок, но когда я пытаюсь запустить Apache, я получаю ошибки "undefined symbol" (неопределённый символ):
[mybox:user /src/php4] root# apachectl configtest
 apachectl: /usr/local/apache/bin/httpd Undefined symbols:
  _compress
  _uncompress
10. Windows: Я установил PHP, но когда я пытаюсь вызвать PHP скрипт из моего браузера, я получаю ошибку:
cgi error:
 The specified CGI application misbehaved by not
 returning a complete set of HTTP headers.
 The headers it did return are:
11. Windows: Я следовал всем инструкциям, но так и не смог заставить PHP и IIS работать вместе!
12. Когда PHP запускается как CGI в IIS, PWS, OmniHTTPD или Xitami, я получаю следующую ошибку: Security Alert! PHP CGI cannot be accessed directly..
13. Как узнать, что мой php.ini был найден и прочтён? Похоже, что мои изменения не были восприняты?
14. Как на Windows добавить мою PHP директорию в PATH?
15. Как в Windows сделать файл php.ini доступным для PHP?
16. Возможно ли использовать согласование содержания в Apache (опция MultiViews) c PHP?

1. Почему я не должен использовать Apache2 с потоковым MPM в эксплуатации?

PHP - это клей. Клей, используемый для построения классных web приложений, склеивая дюжины сторонних библиотек и создавая впечатление одного согласованного целого, с помощью интуитивного и легко изучаемого языка. Гибкость и мощь PHP полагается на стабильность и устойчивость используемой платформы. Для склейки вместе ему необходимы работающая ОС, работающий web сервер и работающие сторонние библиотеки. Когда что-либо из этого перестаёт работать PHP нужны способы определения проблем и их быстрого исправления. Если вы усложняете низлежащую систему, не разделяя полностью потоки выполнения, не выделяя раздельные сегменты памяти и не предоставляя "песочницу" для игры для каждого запроса, то ваша PHP система увязнет в глине.

Если вы всё-таки чувствуете, что должны использовать потоковый MPM, взгляните на конфигурацию с FastCGI, где вы можете запускать PHP в своём собственном пространстве памяти.

И наконец, это предупреждение против потокового MPM не настолько остро для пользователей Windows, так как большинство библиотек на этой платформе потокобезопасны.

2. Unix/Windows: Где должен находиться файл php.ini?

На Unix по умолчанию он должен находиться в директории /usr/local/lib, определяемой как <install-path>/lib. Большинство людей изменяют это во время компиляции с помощью опции --with-config-file-path Для примера, вы можете задать что-то типа:
--with-config-file-path=/etc
Затем скопировать файл php.ini-dist из дистрибутива в /etc/php.ini и отредактировать его для ваших локальных потребностей.

--with-config-file-scan-dir=PATH

На Windows по умолчанию php.ini находится в Windows директории. Если вы используете Apache web сервер, php.ini сначала ищется в директории, где был установлен Apache, например c:\program files\apache group\apache. В этом случае на одной машине у вас могут быть разные файлы php.ini для разных версий Apache.

Смотрите также главу о конфигурационном файле.

3. Unix: Я установил PHP, но каждый раз при загрузке документа я получаю сообщение 'Document Contains No Data' (Документ Не Содержит Данных)! Что происходит?

Вероятно, PHP падает по какой-то причине. Для того, чтобы убедиться в этом, просмотрите лог ошибок вашего сервера и затем попытайтесь воспроизвести проблему с помощью небольшого тестового примера. Если вы умеете пользоваться 'gdb', то добавьте трассировку к вашему сообщению об ошибке, это поможет разработчикам точно определить проблему. Если вы используете PHP как модуль Apache попробуйте что-то типа:

  • Остановите ваши httpd процессы

  • gdb httpd

  • Остановите ваши httpd процессы

  • > run -X -f /path/to/httpd.conf

  • Затем вызовите URL, на котором возникает проблема, из вашего браузера

  • > run -X -f /path/to/httpd.conf

  • Если вы получаете дамп, gdb должен сейчас сообщить вам об этом

  • введите: bt

  • Вам необходимо включить трассировку в ваше сообщение об ошибке, которое должно быть отправлено с http://bugs.php.net/

Если ваш скрипт использует функции регулярных выражений (ereg() и компания), то вам необходимо убедиться, что вы скомпилировали PHP и Apache с одним и тем же пакетом регулярных выражений. Это должно происходить автоматически для PHP и Apache 1.3.x

4. Unix: Я установил PHP, используя RPMS, но Apache не обрабатывает PHP страницы! Что происходит?

Полагая, что Apache и PHP оба были установлены из пакетов RPM, вам требуется в вашем файле httpd.conf раскомментировать или добавить все или некоторые из следующих строк:
# Extra Modules
AddModule mod_php.c
AddModule mod_php3.c
AddModule mod_perl.c

# Extra Modules
LoadModule php_module         modules/mod_php.so
LoadModule php3_module        modules/libphp3.so     # for PHP 3
LoadModule php4_module        modules/libphp4.so     # for PHP 4
LoadModule perl_module        modules/libperl.so
И добавить:
AddType application/x-httpd-php3 .php3    # for PHP 3
AddType application/x-httpd-php .php      # for PHP 4
... в глобальные свойства или в свойства VirtualDomain, для которого вы хотите иметь поддержку PHP.

5. Unix: Я установил PHP 3 используя RPMS, но он не компилируется с поддержкой нужной мне базы данных! Что происходит?

Из-за того, как построен PHP 3, собрать полный и гибкий RPM для PHP не легко. Эта проблема решена в PHP 4. Для PHP 3 мы рекомендуем способ, описанный в файле INSTALL.REDHAT из дистрибутива PHP. Если вы всё-таки настаиваете на использовании варианта с RPM для PHP 3, читайте далее...

Те, кто собирает RPM пакеты, настраивают RPMS для установки без поддержки баз данных для упрощения установок и потому что RPMS использует /usr/ вместо стандартной /usr/local/ директории для файлов. Вам необходимо указать в спек файле RPM какие базы данных поддерживать и где находится ваш сервер баз данных.

Следующий пример объясняет процесс добавления поддержки для популярного сервера баз данных MySQL, используя mod установку для Apache.

Конечно, всё это может быть применено для любого сервера баз данных, который PHP поддерживает. Для этого примера, мы будем полагать, что вы установили MySQL и Apache полностью с RPMS.

  • Во-первых, удалите mod_php3 :
    rpm -e mod_php3

  • Затем получите rpm с исходниками и УСТАНОВИТЕ его, НЕ --rebuild
    rpm -Uvh mod_php3-3.0.5-2.src.rpm

  • Затем отредактируйте файл /usr/src/redhat/SPECS/mod_php3.spec

    В секции %build добавьте поддержку нужной вам базы данныз и укажите путь

    Для MySQL вы добавите --with-mysql=/usr Секция %build будет выглядеть как что-то типа следующего:
    ./configure --prefix=/usr \
--with-apxs=/usr/sbin/apxs \
--with-config-file-path=/usr/lib \
--enable-debug=no \
--enable-safe-mode \
--with-exec-dir=/usr/bin \
--with-mysql=/usr \
--with-system-regex

  • После того, как вы сделали эти изменения, постройте бинарный rpm как:
    rpm -bb /usr/src/redhat/SPECS/mod_php3.spec

  • Затем установите этот rpm
    rpm -ivh /usr/src/redhat/RPMS/i386/mod_php3-3.0.5-2.i386.rpm

Перезапустите Apache и теперь у вас есть PHP 3 с поддержкой MySQL, установленный из RPM. Заметьте, что на много проще просто собрать PHP 3 из дистрибутива и следовать инструкциям в файле INSTALL.REDHAT дистрибутива.

6. Unix: Я установил заплатку в Apache для расширений FrontPage и неожиданно PHP перестал работать. Неужели PHP не совместим с FrontPage расширениями для Apache?

Нет, PHP прекрасно работает с FrontPage расширениями. Проблема в том, что FrontPage заплатка изменяет некоторые важные для PHP структуры. Перекомпиляция PHP (выполняя 'make clean ; make') после установки FP заплатки должна решить эту проблему.

7. Unix/Windows: Я установил PHP, но когда я пытаюсь вызвать PHP скрипт из моего браузера, я получаю пустой экран.

Сделайте просмотр исходника ('view source') в web браузере и, вероятно, вы увидите исходный код вашего PHP скрипта. Это означает, что web сервер не послал скрипт PHP для интерпретации. Что-то не так с конфигурацией сервера, проверьте конфигурацию сервера согласно установочным инструкциям PHP.

8. Unix/Windows: Я установил PHP, но когда я пытаюсь вызвать PHP скрипт из моего браузера, я получаю ошибку сервера 500.

Что-то произошло когда сервер пытался выполнить PHP. Чтобы увидеть более вразумительное сообщение об ошибке, используя командную строку, перейдите в директорию где находится исполняемый файл PHP (php.exe на Windows) и запустите php -i. Если при запуске PHP возникли какие-либо проблемы, то появится соответствующее сообщение об ошибке, которое может дать вам понять что делать дальше. Если вы получаете экран, заполненый HTML кодом (вывод функции phpinfo()), то PHP работает и ваша проблема возможно связана с конфигурацией вашего сервера, которую вам необходимо проверить.

9. Некоторые операционные системы: Я установил PHP без ошибок, но когда я пытаюсь запустить Apache, я получаю ошибки "undefined symbol" (неопределённый символ):
[mybox:user /src/php4] root# apachectl configtest
 apachectl: /usr/local/apache/bin/httpd Undefined symbols:
  _compress
  _uncompress

На самом деле это связано с клиентскими библиотеками MySQL и не имеет никакого отношения к PHP. Одним нужна опция --with-zlib, другим - нет. Это также описано в MySQL FAQ.

10. Windows: Я установил PHP, но когда я пытаюсь вызвать PHP скрипт из моего браузера, я получаю ошибку:
cgi error:
 The specified CGI application misbehaved by not
 returning a complete set of HTTP headers.
 The headers it did return are:

Это сообщение об ошибке означает, что PHP не смог вывести абсолютно ничего. Чтобы увидеть более вразумительное сообщение об ошибке, используя командную строку, перейдите в директорию, где находиться испольняемый файл PHP (php.exe на Windows) и запустите php -i. Если при запуске PHP возникли какие-либо проблемы, то появится соответствующее сообщение об ошибке, которое может дать вам понять что делать дальше. Если вы получаете экран, заполненый HTML кодом (вывод фиункци phpinfo() функции), то PHP работает.

Как только PHP работает из командной строки, попытайтесь опять вызвать скрипт из браузера. Если он все также не работает, то причина может быть одна из следующих:

  • Анонимный пользователь Internet не имеет доступ к вашему PHP скрипту, php.exe, php4ts.dll, php.ini или любому загружаемому PHP расширению из за прав доступа, установленных на эти файлы.

  • Файл скрипта не существует (или, вероятно, не там где вы думаете он должен быть, относительно вашей корневой web директории). Заметьте, что для IIS вы можете поймать эту ошибку пометив 'check file exists' при настройке ассоциирования скриптов (script mappings) в Администраторе Internet Сервисов (Internet Services Manager). Если файл скрипта не существует, то сервер выдаст ошибку 404. Также допольнительная польза в том, что IIS будет выполнять необходимую вам аутентификацию, основываясь на NTLanMan правах доступа на ваш скрипт.

11. Windows: Я следовал всем инструкциям, но так и не смог заставить PHP и IIS работать вместе!

Убедитесь что все пользователи, кому необходимо запускать PHP скрипты, имеют право выполнять php.exe! IIS использует анонимного пользователя, который добавлен во время установки IIS. Этот пользователь должен иметь права на php.exe. Также любому аутентифицированному пользователю будут нужны права на выполнение php.exe. И для IIS4 вам необходимо сказать ему, что PHP является скриптовой системой. Также вам захочется прочитать это.

12. Когда PHP запускается как CGI в IIS, PWS, OmniHTTPD или Xitami, я получаю следующую ошибку: Security Alert! PHP CGI cannot be accessed directly..

Вы должны установить директиву cgi.force_redirect в 0. По умолчанию она установлена в 1, поэтому убедитесь, что директива не закоментирована (с ;). Как все директивы, она задается в php.ini

Так как значение по умолчанию 1, то очень важно быть уверенным на 100%, что был прочитан верный php.ini файл. Для подробностей читайте здесь.

13. Как узнать, что мой php.ini был найден и прочтён? Похоже, что мои изменения не были восприняты?

Чтобы убедиться, что PHP прочитал ваш php.ini, вызовите phpinfo() и недалеко от начала будет находиться строка, озаглавленная Configuration File (php.ini). Она скажет вам где PHP ищет php.ini и был ли файл прочитан. Если указана только директория, то файл не был прочитан и вы должны поместить ваш php.ini в эту директорию. Если php.ini включён в PATH, то он был прочитан.

Если php.ini был прочитан и вы запускаете PHP как модуль, то не забудьте перезапустить ваш web сервер после внесения изменений в php.ini.

14. Как на Windows добавить мою PHP директорию в PATH?

На Windows NT, 2000, XP и 2003:

  • Идите в Control Panel и откройте системную иконку (Start -> Settings -> Control Panel -> System, или просто Start -> Control Panel -> System for Windows XP/2003)

  • Перейдите в закладку Advanced

  • Нажмите кнопку 'Environment Variables'

  • Смотрите в окошко 'System Variables'

  • Найдите Path (возможно, вам придется сделать прокрутку, чтобы найти его)

  • Двойной щелчок на Path

  • Добавьте в конец вашу PHP директорию через ';' (например ;C:\php)

  • Нажмите OK и перезапустите ваш компьютер

На Windows 98/Me вам необходимо отредактировать файл autoexec.bat:

  • Откройте Notepad (Start -> Run и введите notepad)

  • Откройте файл C:\autoexec.bat

  • Найдите строку с PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;..... и добавьте в конец строки: ;C:\php

  • Сохраните файл и перезапустите ваш компьютер

Прежде в руководстве по PHP рекомендовалось копировать файлы в системную директорию Windows, так как эта директория (C:\Windows, C:\WINNT, и т.п.) входит в системный PATH по умолчанию. Копирование файлов в системную директорию Windows давно уже противопоказывается и может вызвать проблемы.

15. Как в Windows сделать файл php.ini доступным для PHP?

Для этого есть несколько путей. Если вы используете Apache, то читайте инструкции по его установке (Apache 1, Apache 2), в ином случае, вы должны установить переменную окружения PHPRC:

На Windows NT, 2000, XP и 2003:

  • Идите в Control Panel и откройте системную иконку (Start -> Settings -> Control Panel -> System, или просто Start -> Control Panel -> System for Windows XP/2003)

  • Перейдите в закладку Advanced

  • Нажмите кнопку 'Environment Variables'

  • Посмотрите в окошко 'System variables'

  • Щёлкните на 'New' и введите 'PHPRC' как имя переменной и директорию, где находится php.ini, как значение переменной (например C:\php)

  • Нажмите OK и перезапустите ваш компьютер

На Windows 98/Me вам необходимо отредактировать файл autoexec.bat:

  • Откройте Notepad (Start -> Run и введите notepad)

  • Откройте файл C:\autoexec.bat

  • Добавьте новую строку в конец файла: set PHPRC C:\php (замените C:\php на директорию, где находится php.ini)

  • Сохраните файл и перезапустите ваш компьютер

16. Возможно ли использовать согласование содержания в Apache (опция MultiViews) c PHP?

Всё работает замечательно, если линки к PHP файлам имеют расширение. Этот FAQ рассматривает только случай, когда линки к PHP файлам не имеют расширения и вы хотите использовать согласование содержания для отбора PHP файлов из URL без расширений. В этом случае, замените строку AddType application/x-httpd-php .php на:
# PHP 4
AddHandler php-script php
AddType text/html php

# PHP 5
AddHandler php5-script php
AddType text/html php
Это решение не работает в Apache 1, так как в нём PHP модуль не ловит php-script.

Пред. | Начало | След.
Вопросы по Базам Данных | Уровень выше | Проблемы Сборки


Проблемы Сборки

Руководство по PHP
Пред. След.

Глава 53. Проблемы Сборки

В этом разделе собраны наиболее общие ошибки, возникающие на этапе сборки.

1. Я получил последнюю версию PHP, используя анонимный CVS, но в нём нет конфигурационного скрипта!
2. У меня возникают проблемы при конфигурировании PHP для работы с Apache. Он говорит, что не может найти httpd.h, хотя файл находится точно там, где я сказал!
3. Во время конфигурации PHP (./configure) вы наталкиваетесь на ошибку, схожую со следующим:
4. Когда я пытаюсь запустить Apache, я получаю следующее сообщение:
5. Когда я запускаю configure, он говорит, что не может найти файлы include или библиотеку для GD, gdbm или какого-либо другого пакета!
6. При компиляции файла language-parser.tab.c мне выдаются ошибки, говорящие yytname undeclared.
7. Когда я запускаю make, похоже, он выполняется нормально, но на конечной линковке жалуется, что не может найти некоторые файлы.
8. При компиляции PHP, он жалуется на некоторые неопределённые ссылки.
9. Я не могу понять как собрать PHP c Apache 1.3.
10. Я следовал всем шагам по установке модульной версии для Apache на Unix, но мои PHP скрипты выводятся в моём браузере или я получаю запрос сохранить файл.
11. Говорится использовать: --activate-module=src/modules/php4/libphp4.a, но такой файл не существует, поэтому я заменил это на --activate-module=src/modules/php4/libmodphp4.a и оно не работает!? Что происходит?
12. Когда я пытаюсь собрать Apache c PHP, в виде статического модуля, используя --activate-module=src/modules/php4/libphp4.a он говорит, что мой компилятор не ANSI-совместимый.
13. Когда я пытаюсь собрать PHP используя --with-apxs, я получаю странное сообщение об ошибке.
14. Во время выполнения make я получаю ошибки в microtime и множество всяких RUSAGE_.
15. При компиляции PHP с MySQL, configure выполняется нормально, но во время make я получаю ошибку типа следующего: ext/mysql/libmysql/my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/libmysql/my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp', в чём дело?
16. Я хочу обновить мой PHP. Где я могу найти строку ./configure, которая была использована для моей текущей PHP установки?
17. При сборке PHP с библиотекой GD, либо выдаются странные ошибки компиляции, либо segfault при выполнении.
18. При компиляции PHP я, кажется, получаю случайные ошибки, например она зависает. Я использую Solaris, если это имеет значение.

1. Я получил последнюю версию PHP, используя анонимный CVS, но в нём нет конфигурационного скрипта!

Вам нужен установленный пакет GNU autoconf для того, чтобы сгенерировать конфигурационный скрипт из configure.in. После получения исходников с CVS сервера просто запустите ./buildconf в директории верхнего уровня. (Также, если вы запускаете configure без опции --enable-maintainer-mode, то конфигурационный скрипт не будет перестроен автоматически при изменении файла configure.in, поэтому вам необходимо делать это вручную, когда вы заметите, что configure.in изменился. Один из симптомов - появление таких вещей как @VARIABLE@ в вашем Makefile после выполнения configure или config.status)

2. У меня возникают проблемы при конфигурировании PHP для работы с Apache. Он говорит, что не может найти httpd.h, хотя файл находится точно там, где я сказал!

Для configure/setup скрипта вам необходимо указать директорию верхнего уровня, в которой находятся исходники Apache. Это означает, что вам надо задать --with-apache=/path/to/apache, а не --with-apache=/path/to/apache/src.

3. Во время конфигурации PHP (./configure) вы наталкиваетесь на ошибку, схожую со следующим:

checking lex output file root... ./configure: lex: command not found
       configure: error: cannot find output from lex; giving up

Не забудьте внимательно прочитать инструкции по установке и заметьте, что для компиляции PHP вам нужны оба flex и bison установленные. В зависимости от ваших настроек, установите bison и flex либо из исходников, либо из RPM пакетов.

4. Когда я пытаюсь запустить Apache, я получаю следующее сообщение:

fatal: relocation error: file /path/to/libphp4.so:
       symbol ap_block_alarms: referenced symbol not found

Эта ошибка обычно появляется, если ядро Apache было скомпилировано как разделяемая библиотека DSO. Попробуйте переконфигурировать Apache, используя, по крайней мере, следующие флаги:

--enable-shared=max --enable-rule=SHARED_CORE

Для более подробной информации читайте файл INSTALL верхнего уровня или страницу руководства Apache по DSO.

5. Когда я запускаю configure, он говорит, что не может найти файлы include или библиотеку для GD, gdbm или какого-либо другого пакета!

Вы можете сделать так, что скрипт configure будет искать файлы заголовков или библиотеки в нестандартных местах, задав дополнительные флаги для С препроцессора и компоновщика, такие как:
CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure
Если вы используете csh-подобную оболочку (почему?), то это будет:
env CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure

6. При компиляции файла language-parser.tab.c мне выдаются ошибки, говорящие yytname undeclared.

Вам необходимо обновить вашу версию Bison. Последнюю версию можно найти на http://www.gnu.org/software/bison/bison.html.

7. Когда я запускаю make, похоже, он выполняется нормально, но на конечной линковке жалуется, что не может найти некоторые файлы.

Некоторые старые версии make ошибочно не помещают скомпилированые файлы в поддиректорию functions в той же директории. Попробуйте выполнить cp *.o functions и затем перезапустить make. Если это помогло, то вам действительно надо установить свежую версию GNU make.

8. При компиляции PHP, он жалуется на некоторые неопределённые ссылки.

Посмотрите на строку для компоновки и убедитесь, что все нужные библиотеки добавлены в конце. Часто забывают '-ldl' и библиотеки, необходимые для поддержки подключенных баз данных.

Если вы компонуете с Apache 1.2.x, не забыли ли вы добавить соответствующую информацию в строку EXTRA_LIBS в файле Configuration и перезапустить Configure скрипт для Apache? Смотрите файл INSTALL для дополнительной информации.

Некоторые люди также сообщают, что при компоновке с Apache им пришлось добавить '-ldl' сразу после libphp4.a.

9. Я не могу понять как собрать PHP c Apache 1.3.

На самом деле это очень легко. Аккуратно выполните следующие шаги:

  • Получите последний дистрибутив Apache 1.3 с http://www.apache.org/dist/httpd/.

  • Раскомпрессуйте и разархивируйте (ungzip/untar) его где-нибудь, для примера в /usr/local/src/apache-1.3.

  • Скомпилируйте PHP, сперва запустив ./configure --with-apache=/<path>/apache-1.3 (замените <path> на ваш настоящий путь к директории apache-1.3.)

  • Введите make с последующим make install для того, чтобы построить PHP и скопировать все необходимые файлы в дерево дистрибутива Apache.

  • Перейдите в вашу директорию /<path>/apache-1.3/src и отредактируйте файл Configuration. Добавьте в файл: AddModule modules/php4/libphp4.a.

  • Введите: ./configure и затем make.

  • Теперь у вас должен быть бинарник httpd, поддерживающий PHP!

Замечание: Вы также можете использовать новый скрипт ./configure в Apache. Смотрите инструкции в файле README.configure, входящем в ваш дистрибутив Apache. Также загляните в файл INSTALL из дистрибутива PHP.

10. Я следовал всем шагам по установке модульной версии для Apache на Unix, но мои PHP скрипты выводятся в моём браузере или я получаю запрос сохранить файл.

Это означает, что по какой-то причине модуль PHP не вызывается. Перед тем как обращаться за помощью, проверьте три вещи:

  • Убедитесь, что запускаемый вами бинарник httpd действительно новый, только что построенный httpd. Для этого попробуйте запустить: /path/to/binary/httpd -l

    Если вы не видете mod_php4.c в списке, то вы запускаете не тот бинарник. Найдите и установите правильный бинарник.

  • Убедитесь, что вы добавили правильный Mime Type в один из ваших Apache .conf файлов. Это должно быть: AddType application/x-httpd-php3 .php3 (for PHP 3)

    или AddType application/x-httpd-php .php (for PHP 4)

    Также убедитесь, что эта строка AddType не попала внутрь <Virtualhost> или <Directory> блока, так что она не будет применина к местонахождению вашего тестового скрипта.

  • Наконец, между Apache 1.2 и Apache 1.3 расположение конфигурационных файлов Apache по умолчанию изменилось. Вам надо проверить, что действительно читается тот конфигурационный файл, в который вы добавили строку AddType. Вы можете внести очевидную синтаксическую ошибку в ваш httpd.conf файл или какое-либо другое заметное изменение, которое покажет вам, что читается правильный файл.

11. Говорится использовать: --activate-module=src/modules/php4/libphp4.a, но такой файл не существует, поэтому я заменил это на --activate-module=src/modules/php4/libmodphp4.a и оно не работает!? Что происходит?

Заметьте, что файл libphp4.a не должен существовать. Он будет создан в процессе!

12. Когда я пытаюсь собрать Apache c PHP, в виде статического модуля, используя --activate-module=src/modules/php4/libphp4.a он говорит, что мой компилятор не ANSI-совместимый.

Сообщение об ошибке вводит в заблуждение; это исправлено в более свежих версиях Apache.

13. Когда я пытаюсь собрать PHP используя --with-apxs, я получаю странное сообщение об ошибке.

Проверьте три вещи. Во-первых, по какой-то причине, когда Apache создает Perl скрипт apxs, он получается без правильного компилятора и переменных, задающих флаги. Найдите ваш apxs скрипт (попробуйте команду which apxs), иногда он установлен как /usr/local/apache/bin/apxs или /usr/sbin/apxs. Откройте его и найдите строки, схожие с этими:
my $CFG_CFLAGS_SHLIB  = ' ';          # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = ' ';          # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = ' ';          # substituted via Makefile.tmpl
Если они так и выглядят, то вы нашли вашу проблему. Они могут содержать только пробелы или другие неправильные значения, такие как 'q()'. Измените эти строки на:
my $CFG_CFLAGS_SHLIB  = '-fpic -DSHARED_MODULE'; # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = 'gcc';                   # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = q(-shared);              # substituted via Makefile.tmpl
Вторая возможная проблема возникает только на Red Hat 6.1 и 6.2. Скрипт apxs, приходящий с Red Hat, сломан. Ищите эту строку:
my $CFG_LIBEXECDIR    = 'modules';         # substituted via APACI install
Если вы нашли вышеприведенную строку, измените её на следующее:
my $CFG_LIBEXECDIR    = '/usr/lib/apache'; # substituted via APACI install
И последнее, если вы переконфигурируете/переустанавливаете Apache, запустите make clean после ./configure и перед make.

14. Во время выполнения make я получаю ошибки в microtime и множество всяких RUSAGE_.

Во время инсталяции, выполняя make, если вы сталкиваетесь с проблемами, похожими на следующее:
microtime.c: In function `php_if_getrusage':
microtime.c:94: storage size of `usg' isn't known
microtime.c:97: `RUSAGE_SELF' undeclared (first use in this function)
microtime.c:97: (Each undeclared identifier is reported only once
microtime.c:97: for each function it appears in.)
microtime.c:103: `RUSAGE_CHILDREN' undeclared (first use in this function)
make[3]: *** [microtime.lo] Error 1
make[3]: Leaving directory `/home/master/php-4.0.1/ext/standard'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/master/php-4.0.1/ext/standard'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/master/php-4.0.1/ext'
make: *** [all-recursive] Error 1

Ваша система сломана. Вы должны поправить ваши файлы /usr/include, установив пакет glibc-devel, который соответствует вашей glibc. Это абсолютно не зависит от PHP. Для доказательства попробуйте следующий простой тест:
$ cat >test.c <<X
#include <sys/resource.h>
X
$ gcc -E test.c >/dev/null
Если выдаются ошибки, вы знаете, что у вас беспорядок с include файлами.

15. При компиляции PHP с MySQL, configure выполняется нормально, но во время make я получаю ошибку типа следующего: ext/mysql/libmysql/my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/libmysql/my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp', в чём дело?

Во-первых, важно понимать, что это Предупреждение, а не фатальная ошибка. Так как это последнее, что выводится во время make, оно может выглядеть как фатальная ошибка, но это не так. Конечно, если ваш компилятор умирает на Предупреждениях (Warnings), то тогда да. Также имейте ввиду, что поддержка MySQL включена по умолчанию.

Замечание: Начиная с PHP 4.3.2 вы также будете видеть следующуий текст после того как сборка (make) завершится:

Build complete.
        (It is safe to ignore warnings about tempnam and tmpnam).

16. Я хочу обновить мой PHP. Где я могу найти строку ./configure, которая была использована для моей текущей PHP установки?

Либо смотрите файл config.nice в дереве исходников вашей текущей PHP установки, либо, если это недоступно, просто выполните скрипт:
<?php phpinfo(); ?>
В начале вывода будет находиться строка ./configure, которая была использована для сборки текущего PHP.

17. При сборке PHP с библиотекой GD, либо выдаются странные ошибки компиляции, либо segfault при выполнении.

Убедитесь, что ваша библиотека GD и PHP линкуются с одними и теми же зависимыми библиотеками (например libpng).

18. При компиляции PHP я, кажется, получаю случайные ошибки, например она зависает. Я использую Solaris, если это имеет значение.

Использование не GNU утилит во время компиляции PHP может вызвать проблемы. Чтобы быть уверенным, что компиляция PHP будет работать, используйте GNU утилиты. Например, в Solaris, использование SunOS BSD-совместимой или Solaris версии sed не будет работать, а GNU или Sun POSIX (xpg4) версии sed будет. Ссылки: GNU sed, GNU flex, and GNU bison.

Пред. | Начало | След.
Установка | Уровень выше | Использование PHP


Использование PHP

Руководство по PHP
Пред. След.

Глава 54. Использование PHP

В этом разделе собрано множество общих ошибок, которые могут вам встретиться при написании PHP скриптов.

1. Я хочу написать общий PHP скрипт, кторый может обрабатывать данные, приходящие из любой формы. Как узнать какие переменные метода POST доступны?
2. Мне надо преобразовать все одиночные кавычки (') в обратную косую черту с последующей одиночной кавычкой (\'). Как я могу сделать это с помощью регулярного выражения? Я также хотел бы преобразовать " в \" и \ в \\.
3. Все мои " превратились в \" и мои ' в \', как я могу избавиться от всех этих нежелательных обратных косых черт? Как и почему они появились?
4. Когда я делаю следующее, вывод распечатывается не в том порядке:
<?php
function myfunc($argument)
{
    echo $argument + 10;
}
$variable = 10;
echo "myfunc($variable) = " . myfunc($variable);
?>
Что происходит?
5. Эй, что произошло с моими строками?
<pre>
<?php echo "This should be the first line."; ?>
<?php echo "This should show up after the new line above."; ?>
</pre>
6. Я получаю сообщение 'Warning: Cannot send session cookie - headers already sent...' или 'Cannot add header information - headers already sent...'.
7. Мне необходим прямой доступ к информации в заголовке запроса. Как я могу это сделать?
8. Когда я пытаюсь использовать аутентификацию с IIS, я получаю 'No Input file specified'.
9. Windows: У меня нет доступа к файлам, разделяемых другим компьютером, по IIS.
10. Мой PHP скрипт работает в IE и Lynx, а в Netscape некоторый вывод отсутствует. Когда я выполняю "View Source", я вижу содержимое в IE, а в Netscape нет.
11. Как я должен совмещать XML и PHP? Он жалуется на мои <?xml тэги!
12. Как я могу использовать PHP с FrontPage или каким-либо другим редактором HTML, который настаивает на перемещении моего кода?
13. Где я могу найти полный список переменных, доступных мне в PHP?
14. Как я могу генерировать PDF файлы без использования платных или коммерческих библиотек ClibPDF и PDFLib? Я бы хотел что-нибудь бесплатное и не требующее внешних библиотек PDF.
15. Я пытаюсь получить доступ к одной из стандартных CGI переменных (таких как $DOCUMENT_ROOT или $HTTP_REFERER) в определённой пользователем функции и, похоже, она не может быть найдена. В чём дело?
16. Несколько PHP директив могут принимать сокращения для байтовых значений в отличие от только integer байтовах значений. Каковы все доступные сокращения? И могу ли я использовать их вне php.ini?

1. Я хочу написать общий PHP скрипт, кторый может обрабатывать данные, приходящие из любой формы. Как узнать какие переменные метода POST доступны?

PHP предлагает множество предопределённых переменных, таких как суперглобальная $_POST. Вы можете пройтись по $_POST так как это ассоциативный массив всех значений, пришедших с POST. Для примера, давайте просто пройдёмся по ним с foreach, проверим на пустые (empty()) значения и распечатаем.
<?php
$empty = $post = array();
foreach ($_POST as $varname => $varvalue) {
    if (empty($varvalue)) {
        $empty[$varname] = $varvalue;
    } else {
        $post[$varname] = $varvalue;
    }
}

print "<pre>";
if (empty($empty)) {
    print "None of the POSTed values are empty, posted:\n";
    var_dump($post);
} else {
    print "We have " . count($empty) . " empty values\n";
    print "Posted:\n"; var_dump($post);
    print "Empty:\n";  var_dump($empty);
    exit;
}
?>

Суперглобальные переменные: замечание о доступности: Начиная с PHP 4.1.0, стали доступными суперглобальные массивы, такие как $_GET, $_POST, $_SERVER и т.д. Дополнительную информацию смотрите в разделе руководства superglobals

2. Мне надо преобразовать все одиночные кавычки (') в обратную косую черту с последующей одиночной кавычкой (\'). Как я могу сделать это с помощью регулярного выражения? Я также хотел бы преобразовать " в \" и \ в \\.

Это делает функция addslashes(). Смотрите также mysql_escape_string(). Также вы можете избавиться от обратной косой черты с помощью stripslashes().

Замечание о директиве: magic_quotes_gpc: Директива PHP magic_quotes_gpc имеет значение по умолчанию on (включена). По сути это применяет функцию addslashes() ко всем вашим GET-, POST-, и COOKIE-данным. Чтобы удалить добавленные косые черты, вы можете использовать stripslashes().

3. Все мои " превратились в \" и мои ' в \', как я могу избавиться от всех этих нежелательных обратных косых черт? Как и почему они появились?

PHP функция stripslashes() удалит эти обратные косые черты из вашей строки (string). Вероятнее всего, обратные косые черты магически появились из-за того, что включена PHP директива magic_quotes_gpc

Замечание о директиве: magic_quotes_gpc: Директива PHP magic_quotes_gpc имеет значение по умолчанию on (включена). По сути это применяет функцию addslashes() ко всем вашим GET-, POST-, и COOKIE-данным. Чтобы удалить добавленные косые черты, вы можете использовать stripslashes().

4. Когда я делаю следующее, вывод распечатывается не в том порядке:
<?php
function myfunc($argument)
{
    echo $argument + 10;
}
$variable = 10;
echo "myfunc($variable) = " . myfunc($variable);
?>
Что происходит?

Для того, чтобы использовать результат вашей функции в выражении (таком как соединение с другими строками, как в вышеприведённом примере), вам необходимо вернуть значение с помощью return(), а не выводить его через echo().

5. Эй, что произошло с моими строками?
<pre>
<?php echo "This should be the first line."; ?>
<?php echo "This should show up after the new line above."; ?>
</pre>

В PHP, блок кода завершается либо с "?>", либо с "?>\n" (где \n означает "новая строка"). В вышеприведённом примере предложения выведутся на одной строке, так как PHP опусткает символ новой строки после завершения блока. Это означает, что вам необходимо вставить дополнительный символ новой строки после каждого блока PHP кода, для того чтобы вывод продолжался с новой строки.

Почему PHP делает это? Потому что при форматировании обычного HTML это, обычно, упрощает вашу жизнь когда вым не нужна эта новая строка и вам не надо создавать невероятно длинные строки для того, чтобы сделать сырой исходник страницы читаемым.

6. Я получаю сообщение 'Warning: Cannot send session cookie - headers already sent...' или 'Cannot add header information - headers already sent...'.

Функциям header(), setcookie(), и функциям сессии нужно добавить заголовки к выходному потоку, но заголовки могут быть посланы только перед всем другим содержимым. Перед использованием этих функций не может быть никакого вывода HTML. Функция headers_sent() проверит если ваш скрипт уже послал заголовки; также смотрите Функции Управления Выводом.

7. Мне необходим прямой доступ к информации в заголовке запроса. Как я могу это сделать?

Это делает функция getallheaders() если вы запускаете PHP как модуль Apache. Так следующий кусок кода покажет вам все заголовки запроса:
<?php
$headers = getallheaders();
foreach ($headers as $name => $content) {
    echo "headers[$name] = $content<br />\n";
}
?>

Также смотрите
apache_lookup_uri(),
apache_response_headers() и
fsockopen()

8. Когда я пытаюсь использовать аутентификацию с IIS, я получаю 'No Input file specified'.

Это недостаток модели безопасности IIS. Проблема общая для всех CGI программ, выполняющихся под IIS. Чтобы обойти проблему, создайте простой HTML файл (неразбираемый PHP) как входную страницу в аутентифицируемой директории. Затем используйте META тэг для перенаправления на PHP страницу или поместите ссылку на PHP страницу. После этого PHP распознает аутентификацию правильно. С модулем ISAPI такой проблемы нет. Это не должно повлиять на другие web сервисы NT. Для дополнительной информации смотрите: http://support.microsoft.com/kb/q160422/ и раздел руководства HTTP Аутентификация.

9. Windows: У меня нет доступа к файлам, разделяемых другим компьютером, по IIS.

Вам необходимо сделать изменения. Идите в Internet Information Services. Найдите ваш PHP файл и перейдите в его свойства. Идите в закладку File Security, Edit -> Anonymous access and authentication control.

Вы можете исправить проблему либо сняв отметку с Anonymous Access и оставив отмеченым Integrated Window Authentication, либо отметив Anonymous Access и отредактировать права пользователя, так как у него может не быть прав.

10. Мой PHP скрипт работает в IE и Lynx, а в Netscape некоторый вывод отсутствует. Когда я выполняю "View Source", я вижу содержимое в IE, а в Netscape нет.

Netscape более строг к HTML тэгам (таким как таблицы), чем IE. Может быть полезно пропустить ваш HTML вывод через HTML validator, такой как validator.w3.org. Например, это может быть вызвано отсутствием </table>.

Также, оба IE и Lynx игнорируют любые NUL-ы (\0) в HTML потоке, а Netscape нет. Лучший способ проверить это - скомпилировать версию командной строки PHP (также известную как CGI версия) и выполнить ваш скрипт из командной строки. На *nix, пропустите вывод через od -c и ищите любые \0 символы. Если вы под Windows, вам надо найти редактор или какую-либо другую программу, которая позволяет просматривать двоичные файлы. Когда Netscape видит NUL в файле, он обычно не будет больше ничего выводить на этой строке, тогда как IE и Lynx будут.

11. Как я должен совмещать XML и PHP? Он жалуется на мои <?xml тэги!

Для того, чтобы встроить <?xml напрямую в ваш PHP код, вам надо отключить короткие тэги, установив PHP директиву short_open_tags в 0. Вы можете установить эту директиву с помощью ini_set(). Независимо от того, что включена или нет short_open_tags, вы можете делать что-то типа: <?php echo '<?xml'; ?>. По умолчанию эта директива включена.

12. Как я могу использовать PHP с FrontPage или каким-либо другим редактором HTML, который настаивает на перемещении моего кода?

Самое простое, что можно сделать - это включить поддержку ASP тэгов в вашем PHP коде. Это позволит вам использовать разделители кода в стиле ASP <% и %>. Некоторые популярные редакторы HTML обращаются с ними более интеллигентно (пока ещё). Чтобы разрешить тэги в стиле ASP, вам надо установить переменную asp_tags в php.ini или использовать соответствующую директиву Apache.

13. Где я могу найти полный список переменных, доступных мне в PHP?

Читайте страницу руководства по предопределённым переменным так как она содержит частичный список предопределённых переменных, доступных вашему скрипту. Полный список доступных переменных (и множество другой информации) можно увидеть, вызвав функцию phpinfo(). Не забудьте прочитать раздел руководства по переменным извне PHP так как он описывает общие сценарии для внешних переменных, таких как HTML форма, Cookie и URL.

register_globals: важное замечание: Начиная с PHP 4.2.0, значением директивы PHP register_globals по умолчанию является off (выключено). Сообщество PHP рекомендует всем не полагаться на эту директиву, а использовать вместо этого иные средства, такие как superglobals.

14. Как я могу генерировать PDF файлы без использования платных или коммерческих библиотек ClibPDF и PDFLib? Я бы хотел что-нибудь бесплатное и не требующее внешних библиотек PDF.

Есть несколько альтернатив, написанных на PHP, таких как http://www.ros.co.nz/pdf/, http://www.fpdf.org/, http://www.gnuvox.com/pdf4php/ и http://www.potentialtech.com/ppl.php. А также модуль Panda.

15. Я пытаюсь получить доступ к одной из стандартных CGI переменных (таких как $DOCUMENT_ROOT или $HTTP_REFERER) в определённой пользователем функции и, похоже, она не может быть найдена. В чём дело?

Важно осознавать, что директива PHP register_globals также затрагивает переменные окружения и сервера. Когда register_globals = off (по умолчанию off, начиная с PHP 4.2.0), default is off since PHP 4.2.0), $DOCUMENT_ROOT не будет существовать. Вместо ипользуйте $_SERVER['DOCUMENT_ROOT'] . Если register_globals = on, то переменные $DOCUMENT_ROOT и $GLOBALS['DOCUMENT_ROOT'] будут также существовать.

Если вы уверины, что register_globals = on и удивляетесь почему $DOCUMENT_ROOT недоступна внутри функции, то это потому, что, как любые другие переменные, она требует global $DOCUMENT_ROOT внутри функции. Также смотрите страницу руководства по области определения переменной. Предпочтительно кодировать с register_globals = off.

Суперглобальные переменные: замечание о доступности: Начиная с PHP 4.1.0, стали доступными суперглобальные массивы, такие как $_GET, $_POST, $_SERVER и т.д. Дополнительную информацию смотрите в разделе руководства superglobals

16. Несколько PHP директив могут принимать сокращения для байтовых значений в отличие от только integer байтовах значений. Каковы все доступные сокращения? И могу ли я использовать их вне php.ini?

Доступные опции: K (для Килобайтов), M (для Мегабайтов) и G (для Гигабайтов; доступна начиная с PHP 5.1.0); они чувствительны к регистру. Всё остальное считается байтами. 1M равно одному Мегабайту или 1048576 байтам. 1K равно одному Килобайту или 1024 байтам. Вы не можете использовать эти сокращения вне php.ini, вместо используйте integer значения байтов. Смотрите документацию по ini_get() для примеров как преобразовать эти значения.

Пред. | Начало | След.
Проблемы Сборки | Уровень выше | PHP и HTML


PHP и HTML

Руководство по PHP
Пред. След.

Глава 55. PHP и HTML

PHP и HTML взаимодействуют тесно : PHP может генерировать HTML и HTML может передавать информацию PHP. Перед чтением вопросов в этом разделе важно чтобы вы понимали как получать переменные извне PHP. Страницы руководства по этой теме содержат много примеров. Обращайте особое внимание на то, что register_globals значит для вас.

1. Какое кодирование/декодирование я должен выполнять при передаче значения через форму/URL?
2. Я пытаюсь использовать <input type="image">, но переменные $foo.x и $foo.y недоступны. $_GET['foo.x'] тоже не существует. Где они?
3. Как создать массивы в HTML <form>?
4. Как получить все результаты из HTML тэга select с опцией multiple?
5. Как я могу передать переменную из JavaScript в PHP?

1. Какое кодирование/декодирование я должен выполнять при передаче значения через форму/URL?

Здесь несколько этапов, на которых кодировка важна. Предположим, что у вас есть $data типа string, содержащая строку, которую вы хотите передать некодируемым путем, важные следующие этапы:

  • Интерпретация HTML. Для того, чтобы задать произвольную строку, вы должны заключить её в двойные кавычки и вызвать htmlspecialchars() на всё значение.

  • URL: URL состоит из нескольких частей. Если вы хотите чтобы ваши данные были восприняты как один элемент, вы должны закодировать их с помощью urlencode().

Пример 55-1. Скрытый элемент HTML формы

<?php
    echo "<input type='hidden' value='" . htmlspecialchars($data) . "' />\n";
?>

Замечание: Использовать urlencode() для $data будет неправильным, так как urlencode() кодирование данных на ответственности браузеров. Все популярные браузеры делают это правильно. Отметьте, что это происходит вне зависимости от метода (например, GET или POST). Однако, вы заметите это только в случае GET запроса, так как POST запросы обычно скрыты.

Пример 55-2. Данные, редактируемые пользователем

<?php
    echo "<textarea name='mydata'>\n";
    echo htmlspecialchars($data)."\n";
    echo "</textarea>";
?>

Замечание: Данные показываются браузером как предполагается, потому что браузер будет интерпретировать экранированные HTML символы.

При отправке через GET или POST данные будут закодированы (urlencoded) браузером для передачи и раскодированы (urldecoded) PHP. Поэтому вам не надо выполнять какое-либо url-кодирование/url-раскодирование самим, все выполняется автомагически.

Пример 55-3. В URL

<?php
    echo "<a href='" . htmlspecialchars("/nextpage.php?stage=23&data=" .
        urlencode($data)) . "'>\n";
?>

Замечание: На самом деле вы представляетесь HTML GET запросом, поэтому необходимо вручную закодировать (urlencode()) данные.

Замечание: Вам надо применить htmlspecialchars() на полный URL, потому что URL появляется как значение HTML атрибута. В этом случае, браузер сначала раскодирует всё значение (де-htmlspecialchars()) и затем URL. PHP поймет URL правильно, так как вы закодировали данные с urlencoded().

Вы заметите, что & в URL заменяется на &amp;. Хотя большинство браузеров выправится, если вы забудете об этом, но всё же это не всегда возможно. Поэтому, даже если ваш URL не динамический, вам надо закодировать его с помощью htmlspecialchars().

2. Я пытаюсь использовать <input type="image">, но переменные $foo.x и $foo.y недоступны. $_GET['foo.x'] тоже не существует. Где они?

При отправке формы, вместо стандартной кнопки посылки возможно использовать изображение с тэгом как:
<input type="image" src="image.gif" name="foo" />
Когда пользователь щёлкает где-либо на картинке, серверу будет послана сопутствующая форма с двумя дополнительными переменными: foo.x и foo.y.

Так как имена foo.x и foo.y нелегальны в PHP, они автомагически превращаются в foo_x и foo_y. То есть, точки заменяются на подчёркивание. Вы обращаетесь к этим переменным так же как к любым другим, описанным в разделе о получении переменных извне PHP. Например, $_GET['foo_x'].

Замечание: Пробелы в именах переменных запроса преобразуются в подчёркивания.

3. Как создать массивы в HTML <form>?

Для того, чтобы результаты <form> были посланы вашему PHP скрипту как массив, именуйте элементы <input>, <select> или <textarea> следующим образом:
<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyArray[]" />
Заметьте квадратные скобки после имени переменной, это делает её массивом. Вы можете сгруппировать элементы в массив, присваивая одно и тоже имя разным элементам:
<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyOtherArray[]" />
<input name="MyOtherArray[]" />
Это создаст два массива, MyArray и MyOtherArray, которые будут посланы PHP скрипту. Также возможно задать определённые ключи для ваших массивов:
<input name="AnotherArray[]" />
<input name="AnotherArray[]" />
<input name="AnotherArray[email]" />
<input name="AnotherArray[phone]" />
Массив AnotherArray теперь будет содержать ключи 0, 1, email и phone.

Замечание: Определять ключи массивов в HTML необязательно. Если вы не задаёте ключи, массив заполняется в порядке появления элементов в форме. Наш первый пример будет содержать ключи 0, 1, 2 и 3.

Также смотрите Функции Массивов и Переменные извне PHP.

4. Как получить все результаты из HTML тэга select с опцией multiple?

HTML тэг select с multiple позволяет пользователю выбрать несколько элементов из списка. Эти элементы затем передаются обработчику формы. Проблема в том, что они все переданы с одним и тем же именем. Например:
<select name="var" multiple="yes">
Каждая выбранная опция поступит обработчику формы как:
var=option1
var=option2
var=option3
Каждая опция будет затирать содержимое предыдущей переменной $var. Решение - воспользоваться возможностью PHP "массив из элемента формы". Должно быть задано следующее:
<select name="var[]" multiple="yes">
Это укажет PHP обращаться с $var как с массивом и каждое присваивание значения для var[] добавит элемент в массив. Первый элемент становится $var[0], следующий $var[1] и т.д. Функция count() может быть использована для определения сколько элементов было выбрано и функция sort() может быть использована для сортировки массива опций, если необходимо.

Заметьте, что если вы используете JavaScript, то [] в имени элемента может вызвать проблемы, если вы пытаетесь обращаться к элементу по имени. Вместо, используйте числовой ID элемента формы или заключите имя переменной в одиночные скобки и используйте как индекс массива элементов, например:
variable = documents.forms[0].elements['var[]'];

5. Как я могу передать переменную из JavaScript в PHP?

Так как JavaScript является (обычно) технологией на стороне клиента, а PHP является (обычно) технологией серверной стороны и так как HTML - протокол "без состояния", эти два языка не могут разделять переменные напрямую.

Однако, возможно передавать переменные между ними. Один из способов достичь этого - сгенерировать JavaScript код из PHP и заставить браузер обновиться, посылая определённые переменные назад PHP скрипту. Нижеприведённый пример показывает как это сделать -- он позволяет PHP коду получить высоту и ширину экрана, что, обычно, возможно только на стороне клиента.

<?php
if (isset($_GET['width']) AND isset($_GET['height'])) {
  // output the geometry variables
  echo "Screen width is: ". $_GET['width'] ."<br />\n";
  echo "Screen height is: ". $_GET['height'] ."<br />\n";
} else {
  // pass the geometry variables
  // (preserve the original query string
  //   -- post variables will need to handled differently)

  echo "<script language='javascript'>\n";
  echo "  location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}"
            . "&width=\" + screen.width + \"&height=\" + screen.height;\n";
  echo "</script>\n";
  exit();
}
?>

Пред. | Начало | След.
Использование PHP | Уровень выше | PHP и COM


PHP и COM

Руководство по PHP
Пред. След.

Глава 56. PHP и COM

PHP может быть использован для доступа к COM и DCOM объектам на Win32 платформах.

1. Я построил DLL для вычисления кое-чего. Можно ли запустить эту DLL из PHP?
2. Что значит 'Unsupported variant type: xxxx (0xxxxx)'?
3. Возможно ли манипулирование визуальными объектами в PHP?
4. Могу ли я сохранять COM объекты в сессии?
5. Как я могу поймать COM ошибки?
6. Можно ли генерировать DLL файлы из PHP скриптов как это можно делать в Perl?
7. Что значит 'Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}'?
8. Как можно запускать COM объекты с удалённого сервера?
9. Я получаю 'DCOM is disabled in C:\path...\scriptname.php on line 6', что делать?
10. Возможно ли с помощью PHP загрузить/манипулировать ActiveX объектом на странице?
11. Возможно ли получить выполняющийся экземпляр компонента?
12. Есть ли способ обработать событие, посланное COM объектом?
13. У меня возникают проблемы при попытке вызвать метод COM объекта, который предоставляет более чем один интерфейс. Что я могу сделать?
14. Значит PHP работает с COM, как насчёт COM+?
15. Если PHP может манипулировать COM объектами, можно ли представить себе использование MTS для управления ресурсами компонентов в соединении с PHP?

1. Я построил DLL для вычисления кое-чего. Можно ли запустить эту DLL из PHP?

Если это простая DLL, то пока ещё нет возможности вызвать её из PHP. Если DLL содержит COM сервер, то вы могли бы получить доступ к ней, если она реализует интерфейс IDispatch.

2. Что значит 'Unsupported variant type: xxxx (0xxxxx)'?

Существуют дюжины VARIANT типов и их комбинаций. Большинство из них уже поддерживается, но несколько всё ещё не реализованы. Массивы поддерживаются не полностью. Только одномерные индексированные массивы могут передаваться между PHP и COM. Если вы обнаружите неподдерживаемые типы, пожалуйста, сообщите о них как об ошибке (если это ещё не сделано) и предоставте всю доступную информацию.

3. Возможно ли манипулирование визуальными объектами в PHP?

В общем да, но так как PHP в основном используется как скриптовый язык для web и выполняется в контексте web сервера, то визуальные объекты никогда не появятся на рабочем столе (desktop) сервера. Если вы используете PHP как скрипт для приложений, например в связке с PHP-GTK, тогда нет ограничений на доступ и манипулирование визуальными объектами через COM.

4. Могу ли я сохранять COM объекты в сессии?

Нет, не можете. Так как с экземплярами COM объектов обращаются как с ресурсами, то они доступны только в контексте одного скрипта.

5. Как я могу поймать COM ошибки?

В PHP 5 COM расширение возбуждает исключение com_exception, которое вы можете перехватить и затем проверить поле code для того, чтобы определить что делать дальше.

В PHP 4 поймать COM ошибки средствами, отличными от тех, что предлагает сам PHP (@, track_errors, ...) невозможно.

6. Можно ли генерировать DLL файлы из PHP скриптов как это можно делать в Perl?

Нет, к сожалению такое средство недоступно для PHP.

7. Что значит 'Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}'?

Эта ошибка может возникнуть по разным причинам:

  • неправильный CLSID

  • отсутствует запрошенная DLL

  • запрошенный компонент не реализует интерфейс IDispatch

8. Как можно запускать COM объекты с удалённого сервера?

Точно так же как вы запускаете локальные объекты. Вам только надо передать IP удалённой машины как второй параметер COM конструктора.

Убедитесь, что в вашем php.ini вы установили com.allow_dcom =TRUE.

9. Я получаю 'DCOM is disabled in C:\path...\scriptname.php on line 6', что делать?

Отредактируйте ваш php.ini и установите com.allow_dcom =TRUE.

10. Возможно ли с помощью PHP загрузить/манипулировать ActiveX объектом на странице?

PHP здесь не причём. ActiveX объекты загружаются на стороне клиента, если они были запрошены из HTML документа. Связи с PHP скриптом нет и, следовательно, прямое взаимодействие с серверной стороной невозможно.

11. Возможно ли получить выполняющийся экземпляр компонента?

Это возможно с помощью моникеров. Если вы хотите получить несколько ссылок на один и тот же экземпляр Word, вы можете создать этот экземпляр как показано:

<?php
$word = new COM("C:\docs\word.doc");
?>

Это создаст новый экземпляр, если нет доступного выполняющегося экземпляра или будет возвращена ссылка на выполняющийся экземпляр, если таковой доступен.

12. Есть ли способ обработать событие, посланное COM объектом?

Используя com_event_sink() вы можете определить приёмник события и привязать его. Вы можете заставить PHP сгенерировать скелет класса приёмника событий, используя com_print_typeinfo().

13. У меня возникают проблемы при попытке вызвать метод COM объекта, который предоставляет более чем один интерфейс. Что я могу сделать?

Ответ так же прост как и неудовлетворителен. Не знаю точно, но думаю, что вы не можете ничего сделать. Если у кого-то есть точная информация по этому вопросу, пожалуйста, дайте мне знать :)

14. Значит PHP работает с COM, как насчёт COM+?

COM+ расширяет COM, предоставляя систему для управления компонентами через MTS и MSMQ, но здесь нет ничего особенного, что PHP должен поддерживать для использования таких компонент.

15. Если PHP может манипулировать COM объектами, можно ли представить себе использование MTS для управления ресурсами компонентов в соединении с PHP?

Сам PHP ещё не обрабатывает транзакции. Таким образом, если возникает ошибка, откат не инициируется. Если вы используете компоненты, поддерживающие транзакции, вам будет необходимо реализовать управление транзакциями самим.

Пред. | Начало | След.
PHP и HTML | Уровень выше | PHP и другие языки


PHP и другие языки

Руководство по PHP
Пред. След.

Глава 57. PHP и другие языки

PHP самый лучший язык для web программирования, а как насчёт других языков?

1. PHP против ASP?
2. Существует ли преобразователь ASP в PHP?
3. PHP против Cold Fusion?
4. PHP против Perl?

1. PHP против ASP?

На самом деле, ASP сам по себе языком не является, это акроним для Active Server Pages, в действительности для программирования с ASP используется Visual Basic Script или JScript. Наибольшим недостатком ASP является то, что это частная система и по родному используется только на Microsoft Internet Information Server (IIS). Это ограничивает его доступность только для Win32 серверов. Существует пара проектов в работе, которые позволяют ASP выполняться в других окружениях и на других web серверах: InstantASP от Halcyon (коммерческий), Chili!Soft ASP от Chili!Soft (коммерческий). Считается, что ASP медленнее и более громоздкий чем PHP, а также менее стабильный. Некоторыми "за" для ASP является то, что так как в нём в основном используется VBScript, то подхватить язык относительно легко, если вы уже знаете как программировать в Visual Basic. Поддержка ASP по умолчанию включена в IIS, что упрощает его установку и зыпуск. Встроенные в ASP компоненты очень ограничены, поэтому если вам требуются "продвинутые" возможности, такие как взаимодействие с FTP серверами, вам придётся покупать дополнительные компоненты.

2. Существует ли преобразователь ASP в PHP?

Да, для серверной стороны наиболее часто ссылаются на asp2php, также как и на вариант для стороны клиента.

3. PHP против Cold Fusion?

В общем считается, что PHP быстрее и более эффективен для сложных программных задач и для пробования новых идей. Также на PHP обычно ссылаются как на более стабильный и менее требовательный к ресурсам. Cold Fusion имеет лучшую обработку ошибок, абстракцию баз данных и разбор дат, хотя в PHP 4 тоже уделено внимание абстракции баз данных. Другое, что перечисляется как одна из сильных сторон Cold Fusion, это его превосходная поисковая система, но отмечается, что поисковая система это не то, что должно быть включено в скриптовый язык для web. PHP работает почти на каждой существующей платформе, Cold Fusion доступен только для Win32, Solaris, Linux и HP/UX. Cold Fusion имеет хороший IDE и в общем в нём легче начинать, тогда как PHP вначале требует больше знаний по программированию. Cold Fusion был спроектирован в расчёте на не программистов, когда PHP сосредотачивается на программистах.

Замечательное сводка на эту тему от Майкла Дж. Шелдона (Michael J Sheldon) была опубликованна в списке почтовой рассылки для PHP. Копия может быть найдена на http://marc.theaimsgroup.com/?l=php-general&m=95602167412542&w=1.

4. PHP против Perl?

Наибольшее преимущество PHP перед Perl это то, что PHP был спроектирован для написания скриптов для web, в то время, как Perl был создан для более широкого круга задач и поэтому может быть очень сложным. С гибкостью/сложностью Perl проще писать код, который будет трудно читать другому автору/кодировщику. PHP имеет менее запутанный и более строгий формат без ущерба для гибкости. PHP проще интегрировать в существующий HTML, чем Perl. PHP имеет почти что все 'хорошие' функциональные возможности Perl: конструкции, синтаксис и так далее, не становясь таким же сложным, каким может быть Perl. Perl довольно испытанный и точный язык, он существует с конца восьмидесятых, но PHP зреет очень быстро.

Пред. | Начало | След.
PHP и COM | Уровень выше | Переход из PHP 2 в PHP 3


Переход из PHP 2 в PHP 3

Руководство по PHP
Пред. След.

Глава 58. Переход из PHP 2 в PHP 3

PHP уже имеет длинную историю за плечами: легендарный PHP 1.0, PHP/FI, PHP 3.0 и PHP 4.0.

1. Переход из PHP 2 в PHP 3

1. Переход из PHP 2 в PHP 3

PHP/FI 2.0 больше не поддерживается. Пожалуйста, смотрите соответствующий раздел руководства для информации по переходу из PHP/FI 2.0.

Если вы всё ещё работаете с PHP 2, мы настоятельно рекомендуем вам переходить прямо в PHP 4.

Пред. | Начало | След.
PHP и другие языки | Уровень выше | Переход из PHP 3 в PHP 4


Переход из PHP 3 в PHP 4

Руководство по PHP
Пред. След.

Глава 59. Переход из PHP 3 в PHP 4

PHP уже имеет длинную историю за плечами: легендарный PHP 1.0, PHP/FI, PHP 3.0 и PHP 4.0.

1. Переход из PHP 3 в PHP 4
2. Работают ли сессии в PHP 3?
3. Несовместимые функции?

1. Переход из PHP 3 в PHP 4

PHP 4 проектировался быть совместимым с ранними версиями PHP как только возможно и в процессе функциональность было нарушена совсем немного. Если вы действительно не уверенны в совместимости, вам надо установить PHP 4 в тестовом окружении и запустить ваши скрипты там.

Также смотрите соответствующее приложение по переходу в этом руководстве.

2. Работают ли сессии в PHP 3?

Хотя поддержка родных сессий не существовала в PHP 3, есть сторонние приложения, которые предлагали (и всё еще предлагают) функциональную возможность сессий. Наиболее общий метод заключался в использовании PHPLIB.

3. Несовместимые функции?

Так как в основном в PHP 4 переписан полный PHP механизм, только несколько функций было заменено и то только самых экзотичных.

Пред. | Начало | След.
Переход из PHP 2 в PHP 3 | Уровень выше | Переход из PHP 4 в PHP 5


Переход из PHP 4 в PHP 5

Руководство по PHP
Пред. След.

Глава 60. Переход из PHP 4 в PHP 5

Этот раздел поможет вам при переходе из PHP 4 в PHP 5.

1. Переход из PHP 4 в PHP 5
2. Работает ли MySQL в PHP 5? Похоже, она исчезла?
3. Я слышал, что PHP 5 имеет полностью новую модель ООП, будет ли мой существующий код работать? Где найти информацию об этих новых возможностях ООП?
4. Кроме новой модели ООП что ещё изменилось в PHP 5? Также есть ли отдельная версия этого руководства для PHP 5?

1. Переход из PHP 4 в PHP 5

Хотя PHP 5 предлагает много новых возможностей, он проектировался для совместимости с ранними версиями PHP насколько это только возможно, в процессе функциональность была нарушена не много.

Не забудьте прочитать соответствующее приложение по миграции в PHP 5 в этом руководстве, так как оно содержит даже больше информации на тему мигрирования в PHP 5.

2. Работает ли MySQL в PHP 5? Похоже, она исчезла?

MySQL поддерживается с единственным изменением в том, что поддержка MySQL более не включена по умолчанию в PHP 5. Это главным образом означает, что PHP по умолчанию не включает опцию --with-mysql в строку для configure, поэтому вам надо сделать это в ручную при компиляции PHP. Пользователи Windows будут редактировать php.ini и включать php_mysql.dll DLL, так как эта DLL не существовала в PHP 4, она была просто включена в ваши бинарники PHP для Windows.

Также клиентские библиотеки MySQL больше не поставляются с PHP. Более подробно эта тема освещена здесь и обязательно прочитайте раздел по MySQL для деталей по установке MySQL. Пример строки конфигурации будет: --with-mysql=/usr, в то время как пользователям Windows будет нужна доступная в системе libmySQL.dll.

3. Я слышал, что PHP 5 имеет полностью новую модель ООП, будет ли мой существующий код работать? Где найти информацию об этих новых возможностях ООП?

Основное изменение в PHP 5 - это изменение в модели ООП, так PHP 5 теперь использует Zend Engine 2.0. Директива zend.ze1_compatibility_mode включает совместимость с Zend Engine 1.0 (PHP 4).

Новая модель ООП документирована в справочнике языка по ООП и приложении по переходу к ООП.

4. Кроме новой модели ООП что ещё изменилось в PHP 5? Также есть ли отдельная версия этого руководства для PHP 5?

Существует несколько других изменений, для подробностей смотрите приложение по переходу в PHP 5. Специальной для PHP 5 версии этого руководства не будет, так как в основном объёме PHP остается всё тем же.

Пред. | Начало | След.
Переход из PHP 3 в PHP 4 | Уровень выше | Разные вопросы


Разные вопросы

Руководство по PHP
Пред. След.

Глава 61. Разные вопросы

Некоторые вопросы могут не подходить для других категорий. Вы можете найти их здесь.

1. Как я могу обращаться со сжатыми bz2 руководствами под Windows?
2. Что означает & рядом с аргументом в объявлении функции, например asort()?
3. Как обращаться с register_globals?

1. Как я могу обращаться со сжатыми bz2 руководствами под Windows?

Если у вас нет архиватора для работы с bz2 файлами, то скачайте утилиту для командной строки от Redhat (пожалуйста, ищите подробности ниже).

Если вы не хотите использовать утилиту командной строки, вы можете попробовать бесплатные средства, такие как Stuffit Expander, UltimateZip, 7-Zip или Quick Zip. Если у вас есть такие утилиты как WinRAR или Power Archiver, то с их помощью вы можете легко распаковать bz2 файлы. Если вы пользуетесь Total Commander (бывший Windows Commander), подключаемый модуль bz2 для этой программы доступен бесплатно с сайта Total Commander.

Утилита командной строки bzip2 от Redhat:

Пользователи Win2K Sp2 должны взять последнюю версию 1.0.2, пользователи всех других Windows должны взять версию 1.00. После загрузки переименуйте исполняемый файл в bzip2.exe. Для удобства положите его в директорию в вашем пути, например C:\Windows, где C соответствует диску, на котором установлен ваш Windows.

Замечание: lang обозначает ваш язык и x - желаемый формат, например pdf. Чтобы распаковать php_manual_lang.x.bz2, следуйте этим простым инструкциям:

  • откройте окно запроса команды (command prompt)

  • cd в директорию, где вы храните скаченный php_manual_lang.x.bz2

  • вызовите bzip2 -d php_manual_lang.x.bz2, извлеките php_manual_lang.x в ту же директорию

В случае, если вы скачали php_manual_lang.tar.bz2, содержащий множество html файлов, процедура точно такая же. Единственное отличие заключается в том, что вы получили файл php_manual_lang.tar. Известно, что формат tar обрабатывается большинством распространённых архиваторов под Windows, например такими как WinZip.

2. Что означает & рядом с аргументом в объявлении функции, например asort()?

Это означает, что аргумент передаётся по ссылке и функция, вероятно, изменит его согласно документации. Таким путём вы можете передать только переменные и вам не обязательно задавать & при вызове функции (и это даже не рекомендуется).

3. Как обращаться с register_globals?

Для информации по проблемам безопасности, связанных с register_globals, читайте Использование register_globals в главе Безопасность.

Предпочтительнее использовать superglobals, чем полагаться на то, что register_globals установлена в On.

Если вы пользуетесь совместным хостом с выключенной register_globals и вам надо использовать некоторые существующие приложения, которые требуют чтобы эта опция была включена; или вы на каком-либо сервере, где эта возможность включена, но вы хотите эмулировать проблему по безопасности, то возможно вам надо эмулировать противоположную установку с помощью PHP. Всегда лучше сначала спросить, если можно каким-либо образом изменить опцию в конфигурации PHP, но если это невозможно, то вы можете воспользоваться следующими совместимыми кусками кода.

Пример 61-1. Эмулирование Register Globals

Следующее эмулирует register_globals установленную в On.

<?php
// Emulate register_globals on
if (!ini_get('register_globals')) {
    $superglobals = array($_SERVER, $_ENV,
        $_FILES, $_COOKIE, $_POST, $_GET);
    if (isset($_SESSION)) {
        array_unshift($superglobals, $_SESSION);
    }
    foreach ($superglobals as $superglobal) {
        extract($superglobal, EXTR_SKIP);
    }
    ini_set('register_globals', true);
}
?>

Следующее эмулирует register_globals установленную в Off.

<?php
// Emulate register_globals off
if (ini_get('register_globals')) {
    $superglobals = array($_SERVER, $_ENV,
        $_FILES, $_COOKIE, $_POST, $_GET);
    if (isset($_SESSION)) {
        array_unshift($superglobals, $_SESSION);
    }
    foreach ($superglobals as $superglobal) {
        foreach ($superglobal as $global => $value) {
            unset($GLOBALS[$global]);
        }
    }
    ini_set('register_globals', false);
}
?>

Пред. | Начало | След.
Переход из PHP 4 в PHP 5 | Уровень выше | Приложения


Приложения

Руководство по PHP
Пред. След.

IX. Приложения

Содержание
A. История PHP и смежных проектов
B. Миграция с PHP 4 на PHP 5
C. Migrating from PHP 3 to PHP 4
D. Migrating from PHP/FI 2 to PHP 3
E. Отладка PHP
F. Configure options
G. Директивы php.ini
H. List of Supported Timezones
I. Extension Categorization
J. Список псевдонимов функций
K. List of Reserved Words
L. List of Resource Types
M. List of Supported Protocols/Wrappers
N. Список доступных фильтров
O. Список поддерживаемых транспортных протоколов
P. Таблица сравнения типов в PHP
Q. List of Parser Tokens
R. Об этом руководстве
S. Open Publication License
T. Список функций
U. Что отсутствует в этом руководстве

Пред. | Начало | След.
Разные вопросы |  | История PHP и смежных проектов


История PHP и смежных проектов

Руководство по PHP
Пред. След.

Приложение A. История PHP и смежных проектов

Содержание
История PHP
История смежных с PHP проектов
Книги о PHP
Публикации, посвященные PHP

PHP прошёл долгий путь за последние несколько лет. Становление одним из наиболее популярных языков web-разработки не простая задача. Те из вас, кого интересует краткое описание того, как PHP развивался и становился тем, чем является сейчас, читайте далее. Старые версии PHP могут быть найдены в Музее PHP.

История PHP

PHP/FI

Истоки PHP лежат в старом продукте, имевшем название PHP/FI. Последний был создан Расмусом Лердорфом в 1995 году и представлял собой набор Perl-скриптов для ведения статистики посещений его резюме. Этот набор скриптов был назван 'Personal Homepages Tools' ('Инструменты для персональных домашних страниц'). Очень скоро потребовалась большая функциональность и Расмус пишет новую, намного более обширную версию на C, работающую с базами данных и позволяющую пользователям разрабатывать простейшие web-приложения. Расмус решил выложить исходный код PHP/FI на всеобщее обозрение, исправление ошибок и дополнение.

PHP/FI (Personal Home Page / Forms Interpreter - Персональная Домашняя страница / Интерпретатор Форм) включал в себя базовую функциональность сегодняшнего PHP. Он имел переменные в стиле Perl, автоматическую интерпретацию форм и возможность встраиваться в html-код. Собственно синтаксис языка имел много общего с Perl, хотя и был намного проще и ограниченнее.

В 1997 выходит PHP/FI 2.0, вторая версия C-имплементации обозначила группу пользователей: несколько тысяч людей по всему миру, с примерно 50,000 доменами, что составляло около 1% всего числа доменов Интернета. Несмотря на то, что разработкой занималось уже несколько людей, PHP/FI 2.0 все еще оставался крупным проектом одного человека.

Официально PHP/FI 2.0 вышел только в ноябре 1997 года, после проведения большей части своей жизни в бета-версиях. Вскоре после выхода его заменили альфа-версии PHP 3.0.

PHP 3

PHP 3.0 была первой версией, напоминающей PHP, каким мы знаем его сегодня. В 1997 году Энди Гутманс (Andi Gutmans) и Зив Сураски (Zeev Suraski) переписали код с начала: разработчики сочли PHP/FI 2.0 не пригодным для разработки приложения электронной коммерции, над которым они работали для проекта Университета. Для совместной работы над PHP 3.0 с помощью базы разработчиков PHP/FI 2.0 Энди, Расмус и Зив решили объединиться и объявить PHP 3.0 официальным преемником PHP/FI, разработка же PHP/FI была практически полностью прекращена.

Одной из сильнейших сторон PHP 3.0 была возможность расширения ядра. В последствии интерфейс написания расширений привлек к PHP множество сторонних разработчиков, работающих над своими модулями, что дало PHP возможность работать с огромным количество баз данных, протоколов, поддерживать большое число API. Фактически, это и был главный ключ к успеху, но стоит добавить, что немаловажным шагом оказалась разработка нового, намного более мощного и полного синтаксиса с поддержкой ООП.

Абсолютно новый язык программирования получил новое имя. Разработчики отказались от дополнения о персональном использовании, которое имелось в аббревиатуре PHP/FI. Язык был назван просто 'PHP' -- аббревиатура, содержащая рекурсивный акроним: 'PHP: Hypertext Preprocessor' (PHP: Препроцессор Гипертекста).

К концу 1998, PHP использовался десятками тысяч пользователей. Сотни тысяч web-сайтов сообщали о том, что они работают с использованием языка. В то время PHP 3.0 был установлен приблизительно на 10% серверах Интернета.

PHP 3.0 был официально выпущен в июне 1998 года после 9 месяцев публичного тестирования.

PHP 4

К зиме 1998 года, практически сразу после официального выхода PHP 3.0, Энди Гутманс и Зив Сураски начали переработку ядра PHP. В задачи входило увеличение производительности сложных приложений и улучшение модульности базиса кода PHP. Расширения дали PHP 3.0 возможность успешно работать с набором баз данных и поддерживать большое количество различных API и протоколов, но PHP 3.0 не имел качественной поддержки модулей и приложения работали не эффективно.

Новый движок, названный 'Zend Engine' (от имен создателей: Zeev и Andi), успешно справлялся с поставленными задачами и впервые был представлен в середине 1999 года. PHP 4.0, основанный на этом движке и принесший с собой набор дополнительных функций, официально вышел в мае 2000 года, почти через два года после выхода своего предшественника PHP 3.0. В дополнение к улучшению производительности, PHP 4.0 имел еще несколько ключевых нововведений, таких как поддержка сессий, буферизация вывода, более безопасные способы обработки вводимой пользователем информации и несколько новых языковых конструкций.

В настоящее время, PHP 4 является последней версией PHP. Но уже ведутся работы по улучшению Zend Engine по внедрению нововведений для PHP 5.0.

Сегодня PHP используется сотнями тысяч разработчиков. Несколько миллионов сайтов сообщают о работе с PHP, что составляет более 20% доменов Интернета.

Группа разработчиков PHP состоит из множества людей, работающих над ядром и расширениями PHP, и смежными проектами, такими, как PEAR или документация языка.

PHP 5

Будущее PHP во многом определяется его ядром, Zend Engine. PHP5 будет основан на новом Zend Engine 2.0. За получением дополнительной информации об этом движке обращайтесь к его сайту.

Пред. | Начало | След.
Приложения | Уровень выше | История смежных с PHP проектов


История смежных с PHP проектов

PEAR

PEAR (PHP Extension and Application Repository - Репозиторий Приложений и Расширений PHP. Изначально, PHP Extension and Add-on Repository - Репозиторий Дополнений и Расширений PHP) - это PHP-версия базовых классов. В будущем возможен его рост и становление ключевым способом публикации расширений PHP (также основанных на C) среди разработчиков.

PEAR зародился в ходе дискуссий на встрече разработчиков PHP, проходившей в январе 2000 года в Тель-Авиве. Автором PEAR является Стиг С. Баккен (Stig S. Bakken), который посвятил разработку своей первой дочери, Мэлин Баккен (Malin Bakken).

С начала 2000 года PEAR вырос до огромного проекта с большим количеством разработчиков, работающих над репозиторием для всего сообщества PHP. В настоящее время PEAR включает в себя широкий спектр классов для работы с базами данных, кэширования содержания, математических вычислений, электронной коммерции и многого другого.

Дополнительная информация о PEAR может быть найдена в документации.

Инициатива Гарантии Качества PHP

Группа Инициативы Гарантии Качества PHP была основана весной 2000 в ответ на критику недостаточного бета-тестирования PHP для производственных окружений. Сейчас это группа состоит из людей, прекрасно понимающих основу кода PHP. Эти разработчики тратят множество времени на обнаружение и устранение ошибок в PHP. Кроме того, много других членов команды тестирует эти исправления и сообщает о результатах их работы на различных платформах.

PHP-GTK

PHP-GTK является расширением PHP для написания GUI-приложений, работающих на стороне клиента. Андрей Змиевски (Andrei Zmievski) вспоминает процесс планирования и разработки PHP-GTK:

Я всегда интересовался GUI-программированием, и я нахожу Gtk+ очень приятным средством разработки, исключая то, что программированием с Gtk на C немного утомительно. После просмотра PyGtk и GTK-Perl, я решил попробовать написать интерфейс PHP для работы с Gtk, пусть с минимальными возможностями. Начиная в Августе 2000, у меня появилось немного больше свободного времени и я начал эксперименты. В разработке я основывался на PyGTK, обладающим большим количеством возможностей и приятным объектно-ориентированным интерфейсом. Джеймс Хэнстридж (James Henstridge), автор PyGtk, давал очень полезные советы в течение первых этапов разработки.

Написание вручную интерфейсов ко всем функциям Gtk+ даже не рассматривалось. Я остановился на идее генератора кода, похожего на аналогичный генератор PyGtk. Генератор читает .defs файлы, содержащие классы, константы Gtk+ и генерирует C-код, являющийся интерфейсом в PHP. То, что не может быть сгенерировано автоматически создается вручную в .overrides файлах.

Работа над генератором кода и инфраструктурой расширения шла достаточно долгий срок, ввиду того, что я не имел достаточно свободного времени для работы. После того, как я показал PHP-GTK Фрэнку Кромману (Frank Kromman), его это заинтересовало и он начал помогать мне с версией для Win32. Когда мы написали и запустили первую программу Hello World, это было очень захватывающе. Несколько месяцев потребовалось для придания PHP-GTK презентабельного вида и первая версия вышла 1 марта 2001 года. История быстро попала в SlashDot.

Чувствуя, что PHP-GTK может расти, я создал отдельные почтовые конференции, CVS-репозиторий, а также сайт gtk.php.net с помощью Колина Виеброка (Colin Viebrock). Требовалась документация и здесь на помощь пришел Джеймс Мур (James Moore).

Со времен создания PHP-GTK получил широкую известность. У нас есть своя группа документирования, люди начинают писать расширения для PHP-GTK и все больше и больше прекрасных приложений с его помощью.

Пред. | Начало | След.
История PHP и смежных проектов | Уровень выше | Книги о PHP


Книги о PHP

С ростом PHP, его начали узнавать по всему миру, как популярный язык программирования. Одним из наиболее интересных способов суждения об этом может послужить обзор книг о PHP.

Насколько нам известно, первой книгой, посвященной PHP, была чешская книга, выпущенная в апреле 1999 года под названием 'PHP - tvorba interaktivnнch internetovэch aplikacн'. Автором книги является Jirka Kosek. В следующем месяце следом за ней выходит немецкая книга Эгона Шмидта (Egon Schmid), Кристиана Картуса (Christian Cartus) и Ричарда Блюма (Richard Blum). Вскоре после этого была опубликована первая на английском языке книга, посвященная PHP, - 'Core PHP Programming' Леона Аткинсона (Leon Atkinson). Обе эти книги описывали PHP 3.0.

Эти книги были первыми в своем роде, и вскоре было выпущено большое количество книг различных авторов и издательств. Существует более 40 книг на английском, 50 на немецком, и больше 20 на французском языке! Кроме того, вы можете найти книги о PHP на многих других языках, включая испанский, корейский, японский и иврит.

Очевидно, что такое большое количество книг, написанных разными авторами и опубликованных многими издательствами на столь многих языках является весомым подтверждением мирового успеха PHP.

Пред. | Начало | След.
История смежных с PHP проектов | Уровень выше | Публикации, посвященные PHP


Публикации, посвященные PHP

По нашей информации, первая статья о PHP была опубликована в чешском варианте 'Computerworld' весной 1998 и освещала PHP 3.0. Как и в случае с книгами, эта была первая в серии статья из множества посвященных PHP и опубликованных в различных известных журналах.

Статьи о PHP публиковались в 'Dr. Dobbs', 'Linux Enterprise', 'Linux Magazine' и многих других изданиях. А статьи о переносе основанных на ASP приложений на PHP под Windows появились даже в принадлежащей Microsoft MSDN!

Пред. | Начало | След.
Книги о PHP | Уровень выше | Миграция с PHP 4 на PHP 5


Миграция с PHP 4 на PHP 5

Руководство по PHP
Пред. След.

Приложение B. Миграция с PHP 4 на PHP 5

Содержание
Что изменилось в PHP 5
Изменения, повлекшие за собой обратную несовместимость
CLI и CGI
Миграция конфигурационных файлов
Новые функции
Новые директивы
Базы данных
Новая Объектная Модель
Сообщения об ошибках

Что изменилось в PHP 5

PHP 5 и интегрированный Zend Engine 2 привнесли очень многое в плане производительности и списка возможностей PHP, однако прилагалось максимум усилий для того, чтобы сохранить совместимость с максимальным объемом существующего кода. Поэтому миграция вашего кода с PHP 4 на 5 должна быть крайне проста. Большинство существующего кода на PHP 4 должно запускаться без всяких проблем, но вам все равно необходимо знать о небольших различиях и озаботиться тестированием вашего кода перед сменой версии в production-средах.

Пред. | Начало | След.
Публикации, посвященные PHP | Уровень выше | Изменения, повлекшие за собой обратную несовместимость


Изменения, повлекшие за собой обратную несовместимость

Несмотря на то, что большинство кода на PHP 4 должно работать безо всяких изменений, вам следует обратить вимание на следующие изменения, повлекшие за собой обратную несовместимость:

  • Несколько новых зарезирвированных ключевых слов.

  • strrpos() и strripos() теперь используют всю строку как needle.

  • Неправильное использование смещения внутри строки вызывает E_ERROR вместо E_WARNING. Пример неправильного использования: $str = 'abc'; unset($str[0]);.

  • array_merge() изменена таким образом, что принимает в качестве аргумента только массивы. Если была передана переменная, не являющаяся массивом, будет сгенерированна ошибка E_WARNING для каждого такого параметра. Будьте внимательны, потому что ваш код может вдруг начать генерировать ошибки E_WARNING.

  • Переменная сервера PATH_TRANSLATED больше не определяется неявно под Apache2 SAPI, в отличие от ситуации в PHP 4, где ей присваивается то же значение, что и переменной сервера SCRIPT_FILENAME, когда она не определяется Apache. Это изменение было сделано для соответствия спецификации CGI. Пожалуйста, обратитесь к ошибке #23610 для получения дальнейший информации, а также посмотрите описание $_SERVER['PATH_TRANSLATED'] в данном руководстве. Это изменение также имеет место в PHP версий >= 4.3.2.

  • Константа T_ML_COMMENT больше не объявляется расширением Tokenizer. Если директива error_reporting установлена в E_ALL, PHP сгенерирует ошибку уровня E_NOTICE. Несмотря на то, что T_ML_COMMENT не использовалась вообще, она была объявлена в PHP 4. Как в PHP 4, так и в PHP 5 // и /* */ определяются как T_COMMENT. Так или иначе, комментарии /** */ в стиле PHPDoс, которые начиная с PHP 5 анализируются PHP, распознаются как T_DOC_COMMENT.

  • Суперглобальный массив $_SERVER будет создан вместе с переменными argc и argv, если variables_order включает "S". Если вы сконфигурировали интерпретатор таким образом, что $_SERVER не создаётся, тогда, конечно, её не будет. Изменение заключается в том, чтобы сделать argc и argv всегда доступными в CLI-версии, вне зависимости от variables_order. Как уже было сказано, CLI-версия теперь всегда будет объявлять переменные $argc и $argv.

  • Объект без свойств больше не считается "пустым".

  • В некоторых случаях класс должен быть объявлен перед использованием. Это происходит только в том случае, если используются некоторые новые функции PHP 5. Иначе поведение остается старым.

  • get_class(), get_parent_class() и get_class_methods() теперь возвращают имя классов/методов так, как они были объявлены (с учетом регистра), что может привести к проблемам со старыми скриптами, которые полагаются на прежнее поведение (имя класса/метода всегда было приведено к нижнему регистру). Возможным решением является поиск этих функций в ваших скриптах и добавление перед ними strtolower().

    Изменения относительно регистрозависимости также затрагивают магические константы __CLASS__, __METHOD__ и __FUNCTION__. Значения возвращаются в именно таком виде, в каком они обявлены (с учетом регистра).

  • ip2long() теперь возвращает FALSE, а не -1, когда в качестве аргумента функции передается неправильный IP-адрес.

  • Если во включенном файле объявлены какие-либо функции, они могут использоваться и в главном файле, вне зависимости от того, располагаются они до return() или после. Если файл включается дважды, PHP 5 генерирует фатальную ошибку, так как функции уже были объявлены, в то время, как PHP 4 не жалуется на это. Рекомендуется использовать include_once() вместо проверки, был ли уже включен файл и условного возврата внутри включенного файла.

  • include_once() и require_once() сначала стандартизируют путь к включенному файлу в Windows, так что при включении A.php и a.php файл включается только один раз.

Пример B-1. strrpos() и strripos() теперь используют всю строку как needle

<?php
var_dump(strrpos('ABCDEF','DEF')); //int(3)

var_dump(strrpos('ABCDEF','DAF')); //bool(false)
?>

Пример B-2. Объект без свойств больше не считается "пустым"

<?php
class test { }
$t = new test();

var_dump(empty($t)); // echo bool(false)

if ($t) {
    // Будет выполнено
}
?>

Пример B-3. В некоторых случаях классы должны быть объявлены перед использованием

<?php

//работает без ошибок:
$a = new a();
class a {
}

//вызывает ошибку:
$a = new b();

interface c{
}
class b implements c {
}

?>

Пред. | Начало | След.
Миграция с PHP 4 на PHP 5 | Уровень выше | CLI и CGI


CLI и CGI

В PHP 5 были сделаны некоторые изменения в именах исполняемых файлов CLI и CGI. В PHP 5, CGI-версия была переименована в php-cgi.exe (ранее php.exe), а CLI-версия теперь располагается в главной директории (ранее cli/php.exe).

В PHP 5 также появился новый режим: php-win.exe. Он эквивалентен CLI-версии, за исключением того, что php-win ничего не выводит и, соответсвенно, не открывает консоль (окошко dos не появляется на экране). Такое поведение похоже на php-gtk.

В PHP 5, CLI-версия всегда предоставляет переменные $argv и $argc, вне зависимости от каких-либо директив в php.ini. Даже установка register_argc_argv в off не повлияет на поведения интерфейса командной строки.

Смотрите также справочник по командной строке.

Пред. | Начало | След.
Изменения, повлекшие за собой обратную несовместимость | Уровень выше | Миграция конфигурационных файлов


Миграция конфигурационных файлов

Так как ISAPI-модули сменили свои имена с php4xxx на php5xxx, вам необходимо произвести некоторые изменения в конфигурационных файлах. Также произошли изменения в именах файлов CLI и CGI. Пожалуйста, обратитесь к соответствующему разделу для получения дополнительной информации.

Изменения в конфигурации Apache минимальны. Пример ниже показывает изменения, которые вам требуется произвести:

Пример B-4. Изменения конфигурационных файлах Apache при миграции на PHP 5

# замените эту строку:
LoadModule php4_module /php/sapi/php4apache2.dll

# на эту:
LoadModule php5_module /php/php5apache2.dll

Если ваш веб-сервер работает с PHP в CGI-режиме, вы должны обратить внимание на то, что CGI-версия сменила свое имя с php.exe на php-cgi.exe. В Apache вам нужно произвести подобные изменения:

Пример B-5. Изменения в конфигурационных файлах Apache при миграции на PHP 5, CGI-режим

# замените эту строку:
Action application/x-httpd-php "/php/php.exe"

# на эту:
Action application/x-httpd-php "/php/php-cgi.exe"

При использовании других веб-серверов вам необходимо сменить либо имя CGI, либо имя ISAPI модулей.

Пред. | Начало | След.
CLI и CGI | Уровень выше | Новые функции


Новые функции

В PHP 5 появилось некоторое количество новых функций. Вот их список:

Массивы:

  • array_combine() - Создает массив, используя один массив для ключей, а другой - для их значений

  • array_diff_uassoc() - Вычисляет различие массивов с дополнительной проверкой индексов, производимой заданной пользователем функцией обратного вызова

  • array_udiff() - Вычисляет различие массивов, используя функцию обратного вызова для сравнения данных

  • array_udiff_assoc() - Вычисляет различие массивов с дополнительной проверкой индексов. Данные сравниваются с использованием функции обратного вызова

  • array_udiff_uassoc() - Вычисляет различие массивов с дополнительной проверкой индексов. Данные сравниваются с использованием функции обратного вызова. Проверка индексов также производится с использованием функции обратного вызова

  • array_walk_recursive() - Применить пользовательскую функцию рекурсивно к каждому элементу массива

  • array_uintersect_assoc() - Вычисляет пересечение массивов с дополнительной проверкой индексов. Данные сравниваются с использованием функции обратного вызова

  • array_uintersect_uassoc() - Вычисляет пересечение массивов с дополнительной проверкой индексов. Как данные, так и индексы сравниваются при помощи функции обратного вызова

  • array_uintersect() - Вычисляет пересечение массивов. Данные сравниваются с использованием функции обратного вызова

InterBase:

  • ibase_affected_rows() - Возвращает количество записей, затронутых предыдущим запросом

  • ibase_backup() - Инициирует задачу резервного копирование в менеджере сервисов и сразу же возвращает управление

  • ibase_commit_ret() - Фиксирует транзакцию, не закрывая ее

  • ibase_db_info() - Запросить статистику базы данных

  • ibase_drop_db() - Удаляет базу данных

  • ibase_errcode() - Возвращает код ошибки

  • ibase_free_event_handler() - Отменяет зарегистрированный обработчик события

  • ibase_gen_id() - Инкрементирует именованный генератор и возвращает его новое значение

  • ibase_maintain_db() - Выполняет команду поддержки на сервере баз данных

  • ibase_name_result() - Присваивает имя набору результатов

  • ibase_num_params() - Возвращает число параметров в подготовленном запросе

  • ibase_param_info() - Возвращает информацию о параметре в подготовленном запросе

  • ibase_restore() - Инициирует задачу восстановление в менеджере сервисов и сразу же возвращает управление

  • ibase_rollback_ret() - Откатить транзакцию и запомнить ее контекст

  • ibase_server_info() - Запршивает статистику базы данных

  • ibase_service_attach() - Соединиться с менеджером сервисов

  • ibase_service_detach() - Разорвать соединение с менеджером сервисов

  • ibase_set_event_handler() - Зарегистрировать функцию обратного вызова, которая вызывается при публикации события

  • ibase_wait_event() - Ждать события, отправленного базой данных

iconv:

  • iconv_mime_decode() - Декодирует поле MIME-заголовка

  • iconv_mime_decode_headers() - Декодирует сразу несколько полей MIME-заголовков

  • iconv_mime_encode() - Составляет поле MIME-заголовка

  • iconv_strlen() - Возвращает количество символов в строке

  • iconv_strpos() - Находит позицию первого вхождения needle внутри haystack

  • iconv_strrpos() - Находит позицию последнего вхождения needle внутри указанного ряда haystack

  • iconv_substr() - Вырезать часть строки

Потоки:

  • stream_copy_to_stream() - Копирует данные с одного потока на другой

  • stream_get_line() - Получает строку из заданного ресурса потока до данного разделителя

  • stream_socket_accept() - Разрешить соединение на сокет, созданный stream_socket_server()

  • stream_socket_client() - Открыть Internet или Unix domain сокет

  • stream_socket_get_name() - Получить имя локальных или удаленных сокетов

  • stream_socket_recvfrom() - Получает данные от сокета, вне зависимости от того, произведено соединение или нет

  • stream_socket_sendto() - Посылает сообщение сокету, вне зависимости от того, произведено соединение или нет

  • stream_socket_server() - Создать Internet или или Unix domain сокет на стороне сервера

Связанные с датой и временем:

  • idate() - Форматирует локальное время/дату как integer

  • date_sunset() - Время захода солнца для данного дня и месторасположения

  • date_sunrise() - Время восхода солнца для данного дня и месторасположения

  • time_nanosleep() - Задержка на заданное число секунд и наносекунд

Строки:

  • str_split() - Преобразовать строку в массив

  • strpbrk() - Поиск любого набора символов в строке

  • substr_compare() - Безопасное для бинарных данных опционально регистрозависимое сравнение двух строк, начиная с offset и до length символов

Другие:

  • convert_uudecode() - декодирует строку, закодированную uuencode

  • convert_uuencode() - кодирует строку в uuencode

  • curl_copy_handle() - Копировать дескриптор cURL вместе со всеми его настройками

  • dba_key_split() - Разбивает ключ в строковом представлении в представление массива

  • dbase_get_header_info() - Получает заголовочную информацию базы данных dBase

  • dbx_fetch_row() - Выбирает записи из результата запроса, в котором установлен флаг DBX_RESULT_UNBUFFERED

  • fbsql_set_password() - Сменить пароль данного пользователя

  • file_put_contents() - Запись строки в файл

  • ftp_alloc() - Выделяет место для загружаемого файла

  • get_declared_interfaces() - Возвращает массив всех объявленных интерфейсов

  • get_headers() - Выбирает все заголовки, посланные сервером в ответ на HTTP-запрос

  • headers_list() - Возвращает список посланных (или готовых к отправке) заголовков ответа

  • http_build_query() - Генерирует URL-кодированную строку запроса

  • image_type_to_extension() - Получить расширение файла
для типа изображения, возвращенного getimagesize(),
exif_read_data(),
exif_thumbnail(),
exif_imagetype()

  • imagefilter() - Применяет фильтр изображения, используя выбранную фазу

  • imap_getacl() - Получает ACL для данного почтового ящика

  • ldap_sasl_bind() - Привязать к LDAP-директории используя SASL

  • mb_list_encodings() - Возвращает массив всех поддерживаемых кодировок

  • pcntl_getpriority() - Получает приоритет любого процесса

  • pcntl_wait() - Ждет или возвращает статус дочернего разветвленного процесса в зависимости от объявления системного вызова waitpid()

  • pg_version() - Возвращает массив с информацией о версии клиента, протокола и сервера (если доступно)

  • php_check_syntax() - Проверить синтаксис указанного файла

  • php_strip_whitespace() - Возвращает исходный код с удаленными комментариями и пробелами

  • proc_nice() - Сменить приоритет текущего процесса

  • pspell_config_data_dir() - Сменить расположение файлов данных языка

  • pspell_config_dict_dir() - Сменить расположение основного списка слов

  • setrawcookie() - Посылает cookie без кодирования url значения

  • snmp_read_mib() - Читает и анализирует MIB-файл в активное MIB-дерево

  • sqlite_fetch_column_types() - Возвращает массив типов столбцов для отдельной таблицы

Замечание: Модуль Tidy полностью сменил свой API.

Пред. | Начало | След.
Миграция конфигурационных файлов | Уровень выше | Новые директивы


Новые директивы

В PHP 5 появилось несколько директив php.ini. Вот их список:

  • mail.force_extra_parameters - Принудительно добавить указанные параметры к списку передаваемых исполняемому файлу sendmail. Эти параметры всегда будут заменять значение пятого параметра mail(), даже в защищенном режиме

  • register_long_arrays - позволить/запретить PHP регистрировать устаревшие длинные массивы $HTTP_*_VARS

  • session.hash_function - выбрать хэш-функцию (MD5 или SHA-1)

  • session.hash_bits_per_character - объявить, сколько битов битов хранится в каждом символе при конвертации данных бинарного хэша во что-то читабельное (с 4 до 6)

  • zend.ze1_compatibility_mode - включить режим совместимости с Zend Engine 1 (PHP 4)

Пред. | Начало | След.
Новые функции | Уровень выше | Базы данных


Базы данных

В PHP 5 были произведены некоторые изменения, касающиеся СУБД (MySQL и SQLite).

В PHP 5 клиентские библиотеки MySQL не поставляются в комплекте из-за лицензионных и некоторых других проблем. Для получения дополнительной информации читайте запись в FAQ.

Также присутствует новый модуль, MySQLi (Improved MySQL), спроектированный для работы с MySQL 4.1 и выше.

Начиная с PHP 5, модуль SQLite встроен в PHP. SQLite - это встраиваемая SQL СУБД, а не клиентская библиотека для соединения с сервером баз данных (таким как MySQL или PostgreSQL). Библиотека SQLite читает и записывает напрямую в и из файлов базы данных на диске.

Пред. | Начало | След.
Новые директивы | Уровень выше | Новая Объектная Модель


Новая Объектная Модель

В PHP 5 появилась новая Объектная Модель. Работа с объектами в PHP была полностью переписана, позволяя достигнуть лучшей производительности и предоставляя новые возможности. В предыдущих версиях PHP работа с объектами производилась аналогично примитивным типам (к примеру, integer и string). Недостатком этого метода являлось то, что семантически весь объект копировался при присвоении переменной или передачи ее в качестве параметра функции. При новом подходе на объекты ссылаются по дескриптору, а не по значению (дескриптор можно представить себе как идентификатор объекта).

Многие PHP-программисты даже не в курсе хитростей механизма копирования в старой объектной модели, что означает, что большинство из PHP-приложений будут работать либо вовсе безо всяких изменений, либо с совсем небольшими изменениями.

Новая Объектная модель задокументирована в Справочнике по языку.

Обратите внимание также на директиву zend.ze1_compatibility_mode для совместимости с PHP 4.

Пред. | Начало | След.
Базы данных | Уровень выше | Сообщения об ошибках


Сообщения об ошибках

Начиная с PHP 5 был объявлен новый уровень ошибок - E_STRICT со значением 2048. Он позволяет PHP давать советы по способности взаимодействия и будущей совместимости вашего кода, что позволит вам придерживаться наилучшего метода написания кода. Т.е. сообщение уровня E_STRICT предупредит вас, если вы будете использовать устаревшие функции, которые в будущем будут удалены.

Замечание: E_ALL не включает E_STRICT, так что по умолчанию этот уровень ошибок выключен

Пред. | Начало | След.
Новая Объектная Модель | Уровень выше | Migrating from PHP 3 to PHP 4


Migrating from PHP 3 to PHP 4

Руководство по PHP
Пред. След.

Приложение C. Migrating from PHP 3 to PHP 4

Содержание
What has changed in PHP 4
Running PHP 3 and PHP 4 concurrently
Migrating Configuration Files
Parser behavior
Error reporting
Initializers
empty("0")
Missing functions
PHP 3 extension
Variable substitution in strings
Cookies
Handling of global variables

What has changed in PHP 4

PHP 4 and the integrated Zend engine have greatly improved PHP's performance and capabilities, but great care has been taken to break as little existing code as possible. So migrating your code from PHP 3 to 4 should be much easier than migrating from PHP/FI 2 to PHP 3. A lot of existing PHP 3 code should be ready to run without changes, but you should still know about the few differences and take care to test your code before switching versions in production environments. The following should give you some hints about what to look for.

Пред. | Начало | След.
Сообщения об ошибках | Уровень выше | Running PHP 3 and PHP 4 concurrently


Running PHP 3 and PHP 4 concurrently

Recent operating systems provide the ability to perform versioning and scoping. This features make it possible to let PHP 3 and PHP 4 run as concurrent modules in one Apache server.

This feature is known to work on the following platforms:

  • Linux with recent binutils (binutils 2.9.1.0.25 tested)

  • Solaris 2.5 or better

  • FreeBSD (3.2, 4.0 tested)

To enable it, configure PHP 3 and PHP 4 to use APXS (--with-apxs) and the necessary link extensions (--enable-versioning). Otherwise, all standard installations instructions apply. For example:

$ ./configure \
  --with-apxs=/apache/bin/apxs \
  --enable-versioning \
  --with-mysql \
  --enable-track-vars

Пред. | Начало | След.
Migrating from PHP 3 to PHP 4 | Уровень выше | Migrating Configuration Files


Migrating Configuration Files

The global configuration file, php3.ini, has changed its name to php.ini.

For the Apache configuration file, there are slightly more changes. The MIME types recognized by the PHP module have changed.

application/x-httpd-php3        -->    application/x-httpd-php
application/x-httpd-php3-source -->    application/x-httpd-php-source

You can make your configuration files work with both versions of PHP (depending on which one is currently compiled into the server), using the following syntax:

AddType  application/x-httpd-php3        .php3
AddType  application/x-httpd-php3-source .php3s

AddType  application/x-httpd-php         .php
AddType  application/x-httpd-php-source  .phps

In addition, the PHP directive names for Apache have changed.

Starting with PHP 4.0, there are only four Apache directives that relate to PHP:

php_value [PHP directive name] [value]
php_flag [PHP directive name] [On|Off]
php_admin_value [PHP directive name] [value]
php_admin_flag [PHP directive name] [On|Off]

There are two differences between the Admin values and the non admin values:

  • Admin values (or flags) can only appear in the server-wide Apache configuration files (e.g., httpd.conf).

  • Standard values (or flags) cannot control certain PHP directives, for example: безопасный режим (if you could override safe mode settings in .htaccess files, it would defeat безопасный режим's purpose). In contrast, Admin values can modify the value of any PHP directive.

To make the transition process easier, PHP 4 is bundled with scripts that automatically convert your Apache configuration and .htaccess files to work with both PHP 3 and PHP 4. These scripts do NOT convert the mime type lines! You have to convert these yourself.

To convert your Apache configuration files, run the apconf-conv.sh script (available in the scripts/apache/ directory). For example:

~/php4/scripts/apache:#  ./apconf-conv.sh /usr/local/apache/conf/httpd.conf

Your original configuration file will be saved in httpd.conf.orig.

To convert your .htaccess files, run the aphtaccess-conv.sh script (available in the scripts/apache/ directory as well):

~/php4/scripts/apache:#  find / -name .htaccess -exec ./aphtaccess-conv.sh {} \;

Likewise, your old .htaccess files will be saved with an .orig prefix.

The conversion scripts require awk to be installed.

Пред. | Начало | След.
Running PHP 3 and PHP 4 concurrently | Уровень выше | Parser behavior


Parser behavior

Parsing and execution are now two completely separated steps, no execution of a files code will happen until the complete file and everything it requires has completely and successfully been parsed.

One of the new requirements introduced with this split is that required and included files now have to be syntactically complete. You can no longer spread the different controlling parts of a control structure across file boundaries. That is you cannot start a for or while loop, an if statement or a switch block in one file and have the end of loop, else, endif, case or break statements in a different file.

It still perfectly legal to include additional code within loops or other control structures, only the controlling keywords and corresponding curly braces {...} have to be within the same compile unit (file or eval()ed string).

This should not harm too much as spreading code like this should be considered as very bad style anyway.

Another thing no longer possible, though rarely seen in PHP 3 code is returning values from a required file. Returning a value from an included file is still possible.

Пред. | Начало | След.
Migrating Configuration Files | Уровень выше | Error reporting


Error reporting

Configuration changes

With PHP 3 the error reporting level was set as a simple numeric value formed by summing up the numbers related to different error levels. Usual values were 15 for reporting all errors and warnings or 7 for reporting everything but simple notice messages reporting bad style and things like that.

PHP 4 has a larger set of error and warning levels and comes with a configuration parser that now allows for symbolic constants to be used for setting the intended behavior.

Error reporting level should now be configured by explicitly taking away the warning levels you do not want to generate error messages by x-oring them from the symbolic constant E_ALL. Sounds complicated? Well, lets say you want the error reporting system to report all but the simple style warnings that are categorized by the symbolic constant E_NOTICE. Then you'll put the following into your php.ini: error_reporting = E_ALL & ~ ( E_NOTICE ). If you want to suppress warnings too you add up the appropriate constant within the braces using the binary or operator '|': error_reporting= E_ALL & ~ ( E_NOTICE | E_WARNING ).

Внимание

When upgrading code or servers from PHP 3 to PHP 4 you should check these settings and calls to error_reporting() or you might disable reporting the new error types, especially E_COMPILE_ERROR. This may lead to empty documents without any feedback of what happened or where to look for the problem.

Внимание

Using the old values 7 and 15 for setting up error reporting is a very bad idea as this suppresses some of the newly added error classes including parse errors. This may lead to very strange behavior as scripts might no longer work without error messages showing up anywhere.

This has lead to a lot of unreproducible bug reports in the past where people reported script engine problems they were not capable to track down while the TRUE case was usually some missing '}' in a required file that the parser was not able to report due to a misconfigured error reporting system.

So checking your error reporting setup should be the first thing to do whenever your scripts silently die. The Zend engine can be considered mature enough nowadays to not cause this kind of strange behavior.

Additional warning messages

A lot of existing PHP 3 code uses language constructs that should be considered as very bad style as this code, while doing the intended thing now, could easily be broken by changes in other places. PHP 4 will output a lot of notice messages in such situations where PHP 3 didn't. The easy fix is to just turn off E_NOTICE messages, but it is usually a good idea to fix the code instead.

The most common case that will now produce notice messages is the use of unquoted string constants as array indices. Both PHP 3 and 4 will fall back to interpret these as strings if no keyword or constant is known by that name, but whenever a constant by that name had been defined anywhere else in the code it might break your script. This can even become a security risk if some intruder manages to redefine string constants in a way that makes your script give him access rights he wasn't intended to have. So PHP 4 will now warn you whenever you use unquoted string constants as for example in $_SERVER[REQUEST_METHOD]. Changing it to $_SERVER['REQUEST_METHOD'] will make the parser happy and greatly improve the style and security of your code.

Another thing PHP 4 will now tell you about is the use of uninitialized variables or array elements.

Пред. | Начало | След.
Parser behavior | Уровень выше | Initializers


Initializers

Static variable and class member initializers only accept scalar values while in PHP 3 they accepted any valid expression. This is, once again, due to the split between parsing and execution as no code has yet been executed when the parser sees the initializer.

For classes you should use constructors to initialize member variables instead. For static variables anything but a simple static value rarely makes sense anyway.

Пред. | Начало | След.
Error reporting | Уровень выше | empty("0")


Missing functions

While PHP 4 comes with a lot of new features, functions and extensions, you may still find some functions from version 3 missing. A small number of core functions has vanished because they do not work with the new scheme of splitting parsing and execution as introduced into 4 with the Zend engine. Other functions and even complete extensions have become obsolete as newer functions and extensions serve the same task better and/or in a more general way. Some functions just simply haven't been ported yet and finally some functions or extensions may be missing due to license conflicts.

Functions missing due to conceptual changes

As PHP 4 now separates parsing from execution it is no longer possible to change the behavior of the parser (now embedded in the Zend engine) at runtime as parsing already happened by then. So the function short_tags() no longer exists. You can still change the parsers behavior by setting appropriate values in the php.ini file.

Another feature of PHP 3 that is not a part of PHP 4 is the bundled debugging interface. There are third-party add-ons for the Zend engine which add similar functionality.

Deprecate functions and extensions

The Adabas and Solid database extensions are no more. Long live the unified ODBC extension instead.

Changed status for unset()

unset(), although still available, is implemented as a language construct rather than a function.

This does not have any consequences on the behavior of unset(), but testing for "unset" using function_exists() will return FALSE as it would with other language constructs that look like functions such as echo().

Another more practical change is that it is no longer possible to call unset() indirectly, that is $func="unset"; $func($somevar) won't work anymore.

Пред. | Начало | След.
empty("0") | Уровень выше | PHP 3 extension


PHP 3 extension

Extensions written for PHP 3 will not work with PHP 4, neither as binaries nor at the source level. It is not difficult to port extensions to PHP 4 if you have access to the original source. A detailed description of the actual porting process is not part of this text.

Пред. | Начало | След.
Missing functions | Уровень выше | Variable substitution in strings


Variable substitution in strings

PHP 4 adds a new mechanism to variable substitution in strings. You can now finally access object member variables and elements from multidimensional arrays within strings.

To do so you have to enclose your variables with curly braces with the dollar sign immediately following the opening brace: {$...}

To embed the value of an object member variable into a string you simply write "text {$obj->member} text" while in PHP 3 you had to use something like "text ".$obj->member." text".

This should lead to more readable code, while it may break existing scripts written for PHP 3. But you can easily check for this kind of problem by checking for the character combination {$ in your code and by replacing it with \{$ with your favorite search-and-replace tool.

Пред. | Начало | След.
PHP 3 extension | Уровень выше | Cookies


Cookies

PHP 3 had the bad habit of setting cookies in the reverse order of the setcookie() calls in your code. PHP 4 breaks with this habit and creates the cookie header lines in exactly the same order as you set the cookies in the code.

This might break some existing code, but the old behaviour was so strange to understand that it deserved a change to prevent further problems in the future.

Пред. | Начало | След.
Variable substitution in strings | Уровень выше | Handling of global variables


Handling of global variables

While handling of global variables had the focus on to be easy in PHP 3 and early versions of PHP 4, the focus has changed to be more secure. While in PHP 3 the following example worked fine, in PHP 4 it has to be unset(unset($GLOBALS["id"]));. This is only one issue of global variable handling. You should always have used $GLOBALS, with newer versions of PHP 4 you are forced to do so in most cases. Read more on this subject in the global references section.

Пример C-1. Migration of global variables

<?php
$id = 1;
function test()
{
    global $id;
    unset($id);
}
test();
echo($id); // This will print out 1 in PHP 4
?>

Пред. | Начало | След.
Cookies | Уровень выше | Migrating from PHP/FI 2 to PHP 3


Migrating from PHP/FI 2 to PHP 3

Руководство по PHP
Пред. След.

Приложение D. Migrating from PHP/FI 2 to PHP 3

Содержание
About the incompatibilities in 3.0
old_function
Start/end tags
if..endif syntax
while syntax
Expression types
Error messages have changed
Short-circuited boolean evaluation
Function TRUE/FALSE return values
Other incompatibilities

About the incompatibilities in 3.0

PHP 3.0 is rewritten from the ground up. It has a proper parser that is much more robust and consistent than 2.0's. 3.0 is also significantly faster, and uses less memory. However, some of these improvements have not been possible without compatibility changes, both in syntax and functionality.

In addition, PHP's developers have tried to clean up both PHP's syntax and semantics in version 3.0, and this has also caused some incompatibilities. In the long run, we believe that these changes are for the better.

This chapter will try to guide you through the incompatibilities you might run into when going from PHP/FI 2.0 to PHP 3.0 and help you resolve them. New features are not mentioned here unless necessary.

A conversion program that can automatically convert your old PHP/FI 2.0 scripts exists. It can be found in the convertor subdirectory of the PHP 3.0 distribution. This program only catches the syntax changes though, so you should read this chapter carefully anyway.

Пред. | Начало | След.
Handling of global variables | Уровень выше | old_function


Start/end tags

The first thing you probably will notice is that PHP's start and end tags have changed. The old <? > form has been replaced by three new possible forms:

Пример D-1. Migration: old start/end tags

<? echo "This is PHP/FI 2.0 code.\n"; >
As of version 2.0, PHP/FI also supports this variation:

Пример D-2. Migration: first new start/end tags

<? echo "This is PHP 3.0 code!\n"; ?>
Notice that the end tag now consists of a question mark and a greater-than character instead of just greater-than. However, if you plan on using XML on your server, you will get problems with the first new variant, because PHP may try to execute the XML markup in XML documents as PHP code. Because of this, the following variation was introduced:

Пример D-3. Migration: second new start/end tags

<?php echo "This is PHP 3.0 code!\n"; ?>
Some people have had problems with editors that don't understand the processing instruction tags at all. Microsoft FrontPage is one such editor, and as a workaround for these, the following variation was introduced as well:

Пример D-4. Migration: third new start/end tags

<script language="php">

  echo "This is PHP 3.0 code!\n";

</script>

Пред. | Начало | След.
old_function | Уровень выше | if..endif syntax


if..endif syntax

The `alternative' way to write if/elseif/else statements, using if(); elseif(); else; endif; cannot be efficiently implemented without adding a large amount of complexity to the 3.0 parser. Because of this, the syntax has been changed:

Пример D-5. Migration: old if..endif syntax

if ($foo);
    echo "yep\n";
elseif ($bar);
    echo "almost\n";
else;
    echo "nope\n";
endif;

Пример D-6. Migration: new if..endif syntax

if ($foo):
    echo "yep\n";
elseif ($bar):
    echo "almost\n";
else:
    echo "nope\n";
endif;
Notice that the semicolons have been replaced by colons in all statements but the one terminating the expression (endif).

Пред. | Начало | След.
Start/end tags | Уровень выше | while syntax


while syntax

Just like with if..endif, the syntax of while..endwhile has changed as well:

Пример D-7. Migration: old while..endwhile syntax

while ($more_to_come);
    ...
endwhile;

Пример D-8. Migration: new while..endwhile syntax

while ($more_to_come):
    ...
endwhile;

Внимание

If you use the old while..endwhile syntax in PHP 3.0, you will get a never-ending loop.

Пред. | Начало | След.
if..endif syntax | Уровень выше | Expression types


Expression types

PHP/FI 2.0 used the left side of expressions to determine what type the result should be. PHP 3.0 takes both sides into account when determining result types, and this may cause 2.0 scripts to behave unexpectedly in 3.0.

Consider this example:

$a[0]=5;
$a[1]=7;

$key = key($a);
while ("" != $key) {
    echo "$keyn";
    next($a);
}

In PHP/FI 2.0, this would display both of $a's indices. In PHP 3.0, it wouldn't display anything. The reason is that in PHP 2.0, because the left argument's type was string, a string comparison was made, and indeed "" does not equal "0", and the loop went through. In PHP 3.0, when a string is compared with an integer, an integer comparison is made (the string is converted to an integer). This results in comparing atoi("") which is 0, and variablelist which is also 0, and since 0==0, the loop doesn't go through even once.

The fix for this is simple. Replace the while statement with:

while ((string)$key != "") {

Пред. | Начало | След.
while syntax | Уровень выше | Error messages have changed


Error messages have changed

PHP 3.0's error messages are usually more accurate than 2.0's were, but you no longer get to see the code fragment causing the error. You will be supplied with a file name and a line number for the error, though.

Пред. | Начало | След.
Expression types | Уровень выше | Short-circuited boolean evaluation


Short-circuited boolean evaluation

In PHP 3.0 boolean evaluation is short-circuited. This means that in an expression like (1 || test_me()), the function test_me() would not be executed since nothing can change the result of the expression after the 1.

This is a minor compatibility issue, but may cause unexpected side-effects.

Пред. | Начало | След.
Error messages have changed | Уровень выше | Function TRUE/FALSE return values


Other incompatibilities

  • The PHP 3.0 Apache module no longer supports Apache versions prior to 1.2. Apache 1.2 or later is required.

  • echo() no longer supports a format string. Use the printf() function instead.

  • In PHP/FI 2.0, an implementation side-effect caused $foo[0] to have the same effect as $foo. This is not true for PHP 3.0.

  • Reading arrays with $array[] is no longer supported

    That is, you cannot traverse an array by having a loop that does $data = $array[]. Use current() and next() instead.

    Also, $array1[] = $array2 does not append the values of $array2 to $array1, but appends $array2 as the last entry of $array1. See also multidimensional array support.

  • "+" is no longer overloaded as a concatenation operator for strings, instead it converts it's arguments to numbers and performs numeric addition. Use "." instead.

Пример D-11. Migration from 2.0: concatenation for strings

echo "1" + "1";

In PHP 2.0 this would echo 11, in PHP 3.0 it would echo 2. Instead use:
echo "1"."1";
$a = 1;
$b = 1;
echo $a + $b;

This would echo 2 in both PHP 2.0 and 3.0.
$a = 1;
$b = 1;
echo $a.$b;
This will echo 11 in PHP 3.0.

Пред. | Начало | След.
Function TRUE/FALSE return values | Уровень выше | Отладка PHP


Отладка PHP

Руководство по PHP
Пред. След.

Приложение E. Отладка PHP

Содержание
Об отладчике
Использование отладчика
Протокол отладчика

Об отладчике

PHP 3 имеет поддержку сетевого отладчика.

PHP 4 не имеет встроенной системы отладки. Тем не менее, вы можете использовать внешние отладчики. Zend IDE имеет встроенный отладчик, кроме того, существует несколько свободно распространяемых расширений для отладки, например, DBG, находящееся по адресу http://dd.cron.ru/dbg/ или Advanced PHP Debugger (APD).

Пред. | Начало | След.
Other incompatibilities | Уровень выше | Использование отладчика


Использование отладчика

Встроенный в PHP 3 отладчик бывает полезным для отслеживания скрытых ошибок. Отладчик начинает работать на порту TCP каждый раз, когда запускается PHP. Все сообщения об ошибках отсылаются по TCP соединению. Эта информация предназначается для "сервера отладки", который может работать как в IDE, так и в программируемом редакторе (таком, как Emacs).

Как настроить отладчик:

  1. Установите TCP порт для отладчика в файле конфигурации (опция debugger.port) и включите его (опция debugger.enabled).

  2. Настройте на этот порт TCP listener (например, так: socket -l -s 1400 для платформ UNIX).

  3. В код скрипта внесите вызов функции "debugger_on(хост)", где хост - IP адрес или имя машины, на которой запущен TCP listener.

Теперь все предупреждения, замечания и т.д. будут отсылаться на сокет, используемый listener'ом, даже если вы отключили вывод сообщений об ошибках с помощью функции error_reporting().

Пред. | Начало | След.
Отладка PHP | Уровень выше | Протокол отладчика


Протокол отладчика

Протокол отладчика PHP 3 является построчным. Каждая строка состоит из типа и нескольких строк, составляющих сообщение. Каждое сообщение начинается строкой, имеющей тип start и завершается строкой, имеющей тип end. PHP 3 имеет возможность одновременной посылки строк, предназначенных для разных сообщений.

Каждая строка имеет следующий формат:

дата время
хост(pid)
тип:
данные сообщения

дата

Дата в формате ISO 8601 (гггг-мм-чч)

время

Время с указанием микросекунд: чч:мм:мсмсмс

хост

Имя DNS или IP адрес хоста, на котором возникла ошибка при выполнении скрипта.

pid

PID (идентификатор процесса) на хосте, в процессе работы которого возникла ошибка в скрипте PHP 3.

тип

Тип строки. Сообщает принимающей программе, как та должна интерпретировать последующие данные:

Таблица E-1. Типы строк отладчика

Имя | Значение
start | Сообщает принимающей программе о начале отладочного сообщения. Содержащиеся в данных сведения являютя одним из типов ошибки, перечисленных ниже.
message | Сообщение PHP 3 об ошибке.
location | Имя файла и номер строки, где возникла ошибка. Первая строка location всегда содержит указание на верхний уровень. данные будут содержать строку вида файл:строка. После каждой строки message и после каждой строки function всегда будет следовать строка location.
frames | Количество кадров в последующем дампе стека. Если, например, передаются сведения о четырех кадрах, следует ожидать, что последует информация о четырех уровнях вложенности вызова функций. Если строка "frames" отсутствует, глубина вложенности принимается за нулевую.
function | Имя функции, в которой произошла ошибка. Для каждого уровня вложенности в стеке вызовов функций это имя будет повторяться только однажды.
end | Сообщает об окончании отладочного сообщения.

data

Данные в строке.

Таблица E-2. Типы ошибок отладчика

Отладчик | Внутреннее представление в PHP 3
warning | E_WARNING
error | E_ERROR
parse | E_PARSE
notice | E_NOTICE
core-error | E_CORE_ERROR
core-warning | E_CORE_WARNING
unknown | (any other)

Пример E-1. Пример отладочного сообщения

1998-04-05 23:27:400966 lucifer.guardian.no(20481) start: notice
1998-04-05 23:27:400966 lucifer.guardian.no(20481) message: Uninitialized variable
1998-04-05 23:27:400966 lucifer.guardian.no(20481) location: (NULL):7
1998-04-05 23:27:400966 lucifer.guardian.no(20481) frames: 1
1998-04-05 23:27:400966 lucifer.guardian.no(20481) function: display
1998-04-05 23:27:400966 lucifer.guardian.no(20481) location: /home/ssb/public_html/test.php3:10
1998-04-05 23:27:400966 lucifer.guardian.no(20481) end: notice

Пред. | Начало | След.
Использование отладчика | Уровень выше | Configure options


Extending PHP 3

Руководство по PHP
Пред. След.

Глава 47. Extending PHP 3

Содержание
Adding functions to PHP
Calling User Functions
Reporting Errors

This section is rather outdated and demonstrates how to extend PHP 3. If you're interested in PHP 4, please read the section on the Zend API.

Adding functions to PHP

Function Prototype

All functions look like this:
void php3_foo(INTERNAL_FUNCTION_PARAMETERS) {

}
Even if your function doesn't take any arguments, this is how it is called.

Function Arguments

Arguments are always of type pval. This type contains a union which has the actual type of the argument. So, if your function takes two arguments, you would do something like the following at the top of your function:

Пример 47-1. Fetching function arguments

pval *arg1, *arg2;
if (ARG_COUNT(ht) != 2 || getParameters(ht,2,&arg1,&arg2)==FAILURE) {
   WRONG_PARAM_COUNT;
}
NOTE: Arguments can be passed either by value or by reference. In both cases you will need to pass &(pval *) to getParameters. If you want to check if the n'th parameter was sent to you by reference or not, you can use the function, ParameterPassedByReference(ht,n). It will return either 1 or 0.

When you change any of the passed parameters, whether they are sent by reference or by value, you can either start over with the parameter by calling pval_destructor on it, or if it's an ARRAY you want to add to, you can use functions similar to the ones in internal_functions.h which manipulate return_value as an ARRAY.

Also if you change a parameter to IS_STRING make sure you first assign the new estrdup()'ed string and the string length, and only later change the type to IS_STRING. If you change the string of a parameter which already IS_STRING or IS_ARRAY you should run pval_destructor on it first.

Variable Function Arguments

A function can take a variable number of arguments. If your function can take either 2 or 3 arguments, use the following:

Пример 47-2. Variable function arguments

pval *arg1, *arg2, *arg3;
int arg_count = ARG_COUNT(ht);

if (arg_count < 2 || arg_count > 3 ||
    getParameters(ht,arg_count,&arg1,&arg2,&arg3)==FAILURE) {
    WRONG_PARAM_COUNT;
}

Using the Function Arguments

The type of each argument is stored in the pval type field. This type can be any of the following:

Таблица 47-1. PHP Internal Types

IS_STRING | String
IS_DOUBLE | Double-precision floating point
IS_LONG | Long integer
IS_ARRAY | Array
IS_EMPTY | None
IS_USER_FUNCTION | ??
IS_INTERNAL_FUNCTION | ?? (if some of these cannot be passed to a function - delete)
IS_CLASS | ??
IS_OBJECT | ??

If you get an argument of one type and would like to use it as another, or if you just want to force the argument to be of a certain type, you can use one of the following conversion functions:
convert_to_long(arg1);
convert_to_double(arg1);
convert_to_string(arg1);
convert_to_boolean_long(arg1); /* If the string is "" or "0" it becomes 0, 1 otherwise */
convert_string_to_number(arg1);  /* Converts string to either LONG or DOUBLE depending on string */

These function all do in-place conversion. They do not return anything.

The actual argument is stored in a union; the members are:

  • IS_STRING: arg1->value.str.val

  • IS_LONG: arg1->value.lval

  • IS_DOUBLE: arg1->value.dval

Memory Management in Functions

Any memory needed by a function should be allocated with either emalloc() or estrdup(). These are memory handling abstraction functions that look and smell like the normal malloc() and strdup() functions. Memory should be freed with efree().

There are two kinds of memory in this program: memory which is returned to the parser in a variable, and memory which you need for temporary storage in your internal function. When you assign a string to a variable which is returned to the parser you need to make sure you first allocate the memory with either emalloc() or estrdup(). This memory should NEVER be freed by you, unless you later in the same function overwrite your original assignment (this kind of programming practice is not good though).

For any temporary/permanent memory you need in your functions/library you should use the three emalloc(), estrdup(), and efree() functions. They behave EXACTLY like their counterpart functions. Anything you emalloc() or estrdup() you have to efree() at some point or another, unless it's supposed to stick around until the end of the program; otherwise, there will be a memory leak. The meaning of "the functions behave exactly like their counterparts" is: if you efree() something which was not emalloc()'ed nor estrdup()'ed you might get a segmentation fault. So please take care and free all of your wasted memory.

If you compile with "-DDEBUG", PHP will print out a list of all memory that was allocated using emalloc() and estrdup() but never freed with efree() when it is done running the specified script.

Setting Variables in the Symbol Table

A number of macros are available which make it easier to set a variable in the symbol table:

  • SET_VAR_STRING(name,value)

  • SET_VAR_DOUBLE(name,value)

  • SET_VAR_LONG(name,value)

Внимание

Be careful with SET_VAR_STRING. The value part must be malloc'ed manually because the memory management code will try to free this pointer later. Do not pass statically allocated memory into a SET_VAR_STRING.

Symbol tables in PHP are implemented as hash tables. At any given time, &symbol_table is a pointer to the 'main' symbol table, and active_symbol_table points to the currently active symbol table (these may be identical like in startup, or different, if you're inside a function).

The following examples use 'active_symbol_table'. You should replace it with &symbol_table if you specifically want to work with the 'main' symbol table. Also, the same functions may be applied to arrays, as explained below.

Пример 47-3. Checking whether $foo exists in a symbol table

if (hash_exists(active_symbol_table,"foo",sizeof("foo"))) { exists... }
else { doesn't exist }

Пример 47-4. Finding a variable's size in a symbol table

hash_find(active_symbol_table,"foo",sizeof("foo"),&pvalue);
check(pvalue.type);
Arrays in PHP are implemented using the same hashtables as symbol tables. This means the two above functions can also be used to check variables inside arrays.

If you want to define a new array in a symbol table, you should do the following.

First, you may want to check whether it exists and abort appropriately, using hash_exists() or hash_find().

Next, initialize the array:

Пример 47-5. Initializing a new array

pval arr;

if (array_init(&arr) == FAILURE) { failed... };
hash_update(active_symbol_table,"foo",sizeof("foo"),&arr,sizeof(pval),NULL);
This code declares a new array, named $foo, in the active symbol table. This array is empty.

Here's how to add new entries to it:

Пример 47-6. Adding entries to a new array

pval entry;

entry.type = IS_LONG;
entry.value.lval = 5;

/* defines $foo["bar"] = 5 */
hash_update(arr.value.ht,"bar",sizeof("bar"),&entry,sizeof(pval),NULL);

/* defines $foo[7] = 5 */
hash_index_update(arr.value.ht,7,&entry,sizeof(pval),NULL);

/* defines the next free place in $foo[],
 * $foo[8], to be 5 (works like php2)
 */
hash_next_index_insert(arr.value.ht,&entry,sizeof(pval),NULL);
If you'd like to modify a value that you inserted to a hash, you must first retrieve it from the hash. To prevent that overhead, you can supply a pval ** to the hash add function, and it'll be updated with the pval * address of the inserted element inside the hash. If that value is NULL (like in all of the above examples) - that parameter is ignored.

hash_next_index_insert() uses more or less the same logic as $foo[] = bar; in PHP 2.0.

If you are building an array to return from a function, you can initialize the array just like above by doing:

if (array_init(return_value) == FAILURE) { failed...; }

...and then adding values with the helper functions:

add_next_index_long(return_value,long_value);
add_next_index_double(return_value,double_value);
add_next_index_string(return_value,estrdup(string_value));

Of course, if the adding isn't done right after the array initialization, you'd probably have to look for the array first:
pval *arr;

if (hash_find(active_symbol_table,"foo",sizeof("foo"),(void **)&arr)==FAILURE) { can't find... }
else { use arr->value.ht... }

Note that hash_find receives a pointer to a pval pointer, and not a pval pointer.

Just about any hash function returns SUCCESS or FAILURE (except for hash_exists(), which returns a boolean truth value).

Returning simple values

A number of macros are available to make returning values from a function easier.

The RETURN_* macros all set the return value and return from the function:

  • RETURN

  • RETURN_FALSE

  • RETURN_TRUE

  • RETURN_LONG(l)

  • RETURN_STRING(s,dup) If dup is TRUE, duplicates the string

  • RETURN_STRINGL(s,l,dup) Return string (s) specifying length (l).

  • RETURN_DOUBLE(d)

The RETVAL_* macros set the return value, but do not return.

  • RETVAL_FALSE

  • RETVAL_TRUE

  • RETVAL_LONG(l)

  • RETVAL_STRING(s,dup) If dup is TRUE, duplicates the string

  • RETVAL_STRINGL(s,l,dup) Return string (s) specifying length (l).

  • RETVAL_DOUBLE(d)

The string macros above will all estrdup() the passed 's' argument, so you can safely free the argument after calling the macro, or alternatively use statically allocated memory.

If your function returns boolean success/error responses, always use RETURN_TRUE and RETURN_FALSE respectively.

Returning complex values

Your function can also return a complex data type such as an object or an array.

Returning an object:

  1. Call object_init(return_value).

  2. Fill it up with values. The functions available for this purpose are listed below.

  3. Possibly, register functions for this object. In order to obtain values from the object, the function would have to fetch "this" from the active_symbol_table. Its type should be IS_OBJECT, and it's basically a regular hash table (i.e., you can use regular hash functions on .value.ht). The actual registration of the function can be done using:
    add_method( return_value, function_name, function_ptr );

The functions used to populate an object are:

  • add_property_long( return_value, property_name, l ) - Add a property named 'property_name', of type long, equal to 'l'

  • add_property_double( return_value, property_name, d ) - Same, only adds a double

  • add_property_string( return_value, property_name, str ) - Same, only adds a string

  • add_property_stringl( return_value, property_name, str, l ) - Same, only adds a string of length 'l'

Returning an array:

  1. Call array_init(return_value).

  2. Fill it up with values. The functions available for this purpose are listed below.

The functions used to populate an array are:

  • add_assoc_long(return_value,key,l) - add associative entry with key 'key' and long value 'l'

  • add_assoc_double(return_value,key,d)

  • add_assoc_string(return_value,key,str,duplicate)

  • add_assoc_stringl(return_value,key,str,length,duplicate) specify the string length

  • add_index_long(return_value,index,l) - add entry in index 'index' with long value 'l'

  • add_index_double(return_value,index,d)

  • add_index_string(return_value,index,str)

  • add_index_stringl(return_value,index,str,length) - specify the string length

  • add_next_index_long(return_value,l) - add an array entry in the next free offset with long value 'l'

  • add_next_index_double(return_value,d)

  • add_next_index_string(return_value,str)

  • add_next_index_stringl(return_value,str,length) - specify the string length

Using the resource list

PHP has a standard way of dealing with various types of resources. This replaces all of the local linked lists in PHP 2.0.

Available functions:

  • php3_list_insert(ptr, type) - returns the 'id' of the newly inserted resource

  • php3_list_delete(id) - delete the resource with the specified id

  • php3_list_find(id,*type) - returns the pointer of the resource with the specified id, updates 'type' to the resource's type

Typically, these functions are used for SQL drivers but they can be used for anything else; for instance, maintaining file descriptors.

Typical list code would look like this:

Пример 47-7. Adding a new resource

RESOURCE *resource;

/* ...allocate memory for resource and acquire resource... */
/* add a new resource to the list */
return_value->value.lval = php3_list_insert((void *) resource, LE_RESOURCE_TYPE);
return_value->type = IS_LONG;

Пример 47-8. Using an existing resource

pval *resource_id;
RESOURCE *resource;
int type;

convert_to_long(resource_id);
resource = php3_list_find(resource_id->value.lval, &type);
if (type != LE_RESOURCE_TYPE) {
    php3_error(E_WARNING,"resource index %d has the wrong type",resource_id->value.lval);
    RETURN_FALSE;
}
/* ...use resource... */

Пример 47-9. Deleting an existing resource

pval *resource_id;
RESOURCE *resource;
int type;

convert_to_long(resource_id);
php3_list_delete(resource_id->value.lval);
The resource types should be registered in php3_list.h, in enum list_entry_type. In addition, one should add shutdown code for any new resource type defined, in list.c's list_entry_destructor() (even if you don't have anything to do on shutdown, you must add an empty case).

Using the persistent resource table

PHP has a standard way of storing persistent resources (i.e., resources that are kept in between hits). The first module to use this feature was the MySQL module, and mSQL followed it, so one can get the general impression of how a persistent resource should be used by reading mysql.c. The functions you should look at are:

php3_mysql_do_connect
php3_mysql_connect()
php3_mysql_pconnect()

The general idea of persistence modules is this:

  1. Code all of your module to work with the regular resource list mentioned in section (9).

  2. Code extra connect functions that check if the resource already exists in the persistent resource list. If it does, register it as in the regular resource list as a pointer to the persistent resource list (because of 1., the rest of the code should work immediately). If it doesn't, then create it, add it to the persistent resource list AND add a pointer to it from the regular resource list, so all of the code would work since it's in the regular resource list, but on the next connect, the resource would be found in the persistent resource list and be used without having to recreate it. You should register these resources with a different type (e.g. LE_MYSQL_LINK for non-persistent link and LE_MYSQL_PLINK for a persistent link).

If you read mysql.c, you'll notice that except for the more complex connect function, nothing in the rest of the module has to be changed.

The very same interface exists for the regular resource list and the persistent resource list, only 'list' is replaced with 'plist':

  • php3_plist_insert(ptr, type) - returns the 'id' of the newly inserted resource

  • php3_plist_delete(id) - delete the resource with the specified id

  • php3_plist_find(id,*type) - returns the pointer of the resource with the specified id, updates 'type' to the resource's type

However, it's more than likely that these functions would prove to be useless for you when trying to implement a persistent module. Typically, one would want to use the fact that the persistent resource list is really a hash table. For instance, in the MySQL/mSQL modules, when there's a pconnect() call (persistent connect), the function builds a string out of the host/user/passwd that were passed to the function, and hashes the SQL link with this string as a key. The next time someone calls a pconnect() with the same host/user/passwd, the same key would be generated, and the function would find the SQL link in the persistent list.

Until further documented, you should look at mysql.c or msql.c to see how one should use the plist's hash table abilities.

One important thing to note: resources going into the persistent resource list must *NOT* be allocated with PHP's memory manager, i.e., they should NOT be created with emalloc(), estrdup(), etc. Rather, one should use the regular malloc(), strdup(), etc. The reason for this is simple - at the end of the request (end of the hit), every memory chunk that was allocated using PHP's memory manager is deleted. Since the persistent list isn't supposed to be erased at the end of a request, one mustn't use PHP's memory manager for allocating resources that go to it.

When you register a resource that's going to be in the persistent list, you should add destructors to it both in the non-persistent list and in the persistent list. The destructor in the non-persistent list destructor shouldn't do anything. The one in the persistent list destructor should properly free any resources obtained by that type (e.g. memory, SQL links, etc). Just like with the non-persistent resources, you *MUST* add destructors for every resource, even it requires no destruction and the destructor would be empty. Remember, since emalloc() and friends aren't to be used in conjunction with the persistent list, you mustn't use efree() here either.

Adding runtime configuration directives

Many of the features of PHP can be configured at runtime. These configuration directives can appear in either the designated php3.ini file, or in the case of the Apache module version in the Apache .conf files. The advantage of having them in the Apache .conf files is that they can be configured on a per-directory basis. This means that one directory may have a certain safemodeexecdir for example, while another directory may have another. This configuration granularity is especially handy when a server supports multiple virtual hosts.

The steps required to add a new directive:

  1. Add directive to php3_ini_structure struct in mod_php3.h.

  2. In main.c, edit the php3_module_startup function and add the appropriate cfg_get_string() or cfg_get_long() call.

  3. Add the directive, restrictions and a comment to the php3_commands structure in mod_php3.c. Note the restrictions part. RSRC_CONF are directives that can only be present in the actual Apache .conf files. Any OR_OPTIONS directives can be present anywhere, include normal .htaccess files.

  4. In either php3take1handler() or php3flaghandler() add the appropriate entry for your directive.

  5. In the configuration section of the _php3_info() function in functions/info.c you need to add your new directive.

  6. And last, you of course have to use your new directive somewhere. It will be addressable as php3_ini.directive.

Пред. | Начало | След.
zend_zval_type_name | Уровень выше | Calling User Functions


Calling User Functions

To call user functions from an internal function, you should use the call_user_function() function.

call_user_function() returns SUCCESS on success, and FAILURE in case the function cannot be found. You should check that return value! If it returns SUCCESS, you are responsible for destroying the retval pval yourself (or return it as the return value of your function). If it returns FAILURE, the value of retval is undefined, and you mustn't touch it.

All internal functions that call user functions must be reentrant. Among other things, this means they must not use globals or static variables.

call_user_function() takes six arguments:

HashTable *function_table

This is the hash table in which the function is to be looked up.

pval *object

This is a pointer to an object on which the function is invoked. This should be NULL if a global function is called. If it's not NULL (i.e. it points to an object), the function_table argument is ignored, and instead taken from the object's hash. The object *may* be modified by the function that is invoked on it (that function will have access to it via $this). If for some reason you don't want that to happen, send a copy of the object instead.

pval *function_name

The name of the function to call. Must be a pval of type IS_STRING with function_name.str.val and function_name.str.len set to the appropriate values. The function_name is modified by call_user_function() - it's converted to lowercase. If you need to preserve the case, send a copy of the function name instead.

pval *retval

A pointer to a pval structure, into which the return value of the invoked function is saved. The structure must be previously allocated - call_user_function() does NOT allocate it by itself.

int param_count

The number of parameters being passed to the function.

pval *params[]

An array of pointers to values that will be passed as arguments to the function, the first argument being in offset 0, the second in offset 1, etc. The array is an array of pointers to pval's; The pointers are sent as-is to the function, which means if the function modifies its arguments, the original values are changed (passing by reference). If you don't want that behavior, pass a copy instead.

Пред. | Начало | След.
Extending PHP 3 | Уровень выше | Reporting Errors


Reporting Errors

To report errors from an internal function, you should call the php3_error() function. This takes at least two parameters -- the first is the level of the error, the second is the format string for the error message (as in a standard printf() call), and any following arguments are the parameters for the format string. The error levels are:

E_NOTICE

Notices are not printed by default, and indicate that the script encountered something that could indicate an error, but could also happen in the normal course of running a script. For example, trying to access the value of a variable which has not been set, or calling stat() on a file that doesn't exist.

E_WARNING

Warnings are printed by default, but do not interrupt script execution. These indicate a problem that should have been trapped by the script before the call was made. For example, calling ereg() with an invalid regular expression.

E_ERROR

Errors are also printed by default, and execution of the script is halted after the function returns. These indicate errors that can not be recovered from, such as a memory allocation problem.

E_PARSE

Parse errors should only be generated by the parser. The code is listed here only for the sake of completeness.

E_CORE_ERROR

This is like an E_ERROR, except it is generated by the core of PHP. Functions should not generate this type of error.

E_CORE_WARNING

This is like an E_WARNING, except it is generated by the core of PHP. Functions should not generate this type of error.

E_COMPILE_ERROR

This is like an E_ERROR, except it is generated by the Zend Scripting Engine. Functions should not generate this type of error.

E_COMPILE_WARNING

This is like an E_WARNING, except it is generated by the Zend Scripting Engine. Functions should not generate this type of error.

E_USER_ERROR

This is like an E_ERROR, except it is generated in PHP code by using the PHP function trigger_error(). Functions should not generate this type of error.

E_USER_WARNING

This is like an E_WARNING, except it is generated by using the PHP function trigger_error(). Functions should not generate this type of error.

E_USER_NOTICE

This is like an E_NOTICE, except it is generated by using the PHP function trigger_error(). Functions should not generate this type of error.

E_ALL

All of the above. Using this error_reporting level will show all error types.

Пред. | Начало | След.
Calling User Functions | Уровень выше | ЧАВО: ЧАсто задаваемые Вопросы и Ответы на них


Configure options

Руководство по PHP
Пред. След.

Приложение F. Configure options

Содержание
List of core configure options

List of core configure options

Below is a partial list of configure options used by the PHP configure scripts when compiling in Unix-like environments. Most configure options are listed in their appropriate locations on the extension reference pages and not here. For a complete up-to-date list of configure options, run ./configure --help in your PHP source directory after running autoconf (see also the Installation chapter). You may also be interested in reading the GNU configure documentation for information on additional configure options such as --prefix=PREFIX.

Замечание: These are only used at compile time. If you want to alter PHP's runtime configuration, please see the chapter on Runtime Configuration.

  • Miscellaneous

  • PHP Behaviour

  • Server

Configure Options in PHP 4

Замечание: These options are only used in PHP 4 as of PHP 4.1.0. Some are available in older versions of PHP 4, some even in PHP 3, some only in PHP 4.1.0. If you want to compile an older version, some options will probably not be available.

Misc options

--enable-debug

Compile with debugging symbols.

--with-layout=TYPE

Sets how installed files will be laid out. Type is one of PHP (default) or GNU.

--with-pear=DIR

Install PEAR in DIR (default PREFIX/lib/php).

--without-pear

Do not install PEAR.

--enable-sigchild

Enable PHP's own SIGCHLD handler.

--disable-rpath

Disable passing additional runtime library search paths.

--enable-libgcc

Enable explicitly linking against libgcc.

--enable-php-streams

Include experimental PHP streams. Do not use unless you are testing the code!

--with-zlib-dir[=DIR]

Define the location of zlib install directory.

--enable-trans-sid

Enable transparent session id propagation. Only valid for PHP 4.1.2 or less. From PHP 4.2.0, trans-sid feature is always compiled.

--with-tsrm-pthreads

Use POSIX threads (default).

--enable-shared[=PKGS]

Build shared libraries [default=yes].

--enable-static[=PKGS]

Build static libraries [default=yes].

--enable-fast-install[=PKGS]

Optimize for fast installation [default=yes].

--with-gnu-ld

Assume the C compiler uses GNU ld [default=no].

--disable-libtool-lock

Avoid locking (might break parallel builds).

--with-pic

Try to use only PIC/non-PIC objects [default=use both].

--enable-memory-limit

Compile with memory limit support.

--disable-url-fopen-wrapper

Disable the URL-aware fopen wrapper that allows accessing files via HTTP or FTP.

--enable-versioning

Export only required symbols. See INSTALL for more information.

--with-imsp[=DIR]

Include IMSp support (DIR is IMSP's include dir and libimsp.a dir). PHP 3 only!

--with-mck[=DIR]

Include Cybercash MCK support. DIR is the cybercash mck build directory, defaults to /usr/src/mck-3.2.0.3-linux for help look in extra/cyberlib. PHP 3 only!

--with-mod-dav=DIR

Include DAV support through Apache's mod_dav, DIR is mod_dav's installation directory (Apache module version only!) PHP 3 only!

--enable-debugger

Compile with remote debugging functions. PHP 3 only!

--enable-versioning

Take advantage of versioning and scoping provided by Solaris 2.x and Linux. PHP 3 only!

PHP options

--enable-maintainer-mode

Enable make rules and dependencies not useful (and sometimes confusing) to the casual installer.

--with-config-file-path=PATH

Sets the path in which to look for php.ini, defaults to PREFIX/lib.

--enable-safe-mode

Enable safe mode by default.

--with-exec-dir[=DIR]

Only allow executables in DIR when in safe mode defaults to /usr/local/php/bin.

--enable-magic-quotes

Enable magic quotes by default.

--disable-short-tags

Disable the short-form <? start tag by default.

SAPI options

The following list contains the available SAPI&s (Server Application Programming Interface) for PHP.

--with-aolserver=DIR

Specify path to the installed AOLserver.

--with-apxs[=FILE]

Build shared Apache module. FILE is the optional pathname to the Apache apxs tool; defaults to apxs. Make sure you specify the version of apxs that is actually installed on your system and NOT the one that is in the apache source tarball.

--with-apache[=DIR]

Build a static Apache module. DIR is the top-level Apache build directory, defaults to /usr/local/apache.

--with-mod_charset

Enable transfer tables for mod_charset (Russian Apache).

--with-apxs2[=FILE]

Build shared Apache 2.0 module. FILE is the optional pathname to the Apache apxs tool; defaults to apxs.

--with-caudium=DIR

Build PHP as a Pike module for use with Caudium. DIR is the Caudium server dir, with the default value /usr/local/caudium/server.

--disable-cli

Available with PHP 4.3.0. Disable building the CLI version of PHP (this forces --without-pear). More information is available in the section about Using PHP from the command line.

--enable-embed[=TYPE]

Enable building of the embedded SAPI library. TYPE is either shared or static, which defaults to shared. Available with PHP 4.3.0.

--with-fhttpd[=DIR]

Build fhttpd module. DIR is the fhttpd sources directory, defaults to /usr/local/src/fhttpd. No longer available as of PHP 4.3.0.

--with-isapi=DIR

Build PHP as an ISAPI module for use with Zeus.

--with-nsapi=DIR

Specify path to the installed Netscape/iPlanet/SunONE Webserver.

--with-phttpd=DIR

No information yet.

--with-pi3web=DIR

Build PHP as a module for use with Pi3Web.

--with-roxen=DIR

Build PHP as a Pike module. DIR is the base Roxen directory, normally /usr/local/roxen/server.

--enable-roxen-zts

Build the Roxen module using Zend Thread Safety.

--with-servlet[=DIR]

Include servlet support. DIR is the base install directory for the JSDK. This SAPI requires the java extension must be built as a shared dl.

--with-thttpd=SRCDIR

Build PHP as thttpd module.

--with-tux=MODULEDIR

Build PHP as a TUX module (Linux only).

--with-webjames=SRCDIR

Build PHP as a WebJames module (RISC OS only)

--disable-cgi

Disable building CGI version of PHP. Available with PHP 4.3.0.

--enable-force-cgi-redirect

Enable the security check for internal server redirects. You should use this if you are running the CGI version with Apache.

--enable-discard-path

If this is enabled, the PHP CGI binary can safely be placed outside of the web tree and people will not be able to circumvent .htaccess security.

--with-fastcgi

Build PHP as FastCGI application. No longer available as of PHP 4.3.0, instead you should use --enable-fastcgi.

--enable-fastcgi

If this is enabled, the CGI module will be built with support for FastCGI also. Available since PHP 4.3.0

--disable-path-info-check

If this is disabled, paths such as /info.php/test?a=b will fail to work. Available since PHP 4.3.0. For more information see the Apache Manual.

Пред. | Начало | След.
Протокол отладчика | Уровень выше | Директивы php.ini


Список псевдонимов функций

Руководство по PHP
Пред. След.

Приложение J. Список псевдонимов функций

В этом списке приведены все псевдонимы. Использование псевдонимов нежелательно, поскольку они могут быть переименованы или признаны устаревшими, что приведет к невозможности портирования скрипта. Этот список может помочь тем пользователям, которые решили привести синтаксис своих прежних скриптов к используемому в настоящий момент синтаксису.

Однако, некоторые функции просто имют два имени, и в их использовании не существует никакой разницы. (Например is_int() и is_integer() совершенно одинаковы).

Этот список соответствует PHP версии 4.0.6.

Таблица J-1. Псевдонимы

Псевдоним | Функция | Расширение
_ | gettext() | Gettext
add | swfmovie_add() | Ming (flash)
add | swfsprite_add() | Ming (flash)
add_root | domxml_add_root() | DOM XML
addaction | swfbutton_addAction() | Ming (flash)
addcolor | swfdisplayitem_addColor() | Ming (flash)
addentry | swfgradient_addEntry() | Ming (flash)
addfill | swfshape_addfill() | Ming (flash)
addshape | swfbutton_addShape() | Ming (flash)
addstring | swftext_addString() | Ming (flash)
addstring | swftextfield_addString() | Ming (flash)
align | swftextfield_align() | Ming (flash)
attributes | domxml_attributes() | DOM XML
children | domxml_children() | DOM XML
chop | rtrim() | Базовый синтаксис
close | closedir() | Базовый синтаксис
com_get | com_propget() | COM
com_propset | com_propput() | COM
com_set | com_propput() | COM
cv_add | ccvs_add() | CCVS
cv_auth | ccvs_auth() | CCVS
cv_command | ccvs_command() | CCVS
cv_count | ccvs_count() | CCVS
cv_delete | ccvs_delete() | CCVS
cv_done | ccvs_done() | CCVS
cv_init | ccvs_init() | CCVS
cv_lookup | ccvs_lookup() | CCVS
cv_new | ccvs_new() | CCVS
cv_report | ccvs_report() | CCVS
cv_return | ccvs_return() | CCVS
cv_reverse | ccvs_reverse() | CCVS
cv_sale | ccvs_sale() | CCVS
cv_status | ccvs_status() | CCVS
cv_textvalue | ccvs_textvalue() | CCVS
cv_void | ccvs_void() | CCVS
die | exit() | Неклассифицированные функции
dir | getdir() | Базовый синтаксис
diskfreespace | disk_free_space() | Файловая система
domxml_getattr | domxml_get_attribute() | DOM XML
domxml_setattr | domxml_set_attribute() | DOM XML
doubleval | floatval() | Базовый синтаксис
drawarc | swfshape_drawarc() | Ming (flash)
drawcircle | swfshape_drawcircle() | Ming (flash)
drawcubic | swfshape_drawcubic() | Ming (flash)
drawcubicto | swfshape_drawcubicto() | Ming (flash)
drawcurve | swfshape_drawcurve() | Ming (flash)
drawcurveto | swfshape_drawcurveto() | Ming (flash)
drawglyph | swfshape_drawglyph() | Ming (flash)
drawline | swfshape_drawline() | Ming (flash)
drawlineto | swfshape_drawlineto() | Ming (flash)
dtd | domxml_intdtd() | DOM XML
dumpmem | domxml_dumpmem() | DOM XML
fbsql | fbsql_db_query() | FrontBase
fputs | fwrite() | Базовый синтаксис
get_attribute | domxml_get_attribute() | DOM XML
getascent | swffont_getAscent() | Ming (flash)
getascent | swftext_getAscent() | Ming (flash)
getattr | domxml_get_attribute() | DOM XML
getdescent | swffont_getDescent() | Ming (flash)
getdescent | swftext_getDescent() | Ming (flash)
getheight | swfbitmap_getHeight() | Ming (flash)
getleading | swffont_getLeading() | Ming (flash)
getleading | swftext_getLeading() | Ming (flash)
getshape1 | swfmorph_getShape1() | Ming (flash)
getshape2 | swfmorph_getShape2() | Ming (flash)
getwidth | swfbitmap_getWidth() | Ming (flash)
getwidth | swffont_getWidth() | Ming (flash)
getwidth | swftext_getWidth() | Ming (flash)
gzputs | gzwrite() | Zlib
i18n_convert | mb_convert_encoding() | Многобайтовые строки
i18n_discover_encoding | mb_detect_encoding() | Многобайтовые строки
i18n_http_input | mb_http_input() | Многобайтовые строки
i18n_http_output | mb_http_output() | Многобайтовые строки
i18n_internal_encoding | mb_internal_encoding() | Многобайтовые строки
i18n_ja_jp_hantozen | mb_convert_kana() | Многобайтовые строки
i18n_mime_header_decode | mb_decode_mimeheader() | Многобайтовые строки
i18n_mime_header_encode | mb_encode_mimeheader() | Многобайтовые строки
imap_create | imap_createmailbox() | IMAP
imap_fetchtext | imap_body() | IMAP
imap_getmailboxes | imap_list_full() | IMAP
imap_getsubscribed | imap_lsub_full() | IMAP
imap_header | imap_headerinfo() | IMAP
imap_listmailbox | imap_list() | IMAP
imap_listsubscribed | imap_lsub() | IMAP
imap_rename | imap_renamemailbox() | IMAP
imap_scan | imap_listscan() | IMAP
imap_scanmailbox | imap_listscan() | IMAP
ini_alter | ini_set() | Базовый синтаксис
is_double | is_float() | Базовый синтаксис
is_integer | is_int() | Базовый синтаксис
is_long | is_int() | Базовый синтаксис
is_real | is_float() | Базовый синтаксис
is_writeable | is_writable() | Базовый синтаксис
join | implode() | Базовый синтаксис
labelframe | swfmovie_labelFrame() | Ming (flash)
labelframe | swfsprite_labelFrame() | Ming (flash)
last_child | domxml_last_child() | DOM XML
lastchild | domxml_last_child() | DOM XML
ldap_close | ldap_unbind() | LDAP
magic_quotes_runtime | set_magic_quotes_runtime() | Базовый синтаксис
mbstrcut | mb_strcut() | Многобайтовые строки
mbstrlen | mb_strlen() | Многобайтовые строки
mbstrpos | mb_strpos() | Многобайтовые строки
mbstrrpos | mb_strrpos() | Многобайтовые строки
mbsubstr | mb_substr() | Многобайтовые строки
ming_setcubicthreshold | ming_setCubicThreshold() | Ming (flash)
ming_setscale | ming_setScale() | Ming (flash)
move | swfdisplayitem_move() | Ming (flash)
movepen | swfshape_movepen() | Ming (flash)
movepento | swfshape_movepento() | Ming (flash)
moveto | swfdisplayitem_moveTo() | Ming (flash)
moveto | swffill_moveTo() | Ming (flash)
moveto | swftext_moveTo() | Ming (flash)
msql | msql_db_query() | mSQL
msql_createdb | msql_create_db() | mSQL
msql_dbname | msql_result() | mSQL
msql_dropdb | msql_drop_db() | mSQL
msql_fieldflags | msql_field_flags() | mSQL
msql_fieldlen | msql_field_len() | mSQL
msql_fieldname | msql_field_name() | mSQL
msql_fieldtable | msql_field_table() | mSQL
msql_fieldtype | msql_field_type() | mSQL
msql_freeresult | msql_free_result() | mSQL
msql_listdbs | msql_list_dbs() | mSQL
msql_listfields | msql_list_fields() | mSQL
msql_listtables | msql_list_tables() | mSQL
msql_numfields | msql_num_fields() | mSQL
msql_numrows | msql_num_rows() | mSQL
msql_regcase | sql_regcase() | mSQL
msql_selectdb | msql_select_db() | mSQL
msql_tablename | msql_result() | mSQL
mssql_affected_rows | sybase_affected_rows() | Sybase
mssql_affected_rows | sybase_affected_rows() | Sybase
mssql_close | sybase_close() | Sybase
mssql_close | sybase_close() | Sybase
mssql_connect | sybase_connect() | Sybase
mssql_connect | sybase_connect() | Sybase
mssql_data_seek | sybase_data_seek() | Sybase
mssql_data_seek | sybase_data_seek() | Sybase
mssql_fetch_array | sybase_fetch_array() | Sybase
mssql_fetch_array | sybase_fetch_array() | Sybase
mssql_fetch_field | sybase_fetch_field() | Sybase
mssql_fetch_field | sybase_fetch_field() | Sybase
mssql_fetch_object | sybase_fetch_object() | Sybase
mssql_fetch_object | sybase_fetch_object() | Sybase
mssql_fetch_row | sybase_fetch_row() | Sybase
mssql_fetch_row | sybase_fetch_row() | Sybase
mssql_field_seek | sybase_field_seek() | Sybase
mssql_field_seek | sybase_field_seek() | Sybase
mssql_free_result | sybase_free_result() | Sybase
mssql_free_result | sybase_free_result() | Sybase
mssql_get_last_message | sybase_get_last_message() | Sybase
mssql_get_last_message | sybase_get_last_message() | Sybase
mssql_min_client_severity | sybase_min_client_severity() | Sybase
mssql_min_error_severity | sybase_min_error_severity() | Sybase
mssql_min_message_severity | sybase_min_message_severity() | Sybase
mssql_min_server_severity | sybase_min_server_severity() | Sybase
mssql_num_fields | sybase_num_fields() | Sybase
mssql_num_fields | sybase_num_fields() | Sybase
mssql_num_rows | sybase_num_rows() | Sybase
mssql_num_rows | sybase_num_rows() | Sybase
mssql_pconnect | sybase_pconnect() | Sybase
mssql_pconnect | sybase_pconnect() | Sybase
mssql_query | sybase_query() | Sybase
mssql_query | sybase_query() | Sybase
mssql_result | sybase_result() | Sybase
mssql_result | sybase_result() | Sybase
mssql_select_db | sybase_select_db() | Sybase
mssql_select_db | sybase_select_db() | Sybase
multcolor | swfdisplayitem_multColor() | Ming (flash)
mysql | mysql_db_query() | MySQL
mysql_createdb | mysql_create_db() | MySQL
mysql_db_name | mysql_result() | MySQL
mysql_dbname | mysql_result() | MySQL
mysql_dropdb | mysql_drop_db() | MySQL
mysql_fieldflags | mysql_field_flags() | MySQL
mysql_fieldlen | mysql_field_len() | MySQL
mysql_fieldname | mysql_field_name() | MySQL
mysql_fieldtable | mysql_field_table() | MySQL
mysql_fieldtype | mysql_field_type() | MySQL
mysql_freeresult | mysql_free_result() | MySQL
mysql_listdbs | mysql_list_dbs() | MySQL
mysql_listfields | mysql_list_fields() | MySQL
mysql_listtables | mysql_list_tables() | MySQL
mysql_numfields | mysql_num_fields() | MySQL
mysql_numrows | mysql_num_rows() | MySQL
mysql_selectdb | mysql_select_db() | MySQL
mysql_tablename | mysql_result() | MySQL
name | domxml_attrname() | DOM XML
new_child | domxml_new_child() | DOM XML
new_xmldoc | domxml_new_xmldoc() | DOM XML
nextframe | swfmovie_nextFrame() | Ming (flash)
nextframe | swfsprite_nextFrame() | Ming (flash)
node | domxml_node() | DOM XML
oci8append | ocicollappend() | OCI8
oci8assign | ocicollassign() | OCI8
oci8assignelem | ocicollassignelem() | OCI8
oci8close | ocicloselob() | OCI8
oci8free | ocifreecoll() | OCI8
oci8free | ocifreedesc() | OCI8
oci8getelem | ocicollgetelem() | OCI8
oci8load | ociloadlob() | OCI8
oci8max | ocicollmax() | OCI8
oci8ocifreecursor | ocifreestatement() | OCI8
oci8save | ocisavelob() | OCI8
oci8savefile | ocisavelobfile() | OCI8
oci8size | ocicollsize() | OCI8
oci8trim | ocicolltrim() | OCI8
oci8writetemporary | ociwritetemporarylob() | OCI8
oci8writetofile | ociwritelobtofile() | OCI8
odbc_do | odbc_exec() | OCI8
odbc_field_precision | odbc_field_len() | OCI8
output | swfmovie_output() | Ming (flash)
parent | domxml_parent() | DOM XML
pdf_add_outline | pdf_add_bookmark() | PDF
pg_clientencoding | pg_client_encoding() | PostgreSQL
pg_setclientencoding | pg_set_client_encoding() | PostgreSQL
pos | current() | Базовый синтаксис
recode | recode_string() | Recode
remove | swfmovie_remove() | Ming (flash)
remove | swfsprite_remove() | Ming (flash)
rewind | rewinddir() | Базовый синтаксис
root | domxml_root() | DOM XML
rotate | swfdisplayitem_rotate() | Ming (flash)
rotateto | swfdisplayitem_rotateTo() | Ming (flash)
rotateto | swffill_rotateTo() | Ming (flash)
save | swfmovie_save() | Ming (flash)
savetofile | swfmovie_saveToFile() | Ming (flash)
scale | swfdisplayitem_scale() | Ming (flash)
scaleto | swfdisplayitem_scaleTo() | Ming (flash)
scaleto | swffill_scaleTo() | Ming (flash)
set_attribute | domxml_set_attribute() | DOM XML
set_content | domxml_set_content() | DOM XML
setaction | swfbutton_setAction() | Ming (flash)
setattr | domxml_set_attribute() | DOM XML
setbackground | swfmovie_setBackground() | Ming (flash)
setbounds | swftextfield_setBounds() | Ming (flash)
setcolor | swftext_setColor() | Ming (flash)
setcolor | swftextfield_setColor() | Ming (flash)
setdepth | swfdisplayitem_setDepth() | Ming (flash)
setdimension | swfmovie_setDimension() | Ming (flash)
setdown | swfbutton_setDown() | Ming (flash)
setfont | swftext_setFont() | Ming (flash)
setfont | swftextfield_setFont() | Ming (flash)
setframes | swfmovie_setFrames() | Ming (flash)
setframes | swfsprite_setFrames() | Ming (flash)
setheight | swftext_setHeight() | Ming (flash)
setheight | swftextfield_setHeight() | Ming (flash)
sethit | swfbutton_setHit() | Ming (flash)
setindentation | swftextfield_setIndentation() | Ming (flash)
setleftfill | swfshape_setleftfill() | Ming (flash)
setleftmargin | swftextfield_setLeftMargin() | Ming (flash)
setline | swfshape_setline() | Ming (flash)
setlinespacing | swftextfield_setLineSpacing() | Ming (flash)
setmargins | swftextfield_setMargins() | Ming (flash)
setmatrix | swfdisplayitem_setMatrix() | Ming (flash)
setname | swfdisplayitem_setName() | Ming (flash)
setname | swftextfield_setName() | Ming (flash)
setover | swfbutton_setOver() | Ming (flash)
setrate | swfmovie_setRate() | Ming (flash)
setratio | swfdisplayitem_setRatio() | Ming (flash)
setrightfill | swfshape_setrightfill() | Ming (flash)
setrightmargin | swftextfield_setRightMargin() | Ming (flash)
setspacing | swftext_setSpacing() | Ming (flash)
setup | swfbutton_setUp() | Ming (flash)
show_source | highlight_file () | Базовый синтаксис
sizeof | count() | Базовый синтаксис
skewx | swfdisplayitem_skewX() | Ming (flash)
skewxto | swfdisplayitem_skewXTo() | Ming (flash)
skewxto | swffill_skewXTo() | Ming (flash)
skewy | swfdisplayitem_skewY() | Ming (flash)
skewyto | swfdisplayitem_skewYTo() | Ming (flash)
skewyto | swffill_skewYTo() | Ming (flash)
snmpwalkoid | snmprealwalk() | SNMP
strchr | strstr() | Базовый синтаксис
streammp3 | swfmovie_streamMp3() | Ming (flash)
swfaction | swfaction_init() | Ming (flash)
swfbitmap | swfbitmap_init() | Ming (flash)
swfbutton | swfbutton_init() | Ming (flash)
swffill | swffill_init() | Ming (flash)
swffont | swffont_init() | Ming (flash)
swfgradient | swfgradient_init() | Ming (flash)
swfmorph | swfmorph_init() | Ming (flash)
swfmovie | swfmovie_init() | Ming (flash)
swfshape | swfshape_init() | Ming (flash)
swfsprite | swfsprite_init() | Ming (flash)
swftext | swftext_init() | Ming (flash)
swftextfield | swftextfield_init() | Ming (flash)
unlink | domxml_unlink_node() | DOM XML
xptr_new_context | xpath_new_context() | DOM XML

Пред. | Начало | След.
State | Уровень выше | List of Reserved Words


List of Reserved Words

Руководство по PHP
Пред. След.

Приложение K. List of Reserved Words

Содержание
List of Keywords
Predefined Variables
Predefined Classes
Предопределенные константы

The following is a listing of predefined identifiers in PHP. None of the identifiers listed here should be used as identifiers in any of your scripts. These lists include keywords and predefined variable, constant, and class names. These lists are neither exhaustive or complete.

List of Keywords

These words have special meaning in PHP. Some of them represent things which look like functions, some look like constants, and so on--but they're not, really: they are language constructs. You cannot use any of the following words as constants, class names, function or method names. Using them as variable names is generally OK, but could lead to confusion.

Таблица K-1. PHP Keywords

and | or | xor | __FILE__ | exception (PHP 5)
__LINE__ | array() | as | break | case
class | const | continue | declare | default
die() | do | echo() | else | elseif
empty() | enddeclare | endfor | endforeach | endif
endswitch | endwhile | eval() | exit() | extends
for | foreach | function | global | if
include() | include_once() | isset() | list() | new
print() | require() | require_once() | return() | static
switch | unset() | use | var | while
__FUNCTION__ | __CLASS__ | __METHOD__ | final (PHP 5) | php_user_filter (PHP 5)
interface (PHP 5) | implements (PHP 5) | extends | public (PHP 5) | private (PHP 5)
protected (PHP 5) | abstract (PHP 5) | clone (PHP 5) | try (PHP 5) | catch (PHP 5)
throw (PHP 5) | cfunction (PHP 4 only) | old_function (PHP 4 only) |  |

Пред. | Начало | След.
Список псевдонимов функций | Уровень выше | Predefined Variables


Predefined Variables

Since PHP 4.1.0, the preferred method for retrieving external variables is with the superglobals mentioned below. Before this time, people relied on either register_globals or the long predefined PHP arrays ($HTTP_*_VARS). Начиная с PHP 5.0.0, длинные предопределенные переменные массивов PHP могут быть отключены директивой register_long_arrays.

Server variables: $_SERVER

Замечание: Introduced in 4.1.0. In earlier versions, use $HTTP_SERVER_VARS.

$_SERVER is an array containing information such as headers, paths, and script locations. The entries in this array are created by the webserver. There is no guarantee that every webserver will provide any of these; servers may omit some, or provide others not listed here. That said, a large number of these variables are accounted for in the CGI 1.1 specification, so you should be able to expect those.

This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. You don't need to do a global $_SERVER; to access it within functions or methods, as you do with $HTTP_SERVER_VARS.

$HTTP_SERVER_VARS contains the same initial information, but is not an autoglobal. (Note that $HTTP_SERVER_VARS and $_SERVER are different variables and that PHP handles them as such)

If the register_globals directive is set, then these variables will also be made available in the global scope of the script; i.e., separate from the $_SERVER and $HTTP_SERVER_VARS arrays. For related information, see the security chapter titled Using Register Globals. These individual globals are not autoglobals.

You may or may not find any of the following elements in $_SERVER. Note that few, if any, of these will be available (or indeed have any meaning) if running PHP on the command line.

'PHP_SELF'

The filename of the currently executing script, relative to the document root. For instance, $_SERVER['PHP_SELF'] in a script at the address http://example.com/test.php/foo.bar would be /test.php/foo.bar. The __FILE__ constant contains the full path and filename of the current (i.e. included) file.

If PHP is running as a command-line processor this variable contains the script name since PHP 4.3.0. Previously it was not available.

'argv'

Array of arguments passed to the script. When the script is run on the command line, this gives C-style access to the command line parameters. When called via the GET method, this will contain the query string.

'argc'

Contains the number of command line parameters passed to the script (if run on the command line).

'GATEWAY_INTERFACE'

What revision of the CGI specification the server is using; i.e. 'CGI/1.1'.

'SERVER_NAME'

The name of the server host under which the current script is executing. If the script is running on a virtual host, this will be the value defined for that virtual host.

'SERVER_SOFTWARE'

Server identification string, given in the headers when responding to requests.

'SERVER_PROTOCOL'

Name and revision of the information protocol via which the page was requested; i.e. 'HTTP/1.0';

'REQUEST_METHOD'

Which request method was used to access the page; i.e. 'GET', 'HEAD', 'POST', 'PUT'.

Замечание: PHP script is terminated after sending headers (it means after producing any output without output buffering) if the request method was HEAD.

'REQUEST_TIME'

The timestamp of the start of the request. Available since PHP 5.1.0.

'QUERY_STRING'

The query string, if any, via which the page was accessed.

'DOCUMENT_ROOT'

The document root directory under which the current script is executing, as defined in the server's configuration file.

'HTTP_ACCEPT'

Contents of the Accept: header from the current request, if there is one.

'HTTP_ACCEPT_CHARSET'

Contents of the Accept-Charset: header from the current request, if there is one. Example: 'iso-8859-1,*,utf-8'.

'HTTP_ACCEPT_ENCODING'

Contents of the Accept-Encoding: header from the current request, if there is one. Example: 'gzip'.

'HTTP_ACCEPT_LANGUAGE'

Contents of the Accept-Language: header from the current request, if there is one. Example: 'en'.

'HTTP_CONNECTION'

Contents of the Connection: header from the current request, if there is one. Example: 'Keep-Alive'.

'HTTP_HOST'

Contents of the Host: header from the current request, if there is one.

'HTTP_REFERER'

The address of the page (if any) which referred the user agent to the current page. This is set by the user agent. Not all user agents will set this, and some provide the ability to modify HTTP_REFERER as a feature. In short, it cannot really be trusted.

'HTTP_USER_AGENT'

Contents of the User-Agent: header from the current request, if there is one. This is a string denoting the user agent being which is accessing the page. A typical example is: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Among other things, you can use this value with get_browser() to tailor your page's output to the capabilities of the user agent.

'HTTPS'

Set to a non-empty value if the script was queried through the HTTPS protocol.

'REMOTE_ADDR'

The IP address from which the user is viewing the current page.

'REMOTE_HOST'

The Host name from which the user is viewing the current page. The reverse dns lookup is based off the REMOTE_ADDR of the user.

Замечание: Your web server must be configured to create this variable. For example in Apache you'll need HostnameLookups On inside httpd.conf for it to exist. See also gethostbyaddr().

'REMOTE_PORT'

The port being used on the user's machine to communicate with the web server.

'SCRIPT_FILENAME'

The absolute pathname of the currently executing script.

Замечание: If a script is executed with the CLI, as a relative path, such as file.php or ../file.php, $_SERVER['SCRIPT_FILENAME'] will contain the relative path specified by the user.

'SERVER_ADMIN'

The value given to the SERVER_ADMIN (for Apache) directive in the web server configuration file. If the script is running on a virtual host, this will be the value defined for that virtual host.

'SERVER_PORT'

The port on the server machine being used by the web server for communication. For default setups, this will be '80'; using SSL, for instance, will change this to whatever your defined secure HTTP port is.

'SERVER_SIGNATURE'

String containing the server version and virtual host name which are added to server-generated pages, if enabled.

'PATH_TRANSLATED'

Filesystem- (not document root-) based path to the current script, after the server has done any virtual-to-real mapping.

Замечание: As of PHP 4.3.2, PATH_TRANSLATED is no longer set implicitly under the Apache 2 SAPI in contrast to the situation in Apache 1, where it's set to the same value as the SCRIPT_FILENAME server variable when it's not populated by Apache. This change was made to comply with the CGI specification that PATH_TRANSLATED should only exist if PATH_INFO is defined.

Apache 2 users may use AcceptPathInfo = On inside httpd.conf to define PATH_INFO.

'SCRIPT_NAME'

Contains the current script's path. This is useful for pages which need to point to themselves. The __FILE__ constant contains the full path and filename of the current (i.e. included) file.

'REQUEST_URI'

The URI which was given in order to access this page; for instance, '/index.html'.

'PHP_AUTH_DIGEST'

When running under Apache as module doing Digest HTTP authentication this variable is set to the 'Authorization' header sent by the client (which you should then use to make the appropriate validation).

'PHP_AUTH_USER'

When running under Apache or IIS (ISAPI on PHP 5) as module doing HTTP authentication this variable is set to the username provided by the user.

'PHP_AUTH_PW'

When running under Apache or IIS (ISAPI on PHP 5) as module doing HTTP authentication this variable is set to the password provided by the user.

'AUTH_TYPE'

When running under Apache as module doing HTTP authenticated this variable is set to the authentication type.

Environment variables: $_ENV

Замечание: Introduced in 4.1.0. In earlier versions, use $HTTP_ENV_VARS.

These variables are imported into PHP's global namespace from the environment under which the PHP parser is running. Many are provided by the shell under which PHP is running and different systems are likely running different kinds of shells, a definitive list is impossible. Please see your shell's documentation for a list of defined environment variables.

Other environment variables include the CGI variables, placed there regardless of whether PHP is running as a server module or CGI processor.

This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. You don't need to do a global $_ENV; to access it within functions or methods, as you do with $HTTP_ENV_VARS.

$HTTP_ENV_VARS contains the same initial information, but is not an autoglobal. (Note that $HTTP_ENV_VARS and $_ENV are different variables and that PHP handles them as such)

If the register_globals directive is set, then these variables will also be made available in the global scope of the script; i.e., separate from the $_ENV and $HTTP_ENV_VARS arrays. For related information, see the security chapter titled Using Register Globals. These individual globals are not autoglobals.

HTTP Cookies: $_COOKIE

Замечание: Introduced in 4.1.0. In earlier versions, use $HTTP_COOKIE_VARS.

An associative array of variables passed to the current script via HTTP cookies. Automatically global in any scope.

This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. You don't need to do a global $_COOKIE; to access it within functions or methods, as you do with $HTTP_COOKIE_VARS.

$HTTP_COOKIE_VARS contains the same initial information, but is not an autoglobal. (Note that $HTTP_COOKIE_VARS and $_COOKIE are different variables and that PHP handles them as such)

If the register_globals directive is set, then these variables will also be made available in the global scope of the script; i.e., separate from the $_COOKIE and $HTTP_COOKIE_VARS arrays. For related information, see the security chapter titled Using Register Globals. These individual globals are not autoglobals.

HTTP GET variables: $_GET

Замечание: Introduced in 4.1.0. In earlier versions, use $HTTP_GET_VARS.

An associative array of variables passed to the current script via the HTTP GET method. Automatically global in any scope.

This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. You don't need to do a global $_GET; to access it within functions or methods, as you do with $HTTP_GET_VARS.

$HTTP_GET_VARS contains the same initial information, but is not an autoglobal. (Note that $HTTP_GET_VARS and $_GET are different variables and that PHP handles them as such)

If the register_globals directive is set, then these variables will also be made available in the global scope of the script; i.e., separate from the $_GET and $HTTP_GET_VARS arrays. For related information, see the security chapter titled Using Register Globals. These individual globals are not autoglobals.

HTTP POST variables: $_POST

Замечание: Introduced in 4.1.0. In earlier versions, use $HTTP_POST_VARS.

An associative array of variables passed to the current script via the HTTP POST method. Automatically global in any scope.

This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. You don't need to do a global $_POST; to access it within functions or methods, as you do with $HTTP_POST_VARS.

$HTTP_POST_VARS contains the same initial information, but is not an autoglobal. (Note that $HTTP_POST_VARS and $_POST are different variables and that PHP handles them as such)

If the register_globals directive is set, then these variables will also be made available in the global scope of the script; i.e., separate from the $_POST and $HTTP_POST_VARS arrays. For related information, see the security chapter titled Using Register Globals. These individual globals are not autoglobals.

HTTP File upload variables: $_FILES

Замечание: Introduced in 4.1.0. In earlier versions, use $HTTP_POST_FILES.

An associative array of items uploaded to the current script via the HTTP POST method. Automatically global in any scope.

This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. You don't need to do a global $_FILES; to access it within functions or methods, as you do with $HTTP_POST_FILES.

$HTTP_POST_FILES contains the same information, but is not an autoglobal. (Note that $HTTP_POST_FILES and $_FILES are different variables and that PHP handles them as such)

If the register_globals directive is set, then these variables will also be made available in the global scope of the script; i.e., separate from the $_FILES and $HTTP_POST_FILES arrays. For related information, see the security chapter titled Using Register Globals. These individual globals are not autoglobals.

Request variables: $_REQUEST

Замечание: Introduced in 4.1.0. There is no equivalent array in earlier versions.

Замечание: Prior to PHP 4.3.0, $_FILES information was also included in $_REQUEST.

An associative array consisting of the contents of $_GET, $_POST, and $_COOKIE.

This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. You don't need to do a global $_REQUEST; to access it within functions or methods.

If the register_globals directive is set, then these variables will also be made available in the global scope of the script; i.e., separate from the $_REQUEST array. For related information, see the security chapter titled Using Register Globals. These individual globals are not autoglobals.

Session variables: $_SESSION

Замечание: Introduced in 4.1.0. In earlier versions, use $HTTP_SESSION_VARS.

An associative array containing session variables available to the current script. See the Session functions documentation for more information on how this is used.

This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. You don't need to do a global $_SESSION; to access it within functions or methods, as you do with $HTTP_SESSION_VARS.

$HTTP_SESSION_VARS contains the same information, but is not an autoglobal. (Note that $HTTP_SESSION_VARS and $_SESSION are different variables and that PHP handles them as such)

If the register_globals directive is set, then these variables will also be made available in the global scope of the script; i.e., separate from the $_SESSION and $HTTP_SESSION_VARS arrays. For related information, see the security chapter titled Using Register Globals. These individual globals are not autoglobals.

Global variables: $GLOBALS

Замечание: $GLOBALS has been available since PHP 3.0.0.

An associative array containing references to all variables which are currently defined in the global scope of the script. The variable names are the keys of the array.

This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. You don't need to do a global $GLOBALS; to access it within functions or methods.

The previous error message: $php_errormsg

$php_errormsg is a variable containing the text of the last error message generated by PHP. This variable will only be available within the scope in which the error occurred, and only if the track_errors configuration option is turned on (it defaults to off).

Пред. | Начало | След.
List of Reserved Words | Уровень выше | Predefined Classes


Predefined Classes

This section lists standard predefined classes. Miscellaneous extensions define other classes which are described in their reference.

Standard Defined Classes

These classes are defined in the standard set of functions included in the PHP build.

Directory

The class from which dir is instantiated.

stdClass

__PHP_Incomplete_Class

Predefined classes as of PHP 5

These additional predefined classes were introduced in PHP 5.0.0

exception

php_user_filter

Пред. | Начало | След.
Predefined Variables | Уровень выше | Предопределенные константы


Предопределенные константы

Содержание
Объявленные в ядре константы -- Константы, объявленные в ядре PHP, Zend, и SAPI-модулях
Стандартные константы -- Константы, объявленные в PHP по умолчанию

Пред. | Начало | След.
Predefined Classes | Уровень выше | Объявленные в ядре константы


List of Resource Types

Руководство по PHP
Пред. След.

Приложение L. List of Resource Types

The following is a list of functions which create, use or destroy PHP resources. The function is_resource() can be used to determine if a variable is a resource and get_resource_type() will return the type of resource it is.

Таблица L-1. Resource Types

Resource Type Name | Created By | Used By | Destroyed By | Definition
aspell | aspell_new() | aspell_check(), aspell_check_raw(), aspell_suggest() | None | Aspell dictionary
bzip2 | bzopen() | bzerrno(), bzerror(), bzerrstr(), bzflush(), bzread(), bzwrite() | bzclose() | Bzip2 file
COM | com_load() | com_invoke(), com_propget(), com_get(), com_propput(), com_set(), com_propput() | None | COM object reference
VARIANT
cpdf | cpdf_open() | cpdf_page_init(), cpdf_finalize_page(), cpdf_finalize(), cpdf_output_buffer(), cpdf_save_to_file(), cpdf_set_current_page(), cpdf_begin_text(), cpdf_end_text(), cpdf_show(), cpdf_show_xy(), cpdf_text(), cpdf_set_font(), cpdf_set_leading(), cpdf_set_text_rendering(), cpdf_set_horiz_scaling(), cpdf_set_text_rise(), cpdf_set_text_matrix(), cpdf_set_text_pos(), cpdf_set_text_pos(), cpdf_set_word_spacing(), cpdf_continue_text(), cpdf_stringwidth(), cpdf_save(), cpdf_translate(), cpdf_restore(), cpdf_scale(), cpdf_rotate(), cpdf_setflat(), cpdf_setlinejoin(), cpdf_setlinecap(), cpdf_setmiterlimit(), cpdf_setlinewidth(), cpdf_setdash(), cpdf_moveto(), cpdf_rmoveto(), cpdf_curveto(), cpdf_lineto(), cpdf_rlineto(), cpdf_circle(), cpdf_arc(), cpdf_rect(), cpdf_closepath(), cpdf_stroke(), cpdf_closepath_fill_stroke(), cpdf_fill_stroke(), cpdf_clip(), cpdf_fill(), cpdf_setgray_fill(), cpdf_setgray_stroke(), cpdf_setgray(), cpdf_setrgbcolor_fill(), cpdf_setrgbcolor_stroke(), cpdf_setrgbcolor(), cpdf_add_outline(), cpdf_set_page_animation(), cpdf_import_jpeg(), cpdf_place_inline_image(), cpdf_add_annotation() | cpdf_close() | PDF document with CPDF lib
cpdf outline
curl | curl_copy_handle(), curl_init() | curl_copy_handle(), curl_errno(), curl_error(), curl_exec(), curl_getinfo(), curl_setopt() | curl_close() | Curl session
dbm | dbmopen() | dbmexists(), dbmfetch(), dbminsert(), dbmreplace(), dbmdelete(), dbmfirstkey(), dbmnextkey() | dbmclose() | Link to DBM database
dba | dba_open() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | dba_close() | Link to DBA database
dba persistent | dba_popen() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | None | Persistent link to DBA database
dbase | dbase_open() | dbase_pack(), dbase_add_record(), dbase_replace_record(), dbase_delete_record(), dbase_get_record(), dbase_get_record_with_names(), dbase_numfields(), dbase_numrecords() | dbase_close() | Link to Dbase database
dbx_link_object | dbx_connect() | dbx_query() | dbx_close() | dbx connection
dbx_result_object | dbx_query() | None | dbx result
domxml attribute
domxml document
domxml node
xpath context
xpath object
fbsql link | fbsql_change_user(), fbsql_connect() | fbsql_autocommit(), fbsql_blob_size(), fbsql_clob_size(), fbsql_commit(), fbsql_change_user(), fbsql_create_blob(), fbsql_create_db(), fbsql_create_clob(), fbsql_data_seek(), fbsql_database_password(), fbsql_database(), fbsql_db_query(), fbsql_db_status(), fbsql_drop_db(), fbsql_errno(), fbsql_error(), fbsql_get_autostart_info(), fbsql_hostname(), fbsql_insert_id(), fbsql_list_dbs(), fbsql_password(), fbsql_read_blob(), fbsql_read_clob(), fbsql_rollback(), fbsql_select_db(), fbsql_set_password(), fbsql_set_transaction(), fbsql_start_db(), fbsql_stop_db(), fbsql_username() | fbsql_close() | Link to fbsql database
fbsql plink | fbsql_change_user(), fbsql_pconnect() | fbsql_autocommit(), fbsql_change_user(), fbsql_create_db(), fbsql_data_seek(), fbsql_db_query(), fbsql_drop_db(), fbsql_select_db(), fbsql_errno(), fbsql_error(), fbsql_insert_id(), fbsql_list_dbs() | None | Persistent link to fbsql database
fbsql result | fbsql_db_query(), fbsql_list_dbs(), fbsql_query(), fbsql_list_fields(), fbsql_list_tables(), fbsql_tablename() | fbsql_affected_rows(), fbsql_fetch_array(), fbsql_fetch_assoc(), fbsql_fetch_field(), fbsql_fetch_lengths(), fbsql_fetch_object(), fbsql_fetch_row(), fbsql_field_flags(), fbsql_field_name(), fbsql_field_len(), fbsql_field_seek(), fbsql_field_table(), fbsql_field_type(), fbsql_next_result(), fbsql_num_fields(), fbsql_num_rows(), fbsql_result(), fbsql_num_rows() | fbsql_free_result() | fbsql result
fdf | fdf_open() | fdf_create(), fdf_save(), fdf_get_value(), fdf_set_value(), fdf_next_field_name(), fdf_set_ap(), fdf_set_status(), fdf_get_status(), fdf_set_file(), fdf_get_file(), fdf_set_flags(), fdf_set_opt(), fdf_set_submit_form_action(), fdf_set_javascript_action() | fdf_close() | FDF File
ftp | ftp_connect(), ftp_ssl_connect() | ftp_login(), ftp_pwd(), ftp_cdup(), ftp_chdir(), ftp_mkdir(), ftp_rmdir(), ftp_nlist(), ftp_rawlist(), ftp_systype(), ftp_pasv(), ftp_get(), ftp_fget(), ftp_put(), ftp_fput(), ftp_size(), ftp_mdtm(), ftp_rename(), ftp_delete(), ftp_site(), ftp_alloc(), ftp_chmod(), ftp_exec(), ftp_get_option(), ftp_nb_continue(), ftp_nb_fget(), ftp_nb_fput(), ftp_nb_get(), ftp_nb_put(), ftp_raw(), ftp_set_option() | ftp_close() | FTP stream
gd | imagecreate(), imagecreatefromgd(), imagecreatefromgd2(), imagecreatefromgd2part(), imagecreatefromgif(), imagecreatefromjpeg(), imagecreatefrompng(), imagecreatefromwbmp(), imagecreatefromstring(), imagecreatefromxbm(), imagecreatefromxpm(), imagecreatetruecolor(), imagerotate() | imagearc(), imagechar(), imagecharup(), imagecolorallocate(), imagecolorat(), imagecolorclosest(), imagecolorexact(), imagecolorresolve(), imagegammacorrect(), imagegammacorrect(), imagecolorset(), imagecolorsforindex(), imagecolorstotal(), imagecolortransparent(), imagecopy(), imagecopyresized(), imagedashedline(), imagefill(), imagefilledpolygon(), imagefilledrectangle(), imagefilltoborder(), imagegif(), imagepng(), imagejpeg(), imagewbmp(), imageinterlace(), imageline(), imagepolygon(), imagepstext(), imagerectangle(), imagerotate(), imagesetpixel(), imagestring(), imagestringup(), imagesx(), imagesy(), imagettftext(), imagefilledarc(), imageellipse(), imagefilledellipse(), imagecolorclosestalpha(), imagecolorexactalpha(), imagecolorresolvealpha(), imagecopymerge(), imagecopymergegray(), imagecopyresampled(), imagetruecolortopalette(), imagesetbrush(), imagesettile(), imagesetthickness(), image2wbmp(), imagealphablending(), imageantialias(), imagecolorallocatealpha(), imagecolorclosesthwb(), imagecolordeallocate(), imagecolormatch(), imagefilter(), imagefttext(), imagegd(), imagegd2(), imageistruecolor(), imagelayereffect(), imagepalettecopy(), imagesavealpha(), imagesetstyle(), imagexbm() | imagedestroy() | GD Image
gd font | imageloadfont() | imagechar(), imagecharup(), imagefontheight() | None | Font for GD
gd PS encoding
gd PS font | imagepsloadfont() | imagepstext(), imagepsslantfont(), imagepsextendfont(), imagepsencodefont(), imagepsbbox() | imagepsfreefont() | PS font for GD
GMP integer | gmp_init() | gmp_intval(), gmp_strval(), gmp_add(), gmp_sub(), gmp_mul(), gmp_div_q(), gmp_div_r(), gmp_div_qr(), gmp_div(), gmp_mod(), gmp_divexact(), gmp_cmp(), gmp_neg(), gmp_abs(), gmp_sign(), gmp_fact(), gmp_sqrt(), gmp_sqrtrm(), gmp_perfect_square(), gmp_pow(), gmp_powm(), gmp_prob_prime(), gmp_gcd(), gmp_gcdext(), gmp_invert(), gmp_legendre(), gmp_jacobi(), gmp_random(), gmp_and(), gmp_or(), gmp_xor(), gmp_setbit(), gmp_clrbit(), gmp_scan0(), gmp_scan1(), gmp_popcount(), gmp_hamdist() | None | GMP Number
hyperwave document | hw_cp(), hw_docbyanchor(), hw_getremote(), hw_getremotechildren() | hw_children(), hw_childrenobj(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getsrcbydestobj(), hw_getandlock(), hw_gettext(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_inscoll(), hw_pipedocument(), hw_unlock() | hw_deleteobject() | Hyperwave object
hyperwave link | hw_connect() | hw_children(), hw_childrenobj(), hw_cp(), hw_deleteobject(), hw_docbyanchor(), hw_docbyanchorobj(), hw_errormsg(), hw_edittext(), hw_error(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getremotechildren(), hw_getsrcbydestobj(), hw_getobject(), hw_getandlock(), hw_gettext(), hw_getobjectbyquery(), hw_getobjectbyqueryobj(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_mv(), hw_incollections(), hw_info(), hw_inscoll(), hw_insdoc(), hw_insertdocument(), hw_insertobject(), hw_mapid(), hw_modifyobject(), hw_pipedocument(), hw_unlock(), hw_who(), hw_getusername() | hw_close(), hw_free_document() | Link to Hyperwave server
hyperwave link persistent | hw_pconnect() | hw_children(), hw_childrenobj(), hw_cp(), hw_deleteobject(), hw_docbyanchor(), hw_docbyanchorobj(), hw_errormsg(), hw_edittext(), hw_error(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getremotechildren(), hw_getsrcbydestobj(), hw_getobject(), hw_getandlock(), hw_gettext(), hw_getobjectbyquery(), hw_getobjectbyqueryobj(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_mv(), hw_incollections(), hw_info(), hw_inscoll(), hw_insdoc(), hw_insertdocument(), hw_insertobject(), hw_mapid(), hw_modifyobject(), hw_pipedocument(), hw_unlock(), hw_who(), hw_getusername() | None | Persistent link to Hyperwave server
icap | icap_open() | icap_fetch_event(), icap_list_events(), icap_store_event(), icap_snooze(), icap_list_alarms(), icap_delete_event() | icap_close() | Link to icap server
imap | imap_open() | imap_append(), imap_body(), imap_check(), imap_createmailbox(), imap_delete(), imap_deletemailbox(), imap_expunge(), imap_fetchbody(), imap_fetchstructure(), imap_headerinfo(), imap_header(), imap_headers(), imap_listmailbox(), imap_getmailboxes(), imap_get_quota(), imap_status(), imap_listsubscribed(), imap_set_quota(), imap_set_quota(), imap_getsubscribed(), imap_mail_copy(), imap_mail_move(), imap_num_msg(), imap_num_recent(), imap_ping(), imap_renamemailbox(), imap_reopen(), imap_subscribe(), imap_undelete(), imap_unsubscribe(), imap_scanmailbox(), imap_mailboxmsginfo(), imap_fetchheader(), imap_uid(), imap_msgno(), imap_search(), imap_fetch_overview() | imap_close() | Link to IMAP, POP3 server
imap chain persistent
imap persistent
ingres | ingres_connect() | ingres_query(), ingres_num_rows(), ingres_num_fields(), ingres_field_name(), ingres_field_type(), ingres_field_nullable(), ingres_field_length(), ingres_field_precision(), ingres_field_scale(), ingres_fetch_array(), ingres_fetch_row(), ingres_fetch_object(), ingres_rollback(), ingres_commit(), ingres_autocommit() | ingres_close() | Link to ingresII base
ingres persistent | ingres_pconnect() | ingres_query(), ingres_num_rows(), ingres_num_fields(), ingres_field_name(), ingres_field_type(), ingres_field_nullable(), ingres_field_length(), ingres_field_precision(), ingres_field_scale(), ingres_fetch_array(), ingres_fetch_row(), ingres_fetch_object(), ingres_rollback(), ingres_commit(), ingres_autocommit() | None | Persistent link to ingresII base
interbase blob
interbase link | ibase_connect() | ibase_query(), ibase_prepare(), ibase_trans() | ibase_close() | Link to Interbase database
interbase link persistent | ibase_pconnect() | ibase_query(), ibase_prepare(), ibase_trans() | None | Persistent link to Interbase database
interbase query | ibase_prepare() | ibase_execute() | ibase_free_query() | Interbase query
interbase result | ibase_query() | ibase_fetch_row(), ibase_fetch_object(), ibase_field_info(), ibase_num_fields() | ibase_free_result() | Interbase Result
interbase transaction | ibase_trans() | ibase_commit() | ibase_rollback() | Interbase transaction
java
ldap link | ldap_connect(), ldap_search() | ldap_count_entries(), ldap_first_attribute(), ldap_first_entry(), ldap_get_attributes(), ldap_get_dn(), ldap_get_entries(), ldap_get_values(), ldap_get_values_len(), ldap_next_attribute(), ldap_next_entry() | ldap_close() | ldap connection
ldap result | ldap_read() | ldap_add(), ldap_compare(), ldap_bind(), ldap_count_entries(), ldap_delete(), ldap_errno(), ldap_error(), ldap_first_attribute(), ldap_first_entry(), ldap_get_attributes(), ldap_get_dn(), ldap_get_entries(), ldap_get_values(), ldap_get_values_len(), ldap_get_option(), ldap_list(), ldap_modify(), ldap_mod_add(), ldap_mod_replace(), ldap_next_attribute(), ldap_next_entry(), ldap_mod_del(), ldap_set_option(), ldap_unbind() | ldap_free_result() | ldap search result
ldap result entry
mcal | mcal_open(), mcal_popen() | mcal_create_calendar(), mcal_rename_calendar(), mcal_rename_calendar(), mcal_delete_calendar(), mcal_fetch_event(), mcal_list_events(), mcal_append_event(), mcal_store_event(), mcal_delete_event(), mcal_list_alarms(), mcal_event_init(), mcal_event_set_category(), mcal_event_set_title(), mcal_event_set_description(), mcal_event_set_start(), mcal_event_set_end(), mcal_event_set_alarm(), mcal_event_set_class(), mcal_next_recurrence(), mcal_event_set_recur_none(), mcal_event_set_recur_daily(), mcal_event_set_recur_weekly(), mcal_event_set_recur_monthly_mday(), mcal_event_set_recur_monthly_wday(), mcal_event_set_recur_yearly(), mcal_fetch_current_stream_event(), mcal_event_add_attribute(), mcal_expunge() | mcal_close() | Link to calendar server
SWFAction
SWFBitmap
SWFButton
SWFDisplayItem
SWFFill
SWFFont
SWFGradient
SWFMorph
SWFMovie
SWFShape
SWFSprite
SWFText
SWFTextField
mnogosearch agent
mnogosearch result
msql link | msql_connect() | msql(), msql_create_db(), msql_createdb(), msql_drop_db(), msql_drop_db(), msql_select_db(), msql_select_db() | msql_close() | Link to mSQL database
msql link persistent | msql_pconnect() | msql(), msql_create_db(), msql_createdb(), msql_drop_db(), msql_drop_db(), msql_select_db(), msql_select_db() | None | Persistent link to mSQL
msql query | msql_db_query(), msql_list_dbs(), msql_list_fields(), msql_list_tables(), msql_query() | msql(), msql_affected_rows(), msql_data_seek(), msql_dbname(), msql_fetch_array(), msql_fetch_field(), msql_fetch_object(), msql_fetch_row(), msql_field_seek(), msql_field_table(), msql_field_flags(), msql_field_len(), msql_field_name(), msql_field_type(), msql_num_fields(), msql_num_rows(), msql_numfields(), msql_numrows(), msql_result() | msql_free_result(), msql_free_result() | mSQL result
mssql link | mssql_connect() | mssql_query(), mssql_select_db() | mssql_close() | Link to Microsoft SQL Server database
mssql link persistent | mssql_pconnect() | mssql_query(), mssql_select_db() | None | Persistent link to Microsoft SQL Server
mssql result | mssql_query() | mssql_data_seek(), mssql_fetch_array(), mssql_fetch_field(), mssql_fetch_object(), mssql_fetch_row(), mssql_field_length(), mssql_field_name(), mssql_field_seek(), mssql_field_type(), mssql_num_fields(), mssql_num_rows(), mssql_result() | mssql_free_result() | Microsoft SQL Server result
mysql link | mysql_connect() | mysql_affected_rows(), mysql_change_user(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info() | mysql_close() | Link to MySQL database
mysql link persistent | mysql_pconnect() | mysql_affected_rows(), mysql_change_user(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info() | None | Persistent link to MySQL database
mysql result | mysql_db_query(), mysql_list_dbs(), mysql_list_fields(), mysql_list_processes(), mysql_list_tables(), mysql_query(), mysql_unbuffered_query() | mysql_data_seek(), mysql_db_name(), mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_field(), mysql_fetch_lengths(), mysql_fetch_object(), mysql_fetch_row(), mysql_fetch_row(), mysql_field_flags(), mysql_field_name(), mysql_field_len(), mysql_field_seek(), mysql_field_table(), mysql_field_type(), mysql_num_fields(), mysql_num_rows(), mysql_result(), mysql_tablename() | mysql_free_result() | MySQL result
oci8 collection
oci8 connection | ocilogon(), ociplogon(), ocinlogon() | ocicommit(), ociserverversion(), ocinewcursor(), ociparse(), ocierror() | ocilogoff() | Link to Oracle database
oci8 descriptor
oci8 server
oci8 session
oci8 statement | ocinewdescriptor() | ocirollback(), ocinewdescriptor(), ocirowcount(), ocidefinebyname(), ocibindbyname(), ociexecute(), ocinumcols(), ociresult(), ocifetch(), ocifetchinto(), ocifetchstatement(), ocicolumnisnull(), ocicolumnname(), ocicolumnsize(), ocicolumntype(), ocistatementtype(), ocierror() | ocifreestatement() | Oracle Cursor
odbc link | odbc_connect() | odbc_autocommit(), odbc_commit(), odbc_error(), odbc_errormsg(), odbc_exec(), odbc_tables(), odbc_tableprivileges(), odbc_do(), odbc_prepare(), odbc_columns(), odbc_columnprivileges(), odbc_procedurecolumns(), odbc_specialcolumns(), odbc_rollback(), odbc_setoption(), odbc_gettypeinfo(), odbc_primarykeys(), odbc_foreignkeys(), odbc_procedures(), odbc_statistics() | odbc_close() | Link to ODBC database
odbc link persistent | odbc_pconnect() | odbc_autocommit(), odbc_commit(), odbc_error(), odbc_errormsg(), odbc_exec(), odbc_tables(), odbc_tableprivileges(), odbc_do(), odbc_prepare(), odbc_columns(), odbc_columnprivileges(), odbc_procedurecolumns(), odbc_specialcolumns(), odbc_rollback(), odbc_setoption(), odbc_gettypeinfo(), odbc_primarykeys(), odbc_foreignkeys(), odbc_procedures(), odbc_statistics() | None | Persistent link to ODBC database
odbc result | odbc_prepare() | odbc_binmode(), odbc_cursor(), odbc_execute(), odbc_fetch_into(), odbc_fetch_row(), odbc_field_name(), odbc_field_num(), odbc_field_type(), odbc_field_len(), odbc_field_precision(), odbc_field_scale(), odbc_longreadlen(), odbc_num_fields(), odbc_num_rows(), odbc_result(), odbc_result_all(), odbc_setoption() | odbc_free_result() | ODBC result
birdstep link
birdstep result
OpenSSL key | openssl_get_privatekey(), openssl_get_publickey() | openssl_sign(), openssl_seal(), openssl_open(), openssl_verify() | openssl_free_key() | OpenSSL key
OpenSSL X.509 | openssl_x509_read() | openssl_x509_parse(), openssl_x509_checkpurpose() | openssl_x509_free() | Public Key
oracle Cursor | ora_open() | ora_bind(), ora_columnname(), ora_columnsize(), ora_columntype(), ora_error(), ora_errorcode(), ora_exec(), ora_fetch(), ora_fetch_into(), ora_getcolumn(), ora_numcols(), ora_numrows(), ora_parse() | ora_close() | Oracle cursor
oracle link | ora_logon() | ora_do(), ora_error(), ora_errorcode(), ora_rollback(), ora_commitoff(), ora_commiton(), ora_open(), ora_commit() | ora_logoff() | Link to oracle database
oracle link persistent | ora_plogon() | ora_do(), ora_error(), ora_errorcode(), ora_rollback(), ora_commitoff(), ora_commiton(), ora_open(), ora_commit() | None | Persistent link to oracle database
pdf document | pdf_new() | pdf_add_bookmark(), pdf_add_launchlink(), pdf_add_locallink(), pdf_add_note(), pdf_add_pdflink(), pdf_add_weblink(), pdf_arc(), pdf_attach_file(), pdf_begin_page(), pdf_circle(), pdf_clip(), pdf_closepath(), pdf_closepath_fill_stroke(), pdf_closepath_stroke(), pdf_concat(), pdf_continue_text(), pdf_curveto(), pdf_end_page(), pdf_endpath(), pdf_fill(), pdf_fill_stroke(), pdf_findfont(), pdf_get_buffer(), pdf_get_image_height(), pdf_get_image_width(), pdf_get_parameter(), pdf_get_value(), pdf_lineto(), pdf_moveto(), pdf_open_ccitt(), pdf_open_file(), pdf_open_image_file(), pdf_place_image(), pdf_rect(), pdf_restore(), pdf_rotate(), pdf_save(), pdf_scale(), pdf_setdash(), pdf_setflat(), pdf_setfont(), pdf_setgray(), pdf_setgray_fill(), pdf_setgray_stroke(), pdf_setlinecap(), pdf_setlinejoin(), pdf_setlinewidth(), pdf_setmiterlimit(), pdf_setpolydash(), pdf_setrgbcolor(), pdf_setrgbcolor_fill(), pdf_setrgbcolor_stroke(), pdf_set_border_color(), pdf_set_border_dash(), pdf_set_border_style(), pdf_set_char_spacing(), pdf_set_duration(), pdf_set_font(), pdf_set_horiz_scaling(), pdf_set_parameter(), pdf_set_text_pos(), pdf_set_text_rendering(), pdf_set_value(), pdf_set_word_spacing(), pdf_show(), pdf_show_boxed(), pdf_show_xy(), pdf_skew(), pdf_stringwidth(), pdf_stroke(), pdf_translate(), pdf_add_thumbnail(), pdf_arcn(), pdf_begin_pattern(), pdf_begin_template(), pdf_end_pattern(), pdf_end_template(), pdf_initgraphics(), pdf_makespotcolor(), pdf_set_info(), pdf_setcolor(), pdf_setmatrix(), pdf_open_memory_image() | pdf_close(), pdf_delete() | PDF document
pdf image | pdf_open_image(), pdf_open_image_file(), pdf_open_memory_image() | pdf_get_image_height(), pdf_get_image_width(), pdf_open_CCITT(), pdf_place_image() | pdf_close_image() | Image in PDF file
pdf object
pdf outline
pgsql large object | pg_lo_open() | pg_lo_open(), pg_lo_create(), pg_lo_read(), pg_lo_read_all(), pg_lo_seek(), pg_lo_tell(), pg_lo_unlink(), pg_lo_write() | pg_lo_close() | PostgreSQL Large Object
pgsql link | pg_connect() | pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_metadata(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | pg_close() | Link to PostgreSQL database
pgsql link persistent | pg_pconnect() | pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_metadata(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | None | Persistent link to PostgreSQL database
pgsql result | pg_execute(), pg_query(), pg_query_params(), pg_get_result() | pg_fetch_array(), pg_fetch_object(), pg_fetch_result(), pg_fetch_row(), pg_field_is_null(), pg_field_name(), pg_field_num(), pg_field_prtlen(), pg_field_size(), pg_field_type(), pg_last_oid(), pg_num_fields(), pg_num_rows(), pg_result_error(), pg_result_status() | pg_free_result() | PostgreSQL result
pgsql string
printer
printer brush
printer font
printer pen
pspell | pspell_new(), pspell_new_config(), pspell_new_personal() | pspell_add_to_personal(), pspell_add_to_session(), pspell_check(), pspell_clear_session(), pspell_config_ignore(), pspell_config_mode(), pspell_config_personal(), pspell_config_repl(), pspell_config_runtogether(), pspell_config_save_repl(), pspell_save_wordlist(), pspell_store_replacement(), pspell_suggest() | None | pspell dictionary
pspell config | pspell_config_create() | pspell_new_config() | None | pspell configuration
Sablotron XSLT | xslt_create() | xslt_closelog(), xslt_openlog(), xslt_run(), xslt_set_sax_handler(), xslt_errno(), xslt_error(), xslt_fetch_result(), xslt_free() | xslt_free() | XSLT parser
shmop | shmop_open() | shmop_read(), shmop_write(), shmop_size(), shmop_delete() | shmop_close()
sockets file descriptor set | socket() | accept_connect(), bind(), connect(), listen(), read(), write() | close() | Socket
sockets i/o vector
dir | opendir() | readdir(), rewinddir() | closedir() | Dir handle
stream | fopen(), tmpfile() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), flock(), fpassthru(), fputs(), fwrite(), fread(), fseek(), ftell(), fstat(), ftruncate(), set_file_buffer(), rewind() | fclose() | File handle
pipe | popen() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | pclose() | Process handle
socket | fsockopen(), pfsockopen() | fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | fclose() | Socket handle
sybase-db link | sybase_connect() | sybase_query(), sybase_select_db() | sybase_close() | Link to Sybase database using DB library
sybase-db link persistent | sybase_pconnect() | sybase_query(), sybase_select_db() | None | Persistent link to Sybase database using DB library
sybase-db result | sybase_query(), sybase_unbuffered_query() | sybase_data_seek(), sybase_fetch_array(), sybase_fetch_field(), sybase_fetch_object(), sybase_fetch_row(), sybase_field_seek(), sybase_num_fields(), sybase_num_rows(), sybase_result() | sybase_free_result() | Sybase result using DB library
sybase-ct link | sybase_connect() | sybase_affected_rows(), sybase_query(), sybase_select_db() | sybase_close() | Link to Sybase database using CT library
sybase-ct link persistent | sybase_pconnect() | sybase_affected_rows(), sybase_query(), sybase_select_db() | None | Persistent link to Sybase database using CT library
sybase-ct result | sybase_query() | sybase_data_seek(), sybase_fetch_array(), sybase_fetch_field(), sybase_fetch_object(), sybase_fetch_row(), sybase_field_seek(), sybase_num_fields(), sybase_num_rows(), sybase_result() | sybase_free_result() | Sybase result using CT library
sysvsem | sem_get() | sem_acquire() | sem_release() | System V Semaphore
sysvshm | shm_attach() | shm_remove(), shm_put_var(), shm_get_var(), shm_remove_var() | shm_detach() | System V Shared Memory
wddx | wddx_packet_start() | wddx_add_vars() | wddx_packet_end() | WDDX packet
xml | xml_parser_create(), xml_parser_create_ns() | xml_set_object(), xml_set_element_handler(), xml_set_character_data_handler(), xml_set_processing_instruction_handler(), xml_set_default_handler(), xml_set_unparsed_entity_decl_handler(), xml_set_notation_decl_handler(), xml_set_external_entity_ref_handler(), xml_parse(), xml_get_error_code(), xml_error_string(), xml_get_current_line_number(), xml_get_current_column_number(), xml_get_current_byte_index(), xml_parse_into_struct(), xml_parser_set_option(), xml_parser_get_option() | xml_parser_free() | XML parser
zlib | gzopen() | gzeof(), gzgetc(), gzgets(), gzgetss(), gzpassthru(), gzputs(), gzread(), gzrewind(), gzseek(), gztell(), gzwrite() | gzclose() | gz-compressed file

Пред. | Начало | След.
Стандартные константы | Уровень выше | List of Supported Protocols/Wrappers


List of Supported Protocols/Wrappers

Руководство по PHP
Пред. След.

Приложение M. List of Supported Protocols/Wrappers

Содержание
Filesystem
Socket
HTTP and HTTPS
FTP and FTPS
PHP input/output streams
Compression Streams
Secure Shell 2
Audio Streams
Process Interaction Streams

The following is a list of the various URL style protocols that PHP has built-in for use with the filesystem functions such as fopen() and copy(). In addition to these wrappers, as of PHP 4.3.0, you can write your own wrappers using PHP script and stream_wrapper_register().

Filesystem

All versions of PHP. Explicitly using file:// since PHP 4.3.0

  • /path/to/file.ext

  • relative/path/to/file.ext

  • fileInCwd.ext

  • C:/path/to/winfile.ext

  • C:\path\to\winfile.ext

  • \\smbserver\share\path\to\winfile.ext

  • file:///path/to/file.ext

file:// is the default wrapper used with PHP and represents the local filesystem. When a relative path is specified (a path which does not begin with /, \, \\, or a windows drive letter) the path provided will be applied against the current working directory. In many cases this is the directory in which the script resides unless it has been changed. Using the CLI sapi, this defaults to the directory from which the script was called.

With some functions, such as fopen() and file_get_contents(), include_path may be optionally searched for relative paths as well.

Таблица M-1. Wrapper Summary

Attribute | Supported
Restricted by allow_url_fopen. | No
Allows Reading | Yes
Allows Writing | Yes
Allows Appending | Yes
Allows Simultaneous Reading and Writing | Yes
Supports stat() | Yes
Supports unlink() | Yes
Supports rename() | Yes
Supports mkdir() | Yes
Supports rmdir() | Yes

Пред. | Начало | След.
List of Resource Types | Уровень выше | Socket


HTTP and HTTPS

PHP 3, PHP 4, PHP 5. https:// since PHP 4.3.0

  • http://example.com

  • http://example.com/file.php?var1=val1&var2=val2

  • http://user:password@example.com

  • https://example.com

  • https://example.com/file.php?var1=val1&var2=val2

  • https://user:password@example.com

Allows read-only access to files/resources via HTTP 1.0, using the HTTP GET method. A Host: header is sent with the request to handle name-based virtual hosts. If you have configured a user_agent string using your ini file or the stream context, it will also be included in the request.

Внимание

При использовании SSL, Microsoft IIS нарушает протокол, закрывая соединение без отправки индикатора close_notify. PHP сообщит об этом как о "SSL: Fatal Protocol Error" в тот момент, когда вы достигнете конца данных. Чтобы обойти это, вы должны установить error_reporting на уровень, исключающий E_WARNING. PHP версий 4.3.7 и старше умеет определять, что на стороне сервера находится проблемный IIS и не выводит предупреждение. Если вы используете fsockopen() для создания ssl:// сокета, вы сами отвечаете за определение и подавление этого предупреждения.

Redirects have been supported since PHP 4.0.5; if you are using an earlier version you will need to include trailing slashes in your URLs. If it's important to know the URL of the resource where your document came from (after all redirects have been processed), you'll need to process the series of response headers returned by the stream.

<?php
$url = 'http://www.example.com/redirecting_page.php';

$fp = fopen($url, 'r');

/* Prior to PHP 4.3.0 use $http_response_header
   instead of stream_get_meta_data() */
$meta_data = stream_get_meta_data($fp);
foreach($meta_data['wrapper_data'] as $response) {

  /* Were we redirected? */
  if (substr(strtolower($response), 0, 18) == 'content-location: ') {
    /* update $url with where we were redirected to */
    $url = substr($response, 18);
  }

}

?>

The stream allows access to the body of the resource; the headers are stored in the $http_response_header variable. Since PHP 4.3.0, the headers are available using stream_get_meta_data().

HTTP connections are read-only; you cannot write data or copy files to an HTTP resource.

Замечание: HTTPS is supported starting from PHP 4.3.0, if you have compiled in support for OpenSSL.

Таблица M-2. Wrapper Summary

Attribute | Supported
Restricted by allow_url_fopen. | Yes
Allows Reading | Yes
Allows Writing | No
Allows Appending | No
Allows Simultaneous Reading and Writing | N/A
Supports stat() | No
Supports unlink() | No
Supports rename() | No
Supports mkdir() | No
Supports rmdir() | No

Таблица M-3. Context options

Name | Usage | Default
method | GET, POST, or any other HTTP method supported by the remote server. | GET
header | Additional headers to be sent during request. Values in this option will override other values (such as User-agent:, Host:, and Authentication:). |
user_agent | Value to send with User-Agent: header. This value will only be used if user-agent is not specified in the header context option above. | php.ini setting: user_agent
content | Additional data to be sent after the headers. Typically used with POST or PUT requests. |
proxy | URI specifying address of proxy server. (e.g. tcp://proxy.example.com:5100). HTTPS proxying (through HTTP proxies) only works in PHP 5.1.0 or greater. |
request_fulluri | When set to TRUE, the entire URI will be used when constructing the request. (i.e. GET http://www.example.com/path/to/file.html HTTP/1.0). While this is a non-standard request format, some proxy servers require it. | FALSE
max_redirects | The max number of redirects to follow. Added in PHP 5.1.0. | 20

Underlying socket stream context options: Additional context options may be supported by the underlying transport For http:// streams, refer to context options for the tcp:// transport. For https:// streams, refer to context options for the ssl:// transport.

Пред. | Начало | След.
Socket | Уровень выше | FTP and FTPS


FTP and FTPS

PHP 3, PHP 4, PHP 5. ftps:// since PHP 4.3.0

  • ftp://example.com/pub/file.txt

  • ftp://user:password@example.com/pub/file.txt

  • ftps://example.com/pub/file.txt

  • ftps://user:password@example.com/pub/file.txt

Allows read access to existing files and creation of new files via FTP. If the server does not support passive mode ftp, the connection will fail.

You can open files for either reading or writing, but not both simultaneously. If the remote file already exists on the ftp server and you attempt to open it for writing but have not specified the context option overwrite, the connection will fail. If you need to overwrite existing files over ftp, specify the overwrite option in the context and open the file for writing. Alternatively, you can use the FTP extension.

Appending: As of PHP 5.0.0 files may be appended via the ftp:// URL wrapper. In prior versions, attempting to append to a file via ftp:// will result in failure.

ftps:// was introduced in PHP 4.3.0. It is the same as ftp://, but attempts to negotiate a secure connection with the ftp server. If the server does not support SSL, then the connection falls back to regular unencrypted ftp.

Замечание: FTPS is supported starting from PHP 4.3.0, if you have compiled in support for OpenSSL.

Таблица M-4. Wrapper Summary

Attribute | PHP 4 | PHP 5
Restricted by allow_url_fopen. | Yes | Yes
Allows Reading | Yes | Yes
Allows Writing | Yes (new files only) | Yes (new files/existing files with overwrite)
Allows Appending | No | Yes
Allows Simultaneous Reading and Writing | No | No
Supports stat() | No | As of PHP 5.0.0: filesize(), filetype(), file_exists(), is_file(), and is_dir() elements only. As of PHP 5.1.0: filemtime().
Supports unlink() | No | Yes
Supports rename() | No | Yes
Supports mkdir() | No | Yes
Supports rmdir() | No | Yes

Таблица M-5. Context options (as of PHP 5.0.0)

Name | Usage | Default
overwrite | Allow overwriting of already existing files on remote server. Applies to write mode (uploading) only. | FALSE (Disabled)
resume_pos | File offset at which to begin transfer. Applies to read mode (downloading) only. | 0 (Beginning of File)
proxy (PHP 5.1.0 or greater) | Proxy FTP request via http proxy server. Applies to file read operations only. Ex: tcp://squid.example.com:8000 |

Underlying socket stream context options: Additional context options may be supported by the underlying transport For ftp:// streams, refer to context options for the tcp:// transport. For ftps:// streams, refer to context options for the ssl:// transport.

Пред. | Начало | След.
HTTP and HTTPS | Уровень выше | PHP input/output streams


PHP input/output streams

PHP 3.0.13 and up, php://output and php://input since PHP 4.3.0, php://filter since PHP 5.0.0.

  • php://stdin

  • php://stdout

  • php://stderr

  • php://output

  • php://input

  • php://filter

php://stdin, php://stdout and php://stderr allow access to the corresponding input or output stream of the PHP process.

php://output allows you to write to the output buffer mechanism in the same way as print() and echo().

php://input allows you to read raw POST data. It is a less memory intensive alternative to $HTTP_RAW_POST_DATA and does not need any special php.ini directives. php://input is not available with enctype="multipart/form-data".

php://stdin and php://input are read-only, whereas php://stdout, php://stderr and php://output are write-only.

php://filter is a kind of meta-wrapper designed to permit the application of filters to a stream at the time of opening. This is useful with all-in-one file functions such as readfile(), file(), and file_get_contents() where there is otherwise no opportunity to apply a filter to the stream prior the contents being read.

The php://filter target takes the following 'parameters' as parts of its 'path'.

  • /resource=<stream to be filtered> (required) This parameter must be located at the end of your php://filter specification and should point to the stream which you want filtered.

    <?php
    /* This is equivalent to simply:
       readfile("http://www.example.com");
       since no filters are actually specified */

    readfile("php://filter/resource=http://www.example.com");
    ?>

  • /read=<filter list to apply to read chain> (optional) This parameter takes one or more filternames separated by the pipe character |.

    <?php
    /* This will output the contents of
       www.example.com entirely in uppercase */
    readfile("php://filter/read=string.toupper/resource=http://www.example.com");

    /* This will do the same as above
       but will also ROT13 encode it */
    readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.example.com");
    ?>

  • /write=<filter list to apply to write chain> (optional) This parameter takes one or more filternames separated by the pipe character |.

    <?php
    /* This will filter the string "Hello World"
       through the rot13 filter, then write to
       example.txt in the current directory */
    file_put_contents("php://filter/write=string.rot13/resource=example.txt","Hello World");
    ?>

  • /<filter list to apply to both chains> (optional) Any filter lists which are not prefixed specifically by read= or write= will be applied to both the read and write chains (as appropriate).

Таблица M-6. Wrapper Summary (For php://filter, refer to summary of wrapper being filtered.)

Attribute | Supported
Restricted by allow_url_fopen. | No
Allows Reading | php://stdin and php://input only.
Allows Writing | php://stdout, php://stderr, and php://output only.
Allows Appending | php://stdout, php://stderr, and php://output only. (Equivalent to writing)
Allows Simultaneous Reading and Writing | No. These wrappers are unidirectional.
Supports stat() | No
Supports unlink() | No
Supports rename() | No
Supports mkdir() | No
Supports rmdir() | No

Пред. | Начало | След.
FTP and FTPS | Уровень выше | Compression Streams


Compression Streams

zlib: PHP 4.0.4 - PHP 4.2.3 (systems with fopencookie only)

compress.zlib:// and compress.bzip2:// PHP 4.3.0 and up

  • zlib:

  • compress.zlib://

  • compress.bzip2://

zlib: works like gzopen(), except that the stream can be used with fread() and the other filesystem functions. This is deprecated as of PHP 4.3.0 due to ambiguities with filenames containing ':' characters; use compress.zlib:// instead.

compress.zlib:// and compress.bzip2:// are equivalent to gzopen() and bzopen() respectively, and operate even on systems that do not support fopencookie.

Таблица M-7. Wrapper Summary

Attribute | Supported
Restricted by allow_url_fopen. | No
Allows Reading | Yes
Allows Writing | Yes
Allows Appending | Yes
Allows Simultaneous Reading and Writing | No
Supports stat() | No, use the normal file:// wrapper to stat compressed files.
Supports unlink() | No, use the normal file:// wrapper to unlink compressed files.
Supports rename() | No
Supports mkdir() | No
Supports rmdir() | No

Пред. | Начало | След.
PHP input/output streams | Уровень выше | Secure Shell 2


Secure Shell 2

ssh2.shell:// ssh2.exec:// ssh2.tunnel:// ssh2.sftp:// ssh2.scp:// PHP 4.3.0 and up (PECL)

  • ssh2.shell://user:pass@example.com:22/xterm

  • ssh2.exec://user:pass@example.com:22/usr/local/bin/somecmd

  • ssh2.tunnel://user:pass@example.com:22/192.168.0.1:14

  • ssh2.sftp://user:pass@example.com:22/path/to/filename

This wrapper is not enabled by default: In order to use the ssh2.*:// wrappers you must install the SSH2 extension available from PECL.

In addition to accepting traditional URI login details, the ssh2 wrappers will also reuse open connections by passing the connection resource in the host portion of the URL.

Пример M-2. Opening a stream from an active connection

<?php
$session = ssh2_connect('example.com', 22);
ssh2_auth_pubkey_file($session, 'username', '/home/username/.ssh/id_rsa.pub',
                                            '/home/username/.ssh/id_rsa', 'secret');
$stream = fopen("ssh2.tunnel://$session/remote.example.com:1234", 'r');
?>

Таблица M-8. Wrapper Summary

Attribute | ssh2.shell | ssh2.exec | ssh2.tunnel | ssh2.sftp | ssh2.scp
Restricted by allow_url_fopen. | Yes | Yes | Yes | Yes | Yes
Allows Reading | Yes | Yes | Yes | Yes | Yes
Allows Writing | Yes | Yes | Yes | Yes | No
Allows Appending | No | No | No | Yes (When supported by server) | No
Allows Simultaneous Reading and Writing | Yes | Yes | Yes | Yes | No
Supports stat() | No | No | No | Yes | No
Supports unlink() | No | No | No | Yes | No
Supports rename() | No | No | No | Yes | No
Supports mkdir() | No | No | No | Yes | No
Supports rmdir() | No | No | No | Yes | No

Таблица M-9. Context options

Name | Usage | Default
session | Preconnected ssh2 resource to be reused |
sftp | Preallocated sftp resource to be reused |
methods | Key exchange, hostkey, cipher, compression, and MAC methods to use |
callbacks |  |
username | Username to connect as |
password | Password to use with password authentication |
pubkey_file | Name of public key file to use for authentication |
privkey_file | Name of private key file to use for authentication |
env | Associate array of environment variables to set |
term | Terminal emulation type to request when allocating a pty |
term_width | Width of terminal requested when allocating a pty |
term_height | Height of terminal requested when allocating a pty |
term_units | Units to use with term_width and term_height | SSH2_TERM_UNIT_CHARS

Пред. | Начало | След.
Compression Streams | Уровень выше | Audio Streams


Audio Streams

ogg:// PHP 4.3.0 and up (PECL)

  • ogg://soundfile.ogg

  • ogg:///path/to/soundfile.ogg

  • ogg://http://www.example.com/path/to/soundstream.ogg

This wrapper is not enabled by default: In order to use the ogg:// wrapper you must install the OGG/Vorbis extension available from PECL.

Files opened for reading via the ogg:// wrapper are treated as compressed audio encoded using the OGG/Vorbis codec. Similarly, files opened for writing or appending via the ogg:// wrapper are writen as compressed audio data. stream_get_meta_data(), when used on an OGG/Vorbis file opened for reading will return various details about the stream including the vendor tag, any included comments, the number of channels, the sampling rate, and the encoding rate range described by: bitrate_lower, bitrate_upper, bitrate_nominal, and bitrate_window.

Таблица M-10. Wrapper Summary

Attribute | Supported
Restricted by allow_url_fopen. | No
Allows Reading | Yes
Allows Writing | Yes
Allows Appending | Yes
Allows Simultaneous Reading and Writing | No
Supports stat() | No
Supports unlink() | No
Supports rename() | No
Supports mkdir() | No
Supports rmdir() | No

Таблица M-11. Context options

Name | Usage | Default | Mode
pcm_mode | PCM encoding to apply while reading, one of: OGGVORBIS_PCM_U8, OGGVORBIS_PCM_S8, OGGVORBIS_PCM_U16_BE, OGGVORBIS_PCM_S16_BE, OGGVORBIS_PCM_U16_LE, and OGGVORBIS_PCM_S16_LE. (8 vs 16 bit, signed or unsigned, big or little endian) | OGGVORBIS_PCM_S16_LE | Read
rate | Sampling rate of input data, expressed in Hz | 44100 | Write/Append
bitrate | When given as an integer, the fixed bitrate at which to encode. (16000 to 131072) When given as a float, the variable bitrate quality to use. (-1.0 to 1.0) | 128000 | Write/Append
channels | The number of audio channels to encode, typically 1 (Mono), or 2 (Stero). May range as high as 16. | 2 | Write/Append
comments | An array of string values to encode into the track header. |  | Write/Append

Пред. | Начало | След.
Secure Shell 2 | Уровень выше | Process Interaction Streams


Список доступных фильтров

Руководство по PHP
Пред. След.

Приложение N. Список доступных фильтров

Содержание
Строковые фильтры
Преобразовывающие фильтры
Компрессионные фильтры
Шифрующие фильтры

Следующий список перечисляет несколько встроенных фильтров для использования с stream_filter_append(). Ваша версия PHP может включать больше (или меньше) фильтров, чем перечислено здесь.

Следует акцентировать внимание на определённой асимметричности функций stream_filter_append() и stream_filter_prepend(). Каждый поток в PHP имеет небольшой буфер чтения, в котором он хранит блоки данных, полученные из файловой системы или другого ресурса, для того чтобы обрабатывать данные наиболее эффективным образом. Как только данные переносятся из ресурса во внутренний буфер потока, они сразу же обрабатываются закреплёнными за потоком фильтрами, независимо от того, готово ли приложение PHP принимать данные или нет. Если данные находятся в буфере чтения в момент, когда в фильтр что-то дописывают в конец, данные будут немедленно обработаны этим фильтром, таким образом их нахождение в буфере будет прозрачным. В то же время, если данные находятся в буфере в момент, когда в фильтр что-то дописывают в начало, данные НЕ будут обработаны этим фильтром. Вместо этого, они будут ждать момента, когда следующий блок данных будет получен из ресурса.

Для получения списка фильтров, установленных в вашу версию PHP, используйте функцию stream_get_filters().

Строковые фильтры

Все эти фильтры служат для того самого, что подразумевают их имена в соответсвии с поведением встроенных в PHP функций для работы со строками. Для получения дополнительной информации о конкретном фильтре, обратитесь к странице руководства соответствующей функции.

string.rot13 (с версии PHP 4.3.0) Использование этого фильтра эквивалентно обработке всех данных потока функцией str_rot13().

Пример N-1. string.rot13

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.rot13');
fwrite($fp, "This is a test.\n");
/* Outputs:  Guvf vf n grfg.   */
?>

string.toupper (с версии PHP 5.0.0) Использование этого фильтра эквивалентно обработке всех данных потока функцией strtoupper().

Пример N-2. string.toupper

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.toupper');
fwrite($fp, "This is a test.\n");
/* Outputs:  THIS IS A TEST.   */
?>

string.tolower (с версии PHP 5.0.0) Использование этого фильтра эквивалентно обработке всех данных потока функцией strtolower().

Пример N-3. string.tolower

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.tolower');
fwrite($fp, "This is a test.\n");
/* Outputs:  this is a test.   */
?>

string.strip_tags (с версии PHP 5.0.0) Использование этого фильтра эквивалентно обработке всех данных потока функцией strip_tags(). Он принимает аргументы в одной из двух форм: Либо в виде строки со списком тегов, как и второй аргумент функции strip_tags(), либо массив названий тегов.

Пример N-4. string.strip_tags

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, "<b><i><u>");
fwrite($fp, "<b>bolded text</b> enlarged to a <h1>level 1 heading</h1>\n");
fclose($fp);
/* Outputs:  <b>bolded text</b> enlarged to a level 1 heading   */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, array('b','i','u'));
fwrite($fp, "<b>bolded text</b> enlarged to a <h1>level 1 heading</h1>\n");
fclose($fp);
/* Outputs:  <b>bolded text</b> enlarged to a level 1 heading   */
?>

Пред. | Начало | След.
Process Interaction Streams | Уровень выше | Преобразовывающие фильтры


Преобразовывающие фильтры

Как и фильтры string.*, фильтры convert.* совершают действия, соответствующие их именам. Преобразовывающие фильтры были добавлены в PHP 5.0.0. Для получения дополнительной информации о конкретном фильтре, обратитесь к странице руководства соответствующей функции.

convert.base64-encode и convert.base64-decode Использование этих фильтров эквивалентно обработке всех данных потока функциями base64_encode() и base64_decode() соответственно. convert.base64-encode поддерживает аргументы, переданные в виде ассоциативного массива. Если указан аргумент line-length, результат base64 будет разделён на куски длинной line-length символов каждый. Если указан аргумент line-break-chars, каждый кусок будет разделён указанными символами. Эти параметры дают такой же эффект, как и использование base64_encode() в паре с chunk_split().

Пример N-5. convert.base64-encode и convert.base64-decode

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode');
fwrite($fp, "This is a test.\n");
fclose($fp);
/* Outputs:  VGhpcyBpcyBhIHRlc3QuCg==  */

$param = array('line-length' => 8, 'line-break-chars' => "\r\n");
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode', STREAM_FILTER_WRITE, $param);
fwrite($fp, "This is a test.\n");
fclose($fp);
/* Outputs:  VGhpcyBp
          :  cyBhIHRl
          :  c3QuCg==  */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-decode');
fwrite($fp, "VGhpcyBpcyBhIHRlc3QuCg==");
fclose($fp);
/* Outputs:  This is a test.  */
?>

convert.quoted-printable-encode и convert.quoted-printable-decode Использование decode-версии этого фильтра эквивалентно обработке всех данных потока функцией quoted_printable_decode(). У фильтра convert.quoted-printable-encode нету эквивалентной функции. convert.quoted-printable-encode поддерживает аргументы, переданные в виде ассоциативного массива. В дополнение к аргументам, поддерживаемыми convert.base64-encode, convert.quoted-printable-encode также поддерживает boolean-аргументы binary и force-encode-first. convert.base64-decode поддерживает лишь аргумент line-break-chars в качестве подсказки для чистки закодированных данных.

Пример N-6. convert.quoted-printable-encode & convert.quoted-printable-decode

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.quoted-printable-encode');
fwrite($fp, "This is a test.\n");
/* Outputs:  =This is a test.=0A  */
?>

Пред. | Начало | След.
Список доступных фильтров | Уровень выше | Компрессионные фильтры


Компрессионные фильтры

В то время, как Компрессионные обвёртки обеспечивают способ создания gzip- и bz2-совместимых файлов в локальной файловой системе, они не предоставляют общих средств средств для компрессии в сетевых потоках, как не предоставляют и средств для создания потока без компрессии с последующим превращением в компрессируемый. Для этих целей к любым потоковым ресурсам в любое время могут применяться компрессионные фильтры.

Замечание: Компрессионные фильтры не генерируют заголовков и окончаний, которые используют утилиты командной строки, такие как gzip. Они просто компрессируют (сжимают) и декомпрессируют (разжимают) порции данных в компрессируемом потоке данных.

zlib.deflate (компрессия) и zlib.inflate (декомпрессия) являются реализациями компрессионных методов, описаных в RFC 1951. Фильтр deflate принимает три аргумента, переданных в виде ассоциативного массива. level определяет, какой уровень компрессии использовать (1-9). Повышение этого значения приведёт к уменьшению объёмов данных за счёт увеличения времени обработки. Существуют так же два специальных уровня компрессии: 0 (для отключения компрессии) и -1 (внутреннее значение по умолчанию библиотеки zlib -- на текущий момент равно 6). window - это логарифм размера окна диапазона сжатия, где база логарифма составляет 2. Высокие значения (вплоть до 15 -- 32768 байт) приводят к улучшению компрессии за счёт роста необходимой памяти, в то время как низкие значения (вплоть дл 9 -- 512 байт) приводят к ухудшению компрессии за счёт уменьшения необходимой памяти. Значением аргумента window по умолчанию на текущий момент является 15. memory определяет масштаб резервируемой памяти. Допустимые значения находятся в диапазоне от 1 (минимальное резервирование) до 9 (максимальное резервирование). Такое резервирование памяти влияет только на скорость и не влияет на размер генерируемых данных..

Замечание: Так как уровень компрессии является наиболее часто используемым аргументом, вы можете передать только его в качестве обычного целого числа (integer), вместо того чтобы передавать массив из одного элемента.

Компрессионные фильтры zlib.* доступны с версии PHP 5.1.0, если включена поддержка zlib. Они так же доступны в качестве обратного порта для версий 5.0.x путём установки пакета zlib_filter из PECL. Эти фильтры не доступны в PHP 4.

Пример N-7. zlib.deflate и zlib.inflate

<?php
$params = array('level' => 6, 'window' => 15, 'memory' => 9);

$original_text = "This is a test.\nThis is only a test.\nThis is not an important string.\n";
echo "The original text is " . strlen($original_text) . " characters long.\n";

$fp = fopen('test.deflated', 'w');
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, $params);
fwrite($fp, $original_text);
fclose($fp);

echo "The compressed file is " . filesize('test.deflated') . " bytes long.\n";
echo "The original text was:\n";
/* Use readfile and zlib.inflate to decompress on the fly */
readfile('php://filter/zlib.inflate/resource=test.deflated');

/* Generates output:

The original text is 70 characters long.
The compressed file is 56 bytes long.
The original text was:
This is a test.
This is only a test.
This is not an important string.

 */
?>

Пример N-8. Упрощённое использование zlib.deflate

<?php
$original_text = "This is a test.\nThis is only a test.\nThis is not an important string.\n";
echo "The original text is " . strlen($original_text) . " characters long.\n";

$fp = fopen('test.deflated', 'w');
/* Here "6" indicates compression level 6 */
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE, 6);
fwrite($fp, $original_text);
fclose($fp);

echo "The compressed file is " . filesize('test.deflated') . " bytes long.\n";

/* Generates output:

The original text is 70 characters long.
The compressed file is 56 bytes long.

 */
?>

bzip2.compress и bzip2.decompress работают точно так же, как и фильтры zlib, онисанные выше. Фильтр bzip2.compress принимает два аргумента в виде элементов ассоциативного массива: blocks является целочисленным (integer) значением в диапазоне от 1 до 9 и указывает на количество 100-килобайтовых блоков памяти для резервирования в качестве рабочего пространства. work - это так же целочисленное (integer) значение в диапазоне от 0 до 250, определяющее сколько усилий нужно потратить на обычный метод компрессии перед переключением на медленный, но более надёжный метод. Изменение этого параметра влияет только на скорость компрессии. Ни размер сжатого результата, ни используемый объём памяти не изменяются при помощи этой настройки. Значение 0 указывает библиотеке bzip использовать собственное внутреннее значение по умолчанию. Фильтр bzip2.decompress принимает всего один аргумент, который может быть передан либо как обычное boolean-значение, либо как элемент small ассоциативного массива. Когда small установлен в TRUE, библиотека bzip совершит декомпрессию с минимальным расходом памяти за счёт понижения скорости.

Компрессионные фильтры bzip2.* доступны с версии PHP 5.1.0, если включена поддержка bz2. Они так же доступны в качестве обратного порта для версий 5.0.x путём установки пакета bz2_filter из PECL. Эти фильтры не доступны в PHP 4.

Пример N-9. bzip2.compress и bzip2.decompress

<?php
$param = array('blocks' => 9, 'work' => 0);

echo "The original file is " . filesize('LICENSE') . " bytes long.\n";

$fp = fopen('LICENSE.compressed', 'w');
stream_filter_append($fp, 'bzip2.compress', STREAM_FILTER_WRITE, $param);
fwrite($fp, file_get_contents('LICENSE'));
fclose($fp);

echo "The compressed file is " . filesize('LICENSE.compressed') . " bytes long.\n";

/* Generates output:

The original text is 3288 characters long.
The compressed file is 1488 bytes long.

 */
?>

Пред. | Начало | След.
Преобразовывающие фильтры | Уровень выше | Шифрующие фильтры


Шифрующие фильтры

mcrypt.* и mdecrypt.* обеспечивают симметрическое шифрование и дешифрование при помощи libmcrypt. Оба набора фильтров поддерживают те же алгоритмы, что и расширение mcrypt в виде mcrypt.ciphername, где ciphername - это название шифра, как если бы оно передавалось функции mcrypt_module_open(). Также доступны следующие пять параметров:

Таблица N-1. Параметры фильтра mcrypt

Параметр | Обязателен? | По умолчанию | Пример значения
mode | Нет | cbc | cbc, cfb, ecb, nofb, ofb, stream
algorithms_dir | Нет | ini_get('mcrypt.algorithms_dir') | Путь к модулям алгоритмов
modes_dir | Нет | ini_get('mcrypt.modes_dir') | Путь к модулям режимов
iv | Да | N/A | Обычно 8, 16 или 32 байта бинарных данных. Зависит от шифра
key | Да | N/A | Обычно 8, 16 или 32 байта бинарных данных. Зависит от шифра

Пример N-10. Шифрование вывода в файл используя 3DES

<?php
$passphrase = 'My secret';

/* Turn a human readable passphrase
 * into a reproducable iv/key pair
 */
$iv = substr(md5('iv'.$passphrase, true), 0, 8);
$key = substr(md5('pass1'.$passphrase, true) .
               md5('pass2'.$passphrase, true), 0, 24);
$opts = array('iv'=>$iv, 'key'=>$key);

$fp = fopen('secert-file.enc', 'wb');
stream_filter_append($fp, 'mcrypt.tripledes', STREAM_FILTER_WRITE, $opts);
fwrite($fp, 'Secret secret secret data');
fclose($fp);
?>

Пример N-11. Чтение зашифрованного файла

<?php
$passphrase = 'My secret';

/* Turn a human readable passphrase
 * into a reproducable iv/key pair
 */
$iv = substr(md5('iv'.$passphrase, true), 0, 8);
$key = substr(md5('pass1'.$passphrase, true) .
               md5('pass2'.$passphrase, true), 0, 24);
$opts = array('iv'=>$iv, 'key'=>$key);

$fp = fopen('secert-file.enc', 'rb');
stream_filter_append($fp, 'mdecrypt.tripledes', STREAM_FILTER_WRITE, $opts);
$data = rtrim(stream_get_contents($fp));
fclose($fp);

echo $data;
?>

Пред. | Начало | След.
Компрессионные фильтры | Уровень выше | Список поддерживаемых транспортных протоколов


Список поддерживаемых транспортных протоколов

Руководство по PHP
Пред. След.

Приложение O. Список поддерживаемых транспортных протоколов

Содержание
Интернет-сокеты: TCP, UDP, SSL, and TLS
Unix-сокеты: UNIX и UDG

Нижеследующий список содержит информацию о протоколах передачи встроенных в PHP и готовых для использования в функциями работы с сокетами, такими как fsockopen() и stream_socket_client(). Эти протоколы не применяются в Расширении для работы с Сокетами.

Для получения списка поддерживаемых протоколов передачи, встроенных в вашу версию PHP, используйте функцию stream_get_transports().

Интернет-сокеты: TCP, UDP, SSL, and TLS

PHP 3, PHP 4. ssl:// и tls:// начиная с PHP 4.3

Замечание: Если транспортный протокол не указан, будет использован tcp://.

  • 127.0.0.1

  • fe80::1

  • www.example.com

  • tcp://127.0.0.1

  • tcp://fe80::1

  • tcp://www.example.com

  • udp://www.example.com

  • ssl://www.example.com

  • tls://www.example.com

Интернет-сокеты требуют указания порта в дополнение к адресу. В случае fsockopen(), порт передаётся вторым параметром и не затрагивает строку адреса. При работе с stream_socket_client() и другими близкими функциями, как и в случае со стандартными URL, порт указывается в конце адреса, отделённый двоеточием.

  • tcp://127.0.0.1:80

  • tcp://[fe80::1]:80

  • tcp://www.example.com:80

IPv6 численные адреса с указанием порта: Во втором примере выше, IPv6 адрес, заключён в квадратные скобки: [fe80::1]. Это сделано для того, чтобы отличить двоеточие в адресе от двоеточия при указании порта.

Протоколы ssl:// and tls:// (доступные только если поддержка openssl включена в PHP) являются расширениями tcp://, дополняющими его SSL-шифрованием. Начиная с PHP 4.3.0, для работы с ssl-протоколами, PHP должен быть собран с поддержкой OpenSSL, в PHP 5.0.0 он может быть представлен как модуль.

Таблица O-1. Параметры для протоколов ssl:// и tls:// (начиная с PHP 4.3.2)

Имя | Использование | По умолчанию
verify_peer | TRUE или FALSE. Требует проверки SSL-сертификата. | FALSE
allow_self_signed | TRUE или FALSE. Позволяет использовать само-подписанные сертификаты. | FALSE
cafile | Расположение в локальной файловой системе файла сертификата, который будет использовать verify_peer для аутентифицирования идентификатора удалённого сервера(клиента). |
capath | Если cafile не указан, или сертификат не найден, поиск подходящего сертификата продолжается в директории capath. Значением директивы должен быть путь к директории, содержащей сертификаты. |
local_cert | Путь к локальному файлу сертификата. Это должен быть PEM-энкодированный файл, содержащий ваш сертификат и частный ключ. Опционально он может содержать цепочку сертфиикатов издателей. |
passphrase | Ключевое слово, по которому был энкодирован ваш local_cert. |
CN_match | Общее название (Common Name), которого мы ожидаем. PHP будет сравнивать, используя вайлд-карды. Если общее название не подходит, соединение будет разорвано. |

Замечание: Постольку поскольку ssl:// протокол является базисом для https:// и ftps:// врапперов, все директивы ssl:// применяются как для https://, так и для ftps://.

Пред. | Начало | След.
Шифрующие фильтры | Уровень выше | Unix-сокеты: UNIX и UDG


Unix-сокеты: UNIX и UDG

unix:// начиная с PHP 3, udg:// начиная с PHP 5

  • unix:///tmp/mysock

  • udg:///tmp/mysock

unix:// даёт возможность использовать unix-сокеты, а udg:// предоставляет альтернативный способ передачи данных в них, с использованием датаграм.

Unix-сокеты, в отличие от Интернет-сокетов не требуют указания порта. В случае fsockopen() параметр portno должен быть равен 0.

Пред. | Начало | След.
Список поддерживаемых транспортных протоколов | Уровень выше | Таблица сравнения типов в PHP


Таблица сравнения типов в PHP

Руководство по PHP
Пред. След.

Приложение P. Таблица сравнения типов в PHP

Следующие таблицы демонстрируют работу PHP с типами переменных и операторами сравнения, как в случае свободного, так и в случае строгого сравнения. Также эта информация относится к разделу документации по приведению типов. Вдохновением на создание этого раздела мы обязаны различным комментариям пользователей и работе над BlueShoes.

До осмотра таблиц, важно знать и понимать типы переменных и их значения. К примеру, "42" -- строка, в то время как 42 -- целое. FALSE -- логическое, а "false" -- строка.

Замечание: HTML-формы не передают тип переменной: они всегда передают строки. Для проверки является ли строка числом, используйте функцию is_numeric().

Замечание: Использование if ($x) пока $x не определена сгенерирует ошибку E_NOTICE. Вместо этого используйте функцию empty() или isset() и/или инициализируйте переменную.

Таблица P-1. Сравнение типов $x и результатов функций PHP, связанных с типами

Выражение | gettype() | empty() | is_null() | isset() | логическое : if($x)
$x = ""; | строка | TRUE | FALSE | TRUE | FALSE
$x = NULL | NULL | TRUE | TRUE | FALSE | FALSE
var $x; | NULL | TRUE | TRUE | FALSE | FALSE
$x неопределена | NULL | TRUE | TRUE | FALSE | FALSE
$x = array(); | массив | TRUE | FALSE | TRUE | FALSE
$x = false; | логическое | TRUE | FALSE | TRUE | FALSE
$x = true; | логическое | FALSE | FALSE | TRUE | TRUE
$x = 1; | целое | FALSE | FALSE | TRUE | TRUE
$x = 42; | целое | FALSE | FALSE | TRUE | TRUE
$x = 0; | целое | TRUE | FALSE | TRUE | FALSE
$x = -1; | целое | FALSE | FALSE | TRUE | TRUE
$x = "1"; | строка | FALSE | FALSE | TRUE | TRUE
$x = "0"; | строка | TRUE | FALSE | TRUE | FALSE
$x = "-1"; | строка | FALSE | FALSE | TRUE | TRUE
$x = "php"; | строка | FALSE | FALSE | TRUE | TRUE
$x = "true"; | строка | FALSE | FALSE | TRUE | TRUE
$x = "false"; | строка | FALSE | FALSE | TRUE | TRUE

Таблица P-2. Гибкое сравнение с помощью ==

 | TRUE | FALSE | 1 | 0 | -1 | "1" | "0" | "-1" | NULL | array() | "php"
TRUE | TRUE | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE
FALSE | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE
1 | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
0 | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | FALSE | TRUE
-1 | TRUE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE
"1" | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
"0" | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
"-1" | TRUE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE
NULL | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | TRUE | TRUE | FALSE
array() | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE
"php" | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE

Таблица P-3. Жёсткое сравнение с помощью ===

 | TRUE | FALSE | 1 | 0 | -1 | "1" | "0" | "-1" | NULL | array() | "php"
TRUE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
1 | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
0 | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
-1 | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
"1" | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
"0" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
"-1" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE
NULL | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE
array() | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE
"php" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE

Заметка о PHP 3.0: Строка "0" считалась не пустой, в PHP4 ситуация изменилась: строка трактуется как пустая.

Пред. | Начало | След.
Unix-сокеты: UNIX и UDG | Уровень выше | List of Parser Tokens


List of Parser Tokens

Руководство по PHP
Пред. След.

Приложение Q. List of Parser Tokens

Various parts of the PHP language are represented internally by types like T_SR. PHP outputs identifiers like this one in parse errors, like "Parse error: unexpected T_SR, expecting ',' or ';' in script.php on line 10."

You're supposed to know what T_SR means. For everybody who doesn't know that, here is a table with those identifiers, PHP-syntax and references to the appropriate places in the manual.

Таблица Q-1. Tokens

Token | Syntax | Reference
T_ABSTRACT | abstract | Разд. Абстрактные классы в Гл. 19 (available since PHP 5.0.0)
T_AND_EQUAL | &= | assignment operators
T_ARRAY | array() | array(), array syntax
T_ARRAY_CAST | (array) | type-casting
T_AS | as | foreach
T_BAD_CHARACTER |  | anything below ASCII 32 except \t (0x09), \n (0x0a) and \r (0x0d)
T_BOOLEAN_AND | && | logical operators
T_BOOLEAN_OR | || | logical operators
T_BOOL_CAST | (bool) or (boolean) | type-casting
T_BREAK | break | break
T_CASE | case | switch
T_CATCH | catch | Гл. 20 (available since PHP 5.0.0)
T_CHARACTER |  |
T_CLASS | class | classes and objects
T_CLONE | clone | classes and objects. PHP 5 only.
T_CLOSE_TAG | ?> or %> |
T_COMMENT | // or #, and /* */ on PHP 5 | comments
T_CONCAT_EQUAL | .= | assignment operators
T_CONST | const |
T_CONSTANT_ENCAPSED_STRING | "foo" or 'bar' | string syntax
T_CONTINUE | continue |
T_CURLY_OPEN |  |
T_DEC | -- | incrementing/decrementing operators
T_DECLARE | declare | declare
T_DEFAULT | default | switch
T_DIV_EQUAL | /= | assignment operators
T_DNUMBER | 0.12, etc | floating point numbers
T_DOC_COMMENT | /** */ | PHPDoc style comments (PHP 5 only)
T_DO | do | do..while
T_DOLLAR_OPEN_CURLY_BRACES | ${ | complex variable parsed syntax
T_DOUBLE_ARROW | => | array syntax
T_DOUBLE_CAST | (real), (double) or (float) | type-casting
T_DOUBLE_COLON | :: | see T_PAAMAYIM_NEKUDOTAYIM below
T_ECHO | echo | echo()
T_ELSE | else | else
T_ELSEIF | elseif | elseif
T_EMPTY | empty | empty()
T_ENCAPSED_AND_WHITESPACE |  |
T_ENDDECLARE | enddeclare | declare, alternative syntax
T_ENDFOR | endfor | for, alternative syntax
T_ENDFOREACH | endforeach | foreach, alternative syntax
T_ENDIF | endif | if, alternative syntax
T_ENDSWITCH | endswitch | switch, alternative syntax
T_ENDWHILE | endwhile | while, alternative syntax
T_END_HEREDOC |  | heredoc syntax
T_EVAL | eval() | eval()
T_EXIT | exit or die | exit(), die()
T_EXTENDS | extends | extends, classes and objects
T_FILE | __FILE__ | constants
T_FINAL | final | Разд. Ключевое слово "final" в Гл. 19 (available since PHP 5.0.0)
T_FOR | for | for
T_FOREACH | foreach | foreach
T_FUNCTION | function or cfunction | functions
T_GLOBAL | global | variable scope
T_HALT_COMPILER | __halt_compiler() | __halt_compiler (available since PHP 5.1.0)
T_IF | if | if
T_IMPLEMENTS | implements | Разд. Интерфейсы объектов в Гл. 19 (available since PHP 5.0.0)
T_INC | ++ | incrementing/decrementing operators
T_INCLUDE | include() | include()
T_INCLUDE_ONCE | include_once() | include_once()
T_INLINE_HTML |  |
T_INSTANCEOF | instanceof | type operators (PHP5 only)
T_INT_CAST | (int) or (integer) | type-casting
T_INTERFACE | interface | Разд. Интерфейсы объектов в Гл. 19 (available since PHP 5.0.0)
T_ISSET | isset() | isset()
T_IS_EQUAL | == | comparison operators
T_IS_GREATER_OR_EQUAL | >= | comparison operators
T_IS_IDENTICAL | === | comparison operators
T_IS_NOT_EQUAL | != or <> | comparison operators
T_IS_NOT_IDENTICAL | !== | comparison operators
T_IS_SMALLER_OR_EQUAL | <= | comparison operators
T_LINE | __LINE__ | constants
T_LIST | list() | list()
T_LNUMBER | 123, 012, 0x1ac, etc | integers
T_LOGICAL_AND | and | logical operators
T_LOGICAL_OR | or | logical operators
T_LOGICAL_XOR | xor | logical operators
T_MINUS_EQUAL | -= | assignment operators
T_ML_COMMENT | /* and */ | comments (PHP 4 only)
T_MOD_EQUAL | %= | assignment operators
T_MUL_EQUAL | *= | assignment operators
T_NEW | new | classes and objects
T_NUM_STRING |  |
T_OBJECT_CAST | (object) | type-casting
T_OBJECT_OPERATOR | -> | classes and objects
T_OLD_FUNCTION | old_function | old_function
T_OPEN_TAG | <?php, <? or <% | escaping from HTML
T_OPEN_TAG_WITH_ECHO | <?= or <%= | escaping from HTML
T_OR_EQUAL | |= | assignment operators
T_PAAMAYIM_NEKUDOTAYIM | :: | ::. Also defined as T_DOUBLE_COLON.
T_PLUS_EQUAL | += | assignment operators
T_PRINT | print() | print()
T_PRIVATE | private | classes and objects. PHP 5 only.
T_PUBLIC | public | classes and objects. PHP 5 only.
T_PROTECTED | protected | classes and objects. PHP 5 only.
T_REQUIRE | require() | require()
T_REQUIRE_ONCE | require_once() | require_once()
T_RETURN | return | returning values
T_SL | << | bitwise operators
T_SL_EQUAL | <<= | assignment operators
T_SR | >> | bitwise operators
T_SR_EQUAL | >>= | assignment operators
T_START_HEREDOC | <<< | heredoc syntax
T_STATIC | static | variable scope
T_STRING |  |
T_STRING_CAST | (string) | type-casting
T_STRING_VARNAME |  |
T_SWITCH | switch | switch
T_THROW | throw | Гл. 20 (available since PHP 5.0.0)
T_TRY | try | Гл. 20 (available since PHP 5.0.0)
T_UNSET | unset() | unset()
T_UNSET_CAST | (unset) | (not documented; casts to NULL)
T_USE | use | (not implemented)
T_VAR | var | classes and objects
T_VARIABLE | $foo | variables
T_WHILE | while | while, do..while
T_WHITESPACE |  |
T_XOR_EQUAL | ^= | assignment operators
T_FUNC_C | __FUNCTION__ | constants, since PHP 4.3.0
T_CLASS_C | __CLASS__ | constants, since PHP 4.3.0

See also token_name().

Пред. | Начало | След.
Таблица сравнения типов в PHP | Уровень выше | Об этом руководстве


Об этом руководстве

Руководство по PHP
Пред. След.

Приложение R. Об этом руководстве

Содержание
Форматы
О заметках пользователей
How to read a function definition (prototype)
PHP versions documented in this manual
Как узнать больше о PHP
Как помочь в написании документации
Как создаются форматы документации
Переводы

Форматы

Руководство по PHP доступно в нескольких форматах. Эти форматы могут быть разделены на две группы: форматы для чтения в онлайн и форматы, доступные для загрузки.

Замечание: Некоторые издательства выпустили печатные версии этого руководства. Однако, мы не рекомендуем пользоваться ими вследствие их быстрого устаревания.

Вы можете пользоваться руководством в он-лайн по адресу http://www.php.net/, а также на многочисленных сайтах-зеркалах. Чтобы обеспечить наиболее высокую скорость загрузки, вам нужно выбрать ближайший к вам сайт-зеркало. Вы можете пользоваться руководством в виде обычного HTML (готового для распечатки) или же в виде, предлагающем оформление самого сайта PHP.

Преимуществом он-лайн руководства над большинством офф-лайн форматов является интеграция с замечаниями пользователей. Очевидным недостатком является то, что вам нужно находиться в он-лайне, чтобы пользоваться руководством в он-лайн форматах.

Существуют несколько форматов для использования в офф-лайне, и вы можете выбрать формат, наиболее подходящий для использования в вашей операционной системе и отвечающий вашим читательским предпочтениям. Чтобы узнать больше о том, каким образом создается такое количество форматов руководства, обратитесь к разделу 'Как мы создаем форматы руководства'.

Наиболее кросс-платформенными форматами этого руководства являются формат HTML и формат обычного текста. Формат HTML доступен как в виде одного HTML-файла, так и в виде архива, содержащего несколько тысяч файлов, каждый из которых является отдельной главой руководства. Форматы HTML и обычного текста доступны в качестве файлов tar, упакованных архиватором bzip2.

Другим популярным кросс-платформенным форматом, к тому же наиболее подходящим для печати, является PDF (также известный как Adobe Acrobat). Но прежде чем вы начнете загрузку этого формата и нажмете на кнопку Печать, имейте в виду, что руководство состоит примерно из 2000 страниц и постоянно обновляется.

Замечание: Если у вас еще нет программы для просмотра формата PDF, вам нужно будет загрузить Adobe Acrobat Reader.

Для владельцев Palm-совместимых компьютеров идеально подойдут форматы руководства Palm document и iSilo. Вы можете захватить с собой ваш Palm, например, на совещание и использовать программу чтения форматов DOC или iSilo как удобный справочник или чтобы просто освежить в памяти какие-либо сведения о PHP.

На платформах Windows доступна версия руководства в формате HTML, который может быть просмотрен с помощью приложения Windows HTML Help. Эта версия предусматривает поиск по тексту руководства, полный список тем и поддержку использования закладок. Многие среды разработки PHP-программ в Windows также используют эту версию для легкости доступа.

Замечание: В данный момент проект Visual Basic для Linux находится на стадии планирования и будет включать CHM Creator и CHm Viewer для Linux. Если вы заинтересованы в том, как идет разработка, посетите страничку проекта на SourceForge.net.

Пред. | Начало | След.
List of Parser Tokens | Уровень выше | О заметках пользователей


О заметках пользователей

Заметки пользователей играют большую роль в процессе создания этого руководства. Позволяя читателям высылать нам примеры, выявленные опечатки и другие сведения с помощью их броузеров, мы имеем возможность добавить эти замечания в текст руководства. Пока замечания пользователей не были добавлены в руководство, с ними можно ознакомиться в он-лайн и в некоторых офф-лайн форматах.

Замечание: Заметки пользователей не подвергаются модерации перед тем, как стать публично доступными, таким образом, качество написания примеров кода и даже их корректность не может быть гарантирована. (Так же, как не может быть гарантировано качество и точность собственно текста руководства).

Пред. | Начало | След.
Об этом руководстве | Уровень выше | How to read a function definition (prototype)


How to read a function definition (prototype)

Each function in the manual is documented for quick reference. Knowing how to read and understand the text will make learning PHP much easier. Rather than relying on examples or cut/paste, you will want to know how to read function definitions (prototypes). Let's begin:

Prerequisite: Basic understanding of types: Although PHP is a loosely typed language, it's important to have a basic understanding of types as they have important meaning.

Function definitions tell us what type of value is returned. Let's use the definition for strlen() as our first example:

strlen

(PHP 3, PHP 4, PHP 5)
strlen -- Get string length

Description
int strlen ( string str )

Returns the length of string.

Таблица R-1. Explanation of a function definition

Part | Description
strlen | The function name.
(PHP 3, PHP 4, PHP 5) | strlen() has been around in all versions of PHP 3, PHP 4 and PHP 5
int | Type of value this function returns, which is an integer (i.e. the length of a string is measured in numbers).
( string str ) | The first (and in this case the only) parameter/argument for this function is named str, and it's a string.

We could rewrite the above function definition in a generic way:

returned type    function name    ( parameter type   parameter name )

Many functions take on multiple parameters, such as in_array(). Its prototype is as follows:

bool in_array ( mixed needle, array haystack [, bool strict])

What does this mean? in_array() returns a boolean value, TRUE on success (if the needle was found in the haystack) or FALSE on failure (if the needle was not found in the haystack). The first parameter is named needle and it can be of many different types, so we call it "mixed". This mixed needle (what we're looking for) can be either a scalar value (string, integer, or float), or an array. haystack (the array we're searching in) is the second parameter. The third optional parameter is named strict. All optional parameters are seen in [ brackets ]. The manual states that the strict parameter defaults to boolean FALSE. See the manual page on each function for details on how they work.

There are also functions with more complex PHP version information. Take html_entity_decode() as an example:

(PHP 4 >= 4.3.0, PHP 5)

This means that this function was not available in PHP 3, and is only available in a released version since PHP 4.3.0.

Пред. | Начало | След.
О заметках пользователей | Уровень выше | PHP versions documented in this manual


PHP versions documented in this manual

This documentation contains information about bot PHP 4 and PHP 5, with some added migration and compatibility notes regarding PHP 3. Behaviour, parameter, return value and other changes between different PHP versions are documented in notes and inline text in the manual.

You may find documentation pieces for the CVS version of PHP, which always means the very latest development version available through the CVS version handling system. If you are not a developer of PHP itself, and you are not keen on using the very latest development version of PHP, features marked with the "available in CVS" wording are not accessible to you. These features, though, will probably be available in the next stable version of PHP. If you would like to download the CVS version, see the anonymous CVS access page.

You may also encounter documentation for a PHP version which is not released (something like PHP 5.0.0 while the latest stable version is 4.3.x). Most of the time, this is not an error in the documentation. Explanation is often added for features not available in the current PHP release, but which will be available in a known future PHP version.

Пред. | Начало | След.
How to read a function definition (prototype) | Уровень выше | Как узнать больше о PHP


Как узнать больше о PHP

Это руководство не пытается охватить вопросы общего программирования. Если вы являетесь новичком или даже начинающим программистом, написание PHP-программ может показаться вам трудным, если вы будете использовать только это руководство. Вам, скорее всего, может понадобиться материал, более подходящий для начинающих. По адресу http://www.php.net/books.php вы можете найти список книг по теме PHP.

Существует несколько списков рассылки, предназначенных для обсуждения всех аспектов программирования на PHP. Если вы чувствуете, что не можете найти решение какой-либо проблемы, кто-нибудь из подписчиков списка, вполне вероятно, сможет вам помочь. За перечислением доступных списков рассылки вы можете обратиться по адресу http://www.php.net/support.php, кроме того, там вы сможете найти архивы рассылок и другие ресурсы он-лайн поддержки. Кроме того, по адресу http://www.php.net/links.php доступен список веб-сайтов, посвященных статьям по PHP, форумам и галереям кода.

Пред. | Начало | След.
PHP versions documented in this manual | Уровень выше | Как помочь в написании документации


Как помочь в написании документации

Существуют три способа, чтобы помочь нам в улучшении документации.

Если вам встречаются ошибки в этом руководстве, сообщайте о них с помощью системы сообщения об ошибках, доступной по адресу http://bugs.php.net/. Классифицируйте ваше сообщение как "Documentation Problem" ("Ошибка в документации"). Также вы можете сообщать об ошибках, относящихся к какому-либо определенному формату руководства.

Замечание: Пожалуйста, не используйте систему сообщения об ошибках для того, чтобы получить помощь какого-либо рода. Вместо этого пользуйтесь списками рассылки или сайтами сообщества PHP, упомянутыми выше.

Не используйте систему аннотации для сообщений об ошибках. Более подробные сведения о заметках пользователей вы можете получить, ознакомившись с главой 'О заметках пользователей' этого приложения.

Если вы знаете английский язык и не являетесь его носителем, вы можете участвовать в переводе руководства. Если вы собираетесь приступить к переводу, обратитесь к http://doc.php.net/php/dochowto/.

Пред. | Начало | След.
Как узнать больше о PHP | Уровень выше | Как создаются форматы документации


Как создаются форматы документации

Это руководство написано на XML с использованием DocBook XML DTD, DSSSL (Document Style and Semantics Specification Language) для форматирования и (экспериментально) XSLT (Extensible Stylesheet Language Transformations) в целях поддержки и форматирования.

Использование XML в качестве единственного исходного формата позволяет нам создавать документацию во многих форматах. Утилитами для форматирования форматов HTML и TeX являются Jade, написанная James Clark и The Modular DocBook Stylesheets написанная Norman Walsh. Для создания руководства в формате Windows HTML Help мы используем Microsoft HTML Help Workshop и, конечно, собственно PHP для дополнительных преобразований и форматирования.

Вы можете загрузить руководство на многих языках и во многих форматах, включая обычный текст, обычный HTML, PDF, PalmPilot DOC, PalmPilot iSilo и Windows HTML Help, обратившись по адресу http://www.php.net/docs.php. Материалы, предназначенные для загрузки, обновляются автоматически по мере обновления исходного текста.

За более подробной информацией о получении исходного кода в формате XML обратитесь по адресу http://cvs.php.net/. Документация находится в модуле phpdoc.

Пред. | Начало | След.
Как помочь в написании документации | Уровень выше | Переводы


Переводы

Руководство по PHP доступно не только в нескольких форматах, но и на различных языках. Сначала текст руководства пишется на английском, а затем команды пользователей по всему миру переводят его на свой язык. Если перевод документации какой-либо функции или главы еще не был завершен, система сборки руководства использует соответствующий английский вариант.

Пользователи, осуществляющие перевод документации, используют исходный код в формате XML, доступный по адресу http://cvs.php.net/ и переводят его на свой родной язык. Для перевода не используются форматы HTML, обычного текста или PDF. Преобразованием XML в читабельные форматы занимается система сборки документации.

Замечание: Если вы хотите принять участие в переводе документации на ваш родной язык, присоединитесь к команде перевода, подписавшись на список рассылки phpdoc: вышлите пустое сообщение на адрес phpdoc-subscribe@lists.php.net. Адрес списка рассылки - phpdoc@lists.php.net. Вышлите в рассылку сообщение, что вы заинтересованы в участии в переводе руководства и кто-нибудь поможет вам начать новый перевод или найти команду, занимающуюся переводом на ваш язык.

В настоящее время руководство, частично или в полной мере переведенное, существует на следующих языках: бразильском, португальском, чешском, датском, финском, французском, немецком, венгерском, итальянском, японском, корейском, польском, румынском, русском, испанском и турецком.

Все эти версии руководства доступны для загрузки по адресу http://www.php.net/docs.php.

Пред. | Начало | След.
Как создаются форматы документации | Уровень выше | Open Publication License


Open Publication License

Руководство по PHP
Пред. След.

Приложение S. Open Publication License

Содержание
I. REQUIREMENTS ON BOTH UNMODIFIED AND MODIFIED VERSIONS
II. COPYRIGHT
III. SCOPE OF LICENSE
IV. REQUIREMENTS ON MODIFIED WORKS
V. GOOD-PRACTICE RECOMMENDATIONS
VI. LICENSE OPTIONS

v1.0, 8 June 1999

I. REQUIREMENTS ON BOTH UNMODIFIED AND MODIFIED VERSIONS

The Open Publication works may be reproduced and distributed in whole or in part, in any medium physical or electronic, provided that the terms of this license are adhered to, and that this license or an incorporation of it by reference (with any options elected by the author(s) and/or publisher) is displayed in the reproduction.

Proper form for an incorporation by reference is as follows:

Copyright (c) <year> by <author's name or designee>. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, vX.Y or later (the latest version is presently available at http://www.opencontent.org/openpub/

The reference must be immediately followed with any options elected by the author(s) and/or publisher of the document (see section VI). Commercial redistribution of Open Publication-licensed material is permitted. Any publication in standard (paper) book form shall require the citation of the original publisher and author. The publisher and author's names shall appear on all outer surfaces of the book. On all outer surfaces of the book the original publisher's name shall be as large as the title of the work and cited as possessive with respect to the title.

Пред. | Начало | След.
Переводы | Уровень выше | II. COPYRIGHT


II. COPYRIGHT

The copyright to each Open Publication is owned by its author(s) or designee.

Пред. | Начало | След.
Open Publication License | Уровень выше | III. SCOPE OF LICENSE


III. SCOPE OF LICENSE

The following license terms apply to all Open Publication works, unless otherwise explicitly stated in the document.

Mere aggregation of Open Publication works or a portion of an Open Publication work with other works or programs on the same media shall not cause this license to apply to those other works. The aggregate work shall contain a notice specifying the inclusion of the Open Publication material and appropriate copyright notice.

SEVERABILITY. If any part of this license is found to be unenforceable in any jurisdiction, the remaining portions of the license remain in force.

NO WARRANTY. Open Publication works are licensed and provided "as is" without warranty of any kind, express or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose or a warranty of non-infringement.

Пред. | Начало | След.
II. COPYRIGHT | Уровень выше | IV. REQUIREMENTS ON MODIFIED WORKS


IV. REQUIREMENTS ON MODIFIED WORKS

All modified versions of documents covered by this license, including translations, anthologies, compilations and partial documents, must meet the following requirements:

  1. The modified version must be labeled as such.

  2. The person making the modifications must be identified and the modifications dated.

  3. Acknowledgement of the original author and publisher if applicable must be retained according to normal academic citation practices.

  4. The location of the original unmodified document must be identified.

  5. The original author's (or authors') name(s) may not be used to assert or imply endorsement of the resulting document without the original author's (or authors') permission.

Пред. | Начало | След.
III. SCOPE OF LICENSE | Уровень выше | V. GOOD-PRACTICE RECOMMENDATIONS


V. GOOD-PRACTICE RECOMMENDATIONS

In addition to the requirements of this license, it is requested from and strongly recommended of redistributors that:

  1. If you are distributing Open Publication works on hardcopy or CD-ROM, you provide email notification to the authors of your intent to redistribute at least thirty days before your manuscript or media freeze, to give the authors time to provide updated documents. This notification should describe modifications, if any, made to the document.

  2. All substantive modifications (including deletions) be either clearly marked up in the document or else described in an attachment to the document.

  3. Finally, while it is not mandatory under this license, it is considered good form to offer a free copy of any hardcopy and CD-ROM expression of an Open Publication-licensed work to its author(s).

Пред. | Начало | След.
IV. REQUIREMENTS ON MODIFIED WORKS | Уровень выше | VI. LICENSE OPTIONS


VI. LICENSE OPTIONS

The author(s) and/or publisher of an Open Publication-licensed document may elect certain options by appending language to the reference to or copy of the license. These options are considered part of the license instance and must be included with the license (or its incorporation by reference) in derived works.

A. To prohibit distribution of substantively modified versions without the explicit permission of the author(s). "Substantive modification" is defined as a change to the semantic content of the document, and excludes mere changes in format or typographical corrections.

To accomplish this, add the phrase `Distribution of substantively modified versions of this document is prohibited without the explicit permission of the copyright holder.' to the license reference or copy.

B. To prohibit any publication of this work or derivative works in whole or in part in standard (paper) book form for commercial purposes is prohibited unless prior permission is obtained from the copyright holder.

To accomplish this, add the phrase 'Distribution of the work or derivative of the work in any standard (paper) book form is prohibited unless prior permission is obtained from the copyright holder.' to the license reference or copy.

Пред. | Начало | След.
V. GOOD-PRACTICE RECOMMENDATIONS | Уровень выше | Список функций


Список функций

Руководство по PHP
Пред. След.

Приложение T. Список функций

Содержание
Список функций

Пред. | Начало | След.
VI. LICENSE OPTIONS | Уровень выше | Список функций


Список функций

A

abs()
acos()
acosh()
addcslashes()
addslashes()
aggregate()
aggregate_info()
aggregate_methods()
aggregate_methods_by_list()
aggregate_methods_by_regexp()
aggregate_properties()
aggregate_properties_by_list()
aggregate_properties_by_regexp()
aggregation_info()
apache_child_terminate()
apache_get_modules()
apache_get_version()
apache_getenv()
apache_lookup_uri()
apache_note()
apache_request_headers()
apache_reset_timeout()
apache_response_headers()
apache_setenv()
apd_breakpoint()
apd_callstack()
apd_clunk()
apd_continue()
apd_croak()
apd_dump_function_table()
apd_dump_persistent_resources()
apd_dump_regular_resources()
apd_echo()
apd_get_active_symbols()
apd_set_pprof_trace()
apd_set_session()
apd_set_session_trace()
apd_set_socket_session_trace()
array()
array_change_key_case()
array_chunk()
array_combine()
array_count_values()
array_diff()
array_diff_assoc()
array_diff_key()
array_diff_uassoc()
array_diff_ukey()
array_fill()
array_filter()
array_flip()
array_intersect()
array_intersect_assoc()
array_intersect_key()
array_intersect_uassoc()
array_intersect_ukey()
array_key_exists()
array_keys()
array_map()
array_merge()
array_merge_recursive()
array_multisort()
array_pad()
array_pop()
array_push()
array_rand()
array_reduce()
array_reverse()
array_search()
array_shift()
array_slice()
array_splice()
array_sum()
array_udiff()
array_udiff_assoc()
array_udiff_uassoc()
array_uintersect()
array_uintersect_assoc()
array_uintersect_uassoc()
array_unique()
array_unshift()
array_values()
array_walk()
array_walk_recursive()
ArrayIterator::current()
ArrayIterator::key()
ArrayIterator::next()
ArrayIterator::rewind()
ArrayIterator::seek()
ArrayIterator::valid()
ArrayObject::__construct()
ArrayObject::append()
ArrayObject::count()
ArrayObject::getIterator()
ArrayObject::offsetExists()
ArrayObject::offsetGet()
ArrayObject::offsetSet()
ArrayObject::offsetUnset()
arsort()
ascii2ebcdic()
asin()
asinh()
asort()
aspell_check()
aspell_check_raw()
aspell_new()
aspell_suggest()
assert()
assert_options()
atan()
atan2()
atanh()

B

base64_decode()
base64_encode()
base_convert()
basename()
bcadd()
bccomp()
bcdiv()
bcmod()
bcmul()
bcompile_write_file()
bcompiler_load()
bcompiler_load_exe()
bcompiler_parse_class()
bcompiler_read()
bcompiler_write_class()
bcompiler_write_constant()
bcompiler_write_exe_footer()
bcompiler_write_footer()
bcompiler_write_function()
bcompiler_write_functions_from_file()
bcompiler_write_header()
bcpow()
bcpowmod()
bcscale()
bcsqrt()
bcsub()
bin2hex()
bind_textdomain_codeset()
bindec()
bindtextdomain()
bzclose()
bzcompress()
bzdecompress()
bzerrno()
bzerror()
bzerrstr()
bzflush()
bzopen()
bzread()
bzwrite()

C

CachingIterator::__toString()
CachingIterator::hasNext()
CachingIterator::next()
CachingIterator::rewind()
CachingIterator::valid()
CachingRecursiveIterator::getChildren()
CachingRecursiveIterator::hasChildren()
cal_days_in_month()
cal_from_jd()
cal_info()
cal_to_jd()
call_user_func()
call_user_func_array()
call_user_method()
call_user_method_array()
ccvs_add()
ccvs_auth()
ccvs_command()
ccvs_count()
ccvs_delete()
ccvs_done()
ccvs_init()
ccvs_lookup()
ccvs_new()
ccvs_report()
ccvs_return()
ccvs_reverse()
ccvs_sale()
ccvs_status()
ccvs_textvalue()
ccvs_void()
ceil()
chdir()
checkdate()
checkdnsrr()
chgrp()
chmod()
chop()
chown()
chr()
chroot()
chunk_split()
class_exists()
class_implements()
class_parents()
classkit_import()
classkit_method_add()
classkit_method_copy()
classkit_method_redefine()
classkit_method_remove()
classkit_method_rename()
clearstatcache()
closedir()
closelog()
com()
com_addref()
com_create_guid()
com_event_sink()
com_get()
com_get_active_object()
com_invoke()
com_isenum()
com_load()
com_load_typelib()
com_message_pump()
com_print_typeinfo()
com_propget()
com_propput()
com_propset()
com_release()
com_set()
compact()
connection_aborted()
connection_status()
connection_timeout()
constant()
convert_cyr_string()
convert_uudecode()
convert_uuencode()
copy()
cos()
cosh()
count()
count_chars()
cpdf_add_annotation()
cpdf_add_outline()
cpdf_arc()
cpdf_begin_text()
cpdf_circle()
cpdf_clip()
cpdf_close()
cpdf_closepath()
cpdf_closepath_fill_stroke()
cpdf_closepath_stroke()
cpdf_continue_text()
cpdf_curveto()
cpdf_end_text()
cpdf_fill()
cpdf_fill_stroke()
cpdf_finalize()
cpdf_finalize_page()
cpdf_global_set_document_limits()
cpdf_import_jpeg()
cpdf_lineto()
cpdf_moveto()
cpdf_newpath()
cpdf_open()
cpdf_output_buffer()
cpdf_page_init()
cpdf_place_inline_image()
cpdf_rect()
cpdf_restore()
cpdf_rlineto()
cpdf_rmoveto()
cpdf_rotate()
cpdf_rotate_text()
cpdf_save()
cpdf_save_to_file()
cpdf_scale()
cpdf_set_action_url()
cpdf_set_char_spacing()
cpdf_set_creator()
cpdf_set_current_page()
cpdf_set_font()
cpdf_set_font_directories()
cpdf_set_font_map_file()
cpdf_set_horiz_scaling()
cpdf_set_keywords()
cpdf_set_leading()
cpdf_set_page_animation()
cpdf_set_subject()
cpdf_set_text_matrix()
cpdf_set_text_pos()
cpdf_set_text_rendering()
cpdf_set_text_rise()
cpdf_set_title()
cpdf_set_viewer_preferences()
cpdf_set_word_spacing()
cpdf_setdash()
cpdf_setflat()
cpdf_setgray()
cpdf_setgray_fill()
cpdf_setgray_stroke()
cpdf_setlinecap()
cpdf_setlinejoin()
cpdf_setlinewidth()
cpdf_setmiterlimit()
cpdf_setrgbcolor()
cpdf_setrgbcolor_fill()
cpdf_setrgbcolor_stroke()
cpdf_show()
cpdf_show_xy()
cpdf_stringwidth()
cpdf_stroke()
cpdf_text()
cpdf_translate()
crack_check()
crack_closedict()
crack_getlastmessage()
crack_opendict()
crc32()
create_function()
crypt()
ctype_alnum()
ctype_alpha()
ctype_cntrl()
ctype_digit()
ctype_graph()
ctype_lower()
ctype_print()
ctype_punct()
ctype_space()
ctype_upper()
ctype_xdigit()
curl_close()
curl_copy_handle()
curl_errno()
curl_error()
curl_exec()
curl_getinfo()
curl_init()
curl_multi_add_handle()
curl_multi_close()
curl_multi_exec()
curl_multi_getcontent()
curl_multi_info_read()
curl_multi_init()
curl_multi_remove_handle()
curl_multi_select()
curl_setopt()
curl_version()
current()
cybercash_base64_decode()
cybercash_base64_encode()
cybercash_decr()
cybercash_encr()
cyrus_authenticate()
cyrus_bind()
cyrus_close()
cyrus_connect()
cyrus_query()
cyrus_unbind()

D

date()
date_sunrise()
date_sunset()
dba_close()
dba_delete()
dba_exists()
dba_fetch()
dba_firstkey()
dba_handlers()
dba_insert()
dba_key_split()
dba_list()
dba_nextkey()
dba_open()
dba_optimize()
dba_popen()
dba_replace()
dba_sync()
dbase_add_record()
dbase_close()
dbase_create()
dbase_delete_record()
dbase_get_header_info()
dbase_get_record()
dbase_get_record_with_names()
dbase_numfields()
dbase_numrecords()
dbase_open()
dbase_pack()
dbase_replace_record()
dblist()
dbmclose()
dbmdelete()
dbmexists()
dbmfetch()
dbmfirstkey()
dbminsert()
dbmnextkey()
dbmopen()
dbmreplace()
dbplus_add()
dbplus_aql()
dbplus_chdir()
dbplus_close()
dbplus_curr()
dbplus_errcode()
dbplus_errno()
dbplus_find()
dbplus_first()
dbplus_flush()
dbplus_freealllocks()
dbplus_freelock()
dbplus_freerlocks()
dbplus_getlock()
dbplus_getunique()
dbplus_info()
dbplus_last()
dbplus_lockrel()
dbplus_next()
dbplus_open()
dbplus_prev()
dbplus_rchperm()
dbplus_rcreate()
dbplus_rcrtexact()
dbplus_rcrtlike()
dbplus_resolve()
dbplus_restorepos()
dbplus_rkeys()
dbplus_ropen()
dbplus_rquery()
dbplus_rrename()
dbplus_rsecindex()
dbplus_runlink()
dbplus_rzap()
dbplus_savepos()
dbplus_setindex()
dbplus_setindexbynumber()
dbplus_sql()
dbplus_tcl()
dbplus_tremove()
dbplus_undo()
dbplus_undoprepare()
dbplus_unlockrel()
dbplus_unselect()
dbplus_update()
dbplus_xlockrel()
dbplus_xunlockrel()
dbx_close()
dbx_compare()
dbx_connect()
dbx_error()
dbx_escape_string()
dbx_fetch_row()
dbx_query()
dbx_sort()
dcgettext()
dcngettext()
deaggregate()
debug_backtrace()
debug_print_backtrace()
debug_zval_dump()
debugger_off()
debugger_on()
decbin()
dechex()
decoct()
define()
define_syslog_variables()
defined()
deg2rad()
delete()
descriptor->free()
dgettext()
die()
dio_close()
dio_fcntl()
dio_open()
dio_read()
dio_seek()
dio_stat()
dio_tcsetattr()
dio_truncate()
dio_write()
dir()
DirectoryIterator::__construct()
DirectoryIterator::current()
DirectoryIterator::getATime()
DirectoryIterator::getChildren()
DirectoryIterator::getCTime()
DirectoryIterator::getFilename()
DirectoryIterator::getGroup()
DirectoryIterator::getInode()
DirectoryIterator::getMTime()
DirectoryIterator::getOwner()
DirectoryIterator::getPath()
DirectoryIterator::getPathname()
DirectoryIterator::getPerms()
DirectoryIterator::getSize()
DirectoryIterator::getType()
DirectoryIterator::isDir()
DirectoryIterator::isDot()
DirectoryIterator::isExecutable()
DirectoryIterator::isFile()
DirectoryIterator::isLink()
DirectoryIterator::isReadable()
DirectoryIterator::isWritable()
DirectoryIterator::key()
DirectoryIterator::next()
DirectoryIterator::rewind()
DirectoryIterator::valid()
dirname()
disk_free_space()
disk_total_space()
diskfreespace()
dl()
dngettext()
dns_check_record()
dns_get_mx()
dns_get_record()
dom_import_simplexml()
DOMAttr->isId()
DomAttribute->name()
DomAttribute->specified()
DomAttribute->value()
DOMCharacterData->appendData()
DOMCharacterData->deleteData()
DOMCharacterData->insertData()
DOMCharacterData->replaceData()
DOMCharacterData->substringData()
DOMDocument->__construct()
DomDocument->add_root()
DomDocument->create_attribute()
DomDocument->create_cdata_section()
DomDocument->create_comment()
DomDocument->create_element()
DomDocument->create_element_ns()
DomDocument->create_entity_reference()
DomDocument->create_processing_instruction()
DomDocument->create_text_node()
DOMDocument->createAttribute()
DOMDocument->createAttributeNS()
DOMDocument->createCDATASection()
DOMDocument->createComment()
DOMDocument->createDocumentFragment()
DOMDocument->createElement()
DOMDocument->createElementNS()
DOMDocument->createEntityReference()
DOMDocument->createProcessingInstruction()
DOMDocument->createTextNode()
DomDocument->doctype()
DomDocument->document_element()
DomDocument->dump_file()
DomDocument->dump_mem()
DomDocument->get_element_by_id()
DomDocument->get_elements_by_tagname()
DOMDocument->getElementById()
DOMDocument->getElementsByTagName()
DOMDocument->getElementsByTagNameNS()()
DomDocument->html_dump_mem()
DOMDocument->importNode()
DOMDocument->load()
DOMDocument->loadHTML()
DOMDocument->loadHTMLFile()
DOMDocument->loadXML()
DOMDocument->normalize()
DOMDocument->relaxNGValidate()
DOMDocument->relaxNGValidateSource()
DOMDocument->save()
DOMDocument->saveHTML()()
DOMDocument->saveHTMLFile()()
DOMDocument->saveXML()()
DOMDocument->schemaValidate()
DOMDocument->schemaValidateSource()
DOMDocument->validate()
DOMDocument->xinclude()
DomDocument->xinclude()
DomDocumentType->entities()
DomDocumentType->internal_subset()
DomDocumentType->name()
DomDocumentType->notations()
DomDocumentType->public_id()
DomDocumentType->system_id()
DomElement->get_attribute()
DomElement->get_attribute_node()
DomElement->get_elements_by_tagname()
DOMElement->getAttribute()
DOMElement->getAttributeNode()
DOMElement->getAttributeNodeNS()
DOMElement->getAttributeNS()
DOMElement->getElementsByTagName()
DOMElement->getElementsByTagNameNS()
DomElement->has_attribute()
DOMElement->hasAttribute()
DOMElement->hasAttributeNS()
DomElement->remove_attribute()
DOMElement->removeAttribute()
DOMElement->removeAttributeNode()
DOMElement->removeAttributeNS()
DomElement->set_attribute()
DOMElement->setAttribute()
DOMElement->setAttributeNode()
DOMElement->setAttributeNodeNS()
DOMElement->setAttributeNS()
DomElement->tagname()
DOMImplementation->createDocument()
DOMImplementation->createDocumentType()
DOMImplementation->hasFeature()()
DOMNamedNodeMap->getNamedItem()
DOMNamedNodeMap->getNamedItemNS()
DOMNamedNodeMap->item()
DomNode->add_namespace()
DomNode->append_child()
DomNode->append_sibling()
DOMNode->appendChild()
DomNode->attributes()
DomNode->child_nodes()
DomNode->clone_node()
DOMNode->cloneNode()
DomNode->dump_node()
DomNode->first_child()
DomNode->get_content()
DomNode->has_attributes()
DomNode->has_child_nodes()
DOMNode->hasAttributes()
DOMNode->hasChildNodes()
DomNode->insert_before()
DOMNode->insertBefore()
DomNode->is_blank_node()
DOMNode->isSameNode()
DOMNode->isSupported()
DomNode->last_child()
DOMNode->lookupNamespaceURI()
DOMNode->lookupPrefix()
DomNode->next_sibling()
DomNode->node_name()
DomNode->node_type()
DomNode->node_value()
DOMNode->normalize()
DomNode->owner_document()
DomNode->parent_node()
DomNode->prefix()
DomNode->previous_sibling()
DomNode->remove_child()
DOMNode->removeChild()
DomNode->replace_child()
DomNode->replace_node()
DOMNode->replaceChild()
DomNode->set_content()
DomNode->set_name()
DomNode->set_namespace()
DomNode->unlink_node()
DOMNodelist->item()
DomProcessingInstruction->data()
DomProcessingInstruction->target()
DOMStringList->item()
DOMText->isWhitespaceInElementContent()
DOMText->splitText()
domxml_new_doc()
domxml_open_file()
domxml_open_mem()
domxml_version()
domxml_xmltree()
domxml_xslt_stylesheet()
domxml_xslt_stylesheet_doc()
domxml_xslt_stylesheet_file()
DOMXPath->__construct()
DOMXPath->evaluate()()
DOMXPath->query()
DOMXPath->registerNamespace()
DomXsltStylesheet->process()
DomXsltStylesheet->result_dump_file()
DomXsltStylesheet->result_dump_mem()
dotnet()
dotnet_load()
doubleval()

E

each()
easter_date()
easter_days()
ebcdic2ascii()
echo()
empty()
end()
ereg()
ereg_replace()
eregi()
eregi_replace()
error_log()
error_reporting()
escapeshellarg()
escapeshellcmd()
eval()
exec()
exif_imagetype()
exif_read_data()
exif_tagname()
exif_thumbnail()
exit()
exp()
explode()
expm1()
extension_loaded()
extract()
ezmlm_hash()

F

fam_cancel_monitor()
fam_close()
fam_monitor_collection()
fam_monitor_directory()
fam_monitor_file()
fam_next_event()
fam_open()
fam_pending()
fam_resume_monitor()
fam_suspend_monitor()
fbsql_affected_rows()
fbsql_autocommit()
fbsql_blob_size()
fbsql_change_user()
fbsql_clob_size()
fbsql_close()
fbsql_commit()
fbsql_connect()
fbsql_create_blob()
fbsql_create_clob()
fbsql_create_db()
fbsql_data_seek()
fbsql_database()
fbsql_database_password()
fbsql_db_query()
fbsql_db_status()
fbsql_drop_db()
fbsql_errno()
fbsql_error()
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()
fbsql_list_dbs()
fbsql_list_fields()
fbsql_list_tables()
fbsql_next_result()
fbsql_num_fields()
fbsql_num_rows()
fbsql_password()
fbsql_pconnect()
fbsql_query()
fbsql_read_blob()
fbsql_read_clob()
fbsql_result()
fbsql_rollback()
fbsql_select_db()
fbsql_set_lob_mode()
fbsql_set_password()
fbsql_set_transaction()
fbsql_start_db()
fbsql_stop_db()
fbsql_tablename()
fbsql_username()
fbsql_warnings()
fclose()
fdf_add_doc_javascript()
fdf_add_template()
fdf_close()
fdf_create()
fdf_enum_values()
fdf_errno()
fdf_error()
fdf_get_ap()
fdf_get_attachment()
fdf_get_encoding()
fdf_get_file()
fdf_get_flags()
fdf_get_opt()
fdf_get_status()
fdf_get_value()
fdf_get_version()
fdf_header()
fdf_next_field_name()
fdf_open()
fdf_open_string()
fdf_remove_item()
fdf_save()
fdf_save_string()
fdf_set_ap()
fdf_set_encoding()
fdf_set_file()
fdf_set_flags()
fdf_set_javascript_action()
fdf_set_on_import_javascript()
fdf_set_opt()
fdf_set_status()
fdf_set_submit_form_action()
fdf_set_target_frame()
fdf_set_value()
fdf_set_version()
feof()
fflush()
fgetc()
fgetcsv()
fgets()
fgetss()
file()
file_exists()
file_get_contents()
file_put_contents()
fileatime()
filectime()
filegroup()
fileinode()
filemtime()
fileowner()
fileperms()
filepro()
filepro_fieldcount()
filepro_fieldname()
filepro_fieldtype()
filepro_fieldwidth()
filepro_retrieve()
filepro_rowcount()
filesize()
filetype()
FilterIterator::current()
FilterIterator::getInnerIterator()
FilterIterator::key()
FilterIterator::next()
FilterIterator::rewind()
FilterIterator::valid()
floatval()
flock()
floor()
flush()
fmod()
fnmatch()
fopen()
fpassthru()
fprintf()
fputcsv()
fputs()
fread()
frenchtojd()
fribidi_log2vis()
fscanf()
fseek()
fsockopen()
fstat()
ftell()
ftok()
ftp_alloc()
ftp_cdup()
ftp_chdir()
ftp_chmod()
ftp_close()
ftp_connect()
ftp_delete()
ftp_exec()
ftp_fget()
ftp_fput()
ftp_get()
ftp_get_option()
ftp_login()
ftp_mdtm()
ftp_mkdir()
ftp_nb_continue()
ftp_nb_fget()
ftp_nb_fput()
ftp_nb_get()
ftp_nb_put()
ftp_nlist()
ftp_pasv()
ftp_put()
ftp_pwd()
ftp_quit()
ftp_raw()
ftp_rawlist()
ftp_rename()
ftp_rmdir()
ftp_set_option()
ftp_site()
ftp_size()
ftp_ssl_connect()
ftp_systype()
ftruncate()
func_get_arg()
func_get_args()
func_num_args()
function_exists()
fwrite()

G

gd_info()
get_browser()
get_cfg_var()
get_class()
get_class_methods()
get_class_vars()
get_current_user()
get_declared_classes()
get_declared_interfaces()
get_defined_constants()
get_defined_functions()
get_defined_vars()
get_extension_funcs()
get_headers()
get_html_translation_table()
get_include_path()
get_included_files()
get_loaded_extensions()
get_magic_quotes_gpc()
get_magic_quotes_runtime()
get_meta_tags()
get_object_vars()
get_parent_class()
get_required_files()
get_resource_type()
getallheaders()
getcwd()
getdate()
getenv()
gethostbyaddr()
gethostbyname()
gethostbynamel()
getimagesize()
getlastmod()
getmxrr()
getmygid()
getmyinode()
getmypid()
getmyuid()
getopt()
getprotobyname()
getprotobynumber()
getrandmax()
getrusage()
getservbyname()
getservbyport()
gettext()
gettimeofday()
gettype()
glob()
gmdate()
gmmktime()
gmp_abs()
gmp_add()
gmp_and()
gmp_clrbit()
gmp_cmp()
gmp_com()
gmp_div()
gmp_div_q()
gmp_div_qr()
gmp_div_r()
gmp_divexact()
gmp_fact()
gmp_gcd()
gmp_gcdext()
gmp_hamdist()
gmp_init()
gmp_intval()
gmp_invert()
gmp_jacobi()
gmp_legendre()
gmp_mod()
gmp_mul()
gmp_neg()
gmp_or()
gmp_perfect_square()
gmp_popcount()
gmp_pow()
gmp_powm()
gmp_prob_prime()
gmp_random()
gmp_scan0()
gmp_scan1()
gmp_setbit()
gmp_sign()
gmp_sqrt()
gmp_sqrtrem()
gmp_strval()
gmp_sub()
gmp_xor()
gmstrftime()
gregoriantojd()
gzclose()
gzcompress()
gzdeflate()
gzencode()
gzeof()
gzfile()
gzgetc()
gzgets()
gzgetss()
gzinflate()
gzopen()
gzpassthru()
gzputs()
gzread()
gzrewind()
gzseek()
gztell()
gzuncompress()
gzwrite()

H

header()
headers_list()
headers_sent()
hebrev()
hebrevc()
hexdec()
highlight_file()
highlight_string()
html_entity_decode()
htmlentities()
htmlspecialchars()
http_build_query()
hw_api->checkin()
hw_api->checkout()
hw_api->children()
hw_api->content()
hw_api->copy()
hw_api->dbstat()
hw_api->dcstat()
hw_api->dstanchors()
hw_api->dstofsrcanchor()
hw_api->find()
hw_api->ftstat()
hw_api->hwstat()
hw_api->identify()
hw_api->info()
hw_api->insert()
hw_api->insertanchor()
hw_api->insertcollection()
hw_api->insertdocument()
hw_api->link()
hw_api->lock()
hw_api->move()
hw_api->object()
hw_api->objectbyanchor()
hw_api->parents()
hw_api->remove()
hw_api->replace()
hw_api->setcommittedversion()
hw_api->srcanchors()
hw_api->srcsofdst()
hw_api->unlock()
hw_api->user()
hw_api->userlist()
hw_api_attribute()
hw_api_attribute->key()
hw_api_attribute->langdepvalue()
hw_api_attribute->value()
hw_api_attribute->values()
hw_api_content()
hw_api_content->mimetype()
hw_api_content->read()
hw_api_error->count()
hw_api_error->reason()
hw_api_object()
hw_api_object->assign()
hw_api_object->attreditable()
hw_api_object->count()
hw_api_object->insert()
hw_api_object->remove()
hw_api_object->title()
hw_api_object->value()
hw_api_reason->description()
hw_api_reason->type()
hw_array2objrec()
hw_changeobject()
hw_children()
hw_childrenobj()
hw_close()
hw_connect()
hw_connection_info()
hw_cp()
hw_deleteobject()
hw_docbyanchor()
hw_docbyanchorobj()
hw_document_attributes()
hw_document_bodytag()
hw_document_content()
hw_document_setcontent()
hw_document_size()
hw_dummy()
hw_edittext()
hw_error()
hw_errormsg()
hw_free_document()
hw_getanchors()
hw_getanchorsobj()
hw_getandlock()
hw_getchildcoll()
hw_getchildcollobj()
hw_getchilddoccoll()
hw_getchilddoccollobj()
hw_getobject()
hw_getobjectbyquery()
hw_getobjectbyquerycoll()
hw_getobjectbyquerycollobj()
hw_getobjectbyqueryobj()
hw_getparents()
hw_getparentsobj()
hw_getrellink()
hw_getremote()
hw_getremotechildren()
hw_getsrcbydestobj()
hw_gettext()
hw_getusername()
hw_identify()
hw_incollections()
hw_info()
hw_inscoll()
hw_insdoc()
hw_insertanchors()
hw_insertdocument()
hw_insertobject()
hw_mapid()
hw_modifyobject()
hw_mv()
hw_new_document()
hw_objrec2array()
hw_output_document()
hw_pconnect()
hw_pipedocument()
hw_root()
hw_setlinkroot()
hw_stat()
hw_unlock()
hw_who()
hwapi_hgcsp()
hypot()

I

ibase_add_user()
ibase_affected_rows()
ibase_backup()
ibase_blob_add()
ibase_blob_cancel()
ibase_blob_close()
ibase_blob_create()
ibase_blob_echo()
ibase_blob_get()
ibase_blob_import()
ibase_blob_info()
ibase_blob_open()
ibase_close()
ibase_commit()
ibase_commit_ret()
ibase_connect()
ibase_db_info()
ibase_delete_user()
ibase_drop_db()
ibase_errcode()
ibase_errmsg()
ibase_execute()
ibase_fetch_assoc()
ibase_fetch_object()
ibase_fetch_row()
ibase_field_info()
ibase_free_event_handler()
ibase_free_query()
ibase_free_result()
ibase_gen_id()
ibase_maintain_db()
ibase_modify_user()
ibase_name_result()
ibase_num_fields()
ibase_num_params()
ibase_param_info()
ibase_pconnect()
ibase_prepare()
ibase_query()
ibase_restore()
ibase_rollback()
ibase_rollback_ret()
ibase_server_info()
ibase_service_attach()
ibase_service_detach()
ibase_set_event_handler()
ibase_timefmt()
ibase_trans()
ibase_wait_event()
iconv()
iconv_get_encoding()
iconv_mime_decode()
iconv_mime_decode_headers()
iconv_mime_encode()
iconv_set_encoding()
iconv_strlen()
iconv_strpos()
iconv_strrpos()
iconv_substr()
id3_get_frame_long_name()
id3_get_frame_short_name()
id3_get_genre_id()
id3_get_genre_list()
id3_get_genre_name()
id3_get_tag()
id3_get_version()
id3_remove_tag()
id3_set_tag()
idate()
ifx_affected_rows()
ifx_blobinfile_mode()
ifx_byteasvarchar()
ifx_close()
ifx_connect()
ifx_copy_blob()
ifx_create_blob()
ifx_create_char()
ifx_do()
ifx_error()
ifx_errormsg()
ifx_fetch_row()
ifx_fieldproperties()
ifx_fieldtypes()
ifx_free_blob()
ifx_free_char()
ifx_free_result()
ifx_get_blob()
ifx_get_char()
ifx_getsqlca()
ifx_htmltbl_result()
ifx_nullformat()
ifx_num_fields()
ifx_num_rows()
ifx_pconnect()
ifx_prepare()
ifx_query()
ifx_textasvarchar()
ifx_update_blob()
ifx_update_char()
ifxus_close_slob()
ifxus_create_slob()
ifxus_free_slob()
ifxus_open_slob()
ifxus_read_slob()
ifxus_seek_slob()
ifxus_tell_slob()
ifxus_write_slob()
ignore_user_abort()
image2wbmp()
image_type_to_extension()
image_type_to_mime_type()
imagealphablending()
imageantialias()
imagearc()
imagechar()
imagecharup()
imagecolorallocate()
imagecolorallocatealpha()
imagecolorat()
imagecolorclosest()
imagecolorclosestalpha()
imagecolorclosesthwb()
imagecolordeallocate()
imagecolorexact()
imagecolorexactalpha()
imagecolormatch()
imagecolorresolve()
imagecolorresolvealpha()
imagecolorset()
imagecolorsforindex()
imagecolorstotal()
imagecolortransparent()
imagecopy()
imagecopymerge()
imagecopymergegray()
imagecopyresampled()
imagecopyresized()
imagecreate()
imagecreatefromgd()
imagecreatefromgd2()
imagecreatefromgd2part()
imagecreatefromgif()
imagecreatefromjpeg()
imagecreatefrompng()
imagecreatefromstring()
imagecreatefromwbmp()
imagecreatefromxbm()
imagecreatefromxpm()
imagecreatetruecolor()
imagedashedline()
imagedestroy()
imageellipse()
imagefill()
imagefilledarc()
imagefilledellipse()
imagefilledpolygon()
imagefilledrectangle()
imagefilltoborder()
imagefilter()
imagefontheight()
imagefontwidth()
imageftbbox()
imagefttext()
imagegammacorrect()
imagegd()
imagegd2()
imagegif()
imageinterlace()
imageistruecolor()
imagejpeg()
imagelayereffect()
imageline()
imageloadfont()
imagepalettecopy()
imagepng()
imagepolygon()
imagepsbbox()
imagepscopyfont()
imagepsencodefont()
imagepsextendfont()
imagepsfreefont()
imagepsloadfont()
imagepsslantfont()
imagepstext()
imagerectangle()
imagerotate()
imagesavealpha()
imagesetbrush()
imagesetpixel()
imagesetstyle()
imagesetthickness()
imagesettile()
imagestring()
imagestringup()
imagesx()
imagesy()
imagetruecolortopalette()
imagettfbbox()
imagettftext()
imagetypes()
imagewbmp()
imagexbm()
imap_8bit()
imap_alerts()
imap_append()
imap_base64()
imap_binary()
imap_body()
imap_bodystruct()
imap_check()
imap_clearflag_full()
imap_close()
imap_createmailbox()
imap_delete()
imap_deletemailbox()
imap_errors()
imap_expunge()
imap_fetch_overview()
imap_fetchbody()
imap_fetchheader()
imap_fetchstructure()
imap_get_quota()
imap_get_quotaroot()
imap_getacl()
imap_getmailboxes()
imap_getsubscribed()
imap_header()
imap_headerinfo()
imap_headers()
imap_last_error()
imap_list()
imap_listmailbox()
imap_listscan()
imap_listsubscribed()
imap_lsub()
imap_mail()
imap_mail_compose()
imap_mail_copy()
imap_mail_move()
imap_mailboxmsginfo()
imap_mime_header_decode()
imap_msgno()
imap_num_msg()
imap_num_recent()
imap_open()
imap_ping()
imap_qprint()
imap_renamemailbox()
imap_reopen()
imap_rfc822_parse_adrlist()
imap_rfc822_parse_headers()
imap_rfc822_write_address()
imap_scanmailbox()
imap_search()
imap_set_quota()
imap_setacl()
imap_setflag_full()
imap_sort()
imap_status()
imap_subscribe()
imap_thread()
imap_timeout()
imap_uid()
imap_undelete()
imap_unsubscribe()
imap_utf7_decode()
imap_utf7_encode()
imap_utf8()
implode()
import_request_variables()
in_array()
inet_ntop()
inet_pton()
ingres_autocommit()
ingres_close()
ingres_commit()
ingres_connect()
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_query()
ingres_rollback()
ini_alter()
ini_get()
ini_get_all()
ini_restore()
ini_set()
interface_exists()
intval()
ip2long()
iptcembed()
iptcparse()
ircg_channel_mode()
ircg_disconnect()
ircg_eval_ecmascript_params()
ircg_fetch_error_msg()
ircg_get_username()
ircg_html_encode()
ircg_ignore_add()
ircg_ignore_del()
ircg_invite()
ircg_is_conn_alive()
ircg_join()
ircg_kick()
ircg_list()
ircg_lookup_format_messages()
ircg_lusers()
ircg_msg()
ircg_names()
ircg_nick()
ircg_nickname_escape()
ircg_nickname_unescape()
ircg_notice()
ircg_oper()
ircg_part()
ircg_pconnect()
ircg_register_format_messages()
ircg_set_current()
ircg_set_file()
ircg_set_on_die()
ircg_topic()
ircg_who()
ircg_whois()
is_a()
is_array()
is_bool()
is_callable()
is_dir()
is_double()
is_executable()
is_file()
is_finite()
is_float()
is_infinite()
is_int()
is_integer()
is_link()
is_long()
is_nan()
is_null()
is_numeric()
is_object()
is_readable()
is_real()
is_resource()
is_scalar()
is_soap_fault()
is_string()
is_subclass_of()
is_uploaded_file()
is_writable()
is_writeable()
isset()
iterator-to-array()
iterator_count()

J

java_last_exception_clear()
java_last_exception_get()
jddayofweek()
jdmonthname()
jdtofrench()
jdtogregorian()
jdtojewish()
jdtojulian()
jdtounix()
jewishtojd()
join()
jpeg2wbmp()
juliantojd()

K

key()
krsort()
ksort()

L

lcg_value()
ldap_8859_to_t61()
ldap_add()
ldap_bind()
ldap_close()
ldap_compare()
ldap_connect()
ldap_count_entries()
ldap_delete()
ldap_dn2ufn()
ldap_err2str()
ldap_errno()
ldap_error()
ldap_explode_dn()
ldap_first_attribute()
ldap_first_entry()
ldap_first_reference()
ldap_free_result()
ldap_get_attributes()
ldap_get_dn()
ldap_get_entries()
ldap_get_option()
ldap_get_values()
ldap_get_values_len()
ldap_list()
ldap_mod_add()
ldap_mod_del()
ldap_mod_replace()
ldap_modify()
ldap_next_attribute()
ldap_next_entry()
ldap_next_reference()
ldap_parse_reference()
ldap_parse_result()
ldap_read()
ldap_rename()
ldap_sasl_bind()
ldap_search()
ldap_set_option()
ldap_set_rebind_proc()
ldap_sort()
ldap_start_tls()
ldap_t61_to_8859()
ldap_unbind()
levenshtein()
LimitIterator::getPosition()
LimitIterator::next()
LimitIterator::rewind()
LimitIterator::seek()
LimitIterator::valid()
link()
linkinfo()
list()
lob->append()
lob->close()
lob->eof()
lob->erase()
lob->export()
lob->flush()
lob->getBuffering()
lob->import()
lob->load()
lob->read()
lob->rewind()
lob->save()
lob->seek()
lob->setBuffering()
lob->size()
lob->tell()
lob->truncate()
lob->write()
lob->writeTemporary()
localeconv()
localtime()
log()
log10()
log1p()
long2ip()
lstat()
ltrim()
lzf_compress()
lzf_decompress()
lzf_optimized_for()

M

mail()
mailparse_determine_best_xfer_encoding()
mailparse_msg_create()
mailparse_msg_extract_part()
mailparse_msg_extract_part_file()
mailparse_msg_free()
mailparse_msg_get_part()
mailparse_msg_get_part_data()
mailparse_msg_get_structure()
mailparse_msg_parse()
mailparse_msg_parse_file()
mailparse_rfc822_parse_addresses()
mailparse_stream_encode()
mailparse_uudecode_all()
main()
max()
mb_convert_case()
mb_convert_encoding()
mb_convert_kana()
mb_convert_variables()
mb_decode_mimeheader()
mb_decode_numericentity()
mb_detect_encoding()
mb_detect_order()
mb_encode_mimeheader()
mb_encode_numericentity()
mb_ereg()
mb_ereg_match()
mb_ereg_replace()
mb_ereg_search()
mb_ereg_search_getpos()
mb_ereg_search_getregs()
mb_ereg_search_init()
mb_ereg_search_pos()
mb_ereg_search_regs()
mb_ereg_search_setpos()
mb_eregi()
mb_eregi_replace()
mb_get_info()
mb_http_input()
mb_http_output()
mb_internal_encoding()
mb_language()
mb_list_encodings()
mb_output_handler()
mb_parse_str()
mb_preferred_mime_name()
mb_regex_encoding()
mb_regex_set_options()
mb_send_mail()
mb_split()
mb_strcut()
mb_strimwidth()
mb_strlen()
mb_strpos()
mb_strrpos()
mb_strtolower()
mb_strtoupper()
mb_strwidth()
mb_substitute_character()
mb_substr()
mb_substr_count()
mcal_append_event()
mcal_close()
mcal_create_calendar()
mcal_date_compare()
mcal_date_valid()
mcal_day_of_week()
mcal_day_of_year()
mcal_days_in_month()
mcal_delete_calendar()
mcal_delete_event()
mcal_event_add_attribute()
mcal_event_init()
mcal_event_set_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()
mcal_expunge()
mcal_fetch_current_stream_event()
mcal_fetch_event()
mcal_is_leap_year()
mcal_list_alarms()
mcal_list_events()
mcal_next_recurrence()
mcal_open()
mcal_popen()
mcal_rename_calendar()
mcal_reopen()
mcal_snooze()
mcal_store_event()
mcal_time_valid()
mcal_week_of_year()
mcrypt_cbc()
mcrypt_cfb()
mcrypt_create_iv()
mcrypt_decrypt()
mcrypt_ecb()
mcrypt_enc_get_algorithms_name()
mcrypt_enc_get_block_size()
mcrypt_enc_get_iv_size()
mcrypt_enc_get_key_size()
mcrypt_enc_get_modes_name()
mcrypt_enc_get_supported_key_sizes()
mcrypt_enc_is_block_algorithm()
mcrypt_enc_is_block_algorithm_mode()
mcrypt_enc_is_block_mode()
mcrypt_enc_self_test()
mcrypt_encrypt()
mcrypt_generic()
mcrypt_generic_deinit()
mcrypt_generic_end()
mcrypt_generic_init()
mcrypt_get_block_size()
mcrypt_get_cipher_name()
mcrypt_get_iv_size()
mcrypt_get_key_size()
mcrypt_list_algorithms()
mcrypt_list_modes()
mcrypt_module_close()
mcrypt_module_get_algo_block_size()
mcrypt_module_get_algo_key_size()
mcrypt_module_get_supported_key_sizes()
mcrypt_module_is_block_algorithm()
mcrypt_module_is_block_algorithm_mode()
mcrypt_module_is_block_mode()
mcrypt_module_open()
mcrypt_module_self_test()
mcrypt_ofb()
mcve_adduser()
mcve_adduserarg()
mcve_bt()
mcve_checkstatus()
mcve_chkpwd()
mcve_chngpwd()
mcve_completeauthorizations()
mcve_connect()
mcve_connectionerror()
mcve_deleteresponse()
mcve_deletetrans()
mcve_deleteusersetup()
mcve_deluser()
mcve_destroyconn()
mcve_destroyengine()
mcve_disableuser()
mcve_edituser()
mcve_enableuser()
mcve_force()
mcve_getcell()
mcve_getcellbynum()
mcve_getcommadelimited()
mcve_getheader()
mcve_getuserarg()
mcve_getuserparam()
mcve_gft()
mcve_gl()
mcve_gut()
mcve_initconn()
mcve_initengine()
mcve_initusersetup()
mcve_iscommadelimited()
mcve_liststats()
mcve_listusers()
mcve_maxconntimeout()
mcve_monitor()
mcve_numcolumns()
mcve_numrows()
mcve_override()
mcve_parsecommadelimited()
mcve_ping()
mcve_preauth()
mcve_preauthcompletion()
mcve_qc()
mcve_responseparam()
mcve_return()
mcve_returncode()
mcve_returnstatus()
mcve_sale()
mcve_setblocking()
mcve_setdropfile()
mcve_setip()
mcve_setssl()
mcve_setssl_files()
mcve_settimeout()
mcve_settle()
mcve_text_avs()
mcve_text_code()
mcve_text_cv()
mcve_transactionauth()
mcve_transactionavs()
mcve_transactionbatch()
mcve_transactioncv()
mcve_transactionid()
mcve_transactionitem()
mcve_transactionssent()
mcve_transactiontext()
mcve_transinqueue()
mcve_transnew()
mcve_transparam()
mcve_transsend()
mcve_ub()
mcve_uwait()
mcve_verifyconnection()
mcve_verifysslcert()
mcve_void()
md5()
md5_file()
mdecrypt_generic()
Memcache::add()
Memcache::close()
Memcache::connect()
Memcache::decrement()
Memcache::delete()
Memcache::flush()
Memcache::get()
Memcache::getStats()
Memcache::getVersion()
Memcache::increment()
Memcache::pconnect()
Memcache::replace()
Memcache::set()
memcache_debug()
memory_get_usage()
metaphone()
method_exists()
mhash()
mhash_count()
mhash_get_block_size()
mhash_get_hash_name()
mhash_keygen_s2k()
microtime()
mime_content_type()
min()
ming_setcubicthreshold()
ming_setscale()
ming_useswfversion()
mkdir()
mktime()
money_format()
move_uploaded_file()
msession_connect()
msession_count()
msession_create()
msession_destroy()
msession_disconnect()
msession_find()
msession_get()
msession_get_array()
msession_get_data()
msession_inc()
msession_list()
msession_listvar()
msession_lock()
msession_plugin()
msession_randstr()
msession_set()
msession_set_array()
msession_set_data()
msession_timeout()
msession_uniq()
msession_unlock()
msg_get_queue()
msg_receive()
msg_remove_queue()
msg_send()
msg_set_queue()
msg_stat_queue()
msql()
msql_affected_rows()
msql_close()
msql_connect()
msql_create_db()
msql_createdb()
msql_data_seek()
msql_db_query()
msql_dbname()
msql_drop_db()
msql_error()
msql_fetch_array()
msql_fetch_field()
msql_fetch_object()
msql_fetch_row()
msql_field_flags()
msql_field_len()
msql_field_name()
msql_field_seek()
msql_field_table()
msql_field_type()
msql_fieldflags()
msql_fieldlen()
msql_fieldname()
msql_fieldtable()
msql_fieldtype()
msql_free_result()
msql_list_dbs()
msql_list_fields()
msql_list_tables()
msql_num_fields()
msql_num_rows()
msql_numfields()
msql_numrows()
msql_pconnect()
msql_query()
msql_regcase()
msql_result()
msql_select_db()
msql_tablename()
mssql_bind()
mssql_close()
mssql_connect()
mssql_data_seek()
mssql_execute()
mssql_fetch_array()
mssql_fetch_assoc()
mssql_fetch_batch()
mssql_fetch_field()
mssql_fetch_object()
mssql_fetch_row()
mssql_field_length()
mssql_field_name()
mssql_field_seek()
mssql_field_type()
mssql_free_result()
mssql_free_statement()
mssql_get_last_message()
mssql_guid_string()
mssql_init()
mssql_min_error_severity()
mssql_min_message_severity()
mssql_next_result()
mssql_num_fields()
mssql_num_rows()
mssql_pconnect()
mssql_query()
mssql_result()
mssql_rows_affected()
mssql_select_db()
mt_getrandmax()
mt_rand()
mt_srand()
muscat_close()
muscat_get()
muscat_give()
muscat_setup()
muscat_setup_net()
mysql_affected_rows()
mysql_change_user()
mysql_client_encoding()
mysql_close()
mysql_connect()
mysql_create_db()
mysql_data_seek()
mysql_db_name()
mysql_db_query()
mysql_drop_db()
mysql_errno()
mysql_error()
mysql_escape_string()
mysql_fetch_array()
mysql_fetch_assoc()
mysql_fetch_field()
mysql_fetch_lengths()
mysql_fetch_object()
mysql_fetch_row()
mysql_field_flags()
mysql_field_len()
mysql_field_name()
mysql_field_seek()
mysql_field_table()
mysql_field_type()
mysql_free_result()
mysql_get_client_info()
mysql_get_host_info()
mysql_get_proto_info()
mysql_get_server_info()
mysql_info()
mysql_insert_id()
mysql_list_dbs()
mysql_list_fields()
mysql_list_processes()
mysql_list_tables()
mysql_num_fields()
mysql_num_rows()
mysql_pconnect()
mysql_ping()
mysql_query()
mysql_real_escape_string()
mysql_result()
mysql_select_db()
mysql_stat()
mysql_tablename()
mysql_thread_id()
mysql_unbuffered_query()
mysqli()()
mysqli->affected_rows()
mysqli->autocommit()
mysqli->change_user()
mysqli->character_set_name()
mysqli->close()
mysqli->commit()
mysqli->disable_reads_from_master()
mysqli->dump_debug_info()
mysqli->errno()
mysqli->fetch_assoc()
mysqli->field_count()
mysqli->get_host_info()
mysqli->info()
mysqli->insert_id()
mysqli->kill()
mysqli->more_results()
mysqli->multi_query()
mysqli->next_result()
mysqli->options()
mysqli->ping()
mysqli->prepare()
mysqli->protocol_version()
mysqli->query()
mysqli->real_connect()
mysqli->real_escape_string()
mysqli->real_query()
mysqli->rollback()
mysqli->rpl_query_type()
mysqli->select_db()
mysqli->send_query()
mysqli->server_info()
mysqli->sqlstate()
mysqli->ssl_set()
mysqli->stat()
mysqli->stmt_init()
mysqli->store_result()
mysqli->thread_id()
mysqli->use_result()
mysqli->warning_count()
mysqli_affected_rows()
mysqli_autocommit()
mysqli_bind_param()
mysqli_bind_result()
mysqli_change_user()
mysqli_character_set_name()
mysqli_client_encoding()
mysqli_close()
mysqli_commit()
mysqli_connect()
mysqli_connect_errno()
mysqli_connect_error()
mysqli_data_seek()
mysqli_debug()
mysqli_disable_reads_from_master()
mysqli_disable_rpl_parse()
mysqli_dump_debug_info()
mysqli_embedded_connect()
mysqli_enable_reads_from_master()
mysqli_enable_rpl_parse()
mysqli_errno()
mysqli_error()
mysqli_escape_string()
mysqli_execute()
mysqli_fetch()
mysqli_fetch_array()
mysqli_fetch_assoc()
mysqli_fetch_field()
mysqli_fetch_field_direct()
mysqli_fetch_fields()
mysqli_fetch_lengths()
mysqli_fetch_object()
mysqli_fetch_row()
mysqli_field_count()
mysqli_field_seek()
mysqli_field_tell()
mysqli_free_result()
mysqli_get_client_info()
mysqli_get_client_version()
mysqli_get_host_info()
mysqli_get_metadata()
mysqli_get_proto_info()
mysqli_get_server_info()
mysqli_get_server_version()
mysqli_info()
mysqli_init()
mysqli_insert_id()
mysqli_kill()
mysqli_master_query()
mysqli_more_results()
mysqli_multi_query()
mysqli_next_result()
mysqli_num_fields()
mysqli_num_rows()
mysqli_options()
mysqli_param_count()
mysqli_ping()
mysqli_prepare()
mysqli_query()
mysqli_real_connect()
mysqli_real_escape_string()
mysqli_real_query()
mysqli_report()
mysqli_rollback()
mysqli_rpl_parse_enabled()
mysqli_rpl_probe()
mysqli_rpl_query_type()
mysqli_select_db()
mysqli_send_long_data()
mysqli_send_query()
mysqli_server_end()
mysqli_server_init()
mysqli_set_opt()
mysqli_sqlstate()
mysqli_ssl_set()
mysqli_stat()
mysqli_stmt->affected_rows()
mysqli_stmt->close()
mysqli_stmt->errno()
mysqli_stmt->error()
mysqli_stmt->store_result()
mysqli_stmt_affected_rows()
mysqli_stmt_bind_param()
mysqli_stmt_bind_result()
mysqli_stmt_close()
mysqli_stmt_data_seek()
mysqli_stmt_errno()
mysqli_stmt_error()
mysqli_stmt_execute()
mysqli_stmt_fetch()
mysqli_stmt_free_result()
mysqli_stmt_init()
mysqli_stmt_num_rows()
mysqli_stmt_param_count()
mysqli_stmt_prepare()
mysqli_stmt_reset()
mysqli_stmt_result_metadata()
mysqli_stmt_send_long_data()
mysqli_stmt_sqlstate()
mysqli_stmt_store_result()
mysqli_store_result()
mysqli_thread_id()
mysqli_thread_safe()
mysqli_use_result()
mysqli_warning_count()

N

natcasesort()
natsort()
ncurses_addch()
ncurses_addchnstr()
ncurses_addchstr()
ncurses_addnstr()
ncurses_addstr()
ncurses_assume_default_colors()
ncurses_attroff()
ncurses_attron()
ncurses_attrset()
ncurses_baudrate()
ncurses_beep()
ncurses_bkgd()
ncurses_bkgdset()
ncurses_border()
ncurses_bottom_panel()
ncurses_can_change_color()
ncurses_cbreak()
ncurses_clear()
ncurses_clrtobot()
ncurses_clrtoeol()
ncurses_color_content()
ncurses_color_set()
ncurses_curs_set()
ncurses_def_prog_mode()
ncurses_def_shell_mode()
ncurses_define_key()
ncurses_del_panel()
ncurses_delay_output()
ncurses_delch()
ncurses_deleteln()
ncurses_delwin()
ncurses_doupdate()
ncurses_echo()
ncurses_echochar()
ncurses_end()
ncurses_erase()
ncurses_erasechar()
ncurses_filter()
ncurses_flash()
ncurses_flushinp()
ncurses_getch()
ncurses_getmaxyx()
ncurses_getmouse()
ncurses_getyx()
ncurses_halfdelay()
ncurses_has_colors()
ncurses_has_ic()
ncurses_has_il()
ncurses_has_key()
ncurses_hide_panel()
ncurses_hline()
ncurses_inch()
ncurses_init()
ncurses_init_color()
ncurses_init_pair()
ncurses_insch()
ncurses_insdelln()
ncurses_insertln()
ncurses_insstr()
ncurses_instr()
ncurses_isendwin()
ncurses_keyok()
ncurses_keypad()
ncurses_killchar()
ncurses_longname()
ncurses_meta()
ncurses_mouse_trafo()
ncurses_mouseinterval()
ncurses_mousemask()
ncurses_move()
ncurses_move_panel()
ncurses_mvaddch()
ncurses_mvaddchnstr()
ncurses_mvaddchstr()
ncurses_mvaddnstr()
ncurses_mvaddstr()
ncurses_mvcur()
ncurses_mvdelch()
ncurses_mvgetch()
ncurses_mvhline()
ncurses_mvinch()
ncurses_mvvline()
ncurses_mvwaddstr()
ncurses_napms()
ncurses_new_panel()
ncurses_newpad()
ncurses_newwin()
ncurses_nl()
ncurses_nocbreak()
ncurses_noecho()
ncurses_nonl()
ncurses_noqiflush()
ncurses_noraw()
ncurses_pair_content()
ncurses_panel_above()
ncurses_panel_below()
ncurses_panel_window()
ncurses_pnoutrefresh()
ncurses_prefresh()
ncurses_putp()
ncurses_qiflush()
ncurses_raw()
ncurses_refresh()
ncurses_replace_panel()
ncurses_reset_prog_mode()
ncurses_reset_shell_mode()
ncurses_resetty()
ncurses_savetty()
ncurses_scr_dump()
ncurses_scr_init()
ncurses_scr_restore()
ncurses_scr_set()
ncurses_scrl()
ncurses_show_panel()
ncurses_slk_attr()
ncurses_slk_attroff()
ncurses_slk_attron()
ncurses_slk_attrset()
ncurses_slk_clear()
ncurses_slk_color()
ncurses_slk_init()
ncurses_slk_noutrefresh()
ncurses_slk_refresh()
ncurses_slk_restore()
ncurses_slk_set()
ncurses_slk_touch()
ncurses_standend()
ncurses_standout()
ncurses_start_color()
ncurses_termattrs()
ncurses_termname()
ncurses_timeout()
ncurses_top_panel()
ncurses_typeahead()
ncurses_ungetch()
ncurses_ungetmouse()
ncurses_update_panels()
ncurses_use_default_colors()
ncurses_use_env()
ncurses_use_extended_names()
ncurses_vidattr()
ncurses_vline()
ncurses_waddch()
ncurses_waddstr()
ncurses_wattroff()
ncurses_wattron()
ncurses_wattrset()
ncurses_wborder()
ncurses_wclear()
ncurses_wcolor_set()
ncurses_werase()
ncurses_wgetch()
ncurses_whline()
ncurses_wmouse_trafo()
ncurses_wmove()
ncurses_wnoutrefresh()
ncurses_wrefresh()
ncurses_wstandend()
ncurses_wstandout()
ncurses_wvline()
next()
ngettext()
nl2br()
nl_langinfo()
notes_body()
notes_copy_db()
notes_create_db()
notes_create_note()
notes_drop_db()
notes_find_note()
notes_header_info()
notes_list_msgs()
notes_mark_read()
notes_mark_unread()
notes_nav_create()
notes_search()
notes_unread()
notes_version()
nsapi_request_headers()
nsapi_response_headers()
nsapi_virtual()
number_format()

O

ob_clean()
ob_end_clean()
ob_end_flush()
ob_flush()
ob_get_clean()
ob_get_contents()
ob_get_flush()
ob_get_length()
ob_get_level()
ob_get_status()
ob_gzhandler()
ob_iconv_handler()
ob_implicit_flush()
ob_list_handlers()
ob_start()
ob_tidyhandler()
OCI-Collection->append()
OCI-Collection->assign()
OCI-Collection->assignElem()
OCI-Collection->free()
OCI-Collection->getElem()
OCI-Collection->max()
OCI-Collection->size()
OCI-Collection->trim()
oci_bind_by_name()
oci_cancel()
oci_close()
oci_commit()
oci_connect()
oci_define_by_name()
oci_error()
oci_execute()
oci_fetch()
oci_fetch_all()
oci_fetch_array()
oci_fetch_assoc()
oci_fetch_object()
oci_fetch_row()
oci_field_is_null()
oci_field_name()
oci_field_precision()
oci_field_scale()
oci_field_size()
oci_field_type()
oci_field_type_raw()
oci_free_statement()
oci_internal_debug()
oci_lob_copy()
oci_lob_is_equal()
oci_new_collection()
oci_new_connect()
oci_new_cursor()
oci_new_descriptor()
oci_num_fields()
oci_num_rows()
oci_parse()
oci_password_change()
oci_pconnect()
oci_result()
oci_rollback()
oci_server_version()
oci_set_prefetch()
oci_statement_type()
ocibindbyname()
ocicancel()
ocicloselob()
ocicollappend()
ocicollassign()
ocicollassignelem()
ocicollgetelem()
ocicollmax()
ocicollsize()
ocicolltrim()
ocicolumnisnull()
ocicolumnname()
ocicolumnprecision()
ocicolumnscale()
ocicolumnsize()
ocicolumntype()
ocicolumntyperaw()
ocicommit()
ocidefinebyname()
ocierror()
ociexecute()
ocifetch()
ocifetchinto()
ocifetchstatement()
ocifreecollection()
ocifreecursor()
ocifreedesc()
ocifreestatement()
ociinternaldebug()
ociloadlob()
ocilogoff()
ocilogon()
ocinewcollection()
ocinewcursor()
ocinewdescriptor()
ocinlogon()
ocinumcols()
ociparse()
ociplogon()
ociresult()
ocirollback()
ocirowcount()
ocisavelob()
ocisavelobfile()
ociserverversion()
ocisetprefetch()
ocistatementtype()
ociwritelobtofile()
ociwritetemporarylob()
octdec()
odbc_autocommit()
odbc_binmode()
odbc_close()
odbc_close_all()
odbc_columnprivileges()
odbc_columns()
odbc_commit()
odbc_connect()
odbc_cursor()
odbc_data_source()
odbc_do()
odbc_error()
odbc_errormsg()
odbc_exec()
odbc_execute()
odbc_fetch_array()
odbc_fetch_into()
odbc_fetch_object()
odbc_fetch_row()
odbc_field_len()
odbc_field_name()
odbc_field_num()
odbc_field_precision()
odbc_field_scale()
odbc_field_type()
odbc_foreignkeys()
odbc_free_result()
odbc_gettypeinfo()
odbc_longreadlen()
odbc_next_result()
odbc_num_fields()
odbc_num_rows()
odbc_pconnect()
odbc_prepare()
odbc_primarykeys()
odbc_procedurecolumns()
odbc_procedures()
odbc_result()
odbc_result_all()
odbc_rollback()
odbc_setoption()
odbc_specialcolumns()
odbc_statistics()
odbc_tableprivileges()
odbc_tables()
openal_buffer_create()
openal_buffer_data()
openal_buffer_destroy()
openal_buffer_get()
openal_buffer_loadwav()
openal_context_create()
openal_context_current()
openal_context_destroy()
openal_context_process()
openal_context_suspend()
openal_device_close()
openal_device_open()
openal_listener_get()
openal_listener_set()
openal_source_create()
openal_source_destroy()
openal_source_get()
openal_source_pause()
openal_source_play()
openal_source_rewind()
openal_source_set()
openal_source_stop()
openal_stream()
opendir()
openlog()
openssl_csr_export()
openssl_csr_export_to_file()
openssl_csr_new()
openssl_csr_sign()
openssl_error_string()
openssl_free_key()
openssl_get_privatekey()
openssl_get_publickey()
openssl_open()
openssl_pkcs7_decrypt()
openssl_pkcs7_encrypt()
openssl_pkcs7_sign()
openssl_pkcs7_verify()
openssl_pkey_export()
openssl_pkey_export_to_file()
openssl_pkey_get_private()
openssl_pkey_get_public()
openssl_pkey_new()
openssl_private_decrypt()
openssl_private_encrypt()
openssl_public_decrypt()
openssl_public_encrypt()
openssl_seal()
openssl_sign()
openssl_verify()
openssl_x509_check_private_key()
openssl_x509_checkpurpose()
openssl_x509_export()
openssl_x509_export_to_file()
openssl_x509_free()
openssl_x509_parse()
openssl_x509_read()
ora_bind()
ora_close()
ora_columnname()
ora_columnsize()
ora_columntype()
ora_commit()
ora_commitoff()
ora_commiton()
ora_do()
ora_error()
ora_errorcode()
ora_exec()
ora_fetch()
ora_fetch_into()
ora_getcolumn()
ora_logoff()
ora_logon()
ora_numcols()
ora_numrows()
ora_open()
ora_parse()
ora_plogon()
ora_rollback()
ord()
output_add_rewrite_var()
output_reset_rewrite_vars()
overload()
override_function()
ovrimos_close()
ovrimos_commit()
ovrimos_connect()
ovrimos_cursor()
ovrimos_exec()
ovrimos_execute()
ovrimos_fetch_into()
ovrimos_fetch_row()
ovrimos_field_len()
ovrimos_field_name()
ovrimos_field_num()
ovrimos_field_type()
ovrimos_free_result()
ovrimos_longreadlen()
ovrimos_num_fields()
ovrimos_num_rows()
ovrimos_prepare()
ovrimos_result()
ovrimos_result_all()
ovrimos_rollback()

P

pack()
ParentIterator::getChildren()
ParentIterator::hasChildren()
ParentIterator::next()
ParentIterator::rewind()
parse_ini_file()
parse_str()
parse_url()
parsekit_compile_file()
parsekit_compile_string()
parsekit_func_arginfo()
passthru()
pathinfo()
pclose()
pcntl_alarm()
pcntl_exec()
pcntl_fork()
pcntl_getpriority()
pcntl_setpriority()
pcntl_signal()
pcntl_wait()
pcntl_waitpid()
pcntl_wexitstatus()
pcntl_wifexited()
pcntl_wifsignaled()
pcntl_wifstopped()
pcntl_wstopsig()
pcntl_wtermsig()
pdf_add_annotation()
pdf_add_bookmark()
pdf_add_launchlink()
pdf_add_locallink()
pdf_add_note()
pdf_add_outline()
pdf_add_pdflink()
pdf_add_thumbnail()
pdf_add_weblink()
pdf_arc()
pdf_arcn()
pdf_attach_file()
pdf_begin_page()
pdf_begin_pattern()
pdf_begin_template()
pdf_circle()
pdf_clip()
pdf_close()
pdf_close_image()
pdf_close_pdi()
pdf_close_pdi_page()
pdf_closepath()
pdf_closepath_fill_stroke()
pdf_closepath_stroke()
pdf_concat()
pdf_continue_text()
pdf_curveto()
pdf_delete()
pdf_end_page()
pdf_end_pattern()
pdf_end_template()
pdf_endpath()
pdf_fill()
pdf_fill_stroke()
pdf_findfont()
pdf_get_buffer()
pdf_get_font()
pdf_get_fontname()
pdf_get_fontsize()
pdf_get_image_height()
pdf_get_image_width()
pdf_get_majorversion()
pdf_get_minorversion()
pdf_get_parameter()
pdf_get_pdi_parameter()
pdf_get_pdi_value()
pdf_get_value()
pdf_initgraphics()
pdf_lineto()
pdf_makespotcolor()
pdf_moveto()
pdf_new()
pdf_open()
pdf_open_ccitt()
pdf_open_file()
pdf_open_gif()
pdf_open_image()
pdf_open_image_file()
pdf_open_jpeg()
pdf_open_memory_image()
pdf_open_pdi()
pdf_open_pdi_page()
pdf_open_png()
pdf_open_tiff()
pdf_place_image()
pdf_place_pdi_page()
pdf_rect()
pdf_restore()
pdf_rotate()
pdf_save()
pdf_scale()
pdf_set_border_color()
pdf_set_border_dash()
pdf_set_border_style()
pdf_set_char_spacing()
pdf_set_duration()
pdf_set_font()
pdf_set_horiz_scaling()
pdf_set_info()
pdf_set_info_author()
pdf_set_info_creator()
pdf_set_info_keywords()
pdf_set_info_subject()
pdf_set_info_title()
pdf_set_leading()
pdf_set_parameter()
pdf_set_text_matrix()
pdf_set_text_pos()
pdf_set_text_rendering()
pdf_set_text_rise()
pdf_set_value()
pdf_set_word_spacing()
pdf_setcolor()
pdf_setdash()
pdf_setflat()
pdf_setfont()
pdf_setgray()
pdf_setgray_fill()
pdf_setgray_stroke()
pdf_setlinecap()
pdf_setlinejoin()
pdf_setlinewidth()
pdf_setmatrix()
pdf_setmiterlimit()
pdf_setpolydash()
pdf_setrgbcolor()
pdf_setrgbcolor_fill()
pdf_setrgbcolor_stroke()
pdf_show()
pdf_show_boxed()
pdf_show_xy()
pdf_skew()
pdf_stringwidth()
pdf_stroke()
pdf_translate()
PDO::__construct()
PDO::beginTransaction()
PDO::commit()
PDO::errorCode()
PDO::errorInfo()
PDO::exec()
PDO::lastInsertId()
PDO::prepare()
PDO::rollBack()
PDO::setAttribute()
PDOStatement::bindColumn()
PDOStatement::bindParam()
PDOStatement::errorCode()
PDOStatement::errorInfo()
PDOStatement::execute()
PDOStatement::fetch()
PDOStatement::fetchAll()
PDOStatement::fetchSingle()
PDOStatement::rowCount()
pfpro_cleanup()
pfpro_init()
pfpro_process()
pfpro_process_raw()
pfpro_version()
pfsockopen()
pg_affected_rows()
pg_cancel_query()
pg_client_encoding()
pg_close()
pg_connect()
pg_connection_busy()
pg_connection_reset()
pg_connection_status()
pg_convert()
pg_copy_from()
pg_copy_to()
pg_dbname()
pg_delete()
pg_end_copy()
pg_escape_bytea()
pg_escape_string()
pg_fetch_all()
pg_fetch_array()
pg_fetch_assoc()
pg_fetch_object()
pg_fetch_result()
pg_fetch_row()
pg_field_is_null()
pg_field_name()
pg_field_num()
pg_field_prtlen()
pg_field_size()
pg_field_type()
pg_free_result()
pg_get_notify()
pg_get_pid()
pg_get_result()
pg_host()
pg_insert()
pg_last_error()
pg_last_notice()
pg_last_oid()
pg_lo_close()
pg_lo_create()
pg_lo_export()
pg_lo_import()
pg_lo_open()
pg_lo_read()
pg_lo_read_all()
pg_lo_seek()
pg_lo_tell()
pg_lo_unlink()
pg_lo_write()
pg_meta_data()
pg_num_fields()
pg_num_rows()
pg_options()
pg_parameter_status()
pg_pconnect()
pg_ping()
pg_port()
pg_put_line()
pg_query()
pg_result_error()
pg_result_seek()
pg_result_status()
pg_select()
pg_send_query()
pg_set_client_encoding()
pg_trace()
pg_tty()
pg_unescape_bytea()
pg_untrace()
pg_update()
pg_version()
php_check_syntax()
php_ini_scanned_files()
php_logo_guid()
php_register_url_stream_wrapper()
php_sapi_name()
php_stream_can_cast()
php_stream_cast()
php_stream_close()
php_stream_closedir()
php_stream_copy_to_mem()
php_stream_copy_to_stream()
php_stream_eof()
php_stream_filter_register_factory()
php_stream_filter_unregister_factory()
php_stream_flush()
php_stream_fopen_from_file()
php_stream_fopen_temporary_file()
php_stream_fopen_tmpfile()
php_stream_getc()
php_stream_gets()
php_stream_is()
php_stream_is_persistent()
php_stream_make_seekable()
php_stream_open_wrapper()
php_stream_open_wrapper_as_file()
php_stream_open_wrapper_ex()
php_stream_opendir()
php_stream_passthru()
php_stream_read()
php_stream_readdir()
php_stream_rewinddir()
php_stream_seek()
php_stream_sock_open_from_socket()
php_stream_sock_open_host()
php_stream_sock_open_unix()
php_stream_stat()
php_stream_stat_path()
php_stream_tell()
php_stream_write()
php_strip_whitespace()
php_uname()
php_unregister_url_stream_wrapper()
phpcredits()
phpinfo()
phpversion()
pi()
png2wbmp()
popen()
pos()
posix_ctermid()
posix_get_last_error()
posix_getcwd()
posix_getegid()
posix_geteuid()
posix_getgid()
posix_getgrgid()
posix_getgrnam()
posix_getgroups()
posix_getlogin()
posix_getpgid()
posix_getpgrp()
posix_getpid()
posix_getppid()
posix_getpwnam()
posix_getpwuid()
posix_getrlimit()
posix_getsid()
posix_getuid()
posix_isatty()
posix_kill()
posix_mkfifo()
posix_setegid()
posix_seteuid()
posix_setgid()
posix_setpgid()
posix_setsid()
posix_setuid()
posix_strerror()
posix_times()
posix_ttyname()
posix_uname()
pow()
preg_grep()
preg_match()
preg_match_all()
preg_quote()
preg_replace()
preg_replace_callback()
preg_split()
prev()
print()
print_r()
printer_abort()
printer_close()
printer_create_brush()
printer_create_dc()
printer_create_font()
printer_create_pen()
printer_delete_brush()
printer_delete_dc()
printer_delete_font()
printer_delete_pen()
printer_draw_bmp()
printer_draw_chord()
printer_draw_elipse()
printer_draw_line()
printer_draw_pie()
printer_draw_rectangle()
printer_draw_roundrect()
printer_draw_text()
printer_end_doc()
printer_end_page()
printer_get_option()
printer_list()
printer_logical_fontheight()
printer_open()
printer_select_brush()
printer_select_font()
printer_select_pen()
printer_set_option()
printer_start_doc()
printer_start_page()
printer_write()
printf()
proc_close()
proc_get_status()
proc_nice()
proc_open()
proc_terminate()
pspell_add_to_personal()
pspell_add_to_session()
pspell_check()
pspell_clear_session()
pspell_config_create()
pspell_config_data_dir()
pspell_config_dict_dir()
pspell_config_ignore()
pspell_config_mode()
pspell_config_personal()
pspell_config_repl()
pspell_config_runtogether()
pspell_config_save_repl()
pspell_new()
pspell_new_config()
pspell_new_personal()
pspell_save_wordlist()
pspell_store_replacement()
pspell_suggest()
putenv()

Q

qdom_error()
qdom_tree()
quoted_printable_decode()
quotemeta()

R

rad2deg()
rand()
range()
Rar::extract()
Rar::getAttr()
Rar::getCrc()
Rar::getFileTime()
Rar::getHostOs()
Rar::getMethod()
Rar::getName()
Rar::getPackedSize()
Rar::getUnpackedSize()
Rar::getVersion()
rar_close()
rar_entry_get()
rar_list()
rar_open()
rawurldecode()
rawurlencode()
read_exif_data()
readdir()
readfile()
readgzfile()
readline()
readline_add_history()
readline_callback_handler_install()
readline_callback_handler_remove()
readline_callback_read_char()
readline_clear_history()
readline_completion_function()
readline_info()
readline_list_history()
readline_on_new_line()
readline_read_history()
readline_redisplay()
readline_write_history()
readlink()
realpath()
recode()
recode_file()
recode_string()
RecursiveDirectoryIterator::getChildren()
RecursiveDirectoryIterator::hasChildren()
RecursiveDirectoryIterator::key()
RecursiveDirectoryIterator::next()
RecursiveDirectoryIterator::rewind()
RecursiveIteratorIterator::current()
RecursiveIteratorIterator::getDepth()
RecursiveIteratorIterator::getSubIterator()
RecursiveIteratorIterator::key()
RecursiveIteratorIterator::next()
RecursiveIteratorIterator::rewind()
RecursiveIteratorIterator::valid()
register_shutdown_function()
register_tick_function()
rename()
rename_function()
reset()
restore_error_handler()
restore_exception_handler()
restore_include_path()
result->current_field()
result->data_seek()
result->fetch_array()
result->fetch_field()
result->fetch_field_direct()
result->fetch_fields()
result->fetch_object()
result->fetch_row()
result->field_count()
result->field_seek()
result->free()
result->lengths()
rewind()
rewinddir()
rmdir()
round()
rsort()
rtrim()

S

scandir()
sem_acquire()
sem_get()
sem_release()
sem_remove()
serialize()
sesam_affected_rows()
sesam_commit()
sesam_connect()
sesam_diagnostic()
sesam_disconnect()
sesam_errormsg()
sesam_execimm()
sesam_fetch_array()
sesam_fetch_result()
sesam_fetch_row()
sesam_field_array()
sesam_field_name()
sesam_free_result()
sesam_num_fields()
sesam_query()
sesam_rollback()
sesam_seek_row()
sesam_settransaction()
session_cache_expire()
session_cache_limiter()
session_commit()
session_decode()
session_destroy()
session_encode()
session_get_cookie_params()
session_id()
session_is_registered()
session_module_name()
session_name()
session_regenerate_id()
session_register()
session_save_path()
session_set_cookie_params()
session_set_save_handler()
session_start()
session_unregister()
session_unset()
session_write_close()
set_error_handler()
set_exception_handler()
set_file_buffer()
set_include_path()
set_magic_quotes_runtime()
set_time_limit()
setcookie()
setlocale()
setrawcookie()
settype()
sha1()
sha1_file()
shell_exec()
shm_attach()
shm_detach()
shm_get_var()
shm_put_var()
shm_remove()
shm_remove_var()
shmop_close()
shmop_delete()
shmop_open()
shmop_read()
shmop_size()
shmop_write()
show_source()
shuffle()
similar_text()
simplexml_import_dom()
simplexml_load_file()
simplexml_load_string()
SimpleXMLElement->asXML()
SimpleXMLElement->attributes()
SimpleXMLElement->children()
SimpleXMLElement->xpath()
SimpleXMLIterator::current()
SimpleXMLIterator::getChildren()
SimpleXMLIterator::hasChildren()
SimpleXMLIterator::key()
SimpleXMLIterator::next()
SimpleXMLIterator::rewind()
SimpleXMLIterator::valid()
sin()
sinh()
sizeof()
sleep()
snmp_get_quick_print()
snmp_get_valueretrieval()
snmp_read_mib()
snmp_set_enum_print()
snmp_set_oid_numeric_print()
snmp_set_quick_print()
snmp_set_valueretrieval()
snmpget()
snmpgetnext()
snmprealwalk()
snmpset()
snmpwalk()
snmpwalkoid()
SoapClient::__call()
SoapClient::__getFunctions()
SoapClient::__getLastRequest()
SoapClient::__getLastResponse()
SoapClient::__getTypes()
SoapClient::SoapClient()
SoapFault::SoapFault()
SoapHeader::SoapHeader()
SoapParam::SoapParam()
SoapServer::addFunction()
SoapServer::getFunctions()
SoapServer::handle()
SoapServer::setClass()
SoapServer::setPersistence()
SoapServer::SoapServer()
SoapVar::SoapVar()
socket_accept()
socket_bind()
socket_clear_error()
socket_close()
socket_connect()
socket_create()
socket_create_listen()
socket_create_pair()
socket_get_option()
socket_get_status()
socket_getpeername()
socket_getsockname()
socket_last_error()
socket_listen()
socket_read()
socket_recv()
socket_recvfrom()
socket_select()
socket_send()
socket_sendto()
socket_set_block()
socket_set_blocking()
socket_set_nonblock()
socket_set_option()
socket_set_timeout()
socket_shutdown()
socket_strerror()
socket_write()
sort()
soundex()
spl_classes()
split()
spliti()
sprintf()
sql_regcase()
sqlite_array_query()
sqlite_busy_timeout()
sqlite_changes()
sqlite_close()
sqlite_column()
sqlite_create_aggregate()
sqlite_create_function()
sqlite_current()
sqlite_error_string()
sqlite_escape_string()
sqlite_exec()
sqlite_factory()
sqlite_fetch_all()
sqlite_fetch_array()
sqlite_fetch_column_types()
sqlite_fetch_object()
sqlite_fetch_single()
sqlite_fetch_string()
sqlite_field_name()
sqlite_has_more()
sqlite_has_prev()
sqlite_last_error()
sqlite_last_insert_rowid()
sqlite_libencoding()
sqlite_libversion()
sqlite_next()
sqlite_num_fields()
sqlite_num_rows()
sqlite_open()
sqlite_popen()
sqlite_prev()
sqlite_query()
sqlite_rewind()
sqlite_seek()
sqlite_single_query()
sqlite_udf_decode_binary()
sqlite_udf_encode_binary()
sqlite_unbuffered_query()
sqrt()
srand()
sscanf()
ssh2_auth_none()
ssh2_auth_password()
ssh2_auth_pubkey_file()
ssh2_connect()
ssh2_exec()
ssh2_fetch_stream()
ssh2_fingerprint()
ssh2_methods_negotiated()
ssh2_scp_recv()
ssh2_scp_send()
ssh2_sftp()
ssh2_sftp_lstat()
ssh2_sftp_mkdir()
ssh2_sftp_readlink()
ssh2_sftp_realpath()
ssh2_sftp_rename()
ssh2_sftp_rmdir()
ssh2_sftp_stat()
ssh2_sftp_symlink()
ssh2_sftp_unlink()
ssh2_shell()
ssh2_tunnel()
stat()
stmt->bind_param()
stmt->bind_result()
stmt->data_seek()
stmt->execute()
stmt->fetch()
stmt->free_result()
stmt->num_rows()
stmt->param_count()
stmt->prepare()
stmt->reset()
stmt->send_long_data()
str_ireplace()
str_pad()
str_repeat()
str_replace()
str_rot13()
str_shuffle()
str_split()
str_word_count()
strcasecmp()
strchr()
strcmp()
strcoll()
strcspn()
stream_context_create()
stream_context_get_default()
stream_context_get_options()
stream_context_set_option()
stream_context_set_params()
stream_copy_to_stream()
stream_filter_append()
stream_filter_prepend()
stream_filter_register()
stream_filter_remove()
stream_get_contents()
stream_get_filters()
stream_get_line()
stream_get_meta_data()
stream_get_transports()
stream_get_wrappers()
stream_register_wrapper()
stream_select()
stream_set_blocking()
stream_set_timeout()
stream_set_write_buffer()
stream_socket_accept()
stream_socket_client()
stream_socket_enable_crypto()
stream_socket_get_name()
stream_socket_pair()
stream_socket_recvfrom()
stream_socket_sendto()
stream_socket_server()
stream_wrapper_register()
stream_wrapper_restore()
stream_wrapper_unregister()
strftime()
strip_tags()
stripcslashes()
stripos()
stripslashes()
stristr()
strlen()
strnatcasecmp()
strnatcmp()
strncasecmp()
strncmp()
strpbrk()
strpos()
strptime()
strrchr()
strrev()
strripos()
strrpos()
strspn()
strstr()
strtok()
strtolower()
strtotime()
strtoupper()
strtr()
strval()
substr()
substr_compare()
substr_count()
substr_replace()
swf_actiongeturl()
swf_actiongotoframe()
swf_actiongotolabel()
swf_actionnextframe()
swf_actionplay()
swf_actionprevframe()
swf_actionsettarget()
swf_actionstop()
swf_actiontogglequality()
swf_actionwaitforframe()
swf_addbuttonrecord()
swf_addcolor()
swf_closefile()
swf_definebitmap()
swf_definefont()
swf_defineline()
swf_definepoly()
swf_definerect()
swf_definetext()
swf_endbutton()
swf_enddoaction()
swf_endshape()
swf_endsymbol()
swf_fontsize()
swf_fontslant()
swf_fonttracking()
swf_getbitmapinfo()
swf_getfontinfo()
swf_getframe()
swf_labelframe()
swf_lookat()
swf_modifyobject()
swf_mulcolor()
swf_nextid()
swf_oncondition()
swf_openfile()
swf_ortho()
swf_ortho2()
swf_perspective()
swf_placeobject()
swf_polarview()
swf_popmatrix()
swf_posround()
swf_pushmatrix()
swf_removeobject()
swf_rotate()
swf_scale()
swf_setfont()
swf_setframe()
swf_shapearc()
swf_shapecurveto()
swf_shapecurveto3()
swf_shapefillbitmapclip()
swf_shapefillbitmaptile()
swf_shapefilloff()
swf_shapefillsolid()
swf_shapelinesolid()
swf_shapelineto()
swf_shapemoveto()
swf_showframe()
swf_startbutton()
swf_startdoaction()
swf_startshape()
swf_startsymbol()
swf_textwidth()
swf_translate()
swf_viewport()
swfaction()
swfbitmap()
SWFBitmap->getHeight()
SWFBitmap->getWidth()
swfbutton()
SWFbutton->addAction()
SWFbutton->addShape()
SWFbutton->setAction()
SWFbutton->setdown()
SWFbutton->setHit()
SWFbutton->setOver()
SWFbutton->setUp()
swfbutton_keypress()
swfdisplayitem()
SWFDisplayItem->addColor()
SWFDisplayItem->move()
SWFDisplayItem->moveTo()
SWFDisplayItem->multColor()
SWFDisplayItem->remove()
SWFDisplayItem->Rotate()
SWFDisplayItem->rotateTo()
SWFDisplayItem->scale()
SWFDisplayItem->scaleTo()
SWFDisplayItem->setDepth()
SWFDisplayItem->setName()
SWFDisplayItem->setRatio()
SWFDisplayItem->skewX()
SWFDisplayItem->skewXTo()
SWFDisplayItem->skewY()
SWFDisplayItem->skewYTo()
swffill()
SWFFill->moveTo()
SWFFill->rotateTo()
SWFFill->scaleTo()
SWFFill->skewXTo()
SWFFill->skewYTo()
swffont()
swffont->getwidth()
swfgradient()
SWFGradient->addEntry()
swfmorph()
SWFMorph->getshape1()
SWFMorph->getshape2()
swfmovie()
SWFMovie->add()
SWFMovie->nextframe()
SWFMovie->output()
swfmovie->remove()
SWFMovie->save()
SWFMovie->setbackground()
SWFMovie->setdimension()
SWFMovie->setframes()
SWFMovie->setrate()
SWFMovie->streammp3()
swfshape()
SWFShape->addFill()
SWFShape->drawCurve()
SWFShape->drawCurveTo()
SWFShape->drawLine()
SWFShape->drawLineTo()
SWFShape->movePen()
SWFShape->movePenTo()
SWFShape->setLeftFill()
SWFShape->setLine()
SWFShape->setRightFill()
swfsprite()
swfsprite->add()
SWFSprite->nextframe()
SWFSprite->remove()
SWFSprite->setframes()
swftext()
SWFText->addString()
SWFText->getWidth()
SWFText->moveTo()
SWFText->setColor()
SWFText->setFont()
SWFText->setHeight()
SWFText->setSpacing()
swftextfield()
SWFTextField->addstring()
SWFTextField->align()
SWFTextField->setbounds()
SWFTextField->setcolor()
SWFTextField->setFont()
SWFTextField->setHeight()
SWFTextField->setindentation()
SWFTextField->setLeftMargin()
SWFTextField->setLineSpacing()
SWFTextField->setMargins()
SWFTextField->setname()
SWFTextField->setrightMargin()
sybase_affected_rows()
sybase_close()
sybase_connect()
sybase_data_seek()
sybase_deadlock_retry_count()
sybase_fetch_array()
sybase_fetch_assoc()
sybase_fetch_field()
sybase_fetch_object()
sybase_fetch_row()
sybase_field_seek()
sybase_free_result()
sybase_get_last_message()
sybase_min_client_severity()
sybase_min_error_severity()
sybase_min_message_severity()
sybase_min_server_severity()
sybase_num_fields()
sybase_num_rows()
sybase_pconnect()
sybase_query()
sybase_result()
sybase_select_db()
sybase_set_message_handler()
sybase_unbuffered_query()
symlink()
syslog()
system()

T

tan()
tanh()
tcpwrap_check()
tempnam()
textdomain()
tidy::__construct()
tidy_access_count()
tidy_clean_repair()
tidy_config_count()
tidy_diagnose()
tidy_error_count()
tidy_get_body()
tidy_get_config()
tidy_get_error_buffer()
tidy_get_head()
tidy_get_html()
tidy_get_html_ver()
tidy_get_output()
tidy_get_release()
tidy_get_root()
tidy_get_status()
tidy_getopt()
tidy_is_xhtml()
tidy_is_xml()
tidy_load_config()
tidy_node->children()
tidy_node->get_attr()
tidy_node->get_nodes()
tidy_node->hasChildren()
tidy_node->hasSiblings()
tidy_node->isComment()
tidy_node->isHtml()
tidy_node->isJste()
tidy_node->isText()
tidy_node->isXhtml()
tidy_node->isXml()
tidy_node->next()
tidy_node->prev()
tidy_parse_file()
tidy_parse_string()
tidy_repair_file()
tidy_repair_string()
tidy_reset_config()
tidy_save_config()
tidy_set_encoding()
tidy_setopt()
tidy_warning_count()
tidyNode->isAsp()
tidyNode->isPhp()
time()
time_nanosleep()
tmpfile()
token_get_all()
token_name()
touch()
trigger_error()
trim()

U

uasort()
ucfirst()
ucwords()
udm_add_search_limit()
udm_alloc_agent()
udm_alloc_agent_array()
udm_api_version()
udm_cat_list()
udm_cat_path()
udm_check_charset()
udm_check_stored()
udm_clear_search_limits()
udm_close_stored()
udm_crc32()
udm_errno()
udm_error()
udm_find()
udm_free_agent()
udm_free_ispell_data()
udm_free_res()
udm_get_doc_count()
udm_get_res_field()
udm_get_res_param()
udm_hash32()
udm_load_ispell_data()
udm_open_stored()
udm_set_agent_param()
uksort()
umask()
uniqid()
unixtojd()
unlink()
unpack()
unregister_tick_function()
unserialize()
unset()
urldecode()
urlencode()
user_error()
usleep()
usort()
utf8_decode()
utf8_encode()

V

var_dump()
var_export()
variant()
variant_abs()
variant_add()
variant_and()
variant_cast()
variant_cat()
variant_cmp()
variant_date_from_timestamp()
variant_date_to_timestamp()
variant_div()
variant_eqv()
variant_fix()
variant_get_type()
variant_idiv()
variant_imp()
variant_int()
variant_mod()
variant_mul()
variant_neg()
variant_not()
variant_or()
variant_pow()
variant_round()
variant_set()
variant_set_type()
variant_sub()
variant_xor()
version_compare()
vfprintf()
virtual()
vpopmail_add_alias_domain()
vpopmail_add_alias_domain_ex()
vpopmail_add_domain()
vpopmail_add_domain_ex()
vpopmail_add_user()
vpopmail_alias_add()
vpopmail_alias_del()
vpopmail_alias_del_domain()
vpopmail_alias_get()
vpopmail_alias_get_all()
vpopmail_auth_user()
vpopmail_del_domain()
vpopmail_del_domain_ex()
vpopmail_del_user()
vpopmail_error()
vpopmail_passwd()
vpopmail_set_user_quota()
vprintf()
vsprintf()

W

w32api_deftype()
w32api_init_dtype()
w32api_invoke_function()
w32api_register_function()
w32api_set_call_method()
wddx_add_vars()
wddx_deserialize()
wddx_packet_end()
wddx_packet_start()
wddx_serialize_value()
wddx_serialize_vars()
wordwrap()

X

xattr_get()
xattr_list()
xattr_remove()
xattr_set()
xattr_supported()
xdiff_file_diff()
xdiff_file_diff_binary()
xdiff_file_merge3()
xdiff_file_patch()
xdiff_file_patch_binary()
xdiff_string_diff()
xdiff_string_diff_binary()
xdiff_string_merge3()
xdiff_string_patch()
xdiff_string_patch_binary()
xml_error_string()
xml_get_current_byte_index()
xml_get_current_column_number()
xml_get_current_line_number()
xml_get_error_code()
xml_parse()
xml_parse_into_struct()
xml_parser_create()
xml_parser_create_ns()
xml_parser_free()
xml_parser_get_option()
xml_parser_set_option()
xml_set_character_data_handler()
xml_set_default_handler()
xml_set_element_handler()
xml_set_end_namespace_decl_handler()
xml_set_external_entity_ref_handler()
xml_set_notation_decl_handler()
xml_set_object()
xml_set_processing_instruction_handler()
xml_set_start_namespace_decl_handler()
xml_set_unparsed_entity_decl_handler()
xmlrpc_decode()
xmlrpc_decode_request()
xmlrpc_encode()
xmlrpc_encode_request()
xmlrpc_get_type()
xmlrpc_is_fault()
xmlrpc_parse_method_descriptions()
xmlrpc_server_add_introspection_data()
xmlrpc_server_call_method()
xmlrpc_server_create()
xmlrpc_server_destroy()
xmlrpc_server_register_introspection_callback()
xmlrpc_server_register_method()
xmlrpc_set_type()
xpath_eval()
xpath_eval_expression()
xpath_new_context()
xptr_eval()
xptr_new_context()
xsl_xsltprocessor_get_parameter()
xsl_xsltprocessor_has_exslt_support()
xsl_xsltprocessor_import_stylesheet()
xsl_xsltprocessor_register_php_functions()
xsl_xsltprocessor_remove_parameter()
xsl_xsltprocessor_set_parameter()
xsl_xsltprocessor_transform_to_doc()
xsl_xsltprocessor_transform_to_uri()
xsl_xsltprocessor_transform_to_xml()
xslt_backend_info()
xslt_backend_name()
xslt_backend_version()
xslt_create()
xslt_errno()
xslt_error()
xslt_free()
xslt_getopt()
xslt_process()
xslt_set_base()
xslt_set_encoding()
xslt_set_error_handler()
xslt_set_log()
xslt_set_object()
xslt_set_sax_handler()
xslt_set_sax_handlers()
xslt_set_scheme_handler()
xslt_set_scheme_handlers()
xslt_setopt()

Y

yaz_addinfo()
yaz_ccl_conf()
yaz_ccl_parse()
yaz_close()
yaz_connect()
yaz_database()
yaz_element()
yaz_errno()
yaz_error()
yaz_es_result()
yaz_get_option()
yaz_hits()
yaz_itemorder()
yaz_present()
yaz_range()
yaz_record()
yaz_scan()
yaz_scan_result()
yaz_schema()
yaz_search()
yaz_set_option()
yaz_sort()
yaz_syntax()
yaz_wait()
yp_all()
yp_cat()
yp_err_string()
yp_errno()
yp_first()
yp_get_default_domain()
yp_master()
yp_match()
yp_next()
yp_order()

Z

zend_logo_guid()
zend_version()
zip_close()
zip_entry_close()
zip_entry_compressedsize()
zip_entry_compressionmethod()
zip_entry_filesize()
zip_entry_name()
zip_entry_open()
zip_entry_read()
zip_open()
zip_read()
zlib_get_coding_type()

Пред. | Начало | След.
Список функций | Уровень выше | Что отсутствует в этом руководстве


Что отсутствует в этом руководстве

Руководство по PHP
Пред. След.

Приложение U. Что отсутствует в этом руководстве

Пред. | Начало | След.
Список функций | Уровень выше | Руководство в формате HTML Help


Руководство по PHP

Авторские права

Авторские права © 1997 - 2005 принадлежит группе документирования PHP. Эти материалы могут быть распространены только на условиях и соглашениях, освещенных в Лицензии на Открытые Публикации (the Open Publication License) версии 1.0 или более поздней. Копия Лицензии на Открытые Публикации распространяется вместе с руководством, на данный момент последняя версия доступна по адресу http://www.opencontent.org/openpub/.

Запрещается распространение существенно измененных версий этого документа без явного на то разрешения обладателя авторских прав.

Запрещается распространение этого документа или его производных в любой книжной (бумажной) форме без предварительного разрешения, полученного от обладателя авторских прав.

В случае, если вы заинтересованы в распространении или публикации этого документа целиком или частично, модифицированным или немодифицированным, и у вас есть вопросы, пожалуйста, свяжитесь с обладателями авторского права по адресу doc-license@lists.php.net. Обратите внимание, что этот адрес является публичным архивируемым списком рассылки.

Авторские права на главу 'Расширение возможностей PHP 4.0' этого руководства © 2000 принадлежат Zend Technologies, Ltd. Этот материал может быть распространен только на условиях и соглашениях, освещенных в Лицензии на Открытые Публикации (the Open Publication License) версии 1.0 или более поздней (последняя версия Лицензии доступна по адресу http://www.opencontent.org/openpub/).

Начало


About This Edition

Руководство по PHP
Пред. След.

Глава 62. About This Edition

The Windows HTML Help Edition of the PHP Manual is aimed at developers, who want the manual at hand every time, and would like to read manual pages and user notes without waiting for a remote webpage to download. This edition gives you the full content of the manual plus the user notes, with some great features provided by the viewer application by the scripts we use to generate this format and by other contributors in the form of skins.

This distribution of the PHP Manual contains many files, including the main manual file php_manual_en.chm. You can view the manual by double clicking on this file (as you already guessed). The user notes are in php_manual_notes.chm. You only need to have one copy of this file on your computer, regardless of how many languages you use to read the PHP Manual. The only requirement is that you need to have all php_manual_LANG.chm files in one directory with php_manual_notes.chm. You may also see a php_manual_en.chw file in the directory, it's generated the first time you use the index tab, and it contains an index with the manual's pages.

For those interested in technical details about Microsoft HTML Help, http://www.helpware.net/ is a great resource. For more information and positioning of Windows HTML Help in the Microsoft help formats and services history, see this WinWriters article.

Пред. | Начало | След.
Руководство в формате HTML Help | Уровень выше | Using PHP Manual CHM Edition


CHM Edition Credits

Руководство по PHP
Пред.

Глава 68. CHM Edition Credits

This enhanced version of the PHP Manual would never come to existence, if the following people would not help with their contribution to the project (in no particular order):

  • Holger Eggert, who created the two default designs, and provided many usability tips

  • Gonzalo De la Pena Andreu, who added many comments on how it would be ideal to provide the skinnable interface

  • Olexandr Vynnychenko added countless comments and testing all the time

  • Brendan Ferguson, who provided many optimizations, improvements to the HTML and JS codes behind the manual pages

  • Sandor Hojtsy, who coded the manual preferences desktop application

  • And at last but not least, everybody, who provided feedback through our mailing list, and in the user survey

Пред. | Начало
CSS classes | Уровень выше


Integrating the PHP Manual

Руководство по PHP
Пред. След.

Глава 66. Integrating the PHP Manual

Замечание: The information provided here is mainly aimed at IDE authors, or advanced users who would like to integrate this CHM file to their favorite IDEs or other production environment components.

There are several editors out there with support for CHM integration, but you may need to know a few things about what the CHM contains to successfully integrate the manual into your environment.

The CHM is built using XSL style sheets from XML sources. This is unique currently in the PHP Manual family, as all other versions are generated using DSSSL style sheets. This also means, that non-intentional rendering differences may come up. A special conversion script is run on the XSLT output, adding several cute features, and packing up the manual with the preferences files and skin examples.

If you never worked with CHMs, you can think of them as compressed files with OS supported access for files inside and some added search and index support. However CHMs can only be viewed using the HTML Help Viewer, you can directly access files inside them using a special URL prefix, the CHM file name and the file you request from inside. As all the help content is stored in HTML files, you can show pages of the CHM in Internet Explorer.

Assume that you placed your php_manual_en.chm to c:\phpmanual the index file in the manual (which you see the first time) can be accessed with the following URL: mk:@MSITStore:C:\phpmanual\php_manual_en.chm::/_index.html. Here mk:@MSITStore: is the special "protocol", C:\phpmanual\php_manual_en.chm is the CHM with it's full path. The /_index.html part is the path to the index file inside the CHM and :: is just what you need to put between the CHM path and this file path.

Замечание: All files are in the root directory of the CHM, unlike the previous CHM versions which included a language directory. Images, style sheets and other supplemental files have names starting with an underscore (like the main index shown above), to avoid name collisions.

The names of generated files follow the same rules as the online manual, except that the extension is .html and not .php. The most important is that function documentation files are named function.FUNCNAME.html where FUNCNAME is the function name, with all underscores converted to hyphens. Some examples are function.echo.html, function.mysql-close.html, function.imagecopy.html.

Using all this information, you can show a manual page for a function requested by a user. A simple example is included in the distribution, named php_quickref.hta. This is a HTML Application to demonstrate the simple process of showing a manual page for a function. The quickRef() function defined therein does the job.

If you would like to integrate the manual into an IDE without direct support for the PHP manual (actually the underscore to hyphen conversion), you can use the included _function.html file to access a function page. This file is simply a redirector, and can be parameterized via the URL, as _function.html#mysql_close. This page will redirect you to the mysql_close function page (function.mysql-close.html) automatically. You can provide the full path of this file if your IDE supports context sensitive help, and provide the IDE specified string as the parameter. An example for this is the UltraEdit 9 intergation (see the edition's website).

The index of the manual (accessible via the index tab on the navigation pane) can also be used for integrational purposes. All the HTML pages are included in the index with their titles as index terms (including function description pages).

If you are a desktop application developer and would like to tightly integrate the CHM into your program (such as displaying the TOC tree in your IDE's help box), you can find more information at http://www.helpware.net/, as well as links to other useful resources. The official site for HTML Help is at http://msdn.microsoft.com/library/en-us/htmlhelp/html/vsconhh1start.asp.

Пред. | Начало | След.
Presentational Specialities | Уровень выше | Skin development


The Full Text Search

Руководство по PHP
Пред. След.

Глава 64. The Full Text Search

Содержание
General searching rules
Searching for words or phrases
Defining search terms
Using nested expressions when searching
Manual Content and User Note Separation

This edition of the PHP Manual includes an advanced full text search possibility provided by the viewer application. This enables users to search through every word in the help file to find a match. For example, if a user does a full-text search on the word "Apache", every topic that contains the word "Apache" will be listed. Advanced full-text search allows a user to search using boolean, wildcard, and nested expressions. A user can also limit the search to previous results, match similar words, or search topic titles only.

The usage of the search feature is fairly straightforward. Click on the search tab, type in the desired words and press ENTER (or click on "List Topics"). Then you'll receive a list of matches from the PHP Manual (and the notes). You can use the button with a right arrow on it to add boolean operators to your search (or you can type them in). As you see the results, you can use the column headings (Title, Location and Rank) to sort the topic list. The default order is by Rank. You can also adjust some parameters at the bottom of this tab.

The words found are highlighted on the current page in the Topic pane by default. You can turn off this feature by choosing the "Search Highlight Off" menu item in the Options menu. To can get this feature back similarly. If you are viewing a long topic, only the first 500 instances of a search word or phrase will be highlighted, due to a limitation of the viewer.

General searching rules

A basic search consists of the word or phrase you want to find. You can use wildcard expressions, nested expressions, boolean operators, similar word matches, a previous results list, or topic titles to further define your search.

The basic rules for formulating queries are as follows:

  • Searches are not case-sensitive, so you can type your search in uppercase or lowercase characters.

  • You may search for any combination of letters (a-z) and numbers (0-9). You cannot search for single letters (a, b, c, etc.) and common words, like: an, and, as, at, be, but, by, do, for, from, have, he, in, it, not, of, on, or, she, that, the, there, they, this, to, we, which, with, you.

  • Punctuation marks such as the period (.), colon (:), semicolon (;), comma (,), and hyphen (-) are ignored during a search.

  • Group the elements of your search using double quotes or parentheses to set apart each element. You cannot search for quotation marks.

Замечание: If you are searching for a file name with an extension, you should group the entire string in double quotes, ("filename.ext"). Otherwise, the period will break the file name into two separate terms. The default operation between terms is AND, so you will create the logical equivalent to "filename AND ext."

Пред. | Начало | След.
Keyboard Shortcuts | Уровень выше | Searching for words or phrases


Using nested expressions when searching

Nested expressions allow you to create complex searches for information. For example, "html AND ((smtp OR pop3) NEAR mail)" finds topics containing the word "html" along with the words "smtp" and "mail" close together, or containing "html" along with the words "pop3" and "mail" close together.

The basic rules for searching help topics using nested expressions are as follows:

  • You can use parentheses to nest expressions within a query. The expressions in parentheses are evaluated before the rest of the query.

  • If a query does not contain a nested expression, it is evaluated from left to right. For example: "mail NOT pop3 OR smtp" finds topics containing the word "mail" without the word "pop3" or topics containing the word "smtp". On the other hand, "mail NOT (pop3 OR smtp)" finds topics containing the word "mail" without either of the words "pop3" or "smtp".

  • You cannot nest expressions more than five levels deep.

Пред. | Начало | След.
Defining search terms | Уровень выше | Manual Content and User Note Separation


Manual Content and User Note Separation

The manual content and the user notes are separated to php_manual_LANG.chm and php_manual_notes.chm. There were several resons to do this, including:

  • This way you can update the user notes and the manual independently as you need.

  • You can have more than one language of the manual, while only need to have one notes file. All the CHM files need to be in the same directory, and all translations need to share the same preferences if you would not like to have more then one notes file.

  • You can bookmark manual pages with notes, or just a notes part of a page separately.

  • You can "turn off" user note display and user note search results by simply deleting php_manual_notes.chm, moving it out of the directory or renaming it.

All these benefits lead us to provide the manual the way you can see it right now. This distribution had the effect on the full text search that you get search results from the manual content and from the user notes as separate ones. The "Location" column shows the source of the result, also enabling you to "add precedence" to manual content results with ordering the results by "Location". User note page titles are also prefixed with "N:" to make them easily distinguishable in the favorites list (there's no location info in the favorites list).

Пред. | Начало | След.
Using nested expressions when searching | Уровень выше | Specialities of this Edition


Defining search terms

The AND, OR, NOT, and NEAR operators enable you to precisely define your search by creating a relationship between search terms. The following table shows how you can use each of these operators. If no operator is specified, AND is used. For example, the query "server cgi security" is equivalent to "server AND cgi AND security".

Таблица 64-2. Search operators

Search for | Example | Results
Both terms in the same topic | http AND apache | Topics containing both the words "http" and "apache".
Either term in a topic | ming OR swflib | Topics containing either the word "ming" or the word "swflib" or both.
The first term without the second term | xml NOT expat | Topics containing the word "xml" but not the word "expat".
Both terms in the same topic, close together | database NEAR security | Topics containing the word "database" within eight words of the word "security".

Замечание: The |, &, and ! characters can also be used in place of OR AND and NOT respectively. This may not work if you use a very old version of the viewer.

Пред. | Начало | След.
Searching for words or phrases | Уровень выше | Using nested expressions when searching


Searching for words or phrases

You can search for words or phrases and use wildcard expressions. Wildcard expressions allow you to search for one or more characters using a question mark or asterisk. The table below describes the results of these different kinds of searches.

Таблица 64-1. Word and phrase searches

Search for | Example | Results
A single word | select | Topics that contain the word "select". (You will also find its grammatical variations, such as "selector" and "selection".)
A phrase "new operator" or new operator

Topics that contain the literal phrase "new operator" and all its grammatical variations.

Without the quotation marks, the query is equivalent to specifying "new AND operator," which will find topics containing both of the individual words, instead of the phrase.

Wildcard expressions esc* or HT??

Results for the first example include topics that contain the terms "ESC", "escape", "escalation", and so on. The asterisk cannot be the only character in the term.

Results for the second example include topics that contain the terms "HTTP", "HTML" and so on. The question mark cannot be the only character in the term.

Замечание: Select the Match similar words check box to include minor grammatical variations for the phrase you search. This feature only locates variations of the word with common suffixes. For example, a search on the word "add" will find "added," but it will not find "additive". This option is independent of other options or syntax. If you do a titles-only search, variations in titles will be matched. If you use quotes (or any other query operator) any variation of the word can appear; for example, "stemmed search" will also match "stemming search".

Пред. | Начало | След.
The Full Text Search | Уровень выше | Defining search terms


Skin development

Руководство по PHP
Пред. След.

Глава 67. Skin development

Содержание
Page Display Process
Page Elements
CSS classes

This edition of the PHP Manual allows users to choose from skins to display the contents, as well as develop custom skins to meet some special needs. We decided to support skins because we realized that one skin cannot satisfy everybody's needs in a such heavily used edition.

We included two skins by default inside the CHM. These cannot be modified or removed, so if you have the CHM, you have these two skins inside. The Low skin is optimized for small window display, the High skin is a variation of the Low one with some graphics added to spice it up.

A skin must have at least two files, a skin loader JavaScript file and a CSS file. The two inline skins have these files inside the CHM. The skin loader JS should at least load in the CSS file and display the page contents to the viewer. Theoretically there are two kinds of skins: CSS skins and Full skins. CSS skins only modify the CSS and does not amend the page layout. Full skins also modify the page layout. We have included sample skins for both the CSS skin type and the Full skin type ("greenlinks" and "headernostalgia" respectively).

Внимание

Note that though the current skin development methods are quite final, there may be heavy changes in used CSS classes or page elements while we refine the skin development ideas. As this edition is currently in development stage, the information described herein is not to be considered completely stable.

Page Display Process

If you are going to develop your own skin, you should know how one page is loaded and displayed to the user, and how a skin fits in this process. For these paragraphs, we assume that you have put your CHM into c:\phpmanual, so it's accessible as c:\phpmanual\php_manual_LANG.chm (where LANG is the language code), and you would like to see the function page of "echo", which is function.echo.html inside the CHM. See the sections about integration for more information on CHM contents.

  • First of all the HTML content is loaded in from function.echo.html from inside the CHM.

  • At the top of this file, there is a HTML <script> tag, which loads in the _script.js file from the CHM. This file contains all the JS code needed to move on with the process. Most importantly this JS defines many variables (like where the CHM is, or what is the actual page viewed) and many functions to print out the context menu or handle online functions.

  • At last _script.js loads in the preferences file from outside the CHM (c:\phpmanual\php_manual_prefs.js in our example). This JS file defines the preference variables, and calls back prefHandler() which is also defined in _script.js.

  • That function loads in the skin JS file as the preferences dictate. The skin JS file should load in the needed CSS file, and define a displayPage() function, which displays the page if called.

  • The HTML file (function.echo.html in this example) also contains a function call to load in the user notes, which simply puts the notes into this HTML file using DHTML to be displayed as if they were here before...

  • The HTML file also contains a body onload attribute which calls the skin-defined displayPage() function to show the page to the user. This is the last function called, it should present the page in it's complete form to the user.

Every action is synchronized with calling back a function in the previously loaded file when the JS is in memory. The notes loading and skin JS loading is only synchronized with the page's onload event (which as the Microsoft documentation says only fires if the page is completely loaded).

This load and callback chain may seem to be too complicated, but so far this seemed to be the best way to do as many things as possible parallel, while also synchronize some calls.

As you can see your skin JavaScript file is loaded in by _script.js and it's displayPage() function is called by the body onload event.

Пред. | Начало | След.
Integrating the PHP Manual | Уровень выше | Page Elements


CSS classes

We cannot provide accurate documentation currently on usable CSS classes, as some of the DocBook XSL sheets classes are not used and some classes are added. Please see the sample CSS files included for first time reference.

Пред. | Начало | След.
Page Elements | Уровень выше | CHM Edition Credits


Page Elements

The PHP Manual pages are all HTML files with several HTML tags in them for both presentational and divisional purposes. The HTML pages contain divisions to be used for skinning purposes and misc divisions added by the DocBook XSL sheets.

A HTML page can be either a function reference page or another kind of page (like a feature description). Skins should get ready to skin these two kinds of pages separately most of the time (depending on the actual design).

The pages are structured using <div> tags with appropriate IDs to ease the skin writers work. A page consists of these parts:

  • <div id="pageContent"></div> contains all the page contents. This begins right after <body> and ends just before </body>. This division is hidden by default, you need to show it after you are ready with the page rewriting process.

  • <div id="pageHeaders"></div> contains the page header parts. This includes the text only main title (in a <span id="pageTitle"></span>) and function properties, in case this is a function page (contained in <span id="funcPurpose"></span>, <span id="funcAvail"></span> and <span id="funcUsage"></span>). In case one of these three is not available, the current page is not a function page.

  • <div id="pageText"></div> contains the majority of the page contents, including examples, manual notes, warnings, etc. This also includes see also parts for now, as we still cannot differentiate between see also and normal text parts (may be a thing to change in the future).

  • <div id="pageNotes"></div> contains the user notes (itself loaded in from another HTML file by JS). It contains a heading, and then a <div> without ID for every user note and spans in that divs for every element of a user note (with "email", "date" and "text" IDs respectively).

  • <div id="pageNav"></div> contains the
navigation table, which is further divided into spans (<span
id="navPrev"></span>, <span
id="navPath"></span>, <span
id="navNext"></span>, <span
id="navOnline"></span>, <span
id="navThisOnline"></span> and <span
id="navReportBug"></span>), where navThisOnline
and navReportBug is inside navOnline.

If you would like to rewrite the page, you should first read in the parts you need from the page to JS variables, then clear the contents of pageContent (or just the part you would like to rewrite), write in the new content and show the pageContent div for the user. If you would not like to make any structural changes, you can simply display the pageContent div and only specify a special style sheet in your skin JS file (see the "greenlinks" skin for an example).

You can find a "Full skin" developed to show you how to make skins built on top of this structure. The skin name is "headernostalgia". It rewrites the header part and removes the footer navigational table.

Пред. | Начало | След.
Skin development | Уровень выше | CSS classes


Specialities of this Edition

Руководство по PHP
Пред. След.

Глава 65. Specialities of this Edition

Содержание
User Preferences
Presentational Specialities

The Windows HTML Help Edition of the PHP Manual over-performs the presentational and interactive capabilities offered by other editions (including the online manual). This was possible because currently CHMs can only be viewed on Windows using Internet explorer, so we can develop for one browser family and one operating system. Viewers for other OSes may be developed in the future by third parties.

User Preferences

Most of the interactive features of this manual are provided by the viewer application (including full text search, index, favorites list), but we extended this list with PHP Manual specific tools. All these can be adjusted to your needs using a simple desktop application named php_manual_prefs.exe. If you run this program you can see three groups of settings: Online Functions, Context Menu, and Skin. All your settings are stored in php_manual_prefs.js.

Online functions enable you to have elements connected to websites. The two ones you can see on all manual pages are "This page online" and "Report a bug". As you can figure out the first one shows you the same page in the online manual, the second one opens a page from http://bugs.php.net/ and prefills some bug data for you. You need to select a mirror site to use for "php.net sensitive" online functions. We recommend choosing a close mirror site to get the best speed. Other components that may be limited by this online functions setting include context menu items opening new websites ("Google search selection" for example). Custom designs may also include elements restricted by this setting.

The context menu settings enables you to choose which context menu you prefer. This application provides you with an option to define your own context menu adding elements to it from a predefined set. You can have this custom context menu for the right click of your mouse, and have the original menu for CTRL+right click, or the opposite way. Three special types of custom context menu items exist:

Таблица 65-1. Context menu items

Type | Examples | Comments
Page Jump | Function Reference, Function Index | These items jump to a specific page in the CHM. Page Jump options are not restricted to point inside the CHM though. They can point to websites or other resources. Page jump options with a protocol part in the URL open in new window.
Function Call | Print page, Select all, Copy selection to clipboard, Google Search Selection | These are "function calls" for internally defined context menu functions. The last two examples have the speciality that they only show up in the menu if you rightclicked on a selection. Currently there is no way to extend the context menu with skin defined functions.
Special display | Google SearchBox, AlltheWeb SearchBox | These are displayed as HTML forms, where you can enter search keywords, press ENTER, and receive a new window with the search issued in the appropriate search engine. Currently there is no way to extend the set of specially displayed context menu items.
Possible context menu elements and their "abstract implementations" are stored in context.ini. You have the ability to add possible page jump options there, but there is no way currently to extend the context menu system with user (skin) defined functions. The possible mirror sites are listed in mirrors.ini. Feel free to suggest more bundled context menu items to us at php-doc-chm@lists.php.net.

The skins setting enables you to choose from the two bundled default skins, or from any user defined skins. The Low skin is optimized to display correctly at any small size, the High skin is optimized for your viewing pleasure. Other skins may be developed according to our skins development guide. The recommended place for skins on the file system is the skins/SKINNAME subfolder of the PHP Manual directory. Though this is not required, some skins may define other rules (not recommended). We included sample skins for you to see examples of how to develop skins for the PHP Manual.

You have three buttons to choose from at the bottom. The Apply button applies your changes without exiting, the OK button applies and closes the application, the Cancel button does not modify your settings and closes the program.

Пред. | Начало | След.
Manual Content and User Note Separation | Уровень выше | Presentational Specialities


Presentational Specialities

This edition of the PHP Manual is highly optimized for screen presentation. Skins may be developed to better support printing, as this was not the goal of the included skins. This approach allowed us to make many modifications to the presentation of different parts of the manual.

The first thing you'll notice is that all examples are color coded, using the PHP function show_source(). The actual colors used are defined by CSS classes. Examples also have links to PHP functions used in them to provide quick access to reference material. All code examples have a "copy to clipboard" link by the side of them with which you can copy the text contents of the example to the clipboard.

External links are marked with a special » sign, and open in a new browser window. We also included the "path to this page" information on all pages for you to easily identify where you are and navigate as needed.

Other parts of the manual are quite similar to the online ones by default, though custom skins can modify many elements on the pages.

Пред. | Начало | След.
Specialities of this Edition | Уровень выше | Integrating the PHP Manual


Using PHP Manual CHM Edition

Руководство по PHP
Пред. След.

Глава 63. Using PHP Manual CHM Edition

Содержание
The HTML Help Toolbar
The Navigation Pane
Keyboard Shortcuts

When you double click on a CHM, a HTML Help Viewer window opens with three panes. On the left side of the window is the Navigation pane. It contains four navigational tabs: the Contents, Index, Search and Favorites tabs. On the right side of the window is the Topic pane. It displays the selected help topic, or the default help topic on startup. The help pages are all separate HTML files, your Internet Explorer displays the pages in the Topic pane. The third pane is the toolbar, which is located below the help window title bar. You can adjust the horizontal layout with dragging the vertical border between the Navigation pane and the Topic pane.

Note, that when you open the CHM the first time, it may appear in a strange position and size. From then, Windows remembers the window position, size and the last opened tab. All these including your favorites are stored in a file named hh.dat. If you move your file to another directory, all these remembered settings will be lost (including your favorites listing!). If you replace your CHM file with a new one, with the same name, this is not a problem though. The file names and path values are stored in hh.dat.

The HTML Help Toolbar

The HTML Help Toolbar contains the following icons, when you view the PHP Manual:

  • Hide/Show - Hides/shows the navigation pane.

  • Locate - Locates a topic in the contents tab (in case you reached a topic with search, index or favorites, and would like to see where it is in the table of contents tree view).

  • Back - Goes back in the history.

  • Forward - Goes forward in the history.

  • Refresh - Reloads the current page.

  • Home - Opens the startup page of the CHM.

  • Print - Opens the print dialog box.

  • Options - Provides a dropdown with more options.

Using this toolbar is really easy, many of the toolbar icons are strongly related to their Internet Explorer equivalents.

Пред. | Начало | След.
About This Edition | Уровень выше | The Navigation Pane


Keyboard Shortcuts

There are many keyboard shortcuts you can use to increase your productivity. Many users find it more appropriate to use these keyboard shortcuts to access topics, instead of clicking.

Таблица 63-1. General Help Viewer Shortcuts

To | Press
Close the Help Viewer | ALT+F4
Display the Options menu | ALT+O
Hide or show the Navigation pane | ALT+O, and then T
Print a topic | ALT+O, and then P
Move back to the previous topic | ALT+LEFT ARROW
Move forward to the next topic (provided you have viewed it just previously) | ALT+RIGHT ARROW
Turn on or off search highlighting. | ALT+O, and then O
Return to the help file home page | ALT+O, and then H
Switch between the Navigation pane and the Topic pane | F6
Scroll through all the links in a topic or through all the options on a Navigation pane tab | TAB
Display context (right click) menu [see the User Preferences section] | SHIFT+F10

Таблица 63-2. Contents Tab Shortcuts

To | Press
Display the Contents tab | ALT+C
Open and close a book or folder | PLUS SIGN and MINUS SIGN, or LEFT ARROW and RIGHT ARROW
Select a topic | DOWN ARROW and UP ARROW
Display the selected topic | ENTER

Таблица 63-3. Index Tab Shortcuts

To | Press
Display the Index tab | ALT+N
Type a keyword to search for | ALT+W, and then type the word
Select a keyword in the list | UP ARROW and DOWN ARROW
Display the associated topic | ENTER or ALT+D

Таблица 63-4. Search Tab shortcuts

To | Press
Display the Search tab | ALT+S
Type a keyword to search for | ALT+W, and then type the word
Start a search | ALT+L
Select a topic in the results list | ALT+T, and then UP ARROW and DOWN ARROW
Display the selected topic | ENTER or ALT+D
Search for a keyword in the result list of a prior search | ALT+U
Search for words similar to the keyword. For example, to find words like "running" and "runs" for the keyword "run" | ALT+M
Only search through topic titles | ALT+R

Таблица 63-5. Favorites Tab Shortcuts

To | Press
Display the Favorites tab | ALT+I
Add the currently displayed topic to the Favorites list | ALT+A
Select a topic in the Favorites list | ALT+P, and then UP ARROW and DOWN ARROW
Display the selected topic | ENTER or ALT+D
Remove the selected topic from the list | ALT+R

Таблица 63-6. Topic Pane Shortcuts

To | Press
Index Lookup | Select the words you would like to look up and press F1
Find on page | CTRL+F, and then adjust options
Refresh page | F5

Пред. | Начало | След.
The Navigation Pane | Уровень выше | The Full Text Search


The Navigation Pane

The Navigation Pane contains four navigational tabs: the Contents, Index, Search and Favorites tabs. These all provide different methods to access a topic in the help file.

  • The contents tab reveals a tree like table of contents, where you can navigate to the desired topic by opening and closing parts of the tree. You can even access the deepest sections using this TOC. If you right click on an item here and choose "Print...", you'll have the option to print the selected topic or the selected topic and all subtopics. However printing is not the initial goal of this representation of the manual (the PDF version is suitable for printing).

  • The index tab lists a huge number of "keywords" (actually manual page titles). You can pick one, or start to type a keyword, see the list adjusting to your input, and then click on a topic, or press enter if the selected topic is the one you would like to see.

  • The search tab shows one of the most powerful features of the HTML Help Viewer, the full text search (also known as FTS). Here you can type in your search expression, optionally connecting words with AND/OR/NEAR/NOT. Before you click 'List topics', you can also set some options at the bottom. After the search results are displayed, you'll realize that manual text and user note results are separated. To sort out the two types, click on the 'Location' column header. Now from the search results list, you can pick a topic, and see it's page. The keywords you searched for are highlighted on the page.

  • The favorites tab enables you to store your most used topics in a list, easily accessible. Here you can see the list, add the current topic to it, remove one, or display a selected item. You can also specify your own title for the favorite, by typing it into the 'Current topic:' box. The user note page titles are prepended with a 'N:' string so you can distinguish them from normal manual pages in the favorites listing.

Пред. | Начало | След.
Using PHP Manual CHM Edition | Уровень выше | Keyboard Shortcuts


Руководство в формате HTML Help

Руководство по PHP
Пред. След.

X. Руководство в формате HTML Help

Содержание
62. About This Edition
63. Using PHP Manual CHM Edition
64. The Full Text Search
65. Specialities of this Edition
66. Integrating the PHP Manual
67. Skin development
68. CHM Edition Credits

Пред. | Начало | След.
Что отсутствует в этом руководстве |  | About This Edition


Runtime Configuration

Руководство по PHP
Пред. След.

Глава 9. Runtime Configuration

Содержание
The configuration file
How to change configuration settings

The configuration file

The configuration file (called php3.ini in PHP 3, and simply php.ini as of PHP 4) is read when PHP starts up. For the server module versions of PHP, this happens only once when the web server is started. For the CGI and CLI version, it happens on every invocation.

php.ini is searched in these locations (in order):

  • SAPI module specific location (PHPIniDir directive in Apache 2, -c command line option in CGI and CLI, php_ini parameter in NSAPI, PHP_INI_PATH environment variable in THTTPD)

  • HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath (Windows Registry location)

  • The PHPRC environment variable

  • Current working directory (for CLI)

  • The web server's directory (for SAPI modules), or directory of PHP (otherwise in Windows)

  • Windows directory (C:\windows or C:\winnt) (for Windows), or --with-config-file-path compile time option

If php-SAPI.ini exists (where SAPI is used SAPI, so the filename is e.g. php-cli.ini or php-apache.ini), it's used instead of php.ini. SAPI name can be determined by php_sapi_name().

Замечание: The Apache web server changes the directory to root at startup causing PHP to attempt to read php.ini from the root filesystem if it exists.

The php.ini directives handled by extensions are documented respectively on the pages of the extensions themselves. The list of the core directives is available in the appendix. Probably not all PHP directives are documented in the manual though. For a complete list of directives available in your PHP version, please read your well commented php.ini file. Alternatively, you may find the the latest php.ini from CVS helpful too.

Пример 9-1. php.ini example

; any text on a line after an unquoted semicolon (;) is ignored
[php] ; section markers (text within square brackets) are also ignored
; Boolean values can be set to either:
;    true, on, yes
; or false, off, no, none
register_globals = off
track_errors = yes

; you can enclose strings in double-quotes
include_path = ".:/usr/local/lib/php"

; backslashes are treated the same as any other character
include_path = ".;c:\php\lib"

Since PHP 5.1.0, it is possible to refer to existing .ini variables from within .ini files. Example: open_basedir = ${open_basedir} ":/new/dir".

Пред. | Начало | След.
Bug reports | Уровень выше | How to change configuration settings


How to change configuration settings

Running PHP as an Apache module

When using PHP as an Apache module, you can also change the configuration settings using directives in Apache configuration files (e.g. httpd.conf) and .htaccess files. You will need "AllowOverride Options" or "AllowOverride All" privileges to do so.

With PHP 4 and PHP 5, there are several Apache directives that allow you to change the PHP configuration from within the Apache configuration files. For a listing of which directives are PHP_INI_ALL, PHP_INI_PERDIR, or PHP_INI_SYSTEM, have a look at the List of php.ini directives appendix.

Замечание: With PHP 3, there are Apache directives that correspond to each configuration setting in the php3.ini name, except the name is prefixed by "php3_".

php_value name value

Sets the value of the specified directive. Can be used only with PHP_INI_ALL and PHP_INI_PERDIR type directives. To clear a previously set value use none as the value.

Замечание: Don't use php_value to set boolean values. php_flag (see below) should be used instead.

php_flag name on|off

Used to set a boolean configuration directive. Can be used only with PHP_INI_ALL and PHP_INI_PERDIR type directives.

php_admin_value name value

Sets the value of the specified directive. This can not be used in .htaccess files. Any directive type set with php_admin_value can not be overridden by .htaccess or virtualhost directives. To clear a previously set value use none as the value.

php_admin_flag name on|off

Used to set a boolean configuration directive. This can not be used in .htaccess files. Any directive type set with php_admin_flag can not be overridden by .htaccess or virtualhost directives.

Пример 9-2. Apache configuration example

<IfModule mod_php5.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag safe_mode on
</IfModule>
<IfModule mod_php4.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag safe_mode on
</IfModule>
<IfModule mod_php3.c>
  php3_include_path ".:/usr/local/lib/php"
  php3_safe_mode on
</IfModule>

Предостережение

PHP constants do not exist outside of PHP. For example, in httpd.conf you can not use PHP constants such as E_ALL or E_NOTICE to set the error_reporting directive as they will have no meaning and will evaluate to 0. Use the associated bitmask values instead. These constants can be used in php.ini

Changing PHP configuration via the Windows registry

When running PHP on Windows, the configuration values can be modified on a per-directory basis using the Windows registry. The configuration values are stored in the registry key HKLM\SOFTWARE\PHP\Per Directory Values, in the sub-keys corresponding to the path names. For example, configuration values for the directory c:\inetpub\wwwroot would be stored in the key HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot. The settings for the directory would be active for any script running from this directory or any subdirectory of it. The values under the key should have the name of the PHP configuration directive and the string value. PHP constants in the values are not parsed. However, only configuration values changeable in PHP_INI_USER can be set this way, PHP_INI_PERDIR values can not.

Other interfaces to PHP

Regardless of how you run PHP, you can change certain values at runtime of your scripts through ini_set(). See the documentation on the ini_set() page for more information.

If you are interested in a complete list of configuration settings on your system with their current values, you can execute the phpinfo() function, and review the resulting page. You can also access the values of individual configuration directives at runtime using ini_get() or get_cfg_var().

Пред. | Начало | След.
Runtime Configuration | Уровень выше | Справочник языка


break

break ends execution of the current for, foreach, while, do-while or switch structure.

break accepts an optional numeric argument which tells it how many nested enclosing structures are to be broken out of.

<?php
$arr = array('one', 'two', 'three', 'four', 'stop', 'five');
while (list(, $val) = each($arr)) {
    if ($val == 'stop') {
        break;    /* You could also write 'break 1;' here. */
    }
    echo "$val<br />\n";
}

/* Using the optional argument. */

$i = 0;
while (++$i) {
    switch ($i) {
    case 5:
        echo "At 5<br />\n";
        break 1;  /* Exit only the switch. */
    case 10:
        echo "At 10; quitting<br />\n";
        break 2;  /* Exit the switch and the while. */
    default:
        break;
    }
}
?>

Пред. | Начало | След.
foreach | Уровень выше | continue


continue

continue is used within looping structures to skip the rest of the current loop iteration and continue execution at the condition evaluation and then the beginning of the next iteration.

Замечание: Note that in PHP the switch statement is considered a looping structure for the purposes of continue.

continue accepts an optional numeric argument which tells it how many levels of enclosing loops it should skip to the end of.

<?php
while (list($key, $value) = each($arr)) {
    if (!($key % 2)) { // skip odd members
        continue;
    }
    do_something_odd($value);
}

$i = 0;
while ($i++ < 5) {
    echo "Outer<br />\n";
    while (1) {
        echo "&nbsp;&nbsp;Middle<br />\n";
        while (1) {
            echo "&nbsp;&nbsp;Inner<br />\n";
            continue 3;
        }
        echo "This never gets output.<br />\n";
    }
    echo "Neither does this.<br />\n";
}
?>

Omitting the semicolon after continue can lead to confusion. Here's an example of what you shouldn't do.

<?php
  for ($i = 0; $i < 5; ++$i) {
      if ($i == 2)
          continue
      print "$i\n";
  }
?>

One can expect the result to be :

0
1
3
4

but this script will output :

2

because the return value of the print() call is int(1), and it will look like the optional numeric argument mentioned above.

Пред. | Начало | След.
break | Уровень выше | switch


declare

The declare construct is used to set execution directives for a block of code. The syntax of declare is similar to the syntax of other flow control constructs:

declare (directive)
    statement

The directive section allows the behavior of the declare block to be set. Currently only one directive is recognized: the ticks directive. (See below for more information on the ticks directive)

The statement part of the declare block will be executed -- how it is executed and what side effects occur during execution may depend on the directive set in the directive block.

The declare construct can also be used in the global scope, affecting all code following it.

<?php
// these are the same:

// you can use this:
declare(ticks=1) {
    // entire script here
}

// or you can use this:
declare(ticks=1);
// entire script here
?>

Ticks

A tick is an event that occurs for every N low-level statements executed by the parser within the declare block. The value for N is specified using ticks=N within the declare blocks's directive section.

The event(s) that occur on each tick are specified using the register_tick_function(). See the example below for more details. Note that more than one event can occur for each tick.

Пример 16-3. Profile a section of PHP code

<?php
// A function that records the time when it is called
function profile($dump = FALSE)
{
    static $profile;

    // Return the times stored in profile, then erase it
    if ($dump) {
        $temp = $profile;
        unset($profile);
        return $temp;
    }

    $profile[] = microtime();
}

// Set up a tick handler
register_tick_function("profile");

// Initialize the function before the declare block
profile();

// Run a block of code, throw a tick every 2nd statement
declare(ticks=2) {
    for ($x = 1; $x < 50; ++$x) {
        echo similar_text(md5($x), md5($x*$x)), "<br />;";
    }
}

// Display the data stored in the profiler
print_r(profile(TRUE));
?>
The example profiles the PHP code within the 'declare' block, recording the time at which every second low-level statement in the block was executed. This information can then be used to find the slow areas within particular segments of code. This process can be performed using other methods: using ticks is more convenient and easier to implement.

Ticks are well suited for debugging, implementing simple multitasking, background I/O and many other tasks.

See also register_tick_function() and unregister_tick_function().

Пред. | Начало | След.
switch | Уровень выше | return


do-while

do-while loops are very similar to while loops, except the truth expression is checked at the end of each iteration instead of in the beginning. The main difference from regular while loops is that the first iteration of a do-while loop is guaranteed to run (the truth expression is only checked at the end of the iteration), whereas it's may not necessarily run with a regular while loop (the truth expression is checked at the beginning of each iteration, if it evaluates to FALSE right from the beginning, the loop execution would end immediately).

There is just one syntax for do-while loops:

<?php
$i = 0;
do {
    echo $i;
} while ($i > 0);
?>

The above loop would run one time exactly, since after the first iteration, when truth expression is checked, it evaluates to FALSE ($i is not bigger than 0) and the loop execution ends.

Advanced C users may be familiar with a different usage of the do-while loop, to allow stopping execution in the middle of code blocks, by encapsulating them with do-while (0), and using the break statement. The following code fragment demonstrates this:

<?php
do {
    if ($i < 5) {
        echo "i is not big enough";
        break;
    }
    $i *= $factor;
    if ($i < $minimum_limit) {
        break;
    }
   echo "i is ok";

    /* process i */

} while (0);
?>

Don't worry if you don't understand this right away or at all. You can code scripts and even powerful scripts without using this 'feature'.

Пред. | Начало | След.
while | Уровень выше | for


else

Often you'd want to execute a statement if a certain condition is met, and a different statement if the condition is not met. This is what else is for. else extends an if statement to execute a statement in case the expression in the if statement evaluates to FALSE. For example, the following code would display a is bigger than b if $a is bigger than $b, and a is NOT bigger than b otherwise:

<?php
if ($a > $b) {
    echo "a is bigger than b";
} else {
    echo "a is NOT bigger than b";
}
?>

The else statement is only executed if the if expression evaluated to FALSE, and if there were any elseif expressions - only if they evaluated to FALSE as well (see elseif).

Пред. | Начало | След.
Control Structures | Уровень выше | elseif


elseif

elseif, as its name suggests, is a combination of if and else. Like else, it extends an if statement to execute a different statement in case the original if expression evaluates to FALSE. However, unlike else, it will execute that alternative expression only if the elseif conditional expression evaluates to TRUE. For example, the following code would display a is bigger than b, a equal to b or a is smaller than b:

<?php
if ($a > $b) {
    echo "a is bigger than b";
} elseif ($a == $b) {
    echo "a is equal to b";
} else {
    echo "a is smaller than b";
}
?>

There may be several elseifs within the same if statement. The first elseif expression (if any) that evaluates to TRUE would be executed. In PHP, you can also write 'else if' (in two words) and the behavior would be identical to the one of 'elseif' (in a single word). The syntactic meaning is slightly different (if you're familiar with C, this is the same behavior) but the bottom line is that both would result in exactly the same behavior.

The elseif statement is only executed if the preceding if expression and any preceding elseif expressions evaluated to FALSE, and the current elseif expression evaluated to TRUE.

Пред. | Начало | След.
else | Уровень выше | Alternative syntax for control structures


for

for loops are the most complex loops in PHP. They behave like their C counterparts. The syntax of a for loop is:

for (expr1; expr2; expr3)
    statement

The first expression (expr1) is evaluated (executed) once unconditionally at the beginning of the loop.

In the beginning of each iteration, expr2 is evaluated. If it evaluates to TRUE, the loop continues and the nested statement(s) are executed. If it evaluates to FALSE, the execution of the loop ends.

At the end of each iteration, expr3 is evaluated (executed).

Each of the expressions can be empty. expr2 being empty means the loop should be run indefinitely (PHP implicitly considers it as TRUE, like C). This may not be as useless as you might think, since often you'd want to end the loop using a conditional break statement instead of using the for truth expression.

Consider the following examples. All of them display numbers from 1 to 10:

<?php
/* example 1 */

for ($i = 1; $i <= 10; $i++) {
    echo $i;
}

/* example 2 */

for ($i = 1; ; $i++) {
    if ($i > 10) {
        break;
    }
    echo $i;
}

/* example 3 */

$i = 1;
for (; ; ) {
    if ($i > 10) {
        break;
    }
    echo $i;
    $i++;
}

/* example 4 */

for ($i = 1; $i <= 10; print $i, $i++);
?>

Of course, the first example appears to be the nicest one (or perhaps the fourth), but you may find that being able to use empty expressions in for loops comes in handy in many occasions.

PHP also supports the alternate "colon syntax" for for loops.

for (expr1; expr2; expr3):
    statement
    ...
endfor;

Пред. | Начало | След.
do-while | Уровень выше | foreach


foreach

PHP 4 introduced a foreach construct, much like Perl and some other languages. This simply gives an easy way to iterate over arrays. foreach works only on arrays, and will issue an error when you try to use it on a variable with a different data type or an uninitialized variable. There are two syntaxes; the second is a minor but useful extension of the first:

foreach (array_expression as $value)
    statement
foreach (array_expression as $key => $value)
    statement

The first form loops over the array given by array_expression. On each loop, the value of the current element is assigned to $value and the internal array pointer is advanced by one (so on the next loop, you'll be looking at the next element).

The second form does the same thing, except that the current element's key will be assigned to the variable $key on each loop.

As of PHP 5, it is possible to iterate objects too.

Замечание: When foreach first starts executing, the internal array pointer is automatically reset to the first element of the array. This means that you do not need to call reset() before a foreach loop.

Замечание: Unless the array is referenced, foreach operates on a copy of the specified array and not the array itself. Therefore, the array pointer is not modified as with the each() construct, and changes to the array element returned are not reflected in the original array. However, the internal pointer of the original array is advanced with the processing of the array. Assuming the foreach loop runs to completion, the array's internal pointer will be at the end of the array.

As of PHP 5, you can easily modify array's elements by preceding $value with &. This will assign reference instead of copying the value.

<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
    $value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
?>

This is possible only if iterated array can be referenced (i.e. is variable).

Замечание: foreach does not support the ability to suppress error messages using '@'.

You may have noticed that the following are functionally identical:

<?php
$arr = array("one", "two", "three");
reset($arr);
while (list(, $value) = each($arr)) {
    echo "Value: $value<br />\n";
}

foreach ($arr as $value) {
    echo "Value: $value<br />\n";
}
?>

The following are also functionally identical:

<?php
$arr = array("one", "two", "three");
reset($arr);
while (list($key, $value) = each($arr)) {
    echo "Key: $key; Value: $value<br />\n";
}

foreach ($arr as $key => $value) {
    echo "Key: $key; Value: $value<br />\n";
}
?>

Some more examples to demonstrate usages:

<?php
/* foreach example 1: value only */

$a = array(1, 2, 3, 17);

foreach ($a as $v) {
   echo "Current value of \$a: $v.\n";
}

/* foreach example 2: value (with key printed for illustration) */

$a = array(1, 2, 3, 17);

$i = 0; /* for illustrative purposes only */

foreach ($a as $v) {
    echo "\$a[$i] => $v.\n";
    $i++;
}

/* foreach example 3: key and value */

$a = array(
    "one" => 1,
    "two" => 2,
    "three" => 3,
    "seventeen" => 17
);

foreach ($a as $k => $v) {
    echo "\$a[$k] => $v.\n";
}

/* foreach example 4: multi-dimensional arrays */
$a = array();
$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z";

foreach ($a as $v1) {
    foreach ($v1 as $v2) {
        echo "$v2\n";
    }
}

/* foreach example 5: dynamic arrays */

foreach (array(1, 2, 3, 4, 5) as $v) {
    echo "$v\n";
}
?>

Пред. | Начало | След.
for | Уровень выше | break


switch

The switch statement is similar to a series of IF statements on the same expression. In many occasions, you may want to compare the same variable (or expression) with many different values, and execute a different piece of code depending on which value it equals to. This is exactly what the switch statement is for.

Замечание: Note that unlike some other languages, the continue statement applies to switch and acts similar to break. If you have a switch inside a loop and wish to continue to the next iteration of the outer loop, use continue 2.

The following two examples are two different ways to write the same thing, one using a series of if and elseif statements, and the other using the switch statement:

Пример 16-1. switch structure

<?php
if ($i == 0) {
    echo "i equals 0";
} elseif ($i == 1) {
    echo "i equals 1";
} elseif ($i == 2) {
    echo "i equals 2";
}

switch ($i) {
case 0:
    echo "i equals 0";
    break;
case 1:
    echo "i equals 1";
    break;
case 2:
    echo "i equals 2";
    break;
}
?>

Пример 16-2. switch structure allows usage of strings

<?php
switch ($i) {
case "apple":
    echo "i is apple";
    break;
case "bar":
    echo "i is bar";
    break;
case "cake":
    echo "i is cake";
    break;
}
?>

It is important to understand how the switch statement is executed in order to avoid mistakes. The switch statement executes line by line (actually, statement by statement). In the beginning, no code is executed. Only when a case statement is found with a value that matches the value of the switch expression does PHP begin to execute the statements. PHP continues to execute the statements until the end of the switch block, or the first time it sees a break statement. If you don't write a break statement at the end of a case's statement list, PHP will go on executing the statements of the following case. For example:

<?php
switch ($i) {
case 0:
    echo "i equals 0";
case 1:
    echo "i equals 1";
case 2:
    echo "i equals 2";
}
?>

Here, if $i is equal to 0, PHP would execute all of the echo statements! If $i is equal to 1, PHP would execute the last two echo statements. You would get the expected behavior ('i equals 2' would be displayed) only if $i is equal to 2. Thus, it is important not to forget break statements (even though you may want to avoid supplying them on purpose under certain circumstances).

In a switch statement, the condition is evaluated only once and the result is compared to each case statement. In an elseif statement, the condition is evaluated again. If your condition is more complicated than a simple compare and/or is in a tight loop, a switch may be faster.

The statement list for a case can also be empty, which simply passes control into the statement list for the next case.

<?php
switch ($i) {
case 0:
case 1:
case 2:
    echo "i is less than 3 but not negative";
    break;
case 3:
    echo "i is 3";
}
?>

A special case is the default case. This case matches anything that wasn't matched by the other cases, and should be the last case statement. For example:

<?php
switch ($i) {
case 0:
    echo "i equals 0";
    break;
case 1:
    echo "i equals 1";
    break;
case 2:
    echo "i equals 2";
    break;
default:
    echo "i is not equal to 0, 1 or 2";
}
?>

The case expression may be any expression that evaluates to a simple type, that is, integer or floating-point numbers and strings. Arrays or objects cannot be used here unless they are dereferenced to a simple type.

The alternative syntax for control structures is supported with switches. For more information, see Alternative syntax for control structures .

<?php
switch ($i):
case 0:
    echo "i equals 0";
    break;
case 1:
    echo "i equals 1";
    break;
case 2:
    echo "i equals 2";
    break;
default:
    echo "i is not equal to 0, 1 or 2";
endswitch;
?>

Пред. | Начало | След.
continue | Уровень выше | declare


while

while loops are the simplest type of loop in PHP. They behave just like their C counterparts. The basic form of a while statement is:

while (expr)
    statement

The meaning of a while statement is simple. It tells PHP to execute the nested statement(s) repeatedly, as long as the while expression evaluates to TRUE. The value of the expression is checked each time at the beginning of the loop, so even if this value changes during the execution of the nested statement(s), execution will not stop until the end of the iteration (each time PHP runs the statements in the loop is one iteration). Sometimes, if the while expression evaluates to FALSE from the very beginning, the nested statement(s) won't even be run once.

Like with the if statement, you can group multiple statements within the same while loop by surrounding a group of statements with curly braces, or by using the alternate syntax:

while (expr):
    statement
    ...
endwhile;

The following examples are identical, and both print numbers from 1 to 10:

<?php
/* example 1 */

$i = 1;
while ($i <= 10) {
    echo $i++;  /* the printed value would be
                    $i before the increment
                    (post-increment) */
}

/* example 2 */

$i = 1;
while ($i <= 10):
    echo $i;
    $i++;
endwhile;
?>

Пред. | Начало | След.
Alternative syntax for control structures | Уровень выше | do-while


Extension Categorization

Руководство по PHP
Пред. След.

Приложение I. Extension Categorization

Содержание
Purpose
Membership
State

This appendix categorizes more than 150 extensions documented in the PHP Manual by several criteria.

Purpose

Basic PHP Extensions

Variable and Type Related Extensions

  • Ссылка V, Функции для работы с массивами

  • Ссылка XIII, Classkit Functions

  • Ссылка XII, Функции работы с Классами/Объектами

  • Ссылка XVII, Функции определения типа символов

  • Ссылка XLIV, Управление функциями

  • Ссылка XCIV, Object Aggregation/Composition Functions

  • Ссылка CLIV, Variable Handling Functions

Text Processing

  • Ссылка CIX, Функции для работы с регулярными выражениями (Perl-совместимые)

  • Ссылка CXIV, Regular Expression Functions (POSIX Extended)

  • Ссылка CXLVI, Функции обработки строк

  • Ссылка CLXI, xdiff Functions

Affecting PHP's Behaviour

  • Ссылка III, Alternative PHP Cache

  • Ссылка IV, Advanced PHP debugger

  • Ссылка VIII, PHP bytecode Compiler

  • Ссылка XXXII, Error Handling and Logging Functions

  • Ссылка XLIX, Функции протокола HTTP

  • Ссылка CXII, PHP Options&Information

  • Ссылка CIV, Output Control Functions

  • Ссылка CXXVII, runkit Functions

Session Extensions

  • Ссылка LXXXIII, Mohawk Software Session Handler Functions

  • Ссылка LXXXVI, muscat Functions

  • Ссылка CXXXV, Session Handling Functions

  • Ссылка CXXXIV, PostgreSQL Session Save Handler

Other Basic Extensions

  • Ссылка LXXIX, Miscellaneous Functions

  • Ссылка CVII, Parsekit Functions

  • Ссылка CXLI, Standard PHP Library (SPL) Functions

  • Ссылка CL, Tidy Functions

  • Ссылка CLI, Tokenizer Functions

  • Ссылка CLIII, URL Functions

Database Extensions

Abstraction Layers

  • Ссылка XXIV, Database (dbm-style) Abstraction Layer Functions

  • Ссылка XXVII, dbx Functions

  • Ссылка CXI, PDO Functions

  • Ссылка CXXIX, SDO Functions

  • Ссылка CXXXI, SDO Relational Data Access Service Functions

  • Ссылка XCVII, ODBC Functions (Unified)

Vendor Specific Database Extensions

  • Ссылка XXV, dBase Functions

  • Ссылка XXIII, DB++ Functions

  • Ссылка XLII, FrontBase Functions

  • Ссылка XXXVII, filePro Functions

  • Ссылка XXXIX, Firebird/InterBase Functions

  • Ссылка LII, IBM DB2, Cloudscape and Apache Derby Functions

  • Ссылка LIX, Informix Functions

  • Ссылка LX, Ingres II Functions

  • Ссылка LXXI, MaxDB PHP Extension

  • Ссылка LXXXIV, mSQL Functions

  • Ссылка LXXXI, Microsoft SQL Server Functions

  • Ссылка LXXXVII, Функции СУБД MySQL

  • Ссылка LXXXIX, MySQL Improved Extension

  • Ссылка XCVI, Функции для работы с Oracle

  • Ссылка CII, Oracle Functions [deprecated]

  • Ссылка CV, Ovrimos SQL Functions

  • Ссылка CVI, Paradox File Access

  • Ссылка LXXXII, Microsoft SQL Server and Sybase Functions (PDO_DBLIB)

  • Ссылка XL, Firebird/Interbase Functions (PDO_FIREBIRD)

  • Ссылка LXXXVIII, MySQL Functions (PDO_MYSQL)

  • Ссылка CIII, Oracle Functions (PDO_OCI)

  • Ссылка XCVIII, ODBC and DB2 functions (PDO_ODBC)

  • Ссылка CXVI, PostgreSQL Functions (PDO_PGSQL)

  • Ссылка CXLIII, SQLite Functions (PDO_SQLITE)

  • Ссылка CXV, PostgreSQL Functions

  • Ссылка CXLII, SQLite

  • Ссылка CXLVIII, Sybase Functions

XML Manipulation

  • Ссылка XXX, DOM Functions

  • Ссылка XXXI, DOM XML Functions

  • Ссылка LXV, libxml Functions

  • Ссылка CXXI, qtdom Functions

  • Ссылка CXXX, SDO XML Data Access Service Functions

  • Ссылка CXXXVII, SimpleXML functions

  • Ссылка CLXII, XML Parser Functions

  • Ссылка CLXIV, XMLReader functions

  • Ссылка CLXV, XSL functions

  • Ссылка CLXVI, XSLT Functions

Web Services

  • Ссылка CXXXIX, SOAP Functions

  • Ссылка CLVIII, WDDX Functions

  • Ссылка CLXIII, XML-RPC Functions

Credit Card Processing

  • Ссылка XIX, Cybercash Payment Functions

  • Ссылка XX, Credit Mutuel CyberMUT functions

  • Ссылка LXXIV, MCVE (Monetra) Payment Functions

  • Ссылка CLV, Verisign Payflow Pro Functions

Math and Cryptography

Mathematical Extensions

  • Ссылка VII, BCMath Arbitrary Precision Mathematics Functions

  • Ссылка XLVI, GMP Functions

  • Ссылка LXX, Математические функции

Cryptography Extensions

  • Ссылка XVI, Crack Functions

  • Ссылка LXXIII, Mcrypt Encryption Functions

  • Ссылка LXXVI, Mhash Functions

  • Ссылка CI, OpenSSL Functions

Human Language and Character Encoding Support

  • Ссылка XLI, FriBiDi Functions

  • Ссылка XLV, Gettext

  • Ссылка LIV, Функции iconv

  • Ссылка LXXXV, Multibyte String Functions

  • Ссылка CXX, Pspell Functions

  • Ссылка CXXV, GNU Recode Functions

File System and Process Control

File System Related Extensions

  • Ссылка XXVIII, Direct IO Functions

  • Ссылка XXIX, Функции для работы с каталогами

  • Ссылка XXXV, File Alteration Monitor Functions

  • Ссылка XXXVIII, Функции для работы с файловой системой

  • Ссылка LXXVII, Mimetype Functions

  • Ссылка CLX, xattr Functions

Process Control Extensions

  • Ссылка CXVIII, Program Execution Functions

  • Ссылка XXXIV, Expect Functions

  • Ссылка CVIII, Process Control Functions

  • Ссылка CXIII, POSIX Functions

  • Ссылка CXXXII, Semaphore, Shared Memory and IPC Functions

  • Ссылка CXXXVI, Shared Memory Functions

Accessing Services

Mail Related Extensions

  • Ссылка XXI, Cyrus IMAP administration Functions

  • Ссылка LVIII, IMAP, POP3 and NNTP Functions

  • Ссылка LXVIII, Mail Functions

  • Ссылка LXIX, mailparse Functions

  • Ссылка CLVI, vpopmail Functions

Authentication Services

  • Ссылка LXIII, KADM5

  • Ссылка CXXII, Radius

Other Services

  • Ссылка XVIII, Функции CURL, Client URL Library

  • Ссылка XLIII, Функции для работы с FTP

  • Ссылка L, Hyperwave Functions

  • Ссылка LI, Hyperwave API Functions

  • Ссылка LXI, IRC Gateway Functions

  • Ссылка LXII, PHP / Java Integration

  • Ссылка LXIV, LDAP Functions

  • Ссылка LXXV, Memcache Functions

  • Ссылка LXXX, mnoGoSearch Functions

  • Ссылка XLVIII, Net_Gopher

  • Ссылка XCI, Network Functions

  • Ссылка CLXVIII, YP/NIS Functions

  • Ссылка LXVI, Lotus Notes Functions

  • Ссылка CXXXVIII, SNMP Functions

  • Ссылка CXL, Socket Functions

  • Ссылка CXLIV, Secure Shell2 Functions

  • Ссылка CXLV, Stream Functions

  • Ссылка CXLIX, TCP Wrappers Functions

  • Ссылка CLXVII, YAZ Functions

Compression Extensions

  • Ссылка IX, Функции сжатия Bzip2

  • Ссылка LXVII, LZF Functions

  • Ссылка CXXIII, Rar функции

  • Ссылка CLXIX, Zip File Functions (Read Only Access)

  • Ссылка CLXX, Функции сжатия Zlib

Calendar and Event Related Extensions

  • Ссылка X, Calendar Functions

  • Ссылка XXII, Функции для работы с датой и временем

  • Ссылка LXXII, MCAL Functions

Utilization Area Specific Extensions

Non-Text MIME Output

  • Ссылка XIV, ClibPDF Functions

  • Ссылка XXXVI, Forms Data Format Functions

  • Ссылка LXXVIII, Ming functions for Flash

  • Ссылка CX, PDF functions

  • Ссылка CXIX, PostScript document creation

  • Ссылка CXLVII, Shockwave Flash Functions

Image Processing and Generation

  • Ссылка XXXIII, Exif Functions

  • Ссылка LVII, Image Functions

Audio Formats Manipulation

  • Ссылка LV, ID3 Functions

  • Ссылка XCIX, oggvorbis

  • Ссылка C, OpenAL Audio Bindings

Command Line Specific Extensions

  • Ссылка XC, Ncurses Terminal Screen Control Functions

  • Ссылка XCII, Newt Functions

  • Ссылка CXXIV, GNU Readline

Windows Only Extensions

  • Ссылка XV, COM and .Net (Windows)

  • Ссылка I, .NET Functions

  • Ссылка CXVII, Printer Functions

  • Ссылка CLVII, W32api Functions

  • Ссылка CLIX, win32service Functions

Server Specific Extensions

  • Ссылка II, Функции для работы с сервером Apache

  • Ссылка LVI, IIS Administration Functions

  • Ссылка XCIII, NSAPI-specific Functions

Пред. | Начало | След.
List of timezones in the group Others | Уровень выше | Membership


Membership

Core Extensions

These are not actual extensions. They are part of the PHP core and cannot be left out of a PHP binary with compilation options.

  • Ссылка V, Функции для работы с массивами

  • Ссылка XII, Функции работы с Классами/Объектами

  • Ссылка XXII, Функции для работы с датой и временем

  • Ссылка XXIX, Функции для работы с каталогами

  • Ссылка XXXII, Error Handling and Logging Functions

  • Ссылка CXVIII, Program Execution Functions

  • Ссылка XXXVIII, Функции для работы с файловой системой

  • Ссылка XLIV, Управление функциями

  • Ссылка XLIX, Функции протокола HTTP

  • Ссылка CXII, PHP Options&Information

  • Ссылка LXVIII, Mail Functions

  • Ссылка LXX, Математические функции

  • Ссылка LXXIX, Miscellaneous Functions

  • Ссылка XCI, Network Functions

  • Ссылка CIV, Output Control Functions

  • Ссылка CXIV, Regular Expression Functions (POSIX Extended)

  • Ссылка CXXXV, Session Handling Functions

  • Ссылка CXLV, Stream Functions

  • Ссылка CXLVI, Функции обработки строк

  • Ссылка CLI, Tokenizer Functions

  • Ссылка CLIII, URL Functions

  • Ссылка CLIV, Variable Handling Functions

Bundled Extensions

These extensions are bundled with PHP.

  • Ссылка II, Функции для работы с сервером Apache

  • Ссылка VII, BCMath Arbitrary Precision Mathematics Functions

  • Ссылка IX, Функции сжатия Bzip2

  • Ссылка X, Calendar Functions

  • Ссылка XV, COM and .Net (Windows)

  • Ссылка XVII, Функции определения типа символов

  • Ссылка XVIII, Функции CURL, Client URL Library

  • Ссылка XXIV, Database (dbm-style) Abstraction Layer Functions

  • Ссылка XXV, dBase Functions

  • Ссылка XXX, DOM Functions

  • Ссылка I, .NET Functions

  • Ссылка XXXIII, Exif Functions

  • Ссылка XLII, FrontBase Functions

  • Ссылка XXXVI, Forms Data Format Functions

  • Ссылка XXXVII, filePro Functions

  • Ссылка XLIII, Функции для работы с FTP

  • Ссылка XLV, Gettext

  • Ссылка XLVI, GMP Functions

  • Ссылка LI, Hyperwave API Functions

  • Ссылка XXXIX, Firebird/InterBase Functions

  • Ссылка LIV, Функции iconv

  • Ссылка LIX, Informix Functions

  • Ссылка LVII, Image Functions

  • Ссылка LVIII, IMAP, POP3 and NNTP Functions

  • Ссылка LXIV, LDAP Functions

  • Ссылка LXV, libxml Functions

  • Ссылка LXXXV, Multibyte String Functions

  • Ссылка LXXIII, Mcrypt Encryption Functions

  • Ссылка LXXVI, Mhash Functions

  • Ссылка LXXVII, Mimetype Functions

  • Ссылка LXXVIII, Ming functions for Flash

  • Ссылка LXXXIII, Mohawk Software Session Handler Functions

  • Ссылка LXXXIV, mSQL Functions

  • Ссылка LXXXI, Microsoft SQL Server Functions

  • Ссылка LXXXVII, Функции СУБД MySQL

  • Ссылка LXXXIX, MySQL Improved Extension

  • Ссылка XC, Ncurses Terminal Screen Control Functions

  • Ссылка XCIII, NSAPI-specific Functions

  • Ссылка XCIV, Object Aggregation/Composition Functions

  • Ссылка XCVI, Функции для работы с Oracle

  • Ссылка CI, OpenSSL Functions

  • Ссылка CVIII, Process Control Functions

  • Ссылка CIX, Функции для работы с регулярными выражениями (Perl-совместимые)

  • Ссылка CXI, PDO Functions

  • Ссылка LXXXII, Microsoft SQL Server and Sybase Functions (PDO_DBLIB)

  • Ссылка XL, Firebird/Interbase Functions (PDO_FIREBIRD)

  • Ссылка LXXXVIII, MySQL Functions (PDO_MYSQL)

  • Ссылка CIII, Oracle Functions (PDO_OCI)

  • Ссылка XCVIII, ODBC and DB2 functions (PDO_ODBC)

  • Ссылка CXVI, PostgreSQL Functions (PDO_PGSQL)

  • Ссылка CXLIII, SQLite Functions (PDO_SQLITE)

  • Ссылка CXV, PostgreSQL Functions

  • Ссылка CXIII, POSIX Functions

  • Ссылка CXX, Pspell Functions

  • Ссылка CXXIV, GNU Readline

  • Ссылка CXXV, GNU Recode Functions

  • Ссылка CXXXII, Semaphore, Shared Memory and IPC Functions

  • Ссылка CXXXVI, Shared Memory Functions

  • Ссылка CXXXVII, SimpleXML functions

  • Ссылка CXXXVIII, SNMP Functions

  • Ссылка CXXXIX, SOAP Functions

  • Ссылка CXL, Socket Functions

  • Ссылка CXLI, Standard PHP Library (SPL) Functions

  • Ссылка CXLII, SQLite

  • Ссылка CXLVIII, Sybase Functions

  • Ссылка CL, Tidy Functions

  • Ссылка XCVII, ODBC Functions (Unified)

  • Ссылка CLVIII, WDDX Functions

  • Ссылка CLXII, XML Parser Functions

  • Ссылка CLXIV, XMLReader functions

  • Ссылка CLXIII, XML-RPC Functions

  • Ссылка CLXV, XSL functions

  • Ссылка CLXVI, XSLT Functions

  • Ссылка CLXX, Функции сжатия Zlib

External Extensions

In order to compile these extensions, external libraries will be needed.

  • Ссылка IX, Функции сжатия Bzip2

  • Ссылка XIV, ClibPDF Functions

  • Ссылка XVI, Crack Functions

  • Ссылка XVIII, Функции CURL, Client URL Library

  • Ссылка XXV, dBase Functions

  • Ссылка XXIII, DB++ Functions

  • Ссылка XXVII, dbx Functions

  • Ссылка XXX, DOM Functions

  • Ссылка XXXI, DOM XML Functions

  • Ссылка XXXIV, Expect Functions

  • Ссылка XXXV, File Alteration Monitor Functions

  • Ссылка XLII, FrontBase Functions

  • Ссылка XXXVI, Forms Data Format Functions

  • Ссылка XLI, FriBiDi Functions

  • Ссылка XLV, Gettext

  • Ссылка XLVI, GMP Functions

  • Ссылка L, Hyperwave Functions

  • Ссылка LI, Hyperwave API Functions

  • Ссылка XXXIX, Firebird/InterBase Functions

  • Ссылка LII, IBM DB2, Cloudscape and Apache Derby Functions

  • Ссылка LIX, Informix Functions

  • Ссылка LVIII, IMAP, POP3 and NNTP Functions

  • Ссылка LX, Ingres II Functions

  • Ссылка LXI, IRC Gateway Functions

  • Ссылка LXII, PHP / Java Integration

  • Ссылка LXIV, LDAP Functions

  • Ссылка LXV, libxml Functions

  • Ссылка LXXI, MaxDB PHP Extension

  • Ссылка LXXII, MCAL Functions

  • Ссылка LXXIII, Mcrypt Encryption Functions

  • Ссылка LXXV, Memcache Functions

  • Ссылка LXXVI, Mhash Functions

  • Ссылка LXXVIII, Ming functions for Flash

  • Ссылка LXXX, mnoGoSearch Functions

  • Ссылка LXXXIII, Mohawk Software Session Handler Functions

  • Ссылка LXXXIV, mSQL Functions

  • Ссылка LXXXI, Microsoft SQL Server Functions

  • Ссылка LXXXVI, muscat Functions

  • Ссылка LXXXVII, Функции СУБД MySQL

  • Ссылка LXXXIX, MySQL Improved Extension

  • Ссылка XC, Ncurses Terminal Screen Control Functions

  • Ссылка XCII, Newt Functions

  • Ссылка XCVI, Функции для работы с Oracle

  • Ссылка XCIX, oggvorbis

  • Ссылка C, OpenAL Audio Bindings

  • Ссылка CI, OpenSSL Functions

  • Ссылка CII, Oracle Functions [deprecated]

  • Ссылка CV, Ovrimos SQL Functions

  • Ссылка CVI, Paradox File Access

  • Ссылка CX, PDF functions

  • Ссылка LXXXII, Microsoft SQL Server and Sybase Functions (PDO_DBLIB)

  • Ссылка XL, Firebird/Interbase Functions (PDO_FIREBIRD)

  • Ссылка LXXXVIII, MySQL Functions (PDO_MYSQL)

  • Ссылка CIII, Oracle Functions (PDO_OCI)

  • Ссылка XCVIII, ODBC and DB2 functions (PDO_ODBC)

  • Ссылка CXVI, PostgreSQL Functions (PDO_PGSQL)

  • Ссылка CLV, Verisign Payflow Pro Functions

  • Ссылка CXV, PostgreSQL Functions

  • Ссылка CXIX, PostScript document creation

  • Ссылка CXX, Pspell Functions

  • Ссылка CXXI, qtdom Functions

  • Ссылка CXXII, Radius

  • Ссылка CXXIII, Rar функции

  • Ссылка CXXIV, GNU Readline

  • Ссылка CXXV, GNU Recode Functions

  • Ссылка CXXXIV, PostgreSQL Session Save Handler

  • Ссылка CXXXVII, SimpleXML functions

  • Ссылка CXXXVIII, SNMP Functions

  • Ссылка CXXXIX, SOAP Functions

  • Ссылка CXLIV, Secure Shell2 Functions

  • Ссылка CXLVII, Shockwave Flash Functions

  • Ссылка CXLVIII, Sybase Functions

  • Ссылка CL, Tidy Functions

  • Ссылка XCVII, ODBC Functions (Unified)

  • Ссылка CLVI, vpopmail Functions

  • Ссылка CLVIII, WDDX Functions

  • Ссылка CLX, xattr Functions

  • Ссылка CLXI, xdiff Functions

  • Ссылка CLXII, XML Parser Functions

  • Ссылка CLXIV, XMLReader functions

  • Ссылка CLXV, XSL functions

  • Ссылка CLXVI, XSLT Functions

  • Ссылка CLXVII, YAZ Functions

PECL Extensions

These extensions are available from PECL. More PECL extensions exist but they are not documented in the PHP manual yet.

  • Ссылка III, Alternative PHP Cache

  • Ссылка IV, Advanced PHP debugger

  • Ссылка VIII, PHP bytecode Compiler

  • Ссылка XIII, Classkit Functions

  • Ссылка XIV, ClibPDF Functions

  • Ссылка XVI, Crack Functions

  • Ссылка XIX, Cybercash Payment Functions

  • Ссылка XX, Credit Mutuel CyberMUT functions

  • Ссылка XXI, Cyrus IMAP administration Functions

  • Ссылка XXIII, DB++ Functions

  • Ссылка XXVII, dbx Functions

  • Ссылка XXVIII, Direct IO Functions

  • Ссылка XXXI, DOM XML Functions

  • Ссылка XXXIV, Expect Functions

  • Ссылка XXXV, File Alteration Monitor Functions

  • Ссылка XLI, FriBiDi Functions

  • Ссылка L, Hyperwave Functions

  • Ссылка LII, IBM DB2, Cloudscape and Apache Derby Functions

  • Ссылка LV, ID3 Functions

  • Ссылка LVI, IIS Administration Functions

  • Ссылка LX, Ingres II Functions

  • Ссылка LXI, IRC Gateway Functions

  • Ссылка LXII, PHP / Java Integration

  • Ссылка LXIII, KADM5

  • Ссылка LXVII, LZF Functions

  • Ссылка LXIX, mailparse Functions

  • Ссылка LXXI, MaxDB PHP Extension

  • Ссылка LXXII, MCAL Functions

  • Ссылка LXXIV, MCVE (Monetra) Payment Functions

  • Ссылка LXXV, Memcache Functions

  • Ссылка LXXX, mnoGoSearch Functions

  • Ссылка LXXXVI, muscat Functions

  • Ссылка XLVIII, Net_Gopher

  • Ссылка XCII, Newt Functions

  • Ссылка CLXVIII, YP/NIS Functions

  • Ссылка LXVI, Lotus Notes Functions

  • Ссылка XCIX, oggvorbis

  • Ссылка C, OpenAL Audio Bindings

  • Ссылка CII, Oracle Functions [deprecated]

  • Ссылка CV, Ovrimos SQL Functions

  • Ссылка CVI, Paradox File Access

  • Ссылка CVII, Parsekit Functions

  • Ссылка CX, PDF functions

  • Ссылка CXI, PDO Functions

  • Ссылка LXXXII, Microsoft SQL Server and Sybase Functions (PDO_DBLIB)

  • Ссылка XL, Firebird/Interbase Functions (PDO_FIREBIRD)

  • Ссылка LXXXVIII, MySQL Functions (PDO_MYSQL)

  • Ссылка CIII, Oracle Functions (PDO_OCI)

  • Ссылка XCVIII, ODBC and DB2 functions (PDO_ODBC)

  • Ссылка CXVI, PostgreSQL Functions (PDO_PGSQL)

  • Ссылка CXLIII, SQLite Functions (PDO_SQLITE)

  • Ссылка CLV, Verisign Payflow Pro Functions

  • Ссылка CXVII, Printer Functions

  • Ссылка CXIX, PostScript document creation

  • Ссылка CXXI, qtdom Functions

  • Ссылка CXXII, Radius

  • Ссылка CXXIII, Rar функции

  • Ссылка CXXVII, runkit Functions

  • Ссылка CXXIX, SDO Functions

  • Ссылка CXXX, SDO XML Data Access Service Functions

  • Ссылка CXXXI, SDO Relational Data Access Service Functions

  • Ссылка CXXXIV, PostgreSQL Session Save Handler

  • Ссылка CXLIV, Secure Shell2 Functions

  • Ссылка CXLVII, Shockwave Flash Functions

  • Ссылка CXLIX, TCP Wrappers Functions

  • Ссылка CL, Tidy Functions

  • Ссылка CLVI, vpopmail Functions

  • Ссылка CLVII, W32api Functions

  • Ссылка CLIX, win32service Functions

  • Ссылка CLX, xattr Functions

  • Ссылка CLXI, xdiff Functions

  • Ссылка CLXIV, XMLReader functions

  • Ссылка CLXVII, YAZ Functions

  • Ссылка CLXIX, Zip File Functions (Read Only Access)

Пред. | Начало | След.
Extension Categorization | Уровень выше | State


State

This part lists extensions not intended for the production use - they are either too "old" (deprecated) or "new" (experimental).

Deprecated Extensions

These extensions have been deprecated usually in the favor of some other extensions.

  • Ссылка VI, Aspell functions [deprecated]

  • Ссылка XI, CCVS API Functions [deprecated]

  • Ссылка XXVI, DBM Functions [deprecated]

  • Ссылка LIII, ICAP Functions [deprecated]

  • Ссылка LXXVII, Mimetype Functions

  • Ссылка CII, Oracle Functions [deprecated]

  • Ссылка XCV, Object property and method call overloading

  • Ссылка CXXVIII, Satellite CORBA client extension [deprecated]

  • Ссылка CXXXIII, SESAM Database Functions

Experimental Extensions

The behaviour of these extensions - including the names of their functions and anything else documented about these extensions - may change without notice in a future release of PHP. Use these extensions at your own risk.

  • Ссылка I, .NET Functions

  • Ссылка LXII, PHP / Java Integration

  • Ссылка LXIX, mailparse Functions

  • Ссылка LXXXVI, muscat Functions

  • Ссылка XCIV, Object Aggregation/Composition Functions

  • Ссылка CXI, PDO Functions

  • Ссылка CXXIX, SDO Functions

  • Ссылка CXXX, SDO XML Data Access Service Functions

  • Ссылка CXXXI, SDO Relational Data Access Service Functions

  • Ссылка CLVI, vpopmail Functions

Пред. | Начало | След.
Membership | Уровень выше | Список псевдонимов функций


apc_cache_info

(PECL)

apc_cache_info -- Retrieves cached information (and meta-data) from APC's data store

Описание

array apc_cache_info ( [string cache_type] )

Возвращаемые значения

Array of cached data (and meta-data), or FALSE on failure

Замечание: apc_cache_info() will raise a warning if it is unable to retrieve APC cache data. This typically occurs when APC is not enabled.

Примеры

Пример 1. A apc_cache_info() example

<?php
print_r(apc_cache_info());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [num_slots] => 2000
    [ttl] => 0
    [num_hits] => 9
    [num_misses] => 3
    [start_time] => 1123958803
    [cache_list] => Array
        (
            [0] => Array
                (
                    [filename] => /path/to/apc_test.php
                    [device] => 29954
                    [inode] => 1130511
                    [type] => file
                    [num_hits] => 1
                    [mtime] => 1123960686
                    [creation_time] => 1123960696
                    [deletion_time] => 0
                    [access_time] => 1123962864
                    [ref_count] => 1
                    [mem_size] => 677
                )
            [1] => Array (...iterates for each cached file)
)

Смотрите также

APC configuration directives

Пред. | Начало | След.
Alternative PHP Cache | Уровень выше | apc_clear_cache


apc_clear_cache

(PECL)

apc_clear_cache -- Clears the APC cache

Описание

bool apc_clear_cache ( [string cache_type] )

Пред. | Начало | След.
apc_cache_info | Уровень выше | apc_define_constants


apc_define_constants

(PECL)

apc_define_constants -- Defines a set of constants for later retrieval and mass-definition

Описание

bool apc_define_constants ( string key, array constants [, bool case_sensitive] )

define() is notoriously slow. Since the main benefit of APC is to increase the performance of scripts/applications, this mechanism is provided to streamline the process of mass constant definition.

Замечание: To remove a set of stored constants (without clearing the entire cache), an empty array may be passed as the constants parameter, effectively clearing the stored value(s).

Список параметров

key

The key serves as the name of the constant set being stored. This key is used to retrieve the stored constants in apc_load_constants().

constants

An associative array of constant_name => value pairs. The constant_name must follow the normal constant naming rules. value must evaluate to a scalar value.

case_sensitive

The default behaviour for constants is to be declared case-sensitive; i.e. CONSTANT and Constant represent different values. If this parameter evaluates to FALSE the constants will be declared as case-insensitive symbols.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. apc_define_constants() example

<?php
$constants = array(
    'ONE'   => 1,
    'TWO'   => 2,
    'THREE' => 3,
);
apc_define_constants('numbers', $constants);
apc_load_constants('numbers');
echo ONE, TWO, THREE;
?>

Результат выполнения данного примера:

123

Смотрите также

apc_load_constants()
define()
constant()
Or the PHP constants reference

Пред. | Начало | След.
apc_clear_cache | Уровень выше | apc_delete


apc_delete

(PECL)

apc_delete -- Removes a stored variable from the cache

Описание

bool apc_delete ( string key )

Список параметров

key

The key used to store the value (with apc_store()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. A apc_delete() example

<?php
$bar = 'BAR';
apc_store('foo', $bar);
apc_delete('foo'));
// this is obviously useless in this form
?>

Смотрите также

apc_store()
apc_fetch()

Пред. | Начало | След.
apc_define_constants | Уровень выше | apc_fetch


apc_fetch

(PECL)

apc_fetch -- Fetch a stored variable from the cache

Описание

mixed apc_fetch ( string key )

Список параметров

key

The key used to store the value (with apc_store()).

Возвращаемые значения

The stored variable on success; FALSE on failure

Примеры

Пример 1. A apc_fetch() example

<?php
$bar = 'BAR';
apc_store('foo', $bar);
var_dump(apc_fetch('foo'));
?>

Результат выполнения данного примера:

string(3) "BAR"

Смотрите также

apc_store()
apc_delete()

Пред. | Начало | След.
apc_delete | Уровень выше | apc_load_constants


apc_load_constants

(PECL)

apc_load_constants -- Loads a set of constants from the cache

Описание

bool apc_load_constants ( string key [, bool case_sensitive] )

Список параметров

key

The name of the constant set (that was stored with apc_define_constants()) to be retrieved.

case_sensitive

The default behaviour for constants is to be declared case-sensitive; i.e. CONSTANT and Constant represent different values. If this parameter evaluates to FALSE the constants will be declared as case-insensitive symbols.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. apc_load_constants() example

<?php
$constants = array(
    'ONE'   => 1,
    'TWO'   => 2,
    'THREE' => 3,
);
apc_define_constants('numbers', $constants);
apc_load_constants('numbers');
echo ONE, TWO, THREE;
?>

Результат выполнения данного примера:

123

Смотрите также

apc_define_constants()
define()
constant()
Or the PHP constants reference

Пред. | Начало | След.
apc_fetch | Уровень выше | apc_sma_info


apc_sma_info

(PECL)

apc_sma_info -- Retrieves APC's Shared Memory Allocation information

Описание

array apc_sma_info ( void )

Возвращаемые значения

Array of Shared Memory Allocation data; FALSE on failure.

Примеры

Пример 1. A apc_sma_info() example

<?php
print_r(apc_sma_info());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [num_seg] => 1
    [seg_size] => 31457280
    [avail_mem] => 31448408
    [block_lists] => Array
        (
            [0] => Array
                (
                    [0] => Array
                        (
                            [size] => 31448408
                            [offset] => 8864
                        )

                )

        )

)

Смотрите также

APC configuration directives

Пред. | Начало | След.
apc_load_constants | Уровень выше | apc_store


apc_store

(PECL)

apc_store -- Cache a variable in the data store

Описание

bool apc_store ( string key, mixed var [, int ttl] )

Замечание: Unlike many other mechanisms in PHP, variables stored using apc_store() will persist between requests (until the value is removed from the cache).

Список параметров

key

Store the variable using this name. keys are cache-unique, so storing a second value with the same key will overwrite the original value.

var

The variable to store

ttl

Time To Live; store var in the cache for ttl seconds. After the ttl has passed, the stored variable will be expunged from the cache (on the next request). If no ttl is supplied (or if the ttl is 0), the value will persist until it is removed from the cache manually, or otherwise fails to exist in the cache (clear, restart, etc.).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. A apc_store() example

<?php
$bar = 'BAR';
apc_store('foo', $bar);
var_dump(apc_fetch('foo'));
?>

Результат выполнения данного примера:

string(3) "BAR"

Смотрите также

apc_fetch()
apc_delete()

Пред. | Начало | След.
apc_sma_info | Уровень выше | Advanced PHP debugger


array_product

(PHP 5 >= 5.1.0RC1)

array_product -- Вычислить произведение значений массива

Описание

number array_product ( array array )

array_product() возвращает произведение значений массива как целое число или число с плавающей точкой.

Пример 1. Пример использования array_product()

<?php

$a = array(2, 4, 6, 8);
echo "product(a) = " . array_product($a) . "\n";

?>

Результат выполнения данного примера:

product(a) = 384

Пред. | Начало | След.
array_pop | Уровень выше | array_push


cybermut_creerformulairecm

(4.0.5 - 4.2.3 only, PECL)

cybermut_creerformulairecm -- Generate HTML form of request for payment

Описание

string cybermut_creerformulairecm ( string url_cm, string version, string tpe, string price, string ref_command, string text_free, string url_return, string url_return_ok, string url_return_err, string language, string code_company, string text_button )

cybermut_creerformulairecm() is used to generate the HTML form of request for payment.

Смотрите также

cybermut_testmac()
cybermut_creerreponsecm()

Пред. | Начало | След.
Credit Mutuel CyberMUT functions | Уровень выше | cybermut_creerreponsecm


cybermut_creerreponsecm

(4.0.5 - 4.2.3 only, PECL)

cybermut_creerreponsecm -- Generate the delivery's acknowledgement of the payment's confirmation

Описание

string cybermut_creerreponsecm ( string sentence )

The parameter is "OK" if the message of confirmation of the payment were correctly authenticated by cybermut_testmac(). Any other chain is regarded as an error message.

Возвращаемые значения

Returns a string containing the message of acknowledgement of delivery.

Смотрите также

cybermut_creerformulairecm()
cybermut_testmac()

Пред. | Начало | След.
cybermut_creerformulairecm | Уровень выше | cybermut_testmac


cybermut_testmac

(4.0.5 - 4.2.3 only, PECL)

cybermut_testmac -- Make sure that there was no data diddling contained in the received message of confirmation

Описание

bool cybermut_testmac ( string code_mac, string version, string tpe, string cdate, string price, string ref_command, string text_free, string code_return )

cybermut_testmac() is used to make sure that there was no data diddling contained in the received message of confirmation. Pay attention to parameters code_return and text_free, which cannot be evaluated as is, because of the dash.

Смотрите также

cybermut_creerformulairecm()
cybermut_creerreponsecm()

Пред. | Начало | След.
cybermut_creerreponsecm | Уровень выше | Cyrus IMAP administration Functions


date_default_timezone_get

(PHP 5 >= 5.1.0RC1)

date_default_timezone_get -- Gets the default timezone used by all date/time functions in a script

Описание

string date_default_timezone_get ( void )

This functions returns the default timezone, using the following "guess" order:

  • The timezone set using the date_default_timezone_set() function (if any)

  • The TZ environment variable (if non empty)

  • The date.timezone ini option (if set)

  • "magical" guess (if the operating system supports it)

  • If none of the above options succeeds, return UTC

Возвращаемые значения

Returns a string.

Смотрите также

date_default_timezone_set()

Пред. | Начало | След.
checkdate | Уровень выше | date_default_timezone_set


date_default_timezone_set

(PHP 5 >= 5.1.0RC1)

date_default_timezone_set -- Sets the default timezone used by all date/time functions in a script

Описание

bool date_default_timezone_set ( string timezone_identifier )

date_default_timezone_set() sets the default timezone used by all date/time functions.

Замечание: Since PHP 5.1.0 (when the date/time functions were rewritten), every call to a date/time function will generate a E_NOTICE if the timezone isn't valid, and/or a E_STRICT message if using the system settings or the TZ environment variable.

Список параметров

timezone_identifier

The timezone identifier, like UTC or Europe/Lisbon. The list of valid identifiers is available in the Прил. H.

Возвращаемые значения

This function always returns TRUE (even if the timezone_identifier isn't valid).

Смотрите также

date_default_timezone_get()

Пред. | Начало | След.
date_default_timezone_get | Уровень выше | date_sunrise


db2_client_info

(no version information, might be only in CVS)

db2_client_info -- Returns an object with properties that describe the DB2 database client

Описание

object db2_client_info ( resource connection )

This function returns an object with read-only properties that return information about the DB2 database client. The following table lists the DB2 client properties:

Таблица 1. DB2 client properties

Property name | Return type | Description
APPL_CODEPAGE | int | The application code page.
CONN_CODEPAGE | int | The code page for the current connection.
DATA_SOURCE_NAME | string | The data source name (DSN) used to create the current connection to the database.
DRIVER_NAME | string | The name of the library that implements the DB2 Call Level Interface (CLI) specification.
DRIVER_ODBC_VER | string | The version of ODBC that the DB2 client supports. This returns a string "MM.mm" where MM is the major version and mm is the minor version. The DB2 client always returns "03.51".
DRIVER_VER | string | The version of the client, in the form of a string "MM.mm.uuuu" where MM is the major version, mm is the minor version, and uuuu is the update. For example, "08.02.0001" represents major version 8, minor version 2, update 1.
ODBC_SQL_CONFORMANCE string The level of ODBC SQL grammar supported by the client:

MINIMUM

Supports the minimum ODBC SQL grammar.

CORE

Supports the core ODBC SQL grammar.

EXTENDED

Supports extended ODBC SQL grammar.

ODBC_VER | string | The version of ODBC that the ODBC driver manager supports. This returns a string "MM.mm.rrrr" where MM is the major version, mm is the minor version, and rrrr is the release. The DB2 client always returns "03.01.0000".

Список параметров

connection

Specifies an active DB2 client connection.

Возвращаемые значения

Returns an object on a successful call. Returns FALSE on failure.

Примеры

Пример 1. A db2_client_info() example

To retrieve information about the client, you must pass a valid database connection resource to db2_client_info().

<?php
$conn = db2_connect( 'SAMPLE', 'db2inst1', 'ibmdb2' );
$client = db2_client_info( $conn );

if ($client) {
    echo "DRIVER_NAME: ";         var_dump( $client->DRIVER_NAME );
    echo "DRIVER_VER: ";         var_dump( $client->DRIVER_VER );
    echo "DATA_SOURCE_NAME: ";         var_dump( $client->DATA_SOURCE_NAME );
    echo "DRIVER_ODBC_VER: ";         var_dump( $client->DRIVER_ODBC_VER );
    echo "ODBC_VER: ";             var_dump( $client->ODBC_VER );
    echo "ODBC_SQL_CONFORMANCE: ";     var_dump( $client->ODBC_SQL_CONFORMANCE );
    echo "APPL_CODEPAGE: ";         var_dump( $client->APPL_CODEPAGE );
    echo "CONN_CODEPAGE: ";         var_dump( $client->CONN_CODEPAGE );
}
else {
    echo "Error retrieving client information.
     Perhaps your database connection was invalid.";
}
db2_close($conn);

?>

Результат выполнения данного примера:

DRIVER_NAME: string(8) "libdb2.a"
DRIVER_VER: string(10) "08.02.0001"
DATA_SOURCE_NAME: string(6) "SAMPLE"
DRIVER_ODBC_VER: string(5) "03.51"
ODBC_VER: string(10) "03.01.0000"
ODBC_SQL_CONFORMANCE: string(8) "EXTENDED"
APPL_CODEPAGE: int(819)
CONN_CODEPAGE: int(819)

Смотрите также

db2_server_info()

Пред. | Начало | След.
db2_bind_param | Уровень выше | db2_close


db2_fetch_array

(PECL)

db2_fetch_array -- Returns an array, indexed by column position, representing a row in a result set

Описание

array db2_fetch_array ( resource stmt [, int row_number] )

Returns an array, indexed by column position, representing a row in a result set. The columns are 0-indexed.

Список параметров

stmt

A valid stmt resource containing a result set.

row_number

Requests a specific 1-indexed row from the result set. Passing this parameter results in a PHP warning if the result set uses a forward-only cursor.

Возвращаемые значения

Returns a 0-indexed array with column values indexed by the column position representing the next or requested row in the result set. Returns FALSE if there are no rows left in the result set, or if the row requested by row_number does not exist in the result set.

Примеры

Пример 1. Iterating through a forward-only cursor

If you call db2_fetch_array() without a specific row number, it automatically retrieves the next row in the result set.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$stmt = db2_prepare($conn, $sql);
$result = db2_execute($stmt);

while ($row = db2_fetch_array($stmt)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row[0], $row[1], $row[2], $row[3]);
}
?>

Результат выполнения данного примера:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Пример 2. Retrieving specific rows with db2_fetch_assoc() from a scrollable cursor

If your result set uses a scrollable cursor, you can call db2_fetch_assoc() with a specific row number. The following example retrieves every other row in the result set, starting with the second row.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$result = db2_exec($stmt, $sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while ($row = db2_fetch_array($result, $i)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row[0], $row[1], $row[2], $row[3]);
    $i = $i + 2;
}
?>

Результат выполнения данного примера:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Смотрите также

db2_fetch_assoc()
db2_fetch_both()
db2_fetch_object()
db2_fetch_row()
db2_result()

Пред. | Начало | След.
db2_execute | Уровень выше | db2_fetch_assoc


db2_fetch_object

(PECL)

db2_fetch_object -- Returns an object with properties representing columns in the fetched row

Описание

object db2_fetch_object ( resource stmt [, int row_number] )

Returns an object in which each property represents a column returned in the row fetched from a result set.

Список параметров

stmt

A valid stmt resource containing a result set.

row_number

Requests a specific 1-indexed row from the result set. Passing this parameter results in a PHP warning if the result set uses a forward-only cursor.

Возвращаемые значения

Returns an object representing a single row in the result set. The properties of the object map to the names of the columns in the result set.

The IBM DB2, Cloudscape, and Apache Derby database servers typically fold column names to upper-case, so the object properties will reflect that case.

If your SELECT statement calls a scalar function to modify the value of a column, the database servers return the column number as the name of the column in the result set. If you prefer a more descriptive column name and object property, you can use the AS clause to assign a name to the column in the result set.

Returns FALSE if no row was retrieved.

Примеры

Пример 1. A db2_fetch_object() example

The following example issues a SELECT statement with a scalar function, RTRIM, that removes whitespace from the end of the column. Rather than creating an object with the properties "BREED" and "2", we use the AS clause in the SELECT statement to assign the name "name" to the modified column. The database server folds the column names to upper-case, resulting in an object with the properties "BREED" and "NAME".

<?php
$conn = db2_connect($database, $user, $password);

$sql = "SELECT breed, RTRIM(name) AS name
    FROM animals
    WHERE id = ?";

if ($conn) {
    $stmt = db2_prepare($conn, $sql);
    db2_execute($stmt, array(0));

    while ($pet = db2_fetch_object($stmt)) {
        echo "Come here, {$pet->NAME}, my little {$pet->BREED}!";
    }
    db2_close($conn);
}
?>

Результат выполнения данного примера:

Come here, Pook, my little cat!

Смотрите также

db2_fetch_array()
db2_fetch_assoc()
db2_fetch_both()
db2_fetch_row()
db2_result()

Пред. | Начало | След.
db2_fetch_both | Уровень выше | db2_fetch_row


db2_server_info

(no version information, might be only in CVS)

db2_server_info -- Returns an object with properties that describe the DB2 database server

Описание

object db2_server_info ( resource connection )

This function returns an object with read-only properties that return information about the IBM DB2, Cloudscape, or Apache Derby database server. The following table lists the database server properties:

Таблица 1. Database server properties

Property name | Return type | Description
DBMS_NAME | string | The name of the database server to which you are connected. For DB2 servers this is a combination of DB2 followed by the operating system on which the database server is running.
DBMS_VER | string | The version of the database server, in the form of a string "MM.mm.uuuu" where MM is the major version, mm is the minor version, and uuuu is the update. For example, "08.02.0001" represents major version 8, minor version 2, update 1.
DB_CODEPAGE | int | The code page of the database to which you are connected.
DB_NAME | string | The name of the database to which you are connected.
DFT_ISOLATION string The default transaction isolation level supported by the server:

UR

Uncommitted read: changes are immediately visible by all concurrent transactions.

CS

Cursor stability: a row read by one transaction can be altered and committed by a second concurrent transaction.

RS

Read stability: a transaction can add or remove rows matching a search condition or a pending transaction.

RR

Repeatable read: data affected by pending transaction is not available to other transactions.

NC

No commit: any changes are visible at the end of a successful operation. Explicit commits and rollbacks are not allowed.

IDENTIFIER_QUOTE_CHAR | string | The character used to delimit an identifier.
INST_NAME | string | The instance on the database server that contains the database.
ISOLATION_OPTION | array | An array of the isolation options supported by the database server. The isolation options are described in the DFT_ISOLATION property.
KEYWORDS | array | An array of the keywords reserved by the database server.
LIKE_ESCAPE_CLAUSE | bool | TRUE if the database server supports the use of % and _ wildcard characters. FALSE if the database server does not support these wildcard characters.
MAX_COL_NAME_LEN | int | Maximum length of a column name supported by the database server, expressed in bytes.
MAX_IDENTIFIER_LEN | int | Maximum length of an SQL identifier supported by the database server, expressed in characters.
MAX_INDEX_SIZE | int | Maximum size of columns combined in an index supported by the database server, expressed in bytes.
MAX_PROC_NAME_LEN | int | Maximum length of a procedure name supported by the database server, expressed in bytes.
MAX_ROW_SIZE | int | Maximum length of a row in a base table supported by the database server, expressed in bytes.
MAX_SCHEMA_NAME_LEN | int | Maximum length of a schema name supported by the database server, expressed in bytes.
MAX_STATEMENT_LEN | int | Maximum length of an SQL statement supported by the database server, expressed in bytes.
MAX_TABLE_NAME_LEN | int | Maximum length of a table name supported by the database server, expressed in bytes.
NON_NULLABLE_COLUMNS | bool | TRUE if the database server supports columns that can be defined as NOT NULL, FALSE if the database server does not support columns defined as NOT NULL.
PROCEDURES | bool | TRUE if the database server supports the use of the CALL statement to call stored procedures, FALSE if the database server does not support the CALL statement.
SPECIAL_CHARS | string | A string containing all of the characters other than a-Z, 0-9, and underscore that can be used in an identifier name.
SQL_CONFORMANCE string The level of conformance to the ANSI/ISO SQL-92 specification offered by the database server:

ENTRY

Entry-level SQL-92 compliance.

FIPS127

FIPS-127-2 transitional compliance.

FULL

Full level SQL-92 compliance.

INTERMEDIATE

Intermediate level SQL-92 compliance.

Список параметров

connection

Specifies an active DB2 client connection.

Возвращаемые значения

Returns an object on a successful call. Returns FALSE on failure.

Примеры

Пример 1. A db2_server_info() example

To retrieve information about the server, you must pass a valid database connection resource to db2_server_info().

<?php

$conn = db2_connect('sample', 'db2inst1', 'ibmdb2');

$server = db2_server_info( $conn );

if ($server) {
    echo "DBMS_NAME: ";                 var_dump( $server->DBMS_NAME );
    echo "DBMS_VER: ";                  var_dump( $server->DBMS_VER );
    echo "DB_CODEPAGE: ";               var_dump( $server->DB_CODEPAGE );
    echo "DB_NAME: ";                   var_dump( $server->DB_NAME );
    echo "INST_NAME: ";                 var_dump( $server->INST_NAME );
    echo "SPECIAL_CHARS: ";             var_dump( $server->SPECIAL_CHARS );
    echo "KEYWORDS: ";                  var_dump( sizeof($server->KEYWORDS) );
    echo "DFT_ISOLATION: ";             var_dump( $server->DFT_ISOLATION );
    echo "ISOLATION_OPTION: ";
    $il = '';
    foreach( $server->ISOLATION_OPTION as $opt )
    {
       $il .= $opt." ";
    }
    var_dump( $il );
    echo "SQL_CONFORMANCE: ";           var_dump( $server->SQL_CONFORMANCE );
    echo "PROCEDURES: ";                var_dump( $server->PROCEDURES );
    echo "IDENTIFIER_QUOTE_CHAR: ";     var_dump( $server->IDENTIFIER_QUOTE_CHAR );
    echo "LIKE_ESCAPE_CLAUSE: ";        var_dump( $server->LIKE_ESCAPE_CLAUSE );
    echo "MAX_COL_NAME_LEN: ";          var_dump( $server->MAX_COL_NAME_LEN );
    echo "MAX_ROW_SIZE: ";              var_dump( $server->MAX_ROW_SIZE );
    echo "MAX_IDENTIFIER_LEN: ";        var_dump( $server->MAX_IDENTIFIER_LEN );
    echo "MAX_INDEX_SIZE: ";            var_dump( $server->MAX_INDEX_SIZE );
    echo "MAX_PROC_NAME_LEN: ";         var_dump( $server->MAX_PROC_NAME_LEN );
    echo "MAX_SCHEMA_NAME_LEN: ";       var_dump( $server->MAX_SCHEMA_NAME_LEN );
    echo "MAX_STATEMENT_LEN: ";         var_dump( $server->MAX_STATEMENT_LEN );
    echo "MAX_TABLE_NAME_LEN: ";        var_dump( $server->MAX_TABLE_NAME_LEN );
    echo "NON_NULLABLE_COLUMNS: ";      var_dump( $server->NON_NULLABLE_COLUMNS );

    db2_close($conn);
}
?>

Результат выполнения данного примера:

DBMS_NAME: string(9) "DB2/LINUX"
DBMS_VER: string(10) "08.02.0000"
DB_CODEPAGE: int(1208)
DB_NAME: string(6) "SAMPLE"
INST_NAME: string(8) "db2inst1"
SPECIAL_CHARS: string(2) "@#"
KEYWORDS: int(179)
DFT_ISOLATION: string(2) "CS"
ISOLATION_OPTION: string(12) "UR CS RS RR "
SQL_CONFORMANCE: string(7) "FIPS127"
PROCEDURES: bool(true)
IDENTIFIER_QUOTE_CHAR: string(1) """
LIKE_ESCAPE_CLAUSE: bool(true)
MAX_COL_NAME_LEN: int(30)
MAX_ROW_SIZE: int(32677)
MAX_IDENTIFIER_LEN: int(18)
MAX_INDEX_SIZE: int(1024)
MAX_PROC_NAME_LEN: int(128)
MAX_SCHEMA_NAME_LEN: int(30)
MAX_STATEMENT_LEN: int(2097152)
MAX_TABLE_NAME_LEN: int(128)
NON_NULLABLE_COLUMNS: bool(true)

Смотрите также

db2_client_info()

Пред. | Начало | След.
db2_rollback | Уровень выше | db2_special_columns


DomAttribute->set_value

(no version information, might be only in CVS)

DomAttribute->set_value -- Sets the value of an attribute

Описание

class DomAttribute {

bool set_value ( string content )

}

This function sets the value of an attribute.

Список параметров

content

The new value.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Migrating to PHP 5

Set the value property of DOMAttr.

Смотрите также

DomAttribute->value

Пред. | Начало | След.
DomAttribute->name | Уровень выше | DomAttribute->specified


domxml_xslt_version

(PHP 4 >= 4.2.0, PECL)

domxml_xslt_version -- Gets the XSLT library version

Описание

int domxml_xslt_version ( void )

Gets the XSLT library version.

Возвращаемые значения

Returns the version number of the XSLT library, as an integer.

Примеры

Пример 1. domxml_xslt_version() Example

<?php

echo domxml_xslt_version();

?>

Результатом выполнения данного примера будет что-то подобное:

10112

Смотрите также

domxml_version()

Пред. | Начало | След.
domxml_xslt_stylesheet | Уровень выше | xpath_eval_expression


expect_expectl

(no version information, might be only in CVS)

expect_expectl -- Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen

Описание

mixed expect_expectl ( resource expect, array cases )

Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen.

Список параметров

expect

An Expect stream, previously opened with expect_popen().

cases

An array of expect cases. Each expect case is an indexed array, as described in the following table:

Таблица 1. Expect Case Array

Index Key | Value Type | Description | Is Mandatory | Default Value
0 | string | pattern, that will be matched against the output from the stream | yes
1 | mixed | value, that will be returned by this function, if the pattern matches | yes
2 | integer | pattern type, one of: EXP_GLOB, EXP_EXACT or EXP_REGEXP | no | EXP_GLOB

Возвращаемые значения

Returns value associated with the pattern that was matched.

On failure this function returns: EXP_EOF, EXP_TIMEOUT or EXP_FULLBUFFER

Примеры

Пример 1. expect_expectl() example

<?php
// Copies file from remote host:
ini_set ("expect.timeout", 30);

$stream = popen ("expect://scp user@remotehost:/var/log/messages /home/user/messages.txt", "r");

$cases = array (
  array (0 => "password:", 1 => PASSWORD),
  array (0 => "yes/no)?", 1 => YESNO)
);

while (true) {
 switch (expect_expectl ($stream, $cases))
 {
  case PASSWORD:
   fwrite ($stream, "password\n");
   break;

  case YESNO:
   fwrite ($stream, "yes\n");
   break;

  case EXP_TIMEOUT:
  case EXP_EOF:
   break 2;

  default:
   die ("Error has occurred!\n");
 }
}

fclose ($stream);
?>

Смотрите также

expect_popen()

Пред. | Начало | След.
Expect Functions | Уровень выше | expect_popen


expect_popen

(no version information, might be only in CVS)

expect_popen -- Exectute command via Bourne shell, and open the PTY stream to the process

Описание

resource expect_popen ( string command )

Execute command via Bourne shell, and open the PTY stream to the process.

Список параметров

command

Command to execute.

Возвращаемые значения

Returns an open PTY stream to the process'es stdio, stdout and stderr.

On failure this function returns FALSE.

Примеры

Пример 1. expect_popen() example

<?php
// Login to the PHP.net CVS repository:
$stream = expect_popen ("cvs -d :pserver:anonymous@cvs.php.net:/repository login");
sleep (3);
fwrite ($stream, "phpfi\n");
fclose ($stream);
?>

Смотрите также

popen()

Пред. | Начало | След.
expect_expectl | Уровень выше | File Alteration Monitor Functions


gnupg_adddecryptkey

(no version information, might be only in CVS)

gnupg_adddecryptkey -- Add a key for decryption

Описание

bool gnupg_adddecryptkey ( resource identifier, string fingerprint [, string passphrase] )

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Procedural gnupg_adddecryptkey() example

<?php
$res = gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
?>

Пример 2. OO gnupg_adddecryptkey() example

<?php
$gpg = new gnupg();
$gpg -> adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
?>

Пред. | Начало | След.
gnupg Функции | Уровень выше | gnupg_addencryptkey


gnupg_addencryptkey

(no version information, might be only in CVS)

gnupg_addencryptkey -- Add a key for encryption

Описание

bool gnupg_addencryptkey ( resource identifier, string fingerprint )

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Procedural gnupg_addencryptkey() example

<?php
$res = gnupg_init();
gnupg_addencryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC");
?>

Пример 2. OO gnupg_addencryptkey() example

<?php
$gpg = new gnupg();
$gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
?>

Пред. | Начало | След.
gnupg_adddecryptkey | Уровень выше | gnupg_addsignkey


gnupg_addsignkey

(no version information, might be only in CVS)

gnupg_addsignkey -- Add a key for signing

Описание

bool gnupg_addsignkey ( resource identifier, string fingerprint [, string passphrase] )

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Procedural gnupg_addsignkey() example

<?php
$res = gnupg_init();
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
?>

Пример 2. OO gnupg_addsignkey() example

<?php
$gpg = new gnupg();
$gpg -> addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
?>

Пред. | Начало | След.
gnupg_addencryptkey | Уровень выше | gnupg_cleardecryptkeys


gnupg_cleardecryptkeys

(no version information, might be only in CVS)

gnupg_cleardecryptkeys -- Removes all keys which were set for decryption before

Описание

bool gnupg_cleardecryptkeys ( resource identifier )

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Procedural gnupg_cleardecryptkeys() example

<?php
$res = gnupg_init();
gnupg_cleardecryptkeys($res);
?>

Пример 2. OO gnupg_cleardecryptkeys() example

<?php
$gpg = new gnupg();
$gpg -> cleardecryptkeys();
?>

Пред. | Начало | След.
gnupg_addsignkey | Уровень выше | gnupg_clearencryptkeys


gnupg_clearencryptkeys

(no version information, might be only in CVS)

gnupg_clearencryptkeys -- Removes all keys which were set for encryption before

Описание

bool gnupg_clearencryptkeys ( resource identifier )

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Procedural gnupg_clearencryptkeys() example

<?php
$res = gnupg_init();
gnupg_clearencryptkeys($res);
?>

Пример 2. OO gnupg_clearencryptkeys() example

<?php
$gpg = new gnupg();
$gpg -> clearencryptkeys();
?>

Пред. | Начало | След.
gnupg_cleardecryptkeys | Уровень выше | gnupg_clearsignkeys


gnupg_clearsignkeys

(no version information, might be only in CVS)

gnupg_clearsignkeys -- Removes all keys which were set for signing before

Описание

bool gnupg_clearsignkeys ( resource identifier )

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Procedural gnupg_clearsignkeys() example

<?php
$res = gnupg_init();
gnupg_clearsignkeys($res);
?>

Пример 2. OO gnupg_clearsignkeys() example

<?php
$gpg = new gnupg();
$gpg -> clearsignkeys();
?>

Пред. | Начало | След.
gnupg_clearencryptkeys | Уровень выше | gnupg_decrypt


gnupg_decrypt

(no version information, might be only in CVS)

gnupg_decrypt -- Decrypts a given text

Описание

string gnupg_decrypt ( resource identifier, string text )

Decrypts the given text with the keys, which were set with gnupg_adddecryptkey before.

Возвращаемые значения

On success, this function returns the decrypted text. On failure, this function returns FALSE.

Примеры

Пример 1. Procedural gnupg_decrypt() example

<?php
$res = gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$plain = gnupg_decrypt($res,$encrypted_text);
echo $plain;
?>

Пример 2. OO gnupg_encrypt() example

<?php
$gpg = new gnupg();
$gpg -> adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$plain = $gpg -> decrypt($encrypted_text);
echo $plain;
?>

Пред. | Начало | След.
gnupg_clearsignkeys | Уровень выше | gnupg_decryptverify


gnupg_decryptverify

(no version information, might be only in CVS)

gnupg_decryptverify -- Decrypts and verifies a given text

Описание

array gnupg_decryptverify ( resource identifier, string text, string plaintext )

Decrypts and verifies a given text and returns information about the signature. The parameter plaintext gets filled with the decrypted text.

Возвращаемые значения

On success, this function returns information about the signature and fills the plaintext parameter with the decrypted text. On failure, this function returns FALSE.

Примеры

Пример 1. Procedural gnupg_decryptverify() example

<?php
$plaintext = "";
$res = gnupg_init();
gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$info = gnupg_decryptverify($res,$text,$plaintext);
print_r($info);
?>

Пример 2. OO gnupg_decryptverify() example

<?php
$plaintext = "";
$gpg = new gnupg();
$gpg -> adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$info = $gpg -> decryptverify($text,$plaintext);
print_r($info);
?>

Пред. | Начало | След.
gnupg_decrypt | Уровень выше | gnupg_encrypt


gnupg_encrypt

(no version information, might be only in CVS)

gnupg_encrypt -- Encrypts a given text

Описание

string gnupg_encrypt ( resource identifier, string plaintext )

Encrypts the given plaintext with the keys, which were set with gnupg_addencryptkey before and returns the encrypted text.

Возвращаемые значения

On success, this function returns the encrypted text. On failure, this function returns FALSE.

Примеры

Пример 1. Procedural gnupg_encrypt() example

<?php
$res = gnupg_init();
gnupg_addencryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC");
$enc = gnupg_encrypt($res, "just a test");
echo $enc;
?>

Пример 2. OO gnupg_encrypt() example

<?php
$gpg = new gnupg();
$gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
$enc = $gpg -> encrypt("just a test");
echo $enc;
?>

Пред. | Начало | След.
gnupg_decryptverify | Уровень выше | gnupg_encryptsign


gnupg_encryptsign

(no version information, might be only in CVS)

gnupg_encryptsign -- Encrypts and signs a given text

Описание

string gnupg_encryptsign ( resource identifier, string plaintext )

Encrypts and signs the given plaintext with the keys, which were set with gnupg_addsignkey and gnupg_addencryptkey before and returns the encrypted and signed text.

Возвращаемые значения

On success, this function returns the encrypted and signed text. On failure, this function returns FALSE.

Примеры

Пример 1. Procedural gnupg_encryptsign() example

<?php
$res = gnupg_init();
gnupg_addencryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC");
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$enc = gnupg_encryptsign($res, "just a test");
echo $enc;
?>

Пример 2. OO gnupg_encryptsign() example

<?php
$gpg = new gnupg();
$gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
$gpg -> addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$enc = $gpg -> encryptsign("just a test");
echo $enc;
?>

Пред. | Начало | След.
gnupg_encrypt | Уровень выше | gnupg_export


gnupg_export

(no version information, might be only in CVS)

gnupg_export -- Exports a key

Описание

string gnupg_export ( resource identifier, string fingerprint )

Exports the key fingerprint.

Возвращаемые значения

On success, this function returns the keydata. On failure, this function returns FALSE.

Примеры

Пример 1. Procedural gnupg_export() example

<?php
$res = gnupg_init();
$export = gnupg_export($res,"8660281B6051D071D94B5B230549F9DC851566DC");
echo $export;
?>

Пример 2. OO gnupg_export() example

<?php
$gpg = new gnupg();
$export = $gpg -> export("8660281B6051D071D94B5B230549F9DC851566DC");
?>

Пред. | Начало | След.
gnupg_encryptsign | Уровень выше | gnupg_geterror


gnupg_geterror

(no version information, might be only in CVS)

gnupg_geterror -- Returns the errortext, if a function fails

Описание

string gnupg_geterror ( resource identifier )

Возвращаемые значения

Returns an errortext, if an error has occured, otherwise FALSE.

Примеры

Пример 1. Procedural gnupg_geterror() example

<?php
$res = gnupg_init();
echo gnupg_geterror($res);
?>

Пример 2. OO gnupg_geterror() example

<?php
$gpg = new gnupg();
echo $gpg -> geterror();
?>

Пред. | Начало | След.
gnupg_export | Уровень выше | gnupg_getprotocol


gnupg_getprotocol

(no version information, might be only in CVS)

gnupg_getprotocol -- Returns the currently active protocol for all operations

Описание

int gnupg_getprotocol ( resource identifier )

Возвращаемые значения

Returns the currently active protocol, which can be one of GNUPG_PROTOCOL_OpenPGP or GNUPG_PROTOCOL_CMS.

Примеры

Пример 1. Procedural gnupg_getprotocol() example

<?php
$res = gnupg_init();
echo gnupg_getprotocol($res);
?>

Пример 2. OO gnupg_getprotocol() example

<?php
$gpg = new gnupg();
echo $gpg -> getprotocol();
?>

Пред. | Начало | След.
gnupg_geterror | Уровень выше | gnupg_import


gnupg_import

(no version information, might be only in CVS)

gnupg_import -- Imports a key

Описание

array gnupg_import ( resource identifier, string keydata )

Imports the key keydata and returns an array with information about the importprocess.

Возвращаемые значения

On success, this function returns and info-array about the importprocess. On failure, this function returns FALSE.

Примеры

Пример 1. Procedural gnupg_import() example

<?php
$res = gnupg_init();
$info = gnupg_import($res,$keydata);
print_r($info);
?>

Пример 2. OO gnupg_import() example

<?php
$gpg = new gnupg();
$info = $gpg -> import($keydata);
print_r($info);
?>

Пред. | Начало | След.
gnupg_getprotocol | Уровень выше | gnupg_keyinfo


gnupg_keyinfo

(no version information, might be only in CVS)

gnupg_keyinfo -- Returns an array with information about all keys that matches the given pattern

Описание

array gnupg_keyinfo ( resource identifier, string pattern )

Возвращаемые значения

Returns an array with information about all keys that matches the given pattern or FALSE, if an error has occured.

Примеры

Пример 1. Procedural gnupg_keyinfo() example

<?php
$res = gnupg_init();
$info = gnupg_keyinfo("test");
print_r($info);
?>

Пример 2. OO gnupg_keyinfo() example

<?php
$gpg = new gnupg();
$info = $gpg -> keyinfo("test");
print_r($info);
?>

Пред. | Начало | След.
gnupg_import | Уровень выше | gnupg_setarmor


gnupg_setarmor

(no version information, might be only in CVS)

gnupg_setarmor -- Toggle armored output

Описание

bool gnupg_setarmor ( resource identifier, int armor )

Pass a non-zero interger-value to this function to enable armored-output (default). Pass 0 to disable armored output.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Procedural gnupg_setarmor() example

<?php
$res = gnupg_init();
gnupg_setarmor($res,1); // enable armored output;
gnupg_setarmor($res,0); // disable armored output;
?>

Пример 2. OO gnupg_setarmor() example

<?php
$gpg = new gnupg();
$gpg -> setarmor(1); // enable armored output;
$gpg -> setarmor(0); // disable armored output;
?>

Пред. | Начало | След.
gnupg_keyinfo | Уровень выше | gnupg_seterrormode


gnupg_seterrormode

(no version information, might be only in CVS)

gnupg_seterrormode -- Sets the mode for error_reporting

Описание

bool gnupg_seterrormode ( resource identifier, int errormode )

errormode takes a constant indicating what type of error_reporting should be used. The possible values are GNUPG_ERROR_WARNING, GNUPG_ERROR_EXCEPTION and GNUPG_ERROR_SILENT. By default GNUPG_ERROR_SILENT is used.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Procedural gnupg_seterrormode() example

<?php
$res = gnupg_init();
gnupg_seterrormode($res,GNUPG_ERROR_WARNING); // raise a PHP-Warning in case of an error
?>

Пример 2. OO gnupg_seterrormode() example

<?php
$gpg = new gnupg();
$gpg -> seterrormode(gnupg::ERROR_EXCEPTION); // throw an exception in case of an error
?>

Пред. | Начало | След.
gnupg_setarmor | Уровень выше | gnupg_setsignmode


gnupg_setsignmode

(no version information, might be only in CVS)

gnupg_setsignmode -- Sets the mode for signing

Описание

bool gnupg_setsignmode ( resource identifier, int signmode )

signmode takes a constant indicating what type of signature should be produced. The possible values are GNUPG_SIG_MODE_NORMAL, GNUPG_SIG_MODE_DETACH and GNUPG_SIG_MODE_CLEAR. By default GNUPG_SIG_MODE_CLEAR is used.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Procedural gnupg_setsignmode() example

<?php
$res = gnupg_init();
gnupg_setsignmode($res,GNUPG_SIG_MODE_DETACH); // produce a detached signature
?>

Пример 2. OO gnupg_setsignmode() example

<?php
$gpg = new gnupg();
$gpg -> setsignmode(gnupg::SIG_MODE_DETACH); // produce a detached signature
?>

Пред. | Начало | След.
gnupg_seterrormode | Уровень выше | gnupg_sign


gnupg_sign

(no version information, might be only in CVS)

gnupg_sign -- Signs a given text

Описание

string gnupg_sign ( resource identifier, string plaintext )

Signs the given plaintext with the keys, which were set with gnupg_addsignkey before and returns the signed text or the signature, depending on what was set with gnupg_setsignmode.

Возвращаемые значения

On success, this function returns the signed text or the signature. On failure, this function returns FALSE.

Примеры

Пример 1. Procedural gnupg_sign() example

<?php
$res = gnupg_init();
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
$signed = gnupg_sign($res, "just a test");
echo $signed;
?>

Пример 2. OO gnupg_sign() example

<?php
$gpg = new gnupg();
$gpg -> setsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
$signed = $gpg -> sign("just a test");
echo $signed;
?>

Пред. | Начало | След.
gnupg_setsignmode | Уровень выше | gnupg_verify


gnupg_verify

(no version information, might be only in CVS)

gnupg_verify -- Verifies a signed text

Описание

array gnupg_verify ( resource identifier, string signed_text, string signature [, string plaintext] )

Verifies the given signed_text and returns information about the signature. To verify a clearsigned text, set signature to FALSE. If the optional parameter plaintext is passed, it is filled with the plaintext.

Возвращаемые значения

On success, this function returns informations about the signature. On failure, this function returns FALSE.

Примеры

Пример 1. Procedural gnupg_verify() example

<?php
$plaintext = "";
$res = gnupg_init();
// clearsigned
$info = gnupg_verify($res,$signed_text,false,$plaintext);
print_r($info);
// detached signature
$info = gnupg_verify($res,$signed_text,$signature);
print_r($info);
?>

Пример 2. OO gnupg_verify() example

<?php
$plaintext = "";
$gpg = new gnupg();
// clearsigned
$info = $gpg -> verify($signed_text,false,$plaintext);
print_r($info);
// detached signature
$info = $gpg -> verify($signed_text,$signature);
print_r($info);
?>

Пред. | Начало | След.
gnupg_sign | Уровень выше | Net_Gopher


gopher_parsedir

(PECL)

gopher_parsedir -- Translate a gopher formatted directory entry into an associative array.

Описание

array gopher_parsedir ( string dirent )

While gopher returns text/plain documents for actual document requests. A request to a directory (such as /) will return specially encoded series of lines with each line being one directory entry or information line.

Примеры

Пример 1. Hypothetical output from gopher://gopher.example.com/

0All about my gopher site.	/allabout.txt	gopher.example.com	70
9A picture of my cat.	/pics/cat.png	gopher.example.com	70
1A collection of my writings.	/stories	gopher.example.com	70
hThe HTTP version of this site.	URL:http://www.example.com	gopher.example.com	70
1Mirror of this site in Spain.	/	gopher.ejemplo.co.es	70
iWelcome to my gopher site.		error.host	1
iPlease select one of the options above		error.host	1
iSend complaints to /dev/null		error.host	1
iLong live gopher!		error.host	1

In the example above, the root directory at gopher.example.com knows about one DOCUMENT identified by 0 located at gopher://gopher.example.com:70/allabout.txt. It also knows about two other directory (which have their own listing files) at gopher://gopher.exmaple.com:70/stories and at gopher://gopher.ejemplo.co.es:70/. In addition there is a binary file, a link to an HTTP url, and several informative lines.

By passing each line of the directory listing into gopher_parsedir(), an associative array is formed containing a parsed out version of the data.

Пример 2. Using gopher_parsedir()

<?php
dl("gopher.so");

$directory = file("gopher://gopher.example.com");

foreach($directory as $dirent) {
    print_r(gopher_parsedir($dirent));
}

/* Expected Output
   ---------------

Array (
  [type] => 0
  [title] => All about my gopher site.
  [path] => /allabout.txt
  [host] => gopher.example.com
  [port] => 70
)
Array (
  [type] => 9
  [title] => A picture of my cat.
  [path] => /pics/cat.png
  [host] => gopher.example.com
  [port] => 70
)
Array (
  [type] => 1
  [title] => A collection of my writings.
  [path] => /stories
  [host] => gopher.example.com
  [port] => 70
)
Array (
  [type] => 254
  [title] => The HTTP version of this site.
  [path] => URL:http://www.example.com
  [host] => gopher.example.com
  [port] => 70
)
Array (
  [type] => 1
  [title] => Mirror of this site in Spain.
  [path] => /
  [host] => gopher.ejemplo.co.es
  [port] => 70
)
Array (
  [type] => 255
  [title] => Welcome to my gopher site.
  [path] =>
  [host] => error.host
  [port] => 1
)
Array (
  [type] => 255
  [title] => Please select one of the options above.
  [path] =>
  [host] => error.host
  [port] => 1
)
Array (
  [type] => 255
  [title] => Send complaints to /dev/null
  [path] =>
  [host] => error.host
  [port] => 1
)
Array (
  [type] => 255
  [title] => Long live gopher!
  [path] =>
  [host] => error.host
  [port] => 1
)
*/
?>

The values given by type are associated with the following constants.

Таблица 1. Gopher Constants

Constant | Definition
GOPHER_DOCUMENT | Standard text/plain document.
GOPHER_DIRECTORY | A resource containing a gopher formatted directory listing.
GOPHER_BINHEX | A BinHex encoded binary file.
GOPHER_DOSBINARY | A DOS formatted binary archive.
GOPHER_UUENCODED | A UUEncoded file.
GOPHER_BINARY | A generic binary file.
GOPHER_INFO | An Informational entry
GOPHER_HTTP | A reference to an HTTP resource.
GOPHER_UNKNOWN | An unrecognized entry, the line will be returned in data.

Пред. | Начало | След.
Net_Gopher | Уровень выше | Функции протокола HTTP


__halt_compiler

(no version information, might be only in CVS)

__halt_compiler -- Halts the compiler execution

Описание

void __halt_compiler ( void )

This function halts the execution of the compiler. This can be useful to embed data in PHP scripts, like the installation files. Byte position of the data start can be determined by the __COMPILER_HALT_OFFSET__ constant which is defined only if there is a __halt_compiler() presented in the file.

Замечание: __halt_compiler() can only be used from the outermost scope.

Примеры

Пример 1. A __halt_compiler() example

<?php

// open this file
$fp = fopen(__FILE__, 'r');

// seek file pointer to data
fseek($fp, __COMPILER_HALT_OFFSET__);

// and output it
var_dump(stream_get_contents($fp));

// the end of the script execution
__halt_compiler();the instalation data (eg. tar, gz, PHP, etc..)

Пред. | Начало | След.
get_browser | Уровень выше | highlight_file


i18n_loc_get_default

(no version information, might be only in CVS)

i18n_loc_get_default -- Get the default Locale

Описание

string i18n_loc_get_default ( void )

This function returns the default Locale, which is used by PHP to localize certain features. Please note that this isn't influenced by setlocale() or the system settings.

Возвращаемые значения

Returns a string with the current Locale.

Примеры

Пример 1. A i18n_loc_get_default() example

<?php

// get the default Locale
echo i18n_loc_get_default();

//set a new Locale...
i18n_loc_set_default('pt_PT');

// ... and print it
echo i18n_loc_get_default();

?>

Результат выполнения данного примера:

en_US_POSIX
pt_PT

Смотрите также

i18n_loc_set_default()

Пред. | Начало | След.
Unicode Functions | Уровень выше | i18n_loc_set_default


i18n_loc_set_default

(no version information, might be only in CVS)

i18n_loc_set_default -- Set the default Locale

Описание

bool i18n_loc_set_default ( string name )

Sets the default Locale for PHP programs. Please note that this has nothing to do with setlocale() nor with the system locale.

Список параметров

name

The new Locale name. A comprehensive list of the supported locales is available at http://www-950.ibm.com/software/globalization/icu/demo/locales/en/?d_=en.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. A i18n_loc_set_default() example

This example demonstrates a possible usage of i18n_loc_set_default() to localize the sort() functions.

<?php

// the list of the strings to sort
$array = array(
    'caramelo',
    'cacto',
    'ca?ada'
);

// set our locale (Portuguese, in this case)
i18n_loc_set_default('pt_PT');

// sort using the locale we previously set
sort($array, SORT_LOCALE_STRING);

print_r($array);
?>

Результат выполнения данного примера:

Array
(
    [0] => ca?ada
    [1] => cacto
    [2] => caramelo
)

If we didn't use the locale, PHP would sort the string using the ASCII characters value, thus returning (wrongly):

Array
(
    [0] => cacto
    [1] => caramelo
    [2] => ca?ada
)

Смотрите также

i18n_loc_get_default()

Пред. | Начало | След.
i18n_loc_get_default | Уровень выше | unicode_encode


imageconvolution

(PHP 5 >= 5.1.0RC1)

imageconvolution -- Apply a 3x3 convolution matrix, using coefficient div and offset

Description

bool imageconvolution ( resource image, array matrix3x3, float div, float offset )

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Замечание: Эта функция доступна только в том случае, если PHP был скомпилирован со встроенной библиотекой GD.

Пред. | Начало | След.
imagecolortransparent | Уровень выше | imagecopy


include

Руководство по PHP
Пред. Глава 16. Control Structures След.

include()

The include() statement includes and evaluates the specified file.

The documentation below also applies to require(). The two constructs are identical in every way except how they handle failure. include() produces a Warning while require() results in a Fatal Error. In other words, use require() if you want a missing file to halt processing of the page. include() does not behave this way, the script will continue regardless. Be sure to have an appropriate include_path setting as well. Be warned that parse error in included file doesn't cause processing halting in PHP versions prior to PHP 4.3.5. Since this version, it does.

Files for including are first looked in include_path relative to the current working directory and then in include_path relative to the directory of current script. E.g. if your include_path is ., current working directory is /www/, you included include/a.php and there is include "b.php" in that file, b.php is first looked in /www/ and then in /www/include/. If filename begins with ./ or ../, it is looked only in include_path relative to the current working directory.

When a file is included, the code it contains inherits the variable scope of the line on which the include occurs. Any variables available at that line in the calling file will be available within the called file, from that point forward. However, all functions and classes defined in the included file have the global scope.

Пример 16-5. Basic include() example

vars.php
<?php

$color = 'green';
$fruit = 'apple';

?>

test.php
<?php

echo "A $color $fruit"; // A

include 'vars.php';

echo "A $color $fruit"; // A green apple

?>

If the include occurs inside a function within the calling file, then all of the code contained in the called file will behave as though it had been defined inside that function. So, it will follow the variable scope of that function.

Пример 16-6. Including within functions

<?php

function foo()
{
    global $color;

    include 'vars.php';

    echo "A $color $fruit";
}

/* vars.php is in the scope of foo() so     *
 * $fruit is NOT available outside of this  *
 * scope.  $color is because we declared it *
 * as global.                               */

foo();                    // A green apple
echo "A $color $fruit";   // A green

?>

When a file is included, parsing drops out of PHP mode and into HTML mode at the beginning of the target file, and resumes again at the end. For this reason, any code inside the target file which should be executed as PHP code must be enclosed within valid PHP start and end tags.

If "URL fopen wrappers" are enabled in PHP (which they are in the default configuration), you can specify the file to be included using a URL (via HTTP or other supported wrapper - see Прил. M for a list of protocols) instead of a local pathname. If the target server interprets the target file as PHP code, variables may be passed to the included file using a URL request string as used with HTTP GET. This is not strictly speaking the same thing as including the file and having it inherit the parent file's variable scope; the script is actually being run on the remote server and the result is then being included into the local script.

Внимание

Версии PHP для Windows до PHP 4.3.0 не поддерживают возможность использования удаленных файлов этой функцией даже в том случае, если опция allow_url_fopen включена.

Пример 16-7. include() through HTTP

<?php

/* This example assumes that www.example.com is configured to parse .php
 * files and not .txt files. Also, 'Works' here means that the variables
 * $foo and $bar are available within the included file. */

// Won't work; file.txt wasn't handled by www.example.com as PHP
include 'http://www.example.com/file.txt?foo=1&bar=2';

// Won't work; looks for a file named 'file.php?foo=1&bar=2' on the
// local filesystem.
include 'file.php?foo=1&bar=2';

// Works.
include 'http://www.example.com/file.php?foo=1&bar=2';

$foo = 1;
$bar = 2;
include 'file.txt';  // Works.
include 'file.php';  // Works.

?>

Security warning

Remote file may be processed at the remote server (depending on the file extension and the fact if the remote server runs PHP or not) but it still has to produce a valid PHP script because it will be processed at the local server. If the file from the remote server should be processed there and outputted only, readfile() is much better function to use. Otherwise, special care should be taken to secure the remote script to produce a valid and desired code.

See also Remote files, fopen() and file() for related information.

Because include() and require() are special language constructs, you must enclose them within a statement block if it's inside a conditional block.

Пример 16-8. include() and conditional blocks

<?php

// This is WRONG and will not work as desired.
if ($condition)
    include $file;
else
    include $other;

// This is CORRECT.
if ($condition) {
    include $file;
} else {
    include $other;
}

?>

Handling Returns: It is possible to execute a return() statement inside an included file in order to terminate processing in that file and return to the script which called it. Also, it's possible to return values from included files. You can take the value of the include call as you would a normal function. This is not, however, possible when including remote files unless the output of the remote file has valid PHP start and end tags (as with any local file). You can declare the needed variables within those tags and they will be introduced at whichever point the file was included.

Because include() is a special language construct, parentheses are not needed around its argument. Take care when comparing return value.

Пример 16-9. Comparing return value of include

<?php
// won't work, evaluated as include(('vars.php') == 'OK'), i.e. include('')
if (include('vars.php') == 'OK') {
    echo 'OK';
}

// works
if ((include 'vars.php') == 'OK') {
    echo 'OK';
}
?>

Замечание: In PHP 3, the return may not appear inside a block unless it's a function block, in which case the return() applies to that function and not the whole file.

Пример 16-10. include() and the return() statement

return.php
<?php

$var = 'PHP';

return $var;

?>

noreturn.php
<?php

$var = 'PHP';

?>

testreturns.php
<?php

$foo = include 'return.php';

echo $foo; // prints 'PHP'

$bar = include 'noreturn.php';

echo $bar; // prints 1

?>

$bar is the value 1 because the include was successful. Notice the difference between the above examples. The first uses return() within the included file while the other does not. If the file can't be included, FALSE is returned and E_WARNING is issued.

If there are functions defined in the included file, they can be used in the main file independent if they are before return() or after. If the file is included twice, PHP 5 issues fatal error because functions were already declared, while PHP 4 doesn't complain about functions defined after return(). It is recommended to use include_once() instead of checking if the file was already included and conditionally return inside the included file.

Another way to "include" a PHP file into a variable is to capture the output by using the Output Control Functions with include(). For example:

Пример 16-11. Using output buffering to include a PHP file into a string

<?php
$string = get_include_contents('somefile.php');

function get_include_contents($filename) {
    if (is_file($filename)) {
        ob_start();
        include $filename;
        $contents = ob_get_contents();
        ob_end_clean();
        return $contents;
    }
    return false;
}

?>

In order to automatically include files within scripts, see also the auto_prepend_file and auto_append_file configuration options in php.ini.

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций

See also require(), require_once(),
include_once(), readfile(),
virtual(), and
include_path.


include_once

Руководство по PHP
Пред. Глава 16. Control Structures След.

include_once()

The include_once() statement includes and evaluates the specified file during the execution of the script. This is a behavior similar to the include() statement, with the only difference being that if the code from a file has already been included, it will not be included again. As the name suggests, it will be included just once.

include_once() should be used in cases where the same file might be included and evaluated more than once during a particular execution of a script, and you want to be sure that it is included exactly once to avoid problems with function redefinitions, variable value reassignments, etc.

For more examples on using require_once() and include_once(), look at the PEAR code included in the latest PHP source code distributions.

Return values are the same as with include(). If the file was already included, this function returns TRUE

Замечание: include_once() was added in PHP 4.0.1pl2

Замечание: Be aware, that the behaviour of include_once() and require_once() may not be what you expect on a non case sensitive operating system (such as Windows).

Пример 16-13. include_once() is case insensitive on Windows

<?php
include_once("a.php"); // this will include a.php
include_once("A.php"); // this will include a.php again on Windows! (PHP 4 only)
?>
This behaviour changed in PHP 5 - the path is normalized first so that C:\PROGRA~1\A.php is realized the same as C:\Program Files\a.php and the file is included just once.

Внимание

Версии PHP для Windows до PHP 4.3.0 не поддерживают возможность использования удаленных файлов этой функцией даже в том случае, если опция allow_url_fopen включена.

See also include(),
require(), require_once(),
get_required_files(),
get_included_files(), readfile(),
and virtual().

Пред. | Начало | След.
require_once() | Уровень выше | Функции


ingres_cursor

(PECL)

ingres_cursor -- Gets a cursor name for a given link resource

Description

string ingres_cursor ( [resource link] )

Returns an string containing the active cursor name. If no cursor is active then NULL is returned.

If a link resource is passed to ingres_cursor() it returns the cursor name recorded for the link. If no link is passed then ingres_cursor() returns the cursor name asssociated with the default link.

Пример 1. ingres_cursor() example

<?php
$link = ingres_connect($database, $user, $password);

ingres_prepare("select * from table", $link);

$cursor_name = ingres_cursor($link);

echo $cursor_name;

?>

See also ingres_prepare() and ingres_execute().

Пред. | Начало | След.
ingres_connect | Уровень выше | ingres_errno


ingres_errno

(PECL)

ingres_errno -- Gets the last ingres error number generated

Description

int ingres_errno ( [resource link] )

Returns an integer containing the last error number. If no error was reported 0 is returned.

If a link resource is passed to ingres_errno() it returns the last error recorded for the link. If no link is passed then ingres_errno() returns the last error reported using the default link.

The function, ingres_errno(), should always be called after executing a database query. Calling another function before ingres_errno() is called, will reset or change any error code from the last Ingres function call.

Пример 1. ingres_errno() example

<?php
$link = ingres_connect($database, $user, $password);

ingres_query("select * from table", $link);

$error_code = ingres_errno($link);

if ( $error_code != 0 ) {
   echo "An error occured - " . $error_code;
}
?>

See also ingres_error() and ingres_errsqlstate().

Пред. | Начало | След.
ingres_cursor | Уровень выше | ingres_error


ingres_error

(PECL)

ingres_error -- Gets a meaningful error message for the last error generated

Description

string ingres_error ( [resource link] )

Returns a string containing the last error, or NULL if no error has occurred.

If a link resource is passed to ingres_error() it returns the last error recorded for the link. If no link is passed then ingres_error() returns the last error reported using the default link.

The function, ingres_error(), should always be called after executing any database query. Calling another function before ingres_error() is called will reset or change any error message from the last Ingres function call.

Пример 1. ingres_error() example

<?php
ingres_connect($database, $user, $password);

ingres_query("select * from table");

$error_text = ingres_error();

if ( is_null($error_text) ) {
   echo "An error occured - " . $error_text;
}
?>

See also ingres_errno() and ingres_errsqlstate().

Пред. | Начало | След.
ingres_errno | Уровень выше | ingres_errsqlstate


ingres_errsqlstate

(PECL)

ingres_errsqlstate -- Gets the last SQLSTATE error code generated

Description

string ingres_errsqlstate ( [resource link] )

Returns a string containing the last SQLSTATE, or NULL if no error has occurred.

If a link resource is passed to ingres_errsqlstate() it returns the last error recorded for the link. If no link is passed then ingres_errsqlstate() returns the last error reported using the default link.

The function, ingres_errsqlstate(), should always be called after executing any database query. Calling another function before ingres_errsqlstate() is called will reset or change any error message from the last Ingres function call.

Пример 1. ingres_errsqlstate() example

<?php
ingres_connect($database, $user, $password);

ingres_query("select * from table");

$error_sqlstate = ingres_errsqlstate();

if ( is_null($error_sqlstate) ) {
   echo "An error occured - " . $error_sqlstate;
}
?>

See also ingres_errno() and ingres_errsqlstate().

Пред. | Начало | След.
ingres_error | Уровень выше | ingres_fetch_array


kadm5_chpass_principal

(PECL)

kadm5_chpass_principal -- Changes the principal's password

Описание

bool kadm5_chpass_principal ( resource handle, string principal, string password )

kadm5_chpass_principal() sets the new password password for the principal.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Example of changing principal's password

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

kadm5_chpass_principal($handle, "burbach@GONICUS.LOCAL", "newpassword");

kadm5_destroy($handle);
?>

Пред. | Начало | След.
KADM5 | Уровень выше | kadm5_create_principal


kadm5_create_principal

(PECL)

kadm5_create_principal -- Creates a kerberos principal with the given parameters

Описание

bool kadm5_create_principal ( resource handle, string principal [, string password [, array options]] )

kadm5_create_principal() creates a principal with the given password. If password is omitted or is NULL, a random key will be generated.

It is possible to specify several optional parameters within the array options. Allowed are the following options: KADM5_PRINC_EXPIRE_TIME, KADM5_PW_EXPIRATION, KADM5_ATTRIBUTES, KADM5_MAX_LIFE, KADM5_KVNO, KADM5_POLICY, KADM5_CLEARPOLICY, KADM5_MAX_RLIFE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Example of principal's creation

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

$attributes = KRB5_KDB_REQUIRES_PRE_AUTH | KRB5_KDB_DISALLOW_PROXIABLE;
$options = array(KADM5_PRINC_EXPIRE_TIME => 0,
                 KADM5_POLICY => "default",
                 KADM5_ATTRIBUTES => $attributes);

kadm5_create_principal($handle, "burbach@GONICUS.LOCAL", "password", $options);

kadm5_destroy($handle);
?>

Пред. | Начало | След.
kadm5_chpass_principal | Уровень выше | kadm5_delete_principal


kadm5_delete_principal

(PECL)

kadm5_delete_principal -- Deletes a kerberos principal

Описание

bool kadm5_delete_principal ( resource handle, string principal )

kadm5_delete_principal() remove the principal from the Kerberos database.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. kadm5_delete_principal() example

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

kadm5_delete_principal($handle, "burbach@GONICUS.LOCAL");

kadm5_destroy($handle);
?>

Пред. | Начало | След.
kadm5_create_principal | Уровень выше | kadm5_destroy


kadm5_destroy

(PECL)

kadm5_destroy -- Closes the connection to the admin server and releases all related resources

Описание

bool kadm5_destroy ( resource handle )

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
kadm5_delete_principal | Уровень выше | kadm5_flush


kadm5_flush

(PECL)

kadm5_flush -- Flush all changes to the Kerberos database, leaving the connection to the Kerberos admin server open

Описание

bool kadm5_flush ( resource handle )

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
kadm5_destroy | Уровень выше | kadm5_get_policies


kadm5_get_policies

(PECL)

kadm5_get_policies -- Gets all policies from the Kerberos database

Описание

array kadm5_get_policies ( resource handle )

kadm5_get_policies() returns an array containing the policies's names.

Возвращаемые значения

Returns array of policies on success, or FALSE on failure.

Примеры

Пример 1. kadm5_get_policies() example

<?php
$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

print "<h1>get_policies</h1>\n";
foreach (kadm5_get_policies($handle) as $policy) {
    echo "$policy<br />\n";
}

kadm5_destroy($handle);
?>

Пред. | Начало | След.
kadm5_flush | Уровень выше | kadm5_get_principal


kadm5_get_principal

(PECL)

kadm5_get_principal -- Gets the principal's entries from the Kerberos database

Описание

array kadm5_get_principal ( resource handle, string principal )

kadm5_get_principal() returns an associative array containing the following keys: KADM5_PRINCIPAL, KADM5_PRINC_EXPIRE_TIME, KADM5_PW_EXPIRATION, KADM5_ATTRIBUTES, KADM5_MAX_LIFE, KADM5_MOD_NAME, KADM5_MOD_TIME, KADM5_KVNO, KADM5_POLICY, KADM5_MAX_RLIFE, KADM5_LAST_SUCCESS, KADM5_LAST_FAILED, KADM5_FAIL_AUTH_COUNT.

Возвращаемые значения

Returns array of options on success, or FALSE on failure.

Примеры

Пример 1. kadm5_get_principal() example

<?php
$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

print "<h1>get_principal burbach@GONICUS.LOCAL</h1>\n";

$options = kadm5_get_principal($handle, "burbach@GONICUS.LOCAL" );

foreach ($options as $key => $value) {
    echo "$key: $value<br />\n";
}

kadm5_destroy($handle);
?>

Пред. | Начало | След.
kadm5_get_policies | Уровень выше | kadm5_get_principals


kadm5_get_principals

(PECL)

kadm5_get_principals -- Gets all principals from the Kerberos database

Описание

array kadm5_get_principals ( resource handle )

kadm5_get_principals() returns an array containing the principals's names.

Возвращаемые значения

Returns array of principals on success, or FALSE on failure.

Примеры

Пример 1. kadm5_get_principals() example

<?php
$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

print "<h1>get_principals</h1>\n";
foreach (kadm5_get_principals($handle) as $principal) {
    echo "$principal<br />\n";
}

kadm5_destroy($handle);
?>

Пред. | Начало | След.
kadm5_get_principal | Уровень выше | kadm5_init_with_password


kadm5_init_with_password

(PECL)

kadm5_init_with_password -- Opens a connection to the KADM5 library and initializes any neccessary state information

Описание

resource kadm5_init_with_password ( string admin_server, string realm, string principal, string password )

kadm5_init_with_password() opens a connection with the KADM5 library using the principal and the given password to obtain initial credentials from the admin_server. The parameter realm defines the authentication domain for the connection.

Возвращаемые значения

Returns a KADM5 handle on success, or FALSE on failure.

Примеры

Пример 1. KADM5 initialization example

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

$attributes = KRB5_KDB_REQUIRES_PRE_AUTH | KRB5_KDB_DISALLOW_PROXIABLE;
$options = array(KADM5_PRINC_EXPIRE_TIME => 0,
                 KADM5_POLICY => "default",
                 KADM5_ATTRIBUTES => $attributes);

kadm5_create_principal($handle, "burbach@GONICUS.LOCAL", "password", $options);

kadm5_destroy($handle);
?>

Примечания

Замечание: Connection should be closed after use with kadm5_destroy().

Смотрите также

kadm5_destroy()

Пред. | Начало | След.
kadm5_get_principals | Уровень выше | kadm5_modify_principal


kadm5_modify_principal

(PECL)

kadm5_modify_principal -- Modifies a kerberos principal with the given parameters

Описание

bool kadm5_modify_principal ( resource handle, string principal, array options )

kadm5_modify_principal() modifies a principal according to the given options. Allowed are the following options: KADM5_PRINC_EXPIRE_TIME, KADM5_PW_EXPIRATION, KADM5_ATTRIBUTES, KADM5_MAX_LIFE, KADM5_KVNO, KADM5_POLICY, KADM5_CLEARPOLICY, KADM5_MAX_RLIFE, KADM5_FAIL_AUTH_COUNT.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Example of modifying principal

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

$attributes = KRB5_KDB_REQUIRES_PRE_AUTH;
$options = array(KADM5_PRINC_EXPIRE_TIME => 3451234,
                 KADM5_POLICY => "gonicus",
                 KADM5_ATTRIBUTES => $attributes);

kadm5_modify_principal($handle, "burbach@GONICUS.LOCAL", "password", $options);

kadm5_destroy($handle);
?>

Пред. | Начало | След.
kadm5_init_with_password | Уровень выше | LDAP Functions


m_checkstatus

(PHP 4 >= 4.3.9, PHP 5)

m_checkstatus -- Check to see if a transaction has completed

Описание

int m_checkstatus ( resource conn, int identifier )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

identifier

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
MCVE (Monetra) Payment Functions | Уровень выше | m_completeauthorizations


m_completeauthorizations

(PHP 4 >= 4.3.9, PHP 5)

m_completeauthorizations -- Number of complete authorizations in queue, returning an array of their identifiers

Описание

int m_completeauthorizations ( resource conn, int &array )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

array

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_checkstatus | Уровень выше | m_connect


m_connect

(PHP 4 >= 4.3.9, PHP 5)

m_connect -- Establish the connection to MCVE

Описание

int m_connect ( resource conn )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_completeauthorizations | Уровень выше | m_connectionerror


m_connectionerror

(PHP 4 >= 4.3.9, PHP 5)

m_connectionerror -- Get a textual representation of why a connection failed

Описание

string m_connectionerror ( resource conn )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_connect | Уровень выше | m_deletetrans


m_deletetrans

(PHP 4 >= 4.3.9, PHP 5)

m_deletetrans -- Delete specified transaction from MCVE_CONN structure

Описание

bool m_deletetrans ( resource conn, int identifier )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

identifier

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_connectionerror | Уровень выше | m_destroyconn


m_destroyconn

(PHP 4 >= 4.3.9, PHP 5)

m_destroyconn -- Destroy the connection and MCVE_CONN structure

Описание

void m_destroyconn ( resource conn )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_deletetrans | Уровень выше | m_destroyengine


m_destroyengine

(PHP 4 >= 4.3.9, PHP 5)

m_destroyengine -- Free memory associated with IP/SSL connectivity

Описание

void m_destroyengine ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_destroyconn | Уровень выше | m_getcell


m_getcell

(PHP 4 >= 4.3.9, PHP 5)

m_getcell -- Get a specific cell from a comma delimited response by column name

Описание

string m_getcell ( resource conn, int identifier, string column, int row )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

identifier

Its description

column

Its description

row

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_destroyengine | Уровень выше | m_getcellbynum


m_getcellbynum

(PHP 4 >= 4.3.9, PHP 5)

m_getcellbynum -- Get a specific cell from a comma delimited response by column number

Описание

string m_getcellbynum ( resource conn, int identifier, int column, int row )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

identifier

Its description

column

Its description

row

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_getcell | Уровень выше | m_getcommadelimited


m_getcommadelimited

(PHP 4 >= 4.3.9, PHP 5)

m_getcommadelimited -- Get the RAW comma delimited data returned from MCVE

Описание

string m_getcommadelimited ( resource conn, int identifier )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

identifier

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_getcellbynum | Уровень выше | m_getheader


m_getheader

(PHP 4 >= 4.3.9, PHP 5)

m_getheader -- Get the name of the column in a comma-delimited response

Описание

string m_getheader ( resource conn, int identifier, int column_num )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

identifier

Its description

column_num

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_getcommadelimited | Уровень выше | m_initconn


m_initconn

(PHP 4 >= 4.3.9, PHP 5)

m_initconn -- Create and initialize an MCVE_CONN structure

Описание

resource m_initconn ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_getheader | Уровень выше | m_initengine


m_initengine

(PHP 4 >= 4.3.9, PHP 5)

m_initengine -- Ready the client for IP/SSL Communication

Описание

int m_initengine ( string location )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

location

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_initconn | Уровень выше | m_iscommadelimited


m_iscommadelimited

(PHP 4 >= 4.3.9, PHP 5)

m_iscommadelimited -- Checks to see if response is comma delimited

Описание

int m_iscommadelimited ( resource conn, int identifier )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

identifier

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_initengine | Уровень выше | m_maxconntimeout


m_maxconntimeout

(PHP 4 >= 4.3.9, PHP 5)

m_maxconntimeout -- The maximum amount of time the API will attempt a connection to MCVE

Описание

bool m_maxconntimeout ( resource conn, int secs )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

secs

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_iscommadelimited | Уровень выше | m_monitor


m_monitor

(PHP 4 >= 4.3.9, PHP 5)

m_monitor -- Perform communication with MCVE (send/receive data) Non-blocking

Описание

int m_monitor ( resource conn )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_maxconntimeout | Уровень выше | m_numcolumns


m_numcolumns

(PHP 4 >= 4.3.9, PHP 5)

m_numcolumns -- Number of columns returned in a comma delimited response

Описание

int m_numcolumns ( resource conn, int identifier )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

identifier

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_monitor | Уровень выше | m_numrows


m_numrows

(PHP 4 >= 4.3.9, PHP 5)

m_numrows -- Number of rows returned in a comma delimited response

Описание

int m_numrows ( resource conn, int identifier )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

identifier

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_numcolumns | Уровень выше | m_parsecommadelimited


m_parsecommadelimited

(PHP 4 >= 4.3.9, PHP 5)

m_parsecommadelimited -- Parse the comma delimited response so m_getcell, etc will work

Описание

int m_parsecommadelimited ( resource conn, int identifier )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

identifier

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_numrows | Уровень выше | m_responsekeys


m_responsekeys

(PHP 5 >= 5.1.0RC1)

m_responsekeys -- Returns array of strings which represents the keys that can be used for response parameters on this transaction

Описание

array m_responsekeys ( resource conn, int identifier )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

identifier

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_parsecommadelimited | Уровень выше | m_responseparam


m_responseparam

(PHP 4 >= 4.3.9, PHP 5)

m_responseparam -- Get a custom response parameter

Описание

string m_responseparam ( resource conn, int identifier, string key )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

identifier

Its description

key

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_responsekeys | Уровень выше | m_returnstatus


m_returnstatus

(PHP 4 >= 4.3.9, PHP 5)

m_returnstatus -- Check to see if the transaction was successful

Описание

int m_returnstatus ( resource conn, int identifier )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

identifier

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_responseparam | Уровень выше | m_setblocking


m_setblocking

(PHP 4 >= 4.3.9, PHP 5)

m_setblocking -- Set blocking/non-blocking mode for connection

Описание

int m_setblocking ( resource conn, int tf )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

tf

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_returnstatus | Уровень выше | m_setdropfile


m_setdropfile

(PHP 4 >= 4.3.9, PHP 5)

m_setdropfile -- Set the connection method to Drop-File

Описание

int m_setdropfile ( resource conn, string directory )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

directory

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_setblocking | Уровень выше | m_setip


m_setip

(PHP 4 >= 4.3.9, PHP 5)

m_setip -- Set the connection method to IP

Описание

int m_setip ( resource conn, string host, int port )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

host

Its description

port

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_setdropfile | Уровень выше | m_setssl_cafile


m_setssl

(PHP 4 >= 4.3.9, PHP 5)

m_setssl -- Set the connection method to SSL

Описание

int m_setssl ( resource conn, string host, int port )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

host

Its description

port

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_setssl_files | Уровень выше | m_settimeout


m_setssl_cafile

(PHP 5 >= 5.1.0RC1)

m_setssl_cafile -- Set SSL CA (Certificate Authority) file for verification of server certificate

Описание

int m_setssl_cafile ( resource conn, string cafile )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

cafile

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_setip | Уровень выше | m_setssl_files


m_setssl_files

(PHP 4 >= 4.3.9, PHP 5)

m_setssl_files -- Set certificate key files and certificates if server requires client certificate verification

Описание

int m_setssl_files ( resource conn, string sslkeyfile, string sslcertfile )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

sslkeyfile

Its description

sslcertfile

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_setssl_cafile | Уровень выше | m_setssl


m_settimeout

(PHP 4 >= 4.3.9, PHP 5)

m_settimeout -- Set maximum transaction time (per trans)

Описание

int m_settimeout ( resource conn, int seconds )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

seconds

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_setssl | Уровень выше | m_sslcert_gen_hash


m_sslcert_gen_hash

(no version information, might be only in CVS)

m_sslcert_gen_hash -- Generate hash for SSL client certificate verification

Описание

string m_sslcert_gen_hash ( string filename )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

filename

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_settimeout | Уровень выше | m_transactionssent


m_transactionssent

(PHP 4 >= 4.3.9, PHP 5)

m_transactionssent -- Check to see if outgoing buffer is clear

Описание

int m_transactionssent ( resource conn )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_sslcert_gen_hash | Уровень выше | m_transinqueue


m_transinqueue

(PHP 4 >= 4.3.9, PHP 5)

m_transinqueue -- Number of transactions in client-queue

Описание

int m_transinqueue ( resource conn )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_transactionssent | Уровень выше | m_transkeyval


m_transkeyval

(PHP 5 >= 5.1.0RC1)

m_transkeyval -- Add key/value pair to a transaction. Replaces deprecated transparam()

Описание

int m_transkeyval ( resource conn, int identifier, string key, string value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

identifier

Its description

key

Its description

value

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_transinqueue | Уровень выше | m_transnew


m_transnew

(PHP 4 >= 4.3.9, PHP 5)

m_transnew -- Start a new transaction

Описание

int m_transnew ( resource conn )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_transkeyval | Уровень выше | m_transsend


m_transsend

(PHP 4 >= 4.3.9, PHP 5)

m_transsend -- Finalize and send the transaction

Описание

int m_transsend ( resource conn, int identifier )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

identifier

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_transnew | Уровень выше | m_uwait


m_uwait

(PHP 4 >= 4.3.9, PHP 5)

m_uwait -- Wait x microsecs

Описание

int m_uwait ( int microsecs )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

microsecs

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_transsend | Уровень выше | m_validateidentifier


m_validateidentifier

(PHP 5 >= 5.1.0RC1)

m_validateidentifier -- Whether or not to validate the passed identifier on any transaction it is passed to

Описание

int m_validateidentifier ( resource conn, int tf )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

tf

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_uwait | Уровень выше | m_verifyconnection


m_verifyconnection

(PHP 4 >= 4.3.9, PHP 5)

m_verifyconnection -- Set whether or not to PING upon connect to verify connection

Описание

bool m_verifyconnection ( resource conn, int tf )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

tf

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_validateidentifier | Уровень выше | m_verifysslcert


m_verifysslcert

(PHP 4 >= 4.3.9, PHP 5)

m_verifysslcert -- Set whether or not to verify the server ssl certificate

Описание

bool m_verifysslcert ( resource conn, int tf )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Its description

tf

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
m_verifyconnection | Уровень выше | Memcache Functions


mysqli_set_charset

(PHP 5 >= 5.1.0RC1)

mysqli_set_charset

(no version information, might be only in CVS)

mysqli->set_charset -- Sets the default client character set

Description

bool mysqli_set_charset ( mysqli link, string charset )

The mysqli_set_charset() function sets the default character set (specified by the charset parameter) to be used when sending data from and to the database server represented by the link parameter.

Замечание: To use this function on a Windows platform you need MySQL client library version 4.1.11 or above (for MySQL 5.0 you need 5.0.6 or above)

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

mysqli_character_set_name() и mysqli_real_escape_string().

Примеры

Пример 1. Object oriented style

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* change character set to utf8 */
if (!$mysqli->set_charset("utf8")) {
    printf("Error loading character set utf8: %s\n", $mysqli->error);
} else {
    printf("Current character set: %s\n", $mysqli->character_set_name());
}

$mysqli->close();
?>

Пример 2. Procedural style

<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'test');

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* change character set to utf8 */
if (!mysqli_set_charset($link, "utf8")) {
    printf("Error loading character set utf8: %s\n", mysqli_error($link));
} else {
    printf("Current character set: %s\n", mysqli_character_set_name($link));
}

mysqli_close($link);
?>

Результат выполнения данного примера:

Current character set: utf8

Пред. | Начало | След.
mysqli_server_init | Уровень выше | mysqli_set_opt


newt_bell

(PECL)

newt_bell -- Send a beep to the terminal

Описание

void newt_bell ( void )

This function sends a beep to the terminal.

Замечание: Depending on the terminal's settings, this been may or may not be audible.

Пред. | Начало | След.
Newt Functions | Уровень выше | newt_button_bar


newt_button

(PECL)

newt_button --

Описание

resource newt_button ( int left, int top, string text )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

Its description

top

Its description

text

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_button_bar | Уровень выше | newt_centered_window


newt_button_bar

(PECL)

newt_button_bar --

Описание

resource newt_button_bar ( array &buttons )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

buttons

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_bell | Уровень выше | newt_button


newt_centered_window

(PECL)

newt_centered_window -- Open a centered window of the specified size

Описание

int newt_centered_window ( int width, int height [, string title] )

Open a centered window of the specified size.

Список параметров

width

Window width

height

Window height

title

Window title

Возвращаемые значения

Undefined value.

Смотрите также

newt_pop_window()
newt_open_window()

Пред. | Начало | След.
newt_button | Уровень выше | newt_checkbox_get_value


newt_checkbox

(PECL)

newt_checkbox --

Описание

resource newt_checkbox ( int left, int top, string text, string def_value [, string seq] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

Its description

top

Its description

text

Its description

def_value

Its description

seq

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_checkbox_tree | Уровень выше | newt_clear_key_buffer


newt_checkbox_get_value

(PECL)

newt_checkbox_get_value --

Описание

string newt_checkbox_get_value ( resource checkbox )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkbox

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_centered_window | Уровень выше | newt_checkbox_set_flags


newt_checkbox_set_flags

(PECL)

newt_checkbox_set_flags --

Описание

void newt_checkbox_set_flags ( resource checkbox, int flags, int sense )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkbox

Its description

flags

Its description

sense

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_checkbox_get_value | Уровень выше | newt_checkbox_set_value


newt_checkbox_set_value

(PECL)

newt_checkbox_set_value --

Описание

void newt_checkbox_set_value ( resource checkbox, string value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkbox

Its description

value

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_checkbox_set_flags | Уровень выше | newt_checkbox_tree_add_item


newt_checkbox_tree

(PECL)

newt_checkbox_tree --

Описание

resource newt_checkbox_tree ( int left, int top, int height [, int flags] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

Its description

top

Its description

height

Its description

flags

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_checkbox_tree_set_width | Уровень выше | newt_checkbox


newt_checkbox_tree_add_item

(PECL)

newt_checkbox_tree_add_item -- *

Описание

void newt_checkbox_tree_add_item ( resource checkboxtree, string text, mixed data, int flags, array indexes )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkboxtree

Its description

text

Its description

data

Its description

flags

Its description

indexes

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_checkbox_set_value | Уровень выше | newt_checkbox_tree_find_item


newt_checkbox_tree_find_item

(PECL)

newt_checkbox_tree_find_item --

Описание

array newt_checkbox_tree_find_item ( resource checkboxtree, mixed data )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkboxtree

Its description

data

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_checkbox_tree_add_item | Уровень выше | newt_checkbox_tree_get_current


newt_checkbox_tree_get_current

(PECL)

newt_checkbox_tree_get_current --

Описание

mixed newt_checkbox_tree_get_current ( resource checkboxtree )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkboxtree

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_checkbox_tree_find_item | Уровень выше | newt_checkbox_tree_get_entry_value


newt_checkbox_tree_get_entry_value

(PECL)

newt_checkbox_tree_get_entry_value --

Описание

string newt_checkbox_tree_get_entry_value ( resource checkboxtree, mixed data )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkboxtree

Its description

data

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_checkbox_tree_get_current | Уровень выше | newt_checkbox_tree_get_multi_selection


newt_checkbox_tree_get_multi_selection

(PECL)

newt_checkbox_tree_get_multi_selection --

Описание

array newt_checkbox_tree_get_multi_selection ( resource checkboxtree, string seqnum )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkboxtree

Its description

seqnum

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_checkbox_tree_get_entry_value | Уровень выше | newt_checkbox_tree_get_selection


newt_checkbox_tree_get_selection

(PECL)

newt_checkbox_tree_get_selection --

Описание

array newt_checkbox_tree_get_selection ( resource checkboxtree )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkboxtree

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_checkbox_tree_get_multi_selection | Уровень выше | newt_checkbox_tree_multi


newt_checkbox_tree_multi

(PECL)

newt_checkbox_tree_multi --

Описание

resource newt_checkbox_tree_multi ( int left, int top, int height, string seq [, int flags] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

Its description

top

Its description

height

Its description

seq

Its description

flags

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_checkbox_tree_get_selection | Уровень выше | newt_checkbox_tree_set_current


newt_checkbox_tree_set_current

(PECL)

newt_checkbox_tree_set_current --

Описание

void newt_checkbox_tree_set_current ( resource checkboxtree, mixed data )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkboxtree

Its description

data

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_checkbox_tree_multi | Уровень выше | newt_checkbox_tree_set_entry_value


newt_checkbox_tree_set_entry

(PECL)

newt_checkbox_tree_set_entry --

Описание

void newt_checkbox_tree_set_entry ( resource checkboxtree, mixed data, string text )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkboxtree

Its description

data

Its description

text

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_checkbox_tree_set_entry_value | Уровень выше | newt_checkbox_tree_set_width


newt_checkbox_tree_set_entry_value

(PECL)

newt_checkbox_tree_set_entry_value --

Описание

void newt_checkbox_tree_set_entry_value ( resource checkboxtree, mixed data, string value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkboxtree

Its description

data

Its description

value

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_checkbox_tree_set_current | Уровень выше | newt_checkbox_tree_set_entry


newt_checkbox_tree_set_width

(PECL)

newt_checkbox_tree_set_width --

Описание

void newt_checkbox_tree_set_width ( resource checkbox_tree, int width )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkbox_tree

Its description

width

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_checkbox_tree_set_entry | Уровень выше | newt_checkbox_tree


newt_clear_key_buffer

(PECL)

newt_clear_key_buffer -- Discards the contents of the terminal's input buffer without waiting for additional input

Описание

void newt_clear_key_buffer ( void )

Discards the contents of the terminal's input buffer without waiting for additional input.

Смотрите также

newt_wait_for_key()

Пред. | Начало | След.
newt_checkbox | Уровень выше | newt_cls


newt_cls

(PECL)

newt_cls --

Описание

void newt_cls ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_clear_key_buffer | Уровень выше | newt_compact_button


newt_compact_button

(PECL)

newt_compact_button --

Описание

resource newt_compact_button ( int left, int top, string text )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

Its description

top

Its description

text

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_cls | Уровень выше | newt_component_add_callback


newt_component_add_callback

(PECL)

newt_component_add_callback --

Описание

void newt_component_add_callback ( resource component, mixed func_name, mixed data )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

component

Its description

func_name

Its description

data

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_compact_button | Уровень выше | newt_component_takes_focus


newt_component_takes_focus

(PECL)

newt_component_takes_focus --

Описание

void newt_component_takes_focus ( resource component, bool takes_focus )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

component

Its description

takes_focus

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_component_add_callback | Уровень выше | newt_create_grid


newt_create_grid

(PECL)

newt_create_grid --

Описание

resource newt_create_grid ( int cols, int rows )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

cols

Its description

rows

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_component_takes_focus | Уровень выше | newt_cursor_off


newt_cursor_off

(PECL)

newt_cursor_off --

Описание

void newt_cursor_off ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_create_grid | Уровень выше | newt_cursor_on


newt_cursor_on

(PECL)

newt_cursor_on --

Описание

void newt_cursor_on ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_cursor_off | Уровень выше | newt_delay


newt_delay

(PECL)

newt_delay --

Описание

void newt_delay ( int microseconds )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

microseconds

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_cursor_on | Уровень выше | newt_draw_form


newt_draw_form

(PECL)

newt_draw_form --

Описание

void newt_draw_form ( resource form )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

form

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_delay | Уровень выше | newt_draw_root_text


newt_draw_root_text

(PECL)

newt_draw_root_text -- Displays the string text at the position indicated

Описание

void newt_draw_root_text ( int left, int top, string text )

Displays the string text at the position indicated.

Список параметров

left

Column number

Замечание: If left is negative, the position is measured from the opposite side of the screen.

top

Line number

Замечание: If top is negative, the position is measured from the opposite side of the screen.

text

Text to display.

Примеры

Пример 1. A newt_draw_root_text() example

This code demonstrates drawing of titles in the both corners of the screen.

<?
 newt_init();
 newt_cls();

 newt_draw_root_text (2, 0, "Some root text");
 newt_refresh();
 sleep(1);

 newt_draw_root_text (-30, 0, "Root text in the other corner");
 newt_refresh();
 sleep(1);

 newt_finished();
?>

Смотрите также

newt_push_help_line()
newt_pop_help_line()

Пред. | Начало | След.
newt_draw_form | Уровень выше | newt_entry_get_value


newt_entry

(PECL)

newt_entry --

Описание

resource newt_entry ( int left, int top, int width [, string init_value [, int flags]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

Its description

top

Its description

width

Its description

init_value

Its description

flags

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_entry_set | Уровень выше | newt_finished


newt_entry_get_value

(PECL)

newt_entry_get_value --

Описание

string newt_entry_get_value ( resource entry )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

entry

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_draw_root_text | Уровень выше | newt_entry_set_filter


newt_entry_set

(PECL)

newt_entry_set --

Описание

void newt_entry_set ( resource entry, string value [, bool cursor_at_end] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

entry

Its description

value

Its description

cursor_at_end

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_entry_set_flags | Уровень выше | newt_entry


newt_entry_set_filter

(PECL)

newt_entry_set_filter --

Описание

void newt_entry_set_filter ( resource entry, callback filter, mixed data )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

entry

Its description

filter

Its description

data

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_entry_get_value | Уровень выше | newt_entry_set_flags


newt_entry_set_flags

(PECL)

newt_entry_set_flags --

Описание

void newt_entry_set_flags ( resource entry, int flags, int sense )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

entry

Its description

flags

Its description

sense

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_entry_set_filter | Уровень выше | newt_entry_set


newt_finished

(PECL)

newt_finished -- Uninitializes newt interface.

Описание

void newt_finished ( void )

Uninitializes newt interface. This function be called, when program is ready to exit.

Смотрите также

newt_init()

Пред. | Начало | След.
newt_entry | Уровень выше | newt_form_add_component


newt_form

(PECL)

newt_form -- Create a form

Описание

resource newt_form ( [resource vert_bar [, string help [, int flags]]] )

Create a new form.

Список параметров

vert_bar

Vertical scrollbar which should be associated with the form

help

Help text string

flags

Various flags

Возвращаемые значения

Resource link to the created form component.

Примеры

Пример 1. A newt_form() example

Displays a single button "Quit", which closes the application once it's pressed.

<?php
newt_init();
newt_cls();

$myform = newt_form();
$button = newt_button (5, 12, "Quit");

newt_form_add_component ($myform, $button);
newt_refresh ();
newt_run_form ($myform);

newt_finished ();
newt_form_destroy ($myform);
?>

Смотрите также

newt_form_run()
newt_run_form()
newt_form_add_component()
newt_form_add_components()
newt_form_destroy()

Пред. | Начало | След.
newt_form_watch_fd | Уровень выше | newt_get_screen_size


newt_form_add_component

(PECL)

newt_form_add_component -- Adds a single component to the form

Описание

void newt_form_add_component ( resource form, resource component )

Adds a single component to the form which is passed as the first parameter.

Список параметров

form

Form to which component will be added

component

Component to add to the form

Смотрите также

newt_form_add_components()

Пред. | Начало | След.
newt_finished | Уровень выше | newt_form_add_components


newt_form_add_components

(PECL)

newt_form_add_components -- Add several components to the form

Описание

void newt_form_add_components ( resource form, array components )

Adds several components to the form which is passed as the first parameter.

Список параметров

form

Form to which components will be added

components

Array of components to add to the form

Смотрите также

newt_form_add_component()

Пред. | Начало | След.
newt_form_add_component | Уровень выше | newt_form_add_host_key


newt_form_add_host_key

(no version information, might be only in CVS)

newt_form_add_host_key --

Описание

void newt_form_add_host_key ( resource form, int key )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

form

Its description

key

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_form_add_components | Уровень выше | newt_form_destroy


newt_form_destroy

(PECL)

newt_form_destroy -- Destroys a form

Описание

void newt_form_destroy ( resource form )

This function frees the memory resources used by the form and all of the components which have been added to the form (including those components which are on subforms). Once a form has been destroyed, none of the form's components can be used.

Список параметров

form

Form component, which is going to be destroyed

Смотрите также

newt_form_run()
newt_run_form()

Пред. | Начало | След.
newt_form_add_host_key | Уровень выше | newt_form_get_current


newt_form_get_current

(PECL)

newt_form_get_current --

Описание

resource newt_form_get_current ( resource form )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

form

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_form_destroy | Уровень выше | newt_form_run


newt_form_run

(PECL)

newt_form_run -- Runs a form

Описание

void newt_form_run ( resource form, array &exit_struct )

This function runs the form passed to it.

Список параметров

form

Form component

exit_struct

Array, used for returning information after running the form component. Keys and values are described in the following table:

Таблица 1. Form Exit Structure

Index Key | Value Type | Description
reason | integer | The reason, why the form has been exited. Possible values are defined here.
watch | resource | Resource link, specified in newt_form_watch_fd()
key | integer | Hotkey
component | resource | Component, which caused the form to exit

Смотрите также

newt_run_form()

Пред. | Начало | След.
newt_form_get_current | Уровень выше | newt_form_set_background


newt_form_set_background

(PECL)

newt_form_set_background --

Описание

void newt_form_set_background ( resource from, int background )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

from

Its description

background

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_form_run | Уровень выше | newt_form_set_height


newt_form_set_height

(PECL)

newt_form_set_height --

Описание

void newt_form_set_height ( resource form, int height )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

form

Its description

height

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_form_set_background | Уровень выше | newt_form_set_size


newt_form_set_size

(PECL)

newt_form_set_size --

Описание

void newt_form_set_size ( resource form )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

form

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_form_set_height | Уровень выше | newt_form_set_timer


newt_form_set_timer

(PECL)

newt_form_set_timer --

Описание

void newt_form_set_timer ( resource form, int milliseconds )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

form

Its description

milliseconds

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_form_set_size | Уровень выше | newt_form_set_width


newt_form_set_width

(PECL)

newt_form_set_width --

Описание

void newt_form_set_width ( resource form, int width )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

form

Its description

width

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_form_set_timer | Уровень выше | newt_form_watch_fd


newt_form_watch_fd

(PECL)

newt_form_watch_fd --

Описание

void newt_form_watch_fd ( resource form, resource stream [, int flags] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

form

Its description

stream

Its description

flags

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_form_set_width | Уровень выше | newt_form


newt_get_screen_size

(PECL)

newt_get_screen_size -- Fills in the passed references with the current size of the terminal

Описание

void newt_get_screen_size ( int &cols, int &rows )

Fills in the passed references with the current size of the terminal.

Список параметров

cols

Number of columns in the terminal

rows

Number of rows in the terminal

Возвращаемые значения

This function returns values in an arguments, passed by reference.

Примеры

Пример 1. A newt_get_screen_size() example

This code prints out the screen size of your terminal.

<?php
 newt_init();
 newt_get_screen_size (&$cols, &$rows);
 newt_finished();

 print "Your terminal size is: {$cols}x{$rows}\n";
?>

Результат выполнения данного примера:

Your terminal size is: 138x47

Пред. | Начало | След.
newt_form | Уровень выше | newt_grid_add_components_to_form


newt_grid_add_components_to_form

(PECL)

newt_grid_add_components_to_form --

Описание

void newt_grid_add_components_to_form ( resource grid, resource form, bool recurse )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

grid

Its description

form

Its description

recurse

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_get_screen_size | Уровень выше | newt_grid_basic_window


newt_grid_basic_window

(PECL)

newt_grid_basic_window --

Описание

resource newt_grid_basic_window ( resource text, resource middle, resource buttons )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

text

Its description

middle

Its description

buttons

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_grid_add_components_to_form | Уровень выше | newt_grid_free


newt_grid_free

(PECL)

newt_grid_free --

Описание

void newt_grid_free ( resource grid, bool recurse )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

grid

Its description

recurse

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_grid_basic_window | Уровень выше | newt_grid_get_size


newt_grid_get_size

(PECL)

newt_grid_get_size --

Описание

void newt_grid_get_size ( resouce grid, int &width, int &height )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

grid

Its description

width

Its description

height

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_grid_free | Уровень выше | newt_grid_h_close_stacked


newt_grid_h_close_stacked

(PECL)

newt_grid_h_close_stacked --

Описание

resource newt_grid_h_close_stacked ( int element1_type, resource element1 )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

element1_type

Its description

element1

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_grid_get_size | Уровень выше | newt_grid_h_stacked


newt_grid_h_stacked

(PECL)

newt_grid_h_stacked --

Описание

resource newt_grid_h_stacked ( int element1_type, resource element1 )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

element1_type

Its description

element1

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_grid_h_close_stacked | Уровень выше | newt_grid_place


newt_grid_place

(PECL)

newt_grid_place --

Описание

void newt_grid_place ( resource grid, int left, int top )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

grid

Its description

left

Its description

top

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_grid_h_stacked | Уровень выше | newt_grid_set_field


newt_grid_set_field

(PECL)

newt_grid_set_field --

Описание

void newt_grid_set_field ( resource grid, int col, int row, int type, resource val, int pad_left, int pad_top, int pad_right, int pad_bottom, int anchor [, int flags] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

grid

Its description

col

Its description

row

Its description

type

Its description

val

Its description

pad_left

Its description

pad_top

Its description

pad_right

Its description

pad_bottom

Its description

anchor

Its description

flags

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_grid_place | Уровень выше | newt_grid_simple_window


newt_grid_simple_window

(PECL)

newt_grid_simple_window --

Описание

resource newt_grid_simple_window ( resource text, resource middle, resource buttons )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

text

Its description

middle

Its description

buttons

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_grid_set_field | Уровень выше | newt_grid_v_close_stacked


newt_grid_v_close_stacked

(PECL)

newt_grid_v_close_stacked --

Описание

resource newt_grid_v_close_stacked ( int element1_type, resource element1 )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

element1_type

Its description

element1

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_grid_simple_window | Уровень выше | newt_grid_v_stacked


newt_grid_v_stacked

(PECL)

newt_grid_v_stacked --

Описание

resource newt_grid_v_stacked ( int element1_type, resource element1 )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

element1_type

Its description

element1

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_grid_v_close_stacked | Уровень выше | newt_grid_wrapped_window_at


newt_grid_wrapped_window

(PECL)

newt_grid_wrapped_window --

Описание

void newt_grid_wrapped_window ( resource grid, string title )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

grid

Its description

title

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_grid_wrapped_window_at | Уровень выше | newt_init


newt_grid_wrapped_window_at

(PECL)

newt_grid_wrapped_window_at --

Описание

void newt_grid_wrapped_window_at ( resource grid, string title, int left, int top )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

grid

Its description

title

Its description

left

Its description

top

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_grid_v_stacked | Уровень выше | newt_grid_wrapped_window


newt_init

(PECL)

newt_init -- Initialize newt

Описание

void newt_init ( void )

Initializes the newt interface. This function must be called before any other newt function.

Смотрите также

newt_finished()

Пред. | Начало | След.
newt_grid_wrapped_window | Уровень выше | newt_label_set_text


newt_label

(PECL)

newt_label --

Описание

resource newt_label ( int left, int top, string text )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

Its description

top

Its description

text

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_label_set_text | Уровень выше | newt_listbox_append_entry


newt_label_set_text

(PECL)

newt_label_set_text --

Описание

void newt_label_set_text ( resource label, string text )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

label

Its description

text

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_init | Уровень выше | newt_label


newt_listbox

(PECL)

newt_listbox --

Описание

resource newt_listbox ( int left, int top, int height [, int flags] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

Its description

top

Its description

height

Its description

flags

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_listbox_set_width | Уровень выше | newt_listitem_get_data


newt_listbox_append_entry

(PECL)

newt_listbox_append_entry --

Описание

void newt_listbox_append_entry ( resource listbox, string text, mixed data )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

Its description

text

Its description

data

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_label | Уровень выше | newt_listbox_clear_selection


newt_listbox_clear

(PECL)

newt_listbox_clear --

Описание

void newt_listbox_clear ( resource listobx )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listobx

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_listbox_clear_selection | Уровень выше | newt_listbox_delete_entry


newt_listbox_clear_selection

(PECL)

newt_listbox_clear_selection --

Описание

void newt_listbox_clear_selection ( resource listbox )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_listbox_append_entry | Уровень выше | newt_listbox_clear


newt_listbox_delete_entry

(PECL)

newt_listbox_delete_entry --

Описание

void newt_listbox_delete_entry ( resource listbox, mixed key )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

Its description

key

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_listbox_clear | Уровень выше | newt_listbox_get_current


newt_listbox_get_current

(PECL)

newt_listbox_get_current --

Описание

string newt_listbox_get_current ( resource listbox )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_listbox_delete_entry | Уровень выше | newt_listbox_get_selection


newt_listbox_get_selection

(PECL)

newt_listbox_get_selection --

Описание

array newt_listbox_get_selection ( resource listbox )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_listbox_get_current | Уровень выше | newt_listbox_insert_entry


newt_listbox_insert_entry

(PECL)

newt_listbox_insert_entry --

Описание

void newt_listbox_insert_entry ( resource listbox, string text, mixed data, mixed key )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

Its description

text

Its description

data

Its description

key

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_listbox_get_selection | Уровень выше | newt_listbox_item_count


newt_listbox_item_count

(PECL)

newt_listbox_item_count --

Описание

int newt_listbox_item_count ( resource listbox )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_listbox_insert_entry | Уровень выше | newt_listbox_select_item


newt_listbox_select_item

(PECL)

newt_listbox_select_item --

Описание

void newt_listbox_select_item ( resource listbox, mixed key, int sense )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

Its description

key

Its description

sense

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_listbox_item_count | Уровень выше | newt_listbox_set_current_by_key


newt_listbox_set_current

(PECL)

newt_listbox_set_current --

Описание

void newt_listbox_set_current ( resource listbox, int num )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

Its description

num

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_listbox_set_current_by_key | Уровень выше | newt_listbox_set_data


newt_listbox_set_current_by_key

(PECL)

newt_listbox_set_current_by_key --

Описание

void newt_listbox_set_current_by_key ( resource listbox, mixed key )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

Its description

key

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_listbox_select_item | Уровень выше | newt_listbox_set_current


newt_listbox_set_data

(PECL)

newt_listbox_set_data --

Описание

void newt_listbox_set_data ( resource listbox, int num, mixed data )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

Its description

num

Its description

data

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_listbox_set_current | Уровень выше | newt_listbox_set_entry


newt_listbox_set_entry

(PECL)

newt_listbox_set_entry --

Описание

void newt_listbox_set_entry ( resource listbox, int num, string text )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

Its description

num

Its description

text

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_listbox_set_data | Уровень выше | newt_listbox_set_width


newt_listbox_set_width

(PECL)

newt_listbox_set_width --

Описание

void newt_listbox_set_width ( resource listbox, int width )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

Its description

width

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_listbox_set_entry | Уровень выше | newt_listbox


newt_listitem

(PECL)

newt_listitem --

Описание

resource newt_listitem ( int left, int top, string text, bool is_default, resouce prev_item, mixed data [, int flags] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

Its description

top

Its description

text

Its description

is_default

Its description

prev_item

Its description

data

Its description

flags

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_listitem_set | Уровень выше | newt_open_window


newt_listitem_get_data

(PECL)

newt_listitem_get_data --

Описание

mixed newt_listitem_get_data ( resource item )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

item

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_listbox | Уровень выше | newt_listitem_set


newt_listitem_set

(PECL)

newt_listitem_set --

Описание

void newt_listitem_set ( resource item, string text )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

item

Its description

text

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_listitem_get_data | Уровень выше | newt_listitem


newt_open_window

(PECL)

newt_open_window -- Open a window of the specified size and position

Описание

void newt_open_window ( int left, int top, int width, int height [, string title] )

Open a window of the specified size and position.

Список параметров

left

Location of the upper left-hand corner of the window (column number)

top

Location of the upper left-hand corner of the window (row number)

width

Window width

height

Window height

title

Window title

Возвращаемые значения

Undefined value.

Смотрите также

newt_pop_window()
newt_centered_window()

Пред. | Начало | След.
newt_listitem | Уровень выше | newt_pop_help_line


newt_pop_help_line

(PECL)

newt_pop_help_line -- Replaces the current help line with the one from the stack

Описание

void newt_pop_help_line ( void )

Replaces the current help line with the one from the stack.

Замечание: It's important not to call to newt_pop_help_line() more then newt_push_help_line().

Смотрите также

newt_push_help_line()

Пред. | Начало | След.
newt_open_window | Уровень выше | newt_pop_window


newt_pop_window

(PECL)

newt_pop_window -- Removes the top window from the display

Описание

void newt_pop_window ( void )

Removes the top window from the display, and redraws the display areas which the window overwrote.

Смотрите также

newt_open_window()
newt_centered_window()

Пред. | Начало | След.
newt_pop_help_line | Уровень выше | newt_push_help_line


newt_push_help_line

(PECL)

newt_push_help_line -- Saves the current help line on a stack, and displays the new line

Описание

void newt_push_help_line ( [string text] )

Saves the current help line on a stack, and displays the new line.

Список параметров

text

New help text message

Замечание: If not specified, the help line is cleared.

Смотрите также

newt_pop_help_line()

Пред. | Начало | След.
newt_pop_window | Уровень выше | newt_radio_get_current


newt_radio_get_current

(PECL)

newt_radio_get_current --

Описание

resource newt_radio_get_current ( resource set_member )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

set_member

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_push_help_line | Уровень выше | newt_radiobutton


newt_radiobutton

(PECL)

newt_radiobutton --

Описание

resource newt_radiobutton ( int left, int top, string text, bool is_default [, resource prev_button] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

Its description

top

Its description

text

Its description

is_default

Its description

prev_button

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_radio_get_current | Уровень выше | newt_redraw_help_line


newt_redraw_help_line

(PECL)

newt_redraw_help_line --

Описание

void newt_redraw_help_line ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_radiobutton | Уровень выше | newt_reflow_text


newt_reflow_text

(PECL)

newt_reflow_text --

Описание

string newt_reflow_text ( string text, int width, int flex_down, int flex_up, int &actual_width, int &actual_height )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

text

Its description

width

Its description

flex_down

Its description

flex_up

Its description

actual_width

Its description

actual_height

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_redraw_help_line | Уровень выше | newt_refresh


newt_refresh

(PECL)

newt_refresh -- Updates modified portions of the screen

Описание

void newt_refresh ( void )

To increase performance, newt only updates the display when it needs to, not when the program tells it to write to the terminal. Applications can force newt to immediately update modified portions of the screen by calling this function.

Пред. | Начало | След.
newt_reflow_text | Уровень выше | newt_resize_screen


newt_resize_screen

(PECL)

newt_resize_screen --

Описание

void newt_resize_screen ( [bool redraw] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

redraw

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_refresh | Уровень выше | newt_resume


newt_resume

(PECL)

newt_resume -- Resume using the newt interface after calling newt_suspend()

Описание

void newt_resume ( void )

Resume using the newt interface after calling newt_suspend().

Смотрите также

newt_suspend()

Пред. | Начало | След.
newt_resize_screen | Уровень выше | newt_run_form


newt_run_form

(PECL)

newt_run_form -- Runs a form

Описание

resource newt_run_form ( resource form )

This function runs the form passed to it.

Список параметров

form

Form component

Возвращаемые значения

The component which caused the form to stop running.

Замечание: Notice that this function doesn't fit in with newt's normal naming convention. It is an older interface which will not work for all forms. It was left in newt only for legacy applications. It is a simpler interface than the new newt_form_run() though, and is still used quite often as a result. When an application is done with a form, it destroys the form and all of the components the form contains.

Смотрите также

newt_form_run()
newt_form_destroy()

Пред. | Начало | След.
newt_resume | Уровень выше | newt_scale_set


newt_scale

(PECL)

newt_scale --

Описание

resource newt_scale ( int left, int top, int width, int full_value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

Its description

top

Its description

width

Its description

full_value

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_scale_set | Уровень выше | newt_scrollbar_set


newt_scale_set

(PECL)

newt_scale_set --

Описание

void newt_scale_set ( resource scale, int amount )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scale

Its description

amount

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_run_form | Уровень выше | newt_scale


newt_scrollbar_set

(PECL)

newt_scrollbar_set --

Описание

void newt_scrollbar_set ( resource scrollbar, int where, int total )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scrollbar

Its description

where

Its description

total

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_scale | Уровень выше | newt_set_help_callback


newt_set_help_callback

(PECL)

newt_set_help_callback --

Описание

void newt_set_help_callback ( mixed function )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

function

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_scrollbar_set | Уровень выше | newt_set_suspend_callback


newt_set_suspend_callback

(PECL)

newt_set_suspend_callback -- Set a callback function which gets invoked when user presses the suspend key

Описание

void newt_set_suspend_callback ( callback function, mixed data )

Set a callback function which gets invoked when user presses the suspend key (normally ^Z). If no suspend callback is registered, the suspend keystroke is ignored.

Список параметров

function

A callback function, which accepts one argument: data

data

This data is been passed to the callback function

Смотрите также

newt_suspend()
newt_resume()

Пред. | Начало | След.
newt_set_help_callback | Уровень выше | newt_suspend


newt_suspend

(PECL)

newt_suspend -- Tells newt to return the terminal to its initial state

Описание

void newt_suspend ( void )

Tells newt to return the terminal to its initial state. Once this is done, the application can suspend itself (by sending itself a SIGTSTP, fork a child program, or do whatever else it likes.

Смотрите также

newt_resume()

Пред. | Начало | След.
newt_set_suspend_callback | Уровень выше | newt_texbox_set_text


newt_texbox_set_text

(no version information, might be only in CVS)

newt_texbox_set_text --

Описание

void newt_texbox_set_text ( resource textbox, string text )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

textbox

Its description

text

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_suspend | Уровень выше | newt_textbox_get_num_lines


newt_textbox

(PECL)

newt_textbox --

Описание

resource newt_textbox ( int left, int top, int width, int height [, int flags] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

Its description

top

Its description

width

Its description

height

Its description

flags

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_textbox_set_height | Уровень выше | newt_vertical_scrollbar


newt_textbox_get_num_lines

(PECL)

newt_textbox_get_num_lines --

Описание

int newt_textbox_get_num_lines ( resource textbox )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

textbox

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_texbox_set_text | Уровень выше | newt_textbox_reflowed


newt_textbox_reflowed

(PECL)

newt_textbox_reflowed --

Описание

resource newt_textbox_reflowed ( int left, int top, char *text, int width, int flex_down, int flex_up [, int flags] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

Its description

top

Its description

*text

Its description

width

Its description

flex_down

Its description

flex_up

Its description

flags

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_textbox_get_num_lines | Уровень выше | newt_textbox_set_height


newt_textbox_set_height

(PECL)

newt_textbox_set_height --

Описание

void newt_textbox_set_height ( resource textbox, int height )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

textbox

Its description

height

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_textbox_reflowed | Уровень выше | newt_textbox


newt_vertical_scrollbar

(PECL)

newt_vertical_scrollbar --

Описание

resource newt_vertical_scrollbar ( int left, int top, int height [, int normal_colorset [, int thumb_colorset]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

Its description

top

Its description

height

Its description

normal_colorset

Its description

thumb_colorset

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_textbox | Уровень выше | newt_wait_for_key


newt_wait_for_key

(PECL)

newt_wait_for_key -- Doesn't return until a key has been pressed

Описание

void newt_wait_for_key ( void )

This function doesn't return until a key has been pressed. The keystroke is then ignored. If a key is already in the terminal's buffer, this function discards a keystroke and returns immediately.

Смотрите также

newt_clear_key_buffer()

Пред. | Начало | След.
newt_vertical_scrollbar | Уровень выше | newt_win_choice


newt_win_choice

(PECL)

newt_win_choice --

Описание

int newt_win_choice ( string title, string button1_text, string button2_text, string format [, mixed args] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

title

Its description

button1_text

Its description

button2_text

Its description

format

Its description

args

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_wait_for_key | Уровень выше | newt_win_entries


newt_win_entries

(PECL)

newt_win_entries --

Описание

int newt_win_entries ( string title, string text, int suggested_width, int flex_down, int flex_up, int data_width, array &items, string button1 [, string button2] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

title

Its description

text

Its description

suggested_width

Its description

flex_down

Its description

flex_up

Its description

data_width

Its description

items

Its description

button1

Its description

button2

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_win_choice | Уровень выше | newt_win_menu


newt_win_menu

(PECL)

newt_win_menu --

Описание

int newt_win_menu ( string title, string text, int suggestedWidth, int flexDown, int flexUp, int maxListHeight, array items, int &listItem [, string button1] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

title

Its description

text

Its description

suggestedWidth

Its description

flexDown

Its description

flexUp

Its description

maxListHeight

Its description

items

Its description

listItem

Its description

button1

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_win_entries | Уровень выше | newt_win_message


newt_win_message

(PECL)

newt_win_message --

Описание

void newt_win_message ( string title, string button_text, string format [, mixed args] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

title

Its description

button_text

Its description

format

Its description

args

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_win_menu | Уровень выше | newt_win_messagev


newt_win_messagev

(PECL)

newt_win_messagev --

Описание

void newt_win_messagev ( string title, string button_text, string format, array args )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

title

Its description

button_text

Its description

format

Its description

args

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_win_message | Уровень выше | newt_win_ternary


newt_win_ternary

(PECL)

newt_win_ternary --

Описание

int newt_win_ternary ( string title, string button1_text, string button2_text, string button3_text, string format [, mixed args] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

title

Its description

button1_text

Its description

button2_text

Its description

button3_text

Its description

format

Its description

args

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity

Пред. | Начало | След.
newt_win_messagev | Уровень выше | NSAPI-specific Functions


OCI-Lob->free

(no version information, might be only in CVS)

OCI-Lob->free -- Frees resources associated with the LOB descriptor

Описание

class OCI-Lob {

bool free ( void )

}

Frees resources associated with the descriptor, previously allocated with oci_new_descriptor().

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
OCI-Lob->flush | Уровень выше | OCI-Lob->getBuffering


OCI-Lob->getBuffering

(no version information, might be only in CVS)

OCI-Lob->getBuffering -- Returns current state of buffering for the large object

Описание

class OCI-Lob {

bool getBuffering ( void )

}

Returns FALSE if buffering for the large object is off and TRUE if buffering is used.

Смотрите также

OCI-Lob->setBuffering

Пред. | Начало | След.
OCI-Lob->free | Уровень выше | OCI-Lob->import


OCI-Lob->saveFile

(no version information, might be only in CVS)

OCI-Lob->saveFile -- Alias of oci_lob_import()

Описание

This function is an alias of: oci_lob_import().

Пред. | Начало | След.
OCI-Lob->save | Уровень выше | OCI-Lob->seek


OCI-Lob->setBuffering

(no version information, might be only in CVS)

OCI-Lob->setBuffering -- Changes current state of buffering for the large object

Описание

class OCI-Lob {

bool setBuffering ( bool on_off )

}

lob->setBuffering() sets the buffering for the large object, depending on the value of the on_off parameter. Repeated calls to lob->setBuffering() with the same flag will return TRUE. The values for on_off are: TRUE for on and FALSE for off.

Use of this function may provide performance improvements by buffering small reads and writes of LOBs by reducing the number of network round-trips and LOB versions. oci_lob_flush() should be used to flush buffers, when you have finished working with the large object.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список параметров

on_off

Смотрите также

OCI-Lob->getBuffering

Пред. | Начало | След.
OCI-Lob->seek | Уровень выше | OCI-Lob->size


OCI-Lob->writeTemporary

(no version information, might be only in CVS)

OCI-Lob->writeTemporary -- Writes temporary large object

Описание

class OCI-Lob {

bool writeTemporary ( string data [, int lob_type] )

}

Creates a temporary large object and writes data to it.

Parameter lob_type can be one of the following:

OCI_TEMP_BLOB is used to create temporary BLOBs
OCI_TEMP_CLOB is used to create temporary CLOBs

OCI-Lob->writeTemporary() creates a CLOB by default.

You should use OCI-Lob->close when the work with the object is over.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список параметров

lob_type

Смотрите также

OCI-Lob->close

Пред. | Начало | След.
OCI-Lob->write | Уровень выше | OCI-Lob->writeToFile


OCI-Lob->writeToFile

(no version information, might be only in CVS)

OCI-Lob->writeToFile -- Alias of oci_lob_export()

Описание

This function is an alias of: oci_lob_export().

Пред. | Начало | След.
OCI-Lob->writeTemporary | Уровень выше | oci_bind_by_name


ocinewscriptor

(no version information, might be only in CVS)

ocinewscriptor -- Alias of oci_new_descriptor()

Описание

This function is an alias of: oci_new_descriptor().

Пред. | Начало | След.
ocinewcursor | Уровень выше | ocinlogon


openssl_pkey_free

(PHP 4 >= 4.2.0, PHP 5)

openssl_pkey_free -- Frees a private key

Description

void openssl_pkey_free ( resource key )

This function frees a private key created by openssl_pkey_new().

Пред. | Начало | След.
openssl_pkey_export | Уровень выше | openssl_pkey_get_private


OrbitEnum

(no version information, might be only in CVS)

OrbitEnum -- Use CORBA enums

Описание

new OrbitEnum ( string id )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

This class represents the enumeration identified with the id parameter.

Список параметров

id

Can be either the name of the enumeration (e.g "MyEnum"), or the full repository id (e.g. "IDL:MyEnum:1.0").

Примеры

Пример 1. Sample IDL file

enum MyEnum {
    a,b,c,d,e
};

Пример 2. PHP code for accessing MyEnum

<?php
$enum = new OrbitEnum ("MyEnum");

echo $enum->a;    /* write 0 */
echo $enum->c;    /* write 2 */
echo $enum->e;    /* write 4 */
?>

Пред. | Начало | След.
Satellite CORBA client extension [deprecated] | Уровень выше | OrbitObject


OrbitObject

(no version information, might be only in CVS)

OrbitObject -- Access CORBA objects

Описание

new OrbitObject ( string ior )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

This class provides access to a CORBA object.

Список параметров

ior

Should be a string containing the IOR (Interoperable Object Reference) that identifies the remote object.

Примеры

Пример 1. Sample IDL file

interface MyInterface {
    void SetInfo (string info);
    string GetInfo();

    attribute int value;
}

Пример 2. PHP code for accessing MyInterface

<?php
$obj = new OrbitObject ($ior);

$obj->SetInfo ("A 2GooD object");

echo $obj->GetInfo();

$obj->value = 42;

echo $obj->value;
?>

Пред. | Начало | След.
OrbitEnum | Уровень выше | OrbitStruct


OrbitStruct

(no version information, might be only in CVS)

OrbitStruct -- Use CORBA structs

Описание

new OrbitStruct ( string id )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

This class represents the structure identified with the id parameter.

Список параметров

id

Can be either the name of the struct (e.g "MyStruct"), or the full repository id (e.g. "IDL:MyStruct:1.0").

Примеры

Пример 1. Sample IDL file

struct MyStruct {
    short shortvalue;
    string stringvalue;
};

interface SomeInterface {
  void SetValues (MyStruct values);
  MyStruct GetValues();
}

Пример 2. PHP code for accessing MyStruct

<?php
$obj = new OrbitObject ($ior);

$initial_values = new OrbitStruct ("IDL:MyStruct:1.0");
$initial_values->shortvalue = 42;
$initial_values->stringvalue = "HGTTG";

$obj->SetValues ($initial_values);

$values = $obj->GetValues();

echo $values->shortvalue;
echo $values->stringvalue;
?>

Пред. | Начало | След.
OrbitObject | Уровень выше | satellite_caught_exception


PDO::getAvailableDrivers

(no version information, might be only in CVS)

PDO::getAvailableDrivers -- Return an array of available PDO drivers

Описание

array PDO::getAvailableDrivers ( void )

This function returns all currently available PDO drivers which can be used in DSN parameter of PDO::__construct(). This is a static method.

Возвращаемые значения

PDO::getAvailableDrivers() returns an array of PDO driver names. If no drivers are available, it returns an empty array.

Примеры

Пример 1. A PDO::getAvailableDrivers() example

<?php
print_r(PDO::getAvailableDrivers());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => mysql
    [1] => sqlite
)

Пред. | Начало | След.
PDO::getAttribute | Уровень выше | PDO::lastInsertId


PDO::sqliteCreateAggregate

(no version information, might be only in CVS)

PDO::sqliteCreateAggregate -- Registers an aggregating User Defined Function for use in SQL statements

Описание

bool PDO::sqliteCreateAggregate ( string function_name, callback step_func, callback finalize_func [, int num_args] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

PDO::sqliteCreateAggregate() is similar to PDO::sqliteCreateFunction() except that it registers functions that can be used to calculate a result aggregated across all the rows of a query.

The key difference between this function and PDO::sqliteCreateFunction() is that two functions are required to manage the aggregate; step_func is called for each row of the result set. Your PHP function should accumulate the result and store it into the aggregation context. Once all the rows have been processed, finalize_func will be called and it should then take the data from the aggregation context and return the result. Callback functions should return a type understood by SQLite (i.e. scalar type).

Список параметров

function_name

The name of the function used in SQL statements.

step_func

Callback function called for each row of the result set.

finalize_func

Callback function to aggregate the "stepped" data from each row.

num_args

Hint to the SQLite parser if the callback function accepts a predetermined number of arguments.

Примеры

Пример 1. max_length aggregation function example

<?php
$data = array(
   'one',
   'two',
   'three',
   'four',
   'five',
   'six',
   'seven',
   'eight',
   'nine',
   'ten',
   );
$db = new PDO('sqlite::memory:');
$db->exec("CREATE TABLE strings(a)");
$insert = $db->prepare('INSERT INTO strings VALUES (?)');
foreach ($data as $str) {
    $insert->execute(array($str));
}
$insert = null;

function max_len_step(&$context, $string)
{
    if (strlen($string) > $context) {
        $context = strlen($string);
    }
}

function max_len_finalize(&$context)
{
    return $context;
}

$db->sqliteCreateAggregate('max_len', 'max_len_step', 'max_len_finalize');

var_dump($db->query('SELECT max_len(a) from strings')->fetchAll());

?>

In this example, we are creating an aggregating function that will calculate the length of the longest string in one of the columns of the table. For each row, the max_len_step function is called and passed a context parameter. The context parameter is just like any other PHP variable and be set to hold an array or even an object value. In this example, we are simply using it to hold the maximum length we have seen so far; if the string has a length longer than the current maximum, we update the context to hold this new maximum length.

After all of the rows have been processed, SQLite calls the max_len_finalize function to determine the aggregate result. Here, we could perform some kind of calculation based on the data found in the context. In our simple example though, we have been calculating the result as the query progressed, so we simply need to return the context value.

Подсказка: It is NOT recommended for you to store a copy of the values in the context and then process them at the end, as you would cause SQLite to use a lot of memory to process the query - just think of how much memory you would need if a million rows were stored in memory, each containing a string 32 bytes in length.

Подсказка: You can use PDO::sqliteCreateFunction() and PDO::sqliteCreateAggregate() to override SQLite native SQL functions.

Замечание: This method is not available with the SQLite2 driver. Use the old style sqlite API for that instead.

Смотрите также

PDO::sqliteCreateFunction()
sqlite_create_function()
sqlite_create_aggregate()

Пред. | Начало | След.
PDO_SQLITE DSN | Уровень выше | PDO::sqliteCreateFunction


PDO::sqliteCreateFunction

(no version information, might be only in CVS)

PDO::sqliteCreateFunction -- Registers a User Defined Function for use in SQL statements

Описание

bool PDO::sqliteCreateFunction ( string function_name, callback callback [, int num_args] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

PDO::sqliteCreateFunction() allows you to register a PHP function with SQLite as an UDF (User Defined Function), so that it can be called from within your SQL statements.

The UDF can be used in any SQL statement that can call functions, such as SELECT and UPDATE statements and also in triggers.

Список параметров

function_name

The name of the function used in SQL statements.

callback

Callback function to handle the defined SQL function.

Замечание: Callback functions should return a type understood by SQLite (i.e. scalar type).

num_args

Hint to the SQLite parser if the callback function accepts a predetermined number of arguments.

Замечание: Поддерживаются два альтернативных синтаксиса для совместимости с другими расширениями баз данных (например MySQL). Предпочитаемая форма - первая, в которой параметр dbhandle является первым параметром функции.

Примеры

Пример 1. PDO::sqliteCreateFunction() example

<?php
function md5_and_reverse($string)
{
    return strrev(md5($string));
}

$db = new PDO('sqlite:sqlitedb');
$db->sqliteCreateFunction('md5rev', 'md5_and_reverse', 1);
$rows = $db->query('SELECT md5rev(filename) FROM files')->fetchAll();
?>

In this example, we have a function that calculates the md5 sum of a string, and then reverses it. When the SQL statement executes, it returns the value of the filename transformed by our function. The data returned in $rows contains the processed result.

The beauty of this technique is that you do not need to process the result using a foreach() loop after you have queried for the data.

Подсказка: You can use PDO::sqliteCreateFunction() and PDO::sqliteCreateAggregate() to override SQLite native SQL functions.

Замечание: This method is not available with the SQLite2 driver. Use the old style sqlite API for that instead.

Смотрите также

PDO::sqliteCreateAggregate()
sqlite_create_function()
sqlite_create_aggregate()

Пред. | Начало | След.
PDO::sqliteCreateAggregate | Уровень выше | Secure Shell2 Functions


PDOStatement::bindValue

(no version information, might be only in CVS)

PDOStatement::bindValue -- Binds a value to a parameter

Описание

bool PDOStatement::bindValue ( mixed parameter, mixed value [, int data_type] )

Binds a value to a corresponding named or question mark placeholder in the SQL statement that was use to prepare the statement.

Список параметров

parameter

Parameter identifier. For a prepared statement using named placeholders, this will be a parameter name of the form :name. For a prepared statement using question mark placeholders, this will be the 1-indexed position of the parameter.

value

The value to bind to the parameter.

data_type

Explicit data type for the parameter using the PDO::PARAM_* constants.

Примеры

Пример 1. Execute a prepared statement with named placeholders

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->bindValue(':calories', $calories, PDO::PARAM_INT);
$sth->bindValue(':colour', $colour, PDO::PARAM_STR);
$sth->execute();
?>

Пример 2. Execute a prepared statement with question mark placeholders

<?php
/* Execute a prepared statement by binding PHP variables */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->bindValue(1, $calories, PDO::PARAM_INT);
$sth->bindValue(2, $colour, PDO::PARAM_STR);
$sth->execute();
?>

Смотрите также

PDO::prepare()
PDOStatement::execute()
PDOStatement::bindParam()

Пред. | Начало | След.
PDOStatement::bindParam | Уровень выше | PDOStatement::closeCursor


PDOStatement::closeCursor

(no version information, might be only in CVS)

PDOStatement::closeCursor -- Closes the cursor, enabling the statement to be executed again.

Описание

bool PDOStatement::closeCursor ( void )

PDOStatement::closeCursor() frees up the connection to the server so that other SQL statements may be issued, but leaves the statement in a state that enables it to be executed again.

This method is useful for database drivers that do not support executing a PDOStatement object when a previously executed PDOStatement object still has unfetched rows. If your database driver suffers from this limitation, the problem may manifest itself in an out-of-sequence error.

PDOStatement::closeCursor() is implemented either as an optional driver specific method (allowing for maximum efficiency), or as the generic PDO fallback if no driver specific function is installed. The PDO generic fallback is semantically the same as writing the following code in your PHP script:
<?php
do {
    while ($stmt->fetch())
        ;
    if (!$stmt->nextRowset())
        break;
} while (true);
?>

Примеры

Пример 1. A PDOStatement::closeCursor() example

In the following example, the $stmt PDOStatement object returns multiple rows but the application fetches only the first row, leaving the PDOStatement object in a state of having unfetched rows. To ensure that the application will work with all database drivers, the author inserts a call to PDOStatement::closeCursor() on $stmt before executing the $otherStmt PDOStatement object.

<?php
/* Create a PDOStatement object */
$stmt = $dbh->prepare('SELECT foo FROM bar');

/* Create a second PDOStatement object */
$stmt = $dbh->prepare('SELECT foobaz FROM foobar');

/* Execute the first statement */
$stmt->execute();

/* Fetch only the first row from the results */
$stmt->fetch();

/* The following call to closeCursor() may be required by some drivers */
$stmt->closeCursor();

/* Now we can execute the second statement */
$otherStmt->execute();
?>

Смотрите также

PDOStatement::execute()

Пред. | Начало | След.
PDOStatement::bindValue | Уровень выше | PDOStatement::columnCount


PDOStatement::fetchColumn

(no version information, might be only in CVS)

PDOStatement::fetchColumn -- Returns a single column from the next row of a result set

Описание

string PDOStatement::fetchColumn ( [int column_number] )

Returns a single column from the next row of a result set.

Список параметров

column_number

0-indexed number of the column you wish to retrieve from the row. If no value is supplied, PDOStatement::fetchColumn() fetches the first column.

Возвращаемые значения

PDOStatement::fetchColumn() returns a single column in the next row of a result set.

Внимание

There is no way to return another column from the same row if you use PDOStatement::fetchColumn() to retrieve data.

Примеры

Пример 1. Return first column of the next row

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Fetch the first column from the next row in the result set */
print("Fetch the first column from the next row in the result set:\n");
$result = $sth->fetchColumn();
print("name = $result\n");

print("Fetch the second column from the next row in the result set:\n");
$result = $sth->fetchColumn(1);
print("colour = $result\n");
?>

Результат выполнения данного примера:

Fetch the first column from the next row in the result set:
name = lemon
Fetch the second column from the next row in the result set:
colour = red

Смотрите также

PDO::query()
PDOStatement::fetch()
PDOStatement::fetchAll()
PDOStatement::prepare()
PDOStatement::setFetchMode()

Пред. | Начало | След.
PDOStatement::fetchAll | Уровень выше | PDOStatement::getAttribute


pg_fetch_all_columns

(PHP 5 >= 5.1.0RC1)

pg_fetch_all_columns -- Fetches all rows in a particular result column as an array

Описание

array pg_fetch_all_columns ( resource result [, int column] )

pg_fetch_all_columns() returns an array that contains all rows (records) in a particular column of the result resource.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Список параметров

result

PostgreSQL query result resource, returned by pg_query(), pg_query_params() or pg_execute() (among others).

column

Column number, zero-based, to be retrieved from the result resource. Defaults to the first column if not specified.

Возвращаемые значения

An array with all values in the result column.

FALSE is returned if column is larger than the number of columns in the result, or on any other error.

Примеры

Пример 1. pg_fetch_all_columns() example

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "An error occured.\n";
  exit;
}

$result = pg_query($conn, "SELECT title, name, address FROM authors");
if (!$result) {
  echo "An error occured.\n";
  exit;
}

// Get an array of all author names
$arr = pg_fetch_all_columns($result, 1);

var_dump($arr);

?>

Смотрите также

pg_fetch_all()

Пред. | Начало | След.
pg_execute | Уровень выше | pg_fetch_all


pg_transaction_status

(PHP 5 >= 5.1.0RC1)

pg_transaction_status -- Returns the current in-transaction status of the server.

Описание

int pg_transaction_status ( resource connection )

Returns the current in-transaction status of the server.

Предостережение

pg_transaction_status() will give incorrect results when using a PostgreSQL 7.3 server that has the parameter autocommit set to off. The server-side autocommit feature has been deprecated and does not exist in later server versions.

Список параметров

connection

PostgreSQL database connection resource.

Возвращаемые значения

The status can be PGSQL_TRANSACTION_IDLE (currently idle), PGSQL_TRANSACTION_ACTIVE (a command is in progress), PGSQL_TRANSACTION_INTRANS (idle, in a valid transaction block), or PGSQL_TRANSACTION_INERROR (idle, in a failed transaction block). PGSQL_TRANSACTION_UNKNOWN is reported if the connection is bad. PGSQL_TRANSACTION_ACTIVE is reported only when a query has been sent to the server and not yet completed.

Примеры

Пример 1. pg_transaction_status() example

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
  $stat = pg_transaction_status($dbconn);
  if ($stat === PGSQL_TRANSACTION_UNKNOWN) {
      echo 'Connection is bad';
  } else if ($stat === PGSQL_TRANSACTION_IDLE) {
      echo 'Connection is currently idle';
  } else {
      echo 'Connection is in a transaction state';
  }
?>

Пред. | Начало | След.
pg_trace | Уровень выше | pg_tty


posix_mknod

(PHP 5 >= 5.1.0RC1)

posix_mknod -- Create a special or ordinary file (POSIX.1)

Описание

bool posix_mknod ( string pathname, int mode [, int major [, int minor]] )

posix_mknod() creates a special or ordinary file.

Список параметров

pathname

The file to create

mode

This parameter is constructed by a bitwise OR between file type (one of the following constants: POSIX_S_IFREG, POSIX_S_IFCHR, POSIX_S_IFBLK, POSIX_S_IFIFO or POSIX_S_IFSOCK) and permissions.

major

The major device kernel identifier (required to pass when you're using S_IFCHR or S_IFBLK).

minor

The minor device kernel identifier (defaults to 0).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. A posix_mknod() example

<?php

$file = '/tmp/tmpfile';  // file name
$type = POSIX_S_IFBLK;   // file type
$permissions = 0777;     // octal
$major = 1;
$minor = 8;              // /dev/random

if (!posix_mknod($file, $type | $permissions, $major, $minor)) {
    die('Error ' . posix_get_last_error() . ': ' . posix_strerror(posix_get_last_error()));
}

?>

Смотрите также

posix_mkfifo()

Пред. | Начало | След.
posix_mkfifo | Уровень выше | posix_setegid


ps_add_bookmark

(PECL)

ps_add_bookmark -- Add bookmark to current page

Описание

int ps_add_bookmark ( resource psdoc, string text [, int parent [, int open]] )

Adds a bookmark for the current page. Bookmarks usually appear in PDF-Viewers left of the page in a hierarchical tree. Clicking on a bookmark will jump to the given page.

The bookmark has no meaning if the document is printed or viewed but it will be used if the document is converted to pdf by either Acrobat Distiller™ or Ghostview.

Список параметров

psdoc

text

parent

The parameter parent is another bookmark which is used as the parent of the new bookmark.

open

If open is unequal to zero the bookmark will be shown open by the pdf viewer.

Возвращаемые значения

The returned value is a reference for the bookmark. It is only used if the bookmark shall be used as a parent.

Returns the identifier of the bookmark or zero in case of an error. The identifier is a positive number.

Смотрите также

ps_add_launchlink()
ps_add_pdflink()
ps_add_weblink()

Пред. | Начало | След.
PostScript document creation | Уровень выше | ps_add_launchlink


ps_add_launchlink

(PECL)

ps_add_launchlink -- Adds link which launches file

Описание

bool ps_add_launchlink ( resource psdoc, float llx, float lly, float urx, float ury, string filename )

Places a hyperlink at the given position pointing to a file program which is being started when clicked on. The hyperlink start is a rectangle with its lower left corner at (llx, lly) and its upper right corner at (urx, ury). The rectangle has by default a thin blue border.

The hyperlink will not be visible if the document is printed or viewed but it will show up if the document is converted to pdf by either Acrobat Distiller™ or Ghostview.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_add_locallink()
ps_add_pdflink()
ps_add_weblink()

Пред. | Начало | След.
ps_add_bookmark | Уровень выше | ps_add_locallink


ps_add_locallink

(PECL)

ps_add_locallink -- Adds link to a page in the same document

Описание

bool ps_add_locallink ( resource psdoc, float llx, float lly, float urx, float ury, int page, string dest )

Places a hyperlink at the given position pointing to a page in the same document. Clicking on the link will jump to the given page. The first page in a document has number 1.

The hyperlink start is a rectangle with its lower left corner at (llx, lly) and its upper right corner at (urx, ury). The rectangle has by default a thin blue border.

The hyperlink will not be visible if the document is printed or viewed but it will show up if the document is converted to pdf by either Acrobat Distiller™ or Ghostview.

Список параметров

psdoc

llx

lly

urx

ury

page

dest

The parameter dest determines how the document is being viewed. It can be fitpage, fitwidth, fitheight, or fitbbox.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_add_launchlink()
ps_add_pdflink()
ps_add_weblink()

Пред. | Начало | След.
ps_add_launchlink | Уровень выше | ps_add_note


ps_add_note

(PECL)

ps_add_note -- Adds note to current page

Описание

bool ps_add_note ( resource psdoc, float llx, float lly, float urx, float ury, string contents, string title, string icon, int open )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_add_pdflink()

Пред. | Начало | След.
ps_add_locallink | Уровень выше | ps_add_pdflink


ps_add_pdflink

(PECL)

ps_add_pdflink -- Adds link to a page in a second pdf document

Описание

bool ps_add_pdflink ( resource psdoc, float llx, float lly, float urx, float ury, string filename, int page, string dest )

Places a hyperlink at the given position pointing to a second pdf document. Clicking on the link will branch to the document at the given page. The first page in a document has number 1.

The hyperlink start is a rectangle with its lower left corner at (llx, lly) and its upper right corner at (urx, ury). The rectangle has by default a thin blue border.

The hyperlink will not be visible if the document is printed or viewed but it will show up if the document is converted to pdf by either Acrobat Distiller™ or Ghostview.

Список параметров

psdoc

llx

lly

urx

ury

filename

page

dest

The parameter dest determines how the document is being viewed. It can be fitpage, fitwidth, fitheight, or fitbbox.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_add_launchlink()
ps_add_locallink()
ps_add_weblink()

Пред. | Начало | След.
ps_add_note | Уровень выше | ps_add_weblink


ps_add_weblink

(PECL)

ps_add_weblink -- Adds link to a web location

Описание

bool ps_add_weblink ( resource psdoc, float llx, float lly, float urx, float ury, string url )

Places a hyperlink at the given position pointing to a web page. The hyperlink start is a rectangle with its lower left corner at (llx, lly) and its upper right corner at (urx, ury). The rectangle has by default a thin blue border.

The hyperlink will not be visible if the document is printed or viewed but it will show up if the document is converted to pdf by either Acrobat Distiller™ or Ghostview.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_add_launchlink()
ps_add_locallink()
ps_add_pdflink()

Пред. | Начало | След.
ps_add_pdflink | Уровень выше | ps_arc


ps_arc

(PECL)

ps_arc -- Draws an arc counterclockwise

Описание

bool ps_arc ( resource psdoc, float x, float y, float radius, float alpha, float beta )

Draws a portion of a circle with at middle point at (x, y). The arc starts at an angle of alpha and ends at an angle of beta. It is drawn counterclockwise. The subpath added to the current path starts on the arc at angle alpha and ends on the arc at angle beta.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_arcn()

Пред. | Начало | След.
ps_add_weblink | Уровень выше | ps_arcn


ps_arcn

(no version information, might be only in CVS)

ps_arcn -- Draws an arc clockwise

Описание

bool ps_arcn ( resource psdoc, float x, float y, float radius, float alpha, float beta )

Draws a portion of a circle with at middle point at (x, y). The arc starts at an angle of alpha and ends at an angle of beta. It is drawn clockwise. The subpath added to the current path starts on the arc at angle beta and ends on the arc at angle alpha.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_arc()

Пред. | Начало | След.
ps_arc | Уровень выше | ps_begin_page


ps_begin_page

(PECL)

ps_begin_page -- Start a new page

Описание

bool ps_begin_page ( resource psdoc, float width, float height )

Starts a new page. Although the parameters width and height imply a different page size for each page, this is not possible in PostScript. The first call of ps_begin_page() will set the page size for the whole document. Consecutive calls will have no effect, except for creating a new page. The situation is different if you intent to convert the PostScript document into PDF. This function places pdfmarks into the document which can set the size for each page indiviually. The resulting PDF document will have different page sizes.

Each page is encapsulated into save/restore. This means, that most of the settings made on one page will not be retained on the next page.

If there is up to the first call of ps_begin_page() no call of ps_findfont(), then the header of the PostScript document will be output and the bounding box will be set to the size of the first page. If ps_findfont() was called before the header has been output already, the document will not have a valid bounding box. In order to prevent this, one should call ps_set_info() to set the info field BoundingBox and possibly Orientation before any ps_findfont() or ps_begin_page() calls.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_end_page()
ps_findfont()
ps_set_info()

Пред. | Начало | След.
ps_arcn | Уровень выше | ps_begin_pattern


ps_begin_pattern

(PECL)

ps_begin_pattern -- Start a new pattern

Описание

bool ps_begin_pattern ( resource psdoc, float width, float height, float xstep, float ystep, int painttype )

Starts a new pattern.

Возвращаемые значения

The identifier of the pattern or FALSE in case of an error.

Смотрите также

ps_end_pattern()
ps_setcolor()
ps_shading_pattern()

Пред. | Начало | След.
ps_begin_page | Уровень выше | ps_begin_template


ps_begin_template

(PECL)

ps_begin_template -- Start a new template

Описание

bool ps_begin_template ( resource psdoc, float width, float height )

Starts a new template.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_end_template()

Пред. | Начало | След.
ps_begin_pattern | Уровень выше | ps_circle


ps_circle

(PECL)

ps_circle -- Draws a circle

Описание

bool ps_circle ( resource psdoc, float x, float y, float radius )

Draws a circle with its middle point at (x, y). The circle starts and ends at position (x+radius, y). If this function is called outside a path it will start a new path. If it is called within a path it will add the circle as a subpath. If the last drawing operation does not end in point (x+radius, y) then there will be a gap in the path.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_arc()
ps_arcn()

Пред. | Начало | След.
ps_begin_template | Уровень выше | ps_clip


ps_clip

(PECL)

ps_clip -- Clips drawing to current path

Описание

bool ps_clip ( resource psdoc )

Takes the current path and uses it to define the border of a clipping area.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_closepath()

Пред. | Начало | След.
ps_circle | Уровень выше | ps_close_image


ps_close

(PECL)

ps_close -- Closes a PostScript document

Описание

bool ps_close ( resource psdoc )

Closes the PostScript document.

This function outputs a last line into the PostScript document, which is a PostScript comment containing the number of pages. It also writes the bookmark tree.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_open_file()
ps_delete()

Пред. | Начало | След.
ps_close_image | Уровень выше | ps_closepath_stroke


ps_close_image

(PECL)

ps_close_image -- Closes image and frees memory

Описание

void ps_close_image ( resource psdoc, int imageid )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Returns NULL on success or FALSE on failure.

Смотрите также

ps_open_image()
ps_open_image_file()

Пред. | Начало | След.
ps_clip | Уровень выше | ps_close


ps_closepath

(PECL)

ps_closepath -- Closes path

Описание

bool ps_closepath ( resource psdoc )

Connects the last point with first point of a path.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_clip()
ps_closepath_stroke()

Пред. | Начало | След.
ps_closepath_stroke | Уровень выше | ps_continue_text


ps_closepath_stroke

(PECL)

ps_closepath_stroke -- Closes and strokes path

Описание

bool ps_closepath_stroke ( resource psdoc )

Connects the last point with first point of a path and draws the resulting closed line.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_closepath()

Пред. | Начало | След.
ps_close | Уровень выше | ps_closepath


ps_continue_text

(PECL)

ps_continue_text -- Continue text in next line

Описание

bool ps_continue_text ( resource psdoc, string text )

Output a text one line below the last outputted line. The line spacing is taken from the value "leading" which must be set with ps_set_value() in points. The actual position of the text is determined by the values "textx" and "texty" which can be requested with ps_get_value()

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_show()

Пред. | Начало | След.
ps_closepath | Уровень выше | ps_curveto


ps_curveto

(PECL)

ps_curveto -- Draws a curve

Описание

bool ps_curveto ( resource psdoc, float x1, float y1, float x2, float y2, float x3, float y3 )

Draws a curve described by the three given points.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_lineto()

Пред. | Начало | След.
ps_continue_text | Уровень выше | ps_delete


ps_delete

(PECL)

ps_delete -- Deletes all resources of a PostScript document

Описание

bool ps_delete ( resource psdoc )

Mainly frees memory used by the document. Also closes a file, if it was not closed before with ps_close(). You should in any case close the file with ps_close() before, because ps_close() not just closes the file but also outputs a last line containing the PostScript comment with the number of pages in the document. Without this comment, a PostScript viewer may not show the number of pages properly.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_close()

Пред. | Начало | След.
ps_curveto | Уровень выше | ps_end_page


ps_end_page

(PECL)

ps_end_page -- End a page

Описание

bool ps_end_page ( resource psdoc )

Ends a page which was started with ps_begin_page().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_begin_page()

Пред. | Начало | След.
ps_delete | Уровень выше | ps_end_pattern


ps_end_pattern

(PECL)

ps_end_pattern -- End a pattern

Описание

bool ps_end_pattern ( resource psdoc )

Ends a pattern which was started with ps_begin_pattern().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_begin_pattern()

Пред. | Начало | След.
ps_end_page | Уровень выше | ps_end_template


ps_end_template

(PECL)

ps_end_template -- End a template

Описание

bool ps_end_template ( resource psdoc )

Ends a template which was started with ps_begin_template().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_begin_template()

Пред. | Начало | След.
ps_end_pattern | Уровень выше | ps_fill_stroke


ps_fill

(PECL)

ps_fill -- Fills the current path

Описание

bool ps_fill ( resource psdoc )

Fills the path constructed with previously called drawing functions like ps_lineto().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_fill_stroke()
ps_stroke()

Пред. | Начало | След.
ps_fill_stroke | Уровень выше | ps_findfont


ps_fill_stroke

(PECL)

ps_fill_stroke -- Fills and strokes the current path

Описание

bool ps_fill_stroke ( resource psdoc )

Fills and draws the path constructed with previously called drawing functions like ps_lineto().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_fill()
ps_stroke()

Пред. | Начало | След.
ps_end_template | Уровень выше | ps_fill


ps_findfont

(PECL)

ps_findfont -- Loads a font

Описание

int ps_findfont ( resource psdoc, string fontname, string encoding [, bool embed] )

Loads a font for later use. Before text is output with a loaded font it must be set with ps_setfont(). This function needs the adobe font metric file in order to calculate the space used up by the characters. A font which is loaded within a page will only be available on that page. Fonts which are to be used in the complete document have to be loaded before the first call of ps_begin_page(). Calling ps_findfont() between pages will make that font available for all following pages.

Список параметров

psdoc

fontname

encoding

ps_findfont() will try to load the file passed in the parameter encoding. Encoding files are of the same syntax as those used by dvips(1). They contain a font encoding vector (which is currently not used but must be present) and a list of extra ligatures to extend the list of ligatures derived from the afm file.

encoding can be NULL or the empty string if the default encoding (TeXBase1) shall be used.

If the encoding is set to builtin then there will be no reencoding and the font specific encoding will be used. This is very useful with symbol fonts.

embed

Возвращаемые значения

Returns the identifier of the font or zero in case of an error. The identifier is a positive number.

Смотрите также

ps_begin_page()
ps_setfont()

Пред. | Начало | След.
ps_fill | Уровень выше | ps_get_buffer


ps_get_buffer

(PECL)

ps_get_buffer -- Fetches the full buffer containig the generated PS data

Описание

string ps_get_buffer ( resource psdoc )

Not yet implemented

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

ps_open_file()

Пред. | Начало | След.
ps_findfont | Уровень выше | ps_get_parameter


ps_get_parameter

(PECL)

ps_get_parameter -- Gets certain parameters

Описание

string ps_get_parameter ( resource psdoc, string name [, float modifier] )

Gets several parameters which were set by ps_set_parameter(). Parameters are by definition string values. This function cannot be used to retrieve resources which were also set by ps_set_parameter().

Возвращаемые значения

Returns the value of the parameter or FALSE.

Смотрите также

ps_set_parameter()

Пред. | Начало | След.
ps_get_buffer | Уровень выше | ps_get_value


ps_get_value

(PECL)

ps_get_value -- Gets certain values

Описание

float ps_get_value ( resource psdoc, string name [, float modifier] )

Gets several values which were set by ps_set_value(). Parameters are by definition float values.

Список параметров

psdoc

name

modifier

The parameter modifier specifies the resource for which the value is to be retrieved. This can be the id of a font or an image. It must be 0.0 if not used.

Возвращаемые значения

Returns the value of the parameter or FALSE.

Смотрите также

ps_set_value()

Пред. | Начало | След.
ps_get_parameter | Уровень выше | ps_hyphenate


ps_hyphenate

(PECL)

ps_hyphenate -- Hyphenates a word

Описание

array ps_hyphenate ( resource psdoc, string text )

Hyphenates the passed word. ps_hyphenate() evaluates the value hyphenminchars and the parameter hyphendict. hyphendict must be set before calling this function.

This function requires the locale category LC_CTYPE to be set properly. This is done when the extension is initialized by using the environment variables. On Unix systems read the man page of locale.

Список параметров

psdoc

text

text should not contain any non alpha characters. Possible positions for breaks are returned in an array of interger numbers. Each number is the position of the char in text after which a hyphenation can take place.

Смотрите также

ps_show_boxed()
locale(1)

Пред. | Начало | След.
ps_get_value | Уровень выше | ps_lineto


ps_lineto

(PECL)

ps_lineto -- Draws a line

Описание

bool ps_lineto ( resource psdoc, float x, float y )

Adds a straight line from the current point to the given coordinates to the current path. Use ps_moveto() to set the starting point of the line.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_moveto()

Пред. | Начало | След.
ps_hyphenate | Уровень выше | ps_makespotcolor


ps_makespotcolor

(PECL)

ps_makespotcolor -- Create spot color

Описание

int ps_makespotcolor ( resource psdoc, string name [, float reserved] )

Creates a spot color from the current fill color. The fill color must be defined in rgb, cmyk or gray colorspace. The spot color name can be an arbitrary name. A spot color can be set as any color with ps_setcolor().

Возвращаемые значения

The id of the new spot color or 0 in case of an error.

Смотрите также

ps_setcolor()

Пред. | Начало | След.
ps_lineto | Уровень выше | ps_moveto


ps_moveto

(PECL)

ps_moveto -- Sets current point

Описание

bool ps_moveto ( resource psdoc, float x, float y )

Sets the current point to new coordinates. If this is the first call of ps_moveto() after a previous path has been ended then it will start a new path. If this function is called in the middle of a path it will just set the current point and start a subpath.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_lineto()

Пред. | Начало | След.
ps_makespotcolor | Уровень выше | ps_new


ps_new

(PECL)

ps_new -- Creates a new PostScript document object

Описание

resource ps_new ( void )

Creates a new document instance. It does not create the file on disk or in memory. It just sets up everything.

Возвращаемые значения

Resource of PostScript document or FALSE on failure.

Смотрите также

ps_delete()

Пред. | Начало | След.
ps_moveto | Уровень выше | ps_open_file


ps_open_file

(PECL)

ps_open_file -- Opens a file for output

Описание

bool ps_open_file ( resource psdoc [, string filename] )

Creates a new file on disk and writes the PostScript document into it. The file will be closed when ps_close() is called.

Список параметров

psdoc

filename

If filename is not passed the document will be created in memory and all output will go straight to the browser.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_close()

Пред. | Начало | След.
ps_new | Уровень выше | ps_open_image_file


ps_open_image

(PECL)

ps_open_image -- Reads an image for later placement

Описание

int ps_open_image ( resource psdoc, string type, string source, string data, int lenght, int width, int height, int components, int bpc, string params )

Reads an image which is already available in memory. The parameter source is currently not evaluated and assumed to be memory.

Возвращаемые значения

Returns identifier of image or zero in case of an error. The identifier is a positive number greater than 0.

Смотрите также

ps_open_image_file()
ps_place_image()
ps_close_image()

Пред. | Начало | След.
ps_open_image_file | Уровень выше | ps_place_image


ps_open_image_file

(PECL)

ps_open_image_file -- Opens image from file

Описание

int ps_open_image_file ( resource psdoc, string type, string filename [, string stringparam [, int intparam]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Returns identifier of image or zero in case of an error. The identifier is a positive number greater than 0.

Смотрите также

ps_open_image()
ps_place_image()
ps_close_image()

Пред. | Начало | След.
ps_open_file | Уровень выше | ps_open_image


ps_place_image

(PECL)

ps_place_image -- Places image on the page

Описание

bool ps_place_image ( resource psdoc, int imageid, float x, float y, float scale )

Places a formerly loaded image on the page. The image can be scaled.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_open_image()
ps_open_image_file()

Пред. | Начало | След.
ps_open_image | Уровень выше | ps_rect


ps_rect

(PECL)

ps_rect -- Draws a rectangle

Описание

bool ps_rect ( resource psdoc, float x, float y, float width, float height )

Draws a rectangle with its lower left corner at (x, y). The rectangle starts and ends in its lower left corner. If this function is called outside a path it will start a new path. If it is called within a path it will add the rectangle as a subpath. If the last drawing operation does not end in the lower left corner then there will be a gap in the path.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_arc()
ps_cirle()
ps_lineto()

Пред. | Начало | След.
ps_place_image | Уровень выше | ps_restore


ps_restore

(PECL)

ps_restore -- Restore previously save context

Описание

bool ps_restore ( resource psdoc )

Restores a previously saved graphics context. Any call of ps_save() must be accompanied by a call to ps_restore().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_save()

Пред. | Начало | След.
ps_rect | Уровень выше | ps_rotate


ps_rotate

(PECL)

ps_rotate -- Sets rotation factor

Описание

bool ps_rotate ( resource psdoc, float rot )

Sets the rotation of the coordinate system.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_scale()
ps_translate()

Пред. | Начало | След.
ps_restore | Уровень выше | ps_save


ps_save

(PECL)

ps_save -- Save current context

Описание

bool ps_save ( resource psdoc )

Saves the current graphics context, containing colors, translation and rotation settings and some more. A save context can be restored with ps_restore().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_restore()

Пред. | Начало | След.
ps_rotate | Уровень выше | ps_scale


ps_scale

(PECL)

ps_scale -- Sets scaling factor

Описание

bool ps_scale ( resource psdoc, float x, float y )

Sets horizontal and vertical scaling of the coordinate system.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_rotate()
ps_translate()

Пред. | Начало | След.
ps_save | Уровень выше | ps_set_border_color


ps_set_border_color

(PECL)

ps_set_border_color -- Sets color of border for annotations

Описание

bool ps_set_border_color ( resource psdoc, float red, float green, float blue )

Annotations like the starting points of links are surrounded by a rectangle. This function sets the color of the border line.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_set_border_dash()
ps_set_border_style()

Пред. | Начало | След.
ps_scale | Уровень выше | ps_set_border_dash


ps_set_border_dash

(PECL)

ps_set_border_dash -- Sets length of dashes for border of annotations

Описание

bool ps_set_border_dash ( resource psdoc, float black, float white )

Annotations like the starting points of links are surrounded by a rectangle. This function sets the black and white portion of a dashed border line.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_set_border_color()
ps_set_border_style()

Пред. | Начало | След.
ps_set_border_color | Уровень выше | ps_set_border_style


ps_set_border_style

(PECL)

ps_set_border_style -- Sets border style of annotations

Описание

bool ps_set_border_style ( resource psdoc, string style, float width )

Annotations like the starting points of links are surrounded by a rectangle. This function sets the appearance and width of the border line.

Список параметров

psdoc

style

style can be solid or dashed.

width

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_set_border_color()
ps_set_border_dash()

Пред. | Начало | След.
ps_set_border_dash | Уровень выше | ps_set_info


ps_set_info

(PECL)

ps_set_info -- Sets information fields of document

Описание

bool ps_set_info ( resource p, string key, string val )

Sets certain information fields of the document. This fields will be shown as a comment in the header of the PostScript file. The values which can be set are Keywords, Subject, Title, Creator, Author, BoundingBox, and Orientation. Be aware that some of them has a meaning to PostScript viewers.

The BoundingBox is usually set to the value given to the first page. This only works if ps_findfont() has not been called before. In such cases the BoundingBox would be left unset unless you set it explicitly with this function.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_findfont()
ps_begin_page()

Пред. | Начало | След.
ps_set_border_style | Уровень выше | ps_set_parameter


ps_set_parameter

(PECL)

ps_set_parameter -- Sets certain parameters

Описание

bool ps_set_parameter ( resource psdoc, string name, string value )

Sets several parameters which are used by many functions. Parameters are by definition string values.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_get_parameters()
ps_set_value()

Пред. | Начало | След.
ps_set_info | Уровень выше | ps_set_text_pos


ps_set_text_pos

(PECL)

ps_set_text_pos -- Sets position for text output

Описание

bool ps_set_text_pos ( resource psdoc, float x, float y )

Set the position for the next text output. You may alternatively set the x and y value separately by calling ps_set_value() and choosing textx respectively texty as the value name.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_set_value()
ps_show()

Пред. | Начало | След.
ps_set_parameter | Уровень выше | ps_set_value


ps_set_value

(PECL)

ps_set_value -- Sets certain values

Описание

bool ps_set_value ( resource psdoc, string name, float value )

Sets several values which are used by many functions. Parameters are by definition float values.

Список параметров

The name can be one of the following:

textrendering

The way how text is shown.

textx

The x coordinate for text output.

texty

The y coordinate for text output.

wordspacing

The distance between words relative to the width of a space.

leading

The distance between lines in pixels.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_get_value()
ps_set_parameter()

Пред. | Начало | След.
ps_set_text_pos | Уровень выше | ps_setcolor


ps_setcolor

(PECL)

ps_setcolor -- Sets current color

Описание

bool ps_setcolor ( resource psdoc, string type, string colorspace, float c1, float c2, float c3, float c4 )

Sets the color for drawing, filling, or both.

Список параметров

psdoc

type

The parameter type can be both, fill, or fillstroke.

colorspace

The colorspace should be one of gray, rgb, cmyk, spot, pattern. Depending on the colorspace either only the first, the first three or all parameters will be used.

c1

c2

c3

c4

Bugs

The second parameter is currently not always evaluated. The color is sometimes set for filling and drawing just as if fillstroke were passed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
ps_set_value | Уровень выше | ps_setdash


ps_setdash

(PECL)

ps_setdash -- Sets appearance of a dashed line

Описание

bool ps_setdash ( resource psdoc, float on, float off )

Sets the length of the black and white portions of a dashed line.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_setpolydash()

Пред. | Начало | След.
ps_setcolor | Уровень выше | ps_setflat


ps_setflat

(PECL)

ps_setflat -- Sets flatness

Описание

bool ps_setflat ( resource psdoc, float value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

psdoc

value

The value must be between 0.2 and 1.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
ps_setdash | Уровень выше | ps_setfont


ps_setfont

(PECL)

ps_setfont -- Sets font to use for following output

Описание

bool ps_setfont ( resource psdoc, int fontid, float size )

Sets a font, which has to be loaded before with ps_findfont(). Outputting text without setting a font before results in an error.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_findfont()

Пред. | Начало | След.
ps_setflat | Уровень выше | ps_setgray


ps_setgray

(no version information, might be only in CVS)

ps_setgray -- Sets gray value

Описание

bool ps_setgray ( resource psdoc, float gray )

Sets the gray value for all following drawing operations.

Список параметров

psdoc

gray

The value must be between 0 (white) and 1 (black).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_setcolor()

Пред. | Начало | След.
ps_setfont | Уровень выше | ps_setlinecap


ps_setlinecap

(PECL)

ps_setlinecap -- Sets appearance of line ends

Описание

bool ps_setlinecap ( resource psdoc, int type )

Sets how line ends look like.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_setlinejoin()
ps_setlinewidth()
ps_setmiterlimit()

Пред. | Начало | След.
ps_setgray | Уровень выше | ps_setlinejoin


ps_setlinejoin

(PECL)

ps_setlinejoin -- Sets how contected lines are joined

Описание

bool ps_setlinejoin ( resource psdoc, int type )

Sets how lines are joined.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_setlinecap()
ps_setlinewidth()
ps_setmiterlimit()

Пред. | Начало | След.
ps_setlinecap | Уровень выше | ps_setlinewidth


ps_setlinewidth

(PECL)

ps_setlinewidth -- Sets width of a line

Описание

bool ps_setlinewidth ( resource psdoc, float width )

Sets the line width for all following drawing operations.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_setlinecap()
ps_setlinejoin()
ps_setmiterlimit()

Пред. | Начало | След.
ps_setlinejoin | Уровень выше | ps_setmiterlimit


ps_setmiterlimit

(PECL)

ps_setmiterlimit -- Sets the miter limit

Описание

bool ps_setmiterlimit ( resource psdoc, float value )

If two lines join in a small angle and the line join is set to miter, then the resulting spike will be very long. The miter limit is the maximum ratio of the miter length (the length of the spike) and the line width.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_setlinecap()
ps_setlinejoin()
ps_setlinewidth()

Пред. | Начало | След.
ps_setlinewidth | Уровень выше | ps_setpolydash


ps_setpolydash

(PECL)

ps_setpolydash -- Sets appearance of a dashed line

Описание

bool ps_setpolydash ( resource psdoc, float arr )

Sets the length of the black and white portions of a dashed line. ps_setpolydash() is used to set more complicated dash patterns.

Список параметров

psdoc

arr

arr is a list of length elements alternately for the black and white portion.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_setdash()

Пред. | Начало | След.
ps_setmiterlimit | Уровень выше | ps_shading_pattern


ps_shading

(PECL)

ps_shading -- Creates a shading for later use

Описание

int ps_shading ( resource psdoc, string type, float x0, float y0, float x1, float y1, float c1, float c2, float c3, float c4, string optlist )

Creates a shading, which can be used by ps_shfill() or ps_shading_pattern().

The color of the shading can be in any color space except for pattern.

Список параметров

psdoc

type

The type of shading can be either radial or axial. Each shading starts with the current fill color and ends with the given color values passed in the parameters c1 to c4 (see ps_setcolor() for their meaning).

x0, x1, y0, y1

The coordinates x0, y0, x1, y1 are the start and end point of the shading.

c1, c2, c3, c4

See ps_setcolor() for their meaning.

optlist

If the shading is of type radial the optlist must also contain the parameters r0 and r1 with the radius of the start and end circle.

Возвращаемые значения

Returns the identifier of the pattern or FALSE in case of an error.

Смотрите также

ps_shading_pattern()
ps_shfill()

Пред. | Начало | След.
ps_shading_pattern | Уровень выше | ps_shfill


ps_shading_pattern

(PECL)

ps_shading_pattern -- Creates a pattern based on a shading

Описание

int ps_shading_pattern ( resource psdoc, int shadingid, string optlist )

Creates a pattern based on a shading, which has to be created before with ps_shading(). Shading patterns can be used like regular patterns.

Возвращаемые значения

The identifier of the pattern or FALSE in case of an error.

Смотрите также

ps_shading()
ps_shfill()

Пред. | Начало | След.
ps_setpolydash | Уровень выше | ps_shading


ps_shfill

(PECL)

ps_shfill -- Fills an area with a shading

Описание

bool ps_shfill ( resource psdoc, int shadingid )

Fills an area with a shading, which has to be created before with ps_shading().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_shading()
ps_shading_pattern()

Пред. | Начало | След.
ps_shading | Уровень выше | ps_show_boxed


ps_show

(PECL)

ps_show -- Output text

Описание

bool ps_show ( resource psdoc, string text )

Output a text at the current text position. The function will issue an error if no font was set before with ps_setfont().

ps_show() evaluates the following parameters and values as set by ps_set_parameter() and ps_set_value().

charspacing (value)

Distance between two consecutive glyphs. If this value is unequal to zero then all ligatures will be resolved. Values less than zero are allowed.

kerning (parameter)

Setting this parameter to "false" will turn off kerning. Kerning is turned on by default.

ligatures (parameter)

Setting this parameter to "false" will turn off the use of ligatures. Ligatures are turned on by default.

underline (parameter)

Setting this parameter to "true" will turn on underlining. Underlining is turned off by default.

overline (parameter)

Setting this parameter to "true" will turn on overlining. Overlining is turned off by default.

strikeout (parameter)

Setting this parameter to "true" will turn on striking out. Striking out is turned off by default.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_continue_text()
ps_show_xy()
ps_setfont()

Пред. | Начало | След.
ps_show_xy | Уровень выше | ps_string_geometry


ps_show_boxed

(PECL)

ps_show_boxed -- Output text in a box

Описание

int ps_show_boxed ( resource psdoc, string text, float left, float bottom, float width, float height, string hmode [, string feature] )

Outputs a text in a given box. The lower left corner of the box is at (left, bottom). Line breaks will be inserted where needed. Multiple spaces are treated as one. Tabulators are treated as spaces.

The text will be hyphenated if the parameter "hyphenation" is set to "true" and the parameter "hyphendict" contains a valid filename for a hyphenation file. The line spacing is taken from the value "leading". Paragraphs can be separated by an empty line just like in TeX. If the value "parindent" is set to value > 0.0 then the first n lines will be indented. The number n of lines is set by the parameter "numindentlines". In order to prevent indenting of the first m paragraphs set the value "parindentskip" to a positive number.

Used parameters

The output of ps_show_boxed() can be configured with several parameters and values which must be set with either ps_set_parameter() or ps_set_value(). Beside the parameters and values which affect text output the following parameters and values are evaluated.

leading (value)

Distance between baselines of two consecutive lines.

linebreak (parameter)

Set to "true" if you want a carriage return to start a new line instead of treating it as a space. Defaults to "false".

parbreak (parameter)

Set to "true" if you want a carriage return on a single line to start a new paragraph instead of treating it as a space. Defaults to "true".

hyphenation (parameter)

Set to "true" in order to turn hyphenation on. This requires a dictionary to be set with the parameter "hyphendict". Defaults to "false".

hyphendict (parameter)

Filename of the dictionary used for hyphenation pattern (see below).

hyphenminchar (value)

The number of chars which must at least be left over before or after the hyphen. This implies that only words of at least two times this value will be hyphenated. The default value is three. Setting a value of zero will result in the default value.

parindent (value)

Set the amount of space in pixel for indenting the first m lines of a paragraph. m can be set with the value "numindentlines".

parskip (value)

Set the amount of extra space in pixel between paragraphs. Defaults to 0 which will result in a normal line distance.

numindentlines (value)

Number of lines from the start of the paragraph which will be indented. Defaults to 1.

parindentskip (value)

Number of paragraphs in the box whose first lines will not be indented. This defaults to 0. This is useful for paragraphs right after a section heading or text being continued in a second box. In both case one would set this to 1.

linenumbermode (parameter)

Set how lines are to be numbered. Possible values are "box" for numbering lines in the whole box or "paragraph" to number lines within each paragraph.

linenumberspace (value)

The space for the column left of the numbered line containing the line number. The line number will be right justified into this column. Defaults to 20.

linenumbersep (value)

The space between the column with line numbers and the line itself. Defaults to 5.

Hyphenation

Text is hyphenated if the parameter hyphenation is set to true and a valid hyphenation dictionary is set. pslib does not ship its own hyphenation dictionary but uses one from openoffice, scribus or koffice. You can find their dictionaries for different languages in one of the following directories if the software is installed:

/usr/share/apps/koffice/hyphdicts/
/usr/lib/scribus/dicts/
/usr/lib/openoffice/share/dict/ooo/

Currently scribus appears to have the most complete hyphenation dictionaries.

Список параметров

psdoc

text

left

bottom

width

height

hmode

The parameter hmode can be "justify", "fulljustify", "right", "left", or "center". The difference of "justify" and "fulljustify" just affects the last line of the box. In fulljustify mode the last line will be left and right justified unless this is also the last line of paragraph. In justify mode it will always be left justified.

feature

Возвращаемые значения

Number of characters that could not be written.

Смотрите также

ps_continue_text()

Пред. | Начало | След.
ps_shfill | Уровень выше | ps_show_xy


ps_show_xy

(PECL)

ps_show_xy -- Output text at given position

Описание

bool ps_show_xy ( resource psdoc, string text, float x, float y )

Output a text at the given text position.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_continue_text()
ps_show()

Пред. | Начало | След.
ps_show_boxed | Уровень выше | ps_show


ps_string_geometry

(PECL)

ps_string_geometry -- Gets geometry of a string

Описание

array ps_string_geometry ( resource psdoc, string text [, int fontid [, float size]] )

This function is similar to ps_stringwidth() but returns an array of dimensions.

Возвращаемые значения

An array of the dimensions of a string. The element 'width' contains the width of the string as returned by ps_stringwidth(). The element 'descender' contains the maximum descender and 'ascender' the maximum ascender of the string.

Смотрите также

ps_continue_text()
ps_stringwidth()

Пред. | Начало | След.
ps_show | Уровень выше | ps_stringwidth


ps_stringwidth

(PECL)

ps_stringwidth -- Gets width of a string

Описание

float ps_stringwidth ( resource psdoc, string text [, int fontid [, float size]] )

Calculates the width of a string in points if it was output in the given font and font size. This function needs an Adobe font metrics file to calculate the precise width. If kerning is turned on, it will be taken into account.

Возвращаемые значения

Width of a string in points.

Смотрите также

ps_string_geometry()

Пред. | Начало | След.
ps_string_geometry | Уровень выше | ps_stroke


ps_stroke

(PECL)

ps_stroke -- Draws the current path

Описание

bool ps_stroke ( resource psdoc )

Draws the path constructed with previously called drawing functions like ps_lineto().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_closepath_stroke()
ps_fill()
ps_fill_stroke()

Пред. | Начало | След.
ps_stringwidth | Уровень выше | ps_symbol_name


ps_symbol

(PECL)

ps_symbol -- Output a glyph

Описание

bool ps_symbol ( resource psdoc, int ord )

Output the glyph at position ord in the font encoding vector of the current font. The font encoding for a font can be set when loading the font with ps_findfont().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_symbol_name()
ps_symbol_width()

Пред. | Начало | След.
ps_symbol_width | Уровень выше | ps_translate


ps_symbol_name

(PECL)

ps_symbol_name -- Gets name of a glyph

Описание

string ps_symbol_name ( resource psdoc, int ord [, int fontid] )

This function needs an Adobe font metrics file to know which glyphs are available.

Список параметров

psdoc

ord

The parameter ord is the position of the glyph in the font encoding vector.

fontid

Возвращаемые значения

The name of a glyph in the given font.

Смотрите также

ps_symbol()
ps_symbol_width()

Пред. | Начало | След.
ps_stroke | Уровень выше | ps_symbol_width


ps_symbol_width

(PECL)

ps_symbol_width -- Gets width of a glyph

Описание

float ps_symbol_width ( resource psdoc, int ord [, int fontid [, float size]] )

Calculates the width of a glyph in points if it was output in the given font and font size. This function needs an Adobe font metrics file to calculate the precise width.

Список параметров

psdoc

ord

The parameter ord is the position of the glyph in the font encoding vector.

fontid

Its description

size

Возвращаемые значения

The width of a glyph in points.

Смотрите также

ps_symbol()
ps_symbol_name()

Пред. | Начало | След.
ps_symbol_name | Уровень выше | ps_symbol


ps_translate

(PECL)

ps_translate -- Sets translation

Описание

bool ps_translate ( resource psdoc, float x, float y )

Sets a new initial point of the coordinate system.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ps_scale()
ps_rotate()

Пред. | Начало | След.
ps_symbol | Уровень выше | Pspell Functions


px_close

(PECL)

px_close -- Closes a paradox database

Описание

bool px_close ( resource pxdoc )

Closes the paradox database. This function will not close the file. You will have to call fclose() afterwards.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

px_open_fp()
another_func()
The example at px_new()

Пред. | Начало | След.
Paradox File Access | Уровень выше | px_create_fp


px_create_fp

(PECL)

px_create_fp -- Create a new paradox database

Описание

bool px_create_fp ( resource pxdoc, resource file, array fielddesc )

Create a new paradox database file. The actual file has to be opened before with fopen(). Make sure the file is writable. The first parameter is the return value of px_new(). fielddesc is an array containing one element for each field containing its specification. Each field specification is an array itself with either two or three elements.The first element is always a string value used as the name of the field. It may not be larger than ten characters. The second element contains the field type which is one of the constants listed in the table Constants for field types. In the case of a character field, you will have to provide a third element specifying the length of the field.

Замечание: This function is highly experimental, due to insufficient documentation of the paradox file format. Database files created with this function can be opened by px_open_fp() and has been successfully opened by the Paradox software, but your milage may vary.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Creating a Paradox database with two fields

<?php
if(!$pxdoc = px_new()) {
  /* Error handling */
}
$fp = fopen("test.db", "w+");
$fields = array(array("col1", "S"), array("col2", "I"));
if(!px_create_fp($pxdoc, $fp, $fields)) {
  /* Error handling */
}
px_set_tablename($pxdoc, "testtable");
for($i=-50; $i<50; $i++) {
  $rec = array($i, -$i);
  px_put_record($pxdoc, $rec);
}
px_close($pxdoc);
px_delete($pxdoc);
fclose($fp);
?>

Смотрите также

px_new()
px_put_record()
fopen()

Пред. | Начало | След.
px_close | Уровень выше | px_delete


px_delete

(PECL)

px_delete -- Deletes resource of paradox database

Описание

bool px_delete ( resource pxdoc )

Deletes the resource of the paradox file and frees all memory.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
px_create_fp | Уровень выше | px_get_field


px_get_field

(PECL)

px_get_field -- Returns the specification of a single field

Описание

array px_get_field ( resource pxdoc, int fieldno )

Возвращаемые значения

Returns the specification of the fieldno'th database field as an associated array. The array contains three fields named name, type, and size.

Пред. | Начало | След.
px_delete | Уровень выше | px_get_info


px_get_info

(PECL)

px_get_info -- Return lots of information about a paradox file

Описание

array px_get_info ( resource pxdoc )

Возвращаемые значения

Returns an associated array with lots of information about a paradox file. This array is likely to extend in the future.

fileversion

Version of file multiplied by 10.

tablename

Name of table as stored in the file.

numrecords

Number of records in this table.

numfields

Number of fields in this table.

headersize

Number of bytes used for the header. This is usually 0x800.

maxtablesize

This value multiplied by 0x400 is the size of a data block in bytes.

numdatablocks

The number of data blocks in the file. Each data block contains a certain number of records which depends on the record size and the data block size (maxtablesize). Data blocks may not necessarily be completely filled.

numindexfields

Number of fields used for the primary index. The fields do always start as field number 1.

codepage

The DOS codepage which was used for encoding fields with character data. If the target encoding is not set with px_set_targetencoding() this will be the encoding for character fields when records are being accessed with px_get_record().

Смотрите также

px_numfields()
px_numrecords()

Пред. | Начало | След.
px_get_field | Уровень выше | px_get_parameter


px_get_parameter

(PECL)

px_get_parameter -- Gets a parameter

Описание

string px_get_parameter ( resource pxdoc, string name )

Gets various parameters.

Список параметров

The name can be one of the following:

tablename

The name of the table as it will be stored in the database header.

targetencoding

The encoding for the output. Data which is being read from character fields is being recode into the targetencoding.

inputencoding

The encoding of the input data which is to be stored into the database.

Пред. | Начало | След.
px_get_info | Уровень выше | px_get_record


px_get_record

(PECL)

px_get_record -- Returns record of paradox database

Описание

array px_get_record ( resource pxdoc, int num [, int mode] )

Список параметров

pxdoc

num

The record number is an artificial number counting records in the order as they are stored in the database. The first record has number 0.

mode

The optional mode can be PX_KEYTOLOWER or PX_KEYTOUPPER in order to convert the keys into lower or upper case. If mode is not passed or is 0, then the key will be exactly like the field name. The element values will contain the field values. NULL values will be retained and are different from 0.0, 0 or the empty string. Fields of type PX_FIELD_TIME will be returned as an integer counting the number of milliseconds starting at midnight. A timestamp is a floating point value also counting milliseconds starting at the beginning of julian calendar.

Возвращаемые значения

Returns the num'th record from the paradox database. The record is returned as an associated array with its keys being the field names.

Пред. | Начало | След.
px_get_parameter | Уровень выше | px_get_schema


px_get_schema

(PECL)

px_get_schema -- Returns the database schema

Описание

array px_get_schema ( resource pxdoc [, int mode] )

px_get_schema() returns the database schema.

Список параметров

pxdoc

mode

If the optional mode is PX_KEYTOLOWER or PX_KEYTOUPPER the key will be converted to lower or upper case. If mode is 0 or not passed at all, then the key name will be identical to the field name.

Возвращаемые значения

Returns the schema of a database file as an associated array. The key name is equal to the field name. Each array element is itself an associated array containing the two fields type and size. type is one of the constants in table Constants for field types.

Пред. | Начало | След.
px_get_record | Уровень выше | px_get_value


px_get_value

(PECL)

px_get_value -- Gets a value

Описание

float px_get_value ( resource pxdoc, string name )

Gets various values.

Список параметров

pxdoc

name

name can be one of the following.

numprimkeys

The number of primary keys. Paradox databases always use the first numprimkeys fields for the primary index.

Пред. | Начало | След.
px_get_schema | Уровень выше | px_new


px_new

(PECL)

px_new -- Create a new paradox object

Описание

resource px_new ( void )

Create a new paradox object. You will have to call this function before any further functions. px_new() does not create any file on the disk, it justs creates an instance of a paradox object.

Возвращаемые значения

Returns FALSE on failure.

Примеры

Пример 1. Opening a Paradox database

<?php
if(!$pxdoc = px_new()) {
  /* Error handling */
}
$fp = fopen("test.db", "r");
if(!px_open_fp($pxdoc, $fp)) {
  /* Error handling */
}
// ...
px_close($pxdoc);
px_delete($pxdoc);
fclose($fp);
?>

If you prefer the object oriented API, then the above example will look like the following.

Пример 2. Opening a Paradox database

<?php
$fp = fopen("test.db", "r");
$pxdoc = new paradox_db();
if(!$pxdoc->open_fp($fp)) {
  /* Error handling */
}
// ...
$pxdoc->close();
fclose($fp);
?>

Смотрите также

px_delete()
px_open_fp()

Пред. | Начало | След.
px_get_value | Уровень выше | px_numfields


px_numfields

(PECL)

px_numfields -- Returns number of fields in a database

Описание

int px_numfields ( resource pxdoc )

Get the number of fields in a database file.

Возвращаемые значения

Returns the number of fields in a database file. The return value of this function is identical to the element numfields in the associated array returned by px_get_info().

Пред. | Начало | След.
px_new | Уровень выше | px_numrecords


px_numrecords

(PECL)

px_numrecords -- Returns number of records in a database

Описание

int px_numrecords ( resource pxdoc )

Get the number of records in a database file.

Возвращаемые значения

Returns the number of records in a database file. The return value of this function is identical to the element numrecords in the associated array returned by px_get_info().

Пред. | Начало | След.
px_numfields | Уровень выше | px_open_fp


px_open_fp

(PECL)

px_open_fp -- Open paradox database

Описание

bool px_open_fp ( resource pxdoc, resource file )

Open an existing paradox database file. The actual file has to be opened before with fopen(). This function can also be used to open primary index files and tread them like a paradox database. This is supported for those who would like to investigate a primary index. It cannot be used to accelerate access to a database file.

Список параметров

pxdoc

pxdoc is the return value of px_new().

file

file is the return value from fopen() with the actual database file as parameter.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

fopen()
The example at px_new()

Пред. | Начало | След.
px_numrecords | Уровень выше | px_put_record


px_put_record

(PECL)

px_put_record -- Stores record into paradox database

Описание

bool px_put_record ( resource pxdoc, array record )

Stores a record into a paradox database. The record is added at the end of the database.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
px_open_fp | Уровень выше | px_set_blob_file


px_set_blob_file

(PECL)

px_set_blob_file -- Sets the file where blobs are read from

Описание

bool px_set_blob_file ( resource pxdoc, string filename )

Sets the name of the file where blobs are going to be read from. Without calling this function, px_get_record() will only return data in blob fields if the data is part of the record and not stored in the blob file. Blob data is stored in the record if it is small enough to fit in the size of the blob field.

Calling this function twice will close the first blob file and open the new one.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
px_put_record | Уровень выше | px_set_parameter


px_set_parameter

(PECL)

px_set_parameter -- Sets a parameter

Описание

bool px_set_parameter ( resource pxdoc, string name, string value )

Sets various parameters.

Список параметров

pxdoc

name

name can be one of the following.

tablename

The name of the table as it will be stored in the database header.

targetencoding

The encoding for the output. Data which is being read from character fields is being recode into the targetencoding.

inputencoding

The encoding of the input data which is to be stored into the database.

value

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

px_get_info() to determine the DOS code page.

Пред. | Начало | След.
px_set_blob_file | Уровень выше | px_set_tablename


px_set_tablename

(PECL)

px_set_tablename -- Sets the name of a table (deprecated)

Описание

void px_set_tablename ( resource pxdoc, string name )

Sets the table name of a paradox database, which was created with px_create_fp(). Applying this function on an existing database has no effect.

Возвращаемые значения

Returns NULL on success or FALSE on failure.

Пред. | Начало | След.
px_set_parameter | Уровень выше | px_set_targetencoding


px_set_targetencoding

(PECL)

px_set_targetencoding -- Sets the encoding for character fields (deprecated)

Описание

bool px_set_targetencoding ( resource pxdoc, string encoding )

Set the encoding for data retrieved from a character field. All character fields will be recoded to the encoding set by this function. If the encoding is not set, the character data will be returned in the DOS code page encoding as specified in the database.

See also px_get_info() to determine the DOS code page.

Возвращаемые значения

Returns FALSE if the encoding could not be set, e.g. the encoding is unknown, or pxlib does not support recoding at all. In the second case a warning will be issued.

Пред. | Начало | След.
px_set_tablename | Уровень выше | px_set_value


px_set_value

(PECL)

px_set_value -- Sets a value

Описание

bool px_set_value ( resource pxdoc, string name, float value )

Sets various values.

Список параметров

pxdoc

name

name can be one of the following.

numprimkeys

The number of primary keys. Paradox databases always use the first numprimkeys fields for the primary index.

value

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
px_set_targetencoding | Уровень выше | px_timestamp2string


px_timestamp2string

(PECL)

px_timestamp2string -- Converts the timestamp into a string.

Описание

string px_timestamp2string ( resource pxdoc, float value, string format )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pxdoc

value

format

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
px_set_value | Уровень выше | Parsekit Functions


radius_acct_open

(PECL)

radius_acct_open -- Creates a Radius handle for accounting

Описание

resource radius_acct_open ( void )

Возвращаемые значения

Returns a handle on success, FALSE on error. This function only fails if insufficient memory is available.

Примеры

Пример 1. radius_acct_open() example

<?php
$res = radius_acct_open ()
    or die ("Could not create handle");
print("Handle successfully created");
?>

Пред. | Начало | След.
Radius | Уровень выше | radius_add_server


radius_add_server

(PECL)

radius_add_server -- Adds a server

Описание

bool radius_add_server ( resource radius_handle, string hostname, int port, string secret, int timeout, int max_tries )

radius_add_server() may be called multiple times, and it may be used together with radius_config(). At most 10 servers may be specified. When multiple servers are given, they are tried in round-robin fashion until a valid response is received, or until each server's max_tries limit has been reached.

Список параметров

radius_handle

hostname

The hostname parameter specifies the server host, either as a fully qualified domain name or as a dotted-quad IP address in text form.

port

The port specifies the UDP port to contact on the server. If port is given as 0, the library looks up the radius/udp or radacct/udp service in the network services database, and uses the port found there. If no entry is found, the library uses the standard Radius ports, 1812 for authentication and 1813 for accounting.

secret

The shared secret for the server host is passed to the secret parameter. The Radius protocol ignores all but the leading 128 bytes of the shared secret.

timeout

The timeout for receiving replies from the server is passed to the timeout parameter, in units of seconds.

max_tries

The maximum number of repeated requests to make before giving up is passed into the max_tries.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. radius_add_server() example

<?php
if (!radius_add_server($res, 'radius.example.com', 1812, 'testing123', 3, 3)) {
    echo 'RadiusError:' . radius_strerror($res). "\n<br>";
    exit;
}
?>

Смотрите также

radius_config()

Пред. | Начало | След.
radius_acct_open | Уровень выше | radius_auth_open


radius_auth_open

(PECL)

radius_auth_open -- Creates a Radius handle for authentication

Описание

resource radius_auth_open ( void )

Возвращаемые значения

Returns a handle on success, FALSE on error. This function only fails if insufficient memory is available.

Примеры

Пример 1. radius_auth_open() example

<?php
$radh = radius_auth_open()
    or die ("Could not create handle");
echo "Handle successfully created";
?>

Пред. | Начало | След.
radius_add_server | Уровень выше | radius_close


radius_close

(PECL)

radius_close -- Frees all ressources

Описание

bool radius_close ( resource radius_handle )

It is not needed to call this function because php frees all resources at the end of each request.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
radius_auth_open | Уровень выше | radius_config


radius_config

(PECL)

radius_config -- Causes the library to read the given configuration file

Описание

bool radius_config ( resource radius_handle, string file )

Before issuing any Radius requests, the library must be made aware of the servers it can contact. The easiest way to configure the library is to call radius_config(). radius_config() causes the library to read a configuration file whose format is described in radius.conf.

Список параметров

radius_handle

file

The pathname of the configuration file is passed as the file argument to radius_config(). The library can also be configured programmatically by calls to radius_add_server().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

radius_add_server()

Пред. | Начало | След.
radius_close | Уровень выше | radius_create_request


radius_create_request

(PECL)

radius_create_request -- Create accounting or authentication request

Описание

bool radius_create_request ( resource radius_handle, int type )

A Radius request consists of a code specifying the kind of request, and zero or more attributes which provide additional information. To begin constructing a new request, call radius_create_request().

Замечание: Attention: You must call this function, before you can put any attribute!

Список параметров

radius_handle

Type is RADIUS_ACCESS_REQUEST or RADIUS_ACCOUNTING_REQUEST.

type

Its description

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. radius_create_request() example

<?php
if (!radius_create_request($res, RADIUS_ACCESS_REQUEST)) {
    echo 'RadiusError:' . radius_strerror($res). "\n<br />";
    exit;
}
?>

Смотрите также

radius_send_request()

Пред. | Начало | След.
radius_config | Уровень выше | radius_cvt_addr


radius_cvt_addr

(PECL)

radius_cvt_addr -- Converts raw data to IP-Address

Описание

string radius_cvt_addr ( string data )

Примеры

Пример 1. radius_cvt_addr() example

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf ("Error getting attribute: %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];

    switch ($attr) {

    case RADIUS_FRAMED_IP_ADDRESS:
        $ip = radius_cvt_addr($data);
        echo "IP: $ip<br>\n";
        break;

    case RADIUS_FRAMED_IP_NETMASK:
        $mask = radius_cvt_addr($data);
        echo "MASK: $mask<br>\n";
        break;
    }
}
?>

Смотрите также

radius_cvt_int()
radius_cvt_string()

Пред. | Начало | След.
radius_create_request | Уровень выше | radius_cvt_int


radius_cvt_int

(PECL)

radius_cvt_int -- Converts raw data to integer

Описание

int radius_cvt_int ( string data )

Примеры

Пример 1. radius_cvt_int() example

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf ("Error getting attribute: %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];

    switch ($attr) {

    case RADIUS_FRAMED_MTU:
        $mtu = radius_cvt_int($data);
        echo "MTU: $mtu<br>\n";
        break;
    }
}
?>

Смотрите также

radius_cvt_addr()
radius_cvt_string()

Пред. | Начало | След.
radius_cvt_addr | Уровень выше | radius_cvt_string


radius_cvt_string

(PECL)

radius_cvt_string -- Converts raw data to string

Описание

string radius_cvt_string ( string data )

Примеры

Пример 1. radius_cvt_string() example

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf ("Error getting attribute: %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];

    switch ($attr) {

    case RADIUS_FILTER_ID:
        $id = radius_cvt_string($data);
        echo "Filter ID: $id<br>\n";
        break;
    }
}
?>

Смотрите также

radius_cvt_addr()
radius_cvt_int()

Пред. | Начало | След.
radius_cvt_int | Уровень выше | radius_demangle_mppe_key


radius_demangle

(PECL)

radius_demangle -- Demangles data

Описание

string radius_demangle ( resource radius_handle, string mangled )

Some data (Passwords, MS-CHAPv1 MPPE-Keys) is mangled for security reasons, and must be demangled before you can use them.

Возвращаемые значения

Returns the demangled string, or FALSE on error.

Пред. | Начало | След.
radius_demangle_mppe_key | Уровень выше | radius_get_attr


radius_demangle_mppe_key

(PECL)

radius_demangle_mppe_key -- Derives mppe-keys from mangled data

Описание

string radius_demangle_mppe_key ( resource radius_handle, string mangled )

When using MPPE with MS-CHAPv2, the send- and recv-keys are mangled (see RFC 2548), however this function is useless, because I don't think that there is or will be a PPTP-MPPE implementation in PHP.

Возвращаемые значения

Returns the demangled string, or FALSE on error.

Пред. | Начало | След.
radius_cvt_string | Уровень выше | radius_demangle


radius_get_attr

(PECL)

radius_get_attr -- Extracts an attribute

Описание

mixed radius_get_attr ( resource radius_handle )

Like Radius requests, each response may contain zero or more attributes. After a response has been received successfully by radius_send_request(), its attributes can be extracted one by one using radius_get_attr(). Each time radius_get_attr() is called, it gets the next attribute from the current response.

Возвращаемые значения

Returns an associative array containing the attribute-type and the data, or error number <= 0.

Примеры

Пример 1. radius_get_attr() example

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf("Error getting attribute: %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];
    printf("Got Attr:%d %d Bytes %s\n", $attr, strlen($data), bin2hex($data));
}
?>

Смотрите также

radius_put_attr()
radius_get_vendor_attr()
radius_put_vendor_attr()
radius_send_request()

Пред. | Начало | След.
radius_demangle | Уровень выше | radius_get_vendor_attr


radius_get_vendor_attr

(PECL)

radius_get_vendor_attr -- Extracts a vendor specific attribute

Описание

array radius_get_vendor_attr ( string data )

If radius_get_attr() returns RADIUS_VENDOR_SPECIFIC, radius_get_vendor_attr() may be called to determine the vendor.

Возвращаемые значения

Returns an associative array containing the attribute-type, vendor and the data, or FALSE on error.

Примеры

Пример 1. radius_get_vendor_attr() example

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf ("Error getting attribute: %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];
    printf("Got Attr:%d %d Bytes %s\n", $attr, strlen($data), bin2hex($data));
    if ($attr == RADIUS_VENDOR_SPECIFIC) {

        $resv = radius_get_vendor_attr($data);
        if (is_array($resv)) {
            $vendor = $resv['vendor'];
            $attrv = $resv['attr'];
            $datav = $resv['data'];
            printf("Got Vendor Attr:%d %d Bytes %s\n", $attrv, strlen($datav), bin2hex($datav));
        }

    }
}
?>

Смотрите также

radius_get_attr()
radius_put_vendor_attr()

Пред. | Начало | След.
radius_get_attr | Уровень выше | radius_put_addr


radius_put_addr

(PECL)

radius_put_addr -- Attaches an IP-Address attribute

Описание

bool radius_put_addr ( resource radius_handle, int type, string addr )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
radius_get_vendor_attr | Уровень выше | radius_put_attr


radius_put_attr

(PECL)

radius_put_attr -- Attaches a binary attribute

Описание

bool radius_put_attr ( resource radius_handle, int type, string value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. radius_put_attr() example

<?php
mt_srand(time());
$chall = mt_rand();
$chapval = md5(pack('Ca*',1 , 'sepp' . $chall));
$pass = pack('CH*', 1, $chapval);
if (!radius_put_attr($res, RADIUS_CHAP_PASSWORD, $pass)) {
    echo 'RadiusError:' . radius_strerror($res). "\n<br />";
    exit;
}
?>

Смотрите также

radius_get_attr()
radius_get_vendor_attr()
radius_put_vendor_attr()

Пред. | Начало | След.
radius_put_addr | Уровень выше | radius_put_int


radius_put_int

(PECL)

radius_put_int -- Attaches an integer attribute

Описание

bool radius_put_int ( resource radius_handle, int type, int value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. radius_put_int() example

<?php
if (!radius_put_int($res, RAD_FRAMED_PROTOCOL, RAD_PPP)) {
   echo 'RadiusError:' . radius_strerror($res). "\n<br />";
   exit;
}
?>

Смотрите также

radius_put_string()
radius_put_vendor_int()
radius_put_vendor_string()

Пред. | Начало | След.
radius_put_attr | Уровень выше | radius_put_string


radius_put_string

(PECL)

radius_put_string -- Attaches a string attribute

Описание

bool radius_put_string ( resource radius_handle, int type, string value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. radius_put_string() example

<?php
if (!radius_put_string($res, RADIUS_USER_NAME, 'billy')) {
    echo 'RadiusError:' . radius_strerror($res). "\n<br />";
    exit;
}
?>

Смотрите также

radius_put_int()
radius_put_vendor_int()
radius_put_vendor_string()

Пред. | Начало | След.
radius_put_int | Уровень выше | radius_put_vendor_addr


radius_put_vendor_addr

(PECL)

radius_put_vendor_addr -- Attaches a vendor specific IP-Address attribute

Описание

bool radius_put_vendor_addr ( resource radius_handle, int vendor, int type, string addr )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
radius_put_string | Уровень выше | radius_put_vendor_attr


radius_put_vendor_attr

(PECL)

radius_put_vendor_attr -- Attaches a vendor specific binary attribute

Описание

bool radius_put_vendor_attr ( resource radius_handle, int vendor, int type, string value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. radius_put_vendor_attr() example

<?php
if (!radius_put_vendor_attr($res, RADIUS_VENDOR_MICROSOFT, RAD_MICROSOFT_MS_CHAP_CHALLENGE, $challenge)) {
    echo 'RadiusError:' . radius_strerror($res). "\n<br />";
    exit;
}
?>

Пред. | Начало | След.
radius_put_vendor_addr | Уровень выше | radius_put_vendor_int


radius_put_vendor_int

(PECL)

radius_put_vendor_int -- Attaches a vendor specific integer attribute

Описание

bool radius_put_vendor_int ( resource radius_handle, int vendor, int type, int value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
radius_put_vendor_attr | Уровень выше | radius_put_vendor_string


radius_put_vendor_string

(PECL)

radius_put_vendor_string -- Attaches a vendor specific string attribute

Описание

bool radius_put_vendor_string ( resource radius_handle, int vendor, int type, string value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
radius_put_vendor_int | Уровень выше | radius_request_authenticator


radius_request_authenticator

(PECL)

radius_request_authenticator -- Returns the request authenticator

Описание

string radius_request_authenticator ( resource radius_handle )

The request authenticator is needed for demangling mangled data like passwords and encryption-keys.

Возвращаемые значения

Returns the request authenticator as string, or FALSE on error.

Смотрите также

radius_demangle()

Пред. | Начало | След.
radius_put_vendor_string | Уровень выше | radius_send_request


radius_send_request

(PECL)

radius_send_request -- Sends the request and waites for a reply

Описание

int radius_send_request ( resource radius_handle )

After the Radius request has been constructed, it is sent by radius_send_request().

The radius_send_request() function sends the request and waits for a valid reply, retrying the defined servers in round-robin fashion as necessary.

Возвращаемые значения

If a valid response is received, radius_send_request() returns the Radius code which specifies the type of the response. This will typically be RADIUS_ACCESS_ACCEPT, RADIUS_ACCESS_REJECT, or RADIUS_ACCESS_CHALLENGE. If no valid response is received, radius_send_request() returns FALSE.

Смотрите также

radius_create_request()

Пред. | Начало | След.
radius_request_authenticator | Уровень выше | radius_server_secret


radius_server_secret

(PECL)

radius_server_secret -- Returns the shared secret

Описание

string radius_server_secret ( resource radius_handle )

The shared secret is needed as salt for demangling mangled data like passwords and encryption-keys.

Возвращаемые значения

Returns the server's shared secret as string, or FALSE on error.

Пред. | Начало | След.
radius_send_request | Уровень выше | radius_strerror


radius_strerror

(PECL)

radius_strerror -- Returns an error message

Описание

string radius_strerror ( resource radius_handle )

If Radius-functions fail then they record an error message. This error message can be retrieved with this function.

Возвращаемые значения

Returns error messages as string from failed radius functions.

Пред. | Начало | След.
radius_server_secret | Уровень выше | Rar функции


require

Руководство по PHP
Пред. Глава 16. Control Structures След.

require()

The require() statement includes and evaluates the specific file.

require() includes and evaluates a specific file. Detailed information on how this inclusion works is described in the documentation for include().

require() and include() are identical in every way except how they handle failure. include() produces a Warning while require() results in a Fatal Error. In other words, don't hesitate to use require() if you want a missing file to halt processing of the page. include() does not behave this way, the script will continue regardless. Be sure to have an appropriate include_path setting as well.

Пример 16-4. Basic require() examples

<?php

require 'prepend.php';

require $somefile;

require ('somefile.txt');

?>

See the include() documentation for more examples.

Замечание: Prior to PHP 4.0.2, the following applies: require() will always attempt to read the target file, even if the line it's on never executes. The conditional statement won't affect require(). However, if the line on which the require() occurs is not executed, neither will any of the code in the target file be executed. Similarly, looping structures do not affect the behaviour of require(). Although the code contained in the target file is still subject to the loop, the require() itself happens only once.

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций

Внимание

Версии PHP для Windows до PHP 4.3.0 не поддерживают возможность использования удаленных файлов этой функцией даже в том случае, если опция allow_url_fopen включена.

See also include(), require_once(),
include_once(), eval(),
file(), readfile(),
virtual() and include_path.

Пред. | Начало | След.
return | Уровень выше | include()


require_once

Руководство по PHP
Пред. Глава 16. Control Structures След.

require_once()

The require_once() statement includes and evaluates the specified file during the execution of the script. This is a behavior similar to the require() statement, with the only difference being that if the code from a file has already been included, it will not be included again. See the documentation for require() for more information on how this statement works.

require_once() should be used in cases where the same file might be included and evaluated more than once during a particular execution of a script, and you want to be sure that it is included exactly once to avoid problems with function redefinitions, variable value reassignments, etc.

For examples on using require_once() and include_once(), look at the PEAR code included in the latest PHP source code distributions.

Return values are the same as with include(). If the file was already included, this function returns TRUE

Замечание: require_once() was added in PHP 4.0.1pl2

Замечание: Be aware, that the behaviour of require_once() and include_once() may not be what you expect on a non case sensitive operating system (such as Windows).

Пример 16-12. require_once() is case insensitive on Windows

<?php
require_once("a.php"); // this will include a.php
require_once("A.php"); // this will include a.php again on Windows! (PHP 4 only)
?>
This behaviour changed in PHP 5 - the path is normalized first so that C:\PROGRA~1\A.php is realized the same as C:\Program Files\a.php and the file is required just once.

Внимание

Версии PHP для Windows до PHP 4.3.0 не поддерживают возможность использования удаленных файлов этой функцией даже в том случае, если опция allow_url_fopen включена.

See also require(),
include(), include_once(),
get_required_files(),
get_included_files(), readfile(), and
virtual().


rpm_close

(no version information, might be only in CVS)

rpm_close -- Closes an RPM file

Описание

boolean rpm_close ( resource rpmr )

rpm_close() will close an RPM file pointer.

Список параметров

rpmr

A file pointer resource successfully opened by rpm_open().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. rpm_close() example

<?php

$file = "/path/to/file.rpm";
$rpmr = rpm_open($file);

rpm_close($rpmr);

?>

Смотрите также

rpm_open()

Пред. | Начало | След.
RPM Header Reading Функции | Уровень выше | rpm_get_tag


rpm_get_tag

(no version information, might be only in CVS)

rpm_get_tag -- Retrieves a header tag from an RPM file

Описание

mixed rpm_get_tag ( resource rpmr, int tagnum )

rpm_get_tag() will retrieve a given tag from the RPM file's header and return it.

Список параметров

rpmr

A file pointer resource successfully opened by rpm_open().

tagnum

The tag number to retrieve from the RPM header. This value can be specified using the list of constants defined by this module.

Возвращаемые значения

The return value can be of various types depending on the tagnum supplied to the function.

Примеры

Пример 1. rpm_get_tag() example

<?php

$file = "/path/to/file.rpm";
$rpmr = rpm_open($file);

$name = rpm_get_tag($rpmr, RPMREADER_NAME);
echo "$name<br>\n";

rpm_close($rpmr);

?>

Смотрите также

rpm_open()
rpm_close()

Пред. | Начало | След.
rpm_close | Уровень выше | rpm_is_valid


rpm_is_valid

(no version information, might be only in CVS)

rpm_is_valid -- Tests a filename for validity as an RPM file

Описание

boolean rpm_is_valid ( string filename )

rpm_is_valid() will test an RPM file for validity as an RPM file. This is not the same as rpm_open() as it only checks the file for validity but does not return a file pointer to be used by further functions.

Список параметров

filename

The filename of the RPM file you wish to check for validity.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. rpm_is_valid() example

<?php

$file = "/path/to/file.rpm";

if (rpm_is_valid($file)) {
    echo "File is recognized as an RPM file.<br>\n";
}
else {
    echo "File is not recognized as an RPM file.<br>\n";
}

?>

Пред. | Начало | След.
rpm_get_tag | Уровень выше | rpm_open


rpm_open

(no version information, might be only in CVS)

rpm_open -- Opens an RPM file

Описание

resource rpm_open ( string filename )

rpm_open() will open an RPM file and will determine if the file is a valid RPM file.

Список параметров

filename

The filename of the RPM file you wish to open.

Возвращаемые значения

If the open succeeds, then rpm_open() will return a file pointer resource to the newly opened file. On error, the function will return FALSE.

Примеры

Пример 1. rpm_open() example

<?php

$file = "/path/to/file.rpm";
$rpmr = rpm_open($file);

rpm_close($rpmr);

?>

Смотрите также

rpm_close()

Пред. | Начало | След.
rpm_is_valid | Уровень выше | rpm_version


rpm_version

(no version information, might be only in CVS)

rpm_version -- Returns a string representing the current version of the rpmreader extension

Описание

string rpm_version ( void )

rpm_version() will return the current version of the rpmreader extension.

Возвращаемые значения

rpm_version() will return a string representing the rpmreader version currently loaded in PHP.

Примеры

Пример 1. rpm_version() example

<?php

$rpmr_ver = rpm_version();

echo "$rpmr_ver<br />\n";

?>

Пред. | Начало | След.
rpm_open | Уровень выше | runkit Functions


runkit_class_adopt

(PECL)

runkit_class_adopt -- Convert a base class to an inherited class, add ancestral methods when appropriate

Описание

bool runkit_class_adopt ( string classname, string parentname )

Список параметров

classname

Name of class to be adopted

parentname

Parent class which child class is extending

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. A runkit_class_adopt() example

<?php
class myParent {
  function parentFunc() {
    echo "Parent Function Output\n";
  }
}

class myChild {
}

runkit_class_adopt('myChild','myParent');
myChild::parentFunc();
?>

Результат выполнения данного примера:

Parent Function Output

Смотрите также

runkit_class_emancipate()

Пред. | Начало | След.
Runkit_Sandbox_Parent | Уровень выше | runkit_class_emancipate


runkit_class_emancipate

(PECL)

runkit_class_emancipate -- Convert an inherited class to a base class, removes any method whose scope is ancestral

Описание

bool runkit_class_emancipate ( string classname )

Список параметров

classname

Name of class to emancipate

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. A runkit_class_emancipate() example

<?php
class myParent {
  function parentFunc () {
    echo "Parent Function Output\n";
  }
}
class myChild extends myParent {
}

myChild::parentFunc();
runkit_class_emancipate('myChild');
myChild::parentFunc();
?>

Результат выполнения данного примера:

Parent Function Output
Fatal error: Call to undefined function:  parentFunc() in example.php on line 12

Смотрите также

runkit_class_adopt()

Пред. | Начало | След.
runkit_class_adopt | Уровень выше | runkit_constant_add


runkit_constant_add

(PECL)

runkit_constant_add -- Similar to define(), but allows defining in class definitions as well

Описание

bool runkit_constant_add ( string constname, mixed value )

Список параметров

constname

Name of constant to declare. Either a string to indicate a global constant, or classname::constname to indicate a class constant.

value

NULL, Bool, Long, Double, String, or Resource value to store in the new constant.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

define()
runkit_constant_redefine()
runkit_constant_remove()

Пред. | Начало | След.
runkit_class_emancipate | Уровень выше | runkit_constant_redefine


runkit_constant_redefine

(PECL)

runkit_constant_redefine -- Redefine an already defined constant

Описание

bool runkit_constant_redefine ( string constname, mixed newvalue )

Список параметров

constname

Constant to redefine. Either string indicating global constant, or classname::constname indicating class constant.

newvalue

New value to assign to constant.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

runkit_constant_add()
runkit_constant_remove()

Пред. | Начало | След.
runkit_constant_add | Уровень выше | runkit_constant_remove


runkit_constant_remove

(PECL)

runkit_constant_remove -- Remove/Delete an already defined constant

Описание

bool runkit_constant_remove ( string constname )

Список параметров

constname

Name of constant to remove. Either a string indicating a global constant, or classname::constname indicating a class constant.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

define()
runkit_constant_add()
runkit_constant_redefine()

Пред. | Начало | След.
runkit_constant_redefine | Уровень выше | runkit_function_add


runkit_function_add

(PECL)

runkit_function_add -- Add a new function, similar to create_function()

Описание

bool runkit_function_add ( string funcname, string arglist, string code )

Список параметров

funcname

Name of function to be created

arglist

Comma separated argument list

code

Code making up the function

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. A runkit_function_add() example

<?php
create_function('testme','$a,$b','echo "The value of a is $a\n"; echo "The value of b is $b\n";');
testme(1,2);
?>

Результат выполнения данного примера:

The value of a is 1
The value of b is 2

Смотрите также

create_function()
runkit_function_redefine()
runkit_function_copy()
runkit_function_rename()
runkit_function_remove()
runkit_method_add()

Пред. | Начало | След.
runkit_constant_remove | Уровень выше | runkit_function_copy


runkit_function_copy

(PECL)

runkit_function_copy -- Copy a function to a new function name

Описание

bool runkit_function_copy ( string funcname, string targetname )

Список параметров

funcname

Name of existing function

targetname

Name of new function to copy definition to

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. A runkit_function_copy() example

<?php
function original() {
  echo "In a function\n";
}
runkit_function_copy('original','duplicate');
original();
duplicate();
?>

Результат выполнения данного примера:

In a function
In a function

Смотрите также

runkit_function_add()
runkit_function_redefine()
runkit_function_rename()
runkit_function_remove()

Пред. | Начало | След.
runkit_function_add | Уровень выше | runkit_function_redefine


runkit_function_redefine

(PECL)

runkit_function_redefine -- Replace a function definition with a new implementation

Описание

bool runkit_function_redefine ( string funcname, string arglist, string code )

Список параметров

funcname

Name of function to redefine

arglist

New list of arguments to be accepted by function

code

New code implementation

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. A runkit_function_redefine() example

<?php
function testme() {
  echo "Original Testme Implementation\n";
}
testme();
runkit_function_redefine('testme','','echo "New Testme Implementation\n";');
testme();
?>

Результат выполнения данного примера:

Original Testme Implementation
New Testme Implementation

Смотрите также

runkit_function_add()
runkit_function_copy()
runkit_function_rename()
runkit_function_remove()

Пред. | Начало | След.
runkit_function_copy | Уровень выше | runkit_function_remove


runkit_function_remove

(PECL)

runkit_function_remove -- Remove a function definition

Описание

bool runkit_function_remove ( string funcname )

Список параметров

funcname

Name of function to be deleted

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

runkit_function_add()
runkit_function_copy()
runkit_function_redefine()
runkit_function_rename()

Пред. | Начало | След.
runkit_function_redefine | Уровень выше | runkit_function_rename


runkit_function_rename

(PECL)

runkit_function_rename -- Change a function's name

Описание

bool runkit_function_rename ( string funcname, string newname )

Список параметров

funcname

Current function name

newname

New function name

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

runkit_function_add()
runkit_function_copy()
runkit_function_redefine()
runkit_function_remove()

Пред. | Начало | След.
runkit_function_remove | Уровень выше | runkit_import


runkit_import

(PECL)

runkit_import -- Process a PHP file importing function and class definitions, overwriting where appropriate

Описание

bool runkit_import ( string filename [, int flags] )

Similar to include() however any code residing outside of a function or class is simply ignored. Additionally, depending on the value of flags, any functions or classes which already exist in the currently running environment will be automatically overwritten by their new definitions.

Список параметров

filename

Filename to import function and class definitions from

flags

Bitwise OR of the RUNKIT_IMPORT_* family of constants.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
runkit_function_rename | Уровень выше | runkit_lint_file


runkit_lint

(PECL)

runkit_lint -- Check the PHP syntax of the specified php code

Описание

bool runkit_lint ( string code )

The runkit_lint() function performs a syntax (lint) check on the specified php code testing for scripting errors. This is similar to using php -l from the commandline except runkit_lint() accepts actual code rather than a filename.

Замечание: Sandbox support (required for runkit_lint(), runkit_lint_file(), and the Runkit_Sandbox class) is only available with PHP 5.1 or specially patched versions of PHP 5.0 and requires that thread safety be enabled. See the README file included in the runkit package for more information.

Список параметров

code

PHP Code to be lint checked

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

runkit_lint_file()

Пред. | Начало | След.
runkit_lint_file | Уровень выше | runkit_method_add


runkit_lint_file

(PECL)

runkit_lint_file -- Check the PHP syntax of the specified file

Описание

bool runkit_lint_file ( string filename )

The runkit_lint_file() function performs a syntax (lint) check on the specified filename testing for scripting errors. This is similar to using php -l from the commandline.

Замечание: Sandbox support (required for runkit_lint(), runkit_lint_file(), and the Runkit_Sandbox class) is only available with PHP 5.1 or specially patched versions of PHP 5.0 and requires that thread safety be enabled. See the README file included in the runkit package for more information.

Список параметров

filename

File containing PHP Code to be lint checked

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

runkit_lint()

Пред. | Начало | След.
runkit_import | Уровень выше | runkit_lint


runkit_method_add

(PECL)

runkit_method_add -- Dynamically adds a new method to a given class

Описание

bool runkit_method_add ( string classname, string methodname, string args, string code [, int flags] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

classname

The class to which this method will be added

methodname

The name of the method to add

args

Comma-delimited list of arguments for the newly-created method

code

The code to be evaluated when methodname is called

flags

The type of method to create, can be RUNKIT_ACC_PUBLIC, RUNKIT_ACC_PROTECTED or RUNKIT_ACC_PRIVATE

Замечание: This parameter is only used as of PHP 5, because, prior to this, all methods were public.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. runkit_method_add() example

<?php
class Example {
    function foo() {
        echo "foo!\n";
    }
}

// create an Example object
$e = new Example();

// Add a new public method
runkit_method_add(
    'Example',
    'add',
    '$num1, $num2',
    'return $num1 + $num2;',
    RUNKIT_ACC_PUBLIC
);

// add 12 + 4
echo $e->add(12, 4);
?>

Результат выполнения данного примера:

16

Смотрите также

runkit_method_copy()
runkit_method_redefine()
runkit_method_remove()
runkit_method_rename()
runkit_function_add()

Пред. | Начало | След.
runkit_lint | Уровень выше | runkit_method_copy


runkit_method_copy

(PECL)

runkit_method_copy -- Copies a method from class to another

Описание

bool runkit_method_copy ( string dClass, string dMethod, string sClass [, string sMethod] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

dClass

Destination class for copied method

dMethod

Destination method name

sClass

Source class of the method to copy

sMethod

Name of the method to copy from the source class. If this parameter is omitted, the value of dMethod is assumed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. runkit_method_copy() example

<?php
class Foo {
    function example() {
        return "foo!\n";
    }
}

class Bar {
    // initially, no methods
}

// copy the example() method from the Foo class to the Bar class, as baz()
runkit_method_copy('Bar', 'baz', 'Foo', 'example');

// output copied function
echo Bar::baz();
?>

Результат выполнения данного примера:

foo!

Смотрите также

runkit_method_add()
runkit_method_redefine()
runkit_method_remove()
runkit_method_rename()
runkit_function_copy()

Пред. | Начало | След.
runkit_method_add | Уровень выше | runkit_method_redefine


runkit_method_redefine

(PECL)

runkit_method_redefine -- Dynamically changes the code of the given method

Описание

bool runkit_method_redefine ( string classname, string methodname, string args, string code [, int flags] )

Замечание: This function cannot be used to manipulate the currently running (or chained) method.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

classname

The class in which to redefine the method

methodname

The name of the method to redefine

args

Comma-delimited list of arguments for the redefined method

code

The new code to be evaluated when methodname is called

flags

The redefined method can be RUNKIT_ACC_PUBLIC, RUNKIT_ACC_PROTECTED or RUNKIT_ACC_PRIVATE

Замечание: This parameter is only used as of PHP 5, because, prior to this, all methods were public.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. runkit_method_redefine() example

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// create an Example object
$e = new Example();

// output Example::foo() (before redefine)
echo "Before: " . $e->foo();

// Redefine the 'foo' method
runkit_method_redefine(
    'Example',
    'foo',
    '',
    'return "bar!\n";',
    RUNKIT_ACC_PUBLIC
);

// output Example::foo() (after redefine)
echo "After: " . $e->foo();
?>

Результат выполнения данного примера:

Before: foo!
After: bar!

Смотрите также

runkit_method_add()
runkit_method_copy()
runkit_method_remove()
runkit_method_rename()
runkit_function_redefine()

Пред. | Начало | След.
runkit_method_copy | Уровень выше | runkit_method_remove


runkit_method_remove

(PECL)

runkit_method_remove -- Dynamically removes the given method

Описание

bool runkit_method_remove ( string classname, string methodname )

Замечание: This function cannot be used to manipulate the currently running (or chained) method.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

classname

The class in which to remove the method

methodname

The name of the method to remove

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. runkit_method_remove() example

<?php
class Example {
    function foo() {
        return "foo!\n";
    }

    function bar() {
        return "bar!\n";
    }
}

// Remove the 'foo' method
runkit_method_remove(
    'Example',
    'foo'
);

echo implode(' ', get_class_methods('Example'));

?>

Результат выполнения данного примера:

bar

Смотрите также

runkit_method_add()
runkit_method_copy()
runkit_method_redefine()
runkit_method_rename()
runkit_function_remove()

Пред. | Начало | След.
runkit_method_redefine | Уровень выше | runkit_method_rename


runkit_method_rename

(PECL)

runkit_method_rename -- Dynamically changes the name of the given method

Описание

bool runkit_method_rename ( string classname, string methodname, string newname )

Замечание: This function cannot be used to manipulate the currently running (or chained) method.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

classname

The class in which to rename the method

methodname

The name of the method to rename

newname

The new name to give to the renamed method

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. runkit_method_rename() example

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// Rename the 'foo' method to 'bar'
runkit_method_rename(
    'Example',
    'foo',
    'bar'
);

// output renamed function
echo Example::bar();
?>

Результат выполнения данного примера:

foo!

Смотрите также

runkit_method_add()
runkit_method_copy()
runkit_method_redefine()
runkit_method_remove()
runkit_function_rename()

Пред. | Начало | След.
runkit_method_remove | Уровень выше | runkit_sandbox_output_handler


runkit_sandbox_output_handler

(PECL)

runkit_sandbox_output_handler -- Specify a function to capture and/or process output from a runkit sandbox

Описание

mixed runkit_sandbox_output_handler ( object sandbox [, mixed callback] )

Ordinarily, anything output (such as with echo() or print()) will be output as though it were printed from the parent's scope. Using runkit_sandbox_output_handler() however, output generated by the sandbox (including errors), can be captured by a function outside of the sandbox.

Замечание: Sandbox support (required for runkit_lint(), runkit_lint_file(), and the Runkit_Sandbox class) is only available with PHP 5.1 or specially patched versions of PHP 5.0 and requires that thread safety be enabled. See the README file included in the runkit package for more information.

Deprecated: As of runkit version 0.5, this function is deprecated and is scheduled to be removed from the package prior to a 1.0 release. The output handler for a given Runkit_Sandbox instance may be read/set using the array offset syntax shown on the Runkit_Sandbox class definition page.

Список параметров

sandbox

Object instance of Runkit_Sandbox class on which to set output handling.

callback

Name of a function which expects one parameter. Output generated by sandbox will be passed to this callback. Anything returned by the callback will be displayed normally. If this parameter is not passed then output handling will not be changed. If a non-truth value is passed, output handling will be disabled and will revert to direct display.

Возвращаемые значения

Returns the name of the previously defined output handler callback, or FALSE if no handler was previously defined.

Примеры

Пример 1. Feeding output to a variable

<?php
function capture_output($str) {
  $GLOBALS['sandbox_output'] .= $str;

  return '';
}

$sandbox_output = '';

$php = new Runkit_Sandbox();
runkit_sandbox_output_handler($php, 'capture_output');
$php->echo("Hello\n");
$php->eval('var_dump("Excuse me");');
$php->die("I lost myself.");
unset($php);

echo "Sandbox Complete\n\n";
echo $sandbox_output;
?>

Результат выполнения данного примера:

Sandbox Complete

Hello
string(9) "Excuse me"
I lost myself.

Пред. | Начало | След.
runkit_method_rename | Уровень выше | runkit_superglobals


runkit_superglobals

(PECL)

runkit_superglobals -- Return numerically indexed array of registered superglobals

Описание

array runkit_superglobals ( void )

Возвращаемые значения

Returns a numerically indexed array of the currently registered superglobals. i.e. _GET, _POST, _REQUEST, _COOKIE, _SESSION, _SERVER, _ENV, _FILES

Смотрите также

Variable Scope

Пред. | Начало | След.
runkit_sandbox_output_handler | Уровень выше | Satellite CORBA client extension [deprecated]


satellite_caught_exception

(4.0.3 - 4.1.2 only, PECL)

satellite_caught_exception -- See if an exception was caught from the previous function

Описание

bool satellite_caught_exception ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Возвращаемые значения

This function returns TRUE if an exception has been caught, FALSE otherwise.

Примеры

Пример 1. Sample IDL file

/* ++?????++ Out of Cheese Error. Redo From Start. */
exception OutOfCheeseError {
    int parameter;
}

interface AnotherInterface {
    void AskWhy() raises (OutOfCheeseError);
}

Пример 2. PHP code for handling CORBA exceptions

<?php
$obj = new OrbitObject ($ior);

$obj->AskWhy();

if (satellite_caught_exception()) {
    if ("IDL:OutOfCheeseError:1.0" == satellite_exception_id()) {
        $exception = satellite_exception_value();
        echo $exception->parameter;
    }
}
?>

Пред. | Начало | След.
OrbitStruct | Уровень выше | satellite_exception_id


satellite_exception_id

(4.0.3 - 4.1.2 only, PECL)

satellite_exception_id -- Get the repository id for the latest exception.

Описание

string satellite_exception_id ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

For example usage see satellite_caught_exception().

Возвращаемые значения

Return a repository id string. (E.g. "IDL:MyException:1.0".)

Пред. | Начало | След.
satellite_caught_exception | Уровень выше | satellite_exception_value


satellite_exception_value

(4.0.3 - 4.1.2 only, PECL)

satellite_exception_value -- Get the exception struct for the latest exception

Описание

OrbitStruct satellite_exception_value ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Return an exception struct. For example usage see satellite_caught_exception().

Пред. | Начало | След.
satellite_exception_id | Уровень выше | satellite_get_repository_id


satellite_get_repository_id

(4.0.3 - 4.1.2 only, PECL)

satellite_get_repository_id -- NOT IMPLEMENTED

Описание

int satellite_get_repository_id ( object obj )

Not implemented.

Пред. | Начало | След.
satellite_exception_value | Уровень выше | satellite_load_idl


satellite_load_idl

(4.0.3 - 4.1.2 only, PECL)

satellite_load_idl -- Instruct the type manager to load an IDL file

Описание

bool satellite_load_idl ( string file )

Load an IDL file into Satellite.

Пред. | Начало | След.
satellite_get_repository_id | Уровень выше | satellite_object_to_string


satellite_object_to_string

(4.1.0 - 4.1.2 only, PECL)

satellite_object_to_string -- Convert an object to its string representation

Описание

string satellite_object_to_string ( object obj )

Convert an object to its string representation (IOR).

Пред. | Начало | След.
satellite_load_idl | Уровень выше | SDO Functions


SDO_DAS_ChangeSummary::beginLogging

(no version information, might be only in CVS)

SDO_DAS_ChangeSummary::beginLogging -- Begin change logging.

Описание

void SDO_DAS_ChangeSummary::beginLogging ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Begin logging changes made to the SDO_DataObject.

Список параметров

None.

Возвращаемые значения

None.

Пред. | Начало | След.
SDO Functions | Уровень выше | SDO_DAS_ChangeSummary::endLogging


SDO_DAS_ChangeSummary::endLogging

(no version information, might be only in CVS)

SDO_DAS_ChangeSummary::endLogging -- End change logging.

Описание

void SDO_DAS_ChangeSummary::endLogging ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

End logging changes made to an SDO_DataObject.

Список параметров

None.

Возвращаемые значения

None.

Пред. | Начало | След.
SDO_DAS_ChangeSummary::beginLogging | Уровень выше | SDO_DAS_ChangeSummary::getChangeType


SDO_DAS_ChangeSummary::getChangedDataObjects

(no version information, might be only in CVS)

SDO_DAS_ChangeSummary::getChangedDataObjects -- Get the changed data objects from a change summary.

Описание

SDO_List SDO_DAS_ChangeSummary::getChangedDataObjects ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get an SDO_List of the SDO_DataObjects which have been changed. These data objects can then be used to identify the types of change made to each, along with the old values.

Список параметров

None.

Возвращаемые значения

Returns an SDO_List of SDO_DataObjects.

Пред. | Начало | След.
SDO_DAS_ChangeSummary::getChangeType | Уровень выше | SDO_DAS_ChangeSummary::getOldContainer


SDO_DAS_ChangeSummary::getChangeType

(no version information, might be only in CVS)

SDO_DAS_ChangeSummary::getChangeType -- Get the type of change made to an SDO_DataObject.

Описание

int SDO_DAS_ChangeSummary::getChangeType ( SDO_DataObject dataObject )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get the type of change which has been made to the supplied SDO_DataObject.

Список параметров

dataObject

The SDO_DataObject which has been changed.

Возвращаемые значения

The type of change which has been made. The change type is expressed as an enumeration and will be one of the following four values:

  • SDO_DAS_ChangeSummary::NONE

  • SDO_DAS_ChangeSummary::MODIFICATION

  • SDO_DAS_ChangeSummary::ADDITION

  • SDO_DAS_ChangeSummary::DELETION

Пред. | Начало | След.
SDO_DAS_ChangeSummary::endLogging | Уровень выше | SDO_DAS_ChangeSummary::getChangedDataObjects


SDO_DAS_ChangeSummary::getOldContainer

(no version information, might be only in CVS)

SDO_DAS_ChangeSummary::getOldContainer -- Get the old container for a deleted SDO_DataObject.

Описание

SDO_DataObject SDO_DAS_ChangeSummary::getOldContainer ( SDO_DataObject dataObject )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get the old container (SDO_DataObject) for a deleted SDO_DataObject.

Список параметров

dataObject

The SDO_DataObject which has been deleted and whose container we wish to identify.

Возвращаемые значения

The old containing data object of the deleted SDO_DataObject.

Пред. | Начало | След.
SDO_DAS_ChangeSummary::getChangedDataObjects | Уровень выше | SDO_DAS_ChangeSummary::getOldValues


SDO_DAS_ChangeSummary::getOldValues

(no version information, might be only in CVS)

SDO_DAS_ChangeSummary::getOldValues -- Get the old values for a given changed SDO_DataObject.

Описание

SDO_List SDO_DAS_ChangeSummary::getOldValues ( SDO_DataObject dataObject )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get a list of the old values for a given changed SDO_DataObject. Returns a list of SDO_DAS_Settings describing the old values for the changed properties of the SDO_DataObject.

Список параметров

dataObject

The data object which has been changed.

Возвращаемые значения

A list of SDO_DAS_Settings describing the old values for the changed properties of the SDO_DataObject

Пред. | Начало | След.
SDO_DAS_ChangeSummary::getOldContainer | Уровень выше | SDO_DAS_ChangeSummary::isLogging


SDO_DAS_ChangeSummary::isLogging

(no version information, might be only in CVS)

SDO_DAS_ChangeSummary::isLogging -- Test to see whether change logging is switched on.

Описание

bool SDO_DAS_ChangeSummary::isLogging ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Test to see whether change logging is switched on.

Список параметров

None.

Возвращаемые значения

Returns TRUE if change logging is on, otherwise returns FALSE.

Пред. | Начало | След.
SDO_DAS_ChangeSummary::getOldValues | Уровень выше | SDO_DAS_DataFactory::addPropertyToType


SDO_DAS_DataFactory::addPropertyToType

(no version information, might be only in CVS)

SDO_DAS_DataFactory::addPropertyToType -- Adds a property to a type.

Описание

void SDO_DAS_DataFactory::addPropertyToType ( string parentNamespaceURI, string parentTypeName, string propertyName, string propertyNamespaceURI, string propertyTypeName [, array options] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Adds a property to a type. The type must already be known to the SDO_DAS_DataFactory (i.e. have been added using addType()). The property becomes a property of the type. This is how the graph model for the structure of an SDO_DataObject is built.

Список параметров

parentNamespaceURI

The namespace URI for the parent type.

parentTypeName

The type name for the parent type.

propertyName

The name by which the property will be known in the parent type.

propertyNamespaceURI

The namespace URI for the type of the property.

propertyTypeName

The type name for the type of the property

options

This array holds one or more key=>value pairs to set attribute values for the property. The optional keywords are:

many

A flag to say whether the property is many-valued. A value of 'true' adds the property as a many-valued property (default is 'false').

readOnly

A flag to say whether the property is read-only. A value of 'true' means the property value cannot be modified through the SDO application APIs (default is 'false').

containment

A flag to say whether the property is contained by the parent. A value of 'true' means the property is contained by the parent. A value of 'false' results in a non-containment reference (default is 'true'). This flag is only interpreted when adding properties which are data object types, otherwise it is ignored.

default

A default value for the property. Omitting this key means that the property does not have a default value. A property can only have a default value if it is a single-valued data type (primitive).

Возвращаемые значения

None.

Список изменений

Версия | Описание
0.5.2 | Optional parameters many, readOnly, and containment deprecated in favour of the options array.

Примеры

Пример 1. A SDO_DAS_DataFactory::addPropertyToType() example

The following adds an 'addressline' property to a Person type. The person type is identified by its namespace, 'PersonNS', and type name, 'PersonType'. The type of the 'addressline' property is a many-valued SDO data type (primitive) with namespace 'commonj.sdo' and type name 'String'.

<?php
  $df->addPropertyToType('PersonNS', 'PersonType',
    'addressline', 'commonj.sdo', 'String', array('many'=>true));
?>

Пред. | Начало | След.
SDO_DAS_ChangeSummary::isLogging | Уровень выше | SDO_DAS_DataFactory::addType


SDO_DAS_DataFactory::addType

(no version information, might be only in CVS)

SDO_DAS_DataFactory::addType -- Add a new type to a model.

Описание

void SDO_DAS_DataFactory::addType ( string namespaceURI, string typeName )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Add a new type to the SDO_DAS_DataFactory, defined by its namespace and type name. The type becomes part of the model of data objects that the data factory can create.

Список параметров

namespaceURI

The namespace of the type.

typeName

The name of the type.

Возвращаемые значения

No values returned.

Примеры

Пример 1. A SDO_DAS_DataFactory::addType() example

The following adds a new data object type of 'CompanyType' where that type belongs to the namespace 'CompanyNS'.

<?php
  $df->addType('CompanyNS', 'CompanyType');
?>

Пред. | Начало | След.
SDO_DAS_DataFactory::addPropertyToType | Уровень выше | SDO_DAS_DataFactory::getDataFactory


SDO_DAS_DataFactory::getDataFactory

(no version information, might be only in CVS)

SDO_DAS_DataFactory::getDataFactory -- Get a data factory instance.

Описание

SDO_DAS_DataFactory SDO_DAS_DataFactory::getDataFactory ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Static method to get an instance of an SDO_DAS_DataFactory. This instance is initially only configured with the basic SDO types. A Data Access Service is responsible for populating the data factory model and then allowing PHP applications to create SDOs based on the model through the SDO_DataFactory interface. PHP applications should always obtain a data factory from a configured Data Access Service, not through this interface.

Список параметров

None.

Возвращаемые значения

Returns an SDO_DAS_DataFactory.

Пред. | Начало | След.
SDO_DAS_DataFactory::addType | Уровень выше | SDO_DAS_DataObject::getChangeSummary


SDO_DAS_DataObject::getChangeSummary

(no version information, might be only in CVS)

SDO_DAS_DataObject::getChangeSummary -- Get a data object's change summary.

Описание

SDO_DAS_ChangeSummary SDO_DAS_DataObject::getChangeSummary ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get the SDO_DAS_ChangeSummary for an SDO_DAS_DataObject, or NULL if it does not have one.

Список параметров

None.

Возвращаемые значения

Returns the SDO_DAS_ChangeSummary for an SDO_DAS_DataObject, or NULL if it does not have one.

Пред. | Начало | След.
SDO_DAS_DataFactory::getDataFactory | Уровень выше | SDO_DAS_Setting::getListIndex


SDO_DAS_Relational::applyChanges

(no version information, might be only in CVS)

SDO_DAS_Relational::applyChanges -- Applies the changes made to a data graph back to the database.

Описание

void SDO_DAS_Relational::applyChanges ( PDO database_handle, SDODataObject root_data_object )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Given a PDO database handle and the special root object of a data graph, examine the change summary in the datagraph and applies the changes to the database. The changes that it can apply can be creations of data objects, deletes of data objects, and modifications to properties of data objects.

Список параметров

PDO_database_handle

Constructed using the PDO extension. A typical line to construct a PDO database handle might look like this:
$dbh = new PDO("mysql:dbname=COMPANYDB;host=localhost",DATABASE_USER,DATABASE_PASSWORD);

root_data_object

The special root object which is at the top of every SDO data graph.

Возвращаемые значения

None. Note however that the datagraph that was passed is still intact and usable. Furthermore, if data objects were created and written back to a table with autogenerated primary keys, then those primary keys will now be set in the data objects. If the changes were successfully written, then the change summary associated with the datagraph will have been cleared, so that it is possible to now make further changes to the data graph and apply those changes in turn. In this way it is possible to work with the same data graph and apply changes repeatedly.

Исключения

SDO_DAS_Relational::applyChanges() can throw an SDO_DAS_Relational_Exception if it is unable to apply all the changes correctly.

The Relational DAS starts a database transaction before beginning to apply the changes and will commit the transaction only if they are all successful. The Relational DAS generates qualified update and delete statements which contain a where clause that specifies that the row to be updated or deleted must contain the same values that it did when the data was first retrieved. This is how the the optimistic concurrency is implemented. If any of the qualified update or delete statements fails to update or delete their target row, it may be because the data has been altered in the database in the meantime. In any event, if any update fails for any reason, the transaction is rolled back and an exception thrown. The exception will contain the generated SQL statement that failed.

The Relational DAS also catches any PDO exceptions and obtains PDO diagnostic information which it includes in an SDO_DAS_Relational_Exception which it then throws.

Примеры

Please see the Examples section in the general information about the Relational DAS for many examples of calling this method. Please see also the section on Tracing to see how you can see what SQL statements are generated by the Relational DAS.

Пред. | Начало | След.
SDO Relational Data Access Service Functions | Уровень выше | SDO_DAS_Relational::__construct


SDO_DAS_Relational::__construct

(no version information, might be only in CVS)

SDO_DAS_Relational::__construct -- Creates an instance of a Relational Data Access Service

Описание

SDO_DAS_Relational SDO_DAS_Relational::__construct ( array database_metadata [, string application_root_type [, array SDO_containment_references_metadata]] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Constructs an instance of a Relational Data Access Service from the passed metadata.

Список параметров

database_metadata

An array containing one or more table definitions, each of which is an associative array containing the keys name, columns, PK, and optionally, FK. For a full discussion of the metadata, see the metadata section in the general information about the Relational DAS.

application_root_type

The root of each data graph is an object of a special root type and the application data objects come below that. Of the various application types in the SDO model, one has to be the the application type immediately below the root of the data graph. If there is only one table in the database metadata, so the application root type can be inferred, this argument can be omitted.

SDO_containment_references_metadata

An array containing one or more definitions of a containment relation, each of which is an associative array containing the keys parent and child. The containment relations describe how the types in the model are connected to form a tree. The type specified as the application root type must be present as one of the parent types in the containment references. If the application only needs to work with one table at a time, and there are no containment relations in the model, this argument can be omitted. For a full discussion of the metadata, see the metadata section in the general information about the Relational DAS.

Возвращаемые значения

Returns an SDO_DAS_Relational object on success.

Исключения

SDO_DAS_Relational::__construct() throws a SDO_DAS_Relational_Exception if any problems are found in the metadata.

Примеры

For a full discussion of the metadata, see the metadata section in the general information about the Relational DAS.

Пред. | Начало | След.
SDO_DAS_Relational::applyChanges | Уровень выше | SDO_DAS_Relational::createRootDataObject


SDO_DAS_Relational::createRootDataObject

(no version information, might be only in CVS)

SDO_DAS_Relational::createRootDataObject -- Returns the special root object in an otherwise empty data graph. Used when creating a data graph from scratch.

Описание

SDODataObject SDO_DAS_Relational::createRootDataObject ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the special root object at the top of an otherwise empty data graph. This call is used when the application wants to create a data graph from scratch, without having called executeQuery() to create a data graph.

The special root object has one multi-valued containment property, with a name of the application root type that was passed when the Relational DAS was constructed. The property can take values of only that type. The only thing that the application can usefully do with the root type is to call createDataObject() on it, passing the name of the application root type, in order to create a data object of their own application type.

Список параметров

None.

Возвращаемые значения

The root object.

Исключения

None.

Примеры

Please see the Examples section in the general information about the Relational DAS for many examples of calling this method.

Пред. | Начало | След.
SDO_DAS_Relational::__construct | Уровень выше | SDO_DAS_Relational::executePreparedQuery


SDO_DAS_Relational::executePreparedQuery

(no version information, might be only in CVS)

SDO_DAS_Relational::executePreparedQuery -- Executes an SQL query passed as a prepared statement, with a list of values to substitute for placeholders, and return the results as a normalised data graph.

Описание

SDODataObject SDO_DAS_Relational::executePreparedQuery ( PDO database_handle, PDOStatement prepared_statement, array value_list [, array column_specifier] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Executes a given query against the relational database, using the supplied PDO database handle. Differs from the simpler executeQuery() in that it takes a prepared statement and a list of values. This is the appropriate call to use either when the statement is to executed a number of times with different arguments, and there is therefore a performance benefit to be had from preparing the statement only once, or when the the SQL statement is to contain varying values taken from a source that cannot be completely trusted. In this latter case it may be unsafe to construct the SQL statement by simply concatenating the parts of the statement together, since the values may contain pieces of SQL. To guard against this, a so-called SQL injection attack, it is safer to prepare the SQL statement with placeholders (also known as parameter markers, denoted by '?') and supply a list of the values to be substituted as a separate argument. Otherwise this function is the same as executeQuery() in that it uses the model that it built from the the metadata to interpret the result set and returns a data graph.

Список параметров

PDO_database_handle

Constructed using the PDO extension. A typical line to construct a PDO database handle might look like this:
$dbh = new PDO("mysql:dbname=COMPANYDB;host=localhost",DATABASE_USER,DATABASE_PASSWORD);

prepared_statement

A prepared SQL statement to be executed against the database. This will have been prepared by PDO's prepare() method.

value_list

An array of the values to be substituted into the SQL statement in place of the placeholders. In the event that there are no placeholders or parameter markers in the SQL statement then this argument can be specified as NULL or as an empty array;

column_specifier

The Relational DAS needs to examine the result set and for every column, know which table and which column of that table it came from. In some circumstances it can find this information for itself, but sometimes it cannot. In these cases a column specifier is needed, which is an array that identifies the columns. Each entry in the array is simply a string in the form table-name.column_name.

The column specifier is needed when there are duplicate column names in the database metadata, For example, in the database used within the examples, all the tables have both a id and a name column. When the Relational DAS fetches the result set from PDO it can do so with the PDO_FETCH_ASSOC attribute, which will cause the columns in the results set to be labelled with the column name, but will not distinguish duplicates. So this will only work when there are no duplicates possible in the results set.

To summarise, specify a column specifier array whenever there is any uncertainty about which column could be from which table and only omit it when every column name in the database metadata is unique.

All of the examples in the Examples use a column specifier. There is one example in the Scenarios directory of the installation that does not: that which works with just the employee table, and because it works with just one table, there can not exist duplicate column names.

Возвращаемые значения

Returns a data graph. Specifically, it returns a root object of a special type. Under this root object will be the data from the result set. The root object will have a multi-valued containment property with the same name as the application root type specified on the constructor, and that property will contain one or more data objects of the application root type.

In the event that the query returns no data, the special root object will still be returned but the containment property for the application root type will be empty.

Исключения

SDO_DAS_Relational::executeQuery() can throw an SDO_DAS_Relational_Exception if it is unable to construct the data graph correctly. This can occur for a number of reasons: for example if it finds that it does not have primary keys in the result set for all the objects. It also catches any PDO exceptions and obtains PDO diagnostic information which it includes in an SDO_DAS_Relational_Exception which it then throws.

Примеры

Пример 1. Retrieving a data object using executePreparedQuery()

In this example a single data object is retrieved from the database - or possibly more than one if there is more than one company called 'Acme'. For each company returned, the name and id properties are echoed.

Other examples of the use of executePreparedQuery() can be found in the example code supplied in sdo/DAS/Relational/Scenarios .

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
 * Construct the DAS with the metadata
 ***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_reference_metadata);

/**************************************************************
 * Get a database connection
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

/**************************************************************
 * Issue a query to obtain a company object - possibly more if they exist
 * Use a prepared query with a placeholder.
 ***************************************************************/
$name = 'Acme';
$pdo_stmt = $dbh->prepare('select name, id from company where name=?');
$root = $das->executePreparedQuery(
    $dbh,
    $pdo_stmt,
    array($name),
    array('company.name', 'company.id'));

/**************************************************************
 * Echo name and id
 ***************************************************************/
foreach ($root['company'] as $company) {
    echo "Company obtained from the database has name = " .
    $company['name'] . " and id " . $company['id'] . "\n";
}
?>

Пред. | Начало | След.
SDO_DAS_Relational::createRootDataObject | Уровень выше | SDO_DAS_Relational::executeQuery


SDO_DAS_Relational::executeQuery

(no version information, might be only in CVS)

SDO_DAS_Relational::executeQuery -- Executes a given SQL query against a relational database and returns the results as a normalised data graph.

Описание

SDODataObject SDO_DAS_Relational::executeQuery ( PDO database_handle, string SQL_statement [, array column_specifier] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Executes a given query against the relational database, using the supplied PDO database handle. Uses the model that it built from the the metadata to interpret the result set. Returns a data graph.

Список параметров

PDO_database_handle

Constructed using the PDO extension. A typical line to construct a PDO database handle might look like this:
$dbh = new PDO("mysql:dbname=COMPANYDB;host=localhost",DATABASE_USER,DATABASE_PASSWORD);

SQL_statement

The SQL statement to be executed against the database.

column_specifier

The Relational DAS needs to examine the result set and for every column, know which table and which column of that table it came from. In some circumstances it can find this information for itself, but sometimes it cannot. In these cases a column specifier is needed, which is an array that identifies the columns. Each entry in the array is simply a string in the form table-name.column_name.

The column specifier is needed when there are duplicate column names in the database metadata. For example, in the database used within the examples, all the tables have both a id and a name column. When the Relational DAS fetches the result set from PDO it can do so with the PDO_FETCH_ASSOC attribute, which will cause the columns in the results set to be labelled with the column name, but will not distinguish duplicates. So this will only work when there are no duplicates possible in the results set.

To summarise, specify a column specifier array whenever there is any uncertainty about which column could be from which table and only omit it when every column name in the database metadata is unique.

All of the examples in the Examples use a column specifier. There is one example in the Scenarios directory of the installation that does not: that which works with just the employee table, and because it works with just one table, there can not exist duplicate column names.

Возвращаемые значения

Returns a data graph. Specifically, it returns a root object of a special type. Under this root object will be the data from the result set. The root object will have a multi-valued containment property with the same name as the application root type specified on the constructor, and that property will contain one or more data objects of the application root type.

In the event that the query returns no data, the special root object will still be returned but the containment property for the application root type will be empty.

Исключения

SDO_DAS_Relational::executeQuery() can throw an SDO_DAS_Relational_Exception if it is unable to construct the data graph correctly. This can occur for a number of reasons: for example if it finds that it does not have primary keys in the result set for all the objects. It also catches any PDO exceptions and obtains PDO diagnostic information which it includes in an SDO_DAS_Relational_Exception which it then throws.

Примеры

Please see the Examples section in the general information about the Relational DAS for many examples of calling this method.

Пред. | Начало | След.
SDO_DAS_Relational::executePreparedQuery | Уровень выше | Semaphore, Shared Memory and IPC Functions


SDO_DAS_Setting::getListIndex

(no version information, might be only in CVS)

SDO_DAS_Setting::getListIndex -- Get the list index for a changed many-valued property.

Описание

int SDO_DAS_Setting::getListIndex ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get the list index for a modification made to an element of a many-valued property. For example, if we modified the third element of a many-valued property we could obtain an SDO_DAS_Setting from the change summary corresponding to that modification. A call to getListIndex() on that setting would return the value 2 (lists are indexed from zero).

Список параметров

None.

Возвращаемые значения

The list index for the element of the many-valued property which has been changed.

Пред. | Начало | След.
SDO_DAS_DataObject::getChangeSummary | Уровень выше | SDO_DAS_Setting::getPropertyIndex


SDO_DAS_Setting::getPropertyIndex

(no version information, might be only in CVS)

SDO_DAS_Setting::getPropertyIndex -- Get the property index for a changed property.

Описание

int SDO_DAS_Setting::getPropertyIndex ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the property index for the changed property. This index identifies the property which was modified in data object.

Список параметров

None.

Возвращаемые значения

The property index for a changed property.

Пред. | Начало | След.
SDO_DAS_Setting::getListIndex | Уровень выше | SDO_DAS_Setting::getPropertyName


SDO_DAS_Setting::getPropertyName

(no version information, might be only in CVS)

SDO_DAS_Setting::getPropertyName -- Get the property name for a changed property.

Описание

string SDO_DAS_Setting::getPropertyName ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the property name for the changed property. This name identifies the property which was modified in data object.

Список параметров

None.

Возвращаемые значения

The property name for a changed property.

Пред. | Начало | След.
SDO_DAS_Setting::getPropertyIndex | Уровень выше | SDO_DAS_Setting::getValue


SDO_DAS_Setting::getValue

(no version information, might be only in CVS)

SDO_DAS_Setting::getValue -- Get the old value for the changed property.

Описание

mixed SDO_DAS_Setting::getValue ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the old value for the changed property. This can be used by a Data Access Service when writing updates to a data source. The DAS uses the old value to detect conflicts by comparing it with the current value in the data source. If they do not match, then the data source has been updated since the data object was originally populated, and therefore writing any new updates risks compromising the integrity of the data.

Список параметров

None.

Возвращаемые значения

Returns the old value of the changed property.

Пред. | Начало | След.
SDO_DAS_Setting::getPropertyName | Уровень выше | SDO_DAS_Setting::isSet


SDO_DAS_Setting::isSet

(no version information, might be only in CVS)

SDO_DAS_Setting::isSet -- Test whether a property was set prior to being modified.

Описание

bool SDO_DAS_Setting::isSet ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Test whether a property was set prior to being modified. If it was set prior to being modified then the SDO_DAS_Setting will also contain the old value.

Список параметров

None.

Возвращаемые значения

Returns TRUE if the property was set prior to being modified, otherwise returns FALSE.

Пред. | Начало | След.
SDO_DAS_Setting::getValue | Уровень выше | SDO_DataFactory::create


SDO_DAS_XML::create

(no version information, might be only in CVS)

SDO_DAS_XML::create -- To create SDO_DAS_XML object for a given schema file.

Описание

SDO_DAS_XML SDO_DAS_XML::create ( string xsd_file )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

This is the only static method of SDO_DAS_XML class. Used to instantiate SDO_DAS_XML object.

Список параметров

xsd_file

Path to XSD Schema file.

Возвращаемые значения

Returns SDO_DAS_XML object on success otherwise throws an exception as described below.

Исключения

SDO_TypeNotFoundException

Thrown if a type is not defined in the underlying model.

SDO_DAS_XML_ParserException

Thrown for any symantical problems while parsing the given XSD File.

Пред. | Начало | След.
SDO_DAS_XML_Document::setXMLVersion | Уровень выше | SDO_DAS_XML::createDataObject


SDO_DAS_XML::createDataObject

(no version information, might be only in CVS)

SDO_DAS_XML::createDataObject -- Creates SDO_DataObject for a given namespace URI and type name.

Описание

SDO_DataObject SDO_DAS_XML::createDataObject ( string namespace_uri, string type_name )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Creates SDO_DataObject for a given namespace URI and type name. The type should be defined in the underlying model otherwise SDO_TypeNotFoundException will be thrown.

Список параметров

namespace_uri

Namespace URI of the type name.

type_name

Type Name.

Возвращаемые значения

Returns SDO_DataObject on success.

Исключения

SDO_TypeNotFoundException

Thrown if a type is not defined in the underlying model.

Пред. | Начало | След.
SDO_DAS_XML::create | Уровень выше | SDO_DAS_XML::loadFromFile


SDO_DAS_XML_Document::getEncoding

(no version information, might be only in CVS)

SDO_DAS_XML_Document::getEncoding -- Returns encoding string.

Описание

string SDO_DAS_XML_Document::getEncoding ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the encoding string for the SDO_DAS_XML_Document object.

Список параметров

Возвращаемые значения

Returns the encoding string.

Пред. | Начало | След.
SDO XML Data Access Service Functions | Уровень выше | SDO_DAS_XML_Document::getNoNamespaceSchemaLocation


SDO_DAS_XML_Document::getNoNamespaceSchemaLocation

(no version information, might be only in CVS)

SDO_DAS_XML_Document::getNoNamespaceSchemaLocation -- Returns no namespace schema location.

Описание

string SDO_DAS_XML_Document::getNoNamespaceSchemaLocation ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the no namespace schema location.

Список параметров

Возвращаемые значения

Returns no namespace schema location.

Пред. | Начало | След.
SDO_DAS_XML_Document::getEncoding | Уровень выше | SDO_DAS_XML_Document::getRootDataObject


SDO_DAS_XML_Document::getRootDataObject

(no version information, might be only in CVS)

SDO_DAS_XML_Document::getRootDataObject -- Returns the root SDO_DataObject.

Описание

SDO_DataObject SDO_DAS_XML_Document::getRootDataObject ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the root SDO_DataObject.

Список параметров

Возвращаемые значения

Returns the root SDO_DataObject.

Пред. | Начало | След.
SDO_DAS_XML_Document::getNoNamespaceSchemaLocation | Уровень выше | SDO_DAS_XML_Document::getRootElementName


SDO_DAS_XML_Document::getRootElementName

(no version information, might be only in CVS)

SDO_DAS_XML_Document::getRootElementName -- Returns root element's name.

Описание

string SDO_DAS_XML_Document::getRootElementName ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns root element's name.

Список параметров

Возвращаемые значения

Returns root element's name.

Пред. | Начало | След.
SDO_DAS_XML_Document::getRootDataObject | Уровень выше | SDO_DAS_XML_Document::getRootElementURI


SDO_DAS_XML_Document::getRootElementURI

(no version information, might be only in CVS)

SDO_DAS_XML_Document::getRootElementURI -- Returns root element's URI string.

Описание

string SDO_DAS_XML_Document::getRootElementURI ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns root element's URI string.

Список параметров

Возвращаемые значения

Returns root element's URI string.

Пред. | Начало | След.
SDO_DAS_XML_Document::getRootElementName | Уровень выше | SDO_DAS_XML_Document::getSchemaLocation


SDO_DAS_XML_Document::getSchemaLocation

(no version information, might be only in CVS)

SDO_DAS_XML_Document::getSchemaLocation -- Returns schema location.

Описание

string SDO_DAS_XML_Document::getSchemaLocation ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns schema location.

Список параметров

Возвращаемые значения

Returns schema location.

Пред. | Начало | След.
SDO_DAS_XML_Document::getRootElementURI | Уровень выше | SDO_DAS_XML_Document::getXMLDeclaration


SDO_DAS_XML_Document::getXMLDeclaration

(no version information, might be only in CVS)

SDO_DAS_XML_Document::getXMLDeclaration -- Returns whether the xml declaration is set or not.

Описание

bool SDO_DAS_XML_Document::getXMLDeclaration ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns whether the xml declaration is set or not.

Список параметров

Возвращаемые значения

Returns whether the xml declaration is set or not. TRUE If it is set and FALSE if it is not.

Пред. | Начало | След.
SDO_DAS_XML_Document::getSchemaLocation | Уровень выше | SDO_DAS_XML_Document::getXMLVersion


SDO_DAS_XML_Document::getXMLVersion

(no version information, might be only in CVS)

SDO_DAS_XML_Document::getXMLVersion -- Returns xml declaration string.

Описание

string SDO_DAS_XML_Document::getXMLVersion ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns xml declaration string.

Список параметров

Возвращаемые значения

Returns xml declaration string.

Пред. | Начало | След.
SDO_DAS_XML_Document::getXMLDeclaration | Уровень выше | SDO_DAS_XML_Document::setEncoding


SDO_DAS_XML_Document::setEncoding

(no version information, might be only in CVS)

SDO_DAS_XML_Document::setEncoding -- Sets the given string as encoding.

Описание

void SDO_DAS_XML_Document::setEncoding ( string encoding )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets the given string as encoding.

Список параметров

encoding

Encoding string.

Возвращаемые значения

None.

Пред. | Начало | След.
SDO_DAS_XML_Document::getXMLVersion | Уровень выше | SDO_DAS_XML_Document::setNoNamespaceSchemaLocation


SDO_DAS_XML_Document::setNoNamespaceSchemaLocation

(no version information, might be only in CVS)

SDO_DAS_XML_Document::setNoNamespaceSchemaLocation -- Sets the given string as no namespace schema location.

Описание

void SDO_DAS_XML_Document::setNoNamespaceSchemaLocation ( string nnschemaLocation )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets the given string as no namespace schema location.

Список параметров

nnschemaLocation

no namespace schema location.

Возвращаемые значения

None.

Пред. | Начало | След.
SDO_DAS_XML_Document::setEncoding | Уровень выше | SDO_DAS_XML_Document::setSchemaLocation


SDO_DAS_XML_Document::setSchemaLocation

(no version information, might be only in CVS)

SDO_DAS_XML_Document::setSchemaLocation -- Sets the given string as schema location.

Описание

void SDO_DAS_XML_Document::setSchemaLocation ( string schemaLocation )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets the given string as schema location.

Список параметров

schemaLocation

schema location.

Возвращаемые значения

None.

Пред. | Начало | След.
SDO_DAS_XML_Document::setNoNamespaceSchemaLocation | Уровень выше | SDO_DAS_XML_Document::setXMLDeclaration


SDO_DAS_XML_Document::setXMLDeclaration

(no version information, might be only in CVS)

SDO_DAS_XML_Document::setXMLDeclaration -- Sets the xml declaration.

Описание

void SDO_DAS_XML_Document::setXMLDeclaration ( bool xmlDeclatation )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets the given given boolean value for xml declaration. Pass TRUE to set it and FLASE to not to unset it.

Список параметров

xmlDeclatation

boolean value to set the XML declaration.

Возвращаемые значения

None.

Пред. | Начало | След.
SDO_DAS_XML_Document::setSchemaLocation | Уровень выше | SDO_DAS_XML_Document::setXMLVersion


SDO_DAS_XML_Document::setXMLVersion

(no version information, might be only in CVS)

SDO_DAS_XML_Document::setXMLVersion -- Sets the given string as xml version.

Описание

void SDO_DAS_XML_Document::setXMLVersion ( string xmlVersion )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets the given string as xml version.

Список параметров

xmlVersion

xml version string.

Возвращаемые значения

None.

Пред. | Начало | След.
SDO_DAS_XML_Document::setXMLDeclaration | Уровень выше | SDO_DAS_XML::create


SDO_DAS_XML::loadFromFile

(no version information, might be only in CVS)

SDO_DAS_XML::loadFromFile -- Returns SDO_DAS_XML_Document object for a given path to xml instance document.

Описание

SDO_XMLDocument SDO_DAS_XML::loadFromFile ( string xml_file )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Constructs the tree of SDO_DataObjects from the given address to xml instance document. Returns SDO_DAS_XML_Document Object. Use SDO_DAS_XML_Document::getRootDataObject method to get root data object.

Список параметров

xml_file

Path to Instance document. This can be a path to a local file or it can be a URL.

Возвращаемые значения

Returns SDO_DAS_XML_Document object on Success or throws exception as described.

Исключения

SDO_TypeNotFoundException

Thrown if a type is not defined by the underlying model.

SDO_PropertyNotFoundException

Thrown if the a property within a type is not defined in the underlying model.

SDO_DAS_XML_ParserException

Thrown for any symantical problems while parsing the given XSD File.

Пред. | Начало | След.
SDO_DAS_XML::createDataObject | Уровень выше | SDO_DAS_XML::loadFromString


SDO_DAS_XML::loadFromString

(no version information, might be only in CVS)

SDO_DAS_XML::loadFromString -- Returns SDO_DAS_XML_Document for a given xml instance string.

Описание

SDO_DAS_XML_Document SDO_DAS_XML::loadFromString ( string xml_string )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Constructs the tree of SDO_DataObjects from the given xml instance string. Returns SDO_DAS_XML_Document Object. Use SDO_DAS_XML_Document::getRootDataObject method to get root data object.

Список параметров

xml_string

xml string.

Возвращаемые значения

Returns SDO_DAS_XML_Document object on Success or throws exception as described.

Исключения

SDO_TypeNotFoundException

Thrown if a type is not defined by the underlying model.

SDO_PropertyNotFoundException

Thrown if the a property within a type is not defined in the underlying model.

SDO_DAS_XML_ParserException

Thrown for any problems while parsing the given XSD File.

Пред. | Начало | След.
SDO_DAS_XML::loadFromFile | Уровень выше | SDO_DAS_XML::saveDataObjectToFile


SDO_DAS_XML::saveDataObjectToFile

(no version information, might be only in CVS)

SDO_DAS_XML::saveDataObjectToFile -- Saves the SDO_DataObject object to File.

Описание

void SDO_DAS_XML::saveDataObjectToFile ( SDO_DataObject do, string root_uri, string root_name, string xml_file )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Saves the SDO_DataObject object as an XML File.

Список параметров

do

DataObject, which needs to be saves as an XML File.

root_uri

URI string for the root DataObject.

root_name

Type name of the root DataObject.

Возвращаемые значения

None.

Пред. | Начало | След.
SDO_DAS_XML::loadFromString | Уровень выше | SDO_DAS_XML::saveDataObjectToString


SDO_DAS_XML::saveDataObjectToString

(no version information, might be only in CVS)

SDO_DAS_XML::saveDataObjectToString -- Saves the SDO_DataObject object to string.

Описание

string SDO_DAS_XML::saveDataObjectToString ( SDO_DataObject do, string root_uri, string root_name )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Saves the SDO_DataObject object as an XML string.

Список параметров

do

DataObject, which needs to be saves as an XML File.

root_uri

URI string for the root DataObject.

root_name

Type name of the root DataObject.

Возвращаемые значения

xml string

Пред. | Начало | След.
SDO_DAS_XML::saveDataObjectToFile | Уровень выше | SDO_DAS_XML::saveDocumentToFile


SDO_DAS_XML::saveDocumentToFile

(no version information, might be only in CVS)

SDO_DAS_XML::saveDocumentToFile -- Saves the SDO_DAS_XML_Document object to a file.

Описание

void SDO_DAS_XML::saveDocumentToFile ( SDO_XMLDocument xdoc, string xml_file )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Saves the SDO_DAS_XML_Document object to a file.

Список параметров

xdoc

SDO_DAS_XML_Document object.

xml_file

xml file.

Возвращаемые значения

Пред. | Начало | След.
SDO_DAS_XML::saveDataObjectToString | Уровень выше | SDO_DAS_XML::saveDocumentToString


SDO_DAS_XML::saveDocumentToString

(no version information, might be only in CVS)

SDO_DAS_XML::saveDocumentToString -- Saves the SDO_DAS_XML_Document object to a string.

Описание

string SDO_DAS_XML::saveDocumentToString ( SDO_XMLDocument xdoc )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Saves the SDO_DAS_XML_Document object to string.

Список параметров

xdoc

SDO_DAS_XML_Document object.

Возвращаемые значения

xml string.

Пред. | Начало | След.
SDO_DAS_XML::saveDocumentToFile | Уровень выше | SDO Relational Data Access Service Functions


SDO_DataFactory::create

(no version information, might be only in CVS)

SDO_DataFactory::create -- Create an SDO_DataObject.

Описание

void SDO_DataFactory::create ( string namespaceURI, string typeName )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Create a new SDO_DataObject given the data object's namespace URI and type name.

Список параметров

namespaceURI

The namespace of the type.

typeName

The name of the type.

Возвращаемые значения

Returns the newly created SDO_DataObject.

Исключения

SDO_TypeNotFoundException

Thrown if the namespaceURI and typeName do not correspond to a type known to this data factory.

Пред. | Начало | След.
SDO_DAS_Setting::isSet | Уровень выше | SDO_DataObject::clear


SDO_DataObject::clear

(no version information, might be only in CVS)

SDO_DataObject::clear -- Clear an SDO_DataObject's properties.

Описание

void SDO_DataObject::clear ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Clear an SDO_DataObject's properties. Read-only properties are unaffected. Subsequent calls to isset() for the data object will return FALSE.

Список параметров

None.

Возвращаемые значения

No return values.

Пред. | Начало | След.
SDO_DataFactory::create | Уровень выше | SDO_DataObject::createDataObject


SDO_DataObject::createDataObject

(no version information, might be only in CVS)

SDO_DataObject::createDataObject -- Create a child SDO_DataObject.

Описание

SDO_DataObject SDO_DataObject::createDataObject ( mixed identifier )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Create a child SDO_DataObject of the default type for the property identified. The data object is automatically inserted into the tree and a reference to it is returned.

Список параметров

identifier

Identifies the property for the data object type to be created. Can be either a property name (string), or property index (int).

Возвращаемые значения

Returns the newly created SDO_DataObject.

Исключения

SDO_PropertyNotFoundException

Thrown if the identifier does not correspond to a property of the data object.

Пред. | Начало | След.
SDO_DataObject::clear | Уровень выше | SDO_DataObject::getContainer


SDO_DataObject::getContainer

(no version information, might be only in CVS)

SDO_DataObject::getContainer -- Get a data object's container.

Описание

SDO_DataObject SDO_DataObject::getContainer ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get the data object which contains this data object.

Список параметров

None.

Возвращаемые значения

Returns the SDO_DataObject which contains this SDO_DataObject, or returns NULL if this is a root SDO_DataObject (i.e. it has no container).

Пред. | Начало | След.
SDO_DataObject::createDataObject | Уровень выше | SDO_DataObject::getContainmentPropertyName


SDO_DataObject::getContainmentPropertyName

(no version information, might be only in CVS)

SDO_DataObject::getContainmentPropertyName -- Get the container's property name.

Описание

string SDO_DataObject::getContainmentPropertyName ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get the property name used to refer to this data object by its containing data object.

Список параметров

None.

Возвращаемые значения

Returns the name of the container's property which references this SDO_DataObject, or returns NULL if this is a root SDO_DataObject (i.e. it has no container).

Пред. | Начало | След.
SDO_DataObject::getContainer | Уровень выше | SDO_DataObject::getSequence


SDO_DataObject::getSequence

(no version information, might be only in CVS)

SDO_DataObject::getSequence -- Get the sequence for a data object.

Описание

SDO_Sequence SDO_DataObject::getSequence ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Return the SDO_Sequence for this SDO_DataObject. Accessing the SDO_DataObject through the SDO_Sequence interface acts on the same SDO_DataObject instance data, but preserves ordering across properties.

Список параметров

None.

Возвращаемые значения

The SDO_Sequence for this SDO_DataObject, or returns NULL if the SDO_DataObject is not of a type which can have a sequence.

Пред. | Начало | След.
SDO_DataObject::getContainmentPropertyName | Уровень выше | SDO_DataObject::getType


SDO_DataObject::getType

(no version information, might be only in CVS)

SDO_DataObject::getType -- Get the type of a data object.

Описание

array SDO_DataObject::getType ( void )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Return an array containing the type information for an SDO_DataObject. The first element contains the namespace URI string and the second contains the type name string.

Список параметров

None.

Возвращаемые значения

An array containing the namespace URI string and the type name string for the data object.

Примеры

Пример 1. A SDO_DataObject::getType() example

For example, if the SDO_DataObject were of type 'CompanyType' from the namespace 'CompanyNS', then getType() would return the equivalent to array('CompanyNS', 'CompanyType'):

<?php
  $do_type = $company_do->getType();
  echo "Namespace: $do_type[0], Type Name: $do_type[1]";
?>

Результат выполнения данного примера:

Namespace: CompanyNS, Type Name: CompanyType

Пред. | Начало | След.
SDO_DataObject::getSequence | Уровень выше | SDO_List::insert


SDO_List::insert

(no version information, might be only in CVS)

SDO_List::insert -- Insert into a list.

Описание

void SDO_List::insert ( mixed value [, int index] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Insert a new element at a specified position in the list. All subsequent list items are moved up.

Список параметров

value

The new value to be inserted. This can be either a primitive or an SDO_DataObject.

index

The position at which to insert the new element. If this argument is not specified then the new value will be appended.

Возвращаемые значения

None.

Исключения

SDO_IndexOutOfBoundsException

Thrown if the list index is less than zero or greater than the size of the list.

SDO_InvalidConversionException

Thrown if the type of the new value does not match the type for the list (e.g. the type of the many-valued property that the list represents).

Пред. | Начало | След.
SDO_DataObject::getType | Уровень выше | SDO_Sequence::getPropertyIndex


SDO_Sequence::getPropertyIndex

(no version information, might be only in CVS)

SDO_Sequence::getPropertyIndex -- Return the property index for the specified sequence index.

Описание

int SDO_Sequence::getPropertyIndex ( int sequenceIndex )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Return the property index for the specified sequence index. If the sequence item is unstructured text rather than a data object property, then a value of -1 is returned.

Список параметров

sequenceIndex

The sequence index for which we wish to determine the associated data object property index.

Возвращаемые значения

The corresponding property index. A value of -1 means the element does not belong to a property and must therefore be unstructured text.

Исключения

SDO_IndexOutOfBoundsException

Thrown if the sequence index is less than zero or greater than the size of the sequence.

Пред. | Начало | След.
SDO_List::insert | Уровень выше | SDO_Sequence::getPropertyName


SDO_Sequence::getPropertyName

(no version information, might be only in CVS)

SDO_Sequence::getPropertyName -- Return the property name for the specified sequence index.

Описание

string SDO_Sequence::getPropertyName ( int sequenceIndex )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Return the property name for the specified sequence index. If the sequence item is unstructured text rather than a data object property, then a value of NULL is returned.

Список параметров

sequenceIndex

The sequence index for which we wish to determine the associated data object property name.

Возвращаемые значения

The corresponding property name. A value of NULL means the element does not belong to a property and must therefore be unstructured text.

Исключения

SDO_IndexOutOfBoundsException

Thrown if the sequence index is less than zero or greater than the size of the sequence.

Пред. | Начало | След.
SDO_Sequence::getPropertyIndex | Уровень выше | SDO_Sequence::insert


SDO_Sequence::insert

(no version information, might be only in CVS)

SDO_Sequence::insert -- Insert into a sequence.

Описание

void SDO_Sequence::insert ( mixed value [, int sequenceIndex [, mixed propertyIdentifier]] )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Insert a new element at a specified position in the sequence. All subsequent sequence items are moved up.

Список параметров

value

The new value to be inserted. This can be either a primitive or an SDO_DataObject.

sequenceIndex

The position at which to insert the new element. Default is NULL, which results in the new value being appended to the sequence.

propertyIdentifier

Either a property index or property name, used to identify a property in the sequence's corresponding SDO_DataObject. A value of NULL signifies unstructured text.

Возвращаемые значения

None.

Исключения

SDO_IndexOutOfBoundsException

Thrown if the sequence index is less than zero or greater than the size of the sequence.

SDO_InvalidConversionException

Thrown if the type of the new value cannot be juggled to match the type for the specified data object property.

Пред. | Начало | След.
SDO_Sequence::getPropertyName | Уровень выше | SDO_Sequence::move


SDO_Sequence::move

(no version information, might be only in CVS)

SDO_Sequence::move -- Move an item to another sequence position.

Описание

void SDO_Sequence::move ( int toIndex, int fromIndex )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Modify the position of the item in the sequence, without altering the value of the property in the SDO_DataObject.

Список параметров

toIndex

The destination sequence index. If this index is less than zero or greater than the size of the sequence then the value is appended.

fromIndex

The source sequence index.

Возвращаемые значения

None.

Исключения

SDO_IndexOutOfBoundsException

Thrown if the fromIndex sequence index is less than zero or greater than the size of the sequence.

Пред. | Начало | След.
SDO_Sequence::insert | Уровень выше | SDO XML Data Access Service Functions


session_pgsql_add_error

(PECL)

session_pgsql_add_error -- Increments error counts and sets last error message

Описание

bool session_pgsql_add_error ( int error_level [, string error_message] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

error_level

error_message

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

session_pgsql_get_error()

Пред. | Начало | След.
PostgreSQL Session Save Handler | Уровень выше | session_pgsql_get_error


session_pgsql_get_error

(PECL)

session_pgsql_get_error -- Returns number of errors and last error message

Описание

array session_pgsql_get_error ( [bool with_error_message] )

Get the number of errors and optional the error messages.

Список параметров

with_error_message

Set to TRUE the literal error message for each error is also returned.

Возвращаемые значения

The number of errors are returned as array.

Смотрите также

session_pgsql_add_error()

Пред. | Начало | След.
session_pgsql_add_error | Уровень выше | session_pgsql_get_field


session_pgsql_get_field

(PECL)

session_pgsql_get_field -- Get custom field value

Описание

string session_pgsql_get_field ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

session_pgsql_set_field()

Пред. | Начало | След.
session_pgsql_get_error | Уровень выше | session_pgsql_reset


session_pgsql_reset

(PECL)

session_pgsql_reset -- Reset connection to session database servers

Описание

bool session_pgsql_reset ( void )

Reset the connection to the session database servers.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
session_pgsql_get_field | Уровень выше | session_pgsql_set_field


session_pgsql_set_field

(PECL)

session_pgsql_set_field -- Set custom field value

Описание

bool session_pgsql_set_field ( string value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

value

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

session_pgsql_get_field()

Пред. | Начало | След.
session_pgsql_reset | Уровень выше | session_pgsql_status


session_pgsql_status

(PECL)

session_pgsql_status -- Get current save handler status

Описание

array session_pgsql_status ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
session_pgsql_set_field | Уровень выше | Session Handling Functions


ssh2_publickey_add

(PECL)

ssh2_publickey_add -- Add an authorized publickey

Описание

bool ssh2_publickey_add ( resource pkey, string algoname, string blob [, bool overwrite [, array attributes]] )

Замечание: The publickey subsystem is used for managing publickeys on a server to which the client is already authenticated. To authenticate to a remote system using publickey authentication, use the ssh2_auth_pubkey_file() function instead.

Список параметров

pkey

Publickey Subsystem resource created by ssh2_publickey_init().

algoname

Publickey algorithm (e.g.): ssh-dss, ssh-rsa

blob

Publickey blob as raw binary data

overwrite

If the specified key already exists, should it be overwritten?

attributes

Associative array of attributes to assign to this public key. Refer to ietf-secsh-publickey-subsystem for a list of supported attributes. To mark an attribute as mandatory, preceed its name with an asterix. If the server is unable to support an attribute marked mandatory, it will abort the add process.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. Adding a publickey with ssh2_publickey_add()

<?php
$ssh2 = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($ssh2, 'jdoe', 'password');
$pkey = ssh2_publickey_init($ssh2);

$keyblob = base64_decode('
AAAAB3NzaC1yc2EAAAABIwAAAIEA5HVt6VqSGd5PTrLRdjNONxXH1tVFGn0
Bd26BF0aCP9qyJRlvdJ3j4WBeX4ZmrveGrjMgkseSYc4xZ26sDHwfL351xj
zaLpipu\BGRrw17mWVBhuCExo476ri5tQFzbTc54VEHYckxQ16CjSTibI5X
69GmnYC9PNqEYq/1TP+HF10=');

ssh2_publickey_add($ssh2, 'ssh-rsa', $keyblob, false, array('comment'=>"John's Key"));
?>

Смотрите также

ssh2_publickey_init()
ssh2_publickey_remove()
ssh2_publickey_list()

Пред. | Начало | След.
ssh2_methods_negotiated | Уровень выше | ssh2_publickey_init


ssh2_publickey_init

(PECL)

ssh2_publickey_init -- Initialize Publickey subsystem

Описание

resource ssh2_publickey_init ( resource session )

Request the Publickey subsystem from an already connected SSH2 server.

The publickey subsystem allows an already connected and authenticated client to manage the list of authorized public keys stored on the target server in an implementation agnostic manner. If the remote server does not support the publickey subsystem, the ssh2_publickey_init() function will return FALSE.

Замечание: The publickey subsystem is used for managing publickeys on a server to which the client is already authenticated. To authenticate to a remote system using publickey authentication, use the ssh2_auth_pubkey_file() function instead.

Возвращаемые значения

Returns an SSH2 Publickey Subsystem resource for use with all other ssh2_publickey_*() methods.

Смотрите также

ssh2_publickey_add()
ssh2_publickey_remove()
ssh2_publickey_list()

Пред. | Начало | След.
ssh2_publickey_add | Уровень выше | ssh2_publickey_list


ssh2_publickey_list

(PECL)

ssh2_publickey_list -- List currently authorized publickeys

Описание

array ssh2_publickey_list ( resource pkey )

Замечание: The publickey subsystem is used for managing publickeys on a server to which the client is already authenticated. To authenticate to a remote system using publickey authentication, use the ssh2_auth_pubkey_file() function instead.

Список параметров

pkey

Publickey Subsystem resource

Возвращаемые значения

Returns a numericly indexed array of keys, each of which is an associative array containing: name, blob, and attrs elements.

Таблица 1. Publickey elements

Array Key | Meaning
name | Name of algorithm used by this publickey, for example: ssh-dss or ssh-rsa.
blob | Publickey blob as raw binary data.
attrs | Attributes assigned to this publickey. The most common attribute, and the only one supported by publickey version 1 servers, is comment, which may be any freeform string.

Примеры

Пример 1. Listing authorized keys with ssh2_publickey_list()

<?php
$ssh2 = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($ssh2, 'jdoe', 'secret');
$pkey = ssh2_publickey_init($ssh2);

$list = ssh2_publickey_list($pkey);

foreach($list as $key) {
  echo "Key: {$key['name']}\n";
  echo "Blob: " . chunk_split(base64_encode($key['blob']), 40, "\n") . "\n";
  echo "Comment: {$key['attrs']['comment']}\n\n";
}
?>

Результат выполнения данного примера:

Key: ssh-rsa
Blob: AAAAB3NzaC1yc2EAAAABIwAAAIEA5HVt6VqSGd5P
TrLRdjNONxXH1tVFGn0Bd26BF0aCP9qyJRlvdJ3j
4WBeX4ZmrveGrjMgkseSYc4xZ26sDHwfL351xjza
Lpipu\BGRrw17mWVBhuCExo476ri5tQFzbTc54VE
HYckxQ16CjSTibI5X69GmnYC9PNqEYq/1TP+HF10
Comment: John's Key

Key: ssh-rsa
Blob: AAAAB3NzaHVt6VqSGd5C1yc2EAAAABIwA232dnJA
AIEA5HVt6VqSGd5PTrLRdjNONxX/1TP+HF1HVt6V
qSGd50H1tVFGn0BB3NzaC1yc2EAd26BF0aCP9qyJ
RlvdJ3j4WBeX4ZmrveGrjMgkseSYc4xZ26HVt6Vq
SGd5sDHwfL351xjzaLpipu\BGB3NzaC1yc2EA/1T
Comment: Alice's Key

Смотрите также

ssh2_publickey_init()
ssh2_publickey_add()
ssh2_publickey_remove()

Пред. | Начало | След.
ssh2_publickey_init | Уровень выше | ssh2_publickey_remove


ssh2_publickey_remove

(PECL)

ssh2_publickey_remove -- Remove an authorized publickey

Описание

bool ssh2_publickey_remove ( resource pkey, string algoname, string blob )

Замечание: The publickey subsystem is used for managing publickeys on a server to which the client is already authenticated. To authenticate to a remote system using publickey authentication, use the ssh2_auth_pubkey_file() function instead.

Список параметров

pkey

Publickey Subsystem Resource

algoname

Publickey algorithm (e.g.): ssh-dss, ssh-rsa

blob

Publickey blob as raw binary data

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

ssh2_publickey_init()
ssh2_publickey_add()
ssh2_publickey_list()

Пред. | Начало | След.
ssh2_publickey_list | Уровень выше | ssh2_scp_recv


stream_bucket_append

(PHP 5)

stream_bucket_append -- Append bucket to brigade

Описание

void stream_bucket_append ( resource brigade, resource bucket )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
Stream Functions | Уровень выше | stream_bucket_make_writeable


stream_bucket_make_writeable

(PHP 5)

stream_bucket_make_writeable -- Return a bucket object from the brigade for operating on

Описание

object stream_bucket_make_writeable ( resource brigade )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
stream_bucket_append | Уровень выше | stream_bucket_new


stream_bucket_new

(PHP 5)

stream_bucket_new -- Create a new bucket for use on the current stream

Описание

object stream_bucket_new ( resource stream, string buffer )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
stream_bucket_make_writeable | Уровень выше | stream_bucket_prepend


stream_bucket_prepend

(PHP 5)

stream_bucket_prepend -- Prepend bucket to brigade

Описание

void stream_bucket_prepend ( resource brigade, resource bucket )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Пред. | Начало | След.
stream_bucket_new | Уровень выше | stream_context_create


tidy_get_opt_doc

(PHP 5 >= 5.1.0RC1)

tidy_get_opt_doc -- Returns the documentation for the given option name

Описание

Procedural style:

string tidy_get_opt_doc ( tidy object, string optname )

Object oriented style:

string tidy->getOptDoc ( string optname )

tidy_get_opt_doc() returns the documentation for the given option name.

Замечание: You need at least libtidy from 25 April, 2005 for this function be available.

Список параметров

object

A tidy object

optname

The option name

Возвращаемые значения

Returns a string if the option exists and has documentation available, or FALSE otherwise.

Примеры

Пример 1. Print all options along with their documentation and default value

<?php

$tidy = new tidy;
$config = $tidy->getConfig();

ksort($config);

foreach ($config as $opt => $val) {

    if (!$doc = $tidy->getOptDoc($opt))
        $doc = 'no documentation available!';

    $val = ($tidy->getOpt($opt) === true)  ? 'true'  : $val;
    $val = ($tidy->getOpt($opt) === false) ? 'false' : $val;

    echo "<p><b>$opt</b> (default: '$val')<br />".
         "$doc</p><hr />\n";
}

?>

Смотрите также

tidy_get_config()
tidy_getopt()

Пред. | Начало | След.
tidy_get_html | Уровень выше | tidy_get_output


time_sleep_until

(PHP 5 >= 5.1.0RC1)

time_sleep_until -- Make the script sleep until the specified time

Описание

bool time_sleep_until ( float timestamp )

This function will make the script sleep until the specified timestamp. If the specified timestamp is in the past, time_sleep_until() will generate a E_WARNING and return FALSE.

Замечание: Для Windows-платформ эта функция не реализована.

Список параметров

timestamp

The timestamp when the script should wake.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. A time_sleep_until() example

<?php

//returns false and generates a warning
var_dump(time_sleep_until(time()-1));

// may only work on faster computers, will sleep up to 0.2 seconds
var_dump(time_sleep_until(time()+0.2));

?>

Смотрите также

sleep()
usleep()
time_nanosleep()

Пред. | Начало | След.
time_nanosleep | Уровень выше | uniqid


unicode_encode

(PHP 5 CVS only)

unicode_encode -- Takes a unicode string and converts it to a string in the specified encoding

Описание

string unicode_encode ( unicode input, string encoding )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

input

Its description

encoding

Its description

Возвращаемые значения

What the function returns, first on success, then on failure.

Примеры

Пример 1. A unicode_encode() example

Any text that describes the purpose of t

<?php
if ($anexample === true) {
    echo 'Use the PEAR Coding Standards';
}
?>

Результат выполнения данного примера:

Use the PEAR Coding Standards

Смотрите также

unicode_decode()

Пред. | Начало | След.
i18n_loc_set_default | Уровень выше | URL Functions


wddx_unserialize

(PHP 3 >= 3.0.7, PHP 5 CVS only)

wddx_unserialize -- Unserializes a WDDX packet

Description

mixed wddx_unserialize ( string packet )

wddx_unserialize() takes a packet string and unserializes it. It returns the result which can be string, number, or array. Note that structures are unserialized into associative arrays.

Пред. | Начало | След.
wddx_serialize_vars | Уровень выше | win32service Functions


win32_create_service

(PECL)

win32_create_service -- Creates a new service entry in the SCM database

Описание

long win32_create_service ( array details [, string machine] )

Список параметров

details

An array of service details:

service

The short name of the service. This is the name that you will use to control the service using the net command. The service must be unique (no two services can share the same name), and, ideally, should avoid having spaces in the name.

display

The display name of the service. This is the name that you will see in the Services Applet.

user

The name of the user account under which you want the service to run. If omitted, the service will run as the LocalSystem account. If the username is specified, you must also provide a password.

password

The password that corresponds to the user.

path

The full path to the executable module that will be launched when the service is started. If omitted, the path to the current PHP process will be used.

params

Command line parameters to pass to the service when it starts. If you want to run a PHP script as the service, then the first parameter should be the full path to the PHP script that you intend to run.

load_order

Controls the load_order. This is not yet fully supported.

svc_type

Sets the service type. If omitted, the default value is WIN32_SERVICE_WIN32_OWN_PROCESS. Don't change this unless you know what you're doing.

start_type

Specifies how the service should be started. The default is WIN32_SERVICE_AUTO_START which means the the service will be launched when the machine starts up.

error_control

Informs the SCM what it should do when it detects a problem with the service. The default is WIN32_SERVER_ERROR_IGNORE. Changing this value is not yet fully supported.

machine

The optional machine name on which you want to create a service. If omitted, it will use the local machine.

Возвращаемые значения

Returns TRUE on success, otherwise returns a win32 error code.

Примеры

Пример 1. A win32_create_service() example

Any text that describes the purpose of the example, or what goes on in the example should go here (inside the
<?php
$x = win32_create_service(array(
        'service' => 'dummyphp',
        'display' => 'sample dummy PHP service',
        'params' => __FILE__ . ' run',
));
debug_zval_dump($x);
?>

Смотрите также

win32_delete_service()

Пред. | Начало | След.
win32service Functions | Уровень выше | win32_delete_service


win32_delete_service

(PECL)

win32_delete_service -- Deletes a service entry from the SCM database

Описание

long win32_delete_service ( string servicename [, string machine] )

Attempts to delete a service from the SCM database. Administrative privileges are required for this to succeed.

This function really just marks the service for deletion. If other processes (such as the Services Applet) are open, then the deletion will be deferred until those applications are closed. If a service is marked for deletion, further attempts to delete it will fail, and attempts to create a new service with that name will also fail.

Список параметров

servicename

The short name of the service.

machine

The optional machine name. If omitted, the local machine will be used.

Возвращаемые значения

Returns TRUE on success, or a win32 error code on failure.

Примеры

Пример 1. A win32_delete_service() example

Deletes the dummyphp service.

<?php
win32_delete_service('dummyphp');
?>

Пред. | Начало | След.
win32_create_service | Уровень выше | win32_get_last_control_message


win32_get_last_control_message

(PECL)

win32_get_last_control_message -- Returns the last control message that was sent to this service

Описание

long win32_get_last_control_message ( void )

Returns the control code that was last sent to this service process. When running as a service you should periodically check this to determine if your service needs to stop running.

Возвращаемые значения

Returns a control constant; one of WIN32_SERVICE_CONTROL_CONTINUE, WIN32_SERVICE_CONTROL_INTERROGATE, WIN32_SERVICE_CONTROL_PAUSE, WIN32_SERVICE_CONTROL_STOP, WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE, WIN32_SERVICE_CONTROL_POWEREVENT, WIN32_SERVICE_CONTROL_SESSIONCHANGE.

Смотрите также

win32_start_service_ctrl_dispatcher()

Пред. | Начало | След.
win32_delete_service | Уровень выше | win32_query_service_status


win32_query_service_status

(PECL)

win32_query_service_status -- Queries the status of a service

Описание

mixed win32_query_service_status ( string servicename [, string machine] )

Queries the current status for a service, returning an array of information.

Список параметров

servicename

The short name of the service.

machine

The optional machine name. If omitted, the local machine will be used.

Возвращаемые значения

Returns FALSE on failure, otherwise returns an array consisting of the following information:

ServiceType

The dwServiceType.

CurrentState

The dwCurrentState.

ControlsAccepted

Which service controls are accepted by the service.

Win32ExitCode

If the service exited, the return code from the process.

ServiceSpecificExitCode

If the service exited with an error condition, the service specific code that is logged in the event log is visible here.

CheckPoint

If the service is shutting down, holds the current check point number. This is used by the SCM as a kind of heart-beat to detect a wedged service process. The value of the check point is best interpreted in conjunction with the WaitHint value.

WaitHint

If the service is shutting down it will set WaitHint to a checkpoint value that will indicate 100% completion. This can be used to implement a progress indicator.

ProcessId

The windows process identifier. If 0, the process is not running.

ServiceFlags

The dwServiceFlags.

Пред. | Начало | След.
win32_get_last_control_message | Уровень выше | win32_set_service_status


win32_set_service_status

(PECL)

win32_set_service_status -- Update the service status

Описание

bool win32_set_service_status ( int status )

Informs the SCM of the current status of a running service. This call is only valid for a running service process.

Список параметров

status

The service status code, one of WIN32_SERVICE_RUNNING, WIN32_SERVICE_STOPPED, WIN32_SERVICE_STOP_PENDING, WIN32_SERVICE_START_PENDING, WIN32_SERVICE_CONTINUE_PENDING, WIN32_SERVICE_PAUSE_PENDING, WIN32_SERVICE_PAUSED.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

win32_start_service_ctrl_dispatcher()

Пред. | Начало | След.
win32_query_service_status | Уровень выше | win32_start_service_ctrl_dispatcher


win32_start_service

(PECL)

win32_start_service -- Starts a service

Описание

long win32_start_service ( string servicename [, string machine] )

Attempts to start the named service. Usually requires administrative privileges.

Список параметров

servicename

The short name of the service.

machine

Optional machine name. If omitted, the local machine is used.

Возвращаемые значения

Returns WIN32_NO_ERROR on success, or some other win32 error code on failure.

Смотрите также

win32_stop_service()

Пред. | Начало | След.
win32_start_service_ctrl_dispatcher | Уровень выше | win32_stop_service


win32_start_service_ctrl_dispatcher

(PECL)

win32_start_service_ctrl_dispatcher -- Registers the script with the SCM, so that it can act as the service with the given name

Описание

bool win32_start_service_ctrl_dispatcher ( string name )

When launched via the Service Control Manager, a service process is required to "check-in" with it to establish service monitoring and communication facilities. This function performs the check-in by spawning a thread to handle the lower-level communication with the service control manager.

Once started, the service process should continue to check-in with the service control manager so that it can determine if it should terminate. This is achieved by periodically calling win32_get_last_control_message() and handling the return code appropriately.

Список параметров

name

The short-name of the service, as registered by win32_create_service().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример 1. A win32_start_service_ctrl_dispatcher() example

Any text that describes the purpose of the example, or what goes on in the example should go here (inside the

<?php
if (!win32_start_service_ctrl_dispatcher('dummyphp')) {
  die("I'm probably not running under the service control manager");
}

while (WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) {
  # do some work here, trying not to take more than around 30 seconds
  # before coming back into the loop again
}
?>

Смотрите также

win32_get_last_control_message()

Пред. | Начало | След.
win32_set_service_status | Уровень выше | win32_start_service


win32_stop_service

(PECL)

win32_stop_service -- Stops a service

Описание

long win32_stop_service ( string servicename [, string machine] )

Stops a named service. Requires administrative privileges.

Список параметров

servicename

The short name of the service.

machine

Optional machine name. If omitted, the local machine is used.

Возвращаемые значения

Returns WIN32_NO_ERROR on success, or a win32 error code on failure.

Смотрите также

win32_start_service()

Пред. | Начало | След.
win32_start_service | Уровень выше | xattr Functions


XMLReader->close()

(no version information, might be only in CVS)

XMLReader->close() -- Close the XMLReader input

Описание

class XMLReader {

bool close ( void )

}

Closes the input the XMLReader object is currently parsing.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

XMLReader->open()
XMLReader->XML()

Пред. | Начало | След.
XMLReader functions | Уровень выше | XMLReader->expand()


XMLReader->expand()

(no version information, might be only in CVS)

XMLReader->expand() -- Returns a copy of the current node as a DOM object

Описание

class XMLReader {

DOMNode expand ( void )

}

This method copies the current node and returns the appropriate DOM object.

Возвращаемые значения

The resulting DOMNode or FALSE on error.

Пред. | Начало | След.
XMLReader->close() | Уровень выше | XMLReader->getAttribute()


XMLReader->getAttribute()

(no version information, might be only in CVS)

XMLReader->getAttribute() -- Get the value of a named attribute

Описание

class XMLReader {

string getAttribute ( string name )

}

Returns the value of a named attribute or an empty string if attribute does not exist or not positioned on an element node.

Список параметров

name

The name of the attribute.

Возвращаемые значения

The value of the attribute, or an empty string if no attribute with the given name is found or not positioned of element.

Смотрите также

XMLReader->getAttributeNo()
XMLReader->getAttributeNS()

Пред. | Начало | След.
XMLReader->expand() | Уровень выше | XMLReader->getAttributeNo()


XMLReader->getAttributeNo()

(no version information, might be only in CVS)

XMLReader->getAttributeNo() -- Get the value of an attribute by index

Описание

class XMLReader {

string getAttributeNo ( int index )

}

Returns the value of an attribute based on its position or an empty string if attribute does not exist or not positioned on an element node.

Список параметров

index

The position of the attribute.

Возвращаемые значения

The value of the attribute, or an empty string if no attribute exists at index or not positioned of element.

Смотрите также

XMLReader->getAttribute()
XMLReader->getAttributeNS()

Пред. | Начало | След.
XMLReader->getAttribute() | Уровень выше | XMLReader->getAttributeNS()


XMLReader->getAttributeNS()

(no version information, might be only in CVS)

XMLReader->getAttributeNS() -- Get the value of an attribute by localname and URI

Описание

class XMLReader {

string getAttributeNS ( string localName, string namespaceURI )

}

Returns the value of an attribute by name and namespace URI or an empty string if attribute does not exist or not positioned on an element node.

Список параметров

localName

The local name.

namespaceURI

The namespace URI.

Возвращаемые значения

The value of the attribute, or an empty string if no attribute with the given localName and namespaceURI is found or not positioned of element.

Смотрите также

XMLReader->getAttribute()
XMLReader->getAttributeNo()

Пред. | Начало | След.
XMLReader->getAttributeNo() | Уровень выше | XMLReader->getParserProperty()


XMLReader->getParserProperty()

(no version information, might be only in CVS)

XMLReader->getParserProperty() -- Indicates if specified property has been set

Описание

class XMLReader {

bool getParserProperty ( int property )

}

Indicates if specified property has been set.

Список параметров

property

One of the parser option constants.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

XMLReader->setParserProperty()

Пред. | Начало | След.
XMLReader->getAttributeNS() | Уровень выше | XMLReader->isValid()


XMLReader->isValid()

(no version information, might be only in CVS)

XMLReader->isValid() -- Indicates if the parsed document is valid

Описание

class XMLReader {

bool isValid ( void )

}

Returns a boolean indicating if the document being parsed is currently valid.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

XMLReader->setParserProperty()
XMLReader->setRelaxNGSchema()
XMLReader->setRelaxNGSchemaSource()

Пред. | Начало | След.
XMLReader->getParserProperty() | Уровень выше | XMLReader->lookupNamespace()


XMLReader->lookupNamespace()

(no version information, might be only in CVS)

XMLReader->lookupNamespace() -- Lookup namespace for a prefix

Описание

class XMLReader {

bool lookupNamespace ( string prefix )

}

Lookup in scope namespace for a given prefix.

Список параметров

prefix

String containing the prefix.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
XMLReader->isValid() | Уровень выше | XMLReader->moveToAttribute()


XMLReader->moveToAttribute()

(no version information, might be only in CVS)

XMLReader->moveToAttribute() -- Move cursor to a named attribute

Описание

class XMLReader {

bool moveToAttribute ( string name )

}

Positions cursor on the named attribute.

Список параметров

name

The name of the attribute.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

XMLReader->moveToElement()
XMLReader->moveToAttributeNo()
XMLReader->moveToAttributeNs()
XMLReader->moveToFirstAttribute()

Пред. | Начало | След.
XMLReader->lookupNamespace() | Уровень выше | XMLReader->moveToAttributeNo()


XMLReader->moveToAttributeNo()

(no version information, might be only in CVS)

XMLReader->moveToAttributeNo() -- Move cursor to an attribute by index

Описание

class XMLReader {

bool moveToAttributeNo ( int index )

}

Positions cursor on attribute based on its position.

Список параметров

index

The position of the attribute.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

XMLReader->moveToElement()
XMLReader->moveToAttribute()
XMLReader->moveToAttributeNs()
XMLReader->moveToFirstAttribute()

Пред. | Начало | След.
XMLReader->moveToAttribute() | Уровень выше | XMLReader->moveToAttributeNs()


XMLReader->moveToAttributeNs()

(no version information, might be only in CVS)

XMLReader->moveToAttributeNs() -- Move cursor to a named attribute

Описание

class XMLReader {

bool moveToAttributeNs ( string localName, string namespaceURI )

}

Positions cursor on the named attribute in specified namespace.

Список параметров

localName

The local name.

namespaceURI

The namespace URI.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

XMLReader->moveToElement()
XMLReader->moveToAttribute()
XMLReader->moveToAttributeNo()
XMLReader->moveToFirstAttribute()

Пред. | Начало | След.
XMLReader->moveToAttributeNo() | Уровень выше | XMLReader->moveToElement()


XMLReader->moveToElement()

(no version information, might be only in CVS)

XMLReader->moveToElement() -- Position cursor on the parent Element of current Attribute

Описание

class XMLReader {

bool moveToElement ( void )

}

Moves cursor to the parent Element of current Attribute. Returns TRUE if sucessful and FALSE if it fails or not positioned on Attribute when this method is called.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

XMLReader->moveToAttribute()
XMLReader->moveToAttributeNo()
XMLReader->moveToAttributeNs()
XMLReader->moveToFirstAttribute()

Пред. | Начало | След.
XMLReader->moveToAttributeNs() | Уровень выше | XMLReader->moveToFirstAttribute()


XMLReader->moveToFirstAttribute()

(no version information, might be only in CVS)

XMLReader->moveToFirstAttribute() -- Position cursor on the first Attribute

Описание

class XMLReader {

bool moveToFirstAttribute ( void )

}

Moves cursor to the first Attribute.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

XMLReader->moveToElement()
XMLReader->moveToAttribute()
XMLReader->moveToAttributeNo()
XMLReader->moveToAttributeNs()
XMLReader->moveToNextAttribute()

Пред. | Начало | След.
XMLReader->moveToElement() | Уровень выше | XMLReader->moveToNextAttribute()


XMLReader->moveToNextAttribute()

(no version information, might be only in CVS)

XMLReader->moveToNextAttribute() -- Position cursor on the next Attribute

Описание

class XMLReader {

bool moveToNextAttribute ( void )

}

Moves cursor to the next Attribute if positioned on an Attribute or moves to first attribute if positioned on an Element.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

XMLReader->moveToElement()
XMLReader->moveToAttribute()
XMLReader->moveToAttributeNo()
XMLReader->moveToAttributeNs()
XMLReader->moveToFirstAttribute()

Пред. | Начало | След.
XMLReader->moveToFirstAttribute() | Уровень выше | XMLReader->next()


XMLReader->next()

(no version information, might be only in CVS)

XMLReader->next() -- Move cursor to next node skipping all subtrees

Описание

class XMLReader {

bool next ( [string localname] )

}

Positions cursor on the next node skipping all subtrees.

Список параметров

localname

The name of the next node to move to.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

XMLReader->next()
XMLReader->moveToElement()
XMLReader->moveToAttribute()

Пред. | Начало | След.
XMLReader->moveToNextAttribute() | Уровень выше | XMLReader->open()


XMLReader->open()

(no version information, might be only in CVS)

XMLReader->open() -- Set the URI containing the XML to parse

Описание

class XMLReader {

bool open ( string URI )

}

Set the URI containing the XML document to be parsed.

Список параметров

URI

URI pointing to the document.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

XMLReader->XML()
XMLReader->close()

Пред. | Начало | След.
XMLReader->next() | Уровень выше | XMLReader->read()


XMLReader->read()

(no version information, might be only in CVS)

XMLReader->read() -- Move to next node in document

Описание

class XMLReader {

bool read ( void )

}

Moves cursor to the next node in the document.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

XMLReader->moveToElement()
XMLReader->moveToAttribute()
XMLReader->next()

Пред. | Начало | След.
XMLReader->open() | Уровень выше | XMLReader->setParserProperty()


XMLReader->setParserProperty()

(no version information, might be only in CVS)

XMLReader->setParserProperty() -- Set or Unset parser options

Описание

class XMLReader {

bool setParserProperty ( int property, bool value )

}

Set or Unset parser option for the parser. The options must be set
after xmlreader-open() or
xmlreader-xml() are called and before
the first xmlreader-read() call.

Список параметров

property

One of the parser option constants.

value

If set to TRUE the option will be enabled otherwise will be disabled.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пред. | Начало | След.
XMLReader->read() | Уровень выше | XMLReader->setRelaxNGSchema()


XMLReader->setRelaxNGSchema()

(no version information, might be only in CVS)

XMLReader->setRelaxNGSchema() -- Set the filename or URI for a RelaxNG Schema

Описание

class XMLReader {

bool setRelaxNGSchema ( string filename )

}

Set the filename or URI for the RelaxNG Schema to use for validation.

Список параметров

filename

filename or URI pointing to a RelaxNG Schema.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

XMLReader->setRelaxNGSchemaSource()

Пред. | Начало | След.
XMLReader->setParserProperty() | Уровень выше | XMLReader->setRelaxNGSchemaSource()


XMLReader->setRelaxNGSchemaSource()

(no version information, might be only in CVS)

XMLReader->setRelaxNGSchemaSource() -- Set the data containing a RelaxNG Schema

Описание

class XMLReader {

bool setRelaxNGSchemaSource ( string source )

}

Set the data containing a RelaxNG Schema to use for validation.

Список параметров

source

String containing the RelaxNG Schema.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

XMLReader->setRelaxNGSchema()

Пред. | Начало | След.
XMLReader->setRelaxNGSchema() | Уровень выше | XMLReader->XML()


XMLReader->XML()

(no version information, might be only in CVS)

XMLReader->XML() -- Set the data containing the XML to parse

Описание

class XMLReader {

bool open ( string source )

}

Set the data containing the XML to parse.

Список параметров

source

String containing the XML to be parsed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

XMLReader->open()
XMLReader->close()

Пред. | Начало | След.
XMLReader->setRelaxNGSchemaSource() | Уровень выше | XSL functions


xpath_register_ns

(PHP 4 >= 4.2.0, PECL)

xpath_register_ns -- Register the given namespace in the passed XPath context

Описание

bool xpath_register_ns ( XPathContext xpath_context, string prefix, string uri )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

xpath_register_ns_auto()

Пред. | Начало | След.
xpath_register_ns_auto | Уровень выше | xptr_eval


xpath_register_ns_auto

(PECL)

xpath_register_ns_auto -- Register the given namespace in the passed XPath context

Описание

bool xpath_register_ns_auto ( XPathContext xpath_context [, object context_node] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

xpath_register_ns()

Пред. | Начало | След.
xpath_new_context | Уровень выше | xpath_register_ns


Директивы php.ini

Руководство по PHP
Пред. След.

Приложение G. Директивы php.ini

Содержание
Список директив php.ini
Описание встроенных директив php.ini

Список директив php.ini

Этот список включает директивы php.ini, которые вы можете использовать для настроки PHP.

Таблица G-1. Конфигурационные опции

Имя | По умолчанию | Изменяемый | Список изменений
allow_call_time_pass_reference | "1" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.0.0.
allow_url_fopen | "1" | PHP_INI_SYSTEM | PHP_INI_ALL в PHP <= 4.3.4. Доступна с версии PHP 4.0.4.
always_populate_raw_post_data | "0" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3. Доступна с версии PHP 4.1.0.
apc.cache_by_default | "1" | PHP_INI_SYSTEM |
apc.enabled | "1" | PHP_INI_SYSTEM |
apc.filters | "" | PHP_INI_SYSTEM |
apc.gc_ttl | "3600" | PHP_INI_SYSTEM |
apc.mmap_file_mask | NULL | PHP_INI_SYSTEM |
apc.num_files_hint | "1000" | PHP_INI_SYSTEM |
apc.optimization | "0" | PHP_INI_SYSTEM |
apc.shm_segments | "1" | PHP_INI_SYSTEM |
apc.shm_size | "30" | PHP_INI_SYSTEM |
apc.slam_defense | "0" | PHP_INI_SYSTEM |
apc.ttl | "0" | PHP_INI_SYSTEM |
apc.user_entries_hint | "100" | PHP_INI_SYSTEM |
apc.user_ttl | "0" | PHP_INI_SYSTEM |
apd.dumpdir | NULL | PHP_INI_ALL |
apd.statement_tracing | "0" | PHP_INI_ALL |
arg_separator.input | "&" | PHP_INI_PERDIR | Доступна с версии PHP 4.0.5.
arg_separator.output | "&" | PHP_INI_ALL | Доступна с версии PHP 4.0.5.
asp_tags | "0" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.0.0.
assert.active | "1" | PHP_INI_ALL |
assert.bail | "0" | PHP_INI_ALL |
assert.callback | NULL | PHP_INI_ALL |
assert.quiet_eval | "0" | PHP_INI_ALL |
assert.warning | "1" | PHP_INI_ALL |
auto_append_file | NULL | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3.
auto_detect_line_endings | "0" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
auto_globals_jit | "1" | PHP_INI_PERDIR | Доступна с версии PHP 5.0.0.
auto_prepend_file | NULL | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3.
bcmath.scale | "0" | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
blenc.key_file | "/usr/local/etc/blenckeys" | PHP_INI_ALL |
browscap | NULL | PHP_INI_SYSTEM |
child_terminate | "0" | PHP_INI_ALL | Доступна с версии PHP 4.0.5.
com.allow_dcom | "0" | PHP_INI_SYSTEM | Доступна с версии PHP 4.0.5.
com.autoregister_casesensitive | "1" | PHP_INI_ALL | PHP_INI_SYSTEM в PHP 4. Доступна с версии PHP 4.1.0.
com.autoregister_typelib | "0" | PHP_INI_ALL | PHP_INI_SYSTEM в PHP 4. Доступна с версии PHP 4.1.0.
com.autoregister_verbose | "0" | PHP_INI_ALL | PHP_INI_SYSTEM в PHP 4. Доступна с версии PHP 4.1.0.
com.code_page | "" | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
com.typelib_file | "" | PHP_INI_SYSTEM | Доступна с версии PHP 4.0.5.
crack.default_dictionary | NULL | PHP_INI_SYSTEM | Доступна с версии PHP 4.0.5.
daffodildb.default_host | "localhost" | PHP_INI_ALL |
daffodildb.default_password | "daffodil" | PHP_INI_ALL |
daffodildb.default_socket | NULL | PHP_INI_ALL |
daffodildb.default_user | "DAFFODIL" | PHP_INI_ALL |
daffodildb.port | "3456" | PHP_INI_ALL |
date.default_latitude | "31.7667" | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
date.default_longitude | "35.2333" | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
date.sunrise_zenith | "90.83" | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
date.sunset_zenith | "90.83" | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
dba.default_handler | "" | PHP_INI_ALL | Доступна с версии PHP 4.3.3.
dbx.colnames_case | "unchanged" | PHP_INI_SYSTEM | Доступна с версии PHP 4.3.0.
default_charset | "" | PHP_INI_ALL |
default_mimetype | "text/html" | PHP_INI_ALL |
default_socket_timeout | "60" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
define_syslog_variables | "0" | PHP_INI_ALL |
disable_classes | "" | Только php.ini | Доступна с версии PHP 4.3.2.
disable_functions | "" | Только php.ini | Доступна с версии PHP 4.0.1.
display_errors | "1" | PHP_INI_ALL |
display_startup_errors | "0" | PHP_INI_ALL | Доступна с версии PHP 4.0.3.
docref_ext | "" | PHP_INI_ALL | Доступна с версии PHP 4.3.2.
docref_root | "" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
doc_root | NULL | PHP_INI_SYSTEM |
enable_dl | "1" | PHP_INI_SYSTEM |
engine | "1" | PHP_INI_ALL | Доступна с версии PHP 4.0.5.
error_append_string | NULL | PHP_INI_ALL |
error_log | NULL | PHP_INI_ALL |
error_prepend_string | NULL | PHP_INI_ALL |
error_reporting | NULL | PHP_INI_ALL |
exif.decode_jis_intel | "JIS" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
exif.decode_jis_motorola | "JIS" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
exif.decode_unicode_intel | "UCS-2LE" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
exif.decode_unicode_motorola | "UCS-2BE" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
exif.encode_jis | "" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
exif.encode_unicode | "ISO-8859-15" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
expose_php | "1" | Только php.ini |
extension_dir | "/path/to/php" | PHP_INI_SYSTEM |
fbsql.allow_persistent | "1" | PHP_INI_SYSTEM | Доступна с версии PHP 4.2.0.
fbsql.autocommit | "1" | PHP_INI_SYSTEM | Доступна с версии PHP 4.0.6.
fbsql.batchsize | "1000" | PHP_INI_ALL | Доступна с версии PHP 5-cvs.
fbsql.default_database | "" | PHP_INI_SYSTEM | Доступна с версии PHP 4.0.6.
fbsql.default_database_password | "" | PHP_INI_SYSTEM | Доступна с версии PHP 4.0.6.
fbsql.default_host | NULL | PHP_INI_SYSTEM | Доступна с версии PHP 4.0.6.
fbsql.default_password | "" | PHP_INI_SYSTEM | Доступна с версии PHP 4.0.6.
fbsql.default_user | "_SYSTEM" | PHP_INI_SYSTEM | Доступна с версии PHP 4.0.6.
fbsql.generate_warnings | "0" | PHP_INI_SYSTEM | Доступна с версии PHP 4.0.6.
fbsql.max_connections | "128" | PHP_INI_SYSTEM | Доступна с версии PHP 4.0.6.
fbsql.max_links | "128" | PHP_INI_SYSTEM | Доступна с версии PHP 4.0.6.
fbsql.max_persistent | "-1" | PHP_INI_SYSTEM | Доступна с версии PHP 4.0.6.
fbsql.max_results | "128" | PHP_INI_SYSTEM | Доступна с версии PHP 4.0.6.
file_uploads | "1" | PHP_INI_SYSTEM | PHP_INI_ALL в PHP <= 4.2.3. Доступна с версии PHP 4.0.3.
highlight.bg | "#FFFFFF" | PHP_INI_ALL |
highlight.comment | "#FF8000" | PHP_INI_ALL |
highlight.default | "#0000BB" | PHP_INI_ALL |
highlight.html | "#000000" | PHP_INI_ALL |
highlight.keyword | "#007700" | PHP_INI_ALL |
highlight.string | "#DD0000" | PHP_INI_ALL |
html_errors | "1" | PHP_INI_ALL | PHP_INI_SYSTEM в PHP <= 4.2.3. Доступна с версии PHP 4.0.2.
http.allowed_methods | "OPTIONS,GET,HEAD,POST,PUT,DELETE,TRACE,CONNECT" | PHP_INI_ALL |
hyperwave.allow_persistent | "0" | PHP_INI_SYSTEM | Доступна с версии PHP 4.3.2.
hyperwave.default_port | "418" | PHP_INI_ALL |
ibase.allow_persistent | "1" | PHP_INI_SYSTEM |
ibase.dateformat | "%Y-%m-%d" | PHP_INI_ALL |
ibase.default_charset | NULL | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
ibase.default_db | NULL | PHP_INI_SYSTEM | Доступна с версии PHP 5.0.0.
ibase.default_password | NULL | PHP_INI_ALL |
ibase.default_user | NULL | PHP_INI_ALL |
ibase.max_links | "-1" | PHP_INI_SYSTEM |
ibase.max_persistent | "-1" | PHP_INI_SYSTEM |
ibase.timeformat | "%H:%M:%S" | PHP_INI_ALL |
ibase.timestampformat | "%Y-%m-%d %H:%M:%S" | PHP_INI_ALL |
iconv.input_encoding | "ISO-8859-1" | PHP_INI_ALL | Доступна с версии PHP 4.0.5.
iconv.internal_encoding | "ISO-8859-1" | PHP_INI_ALL | Доступна с версии PHP 4.0.5.
iconv.output_encoding | "ISO-8859-1" | PHP_INI_ALL | Доступна с версии PHP 4.0.5.
ifx.allow_persistent | "1" | PHP_INI_SYSTEM |
ifx.blobinfile | "1" | PHP_INI_ALL |
ifx.byteasvarchar | "0" | PHP_INI_ALL |
ifx.charasvarchar | "0" | PHP_INI_ALL |
ifx.default_host | NULL | PHP_INI_SYSTEM |
ifx.default_password | NULL | PHP_INI_SYSTEM |
ifx.default_user | NULL | PHP_INI_SYSTEM |
ifx.max_links | "-1" | PHP_INI_SYSTEM |
ifx.max_persistent | "-1" | PHP_INI_SYSTEM |
ifx.nullformat | "0" | PHP_INI_ALL |
ifx.textasvarchar | "0" | PHP_INI_ALL |
ignore_repeated_errors | "0" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
ignore_repeated_source | "0" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
ignore_user_abort | "0" | PHP_INI_ALL |
implicit_flush | "0" | PHP_INI_ALL | PHP_INI_PERDIR in PHP <= 4.2.3.
include_path | ".;/path/to/php/pear" | PHP_INI_ALL |
ingres.allow_persistent | "1" | PHP_INI_SYSTEM | Доступна с версии PHP 4.0.2.
ingres.default_database | NULL | PHP_INI_ALL | Доступна с версии PHP 4.0.2.
ingres.default_password | NULL | PHP_INI_ALL | Доступна с версии PHP 4.0.2.
ingres.default_user | NULL | PHP_INI_ALL | Доступна с версии PHP 4.0.2.
ingres.max_links | "-1" | PHP_INI_SYSTEM | Доступна с версии PHP 4.0.2.
ingres.max_persistent | "-1" | PHP_INI_SYSTEM | Доступна с версии PHP 4.0.2.
ircg.control_user | "nobody" | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
ircg.keep_alive_interval | "60" | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
ircg.max_format_message_sets | "12" | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
ircg.shared_mem_size | "6000000" | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
ircg.work_dir | "/tmp/ircg" | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
last_modified | "0" | PHP_INI_ALL | Доступна с версии PHP 4.0.5.
ldap.max_links | "-1" | PHP_INI_SYSTEM |
log_errors | "0" | PHP_INI_ALL |
log_errors_max_len | "1024" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
magic_quotes_gpc | "1" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3.
magic_quotes_runtime | "0" | PHP_INI_ALL |
magic_quotes_sybase | "0" | PHP_INI_ALL |
mail.force_extra_parameters | NULL | PHP_INI_PERDIR | Доступна с версии PHP 5.0.0.
mailparse.def_charset | "us-ascii" | PHP_INI_ALL | Доступна с версии PHP 4.1.0.
maxdb.default_db | NULL | PHP_INI_ALL |
maxdb.default_host | NULL | PHP_INI_ALL |
maxdb.default_pw | NULL | PHP_INI_ALL |
maxdb.default_user | NULL | PHP_INI_ALL |
maxdb.long_readlen | "200" | PHP_INI_ALL |
max_execution_time | "30" | PHP_INI_ALL |
max_input_time | "-1" | PHP_INI_PERDIR | Доступна с версии PHP 4.3.0.
mbstring.detect_order | NULL | PHP_INI_ALL | Доступна с версии PHP 4.0.6.
mbstring.encoding_translation | "0" | PHP_INI_PERDIR | Доступна с версии PHP 4.3.0.
mbstring.func_overload | "0" | PHP_INI_PERDIR | PHP_INI_SYSTEM в PHP <= 4.2.3. Доступна с версии PHP 4.2.0.
mbstring.http_input | "pass" | PHP_INI_ALL | Доступна с версии PHP 4.0.6.
mbstring.http_output | "pass" | PHP_INI_ALL | Доступна с версии PHP 4.0.6.
mbstring.internal_encoding | NULL | PHP_INI_ALL | Доступна с версии PHP 4.0.6.
mbstring.language | "neutral" | PHP_INI_PERDIR | Доступна с версии PHP 4.3.0.
mbstring.script_encoding | NULL | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
mbstring.substitute_character | NULL | PHP_INI_ALL | Доступна с версии PHP 4.0.6.
mcrypt.algorithms_dir | NULL | PHP_INI_ALL | Доступна с версии PHP 4.0.2.
mcrypt.modes_dir | NULL | PHP_INI_ALL | Доступна с версии PHP 4.0.2.
memory_limit | "8M" | PHP_INI_ALL |
mime_magic.debug | "0" | PHP_INI_SYSTEM | Доступна с версии PHP 5.0.0.
mime_magic.magicfile | "/path/to/php/magic.mime" | PHP_INI_SYSTEM | Доступна с версии PHP 4.3.0.
mssql.allow_persistent | "1" | PHP_INI_SYSTEM |
mssql.batchsize | "0" | PHP_INI_ALL | Доступна с версии PHP 4.0.4.
mssql.compatability_mode | "0" | PHP_INI_ALL |
mssql.connect_timeout | "5" | PHP_INI_ALL |
mssql.datetimeconvert | "1" | PHP_INI_ALL | Доступна с версии PHP 4.2.0.
mssql.max_links | "-1" | PHP_INI_SYSTEM |
mssql.max_persistent | "-1" | PHP_INI_SYSTEM |
mssql.max_procs | "25" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
mssql.min_error_severity | "10" | PHP_INI_ALL |
mssql.min_message_severity | "10" | PHP_INI_ALL |
mssql.secure_connection | "0" | PHP_INI_SYSTEM | Доступна с версии PHP 4.3.0.
mssql.textlimit | "-1" | PHP_INI_ALL |
mssql.textsize | "-1" | PHP_INI_ALL |
mssql.timeout | "60" | PHP_INI_ALL | Доступна с версии PHP 4.1.0.
mysql.allow_persistent | "1" | PHP_INI_SYSTEM |
mysql.connect_timeout | "60" | PHP_INI_ALL | PHP_INI_SYSTEM в PHP <= 4.3.2. Доступна с версии PHP 4.3.0.
mysql.default_host | NULL | PHP_INI_ALL |
mysql.default_password | NULL | PHP_INI_ALL |
mysql.default_port | NULL | PHP_INI_ALL |
mysql.default_socket | NULL | PHP_INI_ALL | Доступна с версии PHP 4.0.1.
mysql.default_user | NULL | PHP_INI_ALL |
mysql.max_links | "-1" | PHP_INI_SYSTEM |
mysql.max_persistent | "-1" | PHP_INI_SYSTEM |
mysql.trace_mode | "0" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
mysqli.default_host | NULL | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
mysqli.default_port | "3306" | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
mysqli.default_pw | NULL | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
mysqli.default_socket | NULL | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
mysqli.default_user | NULL | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
mysqli.max_links | "-1" | PHP_INI_SYSTEM | Доступна с версии PHP 5.0.0.
mysqli.reconnect | "0" | PHP_INI_SYSTEM | Доступна с версии PHP 5.0.0.
namazu.debugmode | "0" | PHP_INI_ALL |
namazu.lang | NULL | PHP_INI_ALL |
namazu.loggingmode | "0" | PHP_INI_ALL |
namazu.sortmethod | NULL | PHP_INI_ALL |
namazu.sortorder | NULL | PHP_INI_ALL |
nsapi.read_timeout | "60" | PHP_INI_ALL | Доступна с версии PHP 4.3.3.
odbc.allow_persistent | "1" | PHP_INI_SYSTEM |
odbc.check_persistent | "1" | PHP_INI_SYSTEM |
odbc.defaultbinmode | "1" | PHP_INI_ALL |
odbc.defaultlrl | "4096" | PHP_INI_ALL |
odbc.default_db | NULL | PHP_INI_ALL |
odbc.default_pw | NULL | PHP_INI_ALL |
odbc.default_user | NULL | PHP_INI_ALL |
odbc.max_links | "-1" | PHP_INI_SYSTEM |
odbc.max_persistent | "-1" | PHP_INI_SYSTEM |
opendirectory.max_refs | "-1" | PHP_INI_ALL |
opendirectory.separator | "/" | PHP_INI_ALL |
open_basedir | NULL | PHP_INI_SYSTEM |
output_buffering | "0" | PHP_INI_PERDIR |
output_handler | NULL | PHP_INI_PERDIR | Доступна с версии PHP 4.0.4.
pdo.global_value | "42" | PHP_INI_ALL |
pfpro.defaulthost | "test-payflow.verisign.com" | PHP_INI_ALL | Доступна с версии PHP 4.0.2.
pfpro.defaultport | "443" | PHP_INI_ALL | Доступна с версии PHP 4.0.2.
pfpro.defaulttimeout | "30" | PHP_INI_ALL | Доступна с версии PHP 4.0.2.
pfpro.proxyaddress | "" | PHP_INI_ALL | Доступна с версии PHP 4.0.2.
pfpro.proxylogon | "" | PHP_INI_ALL | Доступна с версии PHP 4.0.2.
pfpro.proxypassword | "" | PHP_INI_ALL | Доступна с версии PHP 4.0.2.
pfpro.proxyport | "" | PHP_INI_ALL | Доступна с версии PHP 4.0.2.
pgsql.allow_persistent | "1" | PHP_INI_SYSTEM |
pgsql.auto_reset_persistent | "0" | PHP_INI_SYSTEM | Доступна с версии PHP 4.2.0.
pgsql.ignore_notice | "0" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
pgsql.log_notice | "0" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
pgsql.max_links | "-1" | PHP_INI_SYSTEM |
pgsql.max_persistent | "-1" | PHP_INI_SYSTEM |
post_max_size | "8M" | PHP_INI_PERDIR | PHP_INI_SYSTEM в PHP <= 4.2.3. Доступна с версии PHP 4.0.3.
precision | "14" | PHP_INI_ALL |
printer.default_printer | "" | PHP_INI_ALL |
realpath_cache_size | "16K" | PHP_INI_SYSTEM | Доступна с версии PHP 5-cvs.
realpath_cache_ttl | "120" | PHP_INI_SYSTEM | Доступна с версии PHP 5-cvs.
register_argc_argv | "1" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3.
register_globals | "0" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3.
register_long_arrays | "1" | PHP_INI_PERDIR | Доступна с версии PHP 5.0.0.
report_memleaks | "1" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
report_zend_debug | "1" | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
safe_mode | "0" | PHP_INI_SYSTEM |
safe_mode_allowed_env_vars | "PHP_" | PHP_INI_SYSTEM |
safe_mode_exec_dir | "" | PHP_INI_SYSTEM |
safe_mode_gid | "0" | PHP_INI_SYSTEM | Доступна с версии PHP 4.1.0.
safe_mode_include_dir | NULL | PHP_INI_SYSTEM | Доступна с версии PHP 4.1.0.
safe_mode_protected_env_vars | "LD_LIBRARY_PATH" | PHP_INI_SYSTEM |
sendmail_from | NULL | PHP_INI_ALL |
sendmail_path | NULL | PHP_INI_SYSTEM |
serialize_precision | "100" | PHP_INI_ALL | Доступна с версии PHP 4.3.2.
session.auto_start | "0" | PHP_INI_ALL |
session.bug_compat_42 | "1" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
session.bug_compat_warn | "1" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
session.cache_expire | "180" | PHP_INI_ALL |
session.cache_limiter | "nocache" | PHP_INI_ALL |
session.cookie_domain | "" | PHP_INI_ALL |
session.cookie_lifetime | "0" | PHP_INI_ALL |
session.cookie_path | "/" | PHP_INI_ALL |
session.cookie_secure | "" | PHP_INI_ALL | Доступна с версии PHP 4.0.4.
session.entropy_file | "" | PHP_INI_ALL |
session.entropy_length | "0" | PHP_INI_ALL |
session.gc_divisor | "100" | PHP_INI_ALL | Доступна с версии PHP 4.3.2.
session.gc_maxlifetime | "1440" | PHP_INI_ALL |
session.gc_probability | "1" | PHP_INI_ALL |
session.hash_bits_per_character | "4" | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
session.hash_function | "0" | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
session.name | "PHPSESSID" | PHP_INI_ALL |
session.referer_check | "" | PHP_INI_ALL |
session.save_handler | "files" | PHP_INI_ALL |
session.save_path | "" | PHP_INI_ALL |
session.serialize_handler | "php" | PHP_INI_ALL |
session.use_cookies | "1" | PHP_INI_ALL |
session.use_only_cookies | "0" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
session.use_trans_sid | "0" | PHP_INI_ALL | PHP_INI_ALL в PHP <= 4.2.3. PHP_INI_PERDIR in PHP <= 4-cvs. Доступна с версии PHP 4.0.3.
session_pgsql.create_table | "1" | PHP_INI_SYSTEM |
session_pgsql.db | "host=localhost dbname=php_session user=nobody" | PHP_INI_SYSTEM |
session_pgsql.disable | "0" | PHP_INI_SYSTEM |
session_pgsql.failover_mode | "0" | PHP_INI_SYSTEM |
session_pgsql.gc_interval | "3600" | PHP_INI_SYSTEM |
session_pgsql.keep_expired | "0" | PHP_INI_SYSTEM |
session_pgsql.sem_file_name | "/tmp/php_session_pgsql" | PHP_INI_SYSTEM |
session_pgsql.serializable | "0" | PHP_INI_SYSTEM |
session_pgsql.short_circuit | "0" | PHP_INI_SYSTEM |
session_pgsql.use_app_vars | "0" | PHP_INI_SYSTEM |
session_pgsql.vacuum_interval | "21600" | PHP_INI_SYSTEM |
short_open_tag | "1" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.0.0.
simple_cvs.authMethod | "0" | PHP_INI_ALL |
simple_cvs.compressionLevel | "0" | PHP_INI_ALL |
simple_cvs.cvsRoot | "0" | PHP_INI_ALL |
simple_cvs.host | "0" | PHP_INI_ALL |
simple_cvs.moduleName | "0" | PHP_INI_ALL |
simple_cvs.userName | "0" | PHP_INI_ALL |
simple_cvs.workingDir | "0" | PHP_INI_ALL |
SMTP | "localhost" | PHP_INI_ALL |
smtp_port | "25" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
soap.wsdl_cache_dir | "/tmp" | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
soap.wsdl_cache_enabled | "1" | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
soap.wsdl_cache_ttl | "86400" | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
sql.safe_mode | "0" | PHP_INI_SYSTEM |
sqlite.assoc_case | "0" | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
sybct.allow_persistent | "1" | PHP_INI_SYSTEM | Доступна с версии PHP 4.0.4.
sybct.deadlock_retry_count | "0" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
sybct.hostname | NULL | PHP_INI_ALL | Доступна с версии PHP 4.0.4.
sybct.login_timeout | "-1" | PHP_INI_ALL | Доступна с версии PHP 4.3.5.
sybct.max_links | "-1" | PHP_INI_SYSTEM | Доступна с версии PHP 4.0.4.
sybct.max_persistent | "-1" | PHP_INI_SYSTEM | Доступна с версии PHP 4.0.4.
sybct.min_client_severity | "10" | PHP_INI_ALL | Доступна с версии PHP 4.0.4.
sybct.min_server_severity | "10" | PHP_INI_ALL | Доступна с версии PHP 4.0.4.
tidy.clean_output | "0" | PHP_INI_PERDIR | Доступна с версии PHP 5.0.0.
tidy.default_config | "" | PHP_INI_SYSTEM | Доступна с версии PHP 5.0.0.
track_errors | "0" | PHP_INI_ALL |
unserialize_callback_func | NULL | PHP_INI_ALL | Доступна с версии PHP 4.2.0.
upload_max_filesize | "2M" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3.
upload_tmp_dir | NULL | PHP_INI_SYSTEM |
url_rewriter.tags | "a=href,area=href,frame=src,form=,fieldset=" | PHP_INI_ALL | Доступна с версии PHP 4.0.4.
user_agent | NULL | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
user_dir | NULL | PHP_INI_SYSTEM |
valkyrie.auto_validate | "0" | PHP_INI_ALL |
valkyrie.config_path | NULL | PHP_INI_ALL |
variables_order | "EGPCS" | PHP_INI_ALL |
xbithack | "0" | PHP_INI_ALL | Доступна с версии PHP 4.0.5.
xmlrpc_errors | "0" | PHP_INI_SYSTEM | Доступна с версии PHP 4.1.0.
xmlrpc_error_number | "0" | PHP_INI_ALL | Доступна с версии PHP 4.1.0.
xmms.path | "/usr/bin/xmms" | PHP_INI_ALL |
xmms.session | "0" | PHP_INI_ALL |
y2k_compliance | "1" | PHP_INI_ALL |
yaz.keepalive | "120" | PHP_INI_ALL |
yaz.log_file | NULL | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
yaz.log_mask | NULL | PHP_INI_ALL |
yaz.max_links | "100" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
zend.ze1_compatibility_mode | "0" | PHP_INI_ALL | Доступна с версии PHP 5.0.0.
zlib.output_compression | "0" | PHP_INI_ALL | Доступна с версии PHP 4.0.5.
zlib.output_compression_level | "-1" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
zlib.output_handler | "" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.

Таблица G-2. Определение констант PHP_INI_*

Константа | Значение | Смысл
PHP_INI_USER | 1 | Опция может быть установлена в пользовательских скриптах
PHP_INI_PERDIR | 2 | Опция может быть установлена в php.ini, .htaccess или httpd.conf
PHP_INI_SYSTEM | 4 | Опция может быть установлена в php.ini или httpd.conf
PHP_INI_ALL | 7 | Опция может быть установлена где угодно

Пред. | Начало | След.
Configure options | Уровень выше | Описание встроенных директив php.ini


Описание встроенных директив php.ini

Этот список включает встроенные директивы php.ini которые вы можете использовать для настроки PHP. Директивы, которые обрабатываются модулями, перечислены и подробно описаны на страницах документаций соответствующих модулей; К примеру, информация о директивах сессий может быть найдена на странице сессий.

Опции Httpd

Таблица G-3. Опции Httpd

Имя | По умолчанию | Изменяемый | Список изменений
async_send | "0" | PHP_INI_ALL |

Языковые опции

Таблица G-4. Опции языка и прочих настроек

Имя | По умолчанию | Изменяемый | Список изменений
short_open_tag | "1" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.0.0.
asp_tags | "0" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.0.0.
precision | "14" | PHP_INI_ALL |
y2k_compliance | "1" | PHP_INI_ALL |
allow_call_time_pass_reference | "1" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.0.0.
expose_php | "1" | Только php.ini |
zend.ze1_compatibility_mode | "0" | PHP_INI_ALL | Доступна с версии PHP 5.0.0.

Краткое разъяснение конфигурационных директив.

short_open_tag boolean

Определяет, разрешается ли короткая форма записи (<? ?>) тегов PHP. Если вы хотите использовать PHP в комбинации с XML, вы можете отключить эту опцию, чтобы беспрепятственно использовать <?xml ?>. В противном случае, вы можете отобразить это при помощи PHP, например: <?php echo '<?xml version="1.0"'; ?>. Если же эта опция отключена, вы должны использовать длинную форму открывающего тега PHP (<?php ?>).

Замечание: Эта директива также влияет на сокращение <?=, которое идентично записи <? echo. Для использования этого сокращения, директива short_open_tag должна быть включена.

asp_tags boolean

Включает использование тегов в стиле ASP в дополнение к обычным тегам <?php ?>. Это касается и сокращения для отображения значения переменных <%= $value %>. Для получения дополнительной информации, обратитесь к разделу Вставка в HTML.

Замечание: Поддержка тегов в стиле ASP выла добавлена в версии PHP 3.0.4.

precision integer

Количество значащих цифр, отображаемых для десятичных дробей.

y2k_compliance boolean

Включение совместимости с 2000 годом (создаст проблемы с несовместимыми браузерами).

allow_call_time_pass_reference boolean

Включена ли возможность жёсткой передачи аргументов по ссылке во время вызова функции. Этот метод является устаревшим и скорее всего не будет поддерживаться будущими версиями PHP/Zend. Рекомендуемым методом указания, какие аргументы должны быть переданы по ссылке, является указание этого при объявлении функции. Вам рекомендуется попытаться отключить эту опцию, чтобы убедиться, что ваши скрипты будут правильно работают без неё и что они будут работать с будущими версиями языка (вы будете получать предупреждение каждый раз, когда вы будете пользоваться этим методом, и аргументы будут передаваться по значению, а не по ссылке).

Передача аргументов по ссылке во время вызова функции была объявлена устаревшей из соображений чистоты кода. Функция может менять свои аргументы недокументированным способом, если бы не требовалось объявление передачи аргумента по ссылке. Чтобы избежать побочных эффектов, лучше явно указывать, какие аргументы передаются по ссылке только при объявлении функции.

См. также Ссылки - подробное описание.

expose_php boolean

Определяет, разрешено ли PHP выдавать факт своего присутствия на сервере (например, добавляя свою подпись в заголовок веб-сервера). Ни в коей мере это не является угрозой безопасности, но это даёт возможность определить, используете ли вы PHP на своём сервере.

zend.ze1_compatibility_mode boolean

Включает режим совместимости с Zend Engine 1 (PHP 4). Это влияет на клонирование, приведение типов и сравнение объектов.

См. также раздел Миграция из PHP 4 в PHP 5.

Ограничения ресурсов

Таблица G-5. Ограничения ресурсов

Имя | По умолчанию | Изменяемый | Список изменений
memory_limit | "8M" | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

memory_limit integer

Эта директива задаёт максимальный объём памяти в байтах, который разрешается использовать скрипту. Это помогает предотвратить ситуацию, при которой плохо написанный скрипт съедает всю доступную память сервера. Для того, чтобы использовать эту директиву, вы должны указать её на этапе компиляции. Так, ваша строка конфигурации должна включать: --enable-memory-limit. Обратите внимание, что вы должны установить эту директиву в -1, если не хотите ограничивать объём памяти.

Начиная с версии PHP 4.3.2, если memory_limit включён, стала доступна функция PHP memory_get_usage().

Если используется integer, значение измеряется байтами. Вы также можете использовать сокращённую запись, которая описана в этом разделе FAQ.

См. также: max_execution_time.

Обработка данных

Таблица G-6. Конфигурационные опции обработки данных

Имя | По умолчанию | Изменяемый | Список изменений
track_vars | "On" | PHP_INI_?? |
arg_separator.output | "&" | PHP_INI_ALL | Доступна с версии PHP 4.0.5.
arg_separator.input | "&" | PHP_INI_PERDIR | Доступна с версии PHP 4.0.5.
variables_order | "EGPCS" | PHP_INI_ALL |
register_globals | "0" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3.
register_argc_argv | "1" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3.
register_long_arrays | "1" | PHP_INI_PERDIR | Доступна с версии PHP 5.0.0.
post_max_size | "8M" | PHP_INI_PERDIR | PHP_INI_SYSTEM в PHP <= 4.2.3. Доступна с версии PHP 4.0.3.
gpc_order | "GPC" | PHP_INI_ALL |
auto_prepend_file | NULL | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3.
auto_append_file | NULL | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3.
default_mimetype | "text/html" | PHP_INI_ALL |
default_charset | "" | PHP_INI_ALL |
always_populate_raw_post_data | "0" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3. Доступна с версии PHP 4.1.0.
allow_webdav_methods | "0" | PHP_INI_PERDIR |

Краткое разъяснение конфигурационных директив.

track_vars boolean

Если включено, переменные окружения, GET, POST, Cookie и серверные переменные могут быть получены через глобальные ассоциативные массивы $_ENV, $_GET, $_POST, $_COOKIE и $_SERVER.

Обратите внимание, что начиная с версии PHP 4.0.3, track_vars всегда включена.

arg_separator.output string

Этот разделитель используется в генерируемых PHP URL'ах в качестве разделителя аргументов.

arg_separator.input string

Список разделителей, используемых PHP для получения переменных из URL'ов.

Замечание: Каждый символ в этой директиве считается разделителем!

variables_order string

Устанавливает порядок обработки переменных EGPCS (Environment, GET, POST, Cookie, Server). Значением по умолчанию для этой директивы является "EGPCS". Установка её в "GP", к примеру, заставит PHP полностью игнорировать переменные окружения, cookie и сервера, а так же перезаписать любую GET-переменную POST-переменной с таким же именем.

См. также register_globals.

auto_globals_jit boolean

Когда включено, переменные SERVER и ENV создаются в тот момент, когда они впервые используются (Just In Time), а не в начале выполнения скрипта. Если эти переменные в скрипте не используются, включение этой директивы приведёт к росту производительности.

Директивы PHP register_globals, register_long_arrays и register_argc_argv должны быть выключены для того, чтобы эта директива работала.

register_globals boolean

Регистрировать или нет переменные EGPCS (Environment, GET, POST, Cookie, Server) в качестве глобальных переменных.

Начиная с версии PHP 4.2.0, значением по умолчанию для этой директивы является off.

Пожалуйста, ознакомтесь с главой о безопасности Использование глобальных переменных для получения дополнительной информации.

Обратите внимание, что register_globals не может быть установлена во время выполнения скрипта (ini_set()). Тем не менее, вы можете использовать .htaccess, если ваш сервер позволяет это, как описано выше. Пример директивы в .htaccess: php_flag register_globals off.

Замечание: На поведение register_globals влияет директива variables_order.

register_argc_argv boolean

Сообщает PHP, следует ли объявляеть переменные argv и argc (которые будут содержать GET-информацию).

См. также Использование PHP в командной строке. Эта директива стала доступна начиная с версии PHP 4.0.0 и до этого была всегда включена.

register_long_arrays boolean

Сообщает PHP, следует ли регистрировать устаревшие длинные предопределенные переменные типа $HTTP_*_VARS. Если включены (по умолчанию), длинные предопределенные переменные PHP, например $HTTP_GET_VARS, будут объявлены. Если вы их не используете, рекомендуем отключить их из соображений производительности. Вместо них следует использовать суперглобальные массивы, например $_GET.

Эта директива стала доступна начиная с версии PHP 5.0.0.

post_max_size integer

Устанавливает максимальный допустимый размер POST-данных. Это свойство также влияет на закачиваемые файлы. Чтобы закачивать большие файлы, это значение должно быть выше upload_max_filesize.

Если в вашем конфигурационном скрипте включено ограничение памяти, memory_limit также будет влиять на закачивание файлов. Проще говоря, memory_limit должна быть больше чем post_max_size.

Если используется integer, значение измеряется байтами. Вы также можете использовать сокращённую запись, которая описана в этом разделе FAQ.

gpc_order string

Устанавливает порядок обработки переменных GET/POST/COOKIE. Значением по умолчанию для этой директивы является "GPC". Установка её в "GP", к примеру, приведёт к тому, что PHP будет полностью игнорировать cookies и перезапишет любую GET-переменную POST-переменной с таким же именем.

Замечание: Эта опция не доступна в PHP 4. Вместо неё используйте variables_order.

auto_prepend_file string

Определяет имя файла, который будет автоматически обрабатываться перед главным файлом. Файл вызывается так, будто он был подключён при помощи функции include(), так что используется include_path.

Специальное значение none отключает эту директиву.

auto_append_file string

Определяет имя файла, который будет автоматически обрабатываться после главного файла. Файл вызывается так, будто он был подключён при помощи функции include(), так что используется include_path.

Специальное значение none отключает эту директиву.

Замечание: Если скрипт завершает работу при помощи exit(), auto_append_file НЕ выполняется.

default_mimetype string

default_charset string

Начиная с версии 4.0b4, PHP всегда отправляет кодировку по умолчанию в заголовке Content-Type. Чтобы отключить отправку кодировки, просто установите её пустой строкой.

always_populate_raw_post_data boolean

Всегда объявлять переменную $HTTP_RAW_POST_DATA.

allow_webdav_methods boolean

Разрешает обработку HTTP-запросов WebDAV при помощи PHP-скриптов (например PROPFIND, PROPPATCH, MOVE, COPY и т.д.). Эта директива не существует начиная с версии PHP 4.3.2. Если вы хотите получить POST-данные этих запросов, вы должны также включить always_populate_raw_post_data.

См. также: magic_quotes_gpc, magic_quotes_runtime и magic_quotes_sybase.

Пути и Директории

Таблица G-7. Конфигурационные Опции Путей и Директорий

Имя | По умолчанию | Изменяемый | Список изменений
include_path | ".;/path/to/php/pear" | PHP_INI_ALL |
doc_root | NULL | PHP_INI_SYSTEM |
user_dir | NULL | PHP_INI_SYSTEM |
extension_dir | "/path/to/php" | PHP_INI_SYSTEM |
cgi.fix_pathinfo | "0" | PHP_INI_SYSTEM |
cgi.force_redirect | "1" | PHP_INI_SYSTEM |
cgi.redirect_status_env | "" | PHP_INI_SYSTEM |
fastcgi.impersonate | "0" | PHP_INI_SYSTEM |
cgi.rfc2616_headers | "0" | PHP_INI_SYSTEM |

Краткое разъяснение конфигурационных директив.

include_path string

Указывает список директорий, в которых функции require(), include() и fopen_with_path() ищут файлы. Формат соответствует формату переменной окружения PATH вашей системы: список директорий, разделённых двоеточием в Unix или точкой с запятой в Windows.

Пример G-1. include_path в Unix

include_path=".:/php/includes"

Пример G-2. include_path в Windows

include_path=".;c:\php\includes"

Использование . в include_path позволяет задавать относительные пути для подключения файлов, так как точка означает текущую директорию.

doc_root string

"Корневая директория" PHP на этом сервере. Используется только в случае, если не пустая. Если PHP сконфигурирован с безопасный режим, файлы вне этой директории не обрабатываются. Если PHP не был скомпилирова с FORCE_REDIRECT, вам следует установить doc_root, если вы используете PHP в качестве CGI под любым веб-сервером (кроме IIS). Альтернативой является использование конфигурационной директивы cgi.force_redirect, речь о которой идёт ниже.

user_dir string

Базовое имя директории, используемой в домашнем каталоге пользователя для PHP файлов, например public_html.

extension_dir string

В какой директории PHP должен искать динамически загружаемые расширения. См. также: enable_dl и dl().

extension string

Which dynamically loadable extensions to load when PHP starts up.

cgi.fix_pathinfo boolean

Обеспечивает поддержку правильных PATH_INFO/PATH_TRANSLATED в CGI. Раньше PHP просто устанавливал PATH_TRANSLATED в SCRIPT_FILENAME и не обращал внимания на PATH_INFO. Для получения дополнительной информации о PATH_INFO, обратитесь к спецификации CGI. Установка этого значения в 1 заставит PHP CGI исправлять свой путь в соответствии со спецификацией. Значение 0 соответствует предыдущему поведению. По умолчанию установлен 0. Вы должны исправить свои скрипты так, чтобы они использовали SCRIPT_FILENAME вместо PATH_TRANSLATED.

cgi.force_redirect boolean

Директива cgi.force_redirect необходима для обеспечения безопасности во время работы PHP в качестве CGI под большинством веб-серверов. Если оставить неопределённым, по умолчанию PHP включает эту директиву. Вы можете выключить её на свой страх и риск.

Замечание: Пользователям Windows: Вы можете безопасно выключить её под IIS. Более того, вы должны это сделать. Чтобы заставить OmniHTTPD или Xitami работать, вы должны отключить эту директиву.

cgi.redirect_status_env string

Если cgi.force_redirect включена и вы работаете не под веб-сервером Apache или Netscape (iPlanet), вам может понадобится установить переменную окружения, которую будет искать PHP чтобы убедится, что он может продолжать выполнение.

Замечание: Установка этой переменной может повлечь за собой проблемы с безопасностью, так что вы должны знать, что вы делаете.

fastcgi.impersonate string

FastCGI под IIS (в ОС на базе WINNT) поддерживает возможность имперсонации прав безопасности вызывающего клиента. Это позволяет IIS определить контекст безопасности, в котором выполняется запрос. mod_fastcgi под Apache на текущий момент не поддерживает эту возможность (03/17/2002). Установите в 1 при работе под IIS. Значение по умолчанию - ноль.

cgi.rfc2616_headers int

Сообщает PHP, какой тип заголовков использовать при отправке кода ответа HTTP. Если установлено в 0, PHP отправляет заголовок "Status:", который поддерживается Apache и другими веб-серверами. Если установлено в 1, PHP отправляет заголовок, соответствующий RFC 2616. Оставьте в значении 0, если вы не уверены в том, что это значит.

Закачивание Файлов

Таблица G-8. Конфигурационные Опции Закачивания Файлов

Имя | По умолчанию | Изменяемый | Список изменений
file_uploads | "1" | PHP_INI_SYSTEM | PHP_INI_ALL в PHP <= 4.2.3. Доступна с версии PHP 4.0.3.
upload_tmp_dir | NULL | PHP_INI_SYSTEM |
upload_max_filesize | "2M" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3.

Краткое разъяснение конфигурационных директив.

file_uploads boolean

Разрешать или не разрешать закачивание файлов по HTTP. См. также директивы upload_max_filesize, upload_tmp_dir и post_max_size.

Если используется integer, значение измеряется байтами. Вы также можете использовать сокращённую запись, которая описана в этом разделе FAQ.

upload_tmp_dir string

Временная директория, используемая для хранения файлов во время закачивания. Должна быть доступна для записи пользователю, от имени которого запущен PHP. Если не указана, используется директория по умолчанию для вашей системы.

upload_max_filesize integer

Максимальный размер закачиваемого файла.

Если используется integer, значение измеряется байтами. Вы также можете использовать сокращённую запись, которая описана в этом разделе FAQ.

Общий SQL

Таблица G-9. Конфигурационные Опции Общего SQL

Имя | По умолчанию | Изменяемый | Список изменений
sql.safe_mode | "0" | PHP_INI_SYSTEM |

Краткое разъяснение конфигурационных директив.

sql.safe_mode boolean

Конфигурационные Директивы Отладчика

Предостережение

Отладчик по умолчанию реализован только в PHP 3. Для получения дополнительной информации обратитесь к разделу Прил. E.

debugger.host string

Имя DNS или IP адрес хоста, используемый отладчиком.

debugger.port string

Номер порта, используемый отладчиком.

debugger.enabled boolean

Определяет, включён ли отладчик.

Пред. | Начало | След.
Директивы php.ini | Уровень выше | List of Supported Timezones


Установка и настройка

Руководство по PHP
Пред. След.

II. Установка и настройка

Содержание
3. General Installation Considerations
4. Installation on Unix systems
5. Installation on Mac OS X
6. Installation on Windows systems
7. Installation of PECL extensions
8. Problems?
9. Runtime Configuration

Пред. | Начало | След.
Что дальше? |  | General Installation Considerations


General Installation Considerations

Руководство по PHP
Пред. След.

Глава 3. General Installation Considerations

Before starting the installation, first you need to know what do you want to use PHP for. There are three main fields you can use PHP, as described in the What can PHP do? section:

  • Server-side scripting

  • Command line scripting

  • Client-side GUI applications

For the first and most common form, you need three things: PHP itself, a web server and a web browser. You probably already have a web browser, and depending on your operating system setup, you may also have a web server (e.g. Apache on Linux and MacOS X; IIS on Windows). You may also rent webspace at a company. This way, you don't need to set up anything on your own, only write your PHP scripts, upload it to the server you rent, and see the results in your browser.

While setting up the server and PHP on your own, you have two choices for the method of connecting PHP to the server. For many servers PHP has a direct module interface (also called SAPI). These servers include Apache, Microsoft Internet Information Server, Netscape and iPlanet servers. Many other servers have support for ISAPI, the Microsoft module interface (OmniHTTPd for example). If PHP has no module support for your web server, you can always use it as a CGI or FastCGI processor. This means you set up your server to use the CGI executable of PHP to process all PHP file requests on the server.

If you are also interested to use PHP for command line scripting (e.g. write scripts autogenerating some images for you offline, or processing text files depending on some arguments you pass to them), you always need the command line executable. For more information, read the section about writing command line PHP applications. In this case, you need no server and no browser.

With PHP you can also write desktop GUI applications using the PHP-GTK extension. This is a completely different approach than writing web pages, as you do not output any HTML, but manage windows and objects within them. For more information about PHP-GTK, please visit the site dedicated to this extension. PHP-GTK is not included in the official PHP distribution.

From now on, this section deals with setting up PHP for web servers on Unix and Windows with server module interfaces and CGI executables. You will also find information on the command line executable in the following sections.

PHP source code and binary distributions for Windows can be found at http://www.php.net/downloads.php. We recommend you to choose a mirror nearest to you for downloading the distributions.

Пред. | Начало | След.
Установка и настройка | Уровень выше | Installation on Unix systems


Installation on Mac OS X

Руководство по PHP
Пред. След.

Глава 5. Installation on Mac OS X

Содержание
Using Packages
Compiling for OS X Server
Compiling for MacOS X Client

This section contains notes and hints specific to installing PHP on Mac OS X. There are two slightly different versions of Mac OS X, Client and Server, our manual deals with installing PHP on both systems. Note that PHP is not available for MacOS 9 and earlier versions.

Using Packages

There are a few pre-packaged and pre-compiled versions of PHP for Mac OS X. This can help in setting up a standard configuration, but if you need to have a different set of features (such as a secure server, or a different database driver), you may need to build PHP and/or your web server yourself. If you are unfamiliar with building and compiling your own software, it's worth checking whether somebody has already built a packaged version of PHP with the features you need.

Пред. | Начало | След.
Debian GNU/Linux installation notes | Уровень выше | Compiling for OS X Server


Compiling for MacOS X Client

The following instructions will help you install a PHP module for the Apache web server included in MacOS X. This version includes support for the MySQL and PostgreSQL databases. These instructions are graciously provided by Marc Liyanage.

Внимание

Be careful when you do this, you could screw up your Apache web server!

Do this to install:

  1. Open a terminal window.

  2. Type wget http://www.diax.ch/users/liyanage/software/macosx/libphp4.so.gz, wait for the download to finish.

  3. Type gunzip libphp4.so.gz.

  4. Type sudo apxs -i -a -n php4 libphp4.so

  5. Now type sudo open -a TextEdit /etc/httpd/httpd.conf. TextEdit will open with the web server configuration file. Locate these two lines towards the end of the file: (Use the Find command)
    #AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
    Remove the two hash marks (#), then save the file and quit TextEdit.

  6. Finally, type sudo apachectl graceful to restart the web server.

PHP should now be up and running. You can test it by dropping a file into your Sites folder which is called test.php. Into that file, write this line: <?php phpinfo() ?>.

Now open up 127.0.0.1/~your_username/test.php in your web browser. You should see a status table with information about the PHP module.

Пред. | Начало | След.
Compiling for OS X Server | Уровень выше | Installation on Windows systems


Compiling for OS X Server

Mac OS X Server install.

  1. Get the latest distributions of Apache and PHP.

  2. Untar them, and run the configure program on Apache like so.
    ./configure --exec-prefix=/usr \
--localstatedir=/var \
--mandir=/usr/share/man \
--libexecdir=/System/Library/Apache/Modules \
--iconsdir=/System/Library/Apache/Icons \
--includedir=/System/Library/Frameworks/Apache.framework/Versions/1.3/Headers \
--enable-shared=max \
--enable-module=most \
--target=apache

  3. If you want the compiler to do some optimization, you may also want to add this line:
    setenv OPTIM=-O2

  4. Next, go to the PHP 4 source directory and configure it.
    ./configure --prefix=/usr \
    --sysconfdir=/etc \
    --localstatedir=/var \
    --mandir=/usr/share/man \
    --with-xml \
    --with-apache=/src/apache_1.3.12
    If you have any other additions (MySQL, GD, etc.), be sure to add them here. For the --with-apache string, put in the path to your apache source directory, for example /src/apache_1.3.12.

  5. Type make and make install. This will add a directory to your Apache source directory under src/modules/php4.

  6. Now, reconfigure Apache to build in PHP 4.
    ./configure --exec-prefix=/usr \
--localstatedir=/var \
--mandir=/usr/share/man \
--libexecdir=/System/Library/Apache/Modules \
--iconsdir=/System/Library/Apache/Icons \
--includedir=/System/Library/Frameworks/Apache.framework/Versions/1.3/Headers \
--enable-shared=max \
--enable-module=most \
--target=apache \
--activate-module=src/modules/php4/libphp4.a
    You may get a message telling you that libmodphp4.a is out of date. If so, go to the src/modules/php4 directory inside your Apache source directory and run this command: ranlib libmodphp4.a. Then go back to the root of the Apache source directory and run the above configure command again. That'll bring the link table up to date. Run make and make install again.

  7. Copy and rename the php.ini-dist file to your bin directory from your PHP 4 source directory: cp php.ini-dist /usr/local/bin/php.ini or (if your don't have a local directory) cp php.ini-dist /usr/bin/php.ini.

Пред. | Начало | След.
Installation on Mac OS X | Уровень выше | Compiling for MacOS X Client


Installation of PECL extensions

Руководство по PHP
Пред. След.

Глава 7. Installation of PECL extensions

Содержание
Introduction to PECL Installations
Downloading PECL extensions
PECL for Windows users
Compiling shared PECL extensions with PEAR
Compiling shared PECL extensions with phpize
Compiling PECL extensions statically into PHP

Introduction to PECL Installations

PECL is a repository of PHP extensions that are made available to you via the PEAR packaging system. This section of the manual is intended to demonstrate how to obtain and install PECL extensions.

These instructions assume /your/phpsrcdir/ is the path to the PHP source distribution, and that extname is the name of the PECL extension. Adjust accordingly. These instructions also assume a familiarity with the pear command.

To be useful, a shared extension must be built, installed, and loaded. The methods described below provide you with various instructions on how to build and install the extensions, but they do not automatically load them. Extensions can be loaded by adding an extension directive. To this php.ini file, or through the use of the dl() function.

When building PHP modules, it's important to have known-good versions of the required tools (autoconf, automake, libtool, etc.) See the Anonymous CVS Instructions for details on the required tools, and required versions.

Пред. | Начало | След.
Installation of extensions on Windows | Уровень выше | Downloading PECL extensions


Downloading PECL extensions

There are several options for downloading PECL extensions, such as:

  • http://pecl.php.net

    The PECL web site contains information about the different extensions that are offered by the PHP Development Team. The information available here includes: ChangeLog, release notes, requirements and other similar details.

  • pear download extname

    PECL extensions that have releases listed on the PECL web site are available for download and installation using the pear command. Specific revisions may also be specified.

  • CVS

    Most PECL extensions also reside in CVS. A web-based view may be seen at http://cvs.php.net/pecl/. To download straight from CVS, the following sequence of commands may be used. Note that phpfi is the password for user cvsread:

    $ cvs -d:pserver:cvsread@cvs.php.net:/repository login
$ cvs -d:pserver:cvsread@cvs.php.net:/repository co pecl/extname

  • Windows downloads

    Windows users may find compiled PECL binaries by downloading the Collection of PECL modules from the PHP Downloads page, and by retrieving a PECL Snapshot. To compile PHP under Windows, read the Win32 Build README.

Пред. | Начало | След.
Installation of PECL extensions | Уровень выше | PECL for Windows users


Compiling shared PECL extensions with PEAR

PEAR makes it easy to create shared PHP extensions. Using the pear command, do the following:

$ pear install extname

This will download the source for extname, compile, and install extname.so into your extension_dir. extname.so may then be loaded via php.ini

By default, the pear command will not install packages that are marked with the alpha or beta state. If no stable packages are available, you may install a beta package using the following command:

$ pear install extname-beta

You may also install a specific version using this variant:

$ pear install extname-0.1

Пред. | Начало | След.
PECL for Windows users | Уровень выше | Compiling shared PECL extensions with phpize


Compiling shared PECL extensions with phpize

Sometimes, using the pear installer is not an option. This could be because you're behind a firewall, or it could be because the extension you want to install is not available as a PEAR compatible package, such as unreleased extensions from CVS. If you need to build such an extension, you can use the lower-level build tools to perform the build manually.

The phpize command is used to prepare the build environment for a PHP extension. In the following sample, the sources for an extension are in a directory named extname:

$ cd extname
$ phpize
$ ./configure
$ make
# make install

A successful install will have created extname.so and put it into the PHP extensions directory. You'll need to and adjust php.ini and add an extension=extname.so line before you can use the extension.

Пред. | Начало | След.
Compiling shared PECL extensions with PEAR | Уровень выше | Compiling PECL extensions statically into PHP


Compiling PECL extensions statically into PHP

You might find that you need to build a PECL extension statically into your PHP binary. To do this, you'll need to place the extension source under the php-src/ext/ directory and tell the PHP build system to regenerate its configure script.

$ cd /your/phpsrcdir/ext
$ pear download extname
$ gzip -d < extname.tgz | tar -xvf -
$ mv extname-x.x.x extname

This will result in the following directory:

/your/phpsrcdir/ext/extname

From here, force PHP to rebuild the configure script, and then build PHP as normal:

$ cd /your/phpsrcdir
$ rm configure
$ ./buildconf --force
$ ./configure --help
$ ./configure --with-extname --enable-someotherext --with-foobar
$ make
$ make install

Замечание: To run the 'buildconf' script you need autoconf 2.13 and automake 1.4+ (newer versions of autoconf may work, but are not supported).

Whether --enable-extname or --with-extname is used depends on the extension. Typically an extension that does not require external libraries uses --enable. To be sure, run the following after buildconf:

$ ./configure --help | grep extname

Пред. | Начало | След.
Compiling shared PECL extensions with phpize | Уровень выше | Problems?


PECL for Windows users

As with any other PHP extension DLL, installation is as simple as copying the PECL extension DLLs into the extension_dir folder and loading them from php.ini. For example, add the following line to your php.ini:

extension=php_extname.dll

After doing this, restart the web server.

Пред. | Начало | След.
Downloading PECL extensions | Уровень выше | Compiling shared PECL extensions with PEAR


Problems?

Руководство по PHP
Пред. След.

Глава 8. Problems?

Содержание
Read the FAQ
Other problems
Bug reports

Read the FAQ

Some problems are more common than others. The most common ones are listed in the PHP FAQ, part of this manual.

Пред. | Начало | След.
Compiling PECL extensions statically into PHP | Уровень выше | Other problems


Bug reports

If you think you have found a bug in PHP, please report it. The PHP developers probably don't know about it, and unless you report it, chances are it won't be fixed. You can report bugs using the bug-tracking system at http://bugs.php.net/. Please do not send bug reports in mailing list or personal letters. The bug system is also suitable to submit feature requests.

Read the How to report a bug document before submitting any bug reports!

Пред. | Начало | След.
Other problems | Уровень выше | Runtime Configuration


Other problems

If you are still stuck, someone on the PHP installation mailing list may be able to help you. You should check out the archive first, in case someone already answered someone else who had the same problem as you. The archives are available from the support page on http://www.php.net/support.php. To subscribe to the PHP installation mailing list, send an empty mail to php-install-subscribe@lists.php.net. The mailing list address is php-install@lists.php.net.

If you want to get help on the mailing list, please try to be precise and give the necessary details about your environment (which operating system, what PHP version, what web server, if you are running PHP as CGI or a server module, безопасный режим, etc...), and preferably enough code to make others able to reproduce and test your problem.

Пред. | Начало | След.
Problems? | Уровень выше | Bug reports


Installation on Unix systems

Руководство по PHP
Пред. След.

Глава 4. Installation on Unix systems

Содержание
Apache 1.3.x on Unix systems
Apache 2.0 on Unix systems
Caudium
fhttpd related notes
Sun, iPlanet and Netscape servers on Sun Solaris
CGI and commandline setups
HP-UX specific installation notes
OpenBSD installation notes
Solaris specific installation tips
Gentoo installation notes
Debian GNU/Linux installation notes

This section will guide you through the general configuration and installation of PHP on Unix systems. Be sure to investigate any sections specific to your platform or web server before you begin the process.

As our manual outlines in the General Installation Considerations section, we are mainly dealing with web centric setups of PHP in this section, although we will cover setting up PHP for command line usage as well.

There are several ways to install PHP for the Unix platform, either with a compile and configure process, or through various pre-packaged methods. This documentation is mainly focused around the process of compiling and configuring PHP. Many Unix like systems have some sort of package installation system. This can assist in setting up a standard configuration, but if you need to have a different set of features (such as a secure server, or a different database driver), you may need to build PHP and/or your webserver. If you are unfamiliar with building and compiling your own software, it is worth checking to see whether somebody has already built a packaged version of PHP with the features you need.

Prerequisite knowledge and software for compiling:

  • Basic Unix skills (being able to operate "make" and a C compiler)

  • An ANSI C compiler

  • flex: Version 2.5.4

  • bison: Version 1.28 (preferred), 1.35, or 1.75

  • A web server

  • Any module specific components (such as gd, pdf libs, etc.)

The initial PHP setup and configuration process is controlled by the use of the commandline options of the configure script. You could get a list of all available options along with short explanations running ./configure --help. Our manual documents the different options separately. You will find the core options in the appendix, while the different extension specific options are descibed on the reference pages.

When PHP is configured, you are ready to build the module and/or executables. The command make should take care of this. If it fails and you can't figure out why, see the Problems section.

Apache 1.3.x on Unix systems

This section contains notes and hints specific to Apache installs of PHP on Unix platforms. We also have instructions and notes for Apache 2 on a separate page.

You can select arguments to add to the configure on line 10 below from the list of core configure options and from extension specific options described at the respective places in the manual. The version numbers have been omitted here, to ensure the instructions are not incorrect. You will need to replace the 'xxx' here with the correct values from your files.

Пример 4-1. Installation Instructions (Apache Shared Module Version) for PHP

1.  gunzip apache_xxx.tar.gz
2.  tar -xvf apache_xxx.tar
3.  gunzip php-xxx.tar.gz
4.  tar -xvf php-xxx.tar
5.  cd apache_xxx
6.  ./configure --prefix=/www --enable-module=so
7.  make
8.  make install
9.  cd ../php-xxx

10. Now, configure your PHP.  This is where you customize your PHP
    with various options, like which extensions will be enabled.  Do a
    ./configure --help for a list of available options.  In our example
    we'll do a simple configure with Apache 1 and MySQL support.  Your
    path to apxs may differ from our example.

      ./configure --with-mysql --with-apxs=/www/bin/apxs

11. make
12. make install

    If you decide to change your configure options after installation,
    you only need to repeat the last three steps. You only need to
    restart apache for the new module to take effect. A recompile of
    Apache is not needed.

    Note that unless told otherwise, 'make install' will also install PEAR,
    various PHP tools such as phpize, install the PHP CLI, and more.

13. Setup your php.ini file:

      cp php.ini-dist /usr/local/lib/php.ini

    You may edit your .ini file to set PHP options.  If you prefer your
    php.ini in another location, use --with-config-file-path=/some/path in
    step 10.

    If you instead choose php.ini-recommended, be certain to read the list
    of changes within, as they affect how PHP behaves.

14. Edit your httpd.conf to load the PHP module.  The path on the right hand
    side of the LoadModule statement must point to the path of the PHP
    module on your system.  The make install from above may have already
    added this for you, but be sure to check.

    For PHP 4:

      LoadModule php4_module libexec/libphp4.so

    For PHP 5:

      LoadModule php5_module libexec/libphp5.so

15. And in the AddModule section of httpd.conf, somewhere under the
    ClearModuleList, add this:

    For PHP 4:

      AddModule mod_php4.c

    For PHP 5:

      AddModule mod_php5.c

16. Tell Apache to parse certain extensions as PHP.  For example,
    let's have Apache parse the .php extension as PHP.  You could
    have any extension(s) parse as PHP by simply adding more, with
    each separated by a space.  We'll add .phtml to demonstrate.

      AddType application/x-httpd-php .php .phtml

    It's also common to setup the .phps extension to show highlighted PHP
    source, this can be done with:

      AddType application/x-httpd-php-source .phps

17. Use your normal procedure for starting the Apache server. (You must
    stop and restart the server, not just cause the server to reload by
    using a HUP or USR1 signal.)

Alternatively, to install PHP as a static object:

Пример 4-2. Installation Instructions (Static Module Installation for Apache) for PHP

1.  gunzip -c apache_1.3.x.tar.gz | tar xf -
2.  cd apache_1.3.x
3.  ./configure
4.  cd ..

5.  gunzip -c php-4.x.y.tar.gz | tar xf -
6.  cd php-4.x.y
7.  ./configure --with-mysql --with-apache=../apache_1.3.x
8.  make
9.  make install

10. cd ../apache_1.3.x

11. ./configure --prefix=/www --activate-module=src/modules/php4/libphp4.a
    (The above line is correct! Yes, we know libphp4.a does not exist at this
    stage. It isn't supposed to. It will be created.)

12. make
    (you should now have an httpd binary which you can copy to your Apache bin dir if
    it is your first install then you need to "make install" as well)

13. cd ../php-4.x.y
14. cp php.ini-dist /usr/local/lib/php.ini

15. You can edit /usr/local/lib/php.ini file to set PHP options.
    Edit your httpd.conf or srm.conf file and add:
    AddType application/x-httpd-php .php

Замечание: Replace php-4 by php-5 and php4 by php5 in PHP 5.

Depending on your Apache install and Unix variant, there are many possible ways to stop and restart the server. Below are some typical lines used in restarting the server, for different apache/unix installations. You should replace /path/to/ with the path to these applications on your systems.

Пример 4-3. Example commands for restarting Apache

1. Several Linux and SysV variants:
/etc/rc.d/init.d/httpd restart

2. Using apachectl scripts:
/path/to/apachectl stop
/path/to/apachectl start

3. httpdctl and httpsdctl (Using OpenSSL), similar to apachectl:
/path/to/httpsdctl stop
/path/to/httpsdctl start

4. Using mod_ssl, or another SSL server, you may want to manually
stop and start:
/path/to/apachectl stop
/path/to/apachectl startssl

The locations of the apachectl and http(s)dctl binaries often vary. If your system has locate or whereis or which commands, these can assist you in finding your server control programs.

Different examples of compiling PHP for apache are as follows:

./configure --with-apxs --with-pgsql

This will create a libphp4.so shared library that is loaded into Apache using a LoadModule line in Apache's httpd.conf file. The PostgreSQL support is embedded into this libphp4.so library.

./configure --with-apxs --with-pgsql=shared

This will create a libphp4.so shared library for Apache, but it will also create a pgsql.so shared library that is loaded into PHP either by using the extension directive in php.ini file or by loading it explicitly in a script using the dl() function.

./configure --with-apache=/path/to/apache_source --with-pgsql

This will create a libmodphp4.a library, a mod_php4.c and some accompanying files and copy this into the src/modules/php4 directory in the Apache source tree. Then you compile Apache using --activate-module=src/modules/php4/libphp4.a and the Apache build system will create libphp4.a and link it statically into the httpd binary (replace php4 by php5 in PHP 5). The PostgreSQL support is included directly into this httpd binary, so the final result here is a single httpd binary that includes all of Apache and all of PHP.

./configure --with-apache=/path/to/apache_source --with-pgsql=shared

Same as before, except instead of including PostgreSQL support directly into the final httpd you will get a pgsql.so shared library that you can load into PHP from either the php.ini file or directly using dl().

When choosing to build PHP in different ways, you should consider the advantages and drawbacks of each method. Building as a shared object will mean that you can compile apache separately, and don't have to recompile everything as you add to, or change, PHP. Building PHP into apache (static method) means that PHP will load and run faster. For more information, see the Apache webpage on DSO support.

Замечание: Apache's default httpd.conf currently ships with a section that looks like this:

User nobody
Group "#-1"

Unless you change that to "Group nogroup" or something like that ("Group daemon" is also very common) PHP will not be able to open files.

Замечание: Make sure you specify the installed version of apxs when using --with-apxs=/path/to/apxs. You must NOT use the apxs version that is in the apache sources but the one that is actually installed on your system.

Пред. | Начало | След.
General Installation Considerations | Уровень выше | Apache 2.0 on Unix systems


Apache 2.0 on Unix systems

This section contains notes and hints specific to Apache 2.0 installs of PHP on Unix systems.

Внимание

Мы не рекомендуем использовать потоковый MPM в промышленной среде вместе с Apache 2. Вместо этого, используйте prefork MPM или первый Apache. Подробную информацию по этому вопросы вы можете найти в соответствующем разделе FAQ

You are highly encouraged to take a look at the Apache Documentation to get a basic understanding of the Apache 2.0 Server.

PHP and Apache 2.0.x compatibility notes: The following versions of PHP are known to work with the most recent version of Apache 2.0.x:

  • PHP 4.3.0 or later available at http://www.php.net/downloads.php.
  • the latest stable development version. Get the source code http://snaps.php.net/php4-latest.tar.gz or download binaries for Windows http://snaps.php.net/win32/php4-win32-latest.zip.
  • a prerelease version downloadable from http://qa.php.net/.
  • you have always the option to obtain PHP through anonymous CVS.
These versions of PHP are compatible to Apache 2.0.40 and later.

Apache 2.0 SAPI-support started with PHP 4.2.0. PHP 4.2.3 works with Apache 2.0.39, don't use any other version of Apache with PHP 4.2.3. However, the recommended setup is to use PHP 4.3.0 or later with the most recent version of Apache2.

All mentioned versions of PHP will work still with Apache 1.3.x.

Download the most recent version of Apache 2.0 and a fitting PHP version from the above mentioned places. This quick guide covers only the basics to get started with Apache 2.0 and PHP. For more information read the Apache Documentation. The version numbers have been omitted here, to ensure the instructions are not incorrect. You will need to replace the 'NN' here with the correct values from your files.

Пример 4-4. Installation Instructions (Apache 2 Shared Module Version)

1.  gzip -d httpd-2_0_NN.tar.gz
2.  tar xvf httpd-2_0_NN.tar
3.  gunzip php-NN.tar.gz
4.  tar -xvf php-NN.tar
5.  cd httpd-2_0_NN
6.  ./configure --enable-so
7.  make
8.  make install

    Now you have Apache 2.0.NN available under /usr/local/apache2,
    configured with loadable module support and the standard MPM prefork.
    To test the installation use your normal procedure for starting
    the Apache server, e.g.:
    /usr/local/apache2/bin/apachectl start
    and stop the server to go on with the configuration for PHP:
    /usr/local/apache2/bin/apachectl stop.

9.  cd ../php-NN

10. Now, configure your PHP.  This is where you customize your PHP
    with various options, like which extensions will be enabled.  Do a
    ./configure --help for a list of available options.  In our example
    we'll do a simple configure with Apache 2 and MySQL support.  Your
    path to apxs may differ, in fact, the binary may even be named apxs2 on
    your system.

      ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql

11. make
12. make install

    If you decide to change your configure options after installation,
    you only need to repeat the last three steps. You only need to
    restart apache for the new module to take effect. A recompile of
    Apache is not needed.

    Note that unless told otherwise, 'make install' will also install PEAR,
    various PHP tools such as phpize, install the PHP CLI, and more.

13. Setup your php.ini

    cp php.ini-dist /usr/local/lib/php.ini

    You may edit your .ini file to set PHP options.  If you prefer having
    php.ini in another location, use --with-config-file-path=/some/path in
    step 10.

    If you instead choose php.ini-recommended, be certain to read the list
    of changes within, as they affect how PHP behaves.

14. Edit your httpd.conf to load the PHP module.  The path on the right hand
    side of the LoadModule statement must point to the path of the PHP
    module on your system.  The make install from above may have already
    added this for you, but be sure to check.

    For PHP 4:

      LoadModule php4_module modules/libphp4.so

    For PHP 5:

      LoadModule php5_module modules/libphp5.so

15. Tell Apache to parse certain extensions as PHP.  For example,
    let's have Apache parse the .php extension as PHP.  You could
    have any extension(s) parse as PHP by simply adding more, with
    each separated by a space.  We'll add .phtml to demonstrate.

      AddType application/x-httpd-php .php .phtml

    It's also common to setup the .phps extension to show highlighted PHP
    source, this can be done with:

      AddType application/x-httpd-php-source .phps

16. Use your normal procedure for starting the Apache server, e.g.:

      /usr/local/apache2/bin/apachectl start

Following the steps above you will have a running Apache 2.0 with support for PHP as SAPI module. Of course there are many more configuration options available for both, Apache and PHP. For more information use ./configure --help in the corresponding source tree. In case you wish to build a multithreaded version of Apache 2.0 you must overwrite the standard MPM-Module prefork either with worker or perchild. To do so append to your configure line in step 6 above either the option --with-mpm=worker or --with-mpm=perchild. Take care about the consequences and understand what you are doing. For more information read the Apache documentation about the MPM-Modules.

Замечание: If you want to use content negotiation, read the Apache MultiViews FAQ.

Замечание: To build a multithreaded version of Apache your system must support threads. This also implies to build PHP with experimental Zend Thread Safety (ZTS). Therefore not all extensions might be available. The recommended setup is to build Apache with the standard prefork MPM-Module.

Пред. | Начало | След.
Installation on Unix systems | Уровень выше | Caudium


Caudium

PHP 4 can be built as a Pike module for the Caudium webserver. Note that this is not supported with PHP 3. Follow the simple instructions below to install PHP 4 for Caudium.

Пример 4-5. Caudium Installation Instructions

1.  Make sure you have Caudium installed prior to attempting to
    install PHP 4. For PHP 4 to work correctly, you will need Pike
    7.0.268 or newer. For the sake of this example we assume that
    Caudium is installed in /opt/caudium/server/.
2.  Change directory to php-x.y.z (where x.y.z is the version number).
3.  ./configure --with-caudium=/opt/caudium/server
4.  make
5.  make install
6.  Restart Caudium if it's currently running.
7.  Log into the graphical configuration interface and go to the
    virtual server where you want to add PHP 4 support.
8.  Click Add Module and locate and then add the PHP 4 Script Support module.
9.  If the documentation says that the 'PHP 4 interpreter isn't
    available', make sure that you restarted the server. If you did
    check /opt/caudium/logs/debug/default.1 for any errors related to
    <filename>PHP4.so</filename>. Also make sure that
    <filename>caudium/server/lib/[pike-version]/PHP4.so</filename>
    is present.
10. Configure the PHP Script Support module if needed.

You can of course compile your Caudium module with support for the various extensions available in PHP 4. See the reference pages for extension specific configure options.

Замечание: When compiling PHP 4 with MySQL support you must make sure that the normal MySQL client code is used. Otherwise there might be conflicts if your Pike already has MySQL support. You do this by specifying a MySQL install directory the --with-mysql option.

Пред. | Начало | След.
Apache 2.0 on Unix systems | Уровень выше | fhttpd related notes


CGI and commandline setups

The default is to build PHP as a CGI program. This creates a commandline interpreter, which can be used for CGI processing, or for non-web-related PHP scripting. If you are running a web server PHP has module support for, you should generally go for that solution for performance reasons. However, the CGI version enables users to run different PHP-enabled pages under different user-ids.

Внимание

Используя установку CGI, ваш сервер открыт для нескольких возможных атак. Пожалуйста, ознакомьтесь с разделом "Безопасность CGI" чтобы узнать, как можно защитить себя от этих атак.

As of PHP 4.3.0, some important additions have happened to PHP. A new SAPI named CLI also exists and it has the same name as the CGI binary. What is installed at {PREFIX}/bin/php depends on your configure line and this is described in detail in the manual section named Using PHP from the command line. For further details please read that section of the manual.

Testing

If you have built PHP as a CGI program, you may test your build by typing make test. It is always a good idea to test your build. This way you may catch a problem with PHP on your platform early instead of having to struggle with it later.

Benchmarking

If you have built PHP 3 as a CGI program, you may benchmark your build by typing make bench. Note that if безопасный режим is on by default, the benchmark may not be able to finish if it takes longer then the 30 seconds allowed. This is because the set_time_limit() can not be used in безопасный режим. Use the max_execution_time configuration setting to control this time for your own scripts. make bench ignores the configuration file.

Замечание: make bench is only available for PHP 3.

Using Variables

Some server supplied environment variables are not defined in the current CGI/1.1 specification. Only the following variables are defined there: AUTH_TYPE, CONTENT_LENGTH, CONTENT_TYPE, GATEWAY_INTERFACE, PATH_INFO, PATH_TRANSLATED, QUERY_STRING, REMOTE_ADDR, REMOTE_HOST, REMOTE_IDENT, REMOTE_USER, REQUEST_METHOD, SCRIPT_NAME, SERVER_NAME, SERVER_PORT, SERVER_PROTOCOL, and SERVER_SOFTWARE. Everything else should be treated as 'vendor extensions'.

Пред. | Начало | След.
Sun, iPlanet and Netscape servers on Sun Solaris | Уровень выше | HP-UX specific installation notes


Debian GNU/Linux installation notes

This section contains notes and hints specific to installing PHP on Debian GNU/Linux.

Using APT

While you can just download the PHP source and compile it yourself, using Debian's packaging system is the simplest and cleanest method of installing PHP. If you are not familiar with building software on Linux, this is the way to go.

The first decision you need to make is whether you want to install Apache 1.3.x or Apache 2.x. The corresponding PHP packages are respectively named libapache-mod-php* and libapache2-mod-php*. The steps given below will use Apache 1.3.x. Please note that, as of this writing, there is no official Debian packages of PHP 5. Then the steps given below will install PHP 4.

PHP is available in Debian as CGI or CLI flavour too, named respectively php4-cgi and php4-cli. If you need them, you'll just have to reproduce the following steps with the good package names. Another special package you'd want to install is php4-pear. It contains a minimal PEAR installation and the pear commandline utility.

If you need more recent packages of PHP than the Debian's stable ones or if some PHP modules lacks the Debian official repository, perhaps you should take a look at http://www.apt-get.org/. One of the results found should be Dotdeb. This unofficial repository is maintained by Guillaume Plessis and contains Debian packages of the most recent versions of PHP 4 and PHP 5. To use it, just add the to following two lines to your /etc/apt/sources.lists and run apt-get update :

Пример 4-10. The two Dotdeb related lines

deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all

The last thing to consider is whether your list of packages is up to date. If you have not updated it recently, you need to run apt-get update before anything else. This way, you will be using the most recent stable version of the Apache and PHP packages.

Now that everything is in place, you can use the following example to install Apache and PHP:

Пример 4-11. Debian Install Example with Apache 1.3

# apt-get install libapache-mod-php4

APT will automatically install the PHP 4 module for Apache 1.3, and all its dependencies and then activate it. If you're not asked to restart Apache during the install process, you'll have to do it manually :

Пример 4-12. Stopping and starting Apache once PHP 4 is installed

# /etc/init.d/apache stop
# /etc/init.d/apache start

Better control on configuration

In the last section, PHP was installed with only core modules. This may not be what you want and you will soon discover that you need more activated modules, like MySQL, cURL, GD, etc.

When you compile PHP from source yourself, you need to activate modules via the configure command. With APT, you just have to install additional packages. They're all named 'php4-*' (or 'php5-*' if you installed PHP 5 from a third party repository).

Пример 4-13. Getting the list of PHP additional packages

# dpkg -l 'php4-*'

As you can see from the last output, there's a lot of PHP modules that you can install (excluding the php4-cgi, php4-cli or php4-pear special packages). Look at them closely and choose what you need. If you choose a module and you do not have the proper libraries, APT will automatically install all the dependencies for you.

If you choose to add the MySQL, cURL and GD support to PHP the command will look something like this:

Пример 4-14. Install PHP with MySQL, cURL and GD

# apt-get install php4-mysql php4-curl php4-gd

APT will automatically add the appropriate lines to your different php.ini (/etc/php4/apache/php.ini, /etc/php4/cgi/php.ini, etc).

Пример 4-15. These lines activate MySQL, cURL and GD into PHP

extension=mysql.so
extension=curl.so
extension=gd.so

You'll only have to stop/start Apache as previously to activate the modules.

Common Problems

  • If you see the PHP source instead of the result the script should produce, APT has probably not included /etc/apache/conf.d/php4 in your Apache 1.3 configuration. Please ensure that the following line is present in your /etc/apache/httpd.conf file then stop/start Apache:

    Пример 4-16. This line activates PHP 4 into Apache

    # Include /etc/apache/conf.d/

  • If you installed an additional module and if its functions are not available in your scripts, please ensure that the appropriate line is present in your php.ini, as seen before. APT may fail during the installation of the additional module, due to a confusing debconf configuration.

Пред. | Начало | След.
Gentoo installation notes | Уровень выше | Installation on Mac OS X


fhttpd related notes

To build PHP as an fhttpd module, answer "yes" to "Build as an fhttpd module?" (the --with-fhttpd=DIR option to configure) and specify the fhttpd source base directory. The default directory is /usr/local/src/fhttpd. If you are running fhttpd, building PHP as a module will give better performance, more control and remote execution capability.

Замечание: Support for fhttpd is no longer available as of PHP 4.3.0.

Пред. | Начало | След.
Caudium | Уровень выше | Sun, iPlanet and Netscape servers on Sun Solaris


Gentoo installation notes

This section contains notes and hints specific to installing PHP on Gentoo Linux.

Using Portage (emerge)

While you can just download the PHP source and compile it yourself, using Gentoo's packaging system is the simplest and cleanest method of installing PHP. If you are not familiar with building software on Linux, this is the way to go.

If you have built your Gentoo system so far, you are probably used to Portage already. Installing Apache and PHP is no different than the other system tools.

The first decision you need to make is whether you want to install Apache 1.3.x or Apache 2.x. While both can be used with PHP, the steps given below will use Apache 1.3.x. Another thing to consider is whether your local Portage tree is up to date. If you have not updated it recently, you need to run emerge sync before anything else. This way, you will be using the most recent stable version of Apache and PHP.

Now that everything is in place, you can use the following example to install Apache and PHP:

Пример 4-7. Gentoo Install Example with Apache 1.3

# emerge \<apache-2
# USE="-*" emerge php mod_php
# ebuild /var/db/pkg/dev-php/mod_php-<your PHP version>/mod_php-<your PHP version>.ebuild config
# nano /etc/conf.d/apache
  Add "-D PHP4" to APACHE_OPTS

# rc-update add apache default
# /etc/init.d/apache start

You can read more about emerge in the excellent Portage Manual provided on the Gentoo website.

If you need to use Apache 2, you can simply use emerge apache in the last example.

Better control on configuration

In the last section, PHP was emerged without any activated modules. As of this writing, the only module activated by default with Portage is XML which is needed by PEAR. This may not be what you want and you will soon discover that you need more activated modules, like MySQL, gettext, GD, etc.

When you compile PHP from source yourself, you need to activate modules via the configure command. With Gentoo, you can simply provide USE flags which will be passed to the configure script automatically. To see which USE flags to use with emerge, you can try:

Пример 4-8. Getting the list of valid USE flags

# USE="-*" emerge -pv php

[ebuild  N    ] dev-php/php-4.3.6-r1  -X -berkdb -crypt -curl -debug -doc
-fdftk -firebird -flash -freetds -gd -gd-external -gdbm -gmp -hardenedphp
-imap -informix -ipv6 -java -jpeg -kerberos -ldap -mcal -memlimit -mssql
-mysql -ncurses -nls -oci8 -odbc -pam -pdflib -png -postgres -qt -readline
-snmp -spell -ssl -tiff -truetype -xml2 -yaz  3,876 kB

As you can see from the last output, PHP considers a lot of USE flags. Look at them closely and choose what you need. If you choose a flag and you do not have the proper libraries, Portage will compile them for you. It is a good idea to use emerge -pv again to see what Portage will compile in accordance to your USE flags. As an example, if you do not have X installed and you choose to include X in the USE flags, Portage will compile X prior to PHP, which can take a couple of hours.

If you choose to compile PHP with MySQL, cURL and GD support, the command will look something like this:

Пример 4-9. Install PHP with USE flags

# USE="-* curl mysql gd" emerge php mod_php

As in the last example, do not forget to emerge php as well as mod_php. php is responsible for the command line version of PHP as mod_php is for the Apache module version of PHP.

Common Problems

  • If you see the PHP source instead of the result the script should produce, you have probably forgot to edit /etc/conf.d/apache. Apache needs to be started with the -D PHP4 flag. To see if the flag is present, you should be able to see it when using ps ax | grep apache while Apache is running.

  • Due to slotting problems, you might end up with more than one version of PHP installed on your system. If this is the case, you need to unmerge the old versions manually by using emerge unmerge mod_php-<old version>.

  • If you cannot emerge PHP because of Java, try putting -* in front of your USE flags like in the above examples.

  • If you are having problems configuring Apache and PHP, you can always search the Gentoo Forums. Try searching with the keywords "Apache PHP".

Пред. | Начало | След.
Solaris specific installation tips | Уровень выше | Debian GNU/Linux installation notes


HP-UX specific installation notes

This section contains notes and hints specific to installing PHP on HP-UX systems. (Contributed by paul_mckay at clearwater-it dot co dot uk).

Замечание: These tips were written for PHP 4.0.4 and Apache 1.3.9.

  1. You need gzip, download a binary distribution from http://hpux.connect.org.uk/ftp/hpux/Gnu/gzip-1.2.4a/gzip-1.2.4a-sd-10.20.depot.Z uncompress the file and install using swinstall.

  2. You need gcc, download a binary distribution from http://gatekeep.cs.utah.edu/ftp/hpux/Gnu/gcc-2.95.2/gcc-2.95.2-sd-10.20.depot.gz. uncompress this file and install gcc using swinstall.

  3. You need the GNU binutils, you can download a binary distribution from http://hpux.connect.org.uk/ftp/hpux/Gnu/binutils-2.9.1/binutils-2.9.1-sd-10.20.depot.gz. uncompress this file and install binutils using swinstall.

  4. You now need bison, you can download a binary distribution from http://hpux.connect.org.uk/ftp/hpux/Gnu/bison-1.28/bison-1.28-sd-10.20.depot.gz, install as above.

  5. You now need flex, you need to download the source from one of the http://www.gnu.org mirrors. It is in the non-gnu directory of the ftp site. Download the file, gunzip, then tar -xvf it. Go into the newly created flex directory and run ./configure, followed by make, and then make install.

    If you have errors here, it's probably because gcc etc. are not in your PATH so add them to your PATH.

  6. Download the PHP and apache sources.

  7. gunzip and tar -xvf them. We need to hack a couple of files so that they can compile OK.

  8. Firstly the configure file needs to be hacked because it seems to lose track of the fact that you are a hpux machine, there will be a better way of doing this but a cheap and cheerful hack is to put lt_target=hpux10.20 on line 47286 of the configure script.

  9. Next, the Apache GuessOS file needs to be hacked. Under apache_1.3.9/src/helpers change line 89 from echo "hp${HPUXMACH}-hpux${HPUXVER}"; exit 0 to: echo "hp${HPUXMACH}-hp-hpux${HPUXVER}"; exit 0

  10. You cannot install PHP as a shared object under HP-UX so you must compile it as a static, just follow the instructions at the Apache page.

  11. PHP and Apache should have compiled OK, but Apache won't start. you need to create a new user for Apache, e.g. www, or apache. You then change lines 252 and 253 of the conf/httpd.conf in Apache so that instead of

    User nobody
Group nogroup

    you have something like

    User www
Group sys

    This is because you can't run Apache as nobody under hp-ux. Apache and PHP should then work.

Пред. | Начало | След.
CGI and commandline setups | Уровень выше | OpenBSD installation notes


OpenBSD installation notes

This section contains notes and hints specific to installing PHP on OpenBSD 3.6.

Using Binary Packages

Using binary packages to install PHP on OpenBSD is the recommended and simplest method. The core package has been separated from the various modules, and each can be installed and removed independently from the others. The files you need can be found on your OpenBSD CD or on the FTP site.

The main package you need to install is php4-core-4.3.8.tgz, which contains the basic engine (plus gettext and iconv). Next, take a look at the module packages, such as php4-mysql-4.3.8.tgz or php4-imap-4.3.8.tgz. You need to use the phpxs command to activate and deactivate these modules in your php.ini.

Пример 4-6. OpenBSD Package Install Example

# pkg_add php4-core-4.3.8.tgz
# /usr/local/sbin/phpxs -s
# cp /usr/local/share/doc/php4/php.ini-recommended /var/www/conf/php.ini
  (add in mysql)
# pkg_add php4-mysql-4.3.8.tgz
# /usr/local/sbin/phpxs -a mysql
  (add in imap)
# pkg_add php4-imap-4.3.8.tgz
# /usr/local/sbin/phpxs -a imap
  (remove mysql as a test)
# pkg_delete php4-mysql-4.3.8
# /usr/local/sbin/phpxs -r mysql
  (install the PEAR libraries)
# pkg_add php4-pear-4.3.8.tgz

Read the packages(7) manual page for more information about binary packages on OpenBSD.

Using Ports

You can also compile up PHP from source using the ports tree. However, this is only recommended for users familiar with OpenBSD. The PHP 4 port is split into two sub-directories: core and extensions. The extensions directory generates sub-packages for all of the supported PHP modules. If you find you do not want to create some of these modules, use the no_* FLAVOR. For example, to skip building the imap module, set the FLAVOR to no_imap.

Common Problems

  • The default install of Apache runs inside a chroot(2) jail, which will restrict PHP scripts to accessing files under /var/www. You will therefore need to create a /var/www/tmp directory for PHP session files to be stored, or use an alternative session backend. In addition, database sockets need to be placed inside the jail or listen on the localhost interface. If you use network functions, some files from /etc such as /etc/resolv.conf and /etc/services will need to be moved into /var/www/etc. The OpenBSD PEAR package automatically installs into the correct chroot directories, so no special modification is needed there. More information on the OpenBSD Apache is available in the OpenBSD FAQ.

  • The OpenBSD 3.6 package for the gd extension requires XFree86 to be installed. If you do not wish to use some of the font features that require X11, install the php4-gd-4.3.8-no_x11.tgz package instead.

Older Releases

Older releases of OpenBSD used the FLAVORS system to compile up a statically linked PHP. Since it is hard to generate binary packages using this method, it is now deprecated. You can still use the old stable ports trees if you wish, but they are unsupported by the OpenBSD team. If you have any comments about this, the current maintainer for the port is Anil Madhavapeddy (avsm at openbsd dot org).

Пред. | Начало | След.
HP-UX specific installation notes | Уровень выше | Solaris specific installation tips


Solaris specific installation tips

This section contains notes and hints specific to installing PHP on Solaris systems.

Required software

Solaris installs often lack C compilers and their related tools. Read this FAQ for information on why using GNU versions for some of these tools is necessary. The required software is as follows:

  • gcc (recommended, other C compilers may work)

  • make

  • flex

  • bison

  • m4

  • autoconf

  • automake

  • perl

  • gzip

  • tar

  • GNU sed

In addition, you will need to install (and possibly compile) any additional software specific to your configuration, such as Oracle or MySQL.

Using Packages

You can simplify the Solaris install process by using pkgadd to install most of your needed components.

Пред. | Начало | След.
OpenBSD installation notes | Уровень выше | Gentoo installation notes


Sun, iPlanet and Netscape servers on Sun Solaris

This section contains notes and hints specific to Sun Java System Web Server, Sun ONE Web Server, iPlanet and Netscape server installs of PHP on Sun Solaris.

From PHP 4.3.3 on you can use PHP scripts with the NSAPI module to generate custom directory listings and error pages. Additional functions for Apache compatibility are also available. For support in current webservers read the note about subrequests.

You can find more information about setting up PHP for the Netscape Enterprise Server (NES) here: http://benoit.noss.free.fr/php/install-php4.html

To build PHP with Sun JSWS/Sun ONE WS/iPlanet/Netscape webservers, enter the proper install directory for the --with-nsapi=[DIR] option. The default directory is usually /opt/netscape/suitespot/. Please also read /php-xxx-version/sapi/nsapi/nsapi-readme.txt.

  1. Install the following packages from http://www.sunfreeware.com/ or another download site:

    autoconf-2.13
    automake-1.4
    bison-1_25-sol26-sparc-local
    flex-2_5_4a-sol26-sparc-local
    gcc-2_95_2-sol26-sparc-local
    gzip-1.2.4-sol26-sparc-local
    m4-1_4-sol26-sparc-local
    make-3_76_1-sol26-sparc-local
    mysql-3.23.24-beta (if you want mysql support)
    perl-5_005_03-sol26-sparc-local
    tar-1.13 (GNU tar)

  2. Make sure your path includes the proper directories PATH=.:/usr/local/bin:/usr/sbin:/usr/bin:/usr/ccs/bin and make it available to your system export PATH.

  3. gunzip php-x.x.x.tar.gz (if you have a .gz dist, otherwise go to 4).

  4. tar xvf php-x.x.x.tar

  5. Change to your extracted PHP directory: cd ../php-x.x.x

  6. For the following step, make sure /opt/netscape/suitespot/ is where your netscape server is installed. Otherwise, change to the correct path and run:
    ./configure --with-mysql=/usr/local/mysql \
--with-nsapi=/opt/netscape/suitespot/ \
--enable-libgcc

  7. Run make followed by make install.

After performing the base install and reading the appropriate readme file, you may need to perform some additional configuration steps.

Configuration Instructions for Sun/iPlanet/Netscape. Firstly you may need to add some paths to the LD_LIBRARY_PATH environment for the server to find all the shared libs. This can best done in the start script for your webserver. The start script is often located in: /path/to/server/https-servername/start. You may also need to edit the configuration files that are located in: /path/to/server/https-servername/config/.

  1. Add the following line to mime.types (you can do that by the administration server):
    type=magnus-internal/x-httpd-php exts=php

  2. Edit magnus.conf (for servers >= 6) or obj.conf (for servers < 6) and add the following, shlib will vary depending on your system, it will be something like /opt/netscape/suitespot/bin/libphp4.so. You should place the following lines after mime types init.
    Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="/opt/netscape/suitespot/bin/libphp4.so"
Init fn="php4_init" LateInit="yes" errorString="Failed to initialize PHP!" [php_ini="/path/to/php.ini"]
    (PHP >= 4.3.3) The php_ini parameter is optional but with it you can place your php.ini in your webserver config directory.

  3. Configure the default object in obj.conf (for virtual server classes [version 6.0+] in their vserver.obj.conf):
    <Object name="default">
.
.
.
.#NOTE this next line should happen after all 'ObjectType' and before all 'AddLog' lines
Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]
.
.
</Object>
    (PHP >= 4.3.3) As additional parameters you can add some special php.ini-values, for example you can set a docroot="/path/to/docroot" specific to the context php4_execute is called. For boolean ini-keys please use 0/1 as value, not "On","Off",... (this will not work correctly), e.g. zlib.output_compression=1 instead of zlib.output_compression="On"

  4. This is only needed if you want to configure a directory that only consists of PHP scripts (same like a cgi-bin directory):
    <Object name="x-httpd-php">
ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
Service fn=php4_execute [inikey=value inikey=value ...]
</Object>
    After that you can configure a directory in the Administration server and assign it the style x-httpd-php. All files in it will get executed as PHP. This is nice to hide PHP usage by renaming files to .html.

  5. Setup of authentication: PHP authentication cannot be used with any other authentication. ALL AUTHENTICATION IS PASSED TO YOUR PHP SCRIPT. To configure PHP Authentication for the entire server, add the following line to your default object:
    <Object name="default">
AuthTrans fn=php4_auth_trans
.
.
.
</Object>

  6. To use PHP Authentication on a single directory, add the following:
    <Object ppath="d:\path\to\authenticated\dir\*">
AuthTrans fn=php4_auth_trans
</Object>

Замечание: The stacksize that PHP uses depends on the configuration of the webserver. If you get crashes with very large PHP scripts, it is recommended to raise it with the Admin Server (in the section "MAGNUS EDITOR").

CGI environment and recommended modifications in php.ini

Important when writing PHP scripts is the fact that Sun JSWS/Sun ONE WS/iPlanet/Netscape is a multithreaded web server. Because of that all requests are running in the same process space (the space of the webserver itself) and this space has only one environment. If you want to get CGI variables like PATH_INFO, HTTP_HOST etc. it is not the correct way to try this in the old PHP 3.x way with getenv() or a similar way (register globals to environment, $_ENV). You would only get the environment of the running webserver without any valid CGI variables!

Замечание: Why are there (invalid) CGI variables in the environment?

Answer: This is because you started the webserver process from the admin server which runs the startup script of the webserver, you wanted to start, as a CGI script (a CGI script inside of the admin server!). This is why the environment of the started webserver has some CGI environment variables in it. You can test this by starting the webserver not from the administration server. Use the command line as root user and start it manually - you will see there are no CGI-like environment variables.

Simply change your scripts to get CGI variables in the correct way for PHP 4.x by using the superglobal $_SERVER. If you have older scripts which use $HTTP_HOST, etc., you should turn on register_globals in php.ini and change the variable order too (important: remove "E" from it, because you do not need the environment here):
variables_order = "GPCS"
register_globals = On

Special use for error pages or self-made directory listings (PHP >= 4.3.3)

You can use PHP to generate the error pages for "404 Not Found" or similar. Add the following line to the object in obj.conf for every error page you want to overwrite:
Error fn="php4_execute" code=XXX script="/path/to/script.php" [inikey=value inikey=value...]
where XXX is the HTTP error code. Please delete any other Error directives which could interfere with yours. If you want to place a page for all errors that could exist, leave the code parameter out. Your script can get the HTTP status code with $_SERVER['ERROR_TYPE'].

Another possibility is to generate self-made directory listings. Just create a PHP script which displays a directory listing and replace the corresponding default Service line for type="magnus-internal/directory" in obj.conf with the following:
Service fn="php4_execute" type="magnus-internal/directory" script="/path/to/script.php" [inikey=value inikey=value...]
For both error and directory listing pages the original URI and translated URI are in the variables $_SERVER['PATH_INFO'] and $_SERVER['PATH_TRANSLATED'].

Note about nsapi_virtual() and subrequests (PHP >= 4.3.3)

The NSAPI module now supports the nsapi_virtual() function (alias: virtual()) to make subrequests on the webserver and insert the result in the webpage. This function uses some undocumented features from the NSAPI library. On Unix the module automatically looks for the needed functions and uses them if available. If not, nsapi_virtual() is disabled.

Замечание: But be warned: Support for nsapi_virtual() is EXPERIMENTAL!!!

Пред. | Начало | След.
fhttpd related notes | Уровень выше | CGI and commandline setups


Installation on Windows systems

Руководство по PHP
Пред. След.

Глава 6. Installation on Windows systems

Содержание
Windows Installer
Manual Installation Steps
ActiveScript
Microsoft IIS / PWS
Apache 1.3.x on Microsoft Windows
Apache 2.0.x on Microsoft Windows
Sun, iPlanet and Netscape servers on Microsoft Windows
OmniHTTPd Server
Sambar Server on Microsoft Windows
Xitami on Microsoft Windows
Building from source
Installation of extensions on Windows

This section applies to Windows 98/Me and Windows NT/2000/XP/2003. PHP will not work on 16 bit platforms such as Windows 3.1 and sometimes we refer to the supported Windows platforms as Win32. Windows 95 is no longer supported as of PHP 4.3.0.

There are two main ways to install PHP for Windows: either manually or by using the installer.

If you have Microsoft Visual Studio, you can also build PHP from the original source code.

Once you have PHP installed on your Windows system, you may also want to load various extensions for added functionality.

Внимание

There are several all-in-one installers over the Internet, but none of those are endorsed by PHP.net, as we believe that the manual installation is the best choice to have your system secure and optimised.

Windows Installer

The Windows PHP installer is available from the downloads page at http://www.php.net/downloads.php. This installs the CGI version of PHP and for IIS, PWS, and Xitami, it configures the web server as well. The installer does not include any extra external PHP extensions (php_*.dll) as you'll only find those in the Windows Zip Package and PECL downloads.

Замечание: While the Windows installer is an easy way to make PHP work, it is restricted in many aspects as, for example, the automatic setup of extensions is not supported. Use of the installer isn't the preferred method for installing PHP.

First, install your selected HTTP (web) server on your system, and make sure that it works.

Run the executable installer and follow the instructions provided by the installation wizard. Two types of installation are supported - standard, which provides sensible defaults for all the settings it can, and advanced, which asks questions as it goes along.

The installation wizard gathers enough information to set up the php.ini file, and configure certain web servers to use PHP. One of the web servers the PHP installer does not configure for is Apache, so you'll need to configure it manually.

Once the installation has completed, the installer will inform you if you need to restart your system, restart the server, or just start using PHP.

Внимание

Be aware, that this setup of PHP is not secure. If you would like to have a secure PHP setup, you'd better go on the manual way, and set every option carefully. This automatically working setup gives you an instantly working PHP installation, but it is not meant to be used on online servers.

Пред. | Начало | След.
Compiling for MacOS X Client | Уровень выше | Manual Installation Steps


ActiveScript

This section contains notes specific to the ActiveScript installation.

ActiveScript is a windows only SAPI that enables you to use PHP script in any ActiveScript compliant host, like Windows Script Host, ASP/ASP.NET, Windows Script Components or Microsoft Scriptlet control.

As of PHP 5.0.1, ActiveScript has been moved to the PECL repository. Вы можете скачать DLL этого расширения PECL со страницы PHP Downloads или http://snaps.php.net/.

Замечание: You should read the manual installation steps first!

After installing PHP, you should download the ActiveScript DLL (php5activescript.dll) and place it in the main PHP folder (e.g. C:\php).

After having all the files needed, you must register the DLL on your system. To achieve this, open a Command Prompt window (located in the Start Menu). Then go to your PHP directory by typing something like cd C:\php. To register the DLL just type regsvr32 php5activescript.dll.

To test if ActiveScript is working, create a new file, named test.wsf (the extension is very important) and type:
<job id="test">

 <script language="PHPScript">
  $WScript->Echo("Hello World!");
 </script>

</job>
Save and double-click on the file. If you receive a little window saying "Hello World!" you're done.

Замечание: In PHP 4, the engine was named 'ActivePHP', so if you are using PHP 4, you should replace 'PHPScript' with 'ActivePHP' in the above example.

Замечание: ActiveScript doesn't use the default php.ini file. Instead, it will look only in the same directory as the .exe that caused it to load. You should create php-activescript.ini and place it in that folder, if you wish to load extensions, etc.

Пред. | Начало | След.
Manual Installation Steps | Уровень выше | Microsoft IIS / PWS


Apache 1.3.x on Microsoft Windows

This section contains notes and hints specific to Apache 1.3.x installs of PHP on Microsoft Windows systems. There are also instructions and notes for Apache 2 on a separate page.

Замечание: Please read the manual installation steps first!

There are two ways to set up PHP to work with Apache 1.3.x on Windows. One is to use the CGI binary (php.exe for PHP 4 and php-cgi.exe for PHP 5), the other is to use the Apache Module DLL. In either case you need to edit your httpd.conf to configure Apache to work with PHP, and then restart the server.

It is worth noting here that now the SAPI module has been made more stable under Windows, we recommend it's use above the CGI binary, since it is more transparent and secure.

Although there can be a few variations of configuring PHP under Apache, these are simple enough to be used by the newcomer. Please consult the Apache Documentation for further configuration directives.

After changing the configuration file, remember to restart the server, for example, NET STOP APACHE followed by NET START APACHE, if you run Apache as a Windows Service, or use your regular shortcuts.

Замечание: Помните, что при указании путей в конфигурационных файлах Apache под Windows, все обратные слэши, например c:\directory\file.ext должны быть изменены на прямые: c:/directory/file.ext.

Installing as an Apache module

You should add the following lines to your Apache httpd.conf file:

Пример 6-3. PHP as an Apache 1.3.x module

This assumes PHP is installed to c:\php. Adjust the path if this is not the case.

For PHP 4:

# Add to the end of the LoadModule section
# Don't forget to copy this file from the sapi directory!
LoadModule php4_module "C:/php/php4apache.dll"

# Add to the end of the AddModule section
AddModule mod_php4.c

For PHP 5:

# Add to the end of the LoadModule section
LoadModule php5_module "C:/php/php5apache.dll"

# Add to the end of the AddModule section
AddModule mod_php5.c

For both:

# Add this line inside the <IfModule mod_mime.c> conditional brace
AddType application/x-httpd-php .php

# For syntax highlighted .phps files, also add
AddType application/x-httpd-php-source .phps

Installing as a CGI binary

If you unzipped the PHP package to C:\php\ as described in the Manual Installation Steps section, you need to insert these lines to your Apache configuration file to set up the CGI binary:

Пример 6-4. PHP and Apache 1.3.x as CGI

ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php

# For PHP 4
Action application/x-httpd-php "/php/php.exe"

# For PHP 5
Action application/x-httpd-php "/php/php-cgi.exe"

# specify the directory where php.ini is
SetEnv PHPRC C:/php
Note that the second line in the list above can be found in the actual versions of httpd.conf, but it is commented out. Remember also to substitute the c:/php/ for your actual path to PHP.

Внимание

Используя установку CGI, ваш сервер открыт для нескольких возможных атак. Пожалуйста, ознакомьтесь с разделом "Безопасность CGI" чтобы узнать, как можно защитить себя от этих атак.

If you would like to present PHP source files syntax highlighted, there is no such convenient option as with the module version of PHP. If you chose to configure Apache to use PHP as a CGI binary, you will need to use the highlight_file() function. To do this simply create a PHP script file and add this code: <?php highlight_file('some_php_script.php'); ?>.

Пред. | Начало | След.
Microsoft IIS / PWS | Уровень выше | Apache 2.0.x on Microsoft Windows


Apache 2.0.x on Microsoft Windows

This section contains notes and hints specific to Apache 2.0.x installs of PHP on Microsoft Windows systems. We also have instructions and notes for Apache 1.3.x users on a separate page.

Замечание: You should read the manual installation steps first!

Внимание

Мы не рекомендуем использовать потоковый MPM в промышленной среде вместе с Apache 2. Вместо этого, используйте prefork MPM или первый Apache. Подробную информацию по этому вопросы вы можете найти в соответствующем разделе FAQ

You are highly encouraged to take a look at the Apache Documentation to get a basic understanding of the Apache 2.0.x Server. Also consider to read the Windows specific notes for Apache 2.0.x before reading on here.

PHP and Apache 2.0.x compatibility notes: The following versions of PHP are known to work with the most recent version of Apache 2.0.x:

  • PHP 4.3.0 or later available at http://www.php.net/downloads.php.
  • the latest stable development version. Get the source code http://snaps.php.net/php4-latest.tar.gz or download binaries for Windows http://snaps.php.net/win32/php4-win32-latest.zip.
  • a prerelease version downloadable from http://qa.php.net/.
  • you have always the option to obtain PHP through anonymous CVS.
These versions of PHP are compatible to Apache 2.0.40 and later.

Apache 2.0 SAPI-support started with PHP 4.2.0. PHP 4.2.3 works with Apache 2.0.39, don't use any other version of Apache with PHP 4.2.3. However, the recommended setup is to use PHP 4.3.0 or later with the most recent version of Apache2.

All mentioned versions of PHP will work still with Apache 1.3.x.

Внимание

Apache 2.0.x is designed to run on Windows NT 4.0, Windows 2000 or Windows XP. At this time, support for Windows 9x is incomplete. Apache 2.0.x is not expected to work on those platforms at this time.

Download the most recent version of Apache 2.0.x and a fitting PHP version. Follow the Manual Installation Steps and come back to go on with the integration of PHP and Apache.

There are two ways to set up PHP to work with Apache 2.0.x on Windows. One is to use the CGI binary the other is to use the Apache module DLL. In either case you need to edit your httpd.conf to configure Apache to work with PHP and then restart the server.

Замечание: Помните, что при указании путей в конфигурационных файлах Apache под Windows, все обратные слэши, например c:\directory\file.ext должны быть изменены на прямые: c:/directory/file.ext.

Installing as a CGI binary

You need to insert these three lines to your Apache httpd.conf configuration file to set up the CGI binary:

Пример 6-5. PHP and Apache 2.0 as CGI

ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php

# For PHP 4
Action application/x-httpd-php "/php/php.exe"

# For PHP 5
Action application/x-httpd-php "/php/php-cgi.exe"

Внимание

Используя установку CGI, ваш сервер открыт для нескольких возможных атак. Пожалуйста, ознакомьтесь с разделом "Безопасность CGI" чтобы узнать, как можно защитить себя от этих атак.

Installing as an Apache module

You need to insert these two lines to your Apache httpd.conf configuration file to set up the PHP module for Apache 2.0:

Пример 6-6. PHP and Apache 2.0 as Module

# For PHP 4 do something like this:
LoadModule php4_module "c:/php/php4apache2.dll"
# Don't forget to copy the php4apache2.dll file from the sapi directory!
AddType application/x-httpd-php .php

# For PHP 5 do something like this:
LoadModule php5_module "c:/php/php5apache2.dll"
AddType application/x-httpd-php .php

# configure the path to php.ini
PHPIniDir "C:/php"

Замечание: Remember to substitute your actual path to PHP for the c:/php/ in the above examples. Take care to use either php4apache2.dll or php5apache2.dll in your LoadModule directive and not php4apache.dll or php5apache.dll as the latter ones are designed to run with Apache 1.3.x.

Замечание: If you want to use content negotiation, read related FAQ.

Внимание

Don't mix up your installation with DLL files from different PHP versions. You have the only choice to use the DLL's and extensions that ship with your downloaded PHP version.

Пред. | Начало | След.
Apache 1.3.x on Microsoft Windows | Уровень выше | Sun, iPlanet and Netscape servers on Microsoft Windows


Building from source

This chapter teaches how to compile PHP from sources on windows, using Microsoft's tools. To compile PHP with cygwin, please refer to Гл. 4.

Требования

To compile and build PHP you need a Microsoft Development Environment. Microsoft Visual C++ 6.0 is recommended, although .NET versions (either the free Microsoft Visual C++ Toolkit or the commercial Microsoft Visual C++ .NET) will also work. To extract the downloaded files you will also need a ZIP extraction utility. Windows XP and newer already include this functionality built-in.

Before you get started, you have to download:

  • the win32 buildtools from the PHP site at http://www.php.net/extra/win32build.zip.

  • the source code for the DNS name resolver used by PHP from http://www.php.net/extra/bindlib_w32.zip. This is a replacement for the resolv.lib library included in win32build.zip.

  • If you plan to compile PHP as a Apache module you will also need the Apache sources.

Finally, you are going to need the source to PHP itself. You can get the latest development version using anonymous CVS, a snapshot or the most recent released source tarball.

Putting it all together

After downloading the required packages you have to extract them in a proper place:

  • Create a working directory where all files end up after extracting, e.g: C:\work.

  • Create the directory win32build under your working directory (C:\work) and unzip win32build.zip into it.

  • Create the directory bindlib_w32 under your working directory (C:\work) and unzip bindlib_w32.zip into it.

  • Extract the downloaded PHP source code into your working directory (C:\work).

  • Build the libraries you are going to need (or download the binaries if available) and place the headers and libs in the C:\work\win32build\include and C:\work\win32build\lib directories, respectively.

Following this steps your directory structure looks like this:
+--C:\work
|  |
|  +--bindlib_w32
|  |  |
|  |  +--arpa
|  |  |
|  |  +--conf
|  |  |
|  |  +--...
|  |
|  +--php-5.x.x
|  |  |
|  |  +--build
|  |  |
|  |  +--...
|  |  |
|  |  +--win32
|  |  |
|  |  +--...
|  |
|  +--win32build
|  |  |
|  |  +--bin
|  |  |
|  |  +--include
|  |  |
|  |  +--lib

If you aren't using Cygwin, you must also create the directories C:\usr\local\lib and then copy bison.simple from C:\work\win32build\bin to C:\usr\local\lib.

Замечание: If you want to use PEAR and the comfortable command line installer, the CLI-SAPI is mandatory. For more information about PEAR and the installer read the documentation at the PEAR website.

Build resolv.lib

You must build the resolv.lib library. Decide whether you want to have debug symbols available (bindlib - Win32 Debug) or not (bindlib - Win32 Release), but please remember the choice you made, because you'll have to build PHP in the same way, or you may get linking errors. Build the appropriate configuration:

  • For GUI users, launch VC++, by double-clicking in C:\work\bindlib_w32\bindlib.dsw. Then select Build=>Rebuild All.

  • For command line users, make sure that you either have the C++ environment variables registered, or have run vcvars.bat, and then execute one of the following commands:

    • msdev bindlib.dsp /MAKE "bindlib - Win32 Debug"

    • msdev bindlib.dsp /MAKE "bindlib - Win32 Release"

At this point, you should have a usable resolv.lib in either your C:\work\bindlib_w32\Debug or Release subdirectories. Copy this file into your C:\work\win32build\lib directory over the file by the same name found in there.

Building PHP using the new build system [PHP >=5 only]

This chapter explains how to compile PHP >=5 using the new build system, which is CLI-based and very similar with the main PHP's Unix build system.

Замечание: This build system isn't available in PHP 4. Please refer to Разд. Building PHP using DSW files [PHP 4] instead.

Before starting, be sure you have read Разд. Putting it all together and you have built all needed libraries, like Libxml or ICU (needed for PHP >= 6).

First you should open a Visual Studio Command Prompt, which should be available under the Start menu. A regular Command Prompt window shouldn't work, as probably it doesn't have the necessary environment variables set. Then type something like cd C:\work\php-5.x.x to enter in the PHP source dir. Now you are ready to start configuring PHP.

The second step is running the buildconf batch file to make the configure script, by scanning the folder for config.w32 files. By default this command will also search in the following directories: pecl; ..\pecl; pecl\rpc; ..\pecl\rpc. Since PHP 5.1.0, you can change this behaviour by using the --add-modules-dir argument (e.g. cscript /nologo win32/build/buildconf.js --add-modules-dir=../php-gtk2 --add-modules-dir=../pecl).

The third step is configuring. To view the list of the available configuration options type cscript /nologo configure.js --help. After choosing the options that you will enable/disable, type something like: cscript /nologo configure.js --disable-foo --enable-fun-ext. Using --enable-foo=shared will attempt to build the 'foo' extension as a shared, dynamically loadable module.

The last step is compilling. To achieve this just issue the command nmake. The generated files (e.g. .exe and .dll) will be placed in either Release_TS or Debug_TS directories (if built with Thread safety), or in the Release or Debug directories otherwise.

Optionally you may also run PHP's test suite, by typing nmake test. If you want to run just a specific test, you may use the 'TESTS' variable (e.g. nmake /D TESTS=ext/sqlite/tests test - will only run sqlite's tests). To delete the files that were created during the compilation, you can use the nmake clean command.

A very usefull configure option to build snapshots is --enable-snapshot-build, which add a new compiling mode (nmake build-snap). This tries to build every extension available (as shared, by default), but it will ignore build errors in individual extensions or SAPI.

Building PHP using DSW files [PHP 4]

Compiling PHP using the DSW files isn't supported as of PHP 5, as a much more flexible system was made available. Anyway, you can still use them, but keep in mind that they are not maintained very often, so you can have compiling problems. To compile PHP 4 for windows, this is the only available way though.

Configure MVC ++

The first step is to configure MVC++ to prepare for compiling. Launch Microsoft Visual C++, and from the menu select Tools => Options. In the dialog, select the directories tab. Sequentially change the dropdown to Executables, Includes, and Library files. Your entries should look like this:

  • Executable files: C:\work\win32build\bin, Cygwin users: C:\cygwin\bin

  • Include files: C:\work\win32build\include

  • Library files: C:\work\win32build\lib

Compiling

The best way to get started is to build the CGI version:

  • For GUI users, launch VC++, and then select File => Open Workspace and select C:\work\php-4.x.x\win32\php4ts.dsw. Then select Build=>Set Active Configuration and select the desired configuration, either php4ts - Win32 Debug_TS or php4ts - Win32 Release_TS. Finally select Build=>Rebuild All.

  • For command line users, make sure that you either have the C++ environment variables registered, or have run vcvars.bat, and then execute one of the following commands from the C:\work\php-4.x.x\win32 directory:

    • msdev php4ts.dsp /MAKE "php4ts - Win32 Debug_TS"

    • msdev php4ts.dsp /MAKE "php4ts - Win32 Release_TS"

    • At this point, you should have a usable php.exe in either your C:\work\php-4.x.x\Debug_TS or Release_TS subdirectories.

It is possible to do minor customization to the build process by editing the main/config.win32.h file. For example you can change the default location of php.ini, the built-in extensions, and the default location for your extensions.

Next you may want to build the CLI version which is designed to use PHP from the command line. The steps are the same as for building the CGI version, except you have to select the php4ts_cli - Win32 Debug_TS or php4ts_cli - Win32 Release_TS project file. After a successful compiling run you will find the php.exe in either the directory Release_TS\cli\ or Debug_TS\cli\.

In order to build the SAPI module (php4isapi.dll) for integrating PHP with Microsoft IIS, set your active configuration to php4isapi-whatever-config and build the desired dll.

Пред. | Начало | След.
Xitami on Microsoft Windows | Уровень выше | Installation of extensions on Windows


Installation of extensions on Windows

After installing PHP and a webserver on Windows, you will probably want to install some extensions for added functionality. You can choose which extensions you would like to load when PHP starts by modifying your php.ini. You can also load a module dynamically in your script using dl().

The DLLs for PHP extensions are prefixed with php_.

Many extensions are built into the Windows version of PHP. This means additional DLL files, and the extension directive, are not used to load these extensions. The Windows PHP Extensions table lists extensions that require, or used to require, additional PHP DLL files. Here's a list of built in extensions:

In PHP 4 (updated PHP 4.3.11): BCMath, Caledar, COM, Ctype, FTP, MySQL, ODBC, Overload, PCRE, Session, Tokenizer, WDDX, XML и Zlib

In PHP 5 (updated PHP 5.0.4), the following changes exist. Built in: DOM, LibXML, Iconv, SimpleXML, SPL и SQLite. And the following are no longer built in: MySQL and Overload.

The default location PHP searches for extensions is C:\php4\extensions in PHP 4 and C:\php5 in PHP 5. To change this setting to reflect your setup of PHP edit your php.ini file:

  • You will need to change the extension_dir setting to point to the directory where your extensions lives, or where you have placed your php_*.dll files. For example:

    extension_dir = C:\php\extensions

  • Enable the extension(s) in php.ini you want to use by uncommenting the extension=php_*.dll lines in php.ini. This is done by deleting the leading ; from the extension you want to load.

    Пример 6-8. Enable Bzip2 extension for PHP-Windows

    // change the following line from ...
;extension=php_bz2.dll

// ... to
extension=php_bz2.dll

  • Some of the extensions need extra DLLs to work. Couple of them can be found in the distribution package, in the C:\php\dlls\ folder in PHP 4 or in the main folder in PHP 5, but some, for example Oracle (php_oci8.dll) require DLLs which are not bundled with the distribution package. If you are installing PHP 4, copy the bundled DLLs from C:\php\dlls folder to the main C:\php folder. Don't forget to include C:\php in the system PATH (this process is explained in a separate FAQ entry).

  • Some of these DLLs are not bundled with the PHP distribution. See each extensions documentation page for details. Also, read the manual section titled Installation of PECL extensions for details on PECL. An increasingly large number of PHP extensions are found in PECL, and these extensions require a separate download.

Замечание: If you are running a server module version of PHP remember to restart your webserver to reflect your changes to php.ini.

The following table describes some of the extensions available and required additional dlls.

Таблица 6-1. PHP Extensions

Extension | Description | Notes
php_bz2.dll | bzip2 compression functions | None
php_calendar.dll | Calendar conversion functions | Built in since PHP 4.0.3
php_cpdf.dll | ClibPDF functions | None
php_crack.dll | Crack functions | None
php_ctype.dll | ctype family functions | Built in since PHP 4.3.0
php_curl.dll | CURL, Client URL library functions | Requires: libeay32.dll, ssleay32.dll (bundled)
php_cybercash.dll | Cybercash payment functions | PHP <= 4.2.0
php_db.dll | DBM functions | Deprecated. Use DBA instead (php_dba.dll)
php_dba.dll | DBA: DataBase (dbm-style) Abstraction layer functions | None
php_dbase.dll | dBase functions | None
php_dbx.dll | dbx functions |
php_domxml.dll | DOM XML functions | PHP <= 4.2.0 requires: libxml2.dll (bundled) PHP >= 4.3.0 requires: iconv.dll (bundled)
php_dotnet.dll | .NET functions | PHP <= 4.1.1
php_exif.dll | EXIF functions | php_mbstring.dll. And, php_exif.dll must be loaded after php_mbstring.dll in php.ini.
php_fbsql.dll | FrontBase functions | PHP <= 4.2.0
php_fdf.dll | FDF: Forms Data Format functions. | Requires: fdftk.dll (bundled)
php_filepro.dll | filePro functions | Read-only access
php_ftp.dll | FTP functions | Built-in since PHP 4.0.3
php_gd.dll | GD library image functions | Removed in PHP 4.3.2. Also note that truecolor functions are not available in GD1, instead, use php_gd2.dll.
php_gd2.dll | GD library image functions | GD2
php_gettext.dll | Gettext functions | PHP <= 4.2.0 requires gnu_gettext.dll (bundled), PHP >= 4.2.3 requires libintl-1.dll, iconv.dll (bundled).
php_hyperwave.dll | HyperWave functions | None
php_iconv.dll | ICONV characterset conversion | Requires: iconv-1.3.dll (bundled), PHP >=4.2.1 iconv.dll
php_ifx.dll | Informix functions | Requires: Informix libraries
php_iisfunc.dll | IIS management functions | None
php_imap.dll | IMAP POP3 and NNTP functions | None
php_ingres.dll | Ingres II functions | Requires: Ingres II libraries
php_interbase.dll | InterBase functions | Requires: gds32.dll (bundled)
php_java.dll | Java functions | PHP <= 4.0.6 requires: jvm.dll (bundled)
php_ldap.dll | LDAP functions | PHP <= 4.2.0 requires libsasl.dll (bundled), PHP >= 4.3.0 requires libeay32.dll, ssleay32.dll (bundled)
php_mbstring.dll | Multi-Byte String functions | None
php_mcrypt.dll | Mcrypt Encryption functions | Requires: libmcrypt.dll
php_mhash.dll | Mhash functions | PHP >= 4.3.0 requires: libmhash.dll (bundled)
php_mime_magic.dll | Mimetype functions | Requires: magic.mime (bundled)
php_ming.dll | Ming functions for Flash | None
php_msql.dll | mSQL functions | Requires: msql.dll (bundled)
php_mssql.dll | MSSQL functions | Requires: ntwdblib.dll (bundled)
php_mysql.dll | MySQL functions | PHP >= 5.0.0, requires libmysql.dll (bundled)
php_mysqli.dll | MySQLi functions | PHP >= 5.0.0, requires libmysql.dll (libmysqli.dll in PHP <= 5.0.2) (bundled)
php_oci8.dll | Oracle 8 functions | Requires: Oracle 8.1+ client libraries
php_openssl.dll | OpenSSL functions | Requires: libeay32.dll (bundled)
php_oracle.dll | Oracle functions | Requires: Oracle 7 client libraries
php_overload.dll | Object overloading functions | Built in since PHP 4.3.0
php_pdf.dll | PDF functions | None
php_pgsql.dll | PostgreSQL functions | None
php_printer.dll | Printer functions | None
php_shmop.dll | Shared Memory functions | None
php_snmp.dll | SNMP get and walk functions | NT only!
php_soap.dll | SOAP functions | PHP >= 5.0.0
php_sockets.dll | Socket functions | None
php_sybase_ct.dll | Sybase functions | Requires: Sybase client libraries
php_tidy.dll | Tidy functions | PHP >= 5.0.0
php_tokenizer.dll | Tokenizer functions | Built in since PHP 4.3.0
php_w32api.dll | W32api functions | None
php_xmlrpc.dll | XML-RPC functions | PHP >= 4.2.1 requires: iconv.dll (bundled)
php_xslt.dll | XSLT functions | PHP <= 4.2.0 requires sablot.dll, expat.dll (bundled). PHP >= 4.2.1 requires sablot.dll, expat.dll, iconv.dll (bundled).
php_yaz.dll | YAZ functions | Requires: yaz.dll (bundled)
php_zip.dll | Zip File functions | Read only access
php_zlib.dll | ZLib compression functions | Built in since PHP 4.3.0

Пред. | Начало | След.
Building from source | Уровень выше | Installation of PECL extensions


Microsoft IIS / PWS

This section contains notes and hints specific to IIS (Microsoft Internet Information Server).

Внимание

Используя установку CGI, ваш сервер открыт для нескольких возможных атак. Пожалуйста, ознакомьтесь с разделом "Безопасность CGI" чтобы узнать, как можно защитить себя от этих атак.

General considerations for all installations of PHP with IIS

  • First, read the Manual Installation Instructions. Do not skip this step as it provides crucial information for installing PHP on Windows.

  • CGI users must set the cgi.force_redirect PHP directive to 0 inside php.ini. Read the faq on cgi.force_redirect for important details. Also, CGI users may want to set the cgi.redirect_status_env directive. When using directives, be sure these directives aren't commented out inside php.ini.

  • The PHP 4 CGI is named php.exe while in PHP 5 it's php-cgi.exe. In PHP 5, php.exe is the CLI, and not the CGI.

  • Modify the Windows PATH environment variable to include the PHP directory. This way the PHP DLL files, PHP executables, and php.ini can all remain in the PHP directory without cluttering up the Windows system directory. For more details, see the FAQ on Setting the PATH.

  • The IIS user (usually IUSR_MACHINENAME) needs permission to read various files and directories, such as php.ini, docroot, and the session tmp directory.

  • Be sure the extension_dir and doc_root PHP directives are appropriately set in php.ini. These directives depend on the system that PHP is being installed on. In PHP 4, the extension_dir is extensions while with PHP 5 it's ext. So, an example PHP 5 extensions_dir value is "c:\php\ext" and an example IIS doc_root value is "c:\Inetpub\wwwroot".

  • PHP extension DLL files, such as php_mysql.dll and php_curl.dll, are found in the zip package of the PHP download (not the PHP installer). In PHP 5, many extensions are part of PECL and can be downloaded in the "Collection of PECL modules" package. Files such as php_zip.dll and php_ssh2.dll. Download PHP files here.

  • When defining the executable, the 'check that file exists' box may also be checked. For a small performance penalty, the IIS (or PWS) will check that the script file exists and sort out authentication before firing up PHP. This means that the web server will provide sensible 404 style error messages instead of CGI errors complaining that PHP did not output any data.

Windows NT/200x/XP and IIS 4 or newer

PHP may be installed as a CGI binary, or with the ISAPI module. In either case, you need to start the Microsoft Management Console (may appear as 'Internet Services Manager', either in your Windows NT 4.0 Option Pack branch or the Control Panel=>Administrative Tools under Windows 2000/XP). Then right click on your Web server node (this will most probably appear as 'Default Web Server'), and select 'Properties'.

If you want to use the CGI binary, do the following:

  • Under 'Home Directory', 'Virtual Directory', or 'Directory', do the following:

  • Change the Execute Permissions to 'Scripts only'

  • Click on the 'Configuration' button, and choose the Application Mappings tab. Click Add and set the Executable path to the appropriate CGI file. An example PHP 5 value is: C:\php\php-cgi.exe Supply .php as the extension. Leave 'Method exclusions' blank, and check the 'Script engine' checkbox. Now, click OK a few times.

  • Set up the appropriate security. (This is done in Internet Service Manager), and if your NT Server uses NTFS file system, add execute rights for I_USR_ to the directory that contains php.exe / php-cgi.exe.

To use the ISAPI module, do the following:

  • If you don't want to perform HTTP Authentication using PHP, you can (and should) skip this step. Under ISAPI Filters, add a new ISAPI filter. Use PHP as the filter name, and supply a path to the php4isapi.dll / php5isapi.dll.

  • Under 'Home Directory', 'Virtual Directory', or 'Directory', do the following:

  • Change the Execute Permissions to 'Scripts only'

  • Click on the 'Configuration' button, and choose the Application Mappings tab. Click Add and set the Executable path to the appropriate ISAPI DLL. An example PHP 5 value is: C:\php\php5isapi.dll Supply .php as the extension. Leave 'Method exclusions' blank, and check the 'Script engine' checkbox. Now, click OK a few times.

  • Stop IIS completely (NET STOP iisadmin)

  • Start IIS again (NET START w3svc)

With IIS 6 (2003 Server), open up the IIS Manager, go to Web Service Extensions, choose "Add a new Web service extension", enter in a name such as PHP, choose the Add button and for the value browse to either the ISAPI file (php4isapi.dll or php5isapi.dll) or CGI (php.exe or php-cgi.exe) then check "Set extension status to Allowed" and click OK.

In order to use index.php as a default content page, do the following: From within the Documents tab, choose Add. Type in index.php and click OK. Adjust the order by choosing Move Up or Move Down. This is similar to setting DirectoryIndex with Apache.

The steps above must be repeated for each extension that is to be associated with PHP scripts. .php is the most common although .php3 may be required for legacy applications.

If you experience 100% CPU usage after some time, turn off the IIS setting Cache ISAPI Application.

Windows and PWS 4

PWS 4 does not support ISAPI, only PHP CGI should be used.

  • Edit the enclosed pws-php4cgi.reg / pws-php5cgi.reg file (look into the SAPI folder for PHP 4, or in the main folder for PHP 5) to reflect the location of your php.exe / php-cgi.exe. Backslashes should be escaped, for example: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map] ".php"="C:\\php\\php.exe" (change to C:\\php\\php-cgi.exe if you are using PHP 5) Now merge this registery file into your system; you may do this by double-clicking it.

  • In the PWS Manager, right click on a given directory you want to add PHP support to, and select Properties. Check the 'Execute' checkbox, and confirm.

Windows and PWS/IIS 3

The recommended method for configuring these servers is to use the REG file included with the distribution (pws-php4cgi.reg in the SAPI folder for PHP 4, or pws-php5cgi.reg in the main folder for PHP 5). You may want to edit this file and make sure the extensions and PHP install directories match your configuration. Or you can follow the steps below to do it manually.

Внимание

These steps involve working directly with the Windows registry. One error here can leave your system in an unstable state. We highly recommend that you back up your registry first. The PHP Development team will not be held responsible if you damage your registry.

  • Run Regedit.

  • Navigate to: HKEY_LOCAL_MACHINE /System /CurrentControlSet /Services /W3Svc /Parameters /ScriptMap.

  • On the edit menu select: New->String Value.

  • Type in the extension you wish to use for your php scripts. For example .php

  • Double click on the new string value and enter the path to php.exe in the value data field. ex: C:\php\php.exe "%s" %s for PHP 4, or C:\php\php-cgi.exe "%s" %s for PHP 5.

  • Repeat these steps for each extension you wish to associate with PHP scripts.

The following steps do not affect the web server installation and only apply if you want your PHP scripts to be executed when they are run from the command line (ex. run C:\myscripts\test.php) or by double clicking on them in a directory viewer window. You may wish to skip these steps as you might prefer the PHP files to load into a text editor when you double click on them.

  • Navigate to: HKEY_CLASSES_ROOT

  • On the edit menu select: New->Key.

  • Name the key to the extension you setup in the previous section. ex: .php

  • Highlight the new key and in the right side pane, double click the "default value" and enter phpfile.

  • Repeat the last step for each extension you set up in the previous section.

  • Now create another New->Key under HKEY_CLASSES_ROOT and name it phpfile.

  • Highlight the new key phpfile and in the right side pane, double click the "default value" and enter PHP Script.

  • Right click on the phpfile key and select New->Key, name it Shell.

  • Right click on the Shell key and select New->Key, name it open.

  • Right click on the open key and select New->Key, name it command.

  • Highlight the new key command and in the right side pane, double click the "default value" and enter the path to php.exe. ex: c:\php\php.exe -q %1. (don't forget the %1).

  • Exit Regedit.

  • If using PWS on Windows, reboot to reload the registry.

PWS and IIS 3 users now have a fully operational system. IIS 3 users can use a nifty tool from Steven Genusa to configure their script maps.

Пред. | Начало | След.
ActiveScript | Уровень выше | Apache 1.3.x on Microsoft Windows


Manual Installation Steps

This install guide will help you manually install and configure PHP with a web server on Microsoft Windows. To get started you'll need to download the zip binary distribution from the downloads page at http://www.php.net/downloads.php.

Although there are many all-in-one installation kits, and we also distribute a PHP installer for Microsoft Windows, we recommend you take the time to setup PHP yourself as this will provide you with a better understanding of the system, and enables you to install PHP extensions easily when needed.

Upgrading from a previous PHP version: Previous editions of the manual suggest moving various ini and DLL files into your SYSTEM (i.e. C:\WINDOWS) folder and while this simplifies the installation procedure it makes upgrading difficult. We advise you remove all of these files (like php.ini and PHP related DLLs from the Windows SYSTEM folder) before moving on with a new PHP installation. Be sure to backup these files as you might break the entire system. The old php.ini might be useful in setting up the new PHP as well. And as you'll soon learn, the preferred method for installing PHP is to keep all PHP related files in one directory and have this directory available to your systems PATH.

MDAC requirements: If you use Microsoft Windows 98/NT4 download the latest version of the Microsoft Data Access Components (MDAC) for your platform. MDAC is available at http://msdn.microsoft.com/data/. This requirement exists because ODBC is built into the distributed Windows binaries.

The following steps should be completed on all installations before any server specific instructions are performed:

Extract the distribution file into a directory of your choice. If you are installing PHP 4, extract to C:\, as the zip file expands to a foldername like php-4.3.7-Win32. If you are installing PHP 5, extract to C:\php as the zip file doesn't expand as in PHP 4. You may choose a different location but do not have spaces in the path (like C:\Program Files\PHP) as some web servers will crash if you do.

The directory structure extracted from the zip is different for PHP versions 4 and 5 and look like as follows:

Пример 6-1. PHP 4 package structure

c:\php
   |
   +--cli
   |  |
   |  |-php.exe           -- CLI executable - ONLY for commandline scripting
   |
   +--dlls                -- support DLLs required by some extensions
   |  |
   |  |-expat.dll
   |  |
   |  |-fdftk.dll
   |  |
   |  |-...
   |
   +--extensions          -- extension DLLs for PHP
   |  |
   |  |-php_bz2.dll
   |  |
   |  |-php_cpdf.dll
   |  |
   |  |-..
   |
   +--mibs                -- support files for SNMP
   |
   +--openssl             -- support files for Openssl
   |
   +--pdf-related         -- support files for PDF
   |
   +--sapi                -- SAPI (server module support) DLLs
   |  |
   |  |-php4apache.dll
   |  |
   |  |-php4apache2.dll
   |  |
   |  |-..
   |
   +--PEAR                -- initial copy of PEAR
   |
   |
   |-go-pear.bat          -- PEAR setup script
   |
   |-..
   |
   |-php.exe              -- CGI executable
   |
   |-..
   |
   |-php.ini-dist         -- default php.ini settings
   |
   |-php.ini-recommended  -- recommended php.ini settings
   |
   |-php4ts.dll           -- core PHP DLL
   |
   |-...

Or:

Пример 6-2. PHP 5 package structure

c:\php
   |
   +--dev
   |  |
   |  |-php5ts.lib
   |
   +--ext                 -- extension DLLs for PHP
   |  |
   |  |-php_bz2.dll
   |  |
   |  |-php_cpdf.dll
   |  |
   |  |-..
   |
   +--extras
   |  |
   |  +--mibs             -- support files for SNMP
   |  |
   |  +--openssl          -- support files for Openssl
   |  |
   |  +--pdf-related      -- support files for PDF
   |  |
   |  |-mime.magic
   |
   +--pear                -- initial copy of PEAR
   |
   |
   |-go-pear.bat          -- PEAR setup script
   |
   |-fdftk.dll
   |
   |-..
   |
   |-php-cgi.exe          -- CGI executable
   |
   |-php-win.exe          -- executes scripts without an opened command prompt
   |
   |-php.exe              -- CLI executable - ONLY for command line scripting
   |
   |-..
   |
   |-php.ini-dist         -- default php.ini settings
   |
   |-php.ini-recommended  -- recommended php.ini settings
   |
   |-php5activescript.dll
   |
   |-php5apache.dll
   |
   |-php5apache2.dll
   |
   |-..
   |
   |-php5ts.dll           -- core PHP DLL
   |
   |-...

Notice the differences and similarities. Both PHP 4 and PHP 5 have a CGI executable, a CLI executable, and server modules, but they are located in different folders and/or have different names. While PHP 4 packages have the server modules in the sapi folder, PHP 5 distributions have no such directory and instead they're in the PHP folder root. The supporting DLLs for the PHP 5 extensions are also not in a seperate directory.

Замечание: In PHP 4, you should move all files located in the dll and sapi folders to the main folder (e.g. C:\php).

Here is a list of server modules shipped with PHP 4 and PHP 5:

  • sapi/php4activescript.dll (php5activescript.dll) - ActiveScript engine, allowing you to embed PHP in your Windows applications.

  • sapi/php4apache.dll (php5apache.dll) - Apache 1.3.x module.

  • sapi/php4apache2.dll (php5apache2.dll) - Apache 2.0.x module.

  • sapi/php4isapi.dll (php5isapi.dll) - ISAPI Module for ISAPI compliant web servers like IIS 4.0/PWS 4.0 or newer.

  • sapi/php4nsapi.dll (php5nsapi.dll) - Sun/iPlanet/Netscape server module.

  • sapi/php4pi3web.dll (no equivalent in PHP 5) - Pi3Web server module.

Server modules provide significantly better performance and additional functionality compared to the CGI binary. The CLI version is designed to let you use PHP for command line scripting. More information about CLI is available in the chapter about using PHP from the command line.

Внимание

The SAPI modules have been significantly improved as of the 4.1 release, however, in older systems you may encounter server errors or other server modules failing, such as ASP.

The CGI and CLI binaries, and the web server modules all require the php4ts.dll (php5ts.dll) file to be available to them. You have to make sure that this file can be found by your PHP installation. The search order for this DLL is as follows:

  • The same directory from where php.exe is called, or in case you use a SAPI module, the web server's directory (e.g. C:\Program Files\Apache Group\Apache2\bin).

  • Any directory in your Windows PATH environment variable.

To make php4ts.dll / php5ts.dll available you have three options: copy the file to the Windows system directory, copy the file to the web server's directory, or add your PHP directory, C:\php to the PATH. For better maintenance, we advise you to follow the last option, add C:\php to the PATH, because it will be simpler to upgrade PHP in the future. Read more about how to add your PHP directory to PATH in the corresponding FAQ entry.

The next step is to set up a valid configuration file for PHP, php.ini. There are two ini files distributed in the zip file, php.ini-dist and php.ini-recommended. We advise you to use php.ini-recommended, because we optimized the default settings in this file for performance, and security. Read this well documented file carefully because it has changes from php.ini-dist that will drastically affect your setup. Some examples are display_errors being off and magic_quotes_gpc being off. In addition to reading these, study the ini settings and set every element manually yourself. If you would like to achieve the best security, then this is the way for you, although PHP works fine with these default ini files. Copy your chosen ini-file to a directory that PHP is able to find and rename it to php.ini. PHP searches for php.ini in the locations described in Разд. The configuration file в Гл. 9 section.

If you are running Apache 2, the simpler option is to use the PHPIniDir directive (read the installation on Apache 2 page), otherwise your best option is to set the PHPRC environment variable. This process is explained in the following FAQ entry.

Замечание: If you're using NTFS on Windows NT, 2000, XP or 2003, make sure that the user running the web server has read permissions to your php.ini (e.g. make it readable by Everyone).

The following steps are optional:

  • Edit your new php.ini file. If you plan to use OmniHTTPd, do not follow the next step. Set the doc_root to point to your web servers document_root. For example:

    doc_root = c:\inetpub\wwwroot // for IIS/PWS

doc_root = c:\apache\htdocs // for Apache

  • Choose the extensions you would like to load when PHP starts. See the section about Windows extensions, about how to set up one, and what is already built in. Note that on a new installation it is advisable to first get PHP working and tested without any extensions before enabling them in php.ini.

  • On PWS and IIS, you can set the browscap configuration setting to point to: c:\windows\system\inetsrv\browscap.ini on Windows 9x/Me, c:\winnt\system32\inetsrv\browscap.ini on NT/2000, and c:\windows\system32\inetsrv\browscap.ini on XP. For an up-to-date browscap.ini, read the following FAQ.

PHP is now setup on your system. The next step is to choose a web server, and enable it to run PHP. Choose a webserver from the table of contents.

Пред. | Начало | След.
Installation on Windows systems | Уровень выше | ActiveScript


OmniHTTPd Server

This section contains notes and hints specific to OmniHTTPd on Windows.

Замечание: You should read the manual installation steps first!

Внимание

Используя установку CGI, ваш сервер открыт для нескольких возможных атак. Пожалуйста, ознакомьтесь с разделом "Безопасность CGI" чтобы узнать, как можно защитить себя от этих атак.

You need to complete the following steps to make PHP work with OmniHTTPd. This is a CGI executable setup. SAPI is supported by OmniHTTPd, but some tests have shown that it is not so stable to use PHP as an ISAPI module.

Important for CGI users: Read the faq on cgi.force_redirect for important details. This directive needs to be set to 0.

  1. Install OmniHTTPd server.

  2. Right click on the blue OmniHTTPd icon in the system tray and select Properties

  3. Click on Web Server Global Settings

  4. On the 'External' tab, enter: virtual = .php | actual = c:\php\php.exe (use php-cgi.exe if installing PHP 5), and use the Add button.

  5. On the Mime tab, enter: virtual = wwwserver/stdcgi | actual = .php, and use the Add button.

  6. Click OK

Repeat steps 2 - 6 for each extension you want to associate with PHP.

Замечание: Some OmniHTTPd packages come with built in PHP support. You can choose at setup time to do a custom setup, and uncheck the PHP component. We recommend you to use the latest PHP binaries. Some OmniHTTPd servers come with PHP 4 beta distributions, so you should choose not to set up the built in support, but install your own. If the server is already on your machine, use the Replace button in Step 4 and 5 to set the new, correct information.

Пред. | Начало | След.
Sun, iPlanet and Netscape servers on Microsoft Windows | Уровень выше | Sambar Server on Microsoft Windows


Sambar Server on Microsoft Windows

This section contains notes and hints specific to the Sambar Server for Windows.

Замечание: You should read the manual installation steps first!

This list describes how to set up the ISAPI module to work with the Sambar server on Windows.

  • Find the file called mappings.ini (in the config directory) in the Sambar install directory.

  • Open mappings.ini and add the following line under [ISAPI]:

    Пример 6-7. ISAPI configuration of Sambar

    #for PHP 4
*.php = c:\php\php4isapi.dll

#for PHP 5
*.php = c:\php\php5isapi.dll
    (This line assumes that PHP was installed in c:\php.)

  • Now restart the Sambar server for the changes to take effect.

Пред. | Начало | След.
OmniHTTPd Server | Уровень выше | Xitami on Microsoft Windows


Sun, iPlanet and Netscape servers on Microsoft Windows

This section contains notes and hints specific to Sun Java System Web Server, Sun ONE Web Server, iPlanet and Netscape server installs of PHP on Windows.

From PHP 4.3.3 on you can use PHP scripts with the NSAPI module to generate custom directory listings and error pages. Additional functions for Apache compatibility are also available. For support in current webservers read the note about subrequests.

CGI setup on Sun, iPlanet and Netscape servers

To install PHP as a CGI handler, do the following:

  • Copy php4ts.dll to your systemroot (the directory where you installed Windows)

  • Make a file association from the command line. Type the following two lines:
    assoc .php=PHPScript
ftype PHPScript=c:\php\php.exe %1 %*

  • In the Netscape Enterprise Administration Server create a dummy shellcgi directory and remove it just after (this step creates 5 important lines in obj.conf and allow the web server to handle shellcgi scripts).

  • In the Netscape Enterprise Administration Server create a new mime type (Category: type, Content-Type: magnus-internal/shellcgi, File Suffix:php).

  • Do it for each web server instance you want PHP to run

More details about setting up PHP as a CGI executable can be found here: http://benoit.noss.free.fr/php/install-php.html

NSAPI setup on Sun, iPlanet and Netscape servers

To install PHP with NSAPI, do the following:

  • Copy php4ts.dll to your systemroot (the directory where you installed Windows)

  • Make a file association from the command line. Type the following two lines:
    assoc .php=PHPScript
ftype PHPScript=c:\php\php.exe %1 %*

  • In the Netscape Enterprise Administration Server create a new mime type (Category: type, Content-Type: magnus-internal/x-httpd-php, File Suffix: php).

  • Edit magnus.conf (for servers >= 6) or obj.conf (for servers < 6) and add the following: You should place the lines after mime types init.
    Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="c:/php/sapi/php4nsapi.dll"
Init fn="php4_init" LateInit="yes" errorString="Failed to initialise PHP!" [php_ini="c:/path/to/php.ini"]
    (PHP >= 4.3.3) The php_ini parameter is optional but with it you can place your php.ini in your webserver config directory.

  • Configure the default object in obj.conf (for virtual server classes [Sun Web Server 6.0+] in their vserver.obj.conf): In the <Object name="default"> section, place this line necessarily after all 'ObjectType' and before all 'AddLog' lines:
    Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]
    (PHP >= 4.3.3) As additional parameters you can add some special php.ini-values, for example you can set a docroot="/path/to/docroot" specific to the context php4_execute is called. For boolean ini-keys please use 0/1 as value, not "On","Off",... (this will not work correctly), e.g. zlib.output_compression=1 instead of zlib.output_compression="On"

  • This is only needed if you want to configure a directory that only consists of PHP scripts (same like a cgi-bin directory):
    <Object name="x-httpd-php">
ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
Service fn=php4_execute [inikey=value inikey=value ...]
</Object>
    After that you can configure a directory in the Administration server and assign it the style x-httpd-php. All files in it will get executed as PHP. This is nice to hide PHP usage by renaming files to .html.

  • Restart your web service and apply changes

  • Do it for each web server instance you want PHP to run

Замечание: More details about setting up PHP as an NSAPI filter can be found here: http://benoit.noss.free.fr/php/install-php4.html

Замечание: The stacksize that PHP uses depends on the configuration of the webserver. If you get crashes with very large PHP scripts, it is recommended to raise it with the Admin Server (in the section "MAGNUS EDITOR").

CGI environment and recommended modifications in php.ini

Important when writing PHP scripts is the fact that Sun JSWS/Sun ONE WS/iPlanet/Netscape is a multithreaded web server. Because of that all requests are running in the same process space (the space of the webserver itself) and this space has only one environment. If you want to get CGI variables like PATH_INFO, HTTP_HOST etc. it is not the correct way to try this in the old PHP 3.x way with getenv() or a similar way (register globals to environment, $_ENV). You would only get the environment of the running webserver without any valid CGI variables!

Замечание: Why are there (invalid) CGI variables in the environment?

Answer: This is because you started the webserver process from the admin server which runs the startup script of the webserver, you wanted to start, as a CGI script (a CGI script inside of the admin server!). This is why the environment of the started webserver has some CGI environment variables in it. You can test this by starting the webserver not from the administration server. Use the command line as root user and start it manually - you will see there are no CGI-like environment variables.

Simply change your scripts to get CGI variables in the correct way for PHP 4.x by using the superglobal $_SERVER. If you have older scripts which use $HTTP_HOST, etc., you should turn on register_globals in php.ini and change the variable order too (important: remove "E" from it, because you do not need the environment here):
variables_order = "GPCS"
register_globals = On

Special use for error pages or self-made directory listings (PHP >= 4.3.3)

You can use PHP to generate the error pages for "404 Not Found" or similar. Add the following line to the object in obj.conf for every error page you want to overwrite:
Error fn="php4_execute" code=XXX script="/path/to/script.php" [inikey=value inikey=value...]
where XXX is the HTTP error code. Please delete any other Error directives which could interfere with yours. If you want to place a page for all errors that could exist, leave the code parameter out. Your script can get the HTTP status code with $_SERVER['ERROR_TYPE'].

Another possibility is to generate self-made directory listings. Just create a PHP script which displays a directory listing and replace the corresponding default Service line for type="magnus-internal/directory" in obj.conf with the following:
Service fn="php4_execute" type="magnus-internal/directory" script="/path/to/script.php" [inikey=value inikey=value...]
For both error and directory listing pages the original URI and translated URI are in the variables $_SERVER['PATH_INFO'] and $_SERVER['PATH_TRANSLATED'].

Note about nsapi_virtual() and subrequests (PHP >= 4.3.3)

The NSAPI module now supports the nsapi_virtual() function (alias: virtual()) to make subrequests on the webserver and insert the result in the webpage. The problem is, that this function uses some undocumented features from the NSAPI library.

Under Unix this is not a problem, because the module automatically looks for the needed functions and uses them if available. If not, nsapi_virtual() is disabled.

Under Windows limitations in the DLL handling need the use of a automatic detection of the most recent ns-httpdXX.dll file. This is tested for servers till version 6.1. If a newer version of the Sun server is used, the detection fails and nsapi_virtual() is disabled.

If this is the case, try the following: Add the following parameter to php4_init in magnus.conf/obj.conf:
Init fn=php4_init ... server_lib="ns-httpdXX.dll"
where XX is the correct DLL version number. To get it, look in the server-root for the correct DLL name. The DLL with the biggest filesize is the right one.

You can check the status by using the phpinfo() function.

Замечание: But be warned: Support for nsapi_virtual() is EXPERIMENTAL!!!

Пред. | Начало | След.
Apache 2.0.x on Microsoft Windows | Уровень выше | OmniHTTPd Server


Xitami on Microsoft Windows

This section contains notes and hints specific to Xitami on Windows.

Замечание: You should read the manual installation steps first!

This list describes how to set up the PHP CGI binary to work with Xitami on Windows.

Important for CGI users: Read the faq on cgi.force_redirect for important details. This directive needs to be set to 0. If you want to use $_SERVER['PHP_SELF'] you have to enable the cgi.fix_pathinfo directive.

Внимание

Используя установку CGI, ваш сервер открыт для нескольких возможных атак. Пожалуйста, ознакомьтесь с разделом "Безопасность CGI" чтобы узнать, как можно защитить себя от этих атак.

  • Make sure the webserver is running, and point your browser to xitamis admin console (usually http://127.0.0.1/admin), and click on Configuration.

  • Navigate to the Filters, and put the extension which PHP should parse (i.e. .php) into the field File extensions (.xxx).

  • In Filter command or script put the path and name of your PHP CGI executable i.e. C:\php\php.exe for PHP 4, or C:\php\php-cgi.exe for PHP 5.

  • Press the 'Save' icon.

  • Restart the server to reflect changes.

Пред. | Начало | След.
Sambar Server on Microsoft Windows | Уровень выше | Building from source


PHP and Zend Engine Internals

Руководство по PHP
Пред. След.

VII. PHP and Zend Engine Internals

If you are about to begin developing PHP or Zend extensions, you need to prepare yourself for the programming environment provided by the various APIs. This part of the documentation tries to introduce the APIs provided by the different PHP and Zend Engine versions available. Since most of the information available here is somewhat outdated, you'll want to read various files found in the PHP source, files such as README.SELF-CONTAINED-EXTENSIONS and README.EXT_SKEL in addition to the manual.

Содержание
44. Streams API for PHP Extension Authors
45. PDO Driver How-To
46. Zend API: Hacking the Core of PHP
47. Extending PHP 3

Пред. | Начало | След.
zlib_get_coding_type |  | Streams API for PHP Extension Authors


PDO Driver How-To

Руководство по PHP
Пред. След.

Глава 45. PDO Driver How-To

Содержание
A brief note about this How-To
Prerequisites
Preparation and Housekeeping
Fleshing out your skeleton
Building
Testing
Packaging and distribution
pdo_dbh_t definition
pdo_stmt_t definition
Constants
Error handling

A brief note about this How-To

The original version of this PDO driver specification was written by Bill Abt and Rick McGuire of IBM and contributed to the PHP community to assist in the development of drivers for more databases and to encourage the emerging standard for database access in PHP.

Пред. | Начало | След.
Stream open options | Уровень выше | Prerequisites


Building

The build process is designed to work with PEAR (see http://pear.php.net/ for more information about PEAR). There are two files that are used to assist in configuring your package for building. The first is config.m4 which is the autoconf configuration file for all platforms except Win32. The second is config.w32 which a build configuration file for use on Win32. Skeleton files for these are built for you when you first set up your project. You then need to customize them to fit the needs of your project. Once you've customized your config files, you can build your driver using the following sequence of commands:

Before first build:

$ sudo pear install PDO

For each build:

$ cd pdo_SKEL
$ phpize
$ ./configure
$ make
$ sudo make install

The process can then be repeated as necessary during the development process.

Пред. | Начало | След.
Fleshing out your skeleton | Уровень выше | Testing


Constants

Таблица 45-1. Database and Statement Attributes Table

Attribute

Valid value(s)

PDO_ATTR_AUTOCOMMIT

BOOL

TRUE if autocommit is set, FALSE otherwise.

dbh->auto_commit contains value. Processed by PDO directly.

PDO_ATTR_PREFETCH

LONG

Value of the prefetch size in drivers that support it.

PDO_ATTR_TIMEOUT

LONG

How long to wait for a db operation before timing out.

PDO_ATTR_ERRMODE

LONG

Processed and handled by PDO

PDO_ATTR_SERVER_VERSION

STRING

The "human-readable" string representing the Server/Version this driver is currently connected to.

PDO_ATTR_CLIENT_VERSION

STRING

The "human-readable" string representing the Client/Version this driver supports.

PDO_ATTR_SERVER_INFO

STRING

The "human-readable" description of the Server.

PDO_ATTR_CONNECTION_STATUS

LONG

Values not yet defined

PDO_ATTR_CASE

LONG

Processed and handled by PDO.

PDO_ATTR_CURSOR_NAME

STRING

String representing the name for a database cursor for use in "where current in <name>" SQL statements.

PDO_ATTR_CURSOR

LONG

PDO_CURSOR_FWDONLY

Forward only cursor

PDO_CURSOR_SCROLL

Scrollable cursor

The values for the attributes above are all defined in terms of the Zend API. The Zend API contains macros that can be used to convert a *zval to a value. These macros are defined in the Zend header file, zend_API.h in the Zend directory of your PHP build directory. Some of these attributes can be used with the statement attribute handlers such as the PDO_ATTR_CURSOR and PDO_ATTR_CURSOR_NAME. See the statement attribute handling functions for more information.

Пред. | Начало | След.
pdo_stmt_t definition | Уровень выше | Error handling


Error handling

Error handling is implemented using a hand-shaking protocol between PDO and the database driver code. The database driver code signals PDO than an error has occurred via a failure (0) return from any of the interface functions. If a zero is returned, the field error_code in the control block appropriate to the context (either the pdo_dbh_t or pdo_stmt_t block). In practice, it is probably a good idea to set the field in both blocks to the same value to ensure the correct one is getting used.

The error_mode field is a six-byte field containing a 5 character ASCIIZ SQLSTATE identifier code. This code drives the error message process. The SQLSTATE code is used to look up an error message in the internal PDO error message table (see pdo_sqlstate.c for a list of error codes and their messages). If the code is not known to PDO, a default "Unknown Message" value will be used.

In addition to the SQLSTATE code and error message, PDO will call the driver-specific fetch_err() routine to obtain supplemental data for the particular error condition. This routine is passed an array into which the driver may place additional information. This array has slot positions assigned to particular types of supplemental info:

  1. A native error code. This will frequently be an error code obtained from the database API.

  2. A descriptive string. This string can contain anything additional information related to the failure. Database drivers typically include information such as an error message, code location of the failure, and any additional descriptive information the driver developer feels worthy of inclusion. It is generally a good idea to include all diagnostic information obtainable from the database interface at the time of the failure. For driver-detected errors (such as memory allocation problems), the driver developer can define whatever error information that seems appropriate.

Пред. | Начало | След.
Constants | Уровень выше | Zend API: Hacking the Core of PHP


Fleshing out your skeleton

Major Structures and Attributes

The major structures, pdo_dbh_t and pdo_stmt_t are defined and explained in Appendix A and B respectively. Database and Statement attributes are defined in Appendix C. Error handling is explained in Appendix D.

pdo_SKEL.c: PHP extension glue

function entries

static function_entry pdo_SKEL_functions[] = {
  { NULL, NULL, NULL }
};

This structure is used to register functions into the global php function namespace. PDO drivers should try to avoid doing this, so it is recommended that you leave this structure initialized to NULL, as shown in the synopsis above.

Module entry

/* {{{ pdo_SKEL_module_entry */
#if ZEND_EXTENSION_API_NO >= 220050617
static zend_module_dep pdo_SKEL_deps[] = {
    ZEND_MOD_REQUIRED("pdo")
    {NULL, NULL, NULL}
};
#endif
/* }}} */

zend_module_entry pdo_SKEL_module_entry = {
#if ZEND_EXTENSION_API_NO >= 220050617
    STANDARD_MODULE_HEADER_EX, NULL,
    pdo_SKEL_deps,
#else
    STANDARD_MODULE_HEADER,
#endif
    "pdo_SKEL",
    pdo_SKEL_functions,
    PHP_MINIT(pdo_SKEL),
    PHP_MSHUTDOWN(pdo_SKEL),
    NULL,
    NULL,
    PHP_MINFO(pdo_SKEL),
    PHP_PDO_<DB>_MODULE_VERSION,
    STANDARD_MODULE_PROPERTIES
};
/* }}} */

#ifdef COMPILE_DL_PDO_<DB>
ZEND_GET_MODULE(pdo_db)
#endif

A structure of type zend_module_entry called pdo_SKEL_module_entry must be declared and should include reference to the pdo_SKEL_functions table defined previously.

Standard PHP Module Extension Functions

PHP_MINIT_FUNCTION

/* {{{ PHP_MINIT_FUNCTION */
PHP_MINIT_FUNCTION(pdo_SKEL)
{
    return php_pdo_register_driver(&pdo_SKEL_driver);
}
/* }}} */

This standard PHP extension function should be used to register your driver with the PDO layer. This is done by calling the php_pdo_register_driver() function passing a pointer to a structure of type pdo_driver_t typically named pdo_SKEL_driver. A pdo_driver_t contains a header that is generated using the PDO_DRIVER_HEADER(SKEL) macro and pdo_SKEL_handle_factory() function pointer. The actual function is described during the discussion of the SKEL_dbh.c unit.

PHP_MSHUTDOWN_FUNCTION

/* {{{ PHP_MSHUTDOWN_FUNCTION */
PHP_MSHUTDOWN_FUNCTION(pdo_SKEL)
{
    php_pdo_unregister_driver(&pdo_SKEL_driver);
    return SUCCESS;
}
/* }}} */

This standard PHP extension function is used to unregister your driver from the PDO layer. This is done by calling the php_pdo_unregister_driver() function, passing the same pdo_SKEL_driver structure that was passed in the init function above.

PHP_MINFO_FUNCTION

This is again a standard PHP extension function. Its purpose is to display information regarding the module when the phpinfo() is called from a script. The convention is to display the version of the module and also what version of the db you are dependent on, along with any other configuration style information that might be relevant.

SKEL_driver.c: Driver implementation

This unit implements all of the database handling methods that support the PDO database handle object. It also contains the error fetching routines. All of these functions will typically need to access the global variable pool. Therefore, it is necessary to use the Zend macro TSRMLS_DC macro at the end of each of these statements. Consult the Zend programmer documentation for more information on this macro.

pdo_SKEL_error

static int pdo_SKEL_error(pdo_dbh_t *dbh,
  pdo_stmt_t *stmt, const char *file, int line TSRMLS_DC)

The purpose of this function is to be used as a generic error handling function within the driver. It is called by the driver when an error occurs within the driver. If an error occurs that is not related to SQLSTATE, the driver should set either dbh->error_code or stmt->error_code to an SQLSTATE that most closely matches the error or the generic SQLSTATE error "HY000". The file pdo_sqlstate.c in the PDO source contains a table of commonly used SQLSTATE codes that the PDO code explicitly recognizes. This setting of the error code should be done prior to calling this function.; This function should set the global pdo_err variable to the error found in either the dbh or the stmt (if the variable stmt is not NULL).

dbh

Pointer to the database handle initialized by the handle factory

stmt

Pointer to the current statement or NULL. If NULL, the error is derived by error code found in the dbh.

file

The source file where the error occurred or NULL if not available.

line

The line number within the source file if available.

If the dbh member methods is NULL (which implies that the error is being raised from within the PDO constructor), this function should call the zend_throw_exception_ex() function otherwise it should return the error code. This function is usually called using a helper macro that customizes the calling sequence for either database handling errors or statement handling errors.

Пример 45-1. Example macros for invoking pdo_SKEL_error

#define pdo_SKEL_drv_error(what) \
    pdo_SKEL_error(dbh, NULL, what, __FILE__, __LINE__ TSRMLS_CC)
#define pdo_SKEL_drv_error(what) \
    pdo_SKEL_error(dbh, NULL, what, __FILE__, __LINE__ TSRMLS_CC)

For more info on error handling, see Разд. Error handling.

Замечание: Despite being documented here, the PDO driver interface does not specify that his function be present; it is merely a convenient way to handle errors, and it just happens to be equally convenient for the majority of database client library APIs to structure your driver implementation in this way.

pdo_SKEL_fetch_error_func

static int pdo_SKEL_fetch_error_func(pdo_dbh_t *dbh, pdo_stmt_t *stmt,
    zval *info TSRMLS_DC)

The purpose of this function is to obtain additional information about the last error that was triggered. This includes the driver specific error code and a human readable string. It may also include additional information if appropriate. This function is called as a result of the PHP script calling the PDO::errorInfo() method.

dbh

Pointer to the database handle initialized by the handle factory

stmt

Pointer to the most current statement or NULL. If NULL, the error translated is derived by error code found in the dbh.

info

A hash table containing error codes and messages.

The error_func should return two pieces of information as successive array elements. The first item is expected to be a numeric error code, the second item is a descriptive string. The best way to set this item is by using add_next_index. Note that the type of the first argument need not be long; use whichever type most closely matches the error code returned by the underlying database API.

/* now add the error information. */
/* These need to be added in a specific order */
add_next_index_long(info, error_code);   /* driver specific error code */
add_next_index_string(info, message, 0); /* readable error message */

This function should return 1 if information is available, 0 if the driver does not have additional info.

SKEL_handle_closer

static int SKEL_handle_closer(pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to close an open database.

dbh

Pointer to the database handle initialized by the handle factory

This should do whatever database specific activity that needs to be accomplished to close the open database. PDO ignores the return value from this function.

SKEL_handle_preparer

static int SKEL_handle_preparer(pdo_dbh_t *dbh, const char *sql,
long sql_len, pdo_stmt_t *stmt, zval *driver_options TSRMLS_DC)

This function will be called by PDO in response to PDO::query() and PDO::prepare() calls from the PHP script. The purpose of the function is to prepare raw SQL for execution, storing whatever state is appropriate into the stmt that is passed in.

dbh

Pointer to the database handle initialized by the handle factory

sql

Pointer to a character string containing the SQL statement to be prepared.

sql_len

The length of the SQL statement.

Stmt

Pointer to the returned statement or NULL if an error occurs.

driver_options

Any driver specific/defined options.

This function is essentially the constructor for a stmt object. This function is responsible for processing statement options, and setting driver-specific option fields in the pdo_stmt_t structure.

PDO does not process any statement options on the driver's behalf before calling the preparer function. It is your responsibility to process them before you return, raising an error for any unknown options that are passed.

One very important responsibility of this function is the processing of SQL statement parameters. At the time of this call, PDO does not if your driver supports binding parameters into prepared statements, nor does it know if it supports named or positional parameter naming conventions.

Your driver is responsible for setting stmt->supports_placeholders as appropriate for the underlying database. This may involved some run-time determination on the part of your driver, if this setting depends on the version of the database server to which it is connected. If your driver doesn't directly support both named and positional parameter conventions, you should use the pdo_parse_params() API to have PDO rewrite the query to take advantage of the support provided by your database.

Пример 45-2. Using pdo_parse_params

int ret;
    char *nsql = NULL;
    int nsql_len = 0;

    /* before we prepare, we need to peek at the query; if it uses named parameters,
     * we want PDO to rewrite them for us */
    stmt->supports_placeholders = PDO_PLACEHOLDER_POSITIONAL;
    ret = pdo_parse_params(stmt, (char*)sql, sql_len, &nsql, &nsql_len TSRMLS_CC);

    if (ret == 1) {
        /* query was re-written */
        sql = nsql;
    } else if (ret == -1) {
        /* couldn't grok it */
        strcpy(dbh->error_code, stmt->error_code);
        return 0;
    }

    /* now proceed to prepare the query in "sql" */

Possible values for supports_placeholders are: PDO_PLACEHOLDER_NAMED, PDO_PLACEHOLDER_POSITIONAL and PDO_PLACEHOLDER_NONE. If the driver doesn't support prepare statements at all, then this function should simply allocate any state that it might need, and then return:

Пример 45-3. implementing preparer for drivers that don't support native prepared statements

static int SKEL_handle_preparer(pdo_dbh_t *dbh, const char *sql,
    long sql_len, pdo_stmt_t *stmt, zval *driver_options TSRMLS_DC)
{
    pdo_SKEL_db_handle *H = (pdo_SKEL_db_handle *)dbh->driver_data;
    pdo_SKEL_stmt *S = ecalloc(1, sizeof(pdo_SKEL_stmt));

    S->H = H;
    stmt->driver_data = S;
    stmt->methods = &SKEL_stmt_methods;
    stmt->supports_placeholders = PDO_PLACEHOLDER_NONE;

    return 1;
}

This function returns 1 on success or 0 on failure.

SKEL_handle_doer

static long SKEL_handle_doer(pdo_dbh_t *dbh, const char *sql, long sql_len TSRMLS_DC)

This function will be called by PDO to execute a raw SQL statement. No pdo_stmt_t is created.

dbh

Pointer to the database handle initialized by the handle factory

sql

Pointer to a character string containing the SQL statement to be prepared.

sql_len

The length of the SQL statement.

This function returns 1 on success or 0 on failure.

SKEL_handle_quoter

static int SKEL_handle_quoter(pdo_dbh_t *dbh, const char *unquoted,
  int unquoted_len, char **quoted, int quoted_len, enum pdo_param_type param_type TSRMLS_DC)

This function will be called by PDO to turn an unquoted string into a quoted string for use in a query.

dbh

Pointer to the database handle initialized by the handle factory

unquoted

Pointer to a character string containing the string to be quoted.

unquoted_len

The length of the string to be quoted.

quoted

Pointer to the address where a pointer to the newly quoted string will be returned.

quoted_len

The length of the new string.

param_type

A driver specific hint for driver that have alternate quoting styles

This function is called in response to a call to PDO::quote() or when the driver has set supports_placeholder to PDO_PLACEHOLDER_NONE. The purpose is to quote a parameter when building SQL statements.

If your driver does not support native prepared statements, implementation of this function is required.

This function returns 1 if the quoting process reformatted the string, and 0 if it was not necessary to change the string. The original string will be used unchanged with a 0 return.

SKEL_handle_begin

static int SKEL_handle_begin(pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to begin a database transaction.

dbh

Pointer to the database handle initialized by the handle factory

This should do whatever database specific activity that needs to be accomplished to begin a transaction. This function returns 1 for success or 0 if an error occurred.

SKEL_handle_commit

static int SKEL_handle_commit(pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to end a database transaction.

dbh

Pointer to the database handle initialized by the handle factory

This should do whatever database specific activity that needs to be accomplished to commit a transaction. This function returns 1 for success or 0 if an error occurred.

SKEL_handle_rollback

static int SKEL_handle_rollback( pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to rollback a database transaction.

dbh

Pointer to the database handle initialized by the handle factory

This should do whatever database specific activity that needs to be accomplished to rollback a transaction. This function returns 1 for success or 0 if an error occurred.

SKEL_handle_get_attribute

static int SKEL_handle_get_attribute(pdo_dbh_t *dbh, long attr, zval *return_value TSRMLS_DC)

This function will be called by PDO to retrieve a database attribute.

dbh

Pointer to the database handle initialized by the handle factory

attr

long value of one of the PDO_ATTR_xxxx types. See Табл. 45-1 for valid attributes.

return_value

The returned value for the attribute.

It is up to the driver to decide which attributes will be supported for a particular implementation. It is not necessary for a driver to supply this function. PDO driver handles the PDO_ATTR_PERSISTENT, PDO_ATTR_CASE, PDO_ATTR_ORACLE_NULLS, and PDO_ATTR_ERRMODE attributes directly.

This function returns 1 on success or 0 on failure.

SKEL_handle_set_attribute

static int SKEL_handle_set_attribute(pdo_dbh_t *dbh, long attr, zval *val TSRMLS_DC)

This function will be called by PDO to set a database attribute, usually in response to a script calling PDO::setAttribute().

dbh

Pointer to the database handle initialized by the handle factory

attr

long value of one of the PDO_ATTR_xxxx types. See Табл. 45-1 for valid attributes.

val

The new value for the attribute.

It is up to the driver to decide which attributes will be supported for a particular implementation. It is not necessary for a driver to provide this function if it does not need to support additional attributes. The PDO driver handles the PDO_ATTR_CASE, PDO_ATTR_ORACLE_NULLS, and PDO_ATTR_ERRMODE attributes directly.

This function returns 1 on success or 0 on failure.

SKEL_handle_last_id

static char * SKEL_handle_last_id(pdo_dbh_t *dbh, const char *name, unsigned int len TSRMLS_DC)

This function will be called by PDO to retrieve the ID of the last inserted row.

dbh

Pointer to the database handle initialized by the handle factory

name

string representing a table or sequence name.

len

the length of the name parameter.

This function returns a character string containing the id of the last inserted row on success or NULL on failure. This is an optional function.

SKEL_check_liveness

static int SKEL_check_liveness(pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to test whether or not a persistent connection to a database is alive and ready for use.

dbh

Pointer to the database handle initialized by the handle factory

This function returns 1 if the database connection is alive and ready for use, otherwise it should return 0 to indicate failure or lack of support.

Замечание: This is an optional function.

SKEL_get_driver_methods

static function_entry *SKEL_get_driver_methods(pdo_dbh_t *dbh, int kind TSRMLS_DC)

This function will be called by PDO in response to a call to any method that is not a part of either the PDO or PDOStatement classes. It's purpose is to allow the driver to provide additional driver specific methods to those classes.

dbh

Pointer to the database handle initialized by the handle factory

kind

One of the following:

PDO_DBH_DRIVER_METHOD_KIND_DBH

Set when the method call was attempted on an instance of the PDO class. The driver should return a pointer a function_entry table for any methods it wants to add to that class, or NULL if there are none.

PDO_DBH_DRIVER_METHOD_KIND_STMT

Set when the method call was attempted on an instance of the PDOStatement class. The driver should return a pointer to a function_entry table for any methods it wants to add to that class, or NULL if there are none.

This function returns a pointer to the function_entry table requested, or NULL there are no driver specific methods.

SKEL_handle_factory

static int SKEL_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_DC)

This function will be called by PDO to create a database handle. For most databases this involves establishing a connection to the database. In some cases, a persistent connection may be requested, in other cases connection pooling may be requested. All of these are database/driver dependent.

dbh

Pointer to the database handle initialized by the handle factory

driver_options

An array of driver options, keyed by integer option number. See Табл. 45-1 for a list of possible attributes.

This function should fill in the passed database handle structure with its driver specific information on success and return 1, otherwise it should return 0 to indicate failure.

PDO processes the AUTOCOMMIT and PERSISTENT driver options before calling the handle_factory. It is the handle factory's responsibility to process other options.

Driver method table

A static structure of type pdo_dbh_methods named SKEL_methods must be declared and initialized to the function pointers for each defined function. If a function is not supported or not implemented the value for that function pointer should be set to NULL.

pdo_SKEL_driver

A structure of type pdo_driver_t named pdo_SKEL_driver should be declared. The PDO_DRIVER_HEADER(SKEL) macro should be used to declare the header and the function pointer to the handle factory function should set.

SKEL_statement.c: Statement implementation

This unit implements all of the database statement handling methods that support the PDO statement object.

SKEL_stmt_dtor

static int SKEL_stmt_dtor(pdo_stmt_t *stmt TSRMLS_DC)

This function will be called by PDO to destroy a previously constructed statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

This should do whatever is necessary to free up any driver specific storage allocated for the statement. The return value from this function is ignored.

SKEL_stmt_execute

static int SKEL_stmt_execute(pdo_stmt_t *stmt TSRMLS_DC)

This function will be called by PDO to execute the prepared SQL statement in the passed statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_fetch

static int SKEL_stmt_fetch(pdo_stmt_t *stmt, enum pdo_fetch_orientation ori,
   long offset TSRMLS_DC)

This function will be called by PDO to fetch a row from a previously executed statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

ori

One of PDO_FETCH_ORI_xxx which will determine which row will be fetched.

offset

If ori is set to PDO_FETCH_ORI_ABS or PDO_FETCH_ORI_REL, offset represents the row desired or the row relative to the current position, respectively. Otherwise, this value is ignored.

The results of this fetch are driver dependent and the data is usually stored in the driver_data member of pdo_stmt_t object. The ori and offset parameters are only meaningful if the statement represents a scrollable cursor. This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_param_hook

static int SKEL_stmt_param_hook(pdo_stmt_t *stmt,
  struct pdo_bound_param_data *param, enum pdo_param_event event_type TSRMLS_DC)

This function will be called by PDO for handling of both bound parameters and bound columns.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

param

The structure describing either a statement parameter or a bound column.

event_type

The type of event to occur for this parameter, one of the following:

PDO_PARAM_EVT_ALLOC

Called when PDO allocates the binding. Occurs as part of PDOStatement::bindParam(), PDOStatement::bindValue() or as part of an implicit bind when calling PDOStatement::execute(). This is your opportunity to take some action at this point; drivers that implement native prepared statements will typically want to query the parameter information, reconcile the type with that requested by the script, allocate an appropriately sized buffer and then bind the parameter to that buffer. You should not rely on the type or value of the zval at param->parameter at this point in time.

PDO_PARAM_EVT_FREE

Called once per parameter as part of cleanup. You should release any resources associated with that parameter now.

PDO_PARAM_EXEC_PRE

Called once for each parameter immediately before calling SKEL_stmt_execute; take this opportunity to make any final adjustments ready for execution. In particular, you should note that variables bound via PDOStatement::bindParam() are only legal to touch now, and not any sooner.

PDO_PARAM_EXEC_POST

Called once for each parameter immediately after calling SKEL_stmt_execute; take this opportunity to make any post-execution actions that might be required by your driver.

PDO_PARAM_FETCH_PRE

Called once for each parameter immediately prior to calling SKEL_stmt_fetch.

PDO_PARAM_FETCH_POST

Called once for each parameter immediately after calling SKEL_stmt_fetch.

This hook will be called for each bound parameter and bound column in the statement. For ALLOC and FREE events, a single call will be made for each parameter or column. The param structure contains a driver_data field that the driver can use to store implementation specific information about each of the parameters.

For all other events, PDO may call you multple times as the script issues PDOStatement::execute() and PDOStatement::fetch() calls.

If this is a bound parameter, the is_param flag in the param structure, otherwise, the param structure refers to a bound column.

This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_describe_col

static int SKEL_stmt_describe_col(pdo_stmt_t *stmt, int colno TSRMLS_DC)

This function will be called by PDO to query information about a particular column.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

colno

The column number to be queried.

The driver should populate the pdo_stmt_t member columns(colno) with the appropriate information. This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_get_col_data

static int SKEL_stmt_get_col_data(pdo_stmt_t *stmt, int colno,
  char **ptr, unsigned long *len, int *caller_frees TSRMLS_DC)

This function will be called by PDO to retrieve data from the specified column.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

colno

The column number to be queried.

ptr

Pointer to the retrieved data.

len

The length of the data pointed to by ptr.

caller_frees

If set, ptr should point to emalloc'd memory and the main PDO driver will free it as soon as it is done with it. Otherwise, it will be the responsibility of the driver to free any allocated memory as a result of this call.

The driver should return the resultant data and length of that data in the ptr and len variables respectively. It should be noted that the main PDO driver expects the driver to manage the lifetime of the data. This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_set_attr

static int SKEL_stmt_set_attr(pdo_stmt_t *stmt, long attr, zval *val TSRMLS_DC)

This function will be called by PDO to allow the setting of driver specific attributes for a statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

attr

long value of one of the PDO_ATTR_xxxx types. See Табл. 45-1 for valid attributes.

val

The new value for the attribute.

This function is driver dependent and allows the driver the capability to set database specific attributes for a statement. This function returns 1 for success or 0 in the event of failure. This is an optional function. If the driver does not support additional settable attributes, it can be NULLed in the method table. The PDO driver does not handle any settable attributes on the database driver's behalf.

SKEL_stmt_get_attr

static int SKEL_stmt_get_attr(pdo_stmt_t *stmt, long attr, zval
   *return_value TSRMLS_DC)

This function will be called by PDO to allow the retrieval of driver specific attributes for a statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

attr

long value of one of the PDO_ATTR_xxxx types. See Табл. 45-1 for valid attributes.

return_value

The returned value for the attribute.

This function is driver dependent and allows the driver the capability to retrieve a previously set database specific attribute for a statement. This function returns 1 for success or 0 in the event of failure. This is an optional function. If the driver does not support additional gettable attributes, it can be NULLed in the method table. The PDO driver does not handle any settable attributes on the database driver's behalf.

SKEL_stmt_get_col_meta

static int SKEL_stmt_get_col_meta(pdo_stmt_t *stmt, int colno,
   zval *return_value TSRMLS_DC)

Внимание

This function is not well defined and is subject to change.

This function will be called by PDO to retrieve meta-data from the specified column.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

colno

The column number for which data is to be retrieved.

return_value

Holds the returned meta data.

The driver author should consult the documentation for this function that can be found in the php_pdo_driver.h header as this will be the most current. This function returns 1 for success or 0 in the event of failure. The database driver does not need to provide this function.

Statement handling method table

A static structure of type pdo_stmt_methods named SKEL_stmt_methods should be declared and initialized to the function pointers for each defined function. If a function is not supported or not implemented the value for that function pointer should be set to NULL.

Пред. | Начало | След.
Preparation and Housekeeping | Уровень выше | Building


Packaging and distribution

Creating a package

PDO drivers are released via PECL; all the usual rules for PECL extensions apply. Packaging is accomplished by creating a valid package.xml file and then running:

$ pear package

This will create a tarball named PDO_SKEL-X.Y.Z.tgz.

Before releasing the package, you should test that it builds correctly; if you've made a mistake in your config.m4 or package.xml files, the package may not function correctly. You can test the build, without installing anything, using the following invocation:

$ pear build package.xml

Once this is proven to work, you can test installation:

$ pear package
$ sudo pear install PDO_SKEL-X.Y.X.tgz

Full details about package.xml can be found in the PEAR Programmer's documentation (http://pear.php.net/manual/).

Releasing the package

A PDO driver is released via the PHP Extension Community Library (PECL). Information about PECL can be found at http://pecl.php.net/index.php.

Пред. | Начало | След.
Testing | Уровень выше | pdo_dbh_t definition


pdo_dbh_t definition

All fields should be treated as read-only by the driver, unless explicitly stated otherwise.

Рисунок 45-1. pdo_dbh_t

/* represents a connection to a database */
struct _pdo_dbh_t {
    /* driver specific methods */
    struct pdo_dbh_methods *methods;      (1)
    /* driver specific data */
    void *driver_data;                    (2)

    /* credentials */
    char *username, *password;            (3)

    /* if true, then data stored and pointed at by this handle must all be
     * persistently allocated */
    unsigned is_persistent:1;             (4)

    /* if true, driver should act as though a COMMIT were executed between
     * each executed statement; otherwise, COMMIT must be carried out manually
     * */
    unsigned auto_commit:1;               (5)

    /* if true, the driver requires that memory be allocated explicitly for
     * the columns that are returned */
    unsigned alloc_own_columns:1;         (6)

    /* if true, commit or rollBack is allowed to be called */
    unsigned in_txn:1;

    /* max length a single character can become after correct quoting */
    unsigned max_escaped_char_length:3;     (7)

    /* data source string used to open this handle */
    const char *data_source;              (8)
    unsigned long data_source_len;

    /* the global error code. */
    pdo_error_type error_code;            (9)

    enum pdo_case_conversion native_case  (10) , desired_case;
};
The driver must set this during SKEL_handle_factory().
This item is for use by the driver; the intended usage is to store a pointer (during SKEL_handle_factory()) to whatever instance data is required to maintain a connection to the database.
The username and password that were passed into the PDO constructor. The driver should use these values when it initiates a connection to the database.
If this is set to 1, then any data that is referenced by the dbh, including whatever structure your driver allocates, MUST be allocated persistently. This is easy to achieve; rather than using the usual emalloc() simply use pemalloc() and pass the value of this flag as the last parameter. Failure to use the appropriate kind of memory can lead to serious memory faults, resulting (in the best case) a hard crash, and in the worst case, an exploitable memory problem.

If, for whatever reason, your driver is not suitable to run persistently, you MUST check this flag in your SKEL_handle_factory() and raise an appropriate error.

You should check this value in your SKEL_handle_doer() and SKEL_stmt_execute() functions; if it evaluates to true, you must attempt to commit the query now. Most database implementations offer an auto-commit mode that handles this automatically.
If your database client library API operates by fetching data into a caller-supplied buffer, you should set this flag to 1 during your SKEL_handle_factory(). When set, PDO will call your SKEL_stmt_describer() earlier that it would otherwise. This early call allows you to determine those buffer sizes and issue appropriate calls to the database client library.

If your database client library API simply returns pointers to its own internal buffers for you to copy after each fetch call, you should leave this value set to 0.

If your driver doesn't support native prepared statements (supports_placeholders is set to PDO_PLACEHOLDER_NONE), you must set this value to the maximum length that can be taken up by a single character when it is quoted by your SKEL_handle_quoter() function. This value is used to calculate the amount of buffer space required when PDO it executes the statement.
This holds the value of the DSN that was passed into the PDO constructor. If your driver implementation needed to modify the DSN for whatever reason, it should update this member during SKEL_handle_factory(). Modifying this member should be avoided. If you do change it, you must ensure that data_source_len is also correct.
Whenever an error occurs during a call to one of your driver methods, you should set this member to the SQLSTATE code that best describes the error and return an error. In this HOW-TO, the suggested practice is to call SKEL_handle_error() when an error is detected, and have it set the error code.
Your driver should set this during SKEL_handle_factory(); the value should reflect how the database returns the names of the columns in result sets. If the name matches the case that was used in the query, set it to PDO_CASE_NATURAL (this is actually the default). If the column names are always returned in upper case, set it to PDO_CASE_UPPER. If the column names are always return in lower case, set it to PDO_CASE_LOWER. The value you set it used to determine if PDO should perform case folding when the user sets the PDO_ATTR_CASE attribute.

Пред. | Начало | След.
Packaging and distribution | Уровень выше | pdo_stmt_t definition


pdo_stmt_t definition

All fields should be treated as read-only unless explicitly stated otherwise.

Рисунок 45-2. pdo_stmt_t

/* represents a prepared statement */
struct _pdo_stmt_t {
    /* driver specifics */
    struct pdo_stmt_methods *methods;     (1)
    void *driver_data;                    (2)

    /* if true, we've already successfully executed this statement at least
     * once */
    unsigned executed:1;                  (3)
    /* if true, the statement supports placeholders and can implement
     * bindParam() for its prepared statements, if false, PDO should
     * emulate prepare and bind on its behalf */
    unsigned supports_placeholders:2;     (4)

    /* the number of columns in the result set; not valid until after
     * the statement has been executed at least once.  In some cases, might
     * not be valid until fetch (at the driver level) has been called at least once.
     * */
    int column_count;                     (5)
    struct pdo_column_data *columns;      (6)

    /* points at the dbh that this statement was prepared on */
    pdo_dbh_t *dbh;

    /* keep track of bound input parameters.  Some drivers support
     * input/output parameters, but you can't rely on that working */
    HashTable *bound_params;
    /* When rewriting from named to positional, this maps positions to names */
    HashTable *bound_param_map;
    /* keep track of PHP variables bound to named (or positional) columns
     * in the result set */
    HashTable *bound_columns;

    /* not always meaningful */
    long row_count;

    /* used to hold the statement's current query */
    char *query_string;
    int query_stringlen;

    /* the copy of the query with expanded binds ONLY for emulated-prepare drivers */
    char *active_query_string;
    int active_query_stringlen;

    /* the cursor specific error code. */
    pdo_error_type error_code;

    /* used by the query parser for driver specific
     * parameter naming (see pgsql driver for example) */
    const char *named_rewrite_template;
};
The driver must set this during SKEL_handle_preparer().
This item is for use by the driver; the intended usage is to store a pointer (during SKEL_handle_factory()) to whatever instance data is required to maintain a connection to the database.
This is set by PDO after the statement has been executed for the first time. Your driver can inspect this value to determine if it can skip one-time actions as an optimization.
Discussed in more detail in Разд. SKEL_handle_preparer
Your driver is responsible for setting this field to the number of columns available in a result set. This is usually set during SKEL_stmt_execute() but with some database implementations, the column count may not be available until SKEL_stmt_fetch() has been called at least once. Drivers that SKEL_stmt_next_rowset() should update the column count when a new rowset is available.
PDO will allocate this field based on the value that you set for the column count. You are responsible for populating each column during SKEL_stmt_describe(). You must set the precision, maxlen, name, namelen and param_type members for each column. The name is expected to be allocated using emalloc(); PDO will efree() at the appropriate time.

Пред. | Начало | След.
pdo_dbh_t definition | Уровень выше | Constants


Preparation and Housekeeping

Source directory layout

The source directory for a typical PDO driver is laid out as follows, where SKEL represents a shortened form of the name of the database that the driver is going to connect to. Even though SKEL is presented here in uppercase (for clarity), the convention is to use lowercase characters.

pdo_SKEL/
  config.m4                    (1)
  config.w32                   (2)
  CREDITS
  package.xml                  (3)
  pdo_SKEL.c             (4)
  php_pdo_SKEL.h
  php_pdo_SKEL_int.h     (5)
  SKEL_dbh.c             (6)
  SKEL_stmt.c            (7)
unix build script
win32 build script
meta information about the package
standard PHP extension glue
driver private header
contains the implementation of the PDO driver interface
contains the implementation of the PDO statement interface

The contents of these files are defined later in this document.

Creating a skeleton

The easiest way to get started is to use the ext_skel shell script found in the PHP build tree in the ext directory. This will build a skeleton directory containing a lot of the files listed above. It can be build by executing the following command from within the ext directory:

./ext_skel --extname=pdo_SKEL

This will generate a directory called pdo_SKEL containing the skeleton files that you can then modify. This directory should then be moved out of the php extension directory . PDO is a PECL extension and should not be included in the standard extension directory. As long as you have PHP and PDO installed, you should be able to build from any directory.

Standard Includes

Build Specific Headers

The header file config.h is generated by the configure process for the platform for the which the driver is being built. If this header is present, the HAVE_CONFIG_H compiler variable is set. This variable should be tested for and if set, the file config.h should be included in the compilation unit.

PHP Headers

The following standard public php headers should be included in each source module:

  1. php.h

  2. php_ini.h

  3. ext/standard/info.h

PDO Interface Headers

The following standard public PDO header files are also included in each source module:

pdo/php_pdo.h

This header file contains definitions of the initialization and shutdown functions in the main driver as well as definitions of global PDO variables.

pdo/php_pdo_driver.h

This header contains the types and API contracts that are used to write a PDO driver. It also contains method signature for calling back into the PDO layer and registering/unregistering your driver with PDO. Most importantly, this header file contains the type definitions for PDO database handles and statements. The two main structures a driver has to deal with, pdo_dbh_t and pdo_stmt_t, are described in more detail in Appendix A and B.

Driver Specific Headers

The typical PDO driver has two header files that are specific to the database implementation. This does not preclude the use of more depending on the implementation. The following two headers are, by convention, standard:

php_pdo_SKEL.h

This header file is virtually an exact duplicate in functionality and content of the previously defined pdo/php_pdo.h that has been specifically tailored for your database. If your driver requires the use of global variables they should be defined using the ZEND_BEGIN_MODULE_GLOBALS and ZEND_END_MODULE_GLOBALS macros. Macros are then used to access these variables. This macro is usually named PDO_SKEL_G(v) where v is global variable to be accessed. Consult the Zend programmer documentation for more information.

php_pdo_SKEL_int.h

This header file typically contains type definitions and function declarations specific to the driver implementation. It also should contain the db specicfic definitions of a pdo_SKEL_handle and pdo_SKEL_stmt structures. These are the names of the private data structures that are then referenced by the driver_data members of the handle and statement structures.

Optional Headers

Depending on the implementation details for a particular driver it may be necessary to include the following header:

#include <zend_exceptions.h>

Пред. | Начало | След.
Prerequisites | Уровень выше | Fleshing out your skeleton


Prerequisites

The following is list of prerequisites and assumptions needed for writing a PDO database driver:

  1. A working target database, examples, demos, etc. working as per vendor specifications;

  2. A working development environment:

    1. Other Unix: standard development tools supplied by vendor plus the GNU development tool set;

    2. Win32: Visual Studio compiler suite;

    3. Linux: standard development tools, gcc, ld, make, autoconf, automake, etc., versions dependent on distribution;

  3. A working PHP environment version 5.0.3 or higher with a working PEAR extension version 1.3.5 or higher;

  4. A working PDO environment (can be installed using 'sudo pear install PDO'), including the headers which will be needed to access the PDO type definitions and function declarations;

  5. A good working knowledge of the 'C' programming language;

  6. A good working knowledge of the way to write a PHP extension; George Schlossnagle's Advanced PHP Programming (published by Developer's Library, chapters 21 and 22) is recommended;

  7. Finally, a familiarity with the Zend API that forms the heart of PHP, in particular paying attention to the memory management aspects.

Пред. | Начало | След.
PDO Driver How-To | Уровень выше | Preparation and Housekeeping


Testing

PDO has a set of "core" tests that all drivers should pass before being released. They're designed to run from the PHP source distribution, so running the tests for your driver requires moving things around a bit. The suggested procedure is to obtain the latest PHP 5.1 snapshot and perform the following step:

$ cp -r pdo_SKEL /path/to/php-5.1/ext

This will allow the test harness to run your tests. The next thing you need to do is create a test that will redirect into the PDO common core tests. The convention is to name this file common.phpt; it should be placed in the tests subdirectory that was created by ext_skel when you created your extension skeleton. The content of this file should look something like the following:

--TEST--
SKEL
--SKIPIF--
<?php # vim:ft=php
if (!extension_loaded('pdo_SKEL')) print 'skip'; ?>
--REDIRECTTEST--
if (false !== getenv('PDO_SKEL_TEST_DSN')) {
# user set them from their shell
   $config['ENV']['PDOTEST_DSN'] = getenv('PDO_SKEL_TEST_DSN');
   $config['ENV']['PDOTEST_USER'] = getenv('PDO_SKEL_TEST_USER');
   $config['ENV']['PDOTEST_PASS'] = getenv('PDO_SKEL_TEST_PASS');
   if (false !== getenv('PDO_SKEL_TEST_ATTR')) {
      $config['ENV']['PDOTEST_ATTR'] = getenv('PDO_SKEL_TEST_ATTR');
   }
   return $config;
}
return array(
   'ENV' => array(
           'PDOTEST_DSN' => 'SKEL:dsn',
           'PDOTEST_USER' => 'username',
           'PDOTEST_PASS' => 'password'
       ),
   'TESTS' => 'ext/pdo/tests'
   );

This will cause the common core tests to be run, passing the values of PDOTEST_DSN, PDOTEST_USER and PDOTEST_PASS to the PDO constructor as the dsn, username and password parameters. It will first check the environment, so that appropriate values can be passed in when the test harness is run, rather than hard-coding the database credentials into the test file.

The test harness can be invoked as follows:

$ cd /path/to/php-5.1
$ make TESTS=ext/pdo_SKEL/tests PDO_SKEL_TEST_DSN="skel:dsn" \
 PDO_SKEL_TEST_USER=user PDO_SKEL_TEST_PASS=pass test

Пред. | Начало | След.
Building | Уровень выше | Packaging and distribution


extends

Often you need classes with similar variables and functions to another existing class. In fact, it is good practice to define a generic class which can be used in all your projects and adapt this class for the needs of each of your specific projects. To facilitate this, classes can be extensions of other classes. The extended or derived class has all variables and functions of the base class (this is called 'inheritance' despite the fact that nobody died) and what you add in the extended definition. It is not possible to subtract from a class, that is, to undefine any existing functions or variables. An extended class is always dependent on a single base class, that is, multiple inheritance is not supported. Classes are extended using the keyword 'extends'.

<?php
class Named_Cart extends Cart {
    var $owner;

    function set_owner ($name) {
        $this->owner = $name;
    }
}
?>

This defines a class Named_Cart that has all variables and functions of Cart plus an additional variable $owner and an additional function set_owner(). You create a named cart the usual way and can now set and get the carts owner. You can still use normal cart functions on named carts:

<?php
$ncart = new Named_Cart;    // Create a named cart
$ncart->set_owner("kris");  // Name that cart
print $ncart->owner;        // print the cart owners name
$ncart->add_item("10", 1);  // (inherited functionality from cart)
?>

This is also called a "parent-child" relationship. You create a class, parent, and use extends to create a new class based on the parent class: the child class. You can even use this new child class and create another class based on this child class.

Замечание: Classes must be defined before they are used! If you want the class Named_Cart to extend the class Cart, you will have to define the class Cart first. If you want to create another class called Yellow_named_cart based on the class Named_Cart you have to define Named_Cart first. To make it short: the order in which the classes are defined is important.

Пред. | Начало | След.
Classes and Objects (PHP 4) | Уровень выше | Constructors


Scope Resolution Operator (::)

Предостережение

The following is valid for PHP 4 and later only.

Sometimes it is useful to refer to functions and variables in base classes or to refer to functions in classes that have not yet any instances. The :: operator is being used for this.

<?php
class A {
    function example() {
        echo "I am the original function A::example().<br />\n";
    }
}

class B extends A {
    function example() {
        echo "I am the redefined function B::example().<br />\n";
        A::example();
    }
}

// there is no object of class A.
// this will print
//   I am the original function A::example().<br />
A::example();

// create an object of class B.
$b = new B;

// this will print
//   I am the redefined function B::example().<br />
//   I am the original function A::example().<br />
$b->example();
?>

The above example calls the function example() in class A, but there is no object of class A, so that we cannot write $a->example() or similar. Instead we call example() as a 'class function', that is, as a function of the class itself, not any object of that class.

There are class functions, but there are no class variables. In fact, there is no object at all at the time of the call. Thus, a class function may not use any object variables (but it can use local and global variables), and it may not use $this at all.

In the above example, class B redefines the function example(). The original definition in class A is shadowed and no longer available, unless you are referring specifically to the implementation of example() in class A using the ::-operator. Write A::example() to do this (in fact, you should be writing parent::example(), as shown in the next section).

In this context, there is a current object and it may have object variables. Thus, when used from WITHIN an object function, you may use $this and object variables.

Пред. | Начало | След.
Constructors | Уровень выше | parent


parent

You may find yourself writing code that refers to variables and functions in base classes. This is particularly true if your derived class is a refinement or specialisation of code in your base class.

Instead of using the literal name of the base class in your code, you should be using the special name parent, which refers to the name of your base class as given in the extends declaration of your class. By doing this, you avoid using the name of your base class in more than one place. Should your inheritance tree change during implementation, the change is easily made by simply changing the extends declaration of your class.

<?php
class A {
    function example() {
        echo "I am A::example() and provide basic functionality.<br />\n";
    }
}

class B extends A {
    function example() {
        echo "I am B::example() and provide additional functionality.<br />\n";
        parent::example();
    }
}

$b = new B;

// This will call B::example(), which will in turn call A::example().
$b->example();
?>

Пред. | Начало | След.
Scope Resolution Operator (::) | Уровень выше | Serializing objects - objects in sessions


The magic functions __sleep and __wakeup

serialize() checks if your class has a function with the magic name __sleep. If so, that function is being run prior to any serialization. It can clean up the object and is supposed to return an array with the names of all variables of that object that should be serialized.

The intended use of __sleep is to close any database connections that object may have, committing pending data or perform similar cleanup tasks. Also, the function is useful if you have very large objects which need not be saved completely.

Conversely, unserialize() checks for the presence of a function with the magic name __wakeup. If present, this function can reconstruct any resources that object may have.

The intended use of __wakeup is to reestablish any database connections that may have been lost during serialization and perform other reinitialization tasks.

Пред. | Начало | След.
Serializing objects - objects in sessions | Уровень выше | References inside the constructor


empty("0")

The perhaps most controversial change in behavior has happened to the behavior of the empty(). A String containing only the character '0' (zero) is now considered empty while it wasn't in PHP 3.

This new behavior makes sense in web applications, with all input fields returning strings even if numeric input is requested, and with PHP's capabilities of automatic type conversion. But on the other hand it might break your code in a rather subtle way, leading to misbehavior that is hard to track down if you do not know about what to look for.

Пред. | Начало | След.
Initializers | Уровень выше | Missing functions


old_function

The old_function statement allows you to declare a function using a syntax identical to PHP/FI2 (except you must replace 'function' with 'old_function'.

This is a deprecated feature, and should only be used by the PHP/FI2->PHP 3 convertor.

Внимание

Functions declared as old_function cannot be called from PHP's internal code. Among other things, this means you can't use them in functions such as usort(), array_walk(), and register_shutdown_function(). You can get around this limitation by writing a wrapper function (in normal PHP 3 form) to call the old_function.

Пред. | Начало | След.
Migrating from PHP/FI 2 to PHP 3 | Уровень выше | Start/end tags


Function TRUE/FALSE return values

Most internal functions have been rewritten so they return TRUE when successful and FALSE when failing, as opposed to 0 and -1 in PHP/FI 2.0, respectively. The new behaviour allows for more logical code, like $fp = fopen("/your/file") or fail("darn!");. Because PHP/FI 2.0 had no clear rules for what functions should return when they failed, most such scripts will probably have to be checked manually after using the 2.0 to 3.0 convertor.

Пример D-9. Migration from 2.0: return values, old code

$fp = fopen($file, "r");
if ($fp == -1);
    echo("Could not open $file for reading<br />\n");
endif;

Пример D-10. Migration from 2.0: return values, new code

$fp = @fopen($file, "r") or print("Could not open $file for reading<br />\n");

Пред. | Начало | След.
Short-circuited boolean evaluation | Уровень выше | Other incompatibilities


Usage

(no version information, might be only in CVS)

Usage -- Examples on using the ogg:// wrapper.

Примеры

Пример 1. Reading an OGG/Vorbis file

<?php
dl("oggvorbis.so");

/* By default, ogg:// will decode to Signed 16-bit Little Endian */
$fp = fopen('ogg://myaudio.ogg', 'r');

/* Collect some information about the file. */
$metadata = stream_get_meta_data($fp);

/* Inspect the first song (usually the only song,
   but OGG/Vorbis files may be chained) */
$songdata = $metadata['wrapper_data'][0];

echo "OGG/Vorbis file encoded by: {$songdata['vendor']}\n.";
echo "  {$songdata['channels']} channels of {$songdata['rate']}Hz sampling encoded at {$songdata['bitrate_nominal']}bps.\n";
foreach($songdata['comments'] as $comment) {
    echo "  $comment\n";
}

while ($audio_data = fread($fp, 8192)) {
  /* Do something with the PCM audio we're extracting from the OGG.
     Copying to /dev/dsp is a good target on linux systems,
     just remember to setup the device for your sampling mode first. */
}

fclose($fp);

?>

Пример 2. Encode an audio file to OGG/Vorbis

<?php
dl('oggvorbis.so');

$context = stream_context_create(array('ogg'=>array(
             'pcm_mode' => OGGVORBIS_PCM_S8,  /* Signed 8bit audio */
             'rate' => 44100,                 /* 44kHz CD quality */
             'bitrate' => 0.5,                /* Midquality VBR */
             'channels' => 1,                 /* Mono */
             'serialno' => 12345)));          /* Unique within our stream */

/* Open file for appending.  This will "chain" a second OGG stream at the end of the first. */
$ogg = fopen('ogg://mysong.ogg', 'a', false, $context);

$pcm = fopen('mysample.pcm', 'r');

/* Compress the raw PCM audio from mysample.pcm into mysong.ogg */
stream_copy_to_stream($pcm, $ogg);

fclose($pcm);
fclose($ogg);
?>

Пред. | Начало | След.
oggvorbis | Уровень выше | OpenAL Audio Bindings


Alternative PHP Cache

Руководство по PHP
Пред. След.

III. Alternative PHP Cache

Введение

The Alternative PHP Cache (APC) is a free and open opcode cache for PHP. It was conceived of to provide a free, open, and robust framework for caching and optimizing PHP intermediate code.

Установка

Это расширение PECL не поставляется вместе с PHP.

Дополнительная информация, такая как новый версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, могут быть найдены здесь: http://pecl.php.net/package/apc.

Вы можете скачать DLL этого расширения PECL со страницы PHP Downloads или http://snaps.php.net/.

Замечание: On Windows, APC expects c:\tmp to exist, and be writable by the web server.

Замечание: For more in-depth, highly technical documentation, see the developer-supplied TECHNOTES file .

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Although the default APC settings are fine for many installations, serious users should consider tuning the following parameters.

Таблица 1. APC configuration options

Name | Default | Changeable | Changelog
apc.enabled | 1 | PHP_INI_ALL |
apc.shm_segments | 1 | PHP_INI_SYSTEM |
apc.shm_size | 30 | PHP_INI_SYSTEM |
apc.optimization | 0 | PHP_INI_ALL |
apc.num_files_hint | 1000 | PHP_INI_SYSTEM |
apc.ttl | 0 | PHP_INI_SYSTEM |
apc.gc_ttl | 3600 | PHP_INI_SYSTEM |
apc.cache_by_default | On | PHP_INI_SYSTEM |
apc.filters | "" | PHP_INI_SYSTEM |
apc.mmap_file_mask | "" | PHP_INI_SYSTEM |
apc.slam_defense | 0 | PHP_INI_SYSTEM |
apc.file_update_protection | 2 | PHP_INI_SYSTEM |
apc.enable_cli | 0 | PHP_INI_SYSTEM | > APC 3.0.6
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

apc.enabled boolean

apc.enabled can be set to 0 to disable APC. This is primarily useful when APC is statically compiled into PHP, since there is no other way to disable it (when compiled as a DSO, the extension line in php.ini can just be commented-out).

apc.shm_segments integer

The number of shared memory segments to allocate for the compiler cache. If APC is running out of shared memory but you have already set apc.shm_size as high as your system allows, you can try raising this value.

apc.shm_size integer

The size of each shared memory segment in MB. By default, some systems (including most BSD variants) have very low limits on the size of a shared memory segment.

apc.optimization integer

The optimization level. Zero disables the optimizer, and higher values use more aggressive optimizations. Expect very modest speed improvements. This is experimental.

apc.num_files_hint integer

A "hint" about the number of distinct source files that will be included or requested on your web server. Set to zero or omit if you're not sure; this setting is mainly useful for sites that have many thousands of source files.

apc.ttl integer

The number of seconds a cache entry is allowed to idle in a slot in case this cache entry slot is needed by another entry. Leaving this at zero means that your cache could potentially fill up with stale entries while newer entries won't be cached.

apc.gc_ttl integer

The number of seconds that a cache entry may remain on the garbage-collection list. This value provides a failsafe in the event that a server process dies while executing a cached source file; if that source file is modified, the memory allocated for the old version will not be reclaimed until this TTL reached. Set to zero to disable this feature.

apc.cache_by_default boolean

On by default, but can be set to off and used in conjunction with positive apc.filters so that files are only cached if matched by a positive filter.

apc.filters string

A comma-separated list of POSIX extended regular expressions. If any pattern matches the source filename, the file will not be cached. Note that the filename used for matching is the one passed to include/require, not the absolute path. If the first character of the expression is a + then the expression will be additive in the sense that any files matched by the expression will be cached, and if the first character is a - then anything matched will not be cached. The - case is the default, so it can be left off.

apc.mmap_file_mask string

If compiled with MMAP support by using --enable-mmap this is the mktemp-style file_mask to pass to the mmap module for determing whether your mmap'ed memory region is going to be file-backed or shared memory backed. For straight file-backed mmap, set it to something like /tmp/apc.XXXXXX (exactly 6 Xs). To use POSIX-style shm_open/mmap put a .shm somewhere in your mask. e.g. /apc.shm.XXXXXX You can also set it to /dev/zero to use your kernel's /dev/zero interface to anonymous mmap'ed memory. Leaving it undefined will force an anonymous mmap.

apc.slam_defense integer

On very busy servers whenever you start the server or modify files you can create a race of many processes all trying to cache the same file at the same time. This option sets the percentage of processes that will skip trying to cache an uncached file. Or think of it as the probability of a single process to skip caching. For example, setting apc.slam_defense to 75 would mean that there is a 75% chance that the process will not cache an uncached file. So, the higher the setting the greater the defense against cache slams. Setting this to 0 disables this feature.

apc.file_update_protection integer

When you modify a file on a live web server you really should do so in an atomic manner. That is, write to a temporary file and rename (mv) the file into its permanent position when it is ready. Many text editors, cp, tar and other such programs don't do this. This means that there is a chance that a file is accessed (and cached) while it is still being written to. This apc.file_update_protection setting puts a delay on caching brand new files. The default is 2 seconds which means that if the modification timestamp (mtime) on a file shows that it is less than 2 seconds old when it is accessed, it will not be cached. The unfortunate person who accessed this half-written file will still see weirdness, but at least it won't persist. If you are certain you always atomically update your files by using something like rsync which does this correctly, you can turn this protection off by setting it to 0. If you have a system that is flooded with io causing some update procedure to take longer than 2 seconds, you may want to increase this a bit.

apc.enable-cli integer

Mostly for testing and debugging. Setting this enables APC for the CLI version of PHP. Normally you wouldn't want to create, populate and tear down the APC cache on every CLI request, but for various test scenarios it is handy to be able to enable APC for the CLI version of APC easily.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Содержание
apc_cache_info -- Retrieves cached information (and meta-data) from APC's data store
apc_clear_cache -- Clears the APC cache
apc_define_constants -- Defines a set of constants for later retrieval and mass-definition
apc_delete -- Removes a stored variable from the cache
apc_fetch -- Fetch a stored variable from the cache
apc_load_constants -- Loads a set of constants from the cache
apc_sma_info -- Retrieves APC's Shared Memory Allocation information
apc_store -- Cache a variable in the data store

Пред. | Начало | След.
virtual | Уровень выше | apc_cache_info


Credit Mutuel CyberMUT functions

Руководство по PHP
Пред. След.

XX. Credit Mutuel CyberMUT functions

Введение

This extension allows you to process credit cards transactions using Credit Mutuel CyberMUT system.

CyberMUT is a popular Web Payment Service in France, provided by the Credit Mutuel bank. If you are foreign in France, these functions will not be useful for you.

The use of these functions is almost identical to the original functions, except for the parameters of return for CreerFormulaireCM and CreerReponseCM, which are returned directly by functions PHP, whereas they had passed in reference in the original functions.

Замечание: Для Windows-платформ это расширение недоступно.

Замечание: This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 4.3.0

Требования

You will require the appropriate SDK for your platform, which may be sent to you after your CyberMUT's subscription (contact them via Web, or go to the nearest Credit Mutuel).

Замечание: These functions only provide a link to CyberMUT SDK. Be sure to read the CyberMUT Developers Guide for full details of the required parameters.

Содержание
cybermut_creerformulairecm -- Generate HTML form of request for payment
cybermut_creerreponsecm -- Generate the delivery's acknowledgement of the payment's confirmation
cybermut_testmac -- Make sure that there was no data diddling contained in the received message of confirmation

Пред. | Начало | След.
cybercash_encr | Уровень выше | cybermut_creerformulairecm


Expect Functions

Руководство по PHP
Пред. След.

XXXIV. Expect Functions

Введение

This extension allows to interact with processes through PTY. You may consider using the expect:// wrapper with the filesystem functions which provide a simpler and more intuitive interface.

Требования

This module uses the functions of the expect library. You need libexpect version >= 5.43.0.

Установка

Это расширение PECL не поставляется вместе с PHP. Дополнительная информация, такая как новый версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, могут быть найдены здесь: http://pecl.php.net/package/expect.

В PHP 4 исходные файлы этого расширения PECL могут быть найдены в директории ext/ внутри исходных файлов PHP или по ссылке PECL выше. In order to use these functions you must compile PHP with expect support by using the --with-expect[=DIR] configure option.

Windows users will enable php_expect.dll inside of php.ini in order to use these functions. В PHP 4 этот DLL находится в директории extensions/ внутри директории бинарного дистрибутива PHP для Windows. Вы можете скачать DLL этого расширения PECL со страницы PHP Downloads или http://snaps.php.net/.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

In order to configure expect extension, there are configuration options in the configuration file php.ini.

Таблица 1. Expect Опции настройки

Имя | По умолчанию | Меняемо | Changelog
expect.timeout | "10" | PHP_INI_ALL |
expect.loguser | "On" | PHP_INI_ALL |
expect.logfile | "" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

expect.timeout integer

The timeout period for waiting for the data, when using the expect_expectl() function.

A value of "-1" disables a timeout from occurring.

Замечание: A value of "0" causes the expect_expectl() function to return immediately.

expect.loguser boolean

Whether expect should send any output from the spawned process to stdout. Since interactive programs typically echo their input, this usually suffices to show both sides of the conversation.

expect.logfile string

Name of the file, where the output from the spawned process will be written. If this file doesn't exist, it will be created.

Замечание: If this configuration is not empty, the output is written regardless of the value of expect.loguser.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

EXP_GLOB (integer)

Indicates that the pattern is a glob-style string pattern.

EXP_EXACT (integer)

Indicates that the pattern is an exact string.

EXP_REGEXP (integer)

Indicates that the pattern is a regexp-style string pattern.

EXP_EOF (integer)

Value, returned by expect_expectl(), when EOF is reached.

EXP_TIMEOUT (integer)

Value, returned by expect_expectl() upon timeout of seconds, specified in value of expect.timeout

EXP_FULLBUFFER (integer)

Value, returned by expect_expectl() if no pattern have been matched.

Примеры

This example connects to the remote host via SSH, and prints the remote uptime.

Пример 1. Expect Usage Example

<?php
ini_set ("expect.loguser", "Off");

$stream = popen ("expect://ssh root@remotehost uptime", "r");

$cases = array (
  array (0 => "password:", 1 => PASSWORD)
);

switch (expect_expectl ($stream, $cases))
{
 case PASSWORD:
  fwrite ($stream, "password\n");
  break;

 default:
  die ("Error was occurred while connecting to the remote host!\n");
}

while ($line = fgets ($stream)) {
  print $line;
}
fclose ($stream);
?>
Содержание
expect_expectl -- Waits until the output from a process matches one of the patterns, a specified time period has passed, or an EOF is seen
expect_popen -- Exectute command via Bourne shell, and open the PTY stream to the process

Пред. | Начало | След.
read_exif_data | Уровень выше | expect_expectl


gnupg Функции

Руководство по PHP
Пред. След.

XLVII. gnupg Функции

Введение

This module allows you to interact with gnupg.

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

Требования

The gnupg extension requires PHP 4.3. To use this extension in an OO style, PHP 5 is required.

This extension requires the gpgme library

Установка

The gnupg-extension is not bundled with PHP. It is a PECL extension and can be located here: http://pecl.php.net/package/gnupg.

Предопределенные константы

GNUPG_SIG_MODE_NORMAL (integer)

GNUPG_SIG_MODE_DETACH (integer)

GNUPG_SIG_MODE_CLEAR (integer)

GNUPG_VALIDITY_UNKNOWN (integer)

GNUPG_VALIDITY_UNDEFINED (integer)

GNUPG_VALIDITY_NEVER (integer)

GNUPG_VALIDITY_MARGINAL (integer)

GNUPG_VALIDITY_FULL (integer)

GNUPG_VALIDITY_ULTIMATE (integer)

GNUPG_PROTOCOL_OpenPGP (integer)

GNUPG_PROTOCOL_CMS (integer)

GNUPG_SIGSUM_VALID (integer)

GNUPG_SIGSUM_GREEN (integer)

GNUPG_SIGSUM_RED (integer)

GNUPG_SIGSUM_KEY_REVOKED (integer)

GNUPG_SIGSUM_KEY_EXPIRED (integer)

GNUPG_SIGSUM_KEY_MISSING (integer)

GNUPG_SIGSUM_SIG_EXPIRED (integer)

GNUPG_SIGSUM_CRL_MISSING (integer)

GNUPG_SIGSUM_CRL_TOO_OLD (integer)

GNUPG_SIGSUM_BAD_POLICY (integer)

GNUPG_SIGSUM_SYS_ERROR (integer)

GNUPG_ERROR_WARNING (integer)

GNUPG_ERROR_EXCEPTION (integer)

GNUPG_ERROR_SILENT (integer)

Примечания

This extension makes use of the keyring of the current user. This keyring is normaly located in ~./.gnupg/. To specify a custom location, store the path to the keyring in the environment variable GNUPGHOME. See putenv for more information how to do this.

Some functions require the specification of a key. This specification can be anything that refers to an unique key (userid, key-id, fingerprint, ...). This documentation uses the fingerprint in all examples.

keylistiterator

This extension also comes with an Iterator for your keyring.
<?php
// create a new iterator for listing all public keys that matches 'example'
$iterator = new gnupg_keylistiterator("example");
foreach($iterator as $fingerprint => $userid){
    echo $fingerprint." -> ".$userid."\n";
}
?>

Примеры

This example will clearsign a given text.

Пример 1. gnupg clearsign example (procedural)

<?php
// init gnupg
$res = gnupg_init();
// not really needed. Clearsign is default
gnupg_setsignmode($res,GNUPG_SIG_MODE_CLEAR);
// add key with passphrase 'test' for signing
gnupg_addsignkey($res,"8660281B6051D071D94B5B230549F9DC851566DC","test");
// sign
$signed = gnupg_sign("just a test");
echo $signed;
?>

Пример 2. gnupg clearsign example (OO)

<?php
// new class
$gnupg = new gnupg();
// not really needed. Clearsign is default
$gnupg->setsignmode(gnupg::SIG_MODE_CLEAR);
// add key with passphrase 'test' for signing
$gnupg->addsignkey("8660281B6051D071D94B5B230549F9DC851566DC","test");
// sign
$signed = $gnupg->sign("just a test");
echo $signed;
?>
Содержание
gnupg_adddecryptkey -- Add a key for decryption
gnupg_addencryptkey -- Add a key for encryption
gnupg_addsignkey -- Add a key for signing
gnupg_cleardecryptkeys -- Removes all keys which were set for decryption before
gnupg_clearencryptkeys -- Removes all keys which were set for encryption before
gnupg_clearsignkeys -- Removes all keys which were set for signing before
gnupg_decrypt -- Decrypts a given text
gnupg_decryptverify -- Decrypts and verifies a given text
gnupg_encrypt -- Encrypts a given text
gnupg_encryptsign -- Encrypts and signs a given text
gnupg_export -- Exports a key
gnupg_geterror -- Returns the errortext, if a function fails
gnupg_getprotocol -- Returns the currently active protocol for all operations
gnupg_import -- Imports a key
gnupg_keyinfo -- Returns an array with information about all keys that matches the given pattern
gnupg_setarmor -- Toggle armored output
gnupg_seterrormode -- Sets the mode for error_reporting
gnupg_setsignmode -- Sets the mode for signing
gnupg_sign -- Signs a given text
gnupg_verify -- Verifies a signed text

Пред. | Начало | След.
gmp_xor | Уровень выше | gnupg_adddecryptkey


IBM DB2, Cloudscape and Apache Derby Functions

Руководство по PHP
Пред. След.

LII. IBM DB2, Cloudscape and Apache Derby Functions

Введение

These functions enable you to access IBM DB2 Universal Database, IBM Cloudscape, and Apache Derby databases using the DB2 Call Level Interface (DB2 CLI).

Требования

To connect to IBM DB2 Universal Database for Linux, UNIX, and Windows, or IBM Cloudscape, or Apache Derby, you must install an IBM DB2 Universal Database client on the same computer on which you are running PHP. The extension has been developed and tested with DB2 Version 8.2.

To connect to IBM DB2 Universal Database for z/OS or iSeries, you also require IBM DB2 Connect or the equivalent DRDA gateway software.

Requirements on Linux or Unix

The user invoking the PHP executable or SAPI must specify the DB2 instance before accessing these functions. You can set the name of the DB2 instance in php.ini using the ibm_db2.instance_name configuration option, or you can source the DB2 instance profile before invoking the PHP executable.

If you created a DB2 instance named db2inst1 in /home/db2inst1/, for example, you can add the following line to php.ini:
ibm_db2.instance_name=db2inst1
If you do not set this option in php.ini, you must issue the following command to modify your environment variables to enable access to DB2:
bash$ source /home/db2inst1/sqllib/db2profile
To enable your PHP-enabled Web server to access these functions, you must either set the ibm_db2.instance_name configuration option in php.ini, or source the DB2 instance environment in your Web server start script (typically /etc/init.d/httpd or /etc/init.d/apache).

Установка

To build the ibm_db2 extension, the DB2 application development header files and libraries must be installed on your system. DB2 does not install these by default, so you may have to return to your DB2 installer and add this option. The header files are included with the DB2 Application Development Client freely available for download from the IBM DB2 Universal Database support site.

If you add the DB2 application development header files and libraries to a Linux or Unix operating system on which DB2 was already installed, you must issue the command db2iupdt -e to update the symbolic links to the header files and libraries in your DB2 instances.

ibm_db2 is a PECL extension, so follow the instructions in Гл. 7 to install the ibm_db2 extension for PHP. Issue the configure command to point to the location of your DB2 header files and libraries as follows:
bash$ ./configure --with-IBM_DB2=/path/to/DB2
The configure command defaults to /opt/IBM/db2/V8.1.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. ibm_db2 Опции настройки

Имя | По умолчанию | Меняемо | Changelog
ibm_db2.binmode | "1" | PHP_INI_ALL |
ibm_db2.instance_name | NULL | PHP_INI_SYSTEM |

Краткое разъяснение конфигурационных директив.

ibm_db2.binmode integer

This option controls the mode used for converting to and from binary data in the PHP application.

  • 1 (DB2_BINARY)

  • 2 (DB2_CONVERT)

  • 3 (DB2_PASSTHRU)

ibm_db2.instance_name string

On Linux and UNIX operating systems, this option defines the name of the instance to use for cataloged database connections. If this option is set, its value overrides the DB2INSTANCE environment variable setting.

This option is ignored on Windows operating systems.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

DB2_BINARY (integer)

Specifies that binary data shall be returned as is. This is the default mode.

DB2_CONVERT (integer)

Specifies that binary data shall be converted to a hexadecimal encoding and returned as an ASCII string.

DB2_PASSTHRU (integer)

Specifies that binary data shall be converted to a NULL value.

DB2_SCROLLABLE (integer)

Specifies a scrollable cursor for a statement resource. This mode enables random access to rows in a result set, but currently is supported only by IBM DB2 Universal Database.

DB2_FORWARD_ONLY (integer)

Specifies a forward-only cursor for a statement resource. This is the default cursor type and is supported on all database servers.

DB2_PARAM_IN (integer)

Specifies the PHP variable should be bound as an IN parameter for a stored procedure.

DB2_PARAM_OUT (integer)

Specifies the PHP variable should be bound as an OUT parameter for a stored procedure.

DB2_PARAM_INOUT (integer)

Specifies the PHP variable should be bound as an INOUT parameter for a stored procedure.

DB2_PARAM_FILE (integer)

Specifies that the column should be bound directly to a file for input or output.

DB2_AUTOCOMMIT_ON (integer)

Specifies that autocommit should be turned on.

DB2_AUTOCOMMIT_OFF (integer)

Specifies that autocommit should be turned off.

DB2_DOUBLE (integer)

Specifies that the variable should be bound as a DOUBLE, FLOAT, or REAL data type.

DB2_LONG (integer)

Specifies that the variable should be bound as a SMALLINT, INTEGER, or BIGINT data type.

DB2_CHAR (integer)

Specifies that the variable should be bound as a CHAR or VARCHAR data type.

Типы ресурсов

The ibm_db2 extension returns connection resources, statement resources, and result set resources.

Содержание
db2_autocommit -- Returns or sets the AUTOCOMMIT state for a database connection
db2_bind_param -- Binds a PHP variable to an SQL statement parameter
db2_client_info -- Returns an object with properties that describe the DB2 database client
db2_close -- Closes a database connection
db2_column_privileges -- Returns a result set listing the columns and associated privileges for a table
db2_columns -- Returns a result set listing the columns and associated metadata for a table
db2_commit -- Commits a transaction
db2_conn_error -- Returns a string containing the SQLSTATE returned by the last connection attempt
db2_conn_errormsg -- Returns the last connection error message and SQLCODE value
db2_connect -- Returns a connection to a database
db2_cursor_type -- Returns the cursor type used by a statement resource
db2_exec -- Executes an SQL statement directly
db2_execute -- Executes a prepared SQL statement
db2_fetch_array -- Returns an array, indexed by column position, representing a row in a result set
db2_fetch_assoc -- Returns an array, indexed by column name, representing a row in a result set
db2_fetch_both -- Returns an array, indexed by both column name and position, representing a row in a result set
db2_fetch_object -- Returns an object with properties representing columns in the fetched row
db2_fetch_row -- Sets the result set pointer to the next row or requested row
db2_field_display_size -- Returns the maximum number of bytes required to display a column
db2_field_name -- Returns the name of the column in the result set
db2_field_num -- Returns the position of the named column in a result set
db2_field_precision -- Returns the precision of the indicated column in a result set
db2_field_scale -- Returns the scale of the indicated column in a result set
db2_field_type -- Returns the data type of the indicated column in a result set
db2_field_width -- Returns the width of the current value of the indicated column in a result set
db2_foreign_keys -- Returns a result set listing the foreign keys for a table
db2_free_result -- Frees resources associated with a result set
db2_free_stmt -- Frees resources associated with the indicated statement resource
db2_next_result -- Requests the next result set from a stored procedure
db2_num_fields -- Returns the number of fields contained in a result set
db2_num_rows -- Returns the number of rows affected by an SQL statement
db2_pconnect -- Returns a persistent connection to a database
db2_prepare -- Prepares an SQL statement to be executed
db2_primary_keys -- Returns a result set listing primary keys for a table
db2_procedure_columns -- Returns a result set listing stored procedure parameters
db2_procedures -- Returns a result set listing the stored procedures registered in a database
db2_result -- Returns a single column from a row in the result set
db2_rollback -- Rolls back a transaction
db2_server_info -- Returns an object with properties that describe the DB2 database server
db2_special_columns -- Returns a result set listing the unique row identifier columns for a table
db2_statistics -- Returns a result set listing the index and statistics for a table
db2_stmt_error -- Returns a string containing the SQLSTATE returned by an SQL statement
db2_stmt_errormsg -- Returns a string containing the last SQL statement error message
db2_table_privileges -- Returns a result set listing the tables and associated privileges in a database
db2_tables -- Returns a result set listing the tables and associated metadata in a database

Пред. | Начало | След.
hw_api->userlist | Уровень выше | db2_autocommit


KADM5

Руководство по PHP
Пред. След.

LXIII. KADM5

Введение

These package allows you to access Kerberos V administration servers. You can create, modify, and delete Kerberos V principals and policies.

More information about Kerberos can be found at http://web.mit.edu/kerberos/www/.

Documentation for Kerberos and KADM5 can be found at http://web.mit.edu/kerberos/www/krb5-1.2/krb5-1.2.8/doc/admin_toc.html.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

Constants for Attribute Flags

The functions kadm5_create_principal(),
kadm5_modify_principal(), and
kadm5_modify_principal() allow to specify
special attributes using a bitfield. The symbols are defined below:

Таблица 1. Attributes for use by the KDC

constant
KRB5_KDB_DISALLOW_POSTDATED
KRB5_KDB_DISALLOW_FORWARDABLE
KRB5_KDB_DISALLOW_TGT_BASED
KRB5_KDB_DISALLOW_RENEWABLE
KRB5_KDB_DISALLOW_PROXIABLE
KRB5_KDB_DISALLOW_DUP_SKEY
KRB5_KDB_DISALLOW_ALL_TIX
KRB5_KDB_REQUIRES_PRE_AUTH
KRB5_KDB_REQUIRES_HW_AUTH
KRB5_KDB_REQUIRES_PWCHANGE
KRB5_KDB_DISALLOW_SVR
KRB5_KDB_PWCHANGE_SERVER
KRB5_KDB_SUPPORT_DESMD5
KRB5_KDB_NEW_PRINC

Constants for Options

The functions kadm5_create_principal(),
kadm5_modify_principal(), and
kadm5_get_principal() allow to specify or return
principal's options as an associative array. The keys for the associative
array are defined as string constants below:

Таблица 2. Options for creating/modifying/retrieving principals

constant | funcdef | description
KADM5_PRINCIPAL | long | The expire time of the princial as a Kerberos timestamp.
KADM5_PRINC_EXPIRE_TIME | long | The expire time of the princial as a Kerberos timestamp.
KADM5_LAST_PW_CHANGE | long | The time this principal's password was last changed.
KADM5_PW_EXPIRATION | long | The expire time of the principal's current password, as a Kerberos timestamp.
KADM5_MAX_LIFE | long | The maximum lifetime of any Kerberos ticket issued to this principal.
KADM5_MAX_RLIFE | long | The maximum renewable lifetime of any Kerberos ticket issued to or for this principal.
KADM5_MOD_NAME | string | The name of the Kerberos principal that most recently modified this principal.
KADM5_MOD_TIME | long | The time this principal was last modified, as a Kerberos timestamp.
KADM5_KVNO | long | The version of the principal's current key.
KADM5_POLICY | string | The name of the policy controlling this principal.
KADM5_CLEARPOLICY | long | Standard procedure is to assign the 'default' policy to new principals. KADM5_CLEARPOLICY suppresses this behaviour.
KADM5_LAST_SUCCESS | long | The KDC time of the last successfull AS_REQ.
KADM5_LAST_FAILED | long | The KDC time of the last failed AS_REQ.
KADM5_FAIL_AUTH_COUNT | long | The number of consecutive failed AS_REQs.
KADM5_RANDKEY | long | Generates a random password for the principal. The parameter password will be ignored.
KADM5_ATTRIBUTES | long | A bitfield of attributes for use by the KDC.

Примеры

This simple example shows how to connect, query, print resulting principals and disconnect from a KADM5 database.

Пример 1. KADM5 extension overview example

<?php

  $handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

  print "<h1>get_principals</h1>\n";
  $principals = kadm5_get_principals($handle);
  for( $i=0; $i<count($principals); $i++)
      print "$principals[$i]<br>\n";

  print "<h1>get_policies</h1>\n";
  $policies = kadm5_get_policies($handle);
  for( $i=0; $i<count($policies); $i++)
      print "$policies[$i]<br>\n";

  print "<h1>get_principal burbach@GONICUS.LOCAL</h1>\n";

  $options = kadm5_get_principal($handle, "burbach@GONICUS.LOCAL" );
  $keys = array_keys($options);
  for( $i=0; $i<count($keys); $i++) {
    $value = $options[$keys[$i]];
    print "$keys[$i]: $value<br>\n";
  }

  $options = array(KADM5_PRINC_EXPIRE_TIME => 0);
  kadm5_modify_principal($handle, "burbach@GONICUS.LOCAL", $options);

  kadm5_destroy($handle);
?>

Contact Information

If you have comments, bugfixes, enhancements or want to help in developing this you can send me a mail at holger.burbach@gonicus.de. The project homepage can be found at http://oss.gonicus.de/project/?group_id=7.

Содержание
kadm5_chpass_principal -- Changes the principal's password
kadm5_create_principal -- Creates a kerberos principal with the given parameters
kadm5_delete_principal -- Deletes a kerberos principal
kadm5_destroy -- Closes the connection to the admin server and releases all related resources
kadm5_flush -- Flush all changes to the Kerberos database, leaving the connection to the Kerberos admin server open
kadm5_get_policies -- Gets all policies from the Kerberos database
kadm5_get_principal -- Gets the principal's entries from the Kerberos database
kadm5_get_principals -- Gets all principals from the Kerberos database
kadm5_init_with_password -- Opens a connection to the KADM5 library and initializes any neccessary state information
kadm5_modify_principal -- Modifies a kerberos principal with the given parameters

Пред. | Начало | След.
java_last_exception_get | Уровень выше | kadm5_chpass_principal


Net_Gopher

Руководство по PHP
Пред. След.

XLVIII. Net_Gopher

Введение

The gopher protocol, as defined by RFC 1436, is generally considered the ancestor of the modern HTTP protocol. However, gopher was also intended to provide references to non-gopher resources including telnet, wais, nntp, and even http. This extension adds gopher support to PHP's URL Wrappers, and provides a helper function gopher_parsedir() to make sense of gopher formatted directory listings.

Требования

Установка

Net_Gopher is installed through the usual PECL package installation process.

  • Prerequisite: PHP 4.3.0.

  • $ pear install Net_Gopher

  • Copy the resulting gopher.so to an appropriate location and add extension=gopher.so to your php.ini file or load it dynamically in your PHP script using dl("gopher.so");

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Данное расширение не определяет никакие константы.

Примеры

<?php
dl("gopher.so");

readfile("gopher://gopher.example.com/somedocument");
?>

Содержание
gopher_parsedir -- Translate a gopher formatted directory entry into an associative array.

Пред. | Начало | След.
gnupg_verify | Уровень выше | gopher_parsedir


Newt Functions

Руководство по PHP
Пред. След.

XCII. Newt Functions

Введение

This is a PHP language extension for RedHat Newt library, a terminal-based window and widget library for writing applications with user friendly interface. Once this extension is enabled in PHP it will provide the use of Newt widgets, such as windows, buttons, checkboxes, radiobuttons, labels, editboxes, scrolls, textareas, scales, etc. Use of this extension if very similar to the original Newt API of C programming language.

Требования

This module uses the functions of the RedHat Newt library. You need libnewt version >= 0.51.0.

Установка

Это расширение PECL не поставляется вместе с PHP. Дополнительная информация, такая как новый версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, могут быть найдены здесь: http://pecl.php.net/package/newt.

В PHP 4 исходные файлы этого расширения PECL могут быть найдены в директории ext/ внутри исходных файлов PHP или по ссылке PECL выше. In order to use these functions you must compile CGI or CLI PHP with newt support by using the --with-newt[=DIR] configure option.

Замечание: This extension is not available for Windows platform.

You may need also curses and slang libraries, in order to compile this extension. To specify locations of these libraries, use the followin configuration options: --with-curses-dir=/path/to/libcurses --with-slang-dir=/path/to/libslang

Типы ресурсов

This extension uses two resource types: "newt component" and "newt grid". Resource type "newt component" is returned by functions, which create common newt widgets (for example: newt_button()) Resource type "newt grid" is a special link identifier for components, returned by newt grid factory functions (for example: newt_create_grid())

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

Newt form exit reasons

Таблица 1. Newt form exit reasons

constant | meaning
NEWT_EXIT_HOTKEY | hotkey defined by newt_form_add_hot_key() was pressed
NEWT_EXIT_COMPONENT | some component has caused form to exit
NEWT_EXIT_FDREADY | file descriptor specified in newt_form_watch_fd() is ready to be read or written to
NEWT_EXIT_TIMER | time specified in newt_form_set_timer() has elapsed

Newt colorsets

Таблица 2. Newt colorsets

constant | meaning
NEWT_COLORSET_ROOT |
NEWT_COLORSET_BORDER |
NEWT_COLORSET_WINDOW |
NEWT_COLORSET_SHADOW |
NEWT_COLORSET_TITLE |
NEWT_COLORSET_BUTTON |
NEWT_COLORSET_ACTBUTTON |
NEWT_COLORSET_CHECKBOX |
NEWT_COLORSET_ACTCHECKBOX |
NEWT_COLORSET_ENTRY |
NEWT_COLORSET_LABEL |
NEWT_COLORSET_LISTBOX |
NEWT_COLORSET_ACTLISTBOX |
NEWT_COLORSET_TEXTBOX |
NEWT_COLORSET_ACTTEXTBOX |
NEWT_COLORSET_HELPLINE |
NEWT_COLORSET_ROOTTEXT |
NEWT_COLORSET_ROOTTEXT |
NEWT_COLORSET_EMPTYSCALE |
NEWT_COLORSET_FULLSCALE |
NEWT_COLORSET_DISENTRY |
NEWT_COLORSET_COMPACTBUTTON |
NEWT_COLORSET_ACTSELLISTBOX |
NEWT_COLORSET_SELLISTBOX |

Newt argument flags

Таблица 3. Newt argument flags

constant | meaning
NEWT_ARG_LAST |
NEWT_ARG_APPEND |

Newt Flags Sense

Таблица 4. Newt Flags Sense

constant | meaning
NEWT_FLAGS_SET |
NEWT_FLAGS_RESET |
NEWT_FLAGS_TOGGLE |

Newt Components Flags

Таблица 5. Newt Components Flags

constant | meaning
NEWT_FLAG_RETURNEXIT | Exit form, when component is activated
NEWT_FLAG_HIDDEN | Component is hidden
NEWT_FLAG_SCROLL | Component is scrollable
NEWT_FLAG_DISABLED | Component is disabled
NEWT_FLAG_BORDER |
NEWT_FLAG_WRAP | Wrap text
NEWT_FLAG_NOF12 | Don't exit form on pressing F12
NEWT_FLAG_MULTIPLE |
NEWT_FLAG_SELECTED | Component is selected
NEWT_FLAG_CHECKBOX | Component is checkbox
NEWT_FLAG_PASSWORD | Entry component is password entry
NEWT_FLAG_SHOWCURSOR | Show cursor

File Descriptor Flags

Таблица 6. File Descriptor Flags

constant | meaning
NEWT_FD_READ |
NEWT_FD_WRITE |
NEWT_FD_EXCEPT |

Checkbox Tree Flags

Таблица 7. Checkbox Tree Flags

constant | meaning
NEWT_CHECKBOXTREE_UNSELECTABLE |
NEWT_CHECKBOXTREE_HIDE_BOX |
NEWT_CHECKBOXTREE_COLLAPSED |
NEWT_CHECKBOXTREE_EXPANDED |
NEWT_CHECKBOXTREE_UNSELECTED |
NEWT_CHECKBOXTREE_SELECTED |

Entry Flags

Таблица 8. Entry Flags

constant | meaning
NEWT_ENTRY_SCROLL |
NEWT_ENTRY_HIDDEN |
NEWT_ENTRY_RETURNEXIT |
NEWT_ENTRY_DISABLED |

Listbox Flags

Таблица 9. Listbox Flags

constant | meaning
NEWT_LISTBOX_RETURNEXIT |

Textbox Flags

Таблица 10. Textbox Flags

constant | meaning
NEWT_TEXTBOX_WRAP | Wrap text in the textbox
NEWT_TEXTBOX_SCROLL | Scroll text in the textbox

Form Flags

Таблица 11. Form Flags

constant | meaning
NEWT_FORM_NOF12 | Don't exit form on F12 press

Newt Keys

Таблица 12. Newt Keys

constant | meaning
NEWT_KEY_TAB |
NEWT_KEY_ENTER |
NEWT_KEY_SUSPEND |
NEWT_KEY_ESCAPE |
NEWT_KEY_RETURN |
NEWT_KEY_EXTRA_BASE |
NEWT_KEY_UP |
NEWT_KEY_DOWN |
NEWT_KEY_LEFT |
NEWT_KEY_RIGHT |
NEWT_KEY_BKSPC |
NEWT_KEY_DELETE |
NEWT_KEY_HOME |
NEWT_KEY_END |
NEWT_KEY_UNTAB |
NEWT_KEY_PGUP |
NEWT_KEY_PGDN |
NEWT_KEY_INSERT |
NEWT_KEY_F1 |
NEWT_KEY_F2 |
NEWT_KEY_F3 |
NEWT_KEY_F4 |
NEWT_KEY_F5 |
NEWT_KEY_F6 |
NEWT_KEY_F7 |
NEWT_KEY_F8 |
NEWT_KEY_F9 |
NEWT_KEY_F10 |
NEWT_KEY_F11 |
NEWT_KEY_F12 |
NEWT_KEY_RESIZE |

Newt Anchors

Таблица 13. Newt Anchors

constant | meaning
NEWT_ANCHOR_LEFT |
NEWT_ANCHOR_RIGHT |
NEWT_ANCHOR_TOP |
NEWT_ANCHOR_BOTTOM |

Grid Flags

Таблица 14. Grid Flags

constant | meaning
NEWT_GRID_FLAG_GROWX |
NEWT_GRID_FLAG_GROWY |
NEWT_GRID_EMPTY |
NEWT_GRID_COMPONENT |
NEWT_GRID_SUBGRID |

Примеры

This example is a PHP port of RedHat 'setup' utility dialog, executed in text mode.

Пример 1. Newt Usage Example

<?php
    newt_init ();
    newt_cls ();

    newt_draw_root_text (0, 0, "Test Mode Setup Utility 1.12");
    newt_push_help_line (null);
    newt_draw_root_text (-30, 0, "(c) 1999-2002 RedHat, Inc");

    newt_get_screen_size (&$rows, &$cols);

    newt_open_window ($rows/2-17, $cols/2-10, 34, 17, "Choose a Tool");

    $form = newt_form ();

    $list = newt_listbox (3, 2, 10);

    foreach (array (
        "Authentication configuration",
        "Firewall configuration",
        "Mouse configuration",
        "Network configuration",
        "Printer configuration",
        "System services") as $l_item)
    {
        newt_listbox_add_entry ($list, $l_item, $l_item);
    }

    $b1 = newt_button (5, 12, "Run Tool");
    $b2 = newt_button (21, 12, "Quit");

    newt_form_add_component ($form, $list);
    newt_form_add_components ($form, array($b1, $b2));

    newt_refresh ();
    newt_run_form ($form);

    newt_pop_window ();
    newt_pop_help_line ();
    newt_finished ();
    newt_form_destroy ($form);
?>
Содержание
newt_bell -- Send a beep to the terminal
newt_button_bar --
newt_button --
newt_centered_window -- Open a centered window of the specified size
newt_checkbox_get_value --
newt_checkbox_set_flags --
newt_checkbox_set_value --
newt_checkbox_tree_add_item -- *
newt_checkbox_tree_find_item --
newt_checkbox_tree_get_current --
newt_checkbox_tree_get_entry_value --
newt_checkbox_tree_get_multi_selection --
newt_checkbox_tree_get_selection --
newt_checkbox_tree_multi --
newt_checkbox_tree_set_current --
newt_checkbox_tree_set_entry_value --
newt_checkbox_tree_set_entry --
newt_checkbox_tree_set_width --
newt_checkbox_tree --
newt_checkbox --
newt_clear_key_buffer -- Discards the contents of the terminal's input buffer without waiting for additional input
newt_cls --
newt_compact_button --
newt_component_add_callback --
newt_component_takes_focus --
newt_create_grid --
newt_cursor_off --
newt_cursor_on --
newt_delay --
newt_draw_form --
newt_draw_root_text -- Displays the string text at the position indicated
newt_entry_get_value --
newt_entry_set_filter --
newt_entry_set_flags --
newt_entry_set --
newt_entry --
newt_finished -- Uninitializes newt interface.
newt_form_add_component -- Adds a single component to the form
newt_form_add_components -- Add several components to the form
newt_form_add_host_key --
newt_form_destroy -- Destroys a form
newt_form_get_current --
newt_form_run -- Runs a form
newt_form_set_background --
newt_form_set_height --
newt_form_set_size --
newt_form_set_timer --
newt_form_set_width --
newt_form_watch_fd --
newt_form -- Create a form
newt_get_screen_size -- Fills in the passed references with the current size of the terminal
newt_grid_add_components_to_form --
newt_grid_basic_window --
newt_grid_free --
newt_grid_get_size --
newt_grid_h_close_stacked --
newt_grid_h_stacked --
newt_grid_place --
newt_grid_set_field --
newt_grid_simple_window --
newt_grid_v_close_stacked --
newt_grid_v_stacked --
newt_grid_wrapped_window_at --
newt_grid_wrapped_window --
newt_init -- Initialize newt
newt_label_set_text --
newt_label --
newt_listbox_append_entry --
newt_listbox_clear_selection --
newt_listbox_clear --
newt_listbox_delete_entry --
newt_listbox_get_current --
newt_listbox_get_selection --
newt_listbox_insert_entry --
newt_listbox_item_count --
newt_listbox_select_item --
newt_listbox_set_current_by_key --
newt_listbox_set_current --
newt_listbox_set_data --
newt_listbox_set_entry --
newt_listbox_set_width --
newt_listbox --
newt_listitem_get_data --
newt_listitem_set --
newt_listitem --
newt_open_window -- Open a window of the specified size and position
newt_pop_help_line -- Replaces the current help line with the one from the stack
newt_pop_window -- Removes the top window from the display
newt_push_help_line -- Saves the current help line on a stack, and displays the new line
newt_radio_get_current --
newt_radiobutton --
newt_redraw_help_line --
newt_reflow_text --
newt_refresh -- Updates modified portions of the screen
newt_resize_screen --
newt_resume -- Resume using the newt interface after calling newt_suspend()
newt_run_form -- Runs a form
newt_scale_set --
newt_scale --
newt_scrollbar_set --
newt_set_help_callback --
newt_set_suspend_callback -- Set a callback function which gets invoked when user presses the suspend key
newt_suspend -- Tells newt to return the terminal to its initial state
newt_texbox_set_text --
newt_textbox_get_num_lines --
newt_textbox_reflowed --
newt_textbox_set_height --
newt_textbox --
newt_vertical_scrollbar --
newt_wait_for_key -- Doesn't return until a key has been pressed
newt_win_choice --
newt_win_entries --
newt_win_menu --
newt_win_message --
newt_win_messagev --
newt_win_ternary --

Пред. | Начало | След.
syslog | Уровень выше | newt_bell


oggvorbis

Руководство по PHP
Пред. След.

XCIX. oggvorbis

Введение

The OGG/Vorbis file format, as defined by http://www.vorbis.com/ and http://www.vorbis.com/, is a scheme for compressing audio streams by multiple factors with a minimum of quality loss. This extension adds Ogg Vorbis support to PHP's URL Wrappers. When used in read mode, compressed OGG/Vorbis data is expanded to raw PCM audio in one of six PCM encoding formats listed below.

Требования

This extension requires PHP >= 4.3.0, libogg >= 1.0, and libvorbis >= 1.0.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Установка

oggvorbis is installed through the usual PECL package installation process.

  • $ pear install oggvorbis

  • Copy the resulting oggvorbis.so to an appropriate location and add extension=oggvorbis.so to your php.ini file or load it dynamically in your PHP script using dl('oggvorbis.so');

Context options

Таблица 1. OGG/Vorbis tuning options

Option | Definition | Relevance | Default
pcm_mode | PCM byte encoding used. See constants below. | Read / Write | OGGVORBIS_PCM_S16_LE
rate | PCM Sampling rate. Measured in Hz. | Write only | 44100
bitrate | Vorbis Average Bitrate Encoding / Variable Bitrate Encoding. Measured in bps (ABR) or Quality level (VBR: 0.0 to 1.0). 128000 ABR is rough equal to 0.4 VBR. | Write only | 128000
channels | Number of PCM channels. 1 == Mono, 2 == Stereo. | Write only | 2
serialno | Serial Number of stream within file. Must be unique within file. Because of the potential to select a duplicate serial number within a chained file, make efforts to manually assign unique numbers when encoding. | Write only | Random
comments | Associative array of file comments. Will be translated to strtoupper($name) . "=$value". Note: This context option is not available in oggvorbis-0.1 | Write only | array('ENCODER' => 'PHP/OggVorbis, http://pear.php.net/oggvorbis')

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

Таблица 2. OGG/Vorbis supports PCM encodings in the following formats

Constant | Definition
OGGVORBIS_PCM_U8 | Unsigned 8-bit PCM.
OGGVORBIS_PCM_S8 | Signed 8-bit PCM.
OGGVORBIS_PCM_U16_LE | Unsigned 16-bit PCM. Little Endian byte order.
OGGVORBIS_PCM_U16_BE | Unsigned 16-bit PCM. Big Endian byte order.
OGGVORBIS_PCM_S16_LE | Signed 16-bit PCM. Little Endian byte order.
OGGVORBIS_PCM_S16_BE | Signed 16-bit PCM. Big Endian byte order.
Содержание
Usage -- Examples on using the ogg:// wrapper.

Пред. | Начало | След.
PDO_ODBC DSN | Уровень выше | Usage


Paradox File Access

Руководство по PHP
Пред. След.

CVI. Paradox File Access

Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

This module allows to read Paradox database and primary index files. It has initial support for creating Paradox databases. Consider it to be experimental due to lack of documentation of the Paradox file format.

Замечание: This module has not been tested on other platforms than Debian/GNU Linux for PPC.

Замечание: This module is also in development and may change, though I don't expect major changes to the API.

Требования

You need at least PHP 5.0.0 and libpx >= 0.1.9. The paradox library (libpx) is available at http://pxlib.sourceforge.net.

Установка

A short installation note: just type
$ pear install paradox
in your console.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Object oriented API

The paradox extension provides also an object oriented API. It consists of only one class called paradox_doc. Its methods only differ from the functions in its name and of course the missing first parameter. The following table will list all methods and its equivalent functions.

Таблица 1. Methods of class paradox_doc

Name of method | Equivalent function
Constructor | px_new()
Destructor | px_delete()
open_fp() | px_open_fp()
create_fp() | px_create_fp()
close() | px_close()
numrecords() | px_numrecords()
numfields() | px_numfields()
get_record() | px_get_record()
put_record() | px_put_record()
get_field() | px_get_field()
get_schema() | px_get_schema()
get_info() | px_get_info()
set_parameter() | px_set_parameter()
get_parameter() | px_get_parameter()
set_value() | px_set_value()
get_value() | px_get_value()
get_info() | px_get_info()
set_targetencoding() | px_set_targetencoding()
set_tablename() | px_set_tablename()
set_blob_file() | px_set_blob_file()
timestamp2string() | px_timestamp2string()

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

The following two tables lists all constants defined by the paradox extension.

Таблица 2. Contants for field types

Name | Meaning
PX_FIELD_ALPHA | Character data with fixed length
PX_FIELD_DATE | Date
PX_FIELD_SHORT | Short integer (2 Bytes)
PX_FIELD_LONG | Long integer (4 Bytes)
PX_FIELD_CURRENCY | same as PX_FIELD_NUMBER
PX_FIELD_NUMBER | Double
PX_FIELD_LOGICAL | Boolean
PX_FIELD_MEMOBLOB | Binary large object (not supported)
PX_FIELD_BLOB | Binary large object (not supported)
PX_FIELD_FMTMEMOBLOB | Binary large object (not supported)
PX_FIELD_OLE | OLE object (basically a blob, not supported)
PX_FIELD_GRAPHIC | Graphic (basically a blob, not supported)
PX_FIELD_TIME | time
PX_FIELD_TIMESTAMP | timestamp (like the unix timestamp)
PX_FIELD_AUTOINC | Auto incrementing interger (like PX_FIELD_LONG)
PX_FIELD_BCD | Decimal number stored in bcd format (not supported)
PX_FIELD_BYTES | Array of Bytes with not more than 255 bytes (not supported)
PX_KEYTOLOWER |
PX_KEYTOUPPER |

Таблица 3. Contants for file types

Name | Meaning
PX_FILE_INDEX_DB | Indexed database
PX_FILE_PRIM_INDEX | Primary index
PX_FILE_NON_INDEX_DB | None indexed database
PX_FILE_NON_INC_SEC_INDEX | None incremental secondary index (not supported)
PX_FILE_SEC_INDEX | Secondary index (not supported)
PX_FILE_INC_SEC_INDEX | Incremental secondary index (not supported)
PX_FILE_NON_INC_SEC_INDEX_G | (not supported)
PX_FILE_SEC_INDEX_G | (not supported)
PX_FILE_INC_SEC_INDEX_G | (not supported)

Содержание
px_close -- Closes a paradox database
px_create_fp -- Create a new paradox database
px_delete -- Deletes resource of paradox database
px_get_field -- Returns the specification of a single field
px_get_info -- Return lots of information about a paradox file
px_get_parameter -- Gets a parameter
px_get_record -- Returns record of paradox database
px_get_schema -- Returns the database schema
px_get_value -- Gets a value
px_new -- Create a new paradox object
px_numfields -- Returns number of fields in a database
px_numrecords -- Returns number of records in a database
px_open_fp -- Open paradox database
px_put_record -- Stores record into paradox database
px_set_blob_file -- Sets the file where blobs are read from
px_set_parameter -- Sets a parameter
px_set_tablename -- Sets the name of a table (deprecated)
px_set_targetencoding -- Sets the encoding for character fields (deprecated)
px_set_value -- Sets a value
px_timestamp2string -- Converts the timestamp into a string.

Пред. | Начало | След.
ovrimos_rollback | Уровень выше | px_close


Microsoft SQL Server and Sybase Functions (PDO_DBLIB)

Руководство по PHP
Пред. След.

LXXXII. Microsoft SQL Server and Sybase Functions (PDO_DBLIB)

Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

PDO_DBLIB is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to Microsoft SQL Server and Sybase databases through the FreeTDS libary.

On Windows, you should use the PDO_ODBC driver to connect to Microsoft SQL Server and Sybase databases, as the native Windows DB-LIB is ancient, thread un-safe and no longer supported by Microsoft.

Содержание
PDO_DBLIB DSN -- Connecting to Microsoft SQL Server and Sybase databases

Пред. | Начало | След.
mssql_select_db | Уровень выше | PDO_DBLIB DSN


PDO_DBLIB DSN

(no version information, might be only in CVS)

PDO_DBLIB DSN -- Connecting to Microsoft SQL Server and Sybase databases

Описание

The PDO_DBLIB Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is sybase: if PDO_DBLIB was linked against the FreeTDS libraries, mssql: if PDO_DBLIB was linked against the Microsoft SQL Server libraries, or dblib: if linked against any other variety of DB-lib.

host

The hostname on which the database server resides.

dbname

The name of the database.

Примеры

Пример 1. PDO_DBLIB DSN examples

The following examples show a PDO_DBLIB DSN for connecting to Microsoft SQL Server and Sybase databases:
mssql:host=localhost;dbname=testdb
sybase:host=localhost;dbname=testdb
dblib:host=localhost;dbname=testdb

Пред. | Начало | След.
Microsoft SQL Server and Sybase Functions (PDO_DBLIB) | Уровень выше | Mohawk Software Session Handler Functions


Firebird/Interbase Functions (PDO_FIREBIRD)

Руководство по PHP
Пред. След.

XL. Firebird/Interbase Functions (PDO_FIREBIRD)

Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

PDO_FIREBIRD is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to Firebird and Interbase databases.

Содержание
PDO_FIREBIRD DSN -- Connecting to Firebird and Interbase databases

Пред. | Начало | След.
ibase_wait_event | Уровень выше | PDO_FIREBIRD DSN


PDO_FIREBIRD DSN

(no version information, might be only in CVS)

PDO_FIREBIRD DSN -- Connecting to Firebird and Interbase databases

Описание

The PDO_FIREBIRD Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is firebird:.

DataSource

The hostname on which the database server resides.

Port

The port number for the server on which the database is running.

Database

The name of the database.

User

The name of the user that will connect to the database.

Password

The password for the user.

Примеры

Пример 1. PDO_FIREBIRD DSN examples

The following example shows a PDO_FIREBIRD DSN for connecting to Firebird and Interbase databases:
firebird:User=john;Password=mypass;Database=DATABASE.GDE;DataSource=localhost;Port=3050

Пред. | Начало | След.
Firebird/Interbase Functions (PDO_FIREBIRD) | Уровень выше | FriBiDi Functions


MySQL Functions (PDO_MYSQL)

Руководство по PHP
Пред. След.

LXXXVIII. MySQL Functions (PDO_MYSQL)

Введение

PDO_MYSQL is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to MySQL 3.x and 4.x databases.

PDO_MYSQL will take advantage of native prepared statement support present in MySQL 4.1 and higher. If you're using an older version of the mysql client libraries, PDO will emulate them for you.

Внимание

Beware: MySQL tables do not support transactions by default. When writing transactional database code, MySQL will pretend that a transaction was initiated successfully, even when no transactional support is present. In addition, any DDL queries issued will implicitly commit any pending transactions.

Предопределенные константы

The constants below are defined by this driver, and will only be available when the extension has been either compiled into PHP or dynamically loaded at runtime. In addition, these driver-specific constants should only be used if you are using this driver. Using mysql-specific attributes with the postgres driver may result in unexpected behaviour. PDO::getAttribute() may be used to obtain the PDO_ATTR_DRIVER_NAME attribute to check the driver, if your code can run against multiple drivers.

PDO_MYSQL_ATTR_USE_BUFFERED_QUERY (integer)

If this attribute is set to TRUE on a PDOStatement, the MySQL driver will use the buffered versions of the MySQL API. If you're writing portable code, you should use PDOStatement::fetchAll() instead.

Пример 1. Forcing queries to be buffered in mysql

<?php
if ($db->getAttribute(PDO_ATTR_DRIVERNAME) == 'mysql')) {
 $stmt = $db->prepare('select * from foo',
    array(PDO_MYSQL_ATTR_USE_UNBUFFERED_QUERY => true));
} else {
 die("my application only works with mysql; I should use \$stmt->fetchAll() instead");
}

Содержание
PDO_MYSQL DSN -- Connecting to MySQL databases

Пред. | Начало | След.
mysql_unbuffered_query | Уровень выше | PDO_MYSQL DSN


PDO_MYSQL DSN

(no version information, might be only in CVS)

PDO_MYSQL DSN -- Connecting to MySQL databases

Описание

The PDO_MYSQL Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is mysql:.

host

The hostname on which the database server resides.

dbname

The name of the database.

Примеры

Пример 1. PDO_MYSQL DSN examples

The following example shows a PDO_MYSQL DSN for connecting to MySQL databases:
mysql:host=localhost;dbname=testdb

Пред. | Начало | След.
MySQL Functions (PDO_MYSQL) | Уровень выше | MySQL Improved Extension


Oracle Functions (PDO_OCI)

Руководство по PHP
Пред. След.

CIII. Oracle Functions (PDO_OCI)

Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

PDO_OCI is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to Oracle databases through the OCI library.

Содержание
PDO_OCI DSN -- Connecting to Oracle databases

Пред. | Начало | След.
ora_rollback | Уровень выше | PDO_OCI DSN


PDO_OCI DSN

(no version information, might be only in CVS)

PDO_OCI DSN -- Connecting to Oracle databases

Описание

The PDO_OCI Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is oci:. If you are connecting to a database defined in tnsnames.ora, append the name of the database to the DSN prefix and your DSN is complete.

dbname (Oracle Instant Client)

The URI for the Oracle Instant Client connection takes the form of dbname=//hostname:port-number/database.

Примеры

Пример 1. PDO_OCI DSN examples

The following examples show a PDO_OCI DSN for connecting to Oracle databases:
oci:mydb
oci:dbname=//localhost:1521/mydb

Пред. | Начало | След.
Oracle Functions (PDO_OCI) | Уровень выше | Output Control Functions


ODBC and DB2 functions (PDO_ODBC)

Руководство по PHP
Пред. След.

XCVIII. ODBC and DB2 functions (PDO_ODBC)

Введение

PDO_ODBC is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to databases through ODBC drivers or through the IBM DB2 Call Level Interface (DB2 CLI) library. PDO_ODBC currently supports three different "flavours" of database drivers:

ibm-db2

Supports access to IBM DB2 Universal Database, Cloudscape, and Apache Derby servers through the free DB2 client.

unixODBC

Supports access to database servers through the unixODBC driver manager and the database's own ODBC drivers.

generic

Offers a compile option for ODBC driver managers that are not explicitly supported by PDO_ODBC.

On Windows, PDO_ODBC is built into the PHP core by default. It is linked against the Windows ODBC Driver Manager so that PHP can connect to any database cataloged as a System DSN, and is the recommended driver for connecting to Microsoft SQL Server databases.

Установка

PDO_ODBC on UNIX systems

  1. As of PHP 5.1, PDO_ODBC is included in the PHP source. You can compile the PDO_ODBC extension as either a static or shared module using the following configure commands.

    ibm_db2

    ./configure --enable-pdo_odbc=ibm-db2,/opt/IBM/db2/V8.1/
    To build PDO_ODBC with the ibm-db2 flavour, you have to have previously installed the DB2 application development headers on the same machine on which you are compiling PDO_ODBC. The DB2 application development headers are an installable option in the DB2 servers, and are also available as part of the DB2 Application Development Client freely available for download from the IBM DB2 Universal Database support site.

    If you do not supply a location for the DB2 libraries and headers to the configure command, PDO_ODBC defaults to /home/db2inst1/sqllib.

    unixODBC

    ./configure --enable-pdo_odbc=unixODBC,/usr/local
    If you do not supply a location for the unixODBC libraries and headers to the configure command, PDO_ODBC defaults to /usr/local.

    generic
    ./configure --enable-pdo_odbc=generic,/usr/local,libname,ldflags,cflags

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. PDO_ODBC Configuration Options

Name | Default | Changeable | Changelog
pdo_odbc.connection_pooling | "strict" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

pdo_odbc.connection_pooling string

Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" (equals to ""). The parameter describes how strict the connection manager should be when matching connection parameters to existing pooled connections. strict is the recommend default, and will result in the use of cached connections only when all the connection parameters match exactly. relaxed will result in the use of cached connections when similar connection parameters are used. This can result in increased use of the cache, at the risk of bleeding connection information between (for example) virtual hosts.

This setting can only be changed from the php.ini file, and affects the entire process; any other modules loaded into the process that use the same ODBC libraries will be affected too, including the Unified ODBC extension.

Внимание

relaxed matching should not be used on a shared server, for security reasons.

Подсказка: Leave this setting at the default strict setting unless you have good reason to change it.

Содержание
PDO_ODBC DSN -- Connecting to ODBC or DB2 databases

Пред. | Начало | След.
odbc_tables | Уровень выше | PDO_ODBC DSN


PDO_ODBC DSN

(no version information, might be only in CVS)

PDO_ODBC DSN -- Connecting to ODBC or DB2 databases

Описание

The PDO_ODBC Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is odbc:. If you are connecting to a database cataloged in the ODBC driver manager or the DB2 catalog, you can append the cataloged name of the database to the DSN.

DSN

The name of the database as cataloged in the ODBC driver manager or the DB2 catalog. Alternately, you can provide a complete ODBC connection string to connect to a database as described at http://connectionstrings.com/.

UID

The name of the user for the connection. If you specify the user name in the DSN, PDO ignores the value of the user name argument in the PDO constructor.

PWD

The password of the user for the connection. If you specify the password in the DSN, PDO ignores the value of the password argument in the PDO constructor.

Примеры

Пример 1. PDO_ODBC DSN example (ODBC driver manager)

The following example shows a PDO_ODBC DSN for connecting to an ODBC database cataloged as testdb in the ODBC driver manager:
odbc:testdb

Пример 2. PDO_ODBC DSN example (IBM DB2 uncataloged connection)

The following example shows a PDO_ODBC DSN for connecting to an IBM DB2 database named SAMPLE using the full ODBC DSN syntax:
odbc:DSN={IBM DB2 ODBC DRIVER};HOSTNAME=localhost;PORT=50000;DATABASE=SAMPLE;PROTOCOL=TCPIP;UID=db2inst1;PWD=ibmdb2;

Пример 3. PDO_ODBC DSN example (Microsoft Access uncataloged connection)

The following example shows a PDO_ODBC DSN for connecting to a Microsoft Access database stored at C:\db.mdb using the full ODBC DSN syntax:
odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\db.mdb;Uid=Admin

Пред. | Начало | След.
ODBC and DB2 functions (PDO_ODBC) | Уровень выше | oggvorbis


PostgreSQL Functions (PDO_PGSQL)

Руководство по PHP
Пред. След.

CXVI. PostgreSQL Functions (PDO_PGSQL)

Введение

PDO_PGSQL is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to PostgreSQL databases.

Содержание
PDO_PGSQL DSN -- Connecting to PostgreSQL databases

Пред. | Начало | След.
pg_version | Уровень выше | PDO_PGSQL DSN


PDO_PGSQL DSN

(no version information, might be only in CVS)

PDO_PGSQL DSN -- Connecting to PostgreSQL databases

Описание

The PDO_PGSQL Data Source Name (DSN) is composed of the following elements, delimited by spaces:

DSN prefix

The DSN prefix is pgsql:.

host

The hostname on which the database server resides.

port

The port on which the database server is running.

dbname

The name of the database.

user

The name of the user for the connection. If you specify the user name in the DSN, PDO ignores the value of the user name argument in the PDO constructor.

password

The password of the user for the connection. If you specify the password in the DSN, PDO ignores the value of the password argument in the PDO constructor.

Примеры

Пример 1. PDO_PGSQL DSN examples

The following example shows a PDO_PGSQL DSN for connecting to a PostgreSQL database:
pgsql:host=localhost port=5432 dbname=testdb user=bruce password=mypass

Пред. | Начало | След.
PostgreSQL Functions (PDO_PGSQL) | Уровень выше | Printer Functions


SQLite Functions (PDO_SQLITE)

Руководство по PHP
Пред. След.

CXLIII. SQLite Functions (PDO_SQLITE)

Введение

PDO_SQLITE is a driver that implements the PHP Data Objects (PDO) interface to enable access to SQLite 3 databases.

In PHP 5.1, the SQLite extension also provides a driver for SQLite 2 databases; while it is not technically a part of the PDO_SQLITE driver, it behaves similarly, so it is documented alongside it. The SQLite 2 driver for PDO is provided primarily to make it easier to import legacy sqlite 2 database files into an application that uses the faster, more efficient sqlite 3 driver. As a result, the SQLite 2 driver is not as feature-rich as the SQLite 3 driver.

Содержание
PDO_SQLITE DSN -- Connecting to SQLite databases
PDO::sqliteCreateAggregate -- Registers an aggregating User Defined Function for use in SQL statements
PDO::sqliteCreateFunction -- Registers a User Defined Function for use in SQL statements

Пред. | Начало | След.
sqlite_valid | Уровень выше | PDO_SQLITE DSN


PDO_SQLITE DSN

(no version information, might be only in CVS)

PDO_SQLITE DSN -- Connecting to SQLite databases

Описание

The PDO_SQLITE Data Source Name (DSN) is composed of the following elements:

DSN prefix (SQLite 3)

The DSN prefix is sqlite:.

  • To access a database on disk, append the absolute path to the DSN prefix.

  • To create a database in memory, append memory: to the DSN prefix.

DSN prefix (SQLite 2)

The SQLite extension in PHP 5.1 provides a PDO driver that supports accessing and creating SQLite 2 databases. This enables you to access databases you may have created with the SQLite extension in previous versions of PHP.

Замечание: The sqlite2 driver is only available in PHP 5.1 if you have enabled both PDO and ext/sqlite. It is not currently available via PECL.

The DSN prefix for connecting to SQLite 2 databases is sqlite2:.

  • To access a database on disk, append the absolute path to the DSN prefix.

  • To create a database in memory, append memory: to the DSN prefix.

Примеры

Пример 1. PDO_SQLITE DSN examples

The following examples show PDO_SQLITE DSN for connecting to SQLite databases:
sqlite:/opt/databases/mydb.sq3
sqlite::memory:
sqlite2:/opt/databases/mydb.sq2
sqlite2::memory:

Пред. | Начало | След.
SQLite Functions (PDO_SQLITE) | Уровень выше | PDO::sqliteCreateAggregate


PostScript document creation

Руководство по PHP
Пред. След.

CXIX. PostScript document creation

Введение

This module allows to create PostScript documents. It has many similarities with the pdf extension. Actually the API is almost identical and one can in many cases just replace the prefix of each function from pdf_ to ps_. This also works for functions which has no meaning in the PostScript document (like adding hyperlinks) but will have an effect if the document is converted to PDF.

Documents created by this extension are sometimes even superior to documents created with the pdf extension, because pslib's text rendering functions can handle kerning, hyphenation and ligatures which results in much better output of boxed text.

Требования

You need at least PHP 4.3.0 and pslib >= 0.1.12. The ps library (pslib) is available at http://pslib.sourceforge.net/.

Установка

A short installation note: just type
$ pear install ps
in your console.

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

The following two tables lists all constants defined by the ps extension.

Таблица 1. Contants for line caps

Name | Meaning
ps_LINECAP_BUTT |
ps_LINECAP_ROUND |
ps_LINECAP_SQUARED |

Таблица 2. Contants for line joins

Name | Meaning
ps_LINEJOIN_MITER |
ps_LINEJOIN_ROUND |
ps_LINEJOIN_BEVEL |

Contact Information

If you have comments, bugfixes, enhancements for either this extension or pslib then please drop me a mail steinm@php.net. Any help is very welcome.

Содержание
ps_add_bookmark -- Add bookmark to current page
ps_add_launchlink -- Adds link which launches file
ps_add_locallink -- Adds link to a page in the same document
ps_add_note -- Adds note to current page
ps_add_pdflink -- Adds link to a page in a second pdf document
ps_add_weblink -- Adds link to a web location
ps_arc -- Draws an arc counterclockwise
ps_arcn -- Draws an arc clockwise
ps_begin_page -- Start a new page
ps_begin_pattern -- Start a new pattern
ps_begin_template -- Start a new template
ps_circle -- Draws a circle
ps_clip -- Clips drawing to current path
ps_close_image -- Closes image and frees memory
ps_close -- Closes a PostScript document
ps_closepath_stroke -- Closes and strokes path
ps_closepath -- Closes path
ps_continue_text -- Continue text in next line
ps_curveto -- Draws a curve
ps_delete -- Deletes all resources of a PostScript document
ps_end_page -- End a page
ps_end_pattern -- End a pattern
ps_end_template -- End a template
ps_fill_stroke -- Fills and strokes the current path
ps_fill -- Fills the current path
ps_findfont -- Loads a font
ps_get_buffer -- Fetches the full buffer containig the generated PS data
ps_get_parameter -- Gets certain parameters
ps_get_value -- Gets certain values
ps_hyphenate -- Hyphenates a word
ps_lineto -- Draws a line
ps_makespotcolor -- Create spot color
ps_moveto -- Sets current point
ps_new -- Creates a new PostScript document object
ps_open_file -- Opens a file for output
ps_open_image_file -- Opens image from file
ps_open_image -- Reads an image for later placement
ps_place_image -- Places image on the page
ps_rect -- Draws a rectangle
ps_restore -- Restore previously save context
ps_rotate -- Sets rotation factor
ps_save -- Save current context
ps_scale -- Sets scaling factor
ps_set_border_color -- Sets color of border for annotations
ps_set_border_dash -- Sets length of dashes for border of annotations
ps_set_border_style -- Sets border style of annotations
ps_set_info -- Sets information fields of document
ps_set_parameter -- Sets certain parameters
ps_set_text_pos -- Sets position for text output
ps_set_value -- Sets certain values
ps_setcolor -- Sets current color
ps_setdash -- Sets appearance of a dashed line
ps_setflat -- Sets flatness
ps_setfont -- Sets font to use for following output
ps_setgray -- Sets gray value
ps_setlinecap -- Sets appearance of line ends
ps_setlinejoin -- Sets how contected lines are joined
ps_setlinewidth -- Sets width of a line
ps_setmiterlimit -- Sets the miter limit
ps_setpolydash -- Sets appearance of a dashed line
ps_shading_pattern -- Creates a pattern based on a shading
ps_shading -- Creates a shading for later use
ps_shfill -- Fills an area with a shading
ps_show_boxed -- Output text in a box
ps_show_xy -- Output text at given position
ps_show -- Output text
ps_string_geometry -- Gets geometry of a string
ps_stringwidth -- Gets width of a string
ps_stroke -- Draws the current path
ps_symbol_name -- Gets name of a glyph
ps_symbol_width -- Gets width of a glyph
ps_symbol -- Output a glyph
ps_translate -- Sets translation

Пред. | Начало | След.
system | Уровень выше | ps_add_bookmark


Radius

Руководство по PHP
Пред. След.

CXXII. Radius

Введение

This package is based on the libradius of FreeBSD. This PECL adds full support for Radius Authentication (RFC 2865) and Radius Accounting (RFC 2866). This package is available for Unix (tested on FreeBSD and Linux) and for Windows.

Замечание: An exact description for libradius can be found here. A detailed description of the configuration file can be found here.

Установка

Howto install the package?

  • untar the package (usually into php4/ext)

  • rename radius-x.x to radius

  • run ./buildconf in php4

  • run ./configure --enable-radius

  • make; make install

or if you would like to have it as .so:

  • untar the package

  • run phpize in the radius-x.x directory

  • run ./configure in the radius-x.x directory

  • make; make install

For windows I recommend to use the php_radius.dll from http://snaps.php.net/. Вы можете получить не встроенное расширение PECL с различных страниц снимков PECL (выберите соответствующий репозиторий для вашей версии PHP): PECL для PHP 4.3.x, PECL для PHP 5.0.x или PECL Нестабильные.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

RADIUS_ACCESS_REQUEST ()

Authentication Request

RADIUS_ACCESS_ACCEPT ()

Access accepted

RADIUS_ACCESS_REJECT ()

Access rejected

RADIUS_ACCOUNTING_REQUEST ()

Accounting request

RADIUS_ACCOUNTING_RESPONSE ()

Accounting response

RADIUS_ACCESS_CHALLENGE ()

Accsess challenge

RADIUS_USER_NAME (string)

Username

RADIUS_USER_PASSWORD (string)

Password

RADIUS_CHAP_PASSWORD (string)

Chap Password: chappass = md5(ident + plaintextpass + challenge)

RADIUS_NAS_IP_ADDRESS (string)

NAS IP-Adress

RADIUS_NAS_PORT (int)

NAS Port

RADIUS_SERVICE_TYPE (int)

Type of Service, one of:

RADIUS_LOGIN
RADIUS_FRAMED
RADIUS_CALLBACK_LOGIN
RADIUS_CALLBACK_FRAMED
RADIUS_OUTBOUND
RADIUS_ADMINISTRATIVE
RADIUS_NAS_PROMPT
RADIUS_AUTHENTICATE_ONLY
RADIUS_CALLBACK_NAS_PROMPT

RADIUS_FRAMED_PROTOCOL (int)

Framed Protocol, one of:

RADIUS_PPP
RADIUS_SLIP
RADIUS_ARAP
RADIUS_GANDALF
RADIUS_XYLOGICS

RADIUS_FRAMED_IP_ADDRESS (string)

IP-Address

RADIUS_FRAMED_IP_NETMASK (string)

Netmask

RADIUS_FRAMED_ROUTING (int)

Routing

RADIUS_FILTER_ID (string)

Filter ID

RADIUS_FRAMED_MTU (int)

MTU

RADIUS_FRAMED_COMPRESSION (int)

Compression, one of:

RADIUS_COMP_NONE
RADIUS_COMP_VJ
RADIUS_COMP_IPXHDR

RADIUS_LOGIN_IP_HOST (string)

Login IP Host

RADIUS_LOGIN_SERVICE (int)

Login Service

RADIUS_LOGIN_TCP_PORT (int)

Login TCP Port

RADIUS_REPLY_MESSAGE (string)

Reply Message

RADIUS_CALLBACK_NUMBER (string)

Callback Number

RADIUS_CALLBACK_ID (string)

Callback ID

RADIUS_FRAMED_ROUTE (string)

Framed Route

RADIUS_FRAMED_IPX_NETWORK (string)

Framed IPX Network

RADIUS_STATE (string)

State

RADIUS_CLASS (int)

Class

RADIUS_VENDOR_SPECIFIC (int)

Vendor specific attribute

RADIUS_SESSION_TIMEOUT (int)

Session timeout

RADIUS_IDLE_TIMEOUT (int)

Idle timeout

RADIUS_TERMINATION_ACTION (int)

Termination action

RADIUS_CALLED_STATION_ID (int)

Called Station Id

RADIUS_CALLING_STATION_ID (string)

Calling Station Id

RADIUS_NAS_IDENTIFIER (int)

NAS ID

RADIUS_PROXY_STATE (int)

Proxy State

RADIUS_LOGIN_LAT_SERVICE (int)

Login LAT Service

RADIUS_LOGIN_LAT_NODE (int)

Login LAT Node

RADIUS_LOGIN_LAT_GROUP (int)

Login LAT Group

RADIUS_FRAMED_APPLETALK_LINK (int)

Framed Appletalk Link

RADIUS_FRAMED_APPLETALK_NETWORK (int)

Framed Appletalk Network

RADIUS_FRAMED_APPLETALK_ZONE (int)

Framed Appletalk Zone

RADIUS_CHAP_CHALLENGE (string)

Challenge

RADIUS_NAS_PORT_TYPE (int)

NAS port type, one of:

RADIUS_ASYNC
RADIUS_SYNC
RADIUS_ISDN_SYNC
RADIUS_ISDN_ASYNC_V120
RADIUS_ISDN_ASYNC_V110
RADIUS_VIRTUAL
RADIUS_PIAFS
RADIUS_HDLC_CLEAR_CHANNEL
RADIUS_X_25
RADIUS_X_75
RADIUS_G_3_FAX
RADIUS_SDSL
RADIUS_ADSL_CAP
RADIUS_ADSL_DMT
RADIUS_IDSL
RADIUS_ETHERNET
RADIUS_XDSL
RADIUS_CABLE
RADIUS_WIRELESS_OTHER
RADIUS_WIRELESS_IEEE_802_11

RADIUS_PORT_LIMIT (int)

Port Limit

RADIUS_LOGIN_LAT_PORT (int)

Login LAT Port

RADIUS_CONNECT_INFO (string)

Connect info

RADIUS_ACCT_STATUS_TYPE (int)

Accounting status type, one of:

RADIUS_START
RADIUS_STOP
RADIUS_ACCOUNTING_ON
RADIUS_ACCOUNTING_OFF

RADIUS_ACCT_DELAY_TIME (int)

Accounting delay time

RADIUS_ACCT_INPUT_OCTETS (int)

Accounting input bytes

RADIUS_ACCT_OUTPUT_OCTETS (int)

Accounting output bytes

RADIUS_ACCT_SESSION_ID (int)

Accounting session ID

RADIUS_ACCT_AUTHENTIC (int)

Accounting authentic, one of:

RADIUS_AUTH_RADIUS
RADIUS_AUTH_LOCAL
RADIUS_AUTH_REMOTE

RADIUS_ACCT_SESSION_TIME (int)

Accounting session time

RADIUS_ACCT_INPUT_PACKETS (int)

Accounting input packets

RADIUS_ACCT_OUTPUT_PACKETS (int)

Accounting output packets

RADIUS_ACCT_TERMINATE_CAUSE (int)

Accounting terminate cause, one of:

RADIUS_TERM_USER_REQUEST
RADIUS_TERM_LOST_CARRIER
RADIUS_TERM_LOST_SERVICE
RADIUS_TERM_IDLE_TIMEOUT
RADIUS_TERM_SESSION_TIMEOUT
RADIUS_TERM_ADMIN_RESET
RADIUS_TERM_ADMIN_REBOOT
RADIUS_TERM_PORT_ERROR
RADIUS_TERM_NAS_ERROR
RADIUS_TERM_NAS_REQUEST
RADIUS_TERM_NAS_REBOOT
RADIUS_TERM_PORT_UNNEEDED
RADIUS_TERM_PORT_PREEMPTED
RADIUS_TERM_PORT_SUSPENDED
RADIUS_TERM_SERVICE_UNAVAILABLE
RADIUS_TERM_CALLBACK
RADIUS_TERM_USER_ERROR
RADIUS_TERM_HOST_REQUEST

RADIUS_ACCT_MULTI_SESSION_ID (string)

Accounting multi session ID

RADIUS_ACCT_LINK_COUNT (int)

Accounting link count

RADIUS_VENDOR_MICROSOFT (int)

Microsoft specific vendor attributes (RFC 2548), one of:

RADIUS_MICROSOFT_MS_CHAP_RESPONSE
RADIUS_MICROSOFT_MS_CHAP_ERROR
RADIUS_MICROSOFT_MS_CHAP_PW_1
RADIUS_MICROSOFT_MS_CHAP_PW_2
RADIUS_MICROSOFT_MS_CHAP_LM_ENC_PW
RADIUS_MICROSOFT_MS_CHAP_NT_ENC_PW
RADIUS_MICROSOFT_MS_MPPE_ENCRYPTION_POLICY
RADIUS_MICROSOFT_MS_MPPE_ENCRYPTION_TYPES
RADIUS_MICROSOFT_MS_RAS_VENDOR
RADIUS_MICROSOFT_MS_CHAP_DOMAIN
RADIUS_MICROSOFT_MS_CHAP_CHALLENGE
RADIUS_MICROSOFT_MS_CHAP_MPPE_KEYS
RADIUS_MICROSOFT_MS_BAP_USAGE
RADIUS_MICROSOFT_MS_LINK_UTILIZATION_THRESHOLD
RADIUS_MICROSOFT_MS_LINK_DROP_TIME_LIMIT
RADIUS_MICROSOFT_MS_MPPE_SEND_KEY
RADIUS_MICROSOFT_MS_MPPE_RECV_KEY
RADIUS_MICROSOFT_MS_RAS_VERSION
RADIUS_MICROSOFT_MS_OLD_ARAP_PASSWORD
RADIUS_MICROSOFT_MS_NEW_ARAP_PASSWORD
RADIUS_MICROSOFT_MS_ARAP_PASSWORD_CHANGE_REASON
RADIUS_MICROSOFT_MS_FILTER
RADIUS_MICROSOFT_MS_ACCT_AUTH_TYPE
RADIUS_MICROSOFT_MS_ACCT_EAP_TYPE
RADIUS_MICROSOFT_MS_CHAP2_RESPONSE
RADIUS_MICROSOFT_MS_CHAP2_SUCCESS
RADIUS_MICROSOFT_MS_CHAP2_PW
RADIUS_MICROSOFT_MS_PRIMARY_DNS_SERVER
RADIUS_MICROSOFT_MS_SECONDARY_DNS_SERVER
RADIUS_MICROSOFT_MS_PRIMARY_NBNS_SERVER
RADIUS_MICROSOFT_MS_SECONDARY_NBNS_SERVER
RADIUS_MICROSOFT_MS_ARAP_CHALLENGE

Quickstart

Howto start?

  • get a radius resource

  • configure the library

  • create the request

  • put attributes

  • send the request

  • receive attributes

  • close the radius resource (optional)

Take also a look at the examples in this package.

The package contains an example php script. This script demonstrates howto authenticate with radius using PAP or CHAP (md5). If you authenticate with Microsoft Radius servers then its not possible to use CHAP (md5). If you would like to authenticate with Microsoft Servers you have to use MS-CHAPv1 or MS-CHAPv2, but its more complicated, because you need md4, sha1 and des to generate the right data. The enclosed examples demonstrate all authentication-methods, including MS-CHAPv1 and MS-CHAPv2. To get the MS-CHAP to work you need the mcrypt and the mhash extension, starting with version 1.2 of the package, the mcrypt extension is no longer needed.

Contact Information

If you have comments, bugfixes, enhancements or want to help to develop this you can send me a mail at mbretter@php.net. Binaries for Windows can be downloaded from here.

Содержание
radius_acct_open -- Creates a Radius handle for accounting
radius_add_server -- Adds a server
radius_auth_open -- Creates a Radius handle for authentication
radius_close -- Frees all ressources
radius_config -- Causes the library to read the given configuration file
radius_create_request -- Create accounting or authentication request
radius_cvt_addr -- Converts raw data to IP-Address
radius_cvt_int -- Converts raw data to integer
radius_cvt_string -- Converts raw data to string
radius_demangle_mppe_key -- Derives mppe-keys from mangled data
radius_demangle -- Demangles data
radius_get_attr -- Extracts an attribute
radius_get_vendor_attr -- Extracts a vendor specific attribute
radius_put_addr -- Attaches an IP-Address attribute
radius_put_attr -- Attaches a binary attribute
radius_put_int -- Attaches an integer attribute
radius_put_string -- Attaches a string attribute
radius_put_vendor_addr -- Attaches a vendor specific IP-Address attribute
radius_put_vendor_attr -- Attaches a vendor specific binary attribute
radius_put_vendor_int -- Attaches a vendor specific integer attribute
radius_put_vendor_string -- Attaches a vendor specific string attribute
radius_request_authenticator -- Returns the request authenticator
radius_send_request -- Sends the request and waites for a reply
radius_server_secret -- Returns the shared secret
radius_strerror -- Returns an error message

Пред. | Начало | След.
qdom_tree | Уровень выше | radius_acct_open


RPM Header Reading Функции

Руководство по PHP
Пред. След.

CXXVI. RPM Header Reading Функции

Введение

This module allows you to read the meta information stored in the headers of a RedHat Package Manager (RPM) file.

Требования

The RPMReader extension requires PHP 5.

Установка

RPMReader is not bundled with PHP. It is a PECL extension and can be located here: http://pecl.php.net/package/rpmreader.

To enable extname support, configure PHP with --with-rpmreader

Типы ресурсов

There is one resource type used by the RPMReader module. The resource is a file pointer which identifies the RPM file with which to work.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

The following list of constants are used to obtain information using the rpm_get_tag() function. These constants represent the tag number to be retrieved from the RPM file's header section. Descriptions are given below as to what data the tag number constants reference.

RPMREADER_MINIMUM (integer)

The minimum valid value of any RPM tag number.

RPMREADER_NAME (integer)

The name of the RPM package.

RPMREADER_VERSION (integer)

The version of the RPM package.

RPMREADER_RELEASE (integer)

The release of the RPM package.

RPMREADER_EPOCH (integer)

RPMREADER_SERIAL (integer)

RPMREADER_SUMMARY (integer)

The summary text of the RPM package.

RPMREADER_DESCRIPTION (integer)

The full description text of the RPM package.

RPMREADER_BUILDTIME (integer)

The date and time when the RPM package was built.

RPMREADER_BUILDHOST (integer)

The name of the host on which the RPM package was built.

RPMREADER_INSTALLTIME (integer)

RPMREADER_SIZE (integer)

The size of the RPM package.

RPMREADER_DISTRIBUTION (integer)

RPMREADER_VENDOR (integer)

RPMREADER_GIF (integer)

RPMREADER_XPM (integer)

RPMREADER_LICENSE (integer)

RPMREADER_COPYRIGHT (integer)

RPMREADER_PACKAGER (integer)

RPMREADER_GROUP (integer)

RPMREADER_SOURCE (integer)

RPMREADER_PATCH (integer)

RPMREADER_URL (integer)

RPMREADER_OS (integer)

RPMREADER_ARCH (integer)

RPMREADER_PREIN (integer)

RPMREADER_POSTIN (integer)

RPMREADER_PREUN (integer)

RPMREADER_POSTUN (integer)

RPMREADER_OLDFILENAMES (integer)

The list of files in an RPM package (deprecated format). The correct way is now to use a combination of 3 tags (RPMREADER_BASENAMES, RPMREADER_DIRINDEXES, RPMREADER_DIRNAMES) in what RPM now calls "CompressedFileNames". This tag is still used in older RPM files that did not use the "CompressedFileNames" method and is maintained for backward compatibility.

RPMREADER_FILESIZES (integer)

RPMREADER_FILESTATES (integer)

RPMREADER_FILEMODES (integer)

RPMREADER_FILERDEVS (integer)

RPMREADER_FILEMTIMES (integer)

RPMREADER_FILEMD5S (integer)

RPMREADER_FILELINKTOS (integer)

RPMREADER_FILEFLAGS (integer)

RPMREADER_FILEUSERNAME (integer)

RPMREADER_FILEGROUPNAME (integer)

RPMREADER_ICON (integer)

RPMREADER_SOURCERPM (integer)

RPMREADER_FILEVERIFYFLAGS (integer)

RPMREADER_ARCHIVESIZE (integer)

RPMREADER_PROVIDENAME (integer)

RPMREADER_PROVIDES (integer)

RPMREADER_REQUIREFLAGS (integer)

RPMREADER_REQUIRENAME (integer)

RPMREADER_REQUIREVERSION (integer)

RPMREADER_CONFLICTFLAGS (integer)

RPMREADER_CONFLICTNAME (integer)

RPMREADER_CONFLICTVERSION (integer)

RPMREADER_EXCLUDEARCH (integer)

RPMREADER_EXCLUDEOS (integer)

RPMREADER_EXCLUSIVEARCH (integer)

RPMREADER_EXCLUSIVEOS (integer)

RPMREADER_RPMVERSION (integer)

RPMREADER_TRIGGERSCRIPTS (integer)

RPMREADER_TRIGGERNAME (integer)

RPMREADER_TRIGGERVERSION (integer)

RPMREADER_TRIGGERFLAGS (integer)

RPMREADER_TRIGGERINDEX (integer)

RPMREADER_VERIFYSCRIPT (integer)

RPMREADER_CHANGELOGTIME (integer)

The list of dates from changelog entries.

RPMREADER_CHANGELOGNAME (integer)

The list of changelog entry names.

RPMREADER_CHANGELOGTEXT (integer)

The list of the text from changelog entries.

RPMREADER_PREINPROG (integer)

RPMREADER_POSTINPROG (integer)

RPMREADER_PREUNPROG (integer)

RPMREADER_POSTUNPROG (integer)

RPMREADER_BUILDARCHS (integer)

RPMREADER_OBSOLETENAME (integer)

RPMREADER_OBSOLETES (integer)

RPMREADER_VERIFYSCRIPTPROG (integer)

RPMREADER_TRIGGERSCRIPTPROG (integer)

RPMREADER_COOKIE (integer)

RPMREADER_FILEDEVICES (integer)

RPMREADER_FILEINODES (integer)

RPMREADER_FILELANGS (integer)

RPMREADER_PREFIXES (integer)

RPMREADER_INSTPREFIXES (integer)

RPMREADER_PROVIDEFLAGS (integer)

RPMREADER_PROVIDEVERSION (integer)

RPMREADER_OBSOLETEFLAGS (integer)

RPMREADER_OBSOLETEVERSION (integer)

RPMREADER_DIRINDEXES (integer)

The list of indices that relate directory names to files in the RPM package. This tag is used in conjunction with RPMREADER_BASENAMES and RPMREADER_DIRNAMES to reconstruct filenames in the RPM package stored with the new "CompressedFileNames" method in RPM.

RPMREADER_BASENAMES (integer)

The list of the names of files in the RPM package without path information. This tag is used in conjunction with RPMREADER_DIRINDEXES and RPMREADER_DIRNAMES to reconstruct filenames in the RPM package stored with the new "CompressedFileNames" method in RPM.

RPMREADER_DIRNAMES (integer)

The list of directory names used by files in the RPM package. This tag is used in conjunction with RPMREADER_BASENAMES and RPMREADER_DIRINDEXES to reconstruct filenames in the RPM package stored with the new "CompressedFileNames" method in RPM.

RPMREADER_OPTFLAGS (integer)

RPMREADER_DISTURL (integer)

RPMREADER_PAYLOADFORMAT (integer)

RPMREADER_PAYLOADCOMPRESSOR (integer)

RPMREADER_PAYLOADFLAGS (integer)

RPMREADER_INSTALLCOLOR (integer)

RPMREADER_INSTALLTID (integer)

RPMREADER_REMOVETID (integer)

RPMREADER_RHNPLATFORM (integer)

RPMREADER_PLATFORM (integer)

RPMREADER_PATCHESNAME (integer)

RPMREADER_PATCHESFLAGS (integer)

RPMREADER_PATCHESVERSION (integer)

RPMREADER_CACHECTIME (integer)

RPMREADER_CACHEPKGPATH (integer)

RPMREADER_CACHEPKGSIZE (integer)

RPMREADER_CACHEPKGMTIME (integer)

RPMREADER_FILECOLORS (integer)

RPMREADER_FILECLASS (integer)

RPMREADER_CLASSDICT (integer)

RPMREADER_FILEDEPENDSX (integer)

RPMREADER_FILEDEPENDSN (integer)

RPMREADER_DEPENDSDICT (integer)

RPMREADER_SOURCEPKGID (integer)

RPMREADER_FILECONTEXTS (integer)

RPMREADER_FSCONTEXTS (integer)

RPMREADER_RECONTEXTS (integer)

RPMREADER_POLICIES (integer)

RPMREADER_MAXIMUM (integer)

The maximum valid value of any RPM tag number.

Примеры

This example will open an RPM file and read the name, version, and release from the RPM file, echo the results, and close the RPM file.

Пример 1. Basic RPMReader Example

<?php

$filename = "/path/to/file.rpm";

// open file
$rpmr = rpm_open($filename);

// get "Name" tag
$name = rpm_get_tag($rpmr, RPMREADER_NAME);

// get "Version" tag
$ver = rpm_get_tag($rpmr, RPMREADER_VERSION);

// get "Release" tag
$rel = rpm_get_tag($rpmr, RPMREADER_RELEASE);

echo "$name-$ver-$rel<br>\n";

// close file
rpm_close($rpmr);

?>
Содержание
rpm_close -- Closes an RPM file
rpm_get_tag -- Retrieves a header tag from an RPM file
rpm_is_valid -- Tests a filename for validity as an RPM file
rpm_open -- Opens an RPM file
rpm_version -- Returns a string representing the current version of the rpmreader extension

Пред. | Начало | След.
recode | Уровень выше | rpm_close


runkit Functions

Руководство по PHP
Пред. След.

CXXVII. runkit Functions

Введение

The runkit extension provides means to modify constants, user-defined functions, and user-defined classes. It also provides for custom superglobal variables and embeddable sub-interpreters via sandboxing.

Дополнительная информация, такая как новый версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, могут быть найдены здесь: http://pecl.php.net/package/runkit.

This package is meant as a feature added replacement for the classkit package. When compiled with the --enable-runkit=classkit option to ./configure, it will export classkit compatible function definitions and constants.

Требования

Modifying Constants, Functions, Classes, and Methods works with all releases of PHP 4 and PHP 5. No special requirements are necessary.

Custom Superglobals are only available in PHP 4.2.0 or later.

Sandboxing requires PHP 5.1.0 or later, or PHP 5.0.0 with a special TSRM patch applied. Regardless of which version of PHP is in use it must be compiled with the --enable-maintainer-zts option. See the README file in the runkit package for additional information.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Runkit Configuration Options

Name | Default | Changeable | Changelog
runkit.superglobal |  | PHP_INI_PERDIR |
runkit.internal_override |  | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

runkit.superglobal string

Comma-separated list of variable names to be treated as superglobals. This value should be set in the systemwide php.ini file, but may work in perdir configuration contexts depending on your SAPI.

Пример 1. Custom Superglobals with runkit.superglobal=_FOO,_BAR in php.ini

<?php
function show_values() {
  echo "Foo is $_FOO\n";
  echo "Bar is $_BAR\n";
  echo "Baz is $_BAZ\n";
}

$_FOO = 'foo';
$_BAR = 'bar';
$_BAZ = 'baz';

/* Displays foo and bar, but not baz */
show_values();
?>

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

RUNKIT_IMPORT_FUNCTIONS (integer)

runkit_import() flag indicating that normal functions should be imported from the specified file.

RUNKIT_IMPORT_CLASS_METHODS (integer)

runkit_import() flag indicating that class methods should be imported from the specified file.

RUNKIT_IMPORT_CLASS_CONSTS (integer)

runkit_import() flag indicating that class constants should be imported from the specified file. Note that this flag is only meaningful in PHP versions 5.1.0 and above.

RUNKIT_IMPORT_CLASS_PROPS (integer)

runkit_import() flag indicating that class standard properties should be imported from the specified file.

RUNKIT_IMPORT_CLASSES (integer)

runkit_import() flag representing a bitwise OR of the RUNKIT_IMPORT_CLASS_* constants.

RUNKIT_IMPORT_OVERRIDE (integer)

runkit_import() flag indicating that if any of the imported functions, methods, constants, or properties already exist, they should be replaced with the new definitions. If this flag is not set, then any imported definitions which already exist will be discarded.

RUNKIT_ACC_PUBLIC (integer)

PHP5 specific flag to runkit_method_add()

RUNKIT_ACC_PROTECTED (integer)

PHP5 specific flag to runkit_method_add()

RUNKIT_ACC_PRIVATE (integer)

PHP5 specific flag to runkit_method_add()

CLASSKIT_ACC_PUBLIC (integer)

PHP5 specific flag to classkit_method_add() Only defined when classkit compatibility is enabled.

CLASSKIT_ACC_PROTECTED (integer)

PHP5 specific flag to classkit_method_add() Only defined when classkit compatibility is enabled.

CLASSKIT_ACC_PRIVATE (integer)

PHP5 specific flag to classkit_method_add() Only defined when classkit compatibility is enabled.

CLASSKIT_AGGREGATE_OVERRIDE (integer)

PHP5 specific flag to classkit_import() Only defined when classkit compatibility is enabled.

RUNKIT_VERSION (string)

Defined to the current version of the runkit package.

CLASSKIT_VERSION (string)

Defined to the current version of the runkit package. Only defined when classkit compatibility is enabled.

Содержание
Runkit_Sandbox -- Runkit Sandbox Class -- PHP Virtual Machine
Runkit_Sandbox_Parent -- Runkit Anti-Sandbox Class
runkit_class_adopt -- Convert a base class to an inherited class, add ancestral methods when appropriate
runkit_class_emancipate -- Convert an inherited class to a base class, removes any method whose scope is ancestral
runkit_constant_add -- Similar to define(), but allows defining in class definitions as well
runkit_constant_redefine -- Redefine an already defined constant
runkit_constant_remove -- Remove/Delete an already defined constant
runkit_function_add -- Add a new function, similar to create_function()
runkit_function_copy -- Copy a function to a new function name
runkit_function_redefine -- Replace a function definition with a new implementation
runkit_function_remove -- Remove a function definition
runkit_function_rename -- Change a function's name
runkit_import -- Process a PHP file importing function and class definitions, overwriting where appropriate
runkit_lint_file -- Check the PHP syntax of the specified file
runkit_lint -- Check the PHP syntax of the specified php code
runkit_method_add -- Dynamically adds a new method to a given class
runkit_method_copy -- Copies a method from class to another
runkit_method_redefine -- Dynamically changes the code of the given method
runkit_method_remove -- Dynamically removes the given method
runkit_method_rename -- Dynamically changes the name of the given method
runkit_sandbox_output_handler -- Specify a function to capture and/or process output from a runkit sandbox
runkit_superglobals -- Return numerically indexed array of registered superglobals

Пред. | Начало | След.
rpm_version | Уровень выше | Runkit_Sandbox


Satellite CORBA client extension [deprecated]

Руководство по PHP
Пред. След.

CXXVIII. Satellite CORBA client extension [deprecated]

Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

Замечание: Для Windows-платформ это расширение недоступно.

Satellite is deprecated. It is suggested that you use Universe (http://universe-phpext.sourceforge.net/) and not Satellite.

The Satellite extension is used for accessing CORBA objects. You will need to set the idl_directory= entry in php.ini to a path where you store all IDL files you use.

See the Satellite README file for details about installing Satellite.

Содержание
OrbitEnum -- Use CORBA enums
OrbitObject -- Access CORBA objects
OrbitStruct -- Use CORBA structs
satellite_caught_exception -- See if an exception was caught from the previous function
satellite_exception_id -- Get the repository id for the latest exception.
satellite_exception_value -- Get the exception struct for the latest exception
satellite_get_repository_id -- NOT IMPLEMENTED
satellite_load_idl -- Instruct the type manager to load an IDL file
satellite_object_to_string -- Convert an object to its string representation

Пред. | Начало | След.
runkit_superglobals | Уровень выше | OrbitEnum


SDO Functions

Руководство по PHP
Пред. След.

CXXIX. SDO Functions

Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

Service Data Objects (SDOs) enable PHP applications to work with data from different sources (like a database query, an XML file, and a spreadsheet) using a single interface.

Each different kind of data source requires a Data Access Service (DAS) to provide access to the data in the data source. In your PHP application, you use a DAS to create an SDO instance that represents some data in the data source. You can then set and get values in the SDO instance using the standard SDO interface. Finally, you use a DAS to write the modified data back to a data source (typically the same one).

See the list of Data Access Services for details on those currently available. In addition to the provided DASs, SDO also provides interfaces to enable others to be implemented (see the section on SDO Data Access Services Interface for more details).

This extension is derived from concepts taken from the Service Data Objects specification

The Structure of a Service Data Object

A Service Data Object instance is made up of a tree of data objects. The tree is defined by containment references between the data objects. For example, a Company data object might consist of a number of Department data objects and therefore the Company would have a containment reference to the Departments. Deleting a data object which has a containment reference to another data object will delete the referenced data object. For example, deleting the Company data object will also delete the Departments.

An SDO may also have non-containment references between data objects in the tree. For example, one Employee data object might reference another Employee to identify a career mentor. Deleting a data object which has a non-containment reference to another data object does not delete the referenced data object.

As well as data objects referencing each other, they can also have primitive properties. For example, the Company data object might have a property called "name" of type string, for holding the name of the company (for example, "Acme").

Требования

The SDO extension requires PHP 5.1 or higher.

SDO XML Data Access Service, which is built as part of this extension, requires libxml2 (Tested with libxml2 2.6.19) which can be downloaded from http://www.xmlsoft.org/.

Установка

There are several options, depending on whether you are installing on Windows or Linux, and depending on whether you are installing a released version (a .tgz file from the PECL site) or the latest from CVS. The Relational DAS also needs special attention as it is written in PHP.

The instructions are likely to change as PHP 5.1 progresses in status from beta to stable release. The instructions here were correct on 6th October 2005, when PHP 5.1.0RC1 was the current release candidate for PHP, and 0.5.2 was the current beta release of SDO.

The options are summarised in the following table:

latest/Release Windows Linux
latest CVS

  • The latest DLLs for the SDO core and the XML DAS can be downloaded from php_sdo and php_sdo_das_xml respectively.

  • Check out the Relational DAS from CVS to somewhere on the PHP include_path .

  • Check out the SDO core and the XML DAS from CVS and build according to the instructions below for building on Linux.

  • Check out the Relational DAS from CVS to somewhere on the PHP include_path .

Release

  • There is currently no way provided for building the release version of the SDO core and XML DAS on a user's machine. You will only be able to pick up the latest DLLs from the snaps site (see previous row of this table).

  • The Relational DAS can be downloaded and installed with the command:

    pear install -B <package name and level>

    Substitute the desired package name and level, for example sdo-0.5.2, in the command above.

  • You can download and install all three SDO components - the SDO core, the XML DAS and the Relational DAS - with the command:

    pear install <package name and level>

    Substitute the desired package name and level, for example sdo-0.5.2, in the command above.

    This command will build the SDO and XML shared libraries as well as installing the PHP files that make the Relational DAS.

Regardless of which platform or which level of the code you have installed you will need add the two extension libraries to your php.ini file. On Windows, add:
extension=php_sdo.dll
extension=php_sdo_das_xml.dll
On Linux, add:
extension=sdo.so
extension=sdo_das_xml.so
You may also need to update your extension_dir in php.ini to point to the location of these libraries.

The Relational DAS is written in PHP. You may need to update your include_path in php.ini to point to the directory that contains sdo/DAS/Relational .

Building SDO on Linux

This section describes how to build the SDO core and XML DAS on Linux. Currently you would only need to know how to do this if you wish to build a recent version that you have checked out of CVS.

  1. Change to the main extension directory: cd < wherever your sdo code is >

  2. Run phpize, which will set up the environment to compile both SDO and the XML Data Access Service.

  3. Next, run ./configure; make; make install. Please note, you may need to login as root to install the extension.

  4. Make sure that these modules are loaded by PHP, by adding extension=sdo.so and extension=sdo_das_xml.so to your php.ini file in the same order.

Data Access Services

The table below lists the currently provided SDO Data Access Services:

DAS Name | Description
SDO_DAS_XML | An XML Data Access Service supporting reading/writing SDOs as XML documents or via a Web URL to supporting things like RSS feeds.
SDO_DAS_Relational | A PDO-based Data Access Service supporting reading/writing SDO to relational data sources. Implements an optimistic concurrency policy for updates.

Limitations

Implementation Limitations

The following are limitations in the current SDO implementation:

  1. There is no support for multi-byte character sets.

SDO Limitations

The following SDO 2.0 concepts are not supported in the current PHP implementation. It is not necessarily the case that these will all be added over time. Their inclusion will depend on community requirements.

  1. Abstract types and type derivation.

  2. Open types.

  3. Bi-directional relationships.

  4. Type and property alias names.

  5. Read-only properties.

  6. Model introspection.

  7. XMLHelper/XSDHelper (the XML DAS provide a lot of this functionality)

  8. TypeHelper (the SDO_DAS_DataFactory provides this functionality)

Примеры

The examples below assume an SDO created with the schema and instance information shown below, using the XML Data Access Service.

The schema describes a company data object. The company contains department data objects, and each department contains employee data objects. Each data object has a number of primitive properties to describe things like name, serial number, etc. Finally, the company data object also has a non-containment reference to one of the employee data objects to identify them as the 'employeeOfTheMonth'.

<xsd:schema
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:sdo="commonj.sdo"
  xmlns:sdoxml="commonj.sdo/xml"
  xmlns:company="companyNS"
  targetNamespace="companyNS">
  <xsd:element name="company" type="company:CompanyType"/>
  <xsd:complexType name="CompanyType">
    <xsd:sequence>
      <xsd:element name="departments" type="company:DepartmentType" maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="name" type="xsd:string"/>
    <xsd:attribute name="employeeOfTheMonth" type="xsd:IDREF"
sdoxml:propertyType="company:EmployeeType"/> </xsd:complexType>
  <xsd:complexType name="DepartmentType">
    <xsd:sequence>
      <xsd:element name="employees" type="company:EmployeeType"  maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="name" type="xsd:string"/>
    <xsd:attribute name="location" type="xsd:string"/>
    <xsd:attribute name="number" type="xsd:int"/>
  </xsd:complexType>
  <xsd:complexType name="EmployeeType">
    <xsd:attribute name="name" type="xsd:string"/>
    <xsd:attribute name="SN" type="xsd:ID"/>
    <xsd:attribute name="manager" type="xsd:boolean"/>
  </xsd:complexType>
</xsd:schema>

The instance document below describes a single company, called 'MegaCorp', which contains a single department, called 'Advanced Technologies'. The Advanced Technologies department contains three employees. The company employeeOfTheMonth is referencing the second employee, 'Jane Doe'.

<?xml version="1.0" encoding="UTF-8" ?>
<company xmlns="companyNS" name="MegaCorp" employeeOfTheMonth="#/departments.0/employees.1">
  <departments name="Advanced Technologies" location="NY" number="123">
    <employees name="John Jones" SN="E0001"/>
    <employees name="Jane Doe" SN="E0003"/>
    <employees name="Al Smith" SN="E0004" manager="true"/>
  </departments>
</company>

Setting and Getting Property Values

The following examples assume $company is a data object created from the schema and instance document shown above.

Пример 1. Access via Property names

Data object properties can be accessed using the object property access syntax. The following gets the list of departments (containing a single department), and sets the company name to 'Acme'.

<?php
  $departments = $company->departments;
  $company->name = 'Acme';
?>

Пример 2. Access via Property index

Data object properties can be accessed via their property index using array syntax. The property index is the position at which the property's definition appears in the model (in this case the xml schema). We can see from the schema listing above that the departments element is the first company property defined and the company name attribute is the second company property (the SDO interface makes no distinction between XML attributes and elements). The following gets the list of departments (containing a single department), and sets the company name to 'Acme'.

<?php
  $departments = $company[0];
  $company[1] = 'Acme';
?>

Пример 3. Data Object Iteration

We can iterate over the properties of a data object using foreach. The following iterates over the company properties; name, departments and employeeOfTheMonth.

<?php
  foreach ($company as $name => $value) {
    ...
  }
?>

For the first iteration, $name will be 'name' and $value will be 'Acme'. For the second iteration, $name will be 'departments' and $value will be an SDO_List (because departments is a many-valued property (stated maxOccurs="unbouded" in the schema)) containing a single data object of type DepartmentType. For the third iteration, $name will be 'employeeOfTheMonth' and $value will be a data object of type EmployeeType.

Пример 4. Many-valued Property Iteration

Many-valued properties can also be iterated over using foreach. The following iterates over the company's departments.

<?php
  foreach ($company->departments as $department) {
    ...
  }
?>

Each iteration will assign the next department in the list to the variable $department.

Пример 5. Many-valued Element Access

We can access individual elements of many-valued properties using array syntax. The following accesses the first department in the company.

<?php
  $ad_tech_dept = $company->departments[0];
?>

Пример 6. Nested Property Access

We can use nested property access to navigate the data object instance structure. The following gets and sets the name of the first department.

<?php
  $dept_name = $company->departments[0]->name;
  $company->departments[0]->name = 'Emerging Technologies';
?>

Пример 7. Simple XPath support

We can access properties using XPath-like (an augmented sub-set of XPath) expressions, the simplest form of which is the property name. The following sets the company name and gets the employeeOfTheMonth.

<?php
  $company['name'] = 'UltraCorp';
  $eotm = $company['employeeOfTheMonth'];
?>

Пример 8. Simple XPath support

We can use chained array access calls to navigate the data object instance structure. The following gets and sets the name of the first department.

<?php
  $dept_name = $company['departments'][0]['name'];
  $company['departments'][0]['name'] = 'Emerging Technologies';
?>

Пример 9. XPath Navigation

We can use XPath expressions to navigate the data object instance structure. Two forms of indexing into many-valued properties are supported. The first is the standard XPath array syntax with the indexing starting at one, the second is an SDO extension to XPath with an index starting at zero. The following both get the second employee from the first department.

<?php
  $jane_doe = $company["departments[1]/employees[2]"];
  $jane_doe = $company["departments.0/employees.1"];
?>

Пример 10. XPath Querying

We can use XPath to query and identify parts of a data object based on instance data. The following retrieves the manager from the 'Advanced Technologies' department.

<?php
  $ad_tech_mgr = $company["departments[name=\"Advanced Technologies\"]/employees[manager=\"true\"]"];
?>

Пример 11. Creating child data object

A data object can be a factory for its child data objects. A child data object is automatically part of the data graph. The following add a new employee to the 'Advanced Technologies' department.

<?php
  $ad_tech_dept = $company["departments[name=\"Advanced Technologoies\"]"];
  $new_hire = $ad_tech_dept->createDataObject('employees');
  $new_hire->name = 'John Johnson';
  $new_hire->SN = 'E0005';
  $new_hire->manager = false;
?>

Пример 12. Unset referenced data object

We can use the isset() and unset() functions to test and remove items from the data object.

The following removes the 'employeeOfTheMonth' from the company. If this were a containment reference then the employee would be removed from the company (probably not a good idea to sack your best employee each month!), but since this is a non-containment reference, the employee being referenced will remain in the department in the company, but will no longer be accessible via the employeeOfTheMonth property.

<?php
  if (isset($company->employeeOfTheMonth)) {
    unset($company->employeeOfTheMonth);
  }
?>

Working with Sequenced Data Objects

Sequenced data objects are SDOs which can track property ordering across the properties of a data object. They can also contain unstructured text elements (text element which do not belong to any of the SDO's properties). Sequenced data objects are useful for working with XML documents which allow unstructured text (i.e. mixed=true) or if the elements can be interleaved ( <A/><B/><A/>). This can occur for example when the schema defines maxOccurs>1 on a element which is a complexType with a choice order indicator.

The examples below assume an SDO created with the following schema and instance information, using the XML Data Access Service.

The schema below describes the format of a letter. The letter can optionally contain three properties; date, firstName, and lastName. The schema states mixed="true" which means that unstructured text can be interspersed between the three properties.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:letter="http://letterSchema"
  targetNamespace="http://letterSchema">
  <xsd:element name="letters" type="letter:FormLetter"/>
  <xsd:complexType name="FormLetter" mixed="true">
    <xsd:sequence>
      <xsd:element name="date" minOccurs="0" type="xsd:string"/>
      <xsd:element name="firstName" minOccurs="0" type="xsd:string"/>
      <xsd:element name="lastName" minOccurs="0" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>

The following is an instance letter document. It contains the three letter properties; date, firstName and lastName, and has unstructured text elements for the address and letter body.

<letter:letters xmlns:letter="http://letterSchema">
  <date>March 1, 2005</date>
  Mutual of Omaha
  Wild Kingdom, USA
  Dear
  <firstName>Casy</firstName>
  <lastName>Crocodile</lastName>
  Please buy more shark repellent.
  Your premium is past due.
</letter:letters>

When loaded, the letter data object will have the sequence and property indices shown in the table below:

Sequence Index | Property Index:Name | Value
0 | 0:date | March 1, 2005
1 | - | Mutual of Omaha
2 | - | Wild Kingdom, USA
3 | - | Dear
4 | 1:firstName | Casy
5 | 2:lastName | Crocodile
6 | - | Please buy more shark repellent.
7 | - | Your premium is past due.

To ensure sequence indices are maintained, sequenced data objects should be manipulated through the SDO_Sequence interface. This allows the data object's instance data to be manipulated in terms of the sequence index as opposed to the property index (shown in the table above). The following examples assume the letter instance has been loaded into a data object referenced by the variable $letter.

Пример 13. Getting the SDO_Sequence interface

We obtain a data object's sequence using the getSequence() method. The follow gets the sequence for the letter data object.

<?php
  $letter_seq = $letter->getSequence();
?>

All subsequent examples assume that the $letter_seq variable has been assigned the sequence for the letter data object.

Пример 14. Get/set sequence values

We can get and set individual values (including unstructured text) using the sequence index. The following sets the firstName to 'Snappy' and gets the last sequence values (the unstructured text, 'Your premium is past due.').

<?php
  $letter_seq[4] = 'Snappy';
  $text = $letter_seq[count($letter_seq) - 1];
?>

Пример 15. Sequence iteration

We can iterate through the individual sequence values using foreach. The following runs through the individual values in sequence order.

<?php
  foreach ($letter->getSequence() as $value) {
    ...
  }
?>

Пример 16. Sequence versus Data Object

Setting values through the data object interface may result in the value not being part of the sequence. A value set through the data object will only be accessible through the sequence if the property was already part of the sequence. The following example sets the lastName through the data object and gets it through the sequence. This is fine because lastName already exists in the sequence. If it had not previously been set, then lastName would be set to 'Smith', but would not be part of the sequence.

<?php
  $letter[2] = 'Smith';
  $last_name = $letter_seq[5];
?>

Пример 17. Adding to a sequence

We can add new values to a sequence using the SDO_Sequence::insert() method. The following examples assume that the 'firstName' and 'lastName' properties are initially unset.

<?php
  // Append a firstName value to the sequence
  // value: 'Smith'
  // sequence index: NULL (append)
  // propertyIdentifier: 1 (firtName property index)
  $letters_seq->insert('Smith', NULL, 1);

  // Append a lastName value to the sequence
  // value: 'Jones'
  // sequence index: NULL (append)
  // property identifier: 'lastName' (lastName property name)
  $letters_seq->insert('Jones', NULL, 'lastName');

  // Append unstructured text
  // value: 'Cancel Subscription.'
  // sequence index: absent (append)
  // propertyIdentifier: absent (unstructured text)
  $letters_seq->insert('Cancel Subscription.');

  // Insert new unstructured text.  Subsequent sequence values
  // are shifted up.
  // value: 'Care of:'
  // sequence index: 1 (insert as second element)
  // propertyIdentifier: absent (unstructured text)
  $letters_seq->insert('Care of:', 1);
?>

Пример 18. Removing from a sequence

We can use the isset() and unset() functions to test and remove items from the sequence (Note: unset() currently leaves the values in the data object, but this behaviour is likely to change to also remove the data from the data object). A sequence behaves like a contiguous list; therefore, removing items from the middle will shift entries at higher indices down. The following example tests to see if the first sequence element is set and unsets it if is.

<?php
  if (isset($letter_seq[0]) {
    unset($letter_seq[0]);
  }
?>

Предопределенные классы

SDO consists of two sets of interfaces. The first set covers those interfaces for use by SDO client applications. These are identified by the package prefix 'SDO_'. The second set is those for use by Data Access Service implementations and are identified by the package prefix 'SDO_DAS_'. The majority of SDO users will not need to use or understand the 'SDO_DAS_' interfaces.

SDO Application Programmer Interface

SDO_DataObject

The main interface through which data objects are manipulated. In addition to the methods below, SDO_DataObject extends the ArrayAccess, SDO_PropertyAccess (defines __get() / __set() methods for property access overloading), Iterator, and Countable interfaces.

Методы

  • getType - get the type of a data object

  • getSequence - get the sequence for the data object

  • createDataObject - create a child data object

  • clear - unset the properties of a data object

  • getContainer - get the container (also known as 'parent') of this data object

  • getContainmentPropertyName - get the name by which the parent refers to this data object

SDO_Sequence

The interface through which sequenced data objects can be accessed to preserve ordering across a data object's properties and to allow unstructured text. SDO_Sequence preserves contiguous indices and therefore inserting or removing elements may shift other elements up or down. In addition to the methods below, SDO_Sequence extends the ArrayAccess, Iterator and Countable interface.

Методы

  • getPropertyIndex - get the property index for a given sequence index

  • getPropertyName - get the property name for a given sequence index

  • move - move an element from one property index to another

  • insert - insert a new value into the sequence

SDO_List

The interface through which many-valued properties are manipulated. In addition to the method defined below, SDO_List extends ArrayAccess, Iterator and Countable. SDO_List preserves contiguous indices and therefore inserting or removing elements may shift other elements up or down.

Методы

  • insert - insert a new value into the list

SDO_DataFactory

The interface through which data objects can be created. A Data Access Service is responsible for populating the model (i.e. configuring the data factory with the type and structure information for the data objects it can create.) for the factory and can then optionally return an instance of, or implement, the SDO_DataFactory interface.

Методы

  • create - create a new data object

SDO Data Access Service Developer Interfaces

SDO_DAS_DataObject

The interface through which a Data Access Service can access a data object's SDO_DAS_ChangeSummary . The change summary is used by the Data Access Service to check for conflicts when applying changes back to a data source.

Методы

  • getChangeSummary - get the change summary for a data object

SDO_DAS_ChangeSummary

The interface through which the change history of a data object is accessed. The change summary holds information for any modifications on a data object which occurred since logging was activated. In the case of deletions and modifications, the old values are also held in the change summary.

If logging is no longer active then the change summary only holds changes made up to the point when logging was deactivated. Reactivating logging clears the change summary. This is useful when a set of changes have been written out by a DAS and the data object is to be reused.

Методы

  • beginLogging - begin logging changes made to a data object

  • endLogging - end logging changes made to a data object

  • isLogging - test to see if change logging is on

  • getChangedDataObjects - get a list of the data objects which have been changed

  • getChangeType - get the type of change which has been made to a data object

  • getOldValues - get a list of old values for a data object

  • getOldContainer - get the old container data object for a deleted data object

SDO_DAS_Setting

The interface through which the old value for a property is accessed. A list of settings is returned by the change summary method getOldValues() .

Методы

  • getPropertyIndex - get the property index for the changed property

  • getPropertyName - get the property name for the changed property

  • getValue - get the old value for the changed property

  • getListIndex - get the list index for the old value if it was part of a many-valued property

  • isSet - test to see if the property was set prior to being modified

SDO_DAS_DataFactory

The interface for constructing the model for an SDO_DataObject. The SDO_DAS_DataFactory is an abstract class providing a static method which returns a concrete data factory implementation. The implementation is used by Data Access Services to create an SDO model from their model. For example, a Relational Data Access Service might create and populate an SDO_DAS_DataFactory model based on a schema for a relational database.

Методы

  • getDataFactory - static methods for getting a concrete data factory instance

  • addType - add a new type to the SDO model

  • addPropertyToType - add a new property to a type definition in the SDO model

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

SDO_DAS_ChangeSummary::NONE=0 (integer)

Represents a change type of 'none'.

SDO_DAS_ChangeSummary::MODIFICATION=1 (integer)

Represents a change type of 'modification'.

SDO_DAS_ChangeSummary::ADDITION=2 (integer)

Represents a change type of 'addition'.

SDO_DAS_ChangeSummary::DELETION=3 (integer)

Represents a change type of 'deletion'.

Содержание
SDO_DAS_ChangeSummary::beginLogging -- Begin change logging.
SDO_DAS_ChangeSummary::endLogging -- End change logging.
SDO_DAS_ChangeSummary::getChangeType -- Get the type of change made to an SDO_DataObject.
SDO_DAS_ChangeSummary::getChangedDataObjects -- Get the changed data objects from a change summary.
SDO_DAS_ChangeSummary::getOldContainer -- Get the old container for a deleted SDO_DataObject.
SDO_DAS_ChangeSummary::getOldValues -- Get the old values for a given changed SDO_DataObject.
SDO_DAS_ChangeSummary::isLogging -- Test to see whether change logging is switched on.
SDO_DAS_DataFactory::addPropertyToType -- Adds a property to a type.
SDO_DAS_DataFactory::addType -- Add a new type to a model.
SDO_DAS_DataFactory::getDataFactory -- Get a data factory instance.
SDO_DAS_DataObject::getChangeSummary -- Get a data object's change summary.
SDO_DAS_Setting::getListIndex -- Get the list index for a changed many-valued property.
SDO_DAS_Setting::getPropertyIndex -- Get the property index for a changed property.
SDO_DAS_Setting::getPropertyName -- Get the property name for a changed property.
SDO_DAS_Setting::getValue -- Get the old value for the changed property.
SDO_DAS_Setting::isSet -- Test whether a property was set prior to being modified.
SDO_DataFactory::create -- Create an SDO_DataObject.
SDO_DataObject::clear -- Clear an SDO_DataObject's properties.
SDO_DataObject::createDataObject -- Create a child SDO_DataObject.
SDO_DataObject::getContainer -- Get a data object's container.
SDO_DataObject::getContainmentPropertyName -- Get the container's property name.
SDO_DataObject::getSequence -- Get the sequence for a data object.
SDO_DataObject::getType -- Get the type of a data object.
SDO_List::insert -- Insert into a list.
SDO_Sequence::getPropertyIndex -- Return the property index for the specified sequence index.
SDO_Sequence::getPropertyName -- Return the property name for the specified sequence index.
SDO_Sequence::insert -- Insert into a sequence.
SDO_Sequence::move -- Move an item to another sequence position.

Пред. | Начало | След.
satellite_object_to_string | Уровень выше | SDO_DAS_ChangeSummary::beginLogging


SDO XML Data Access Service Functions

Руководство по PHP
Пред. След.

CXXX. SDO XML Data Access Service Functions

Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

In order to use the XML Data Access Service for Service Data Objects, you will need to understand some of the concepts behind SDO: the data graph, the data object, XPath and property expressions, and so on. If you are not familiar with these ideas, you might want to look first at the section on SDO .

The job of the XML DAS is to move data between the application and an XML data source, which can be either a file or a URL. In order to do this it needs to be told the location of the XML schema, which is passed as a parameter to the create method of the XML DAS. The schema is used to ensure conformance of XML being written out, and also to ensure that modifications made to an SDO originating from XML follow the model described by the XML schema.

Требования

The SDO XML Data Access Service requires PHP 5.1 or higher. It is packaged with the SDO extension and requires SDO to have been installed. See the SDO installation instructions for the details of how to do this.

Установка

The XML Data Access Service is packaged and installed as part of the SDO extension. Please Refer SDO installation instructions.

Limitations

The SDO 2.0 specification defines the mapping between XML types and SDO types. With Java SDO, this mapping is implemented by the XMLHelper. With SDO for PHP, this mapping is implemented by the XML Data Access Services. The XML DAS implements the mapping described in the SDO 2.0 specification with the following restrictions:

XML Simple Types

  1. Simple Type with abstract="true" - no PHP support for SDO abstract types.

  2. Simple Type with sdoJava:instanceClass - no PHP equivalent provided.

  3. Simple Type with sdoJava:extendedInstanceClass - no PHP equivalent provided.

  4. Simple Type with list of itemType.

  5. Simple Type with union.

XML Complex Types

  1. Complex Type with abstract="true" - no PHP support for SDO abstract types.

  2. Complex Type with sdo:aliasName - no PHP support for SDO Type aliases.

  3. Complex Type with open content - no PHP support for SDO open types.

  4. Complex Type with open attribute - no PHP support for SDO open types.

XSD Attribute

  1. Attribute with sdo:aliasName - no PHP support for SDO property aliases.

  2. Attribute with default value - no PHP support for SDO property defaults.

  3. Attribute with fixed value - no PHP support for SDO read-only properties or default values.

  4. Attribute reference.

  5. Attribute with sdo:string - no support for sdo:string="true".

  6. Attribute referencing a DataObject with sdo:propertyType - no support for sdo:propertyType="...".

  7. Attribute with bi-directional property to a DataObject with sdo:oppositeProperty and sdo:propertyType - no PHP support for SDO opposite.

XSD Elements

  1. Element with sdo:aliasName - no PHP support for SDO property aliases.

  2. Element reference.

  3. Element with nillable.

  4. Element with substitution group.

XSD Elements with Simple Type

  1. Element of SimpleType with default - no PHP support for SDO defaults

  2. Element of SimpleType with fixed value - no PHP support for SDO read-only properties or default values.

  3. Element of SimpleType with sdo:string - no support for sdo:string="true".

  4. Element referencing a DataObject with sdo:propertyType - no support for sdo:propertyType="..."

  5. Element with bi-directional reference to a DataObject with sdo:oppositeProperty and sdo:propertyType - no PHP support for SDO opposite.

Примеры

The following examples are based on the letter example described in the SDO documentation. The examples assume the XML Schema for the letter is contained in a file letter.xsd and the letter instance is in the file letter.xml. These two files are reproduced here:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:letter="http://letterSchema"
  targetNamespace="http://letterSchema">
  <xsd:element name="letters" type="letter:FormLetter"/>
  <xsd:complexType name="FormLetter" mixed="true">
    <xsd:sequence>
      <xsd:element name="date" minOccurs="0" type="xsd:string"/>
      <xsd:element name="firstName" minOccurs="0" type="xsd:string"/>
      <xsd:element name="lastName" minOccurs="0" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>

<letter:letters xmlns:letter="http://letterSchema">
  <date>March 1, 2005</date>
  Mutual of Omaha
  Wild Kingdom, USA
  Dear
  <firstName>Casy</firstName>
  <lastName>Crocodile</lastName>
  Please buy more shark repellent.
  Your premium is past due.
</letter:letters>

Пример 1. Loading, altering, and saving an XML document

The following example shows how an XML document can be loaded from a file, altered, and written back.

<?php
try {
    $xmldas = SDO_DAS_XML::create("letter.xsd");
    $xdoc = $xmldas->loadFromFile("letter.xml");
    $do = $xdoc->getRootDataObject();
    $do->date = "September 03, 2004";
    $do->firstName = "Anantoju";
    $do->lastName = "Madhu";
    $xmldas->saveDocumentToFile($xdoc, "letter-out.xml");
} catch (SDO_TypeNotFoundException $e) {
    print("Type is not defined in the xsd file");
} catch (SDO_DAS_XML_ParserException $e) {
    print("Problem while parsing");
}
?>

An instance of the XML DAS is first obtained from the SDO_DAS_XML::create() method, which is a static method of the SDO_DAS_XML class. The location of the xsd is passed as a parameter. Once we have an instance of the XML DAS initialised with a given schema, we can use it to load the instance document using the loadFromFile() method. There is also a loadFromString() method if you want to load an XML instance document from a string. If the instance document loads successfully, you will be returned an object of type SDO_DAS_XML_Document, on which you can call the getRootDataObject() method to get the SDO data object which is the root of the SDO data graph. You can then use SDO operations to change the graph. In this example we alter the date, firstName, and lastName properties. Then we use the saveDocumentToFile() method to write the changed document back to the file system.

This will write the following to letter-out.xml.

<?xml version="1.0" encoding="UTF-8"?>
<FormLetter xmlns="http://letterSchema" xsi:type="FormLetter" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <date>September 03, 2004</date>
  Mutual of Omaha
  Wild Kingdom, USA
  Dear
  <firstName>Anantoju</firstName>
  <lastName>Madhu</lastName>
  Please buy more shark repellent.
  Your premium is past due.
</FormLetter>

Пример 2. Creating a new XML document

The previous example loaded the document from a file. This example shows how to create an SDO data graph in memory. In this example it is then saved to an XML string. Furthermore, because the letter contains both structured and unstructured content, it uses the Sequence API as well assignments to properties to construct the data graph.

<?php
try {
    $xmldas = SDO_DAS_XML::create("letter.xsd");
    try {
        $do = $xmldas->createDataObject("http://letterSchema", "FormLetter");
        $seq = $do->getSequence();
        $seq->insert("April 09, 2005", NULL, 'date');
        $seq->insert("Acme Inc. ", NULL, NULL);
        $seq->insert("United Kingdom. ");
        $seq->insert("Dear", NULL, NULL);
        $seq->insert("Tarun", NULL, "firstName");
        $seq->insert("Nayaraaa", NULL, "lastName");
        $do->lastName = "Nayar";
        $seq->insert("Please note that your order number ");
        $seq->insert(12345);
        $seq->insert(" has been dispatched today. Thanks for your business with us.");
        $type = $do->getType();
        print($xmldas->saveDataObjectToString($do, $type[0], $type[1]));
    } catch (SDO_Exception $e) {
        print($e);
    }
} catch (SDO_TypeNotFoundException $e) {
    print("Type is not defined in the xsd file");
} catch (SDO_DAS_XML_ParserException $e) {
    print("Problem while parsing");
}
?>

This will emit the following output (line breaks have been inserted for readability):

<?xml version="1.0" encoding="UTF-8"?>
<FormLetter xmlns="http://letterSchema" xsi:type="FormLetter"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<date>April 09, 2005</date>
Acme Inc. United Kingdom.
Dear
<firstName>Tarun</firstName>
<lastName>Nayar</lastName>
Please note that your order number 12345 has been
dispatched today. Thanks for your business with us.
</FormLetter>

Пример 3. Setting XML document properties

This third example shows you how to use the SDO_DAS_XML_Document class. SDO_DAS_XML_Document class is provided to get and set properties of the XML declaration such as version, schema location, encoding and so on.

<?php
try {
    $xmldas = SDO_DAS_XML::create("letter.xsd");
    $xdoc = $xmldas->loadFromFile("letter.xml");
    print("Encoding is set to : " . $xdoc->getEncoding() . "\n");
    print("XML Version : " . $xdoc->getXMLVersion() . "\n");
    $xdoc->setXMLVersion("1.1");
    print($xmldas->saveDocumentToString($xdoc));
} catch (SDO_TypeNotFoundException $e) {
    print("Type is not defined in the xsd file");
} catch (SDO_DAS_XML_ParserException $e) {
    print("Problem while parsing");
}
?>

The first three lines of output show how the encoding and XML version has been obtained from the document, and how the XML version has been set in the XML header.

Encoding is set to : UTF-8
XML Version : 1.0
<?xml version="1.1" encoding="UTF-8"?>
...

Предопределенные классы

The XML DAS provides three classes. The SDO_DAS_XML which is the main class used to fetch the data from the XML source and also can used to write the data back. The next one is SDO_DAS_XML_Document class, which is basically useful to get/set the XML declarations such as encoding, version etc. And the last class is SDO_DAS_XML_ParserException which will be thrown for any parser exceptions while loading xsd/xml file.

SDO_DAS_XML

This is the main class of XML DAS, which is used fetch the data from the xml source and also used to write the data back. Other than the methods to load and save xml files, it also has a method called createDataObject which can be used to create an empty DataObject of a given type.

Методы

  • create This is the only static method available in SDO_DAS_XML class. Used to construct SDO_DAS_XML object.

  • createDataObject Can be used to construct the DataObject of a given type.

  • loadFromFile Loads the xml instance document from a file. This file can be at local file system or it can be on a remote host.

  • loadFromString same as the above method. Loads the xml instance which is available as string.

  • saveDataObjectToFile save SDO_DataObject to a file.

  • saveDataObjectToString save SDO_DataObject to a xml file.

  • saveDocumentToFile save SDO_DAS_XML_Document object as a xml file.

  • saveDocumentToString save SDO_DAS_XML_Document object as a xml string.

SDO_DAS_XML_Document

This class can be used to get/set XML Declarations such as encoding, schema location etc.

Методы

  • getEncoding gets the encoding string.

  • getNoNamespaceSchemaLocation gets the no namespace schema location.

  • getRootDataObject gets the root DataObject.

  • getRootElementName gets the root DataObject's name.

  • getRootElementURI gets the root DataObject's URI.

  • getSchemaLocation gets schema location.

  • getXMLDeclaration gets whether xml declaration is set ot not.

  • getXMLVersion gets the xml version.

  • setEncoding sets the encoding string with the given value.

  • setNoNamespaceSchemaLocation sets the no namespace schema location with the given value.

  • setSchemaLocation sets the schema location with the given value.

  • setXMLDeclaraion to set/unset the xml declaration.

  • setXMLVersion sets the xml version with the given value.

SDO_DAS_XML_ParserException

Is a subclass of SDO_Exception . Thrown for any parser errors while loading the xsd/xml file.

Содержание
SDO_DAS_XML_Document::getEncoding -- Returns encoding string.
SDO_DAS_XML_Document::getNoNamespaceSchemaLocation -- Returns no namespace schema location.
SDO_DAS_XML_Document::getRootDataObject -- Returns the root SDO_DataObject.
SDO_DAS_XML_Document::getRootElementName -- Returns root element's name.
SDO_DAS_XML_Document::getRootElementURI -- Returns root element's URI string.
SDO_DAS_XML_Document::getSchemaLocation -- Returns schema location.
SDO_DAS_XML_Document::getXMLDeclaration -- Returns whether the xml declaration is set or not.
SDO_DAS_XML_Document::getXMLVersion -- Returns xml declaration string.
SDO_DAS_XML_Document::setEncoding -- Sets the given string as encoding.
SDO_DAS_XML_Document::setNoNamespaceSchemaLocation -- Sets the given string as no namespace schema location.
SDO_DAS_XML_Document::setSchemaLocation -- Sets the given string as schema location.
SDO_DAS_XML_Document::setXMLDeclaration -- Sets the xml declaration.
SDO_DAS_XML_Document::setXMLVersion -- Sets the given string as xml version.
SDO_DAS_XML::create -- To create SDO_DAS_XML object for a given schema file.
SDO_DAS_XML::createDataObject -- Creates SDO_DataObject for a given namespace URI and type name.
SDO_DAS_XML::loadFromFile -- Returns SDO_DAS_XML_Document object for a given path to xml instance document.
SDO_DAS_XML::loadFromString -- Returns SDO_DAS_XML_Document for a given xml instance string.
SDO_DAS_XML::saveDataObjectToFile -- Saves the SDO_DataObject object to File.
SDO_DAS_XML::saveDataObjectToString -- Saves the SDO_DataObject object to string.
SDO_DAS_XML::saveDocumentToFile -- Saves the SDO_DAS_XML_Document object to a file.
SDO_DAS_XML::saveDocumentToString -- Saves the SDO_DAS_XML_Document object to a string.

Пред. | Начало | След.
SDO_Sequence::move | Уровень выше | SDO_DAS_XML_Document::getEncoding


SDO Relational Data Access Service Functions

Руководство по PHP
Пред. След.

CXXXI. SDO Relational Data Access Service Functions

Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

In order to use the Relational Data Access Service for Service Data Objects, you will need to understand some of the concepts behind SDO: the data graph, the data object, the disconnected way of working, the change summary, XPath and property expressions, and so on. If you are not familiar with these ideas, you might want to look first at the section on SDO. In addition, the Relational DAS makes use of the PDO extension to isolate itself from specifics of different back-end relational databases. In order to use the Relational DAS you will need to be able to create and pass a PDO database connection; for this reason you might also want to take a look at the section on PDO.

The job of the Relational DAS is to move data between the application and a relational database. In order to do this it needs to be told the mapping between the database entities - tables, columns, primary keys and foreign keys - and the elements of the SDO model - types, properties, containment properties and so on. You specify this information as metadata when you construct the Relational DAS.

Overview of Operation

  1. The first step is to call the Relational DAS's constructor, passing the metadata that defines the mapping between database and SDO model. There are examples of this below.

  2. The next step might be to call the executeQuery() or executePreparedQuery() methods on the Relational DAS, passing either a literal SQL statement for the DAS to prepare and execute, or a prepared statement with placeholders and a list of values to be inserted. You may also need to specify a small amount of metadata about the query itself, so that the Relational DAS knows exactly what columns will be returned from the database and in what order. You will also need to pass a PDO database connection.

    The return value from executeQuery() or executePreparedQuery() is a normalised data graph containing all the data from the result set. For a query that returns data obtained from a number of tables, this graph will contain a number of data objects, linked by SDO containment references. There may also be SDO non-containment references within the data.

    Once the query has been executed and the data graph constructed, there is no need for either that instance of the the Relational DAS or the database connection. There are no locks held on the database. Both the Relational DAS and the PDO database connection can be garbage collected.

  3. Quite possibly the data in the data graph will go through a number of modifications. The data graph can be serialised into the PHP session and so may have a lifetime beyond just one client-server interaction. Data objects can be created and added to the graph, the data objects already in the graph can be deleted, and data objects in the graph can be modified.

  4. Finally, the changes made to the data graph can be applied back to the database using the applyChanges() method of the Relational DAS. For this, another instance of the Relational DAS must be constructed, using the same metadata, and another connection to the database obtained. The connection and the data graph are passed to applyChanges(). At this point the Relational DAS examines the change summary and generates the necessary INSERT, UPDATE and DELETE SQL statements to apply the changes. Any UPDATE and DELETE statements are qualified with the original values of the data so that should the data have changed in the database in the meantime this will be detected. Assuming no such collisions have occurred the changes will be committed to the database. The application can then continue to work with the data graph, make more changes and apply them, or can discard it.

There are other ways of working with the data in the database: it is possible to just create data objects and write them to the database without a preliminary call to executeQuery(), for example. This scenario and others are explored in the Examples section below.

Установка

The installation instructions for all the SDO components are in the SDO install section of the SDO documentation.

In any case, the essential facts are that the Relational DAS is written in PHP and it should be placed somewhere on the PHP include_path .

Your application will of course need to include the Relational DAS with a statement like this:
<?php
require_once 'SDO/DAS/Relational.php';
?>

Требования

The Relational DAS requires that the SDO extension be installed. The SDO extension requires a version of PHP 5.1, and the Relational DAS requires a recent version that contains an important fix for PDO. The most up-to-date information about required levels of PHP should be found in the changelog for the package on PECL. At the time of writing, though, the Relational DAS requires the most recent beta level of PHP 5.1, that is PHP 5.1.0b3.

The Relational DAS uses PDO to access the relational database, and so should run with a variety of different relational databases. At the time of writing it has been tested in the following configurations

  • MySQL 4.1.14, on Windows. The Relational DAS operates correctly with the php_pdo_mysql driver that comes with the pre-built binaries for PHP 5.1.0b3.

  • MySQL 4.1.13, on Linux. It is necessary to have the most up-to-date PDO driver for MySQL, which comes built in to PHP 5.1.0b3. It may be necessary to uninstall the usual driver that would have come from PECL using pear uninstall pdo_mysql . You will need to configure PHP with the --with-pdo-mysql option.

  • DB2 8.2 Personal Edition, on Windows. The Relational DAS operates correctly with the php_pdo_odbc driver that comes with the pre-built binaries for PHP 5.1.0b3.

  • DB2 8.2 Personal Developer's Edition, on Linux. The Developer's Edition is needed because it contains the include files needed when PHP is configured and built. You will need to configure PHP with the --with-pdo-odbc=ibm-db2 option.

The Relational DAS applies changes to the database within a user-delimited transaction: that is, it issues a call to PDO::beginTransaction() before beginning to apply changes, and PDO::commit() or PDO::rollback() on completion. Whichever database is chosen, the database and the PDO driver for the database must support these calls.

Limitations

There are the following limitations in the current release of the Relational DAS:

  • No support for nulls. There is no support for SQL NULL type. It is not legal to assign PHP NULL to a data object property and the Relational DAS will not write that back as a NULL to the database. If nulls are found in the database on a query, the property will remain unset.

  • Only two types of SDO relationship. The metadata described below allows the Relational DAS to model just two types of SDO relationship: multi-valued containment properties and single-valued non-containment properties. In SDO, whether a property is single- or multi-valued, and whether it is containment or non-containment, are independent. The full range of possibilities that SDO allows cannot all be defined. There may be relationships that it would be useful to model but which the current implementation cannot manage. One example is a single-valued containment relationship.

  • No support for the full range of SDO data types. The Relational DAS defines all primitive properties in the SDO model as being of type string. SDO defines a richer set of types containing various integer, float, boolean and data and time types. String is adequate for the purposes of the Relational DAS since the combination of PHP, PDO and the database will ensure that values passed as strings will be converted to the proper type before being put in the database. This does affect some scenarios in which the Relational DAS has to work with a data graph that has come from or will go to a different DAS.

  • Only one foreign key per table. The metadata only provides the means to specify one foreign key per table. This foreign key may be mapped to one of the two types of SDO relationship supported. Obviously there are some scenarios that cannot be described under this limitation - it is not possible to have two non-containment references from one table to another for example.

Примеры

This section illustrates how the Relational DAS can be used to create, retrieve, update and delete data in a relational database. Many of the examples are illustrated with a three-table database that contains companies, departments within those companies, and employees that work in those departments. This example is used in a number of places within the SDO literature. See the examples section of the Service Data Objects specification or the Examples section of the documentation for the SDO extension.

The Relational DAS is constructed with metadata that defines the relational database and how it should be mapped to SDO. The long section that follows describes this metadata and how to construct the Relational DAS. The examples that follow it all assume that this metadata is in an included php file.

The examples below and others can all be found in the Scenarios directory in the Relational DAS package.

The Relational DAS throws exceptions in the event that it finds errors in the metadata or errors when executing SQL statements against the database. For brevity the examples below all omit the use of try/catch blocks around the calls to the Relational DAS.

These examples all differ from the expected use of SDO in two important respects.

First, they show all interactions with the database completed within one script. In this respect these scenarios are not realistic but are chosen to illustrate just the use of the Relational DAS. It is expected that interactions with the database will be separated in time and the data graph serialised and deserialised into the PHP session one or more times as the application interacts with an end user.

Second, all queries executed against the database use hard-coded queries with no variables substituted. In this case it is safe to use the simple executeQuery() call, and this is what the examples illustrate. In practice, though, it is unlikely that the SQL statement is known entirely ahead of time. In order to allow variables to be safely substituted into the SQL queries, without running the risk of injecting SQL with unknown effects, it is safer to use the executePreparedQuery() which takes a prepared SQL statement containing placeholders and a list of values to be substituted.

Specifying the metadata

This first long section describes in detail how the metadata describing the database and the required SDO model is supplied to the Relational DAS.

When the constructor for the Relational DAS is invoked, it needs to be passed several pieces of information. The bulk of the information, passed as an associative array in the first argument to the constructor, tells the Relational DAS what it needs to know about the relational database. It describes the names of the tables, columns, primary keys and foreign keys. It should be fairly easy to understand what is required, and once written it can be placed in a php file and included when needed. The remainder of the information, passed in the second and third arguments to the constructor, tells the Relational DAS what it needs to know about the relationships between objects and the shape of the data graph; it ultimately determines how the data from the database is to be normalised into a graph.

Database metadata

The first argument to the constructor describes the target relational database.

Each table is described by an associative array with up to four keys.

Key | Value
name | The name of the table.
columns | An array listing the names of the columns, in any order.
PK | The name of the column containing the primary key.
FK | An array with two entries, 'from' and 'to', which define a column containing a foreign key, and a table to which the foreign key points. If there are no foreign keys in the table then the 'FK' entry does not need to be specified. Only one foreign key can be specified. Only a foreign key pointing to the primary key of a table can be specified.

<?php
/*****************************************************************
* METADATA DEFINING THE DATABASE
******************************************************************/
$company_table = array (
    'name' => 'company',
    'columns' => array('id', 'name',  'employee_of_the_month'),
    'PK' => 'id',
    'FK' => array (
        'from' => 'employee_of_the_month',
        'to' => 'employee',
        ),
    );
$department_table = array (
    'name' => 'department',
    'columns' => array('id', 'name', 'location', 'number', 'co_id'),
    'PK' => 'id',
    'FK' => array (
        'from' => 'co_id',
        'to' => 'company',
        )
    );
$employee_table = array (
    'name' => 'employee',
    'columns' => array('id', 'name', 'SN', 'manager', 'dept_id'),
    'PK' => 'id',
    'FK' => array (
        'from' => 'dept_id',
        'to' => 'department',
        )
    );
$database_metadata = array($company_table, $department_table, $employee_table);
?>

This metadata corresponds to a relational database that might have been defined to MySQL as:

create table company (
   id integer auto_increment,
   name char(20),
   employee_of_the_month integer,
   primary key(id)
 );
 create table department (
   id integer auto_increment,
   name char(20),
   location char(10),
   number integer(3),
   co_id integer,
   primary key(id)
 );
 create table employee (
   id integer auto_increment,
   name char(20),
   SN char(4),
   manager tinyint(1),
   dept_id integer,
   primary key(id)
 );

or to DB2 as:

create table company ( \
    id integer not null generated by default as identity,  \
    name varchar(20), \
    employee_of_the_month integer, \
    primary key(id) )
create table department ( \
    id integer not null generated by default as identity, \
    name varchar(20), \
    location varchar(10), \
    number integer, \
    co_id integer, \
    primary key(id) )
create table employee ( \
    id integer not null generated by default as identity, \
    name varchar(20), \
    SN char(4), \
    manager smallint, \
    dept_id integer, \
    primary key(id) )

Note that although in this example there are no foreign keys specified to the database and so the database is not expected to enforce referential integrity, the intention behind the co_id column on the department table and the dept_id column on the employee table is they should contain the primary key of their containing company or department record, respectively. So these two columns are acting as foreign keys.

There is a third foreign key in this example, that from the employee_of_the_month column of the company record to a single row of the employee table. Note the difference in intent between this foreign key and the other two. The employee_of_the_month column represents a single-valued relationship: there can be only one employee of the month for a given company. The co_id and dept_id columns represent multi-valued relationships: a company can contain many departments and a department can contain many employees. This distinction will become evident when the remainder of the metadata picks out the company-department and department-employee relationships as containment relationships.

There are a few simple rules to be followed when constructing the database metadata:

  • All tables must have primary keys, and the primary keys must be specified in the metadata. Without primary keys it is not possible to keep track of object identities. As you can see from the SQL statements that create the tables, primary keys can be auto-generated, that is, generated and assigned by the database when a record is inserted. In this case the auto-generated primary key is obtained from the database and inserted into the data object immediately after the row is inserted into the database.

  • It is not necessary to specify in the metadata all the columns that exist in the database, only those that will be used. For example, if the company table had another column that the application did not want to access with SDO, this need not be specified in the metadata. On the other hand it would have done no harm to specify it: if specified in the metadata but never retrieved, or assigned to by the application, then the unused column will not affect anything.

  • In the database metadata note that the foreign key definitions identify not the destination column in the table which is pointed to, but the table name itself. Strictly, the relational model permits the destination of a foreign key to be a non-primary key. Only foreign keys that point to a primary key are useful for constructing the SDO model, so the metadata specifies the table name. It is understood that the foreign key points to the primary key of the given table.

Given these rules, and given the SQL statements that define the database, the database metadata should be easy to construct.

What the Relational DAS does with the metadata

The Relational DAS uses the database metadata to form most of the SDO model. For each table in the database metadata, an SDO type is defined. Each column which can represent a primitive value (columns which are not defined as foreign keys) are added as properties to the SDO type.

All primitive properties are given a type of string in the SDO model, regardless of their SQL type. When writing values back to the database the Relational DAS will create SQL statements that treat the values as strings, and the database will convert them to the appropriate type.

Foreign keys are interpreted in one of two ways, depending on the metadata in the third argument to the constructor that defines the SDO containment relationships. A discussion of this is therefore deferred until the section on SDO containment references below.

Specifying the application root type

The second argument to the constructor is the application root type. The true root of each data graph is an object of a special root type and all application data objects come somewhere below that. Of the various application types in the SDO model, one has to be the application type immediately below the root of the data graph. If there is only one table in the database metadata, the application root type can be inferred, and this argument can be omitted.

Specifying the SDO containment references

The third argument to the constructor defines how the types in the model are to be linked together to form a graph. It identifies the parent-child relationships between the types which collectively form a graph. The relationships need to be supported by foreign keys to be found in the data, in a way shortly to be described.

The metadata is an array containing one or more associative arrays, each of which identifies a parent and a child. The example below shows a parent-child relationship from company to department, and another from department to employee. Each of these will become an SDO multi-valued containment property in the SDO model.

<?php
$department_reference = array( 'parent' => 'company', 'child' => 'department');
$employee_reference = array( 'parent' => 'department', 'child' => 'employee');

$SDO_reference_metadata = array($department_reference, $employee_reference);
?>

Foreign keys in the database metadata are interpreted as either multi-valued containment properties or single-valued non-containment properties, depending on whether they have a corresponding SDO containment reference specified in the metadata. In the example here, the foreign keys from department to company (the co_id column in the department table) and from employee to department (the dept_id column in the employee table) are interpreted as supporting the SDO containment references. Each containment reference mentioned in the SDO containment references metadata must have a corresponding foreign key present in the database and defined in the database metadata. The values of the foreign key columns for containment references do not appear in the data objects, instead they are represented by the containment reference from the parent to the child. So the co_id column in the department row in the database, for example, does not appear as a property on the department type, but instead as a containment relationship called department on the company type. Note that the foreign key and the parent-child relationship appear to have opposite senses: the foreign key points from the department to the company, but the parent-child relationship points from company to department.

The third foreign key in this example, the employee_of_the_month , is handled differently. This is not mentioned in the SDO containment references metadata. As a consequence this is interpreted in the second way: it becomes a single-valued non-containment reference on the company object, to which can be assigned references to SDO data objects of the employee type. It does appear as a property on the company type. The way to assign a value to it in the SDO data graph is to have a graph that contains an employee object through the containment references, and to assign the object to it. This is illustrated in the later examples below.

One-table examples

The following set of examples all use the Relational DAS to work with a data graph containing just one application data object, a single company and the data just to be found the company table. These examples do not exercise the power of SDO or the Relational DAS and of course the same result could be achieved more economically with direct SQL statements but they are intended to illustrate how to work with the Relational DAS.

For this very simple scenario it would be possible to simplify the database metadata to include just the company table - if that were done the second and third arguments to the constructor and the column specifier used in the query example would become optional.

Пример 1. Creating a data object

The simplest example is that of creating a single data object and writing it to the database. In this example a single company object is created, its name is set to 'Acme', and the Relational DAS is called to write the changes to the database. The company name is set here using the property name method. See the Examples section on the SDO extension for other ways of accessing the properties of an object.

Data objects can only be created when you have a data object to start with, however. It is for that reason that the first call to the Relational DAS here is to obtain a root object. This is in effect how to ask for an empty data graph - the special root object is the true root of the tree. The company data object is then created with a call to createDataObject() on the root object. This creates the company data object and inserts it in the graph by inserting into a multi-valued containment property on the root object called 'company'.

When the Relational DAS is called to apply the changes a simple insert statement 'INSERT INTO company (name} VALUES ("Acme");' will be constructed and executed. The auto-generated primary key will be set into the data object and the change summary will be reset, so that it would be possible to continue working with the same data object, modify it, and apply the newer changes a second time.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
 * Construct the DAS with the metadata
 ***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_reference_metadata);

/**************************************************************
 * Obtain a root object and create a company object underneath.
 * Make a simple change to the data object.
 ***************************************************************/
$root = $das  -> createRootDataObject();
$acme = $root -> createDataObject('company');

$acme->name = "Acme";

/**************************************************************
 * Get a database connection and write the object to the database
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$das -> applyChanges($dbh, $root);
?>

Пример 2. Retrieving a data object

In this example a single data object is retrieved from the database - or possibly more than one if there is more than one company called 'Acme'. For each company returned, the name and id properties are echoed.

In this example the third argument to executeQuery(), the column specifier is needed as there are other tables in the metadata with column names of name and id. If there were no possible ambiguity it could be omitted.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
 * Construct the DAS with the metadata
 ***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_reference_metadata);

/**************************************************************
 * Get a database connection
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

/**************************************************************
 * Issue a query to obtain a company object - possibly more if they exist
 ***************************************************************/
$root = $das->executeQuery($dbh,
           'select name, id from company where name="Acme"',
            array('company.name', 'company.id') );

/**************************************************************
 * Echo name and id
 ***************************************************************/
foreach ($root['company'] as $company) {
    echo "Company obtained from the database has name = " .
    $company['name'] . " and id " . $company['id'] . "\n";
}
?>

Пример 3. Updating a data object

This example combines the previous two, in the sense that in order to be updated the object must first be retrieved. The application code reverses the company name (so 'Acme' becomes 'emcA') and then the changes are written back to the database in the same way that they were when the object was created. Because the query searches for the name both ways round the program can be run repeatedly to find the company and reverse its name each time.

In this example the same instance of the Relational DAS is reused for the applyChanges(), as is the PDO database handle. This is quite alright; it also alright to allow the previous instances to be garbage collected and to obtain new instances. No state data regarding the graph is held the Relational DAS once it has returned a data graph to the application. All necessary data is either within the graph itself, or can be reconstructed from the metadata.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
 * Construct the DAS with the metadata
 ***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_reference_metadata);

/**************************************************************
 * Get a database connection
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

/**************************************************************
 * Issue a query to obtain a company object - possibly more if they exist
 ***************************************************************/
$root = $das->executeQuery($dbh,
    'select name, id from company where name="Acme" or name="emcA"',
    array('company.name', 'company.id') );

/**************************************************************
 * Alter the name of just the first company
 ***************************************************************/
$company = $root['company'][0];
echo "obtained a company with name of " . $company->name . "\n";
$company->name = strrev($company->name);

/**************************************************************
 * Write the change back
 ***************************************************************/
$das->applyChanges($dbh,$root);
?>

Пример 4. Deleting a data object

Any companies called 'Acme' or its reverse 'emcA' are retrieved. They are then all deleted from the graph with unset.

In this example they are all deleted in one go by unsetting the containing reference. It is also possible to delete them individually.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
 * Construct the DAS with the metadata
 ***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_reference_metadata);

/**************************************************************
 * Get a database connection
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

/**************************************************************
 * Issue a query to obtain a company object - possibly more if they exist
 ***************************************************************/
$root = $das->executeQuery($dbh,
    'select name, id from company where name="Acme" or name="emcA"',
    array('company.name', 'company.id') );

/**************************************************************
 * Delete any companies found from the data graph
 ***************************************************************/
unset($root['company']);

/**************************************************************
 * Write the change(s) back
 ***************************************************************/
$das->applyChanges($dbh,$root);
?>

Two-table examples

The following set of examples all use two tables from the company database: the company and department tables. These examples exercise more of the function of the Relational DAS.

In this series of examples a company and department are created, retrieved, updated, and finally deleted. This illustrates the lifecycle for a data graph containing more than one object. Note that this example clears out the company and department tables at the start so that the exact results of the queries can be known.

You can find these examples combined into one script called 1cd-CRUD in the Scenarios directory in the Relational DAS package.

Пример 5. One company, one department - Create

As in the earlier example of creating just one company data object, the first action after constructing the Relational DAS is to call createRootDataObject() to obtain the special root object of the otherwise empty data graph. The company object is then created as a child of the root object, and the department object as a child of the company object.

When it comes to applying the changes, the Relational DAS has to perform special processing to maintain the foreign keys that support the containment relationships, especially if auto-generated primary keys are involved. In this example, the relationship between the auto-generated primary key id in the company table and the co_id column in the department table must be maintained. When inserting a company and department for the first time the Relational DAS has to first insert the company row, then call PDO's getLastInsertId() method to obtain the auto-generated primary key, then add that as the value of the co_id column when inserting the department row.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/*************************************************************************************
* Empty out the two tables
*************************************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$pdo_stmt = $dbh->prepare('DELETE FROM COMPANY;');
$rows_affected = $pdo_stmt->execute();
$pdo_stmt = $dbh->prepare('DELETE FROM DEPARTMENT;');
$rows_affected = $pdo_stmt->execute();

/**************************************************************
* Create a company with name Acme and one department, the Shoe department
***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_reference_metadata);

$root = $das -> createRootDataObject();

$acme = $root -> createDataObject('company');
$acme -> name = "Acme";

$shoe = $acme->createDataObject('department');
$shoe->name = 'Shoe';

$das -> applyChanges($dbh, $root);

?>

Пример 6. One company, one department - Retrieve and Update

In this case the SQL query passed to executeQuery() performs an inner join to join the data from the company and department tables. Primary keys for both the company and department tables must be included in the query. The result set is re-normalised to form a normalised data graph. Note that a column specifier is passed as the third argument to the executeQuery() call enabling the Relational DAS to know which column is which in the result set.

Note that the co_id column although used in the query is not needed in the result set. In order to understand what the Relational DAS is doing when it builds the data graph it may be helpful to visualise what the result set looks like. Although the data in the database is normalised, so that multiple department rows can point through their foreign key to one company row, the data in the result set is non-normalised: that is, if there is one company and multiple departments, the values for the company are repeated in each row. The Relational DAS has to reverse this process and turn the result set back into a normalised data graph, with just one company object.

In this example the Relational DAS will examine the result set and column specifier, find data for both the company and department tables, find primary keys for both, and interpret each row as containing data for a department and its parent company. If it has not seen data for that company before (it uses the primary key to check) it creates a company object and then a department object underneath it. If it has seen data for that company before and has already created the company object it just creates the department object underneath.

In this way the Relational DAS can retrieve and renormalise data for multiple companies and multiple departments underneath them.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
 * Retrieve the company and Shoe department, then delete Shoe and add IT
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_reference_metadata);

$root = $das->executeQuery($dbh,
'select c.id, c.name, d.id, d.name from company c, department d where d.co_id = c.id',
array('company.id','company.name','department.id','department.name'));

$acme = $root['company'][0];            // get the first company - will be 'Acme'
$shoe = $acme['department'][0];         // get the first department underneath - will be 'Shoe'

unset($acme['department'][0]);

$it = $acme->createDataObject('department');
$it->name = 'IT';

$das -> applyChanges($dbh, $root);
?>

Пример 7. One company, two departments - Retrieve and Delete

In this example the company and department are retrieved and then deleted. It is not necessary to delete them individually (although that would be possible) - deleting the company object from the data graph also deletes any departments underneath it.

Note the way that the company object is actually deleted using the PHP unset call. The unset has to be performed on the containing reference which in this case is the company reference on the special root object. You must use:
<?php
unset($root['company'][0]);
?>
and not:
<?php
unset($acme); //WRONG
?>
Simply unsetting $acme would destroy the variable but leave the data in the data graph untouched.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
 * Retrieve the company and IT department, then delete the whole company
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_reference_metadata);

$root = $das->executeQuery($dbh,
'select c.id, c.name, d.id, d.name from company c, department d where d.co_id = c.id',
array('company.id','company.name','department.id','department.name'));

$acme = $root['company'][0];
$it = $acme['department'][0];

unset($root['company'][0]);

$das -> applyChanges($dbh, $root);

?>

Three-table example

The following examples use all three tables from the company database: the company, department, and employee tables. These introduce the final piece of function not exercised by the examples above: the non-containment reference employee_of_the_month.

Like the examples above for company and department, this set of examples is intended to illustrate the full lifecycle of such a data graph.

Пример 8. One company, one department, one employee - Create

In this example a company is created containing one department and just one employee. Note that this example clears out all three tables at the start so that the exact results of the queries can be known.

Note how once the company, department and employee have been created, the employee_of_the_month property of the company can be made to point at the new employee. As this is a non-containment reference, this cannot be done until the employee object has been created within the graph. Non-containment references need to be managed carefully. For example if the employee were now deleted from under the department, it would not be correct to try to save the graph without first clearing or re-assigning the employee_of_the_month property. The closure rule for SDO data graphs requires that any object pointed at by a non-containment reference must also be reachable by containment references.

When it comes to inserting the graph into the database, the procedure is similar to the example of inserting the company and department, but employee_of_the_month introduces an extra complexity. The Relational DAS needs to insert the objects working down the tree formed by containment references, so company, then department, then employee. This is necessary so that it always has the auto-generated primary key of a parent on hand to include in a child row. But when the company row is inserted the employee who is employee of the month has not yet been inserted and the primary key is not known. The procedure is that after the employee record is inserted and its primary key known, a final step is performed in which the the company record is updated with the employee's primary key.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/*************************************************************************************
* Empty out the three tables
*************************************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$pdo_stmt = $dbh->prepare('DELETE FROM COMPANY;');
$rows_affected = $pdo_stmt->execute();
$pdo_stmt = $dbh->prepare('DELETE FROM DEPARTMENT;');
$rows_affected = $pdo_stmt->execute();
$pdo_stmt = $dbh->prepare('DELETE FROM EMPLOYEE;');
$rows_affected = $pdo_stmt->execute();

/*************************************************************************************
* Create a tiny but complete company.
* The company name is Acme.
* There is one department, Shoe.
* There is one employee, Sue.
* The employee of the month is Sue.
*************************************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_reference_metadata);
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

$root             = $das  -> createRootDataObject();
$acme             = $root -> createDataObject('company');
$acme -> name     = "Acme";
$shoe             = $acme -> createDataObject('department');
$shoe -> name     = 'Shoe';
$shoe -> location = 'A-block';
$sue             = $shoe -> createDataObject('employee');
$sue -> name     = 'Sue';
$acme -> employee_of_the_month = $sue;

$das -> applyChanges($dbh, $root);

echo "Wrote back Acme with one department and one employee\n";
?>

Пример 9. One company, one department, one employee - Retrieve and update

The SQL statement passed to the Relational DAS is this time an inner join that retrieves data from all three tables. Otherwise this example introduces nothing that has not appeared in a previous example.

The graph is updated by the addition of a new department and employee and some alterations to the name properties of the existing objects in the graph. The combined changes are then written back. The Relational DAS will process and apply an arbitrary mixture of additions, modifications and deletions to and from the data graph.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/*************************************************************************************
 * Find the company again and change various aspects.
 * Change the name of the company, department and employee.
 * Add a second department and a new employee.
 * Change the employee of the month.
 *************************************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_reference_metadata);
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

$root = $das->executeQuery($dbh,
    "select c.id, c.name, c.employee_of_the_month, d.id, d.name, e.id, e.name " .
    "from company c, department d, employee e " .
    "where e.dept_id = d.id and d.co_id = c.id and c.name='Acme'",
     array('company.id','company.name','company.employee_of_the_month',
     'department.id','department.name','employee.id','employee.name'));
$acme     = $root['company'][0];

$shoe    = $acme->department[0];
$sue    = $shoe -> employee[0];

$it     = $acme->createDataObject('department');
$it->name = 'IT';
$it->location = 'G-block';
$billy     = $it->createDataObject('employee');
$billy->name = 'Billy';

$acme->name = 'MegaCorp';
$shoe->name = 'Footwear';
$sue->name = 'Susan';

$acme->employee_of_the_month = $billy;
$das -> applyChanges($dbh, $root);
echo "Wrote back company with extra department and employee and all the names changed (Megacorp/Footwear/Susan)\n";

?>

Пример 10. One company, two departments, two employees - Retrieve and delete

The company is retrieved as a complete data graph containing five data objects - the company, two departments and two employees. They are all deleted by deleting the company object. Deleting an object from the graph deletes all the object beneath it in the graph. Five SQL DELETE statements will be generated and executed. As always they will be qualified with a WHERE clause that contains all of the fields that were retrieved, so that any updates to the data in the database in the meantime by another process will be detected.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/*************************************************************************************
 * Now read it one more time and delete it.
 * You can delete part, apply the changes, then carry on working with the same graph but
 * care is needed to keep closure - you cannot delete the employee who is eotm without
 * reassigning. For safety here we delete the company all in one go.
 *************************************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_reference_metadata);
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

$root = $das->executeQuery($dbh,
    "select c.id, c.name, c.employee_of_the_month, d.id, d.name, e.id, e.name " .
    "from company c, department d, employee e " .
    "where e.dept_id = d.id and d.co_id = c.id and c.name='MegaCorp';",
     array('company.id','company.name','company.employee_of_the_month',
     'department.id','department.name','employee.id','employee.name'));
$megacorp = $root['company'][0];

unset($root['company']);
$das -> applyChanges($dbh, $root);

echo "Deleted the company, departments and employees all in one go.\n";

?>

Tracing

You may be interested in seeing the SQL statements that are generated in order to apply changes back to the database. At the top of the SDO/DAS/Relational.php you will find a number of constants which control whether the process of constructing and executing the SQL statements is to be traced. Try setting DEBUG_EXECUTE_PLAN to TRUE to see the generated SQL statements.

Предопределенные классы

The Relational DAS provides two classes: the Relational DAS itself and the subclass of Exception that can be thrown. The Relational DAS has four publicly useful calls: the constructor, the createRootDataObject() call to obtain the root object of an empty data graph, the executeQuery() call to obtain a data graph containing data from a relational database, and the applyChanges() call to write changes made to a data graph back to the relational database.

SDO_DAS_Relational

The only object other than an SDO_DAS_Relational_Exception with which the application is expected to interact.

Методы

  • __construct - construct the Relational DAS with a model derived from the passed metadata

  • createRootDataObject - obtain an otherwise empty data graph containing just the special root object

  • executeQuery - execute an SQL query passed as a literal string and return the results as a normalised data graph

  • executePreparedQuery - execute an SQL query passed as a prepared statement, with a list of values to substitute for placeholders, and return the results as a normalised data graph

  • applyChanges - examine the change summary in the data graph and apply those changes back to the database, subject to an assumption of optimistic concurrency

SDO_DAS_Relational_Exception

Is a subclass of PHP's Exception. It adds no behaviour to Exception. Thrown, with useful descriptive text, to signal errors in the metadata or unexpected failures to perform SQL operations.

Содержание
SDO_DAS_Relational::applyChanges -- Applies the changes made to a data graph back to the database.
SDO_DAS_Relational::__construct -- Creates an instance of a Relational Data Access Service
SDO_DAS_Relational::createRootDataObject -- Returns the special root object in an otherwise empty data graph. Used when creating a data graph from scratch.
SDO_DAS_Relational::executePreparedQuery -- Executes an SQL query passed as a prepared statement, with a list of values to substitute for placeholders, and return the results as a normalised data graph.
SDO_DAS_Relational::executeQuery -- Executes a given SQL query against a relational database and returns the results as a normalised data graph.

Пред. | Начало | След.
SDO_DAS_XML::saveDocumentToString | Уровень выше | SDO_DAS_Relational::applyChanges


PostgreSQL Session Save Handler

Руководство по PHP
Пред. След.

CXXXIV. PostgreSQL Session Save Handler

Введение

Замечание: Для Windows-платформ это расширение недоступно.

This module provides an additional session save handler for the session module using PostgreSQLPostgreSQL as a storage system. A user session save handler may be used ((session_set_save_handler(), but this module is written in C. Therefore, this module could be twice as fast, compared to a session save handler written in PHP.

Session PgSQL is designed to scale any size of web sites and offers some advanced features:

session tables are created automatically
automatic session table vacuum
better garbage collection
multiple PostgreSQL servers support
automatic database server failover (switching)
automatic database server load balancing if there are multiple PostgreSQL servers.
short circuit UPDATE

Требования

You need at least PHP >= 4.3.0, and PostgreSQL >=7.2.0 as database server. libpq that comes with PostgreSQL 7.2.0 or later (and header files to build) and libmm (and header files).

Установка

Short installation note:

  • Untar the tar.gz archive into php4/ext (Latest official releases can be found at SourceForge PHP Form Extension Project)

  • If the new directory is now called something like session_pgsql. You should name it to session_pgsql (except you only want to build it as self-contained php-module).

  • Run ./buildconf in php4

  • Run configure --with-session-pgsql (and your other options)

  • make; make install

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

PostgreSQL session save handler is still under development. Refer to the README file in the source distribution for configuration details.

Table definitions

Session table definition
CREATE TABLE php_session (
  sess_id            text,
  sess_name          text,
  sess_data          text,
  sess_created       integer,
  sess_modified      integer,
  sess_expire        integer,
  sess_addr_created  text,
  sess_addr_modified text,
  sess_counter       integer,
  sess_error         integer,
  sess_warning       integer,
  sess_notice        integer,
  sess_err_message   text,
  sess_custom        text
);

CREATE INDEX php_session_idx ON php_session USING BTREE (sess_id);

Внимание

If you use HASH for INDEX, you'll have a deadlock problem when the server load is very high. Even if it's unlikely to have a deadlock under normal operation, it can occur. Do not use HASH for INDEX.

You may change the session table as long as all fields are defined.

Application variables table definition
CREATE TABLE php_app_vars (
  app_modified       integer,
  app_name           text,
  app_vars           text
);

Contact Information

I have at the moment not very much time to further develop this extension. I will implement more and more features in the near future.

If you have comments, bug fixes, enhancements or want to help developing this, you can drop me a mail at yohgaki@php.net. Any help is very welcome.

Содержание
session_pgsql_add_error -- Increments error counts and sets last error message
session_pgsql_get_error -- Returns number of errors and last error message
session_pgsql_get_field -- Get custom field value
session_pgsql_reset -- Reset connection to session database servers
session_pgsql_set_field -- Set custom field value
session_pgsql_status -- Get current save handler status

Пред. | Начало | След.
sesam_settransaction | Уровень выше | session_pgsql_add_error


Unicode Functions

Руководство по PHP
Пред. След.

CLII. Unicode Functions

Введение

Unicode Support.

Внимание

This extension is still in development and it isn't available to public yet.

Требования

ICU 3.4 or later is required.

Установка

First you should download and install ICU:

Пример 1. install ICU on Unix

./configure --disable-threads --enable-extras --enable-icuio --enable-layout
make && make install

Then checkout latest PHP and configure it --with-icu-dir=<dir> option, where <dir> was the dir to where you installed ICU. You don't need to explicitly use this option if you install ICU to a standard location.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Таблица 1. Unicode Configuration Options

Name | Default | Changeable | Changelog
unicode.fallback_encoding | NULL | PHP_INI_ALL | Available since PHP 6.0.0.
unicode.from_error_mode | 2 | PHP_INI_ALL | Available since PHP 6.0.0.
unicode.from_error_subst_char | "3f" | PHP_INI_ALL | Available since PHP 6.0.0.
unicode.http_input_encoding | NULL | PHP_INI_ALL | Available since PHP 6.0.0.
unicode.output_encoding | NULL | PHP_INI_ALL | Available since PHP 6.0.0.
unicode.runtime_encoding | NULL | PHP_INI_ALL | Available since PHP 6.0.0.
unicode.script_encoding | NULL | PHP_INI_ALL | Available since PHP 6.0.0.
unicode.semantics | off | PHP_INI_PERDIR | Available since PHP 6.0.0.
Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

Краткое разъяснение конфигурационных директив.

unicode.output_encoding string

Default encoding for output.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

Таблица 2.

constant | value | description
U_INVALID_STOP | 0 | stop at first invalid character
U_INVALID_SKIP | 1 | skip invalid characters
U_INVALID_SUBSTITUTE | 2 | replace invalid characters
U_INVALID_ESCAPE | 3 | escape invalid characters

Содержание
i18n_loc_get_default -- Get the default Locale
i18n_loc_set_default -- Set the default Locale
unicode_encode -- Takes a unicode string and converts it to a string in the specified encoding

Пред. | Начало | След.
token_name | Уровень выше | i18n_loc_get_default


win32service Functions

Руководство по PHP
Пред. След.

CLIX. win32service Functions

Введение

The win32service extension is a Windows specific extension that allows PHP to communicate with the Service Control Manager to start, stop, register and unregister services, and even allows your PHP scripts to run as a service.

Требования

Windows NT, Windows 2000, Windows XP or Windows Server 2003. Any version of windows derived from Windows NT should be compatible.

Установка

Installing from PECL

  1. You can download php_win32service.dll from http://snaps.php.net/win32/. Choose the PECL_X_X folder that matches you PHP version.

  2. Copy the php_win32service.dll into your extension_dir.

  3. Load the extension from your php.ini
    extension=php_win32service.dll

Примеры

Пример 1. Registering a PHP script to run as a service

<?php
win32_create_service(array(
        'service' => 'dummyphp',                 # the name of your service
        'display' => 'sample dummy PHP service', # description
        'params' => 'c:\path\to\script.php run', # path to the script and parameters
    ));
?>

Пример 2. Unregistering a service

<?php
win32_delete_service('dummyphp');
?>

Пример 3. Running as a service

<?php
if ($argv[1] == 'run') {
  win32_start_service_ctrl_dispatcher('dummyphp');

  while (WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) {
    # do your work here.
    # try not to take up more than 30 seconds before going around the loop
    # again
  }
}
?>

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

WIN32_SERVICE_CONTROL_CONTINUE (integer)

WIN32_SERVICE_CONTROL_INTERROGATE (integer)

WIN32_SERVICE_CONTROL_PAUSE (integer)

WIN32_SERVICE_CONTROL_STOP (integer)

WIN32_SERVICE_CONTROL_HARDWAREPROFILECHANGE (integer)

WIN32_SERVICE_CONTROL_POWEREVENT (integer)

WIN32_SERVICE_CONTROL_SESSIONCHANGE (integer)

WIN32_ERROR_CALL_NOT_IMPLEMENTED (integer)

WIN32_NO_ERROR (integer)

WIN32_SERVICE_RUNNING (integer)

WIN32_SERVICE_STOPPED (integer)

WIN32_SERVICE_STOP_PENDING (integer)

WIN32_SERVICE_WIN32_OWN_PROCESS (integer)

WIN32_SERVICE_INTERACTIVE_PROCESS (integer)

WIN32_SERVICE_STOPPED (integer)

WIN32_SERVICE_START_PENDING (integer)

WIN32_SERVICE_STOP_PENDING (integer)

WIN32_SERVICE_RUNNING (integer)

WIN32_SERVICE_CONTINUE_PENDING (integer)

WIN32_SERVICE_PAUSE_PENDING (integer)

WIN32_SERVICE_PAUSED (integer)

WIN32_SERVICE_ACCEPT_NETBINDCHANGE (integer)

WIN32_SERVICE_ACCEPT_PARAMCHANGE (integer)

WIN32_SERVICE_ACCEPT_PAUSE_CONTINUE (integer)

WIN32_SERVICE_ACCEPT_SHUTDOWN (integer)

WIN32_SERVICE_ACCEPT_STOP (integer)

WIN32_SERVICE_ACCEPT_HARDWAREPROFILECHANGE (integer)

WIN32_SERVICE_ACCEPT_POWEREVENT (integer)

WIN32_SERVICE_ACCEPT_SESSIONCHANGE (integer)

WIN32_SERVICE_FILE_SYSTEM_DRIVER (integer)

WIN32_SERVICE_KERNEL_DRIVER (integer)

WIN32_SERVICE_WIN32_SHARE_PROCESS (integer)

WIN32_SERVICE_RUNS_IN_SYSTEM_PROCESS (integer)

Содержание
win32_create_service -- Creates a new service entry in the SCM database
win32_delete_service -- Deletes a service entry from the SCM database
win32_get_last_control_message -- Returns the last control message that was sent to this service
win32_query_service_status -- Queries the status of a service
win32_set_service_status -- Update the service status
win32_start_service_ctrl_dispatcher -- Registers the script with the SCM, so that it can act as the service with the given name
win32_start_service -- Starts a service
win32_stop_service -- Stops a service

Пред. | Начало | След.
wddx_unserialize | Уровень выше | win32_create_service


XMLReader functions

Руководство по PHP
Пред. След.

CLXIV. XMLReader functions

Введение

The XMLReader extension is an XML Pull parser. The reader acts as a cursor going forward on the document stream and stopping at each node on the way.

Установка

The XMLReader extension is available in PECL for PHP 5.0 and is included in PHP 5.1 by default. It and can be enabled by adding the argument --with--xmlreader to your configure line. The libxml extension is required.

Предопределенные классы

XMLReader

Методы

  • XMLReader->close() - Close the XMLReader input

  • XMLReader->expand() - Export current node to a DOM node

  • XMLReader->getAttribute() - Get value of attribute by name

  • XMLReader->getAttributeNo() - Get value of attribute by position

  • XMLReader->getAttributeNS() - Get value of attribute by name and URI

  • XMLReader->getParserProperty() - Indicates if parser property is set or not

  • XMLReader->isValid() - Indicates if document is valid

  • XMLReader->lookupNamespace() - Get URI for prefix in scope of node

  • XMLReader->moveToAttribute() - Positions reader on named attribute

  • XMLReader->moveToAttributeNo() - Positions reader on attribute by index

  • XMLReader->moveToAttributeNs() - Position reader on attribute by name and URI

  • XMLReader->moveToElement() - Move to parent element of current attribute node

  • XMLReader->moveToFirstAttribute() - Move to first attribute of node

  • XMLReader->moveToNextAttribute() - Move to next attribute of node

  • XMLReader->next() - Move to next element skipping children

  • XMLReader->open() - Set URI to be parsed

  • XMLReader->read() - Move to next node in stream

  • XMLReader->setParserProperty() - Set parser property

  • XMLReader->setRelaxNGSchema() - Set URI of RelaxNG schema to validate against

  • XMLReader->setRelaxNGSchemaSource() - Set string containing RelaxNG schema to validate against

  • XMLReader->XML() - Set string of data to be parsed

Свойства

Таблица 1.

Name | Type | Read-only | Description
attributeCount | int | yes | The number of attributes on the node
baseURI | string | yes | The base URI of the node
depth | int | yes | Depth of the node in the tree starting at 0
hasAttributes | bool | yes | Indicates if node has attributes
hasValue | bool | yes | Indicates if node has a text value
isDefault | bool | yes | Indicates if attribute is defaulted from DTD
isEmptyElement | bool | yes | Indicates if node is an empty element tag
localName | string | yes | The local name of the node
name | string | yes | The qualified name of the node
namespaceURI | string | yes | The URI of the namespace associated with the node
nodeType | int | yes | The node type for the node
prefix | string | yes | The prefix of the namespace associated with the node
value | string | yes | The text value of the node
xmlLang | string | yes | The xml:lang scope which the node resides

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

Таблица 2. XMLReader Node Types

Constant | Value | Description
XMLREADER_NONE (integer) | 0 | No node type
XMLREADER_ELEMENT (integer) | 1 | Start element
XMLREADER_ATTRIBUTE (integer) | 2 | Attribute node
XMLREADER_TEXT (integer) | 3 | Text node
XMLREADER_CDATA (integer) | 4 | CDATA node
XMLREADER_ENTITY_REF (integer) | 5 | Entity Reference node
XMLREADER_ENTITY (integer) | 6 | Entity Declaration node
XMLREADER_PI (integer) | 7 | Processing Instruction node
XMLREADER_COMMENT (integer) | 8 | Comment node
XMLREADER_DOC (integer) | 9 | Document node
XMLREADER_DOC_TYPE (integer) | 10 | Document Type node
XMLREADER_DOC_FRAGMENT (integer) | 11 | Document Fragment node
XMLREADER_NOTATION (integer) | 12 | Notation node
XMLREADER_WHITESPACE (integer) | 13 | Whitespace node
XMLREADER_SIGNIFICANT_WHITESPACE (integer) | 14 | Significant Whitespace node
XMLREADER_END_ELEMENT (integer) | 15 | End Element
XMLREADER_END_ENTITY (integer) | 16 | End Entity
XMLREADER_XML_DECLARATION (integer) | 17 | XML Declaration node

Таблица 3. XMLReader Parser Options

Constant | Value | Description
XMLREADER_LOADDTD (integer) | 1 | Load DTD but do not validate
XMLREADER_DEFAULTATTRS (integer) | 2 | Load DTD and default attributes but do not validate
XMLREADER_VALIDATE (integer) | 3 | Load DTD and validate while parsing
XMLREADER_SUBST_ENTITIES (integer) | 4 | Subsitute entities and expand references
Содержание
XMLReader->close() -- Close the XMLReader input
XMLReader->expand() -- Returns a copy of the current node as a DOM object
XMLReader->getAttribute() -- Get the value of a named attribute
XMLReader->getAttributeNo() -- Get the value of an attribute by index
XMLReader->getAttributeNS() -- Get the value of an attribute by localname and URI
XMLReader->getParserProperty() -- Indicates if specified property has been set
XMLReader->isValid() -- Indicates if the parsed document is valid
XMLReader->lookupNamespace() -- Lookup namespace for a prefix
XMLReader->moveToAttribute() -- Move cursor to a named attribute
XMLReader->moveToAttributeNo() -- Move cursor to an attribute by index
XMLReader->moveToAttributeNs() -- Move cursor to a named attribute
XMLReader->moveToElement() -- Position cursor on the parent Element of current Attribute
XMLReader->moveToFirstAttribute() -- Position cursor on the first Attribute
XMLReader->moveToNextAttribute() -- Position cursor on the next Attribute
XMLReader->next() -- Move cursor to next node skipping all subtrees
XMLReader->open() -- Set the URI containing the XML to parse
XMLReader->read() -- Move to next node in document
XMLReader->setParserProperty() -- Set or Unset parser options
XMLReader->setRelaxNGSchema() -- Set the filename or URI for a RelaxNG Schema
XMLReader->setRelaxNGSchemaSource() -- Set the data containing a RelaxNG Schema
XMLReader->XML() -- Set the data containing the XML to parse

Пред. | Начало | След.
xmlrpc_set_type | Уровень выше | XMLReader->close()


Объявленные в ядре константы

(no version information, might be only in CVS)

Объявленные в ядре константы -- Константы, объявленные в ядре PHP, Zend, и SAPI-модулях

Описание

Нижеописанные константы объявляются ядром PHP и охватывают PHP, Zend engine и SAPI-модули.

PHP_VERSION (строка)

PHP_OS (строка)

DEFAULT_INCLUDE_PATH (строка)

PEAR_INSTALL_DIR (строка)

PEAR_EXTENSION_DIR (строка)

PHP_EXTENSION_DIR (строка)

PHP_BINDIR (строка)

PHP_LIBDIR (строка)

PHP_DATADIR (строка)

PHP_SYSCONFDIR (строка)

PHP_LOCALSTATEDIR (строка)

PHP_CONFIG_FILE_PATH (строка)

PHP_OUTPUT_HANDLER_START (целое)

PHP_OUTPUT_HANDLER_CONT (целое)

PHP_OUTPUT_HANDLER_END (целое)

E_ERROR (строка)

E_WARNING (целое)

E_PARSE (целое)

E_NOTICE (целое)

E_CORE_ERROR (целое)

E_CORE_WARNING (целое)

E_COMPILE_ERROR (целое)

E_COMPILE_WARNING (целое)

E_USER_ERROR (целое)

E_USER_WARNING (целое)

E_USER_NOTICE (целое)

E_ALL (целое)

Пред. | Начало | След.
Предопределенные константы | Уровень выше | Стандартные константы


Стандартные константы

(no version information, might be only in CVS)

Стандартные константы -- Константы, объявленные в PHP по умолчанию

Описание

Эти константы объявлены в PHP по умолчанию.

EXTR_OVERWRITE (integer)

EXTR_SKIP (integer)

EXTR_PREFIX_SAME (integer)

EXTR_PREFIX_ALL (integer)

EXTR_PREFIX_INVALID (integer)

EXTR_PREFIX_IF_EXISTS (integer)

EXTR_IF_EXISTS (integer)

SORT_ASC (integer)

SORT_DESC (integer)

SORT_REGULAR (integer)

SORT_NUMERIC (integer)

SORT_STRING (integer)

CASE_LOWER (integer)

CASE_UPPER (integer)

COUNT_NORMAL (integer)

COUNT_RECURSIVE (integer)

ASSERT_ACTIVE (integer)

ASSERT_CALLBACK (integer)

ASSERT_BAIL (integer)

ASSERT_WARNING (integer)

ASSERT_QUIET_EVAL (integer)

CONNECTION_ABORTED (integer)

CONNECTION_NORMAL (integer)

CONNECTION_TIMEOUT (integer)

INI_USER (integer)

INI_PERDIR (integer)

INI_SYSTEM (integer)

INI_ALL (integer)

M_E (число с плавающей точкой)

M_LOG2E (число с плавающей точкой)

M_LOG10E (число с плавающей точкой)

M_LN2 (число с плавающей точкой)

M_LN10 (число с плавающей точкой)

M_PI (число с плавающей точкой)

M_PI_2 (число с плавающей точкой)

M_PI_4 (число с плавающей точкой)

M_1_PI (число с плавающей точкой)

M_2_PI (число с плавающей точкой)

M_2_SQRTPI (число с плавающей точкой)

M_SQRT2 (число с плавающей точкой)

M_SQRT1_2 (число с плавающей точкой)

CRYPT_SALT_LENGTH (integer)

CRYPT_STD_DES (integer)

CRYPT_EXT_DES (integer)

CRYPT_MD5 (integer)

CRYPT_BLOWFISH (integer)

DIRECTORY_SEPARATOR (integer)

SEEK_SET (integer)

SEEK_CUR (integer)

SEEK_END (integer)

LOCK_SH (integer)

LOCK_EX (integer)

LOCK_UN (integer)

LOCK_NB (integer)

HTML_SPECIALCHARS (integer)

HTML_ENTITIES (integer)

ENT_COMPAT (integer)

ENT_QUOTES (integer)

ENT_NOQUOTES (integer)

INFO_GENERAL (integer)

INFO_CREDITS (integer)

INFO_CONFIGURATION (integer)

INFO_MODULES (integer)

INFO_ENVIRONMENT (integer)

INFO_VARIABLES (integer)

INFO_LICENSE (integer)

INFO_ALL (integer)

CREDITS_GROUP (integer)

CREDITS_GENERAL (integer)

CREDITS_SAPI (integer)

CREDITS_MODULES (integer)

CREDITS_DOCS (integer)

CREDITS_FULLPAGE (integer)

CREDITS_QA (integer)

CREDITS_ALL (integer)

STR_PAD_LEFT (integer)

STR_PAD_RIGHT (integer)

STR_PAD_BOTH (integer)

PATHINFO_DIRNAME (integer)

PATHINFO_BASENAME (integer)

PATHINFO_EXTENSION (integer)

CHAR_MAX (integer)

LC_CTYPE (integer)

LC_NUMERIC (integer)

LC_TIME (integer)

LC_COLLATE (integer)

LC_MONETARY (integer)

LC_ALL (integer)

LC_MESSAGES (integer)

ABDAY_1 (integer)

ABDAY_2 (integer)

ABDAY_3 (integer)

ABDAY_4 (integer)

ABDAY_5 (integer)

ABDAY_6 (integer)

ABDAY_7 (integer)

DAY_1 (integer)

DAY_2 (integer)

DAY_3 (integer)

DAY_4 (integer)

DAY_5 (integer)

DAY_6 (integer)

DAY_7 (integer)

ABMON_1 (integer)

ABMON_2 (integer)

ABMON_3 (integer)

ABMON_4 (integer)

ABMON_5 (integer)

ABMON_6 (integer)

ABMON_7 (integer)

ABMON_8 (integer)

ABMON_9 (integer)

ABMON_10 (integer)

ABMON_11 (integer)

ABMON_12 (integer)

MON_1 (integer)

MON_2 (integer)

MON_3 (integer)

MON_4 (integer)

MON_5 (integer)

MON_6 (integer)

MON_7 (integer)

MON_8 (integer)

MON_9 (integer)

MON_10 (integer)

MON_11 (integer)

MON_12 (integer)

AM_STR (integer)

PM_STR (integer)

D_T_FMT (integer)

D_FMT (integer)

T_FMT (integer)

T_FMT_AMPM (integer)

ERA (integer)

ERA_YEAR (integer)

ERA_D_T_FMT (integer)

ERA_D_FMT (integer)

ERA_T_FMT (integer)

ALT_DIGITS (integer)

INT_CURR_SYMBOL (integer)

CURRENCY_SYMBOL (integer)

CRNCYSTR (integer)

MON_DECIMAL_POINT (integer)

MON_THOUSANDS_SEP (integer)

MON_GROUPING (integer)

POSITIVE_SIGN (integer)

NEGATIVE_SIGN (integer)

INT_FRAC_DIGITS (integer)

FRAC_DIGITS (integer)

P_CS_PRECEDES (integer)

P_SEP_BY_SPACE (integer)

N_CS_PRECEDES (integer)

N_SEP_BY_SPACE (integer)

P_SIGN_POSN (integer)

N_SIGN_POSN (integer)

DECIMAL_POINT (integer)

RADIXCHAR (integer)

THOUSANDS_SEP (integer)

THOUSEP (integer)

GROUPING (integer)

YESEXPR (integer)

NOEXPR (integer)

YESSTR (integer)

NOSTR (integer)

CODESET (integer)

LOG_EMERG (integer)

LOG_ALERT (integer)

LOG_CRIT (integer)

LOG_ERR (integer)

LOG_WARNING (integer)

LOG_NOTICE (integer)

LOG_INFO (integer)

LOG_DEBUG (integer)

LOG_KERN (integer)

LOG_USER (integer)

LOG_MAIL (integer)

LOG_DAEMON (integer)

LOG_AUTH (integer)

LOG_SYSLOG (integer)

LOG_LPR (integer)

LOG_NEWS (integer)

LOG_UUCP (integer)

LOG_CRON (integer)

LOG_AUTHPRIV (integer)

LOG_LOCAL0 (integer)

LOG_LOCAL1 (integer)

LOG_LOCAL2 (integer)

LOG_LOCAL3 (integer)

LOG_LOCAL4 (integer)

LOG_LOCAL5 (integer)

LOG_LOCAL6 (integer)

LOG_LOCAL7 (integer)

LOG_PID (integer)

LOG_CONS (integer)

LOG_ODELAY (integer)

LOG_NDELAY (integer)

LOG_NOWAIT (integer)

LOG_PERROR (integer)

Пред. | Начало | След.
Объявленные в ядре константы | Уровень выше | List of Resource Types


Runkit_Sandbox

(no version information, might be only in CVS)

Runkit_Sandbox -- Runkit Sandbox Class -- PHP Virtual Machine

Описание

Instantiating the Runkit_Sandbox class creates a new thread with its own scope and program stack. Using a set of options passed to the constructor, this environment may be restricted to a subset of what the primary interpreter can do and provide a safer environment for executing user supplied code.

Замечание: Sandbox support (required for runkit_lint(), runkit_lint_file(), and the Runkit_Sandbox class) is only available with PHP 5.1 or specially patched versions of PHP 5.0 and requires that thread safety be enabled. See the README file included in the runkit package for more information.

Constructor

void Runkit_Sandbox::__construct ( [array options] )

options is an associative array containing any combination of the special ini options listed below.

safe_mode

If the outer script which is instantiating the Runkit_Sandbox class is configured with safe_mode = off, then safe_mode may be turned on for the sandbox environment. This setting can not be used to disable safe_mode when it's already enabled in the outer script.

safe_mode_gid

If the outer script which is instantiating the Runkit_Sandbox class is configured with safe_mode_gid = on, then safe_mode_gid may be turned off for the sandbox environment. This setting can not be used to enable safe_mode_gid when it's already disabled in the outer script.

safe_mode_include_dir

If the outer script which is instantiating the Runkit_Sandbox class is configured with a safe_mode_include_dir, then a new safe_mode_include_dir may be set for sandbox environments below the currently defined value. safe_mode_include_dir may also be cleared to indicate that the bypass feature is disabled. If safe_mode_include_dir was blank in the outer script, but safe_mode was not enabled, then any arbitrary safe_mode_include_dir may be set while turning safe_mode on.

open_basedir

open_basedir may be set to any path below the current setting of open_basedir. If open_basedir is not set within the global scope, then it is assumed to be the root directory and may be set to any location.

allow_url_fopen

Like safe_mode, this setting can only be made more restrictive, in this case by setting it to FALSE when it is previously set to TRUE

disable_functions

Comma separated list of functions to disable within the sandbox sub-interpreter. This list need not contain the names of the currently disabled functions, they will remain disabled whether listed here or not.

disable_classes

Comma separated list of classes to disable within the sandbox sub-interpreter. This list need not contain the names of the currently disabled classes, they will remain disabled whether listed here or not.

runkit.superglobal

Comma separated list of variables to be treated as superglobals within the sandbox sub-interpreter. These variables will be used in addition to any variables defined internally or through the global runkit.superglobal setting.

runkit.internal_override

Ini option runkit.internal_override may be disabled (but not re-enabled) within sandboxes.

Пример 1. Instantiating a restricted sandbox

<?php
$options = array(
  'safe_mode'=>true,
  'open_basedir'=>'/var/www/users/jdoe/',
  'allow_url_fopen'=>'false',
  'disable_functions'=>'exec,shell_exec,passthru,system',
  'disable_classes'=>'myAppClass');
$sandbox = new Runkit_Sandbox($options);
/* Non-protected ini settings may set normally */
$sandbox->ini_set('html_errors',true);
?>

Accessing Variables

All variables in the global scope of the sandbox environment are accessible as properties of the sandbox object. The first thing to note is that because of the way memory between these two threads is managed, object and resource variables can not currently be exchanged between interpreters. Additionally, all arrays are deep copied and any references will be lost. This also means that references between interpreters are not possible.

Пример 2. Working with variables in a sandbox

<?php
$sandbox = new Runkit_Sandbox();

$sandbox->foo = 'bar';
$sandbox->eval('echo "$foo\n"; $bar = $foo . "baz";');
echo "{$sandbox->bar}\n";
if (isset($sandbox->foo)) unset($sandbox->foo);
$sandbox->eval('var_dump(isset($foo));');
?>

Результат выполнения данного примера:

bar
barbaz
bool(false)

Calling PHP Functions

Any function defined within the sandbox may be called as
a method on the sandbox object.  This also includes a few
pseudo-function language constructs:  eval(),
include(), include_once(),
require(), require_once(),
echo(), print(),
die(), and exit().

Пример 3. Calling sandbox functions

<?php
$sandbox = new Runkit_Sandbox();

echo $sandbox->str_replace('a','f','abc');
?>

Результат выполнения данного примера:

fbc

When passing arguments to a sandbox function, the arguments are taken from the outer instance of PHP. If you wish to pass arguments from the sandbox's scope, be sure to access them as properties of the sandbox object as illustrated above.

Пример 4. Passing arguments to sandbox functions

<?php
$sandbox = new Runkit_Sandbox();

$foo = 'bar';
$sandbox->foo = 'baz';
echo $sandbox->str_replace('a',$foo,'a');
echo $sandbox->str_replace('a',$sandbox->foo,'a');
?>

Результат выполнения данного примера:

bar
baz

Changing Sandbox Settings

As of runkit version 0.5, certain Sandbox settings may be modified on the fly using ArrayAccess syntax. Some settings, such as active are read-only and meant to provide status information. Other settings, such as output_handler may be set and read much like a normal array offset. Future settings may be write-only, however no such settings currently exist.

Таблица 1. Sandbox Settings / Status Indicators

Setting | Type | Purpose | Default
active | Boolean (Read Only) | TRUE if the Sandbox is still in a usable state, FALSE if the request is in bailout due to a call to die(), exit(), or because of a fatal error condition. | TRUE (Initial)
output_handler | Callback | When set to a valid callback, all output generated by the Sandbox instance will be processed through the named function. Sandbox output handlers follow the same calling conventions as the system-wide output handler. | None
parent_access | Boolean | May the sandbox use instances of the Runkit_Sandbox_Parent class? Must be enabled for other Runkit_Sandbox_Parent related settings to work. | FALSE
parent_read | Boolean | May the sandbox read variables in its parent's context? | FALSE
parent_write | Boolean | May the sandbox modify variables in its parent's context? | FALSE
parent_eval | Boolean | May the sandbox evaluate arbitrary code in its parent's context? DANGEROUS | FALSE
parent_include | Boolean | May the sandbox include php code files in its parent's context? DANGEROUS | FALSE
parent_echo | Boolean | May the sandbox echo data in its parent's context effectively bypassing its own output_handler? | FALSE
parent_call | Boolean | May the sandbox call functions in its parent's context? | FALSE
parent_die | Boolean | May the sandbox kill its own parent? (And thus itself) | FALSE
parent_scope | Integer | What scope will parental property access look at? 0 == Global scope, 1 == Calling scope, 2 == Scope preceeding calling scope, 3 == The scope before that, etc..., etc... | 0 (Global)
parent_scope | String | When parent_scope is set to a string value, it refers to a named array variable in the global scope. If the named variable does not exist at the time of access it will be created as an empty array. If the variable exists but it not an array, a dummy array will be created containing a reference to the named global variable. |

Пред. | Начало | След.
runkit Functions | Уровень выше | Runkit_Sandbox_Parent


Runkit_Sandbox_Parent

(no version information, might be only in CVS)

Runkit_Sandbox_Parent -- Runkit Anti-Sandbox Class

Описание

void Runkit_Sandbox_Parent::__construct ( void )

Instantiating the Runkit_Sandbox_Parent class from within a sandbox environment created from the Runkit_Sandbox class provides some (controlled) means for a sandbox child to access its parent.

Замечание: Sandbox support (required for runkit_lint(), runkit_lint_file(), and the Runkit_Sandbox class) is only available with PHP 5.1 or specially patched versions of PHP 5.0 and requires that thread safety be enabled. See the README file included in the runkit package for more information.

In order for any of the Runkit_Sandbox_Parent features to function. Support must be enabled on a per-sandbox basis by enabling the parent_access flag from the parent's context.

Пример 1. Working with variables in a sandbox

<?php
$sandbox = new Runkit_Sandbox();
$sandbox['parent_access'] = true;

Accessing the Parent's Variables

Just as with sandbox variable access, a sandbox parent's variables may be read from and written to as properties of the Runkit_Sandbox_Parent class. Read access to parental variables may be enabled with the parent_read setting (in addition to the base parent_access setting). Write access, in turn, is enabled through the parent_write setting.

Unlike sandbox child variable access, the variable scope is not limited to globals only. By setting the parent_scope setting to an appropriate integer value, other scopes in the active call stack may be inspected instead. A value of 0 (Default) will direct variable access at the global scope. 1 will point variable access at whatever variable scope was active at the time the current block of sandbox code was executed. Higher values progress back through the functions that called the functions that led to the sandbox executing code that tried to access its own parent's variables.

Пример 2. Accessing parental variables

<?php
$php = new Runkit_Sandbox();
$php['parent_access'] = true;
$php['parent_read'] = true;

$test = "Global";

$php->eval('$PARENT = new Runkit_Sandbox_Parent;');

$php['parent_scope'] = 0;
one();

$php['parent_scope'] = 1;
one();

$php['parent_scope'] = 2;
one();

$php['parent_scope'] = 3;
one();

$php['parent_scope'] = 4;
one();

$php['parent_scope'] = 5;
one();

function one() {
    $test = "one()";
    two();
}

function two() {
    $test = "two()";
    three();
}

function three() {
    $test = "three()";
    $GLOBALS['php']->eval('var_dump($PARENT->test);');
}
?>

Результат выполнения данного примера:

string(6) "Global"
string(7) "three()"
string(5) "two()"
string(5) "one()"
string(6) "Global"
string(6) "Global"

Calling the Parent's Functions

Just as with sandbox access, a sandbox may access its parents functions providing that the proper settings have been enabled. Enabling parent_call will allow the sandbox to call all functions available to the parent scope. Language constructs are each controlled by their own setting: print() and echo() are enabled with parent_echo. die() and exit() are enabled with parent_die. eval() is enabled with parent_eval while include(), include_once(), require(), and require_once() are enabled through parent_include.

Пред. | Начало | След.
Runkit_Sandbox | Уровень выше | runkit_class_adopt


Streams Common API Reference

Содержание
php_stream_stat_path -- Gets the status for a file or URL
php_stream_stat -- Gets the status for the underlying storage associated with a stream
php_stream_open_wrapper -- Opens a stream on a file or URL
php_stream_read -- Read a number of bytes from a stream into a buffer
php_stream_write -- Write a number of bytes from a buffer to a stream
php_stream_eof -- Check for an end-of-file condition on a stream
php_stream_getc -- Read a single byte from a stream
php_stream_gets -- Read a line of data from a stream into a buffer
php_stream_close -- Close a stream
php_stream_flush -- Flush stream buffers to storage
php_stream_seek -- Reposition a stream
php_stream_tell -- Determine the position of a stream
php_stream_copy_to_stream -- Copy data from one stream to another
php_stream_copy_to_mem -- Copy data from stream and into an allocated buffer
php_stream_make_seekable -- Convert a stream into a stream is seekable
php_stream_cast -- Convert a stream into another form, such as a FILE* or socket
php_stream_can_cast -- Determines if a stream can be converted into another form, such as a FILE* or socket
php_stream_is_persistent -- Determines if a stream is a persistent stream
php_stream_is -- Determines if a stream is of a particular type
php_stream_passthru -- Outputs all remaining data from a stream
php_register_url_stream_wrapper -- Registers a wrapper with the Streams API
php_unregister_url_stream_wrapper -- Unregisters a wrapper from the Streams API
php_stream_open_wrapper_ex -- Opens a stream on a file or URL, specifying context
php_stream_open_wrapper_as_file -- Opens a stream on a file or URL, and converts to a FILE*
php_stream_filter_register_factory -- Registers a filter factory with the Streams API
php_stream_filter_unregister_factory -- Deregisters a filter factory with the Streams API

Пред. | Начало | След.
Streams as Resources | Уровень выше | php_stream_stat_path


Stream open options

(no version information, might be only in CVS)

Stream open options -- Affects the operation of stream factory functions

Description

One or more of these values can be combined using the OR operator.

IGNORE_PATH

This is the default option for streams; it requests that the include_path is not to be searched for the requested file.

USE_PATH

Requests that the include_path is to be searched for the requested file.

IGNORE_URL

Requests that registered URL wrappers are to be ignored when opening the stream. Other non-URL wrappers will be taken into consideration when decoding the path. There is no opposite form for this flag; the streams API will use all registered wrappers by default.

IGNORE_URL_WIN

On Windows systems, this is equivalent to IGNORE_URL. On all other systems, this flag has no effect.

ENFORCE_SAFE_MODE

Requests that the underlying stream implementation perform safe_mode checks on the file before opening the file. Omitting this flag will skip safe_mode checks and allow opening of any file that the PHP process has rights to access.

REPORT_ERRORS

If this flag is set, and there was an error during the opening of the file or URL, the streams API will call the php_error function for you. This is useful because the path may contain username/password information that should not be displayed in the browser output (it would be a security risk to do so). When the streams API raises the error, it first strips username/password information from the path, making the error message safe to display in the browser.

STREAM_MUST_SEEK

This flag is useful when your extension really must be able to randomly seek around in a stream. Some streams may not be seekable in their native form, so this flag asks the streams API to check to see if the stream does support seeking. If it does not, it will copy the stream into temporary storage (which may be a temporary file or a memory stream) which does support seeking. Please note that this flag is not useful when you want to seek the stream and write to it, because the stream you are accessing might not be bound to the actual resource you requested.

Замечание: If the requested resource is network based, this flag will cause the opener to block until the whole contents have been downloaded.

STREAM_WILL_CAST

If your extension is using a third-party library that expects a FILE* or file descriptor, you can use this flag to request the streams API to open the resource but avoid buffering. You can then use php_stream_cast() to retrieve the FILE* or file descriptor that the library requires.

The is particularly useful when accessing HTTP URLs where the start of the actual stream data is found after an indeterminate offset into the stream.

Since this option disables buffering at the streams API level, you may experience lower performance when using streams functions on the stream; this is deemed acceptable because you have told streams that you will be using the functions to match the underlying stream implementation. Only use this option when you are sure you need it.

Пред. | Начало | След.
Streams Constants | Уровень выше | PDO Driver How-To


php_register_url_stream_wrapper

(no version information, might be only in CVS)

php_register_url_stream_wrapper -- Registers a wrapper with the Streams API

Description

int php_register_url_stream_wrapper ( char * protocol, php_stream_wrapper * wrapper, TSRMLS_DC )

php_register_url_stream_wrapper() registers wrapper as the handler for the protocol specified by protocol.

Замечание: If you call this function from a loadable module, you *MUST* call php_unregister_url_stream_wrapper() in your module shutdown function, otherwise PHP will crash.

Пред. | Начало | След.
php_stream_passthru | Уровень выше | php_unregister_url_stream_wrapper


php_stream_can_cast

(no version information, might be only in CVS)

php_stream_can_cast -- Determines if a stream can be converted into another form, such as a FILE* or socket

Description

int php_stream_can_cast ( php_stream * stream, int castas )

This function is equivalent to calling php_stream_cast() with ret set to NULL and flags set to 0. It returns SUCCESS if the stream can be converted into the form requested, or FAILURE if the conversion cannot be performed.

Замечание: Although this function will not perform the conversion, some internal stream state *might* be changed by this call.

Замечание: You must explicitly compare the return value of this function with one of the constants, as described in php_stream_cast().

See also php_stream_cast() and php_stream_is().

Пред. | Начало | След.
php_stream_cast | Уровень выше | php_stream_is_persistent


php_stream_cast

(no version information, might be only in CVS)

php_stream_cast -- Convert a stream into another form, such as a FILE* or socket

Description

int php_stream_cast ( php_stream * stream, int castas, void ** ret, int flags )

php_stream_cast() attempts to convert stream into a resource indicated by castas. If ret is NULL, the stream is queried to find out if such a conversion is possible, without actually performing the conversion (however, some internal stream state *might* be changed in this case). If flags is set to REPORT_ERRORS, an error message will be displayed is there is an error during conversion.

Замечание: This function returns SUCCESS for success or FAILURE for failure. Be warned that you must explicitly compare the return value with SUCCESS or FAILURE because of the underlying values of those constants. A simple boolean expression will not be interpreted as you intended.

Таблица 44-1. Resource types for castas

Value | Meaning
PHP_STREAM_AS_STDIO | Requests an ANSI FILE* that represents the stream
PHP_STREAM_AS_FD | Requests a POSIX file descriptor that represents the stream
PHP_STREAM_AS_SOCKETD | Requests a network socket descriptor that represents the stream

In addition to the basic resource types above, the conversion process can be altered by using the following flags by using the OR operator to combine the resource type with one or more of the following values:

Таблица 44-2. Resource types for castas

Value | Meaning
PHP_STREAM_CAST_TRY_HARD | Tries as hard as possible, at the expense of additional resources, to ensure that the conversion succeeds
PHP_STREAM_CAST_RELEASE | Informs the streams API that some other code (possibly a third party library) will be responsible for closing the underlying handle/resource. This causes the stream to be closed in such a way the underlying handle is preserved and returned in ret. If this function succeeds, stream should be considered closed and should no longer be used.

Замечание: If your system supports fopencookie() (systems using glibc 2 or later), the streams API will always be able to synthesize an ANSI FILE* pointer over any stream. While this is tremendously useful for passing any PHP stream to any third-party libraries, such behaviour is not portable. You are requested to consider the portability implications before distributing you extension. If the fopencookie synthesis is not desirable, you should query the stream to see if it naturally supports FILE* by using php_stream_is()

Замечание: If you ask a socket based stream for a FILE*, the streams API will use fdopen() to create it for you. Be warned that doing so may cause data that was buffered in the streams layer to be lost if you intermix streams API calls with ANSI stdio calls.

See also php_stream_is() and php_stream_can_cast().

Пред. | Начало | След.
php_stream_make_seekable | Уровень выше | php_stream_can_cast


php_stream_close

(no version information, might be only in CVS)

php_stream_close -- Close a stream

Description

int php_stream_close ( php_stream * stream )

php_stream_close() safely closes stream and releases the resources associated with it. After stream has been closed, it's value is undefined and should not be used.

php_stream_close() returns 0 if the stream was closed or EOF to indicate an error. Regardless of the success of the call, stream is undefined and should not be used after a call to this function.

Пред. | Начало | След.
php_stream_gets | Уровень выше | php_stream_flush


php_stream_closedir

(no version information, might be only in CVS)

php_stream_closedir -- Close a directory stream and release resources

Description

int php_stream_closedir ( php_stream * dirstream )

php_stream_closedir() closes a directory stream and releases resources associated with it. Returns 0 on success, but -1 on failure.

Пред. | Начало | След.
php_stream_rewinddir | Уровень выше | Streams File API Reference


php_stream_copy_to_mem

(no version information, might be only in CVS)

php_stream_copy_to_mem -- Copy data from stream and into an allocated buffer

Description

size_t php_stream_copy_to_mem ( php_stream * src, char ** buf, size_t maxlen, int persistent )

php_stream_copy_to_mem() allocates a buffer maxlen+1 bytes in length using pemalloc() (passing persistent). It then reads maxlen bytes from src and stores them in the allocated buffer.

The allocated buffer is returned in buf, and the number of bytes successfully read. You, the caller, are responsible for freeing the buffer by passing it and persistent to pefree().

If you want to copy all remaining data from the src stream, pass the constant PHP_STREAM_COPY_ALL as the value of maxlen.

Замечание: This function will attempt to copy the data in the most efficient manner, using memory mapped files when possible.

Пред. | Начало | След.
php_stream_copy_to_stream | Уровень выше | php_stream_make_seekable


php_stream_copy_to_stream

(no version information, might be only in CVS)

php_stream_copy_to_stream -- Copy data from one stream to another

Description

size_t php_stream_copy_to_stream ( php_stream * src, php_stream * dest, size_t maxlen )

php_stream_copy_to_stream() attempts to read up to maxlen bytes of data from src and write them to dest, and returns the number of bytes that were successfully copied.

If you want to copy all remaining data from the src stream, pass the constant PHP_STREAM_COPY_ALL as the value of maxlen.

Замечание: This function will attempt to copy the data in the most efficient manner, using memory mapped files when possible.

Пред. | Начало | След.
php_stream_tell | Уровень выше | php_stream_copy_to_mem


php_stream_eof

(no version information, might be only in CVS)

php_stream_eof -- Check for an end-of-file condition on a stream

Description

int php_stream_eof ( php_stream * stream )

php_stream_eof() checks for an end-of-file condition on stream.

php_stream_eof() returns the 1 to indicate EOF, 0 if there is no EOF and -1 to indicate an error.

Пред. | Начало | След.
php_stream_write | Уровень выше | php_stream_getc


php_stream_filter_register_factory

(no version information, might be only in CVS)

php_stream_filter_register_factory -- Registers a filter factory with the Streams API

Description

int php_stream_filter_register_factory ( const char * filterpattern, php_stream_filter_factory * factory )

Use this function to register a filter factory with the name given by filterpattern. filterpattern can be either a normal string name (i.e. myfilter) or a global pattern (i.e. myfilterclass.*) to allow a single filter to perform different operations depending on the exact name of the filter invoked (i.e. myfilterclass.foo, myfilterclass.bar, etc...)

Замечание: Filters registered by a loadable extension must be certain to call php_stream_filter_unregister_factory() during MSHUTDOWN.

Пред. | Начало | След.
php_stream_open_wrapper_as_file | Уровень выше | php_stream_filter_unregister_factory


php_stream_filter_unregister_factory

(no version information, might be only in CVS)

php_stream_filter_unregister_factory -- Deregisters a filter factory with the Streams API

Description

int php_stream_filter_unregister_factory ( const char * filterpattern )

Deregisters the filterfactory specified by the filterpattern making it no longer available for use.

Замечание: Filters registered by a loadable extension must be certain to call php_stream_filter_unregister_factory() during MSHUTDOWN.

Пред. | Начало | След.
php_stream_filter_register_factory | Уровень выше | Streams Dir API Reference


php_stream_flush

(no version information, might be only in CVS)

php_stream_flush -- Flush stream buffers to storage

Description

int php_stream_flush ( php_stream * stream )

php_stream_flush() causes any data held in write buffers in stream to be committed to the underlying storage.

php_stream_flush() returns 0 if the buffers were flushed, or if the buffers did not need to be flushed, but returns EOF to indicate an error.

Пред. | Начало | След.
php_stream_close | Уровень выше | php_stream_seek


php_stream_fopen_from_file

(no version information, might be only in CVS)

php_stream_fopen_from_file -- Convert an ANSI FILE* into a stream

Description

php_stream * php_stream_fopen_from_file ( FILE * file, char * mode )

php_stream_fopen_from_file() returns a stream based on the file. mode must be the same as the mode used to open file, otherwise strange errors may occur when trying to write when the mode of the stream is different from the mode on the file.

Пред. | Начало | След.
Streams File API Reference | Уровень выше | php_stream_fopen_tmpfile


php_stream_fopen_temporary_file

(no version information, might be only in CVS)

php_stream_fopen_temporary_file -- Generate a temporary file name and open a stream on it

Description

php_stream * php_stream_fopen_temporary_file ( const char * dir, const char * pfx, char ** opened )

php_stream_fopen_temporary_file() generates a temporary file name in the directory specified by dir and with a prefix of pfx. The generated file name is returns in the opened parameter, which you are responsible for cleaning up using efree(). A stream is opened on that generated filename in "w+b" mode. The file is NOT automatically deleted; you are responsible for unlinking or moving the file when you have finished with it.

Пред. | Начало | След.
php_stream_fopen_tmpfile | Уровень выше | Streams Socket API Reference


php_stream_fopen_tmpfile

(no version information, might be only in CVS)

php_stream_fopen_tmpfile -- Open a FILE* with tmpfile() and convert into a stream

Description

php_stream * php_stream_fopen_tmpfile ( void )

php_stream_fopen_tmpfile() returns a stream based on a temporary file opened with a mode of "w+b". The temporary file will be deleted automatically when the stream is closed or the process terminates.

Пред. | Начало | След.
php_stream_fopen_from_file | Уровень выше | php_stream_fopen_temporary_file


php_stream_getc

(no version information, might be only in CVS)

php_stream_getc -- Read a single byte from a stream

Description

int php_stream_getc ( php_stream * stream )

php_stream_getc() reads a single character from stream and returns it as an unsigned char cast as an int, or EOF if the end-of-file is reached, or an error occurred.

php_stream_getc() may block in the same way as php_stream_read() blocks.

The internal position of the stream is advanced by 1 if successful.

Пред. | Начало | След.
php_stream_eof | Уровень выше | php_stream_gets


php_stream_gets

(no version information, might be only in CVS)

php_stream_gets -- Read a line of data from a stream into a buffer

Description

char * php_stream_gets ( php_stream * stream, char * buf, size_t maxlen )

php_stream_gets() reads up to count-1 bytes of data from stream and copies them into the buffer buf. Reading stops after an EOF or a newline. If a newline is read, it is stored in buf as part of the returned data. A NUL terminating character is stored as the last character in the buffer.

php_stream_read() returns buf when successful or NULL otherwise.

The internal position of the stream is advanced by the number of bytes that were read, so that subsequent reads will continue reading from that point.

This function may block in the same way as php_stream_read().

Пред. | Начало | След.
php_stream_getc | Уровень выше | php_stream_close


php_stream_is

(no version information, might be only in CVS)

php_stream_is -- Determines if a stream is of a particular type

Description

int php_stream_is ( php_stream * stream, int istype )

php_stream_is() returns 1 if stream is of the type specified by istype, or 0 otherwise.

Таблица 44-1. Values for istype

Value | Meaning
PHP_STREAM_IS_STDIO | The stream is implemented using the stdio implementation
PHP_STREAM_IS_SOCKET | The stream is implemented using the network socket implementation
PHP_STREAM_IS_USERSPACE | The stream is implemented using the userspace object implementation
PHP_STREAM_IS_MEMORY | The stream is implemented using the grow-on-demand memory stream implementation

Замечание: The PHP_STREAM_IS_XXX "constants" are actually defined as pointers to the underlying stream operations structure. If your extension (or some other extension) defines additional streams, it should also declare a PHP_STREAM_IS_XXX constant in it's header file that you can use as the basis of this comparison.

Замечание: This function is implemented as a simple (and fast) pointer comparison, and does not change the stream state in any way.

See also php_stream_cast() and php_stream_can_cast().

Пред. | Начало | След.
php_stream_is_persistent | Уровень выше | php_stream_passthru


php_stream_is_persistent

(no version information, might be only in CVS)

php_stream_is_persistent -- Determines if a stream is a persistent stream

Description

int php_stream_is_persistent ( php_stream * stream )

php_stream_is_persistent() returns 1 if the stream is a persistent stream, 0 otherwise.

Пред. | Начало | След.
php_stream_can_cast | Уровень выше | php_stream_is


php_stream_make_seekable

(no version information, might be only in CVS)

php_stream_make_seekable -- Convert a stream into a stream is seekable

Description

int php_stream_make_seekable ( php_stream * origstream, php_stream ** newstream, int flags )

php_stream_make_seekable() checks if origstream is seekable. If it is not, it will copy the data into a new temporary stream. If successful, newstream is always set to the stream that is valid to use, even if the original stream was seekable.

flags allows you to specify your preference for the seekable stream that is returned: use PHP_STREAM_NO_PREFERENCE to use the default seekable stream (which uses a dynamically expanding memory buffer, but switches to temporary file backed storage when the stream size becomes large), or use PHP_STREAM_PREFER_STDIO to use "regular" temporary file backed storage.

Таблица 44-1. php_stream_make_seekable() return values

Value | Meaning
PHP_STREAM_UNCHANGED | Original stream was seekable anyway. newstream is set to the value of origstream.
PHP_STREAM_RELEASED | Original stream was not seekable and has been released. newstream is set to the new seekable stream. You should not access origstream anymore.
PHP_STREAM_FAILED | An error occurred while attempting conversion. newstream is set to NULL; origstream is still valid.
PHP_STREAM_CRITICAL | An error occurred while attempting conversion that has left origstream in an indeterminate state. newstream is set to NULL and it is highly recommended that you close origstream.

Замечание: If you need to seek and write to the stream, it does not make sense to use this function, because the stream it returns is not guaranteed to be bound to the same resource as the original stream.

Замечание: If you only need to seek forwards, there is no need to call this function, as the streams API will emulate forward seeks when the whence parameter is SEEK_CUR.

Замечание: If origstream is network based, this function will block until the whole contents have been downloaded.

Замечание: NEVER call this function with an origstream that is reference by a file pointer in a PHP script! This function may cause the underlying stream to be closed which could cause a crash when the script next accesses the file pointer!

Замечание: In many cases, this function can only succeed when origstream is a newly opened stream with no data buffered in the stream layer. For that reason, and because this function is complicated to use correctly, it is recommended that you use php_stream_open_wrapper() and pass in PHP_STREAM_MUST_SEEK in your options instead of calling this function directly.

Пред. | Начало | След.
php_stream_copy_to_mem | Уровень выше | php_stream_cast


php_stream_open_wrapper

(no version information, might be only in CVS)

php_stream_open_wrapper -- Opens a stream on a file or URL

Description

php_stream * php_stream_open_wrapper ( char * path, char * mode, int options, char ** opened )

php_stream_open_wrapper() opens a stream on the file, URL or other wrapped resource specified by path. Depending on the value of mode, the stream may be opened for reading, writing, appending or combinations of those. See the table below for the different modes that can be used; in addition to the characters listed below, you may include the character 'b' either as the second or last character in the mode string. The presence of the 'b' character informs the relevant stream implementation to open the stream in a binary safe mode.

The 'b' character is ignored on all POSIX conforming systems which treat binary and text files in the same way. It is a good idea to specify the 'b' character whenever your stream is accessing data where the full 8 bits are important, so that your code will work when compiled on a system where the 'b' flag is important.

Any local files created by the streams API will have their initial permissions set according to the operating system defaults - under Unix based systems this means that the umask of the process will be used. Under Windows, the file will be owned by the creating process. Any remote files will be created according to the URL wrapper that was used to open the file, and the credentials supplied to the remote server.

r

Open text file for reading. The stream is positioned at the beginning of the file.

r+

Open text file for reading and writing. The stream is positioned at the beginning of the file.

w

Truncate the file to zero length or create text file for writing. The stream is positioned at the beginning of the file.

w+

Open text file for reading and writing. The file is created if it does not exist, otherwise it is truncated. The stream is positioned at the beginning of the file.

a

Open for writing. The file is created if it does not exist. The stream is positioned at the end of the file.

a+

Open text file for reading and writing. The file is created if it does not exist. The stream is positioned at the end of the file.

options affects how the path/URL of the stream is interpreted, safe mode checks and actions taken if there is an error during opening of the stream. See Stream open options for more information about options.

If opened is not NULL, it will be set to a string containing the name of the actual file/resource that was opened. This is important when the options include USE_PATH, which causes the include_path to be searched for the file. You, the caller, are responsible for calling efree() on the filename returned in this parameter.

Замечание: If you specified STREAM_MUST_SEEK in options, the path returned in opened may not be the name of the actual stream that was returned to you. It will, however, be the name of the original resource from which the seekable stream was manufactured.

Пред. | Начало | След.
php_stream_stat | Уровень выше | php_stream_read


php_stream_open_wrapper_as_file

(no version information, might be only in CVS)

php_stream_open_wrapper_as_file -- Opens a stream on a file or URL, and converts to a FILE*

Description

FILE * php_stream_open_wrapper_as_file ( char * path, char * mode, int options, char ** opened )

php_stream_open_wrapper_as_file() is exactly like php_stream_open_wrapper(), but converts the stream into an ANSI stdio FILE* and returns that instead of the stream. This is a convenient shortcut for extensions that pass FILE* to third-party libraries.

Пред. | Начало | След.
php_stream_open_wrapper_ex | Уровень выше | php_stream_filter_register_factory


php_stream_open_wrapper_ex

(no version information, might be only in CVS)

php_stream_open_wrapper_ex -- Opens a stream on a file or URL, specifying context

Description

php_stream * php_stream_open_wrapper_ex ( char * path, char * mode, int options, char ** opened, php_stream_context * context )

php_stream_open_wrapper_ex() is exactly like php_stream_open_wrapper(), but allows you to specify a php_stream_context object using context. To find out more about stream contexts, see Stream Contexts.

Пред. | Начало | След.
php_unregister_url_stream_wrapper | Уровень выше | php_stream_open_wrapper_as_file


php_stream_opendir

(no version information, might be only in CVS)

php_stream_opendir -- Open a directory for file enumeration

Description

php_stream * php_stream_opendir ( char * path, php_stream_context * context )

php_stream_opendir() returns a stream that can be used to list the files that are contained in the directory specified by path. This function is functionally equivalent to POSIX opendir(). Although this function returns a php_stream object, it is not recommended to try to use the functions from the common API on these streams.

Пред. | Начало | След.
Streams Dir API Reference | Уровень выше | php_stream_readdir


php_stream_passthru

(no version information, might be only in CVS)

php_stream_passthru -- Outputs all remaining data from a stream

Description

size_t php_stream_passthru ( php_stream * stream )

php_stream_passthru() outputs all remaining data from stream to the active output buffer and returns the number of bytes output. If buffering is disabled, the data is written straight to the output, which is the browser making the request in the case of PHP on a web server, or stdout for CLI based PHP. This function will use memory mapped files if possible to help improve performance.

Пред. | Начало | След.
php_stream_is | Уровень выше | php_register_url_stream_wrapper


php_stream_read

(no version information, might be only in CVS)

php_stream_read -- Read a number of bytes from a stream into a buffer

Description

size_t php_stream_read ( php_stream * stream, char * buf, size_t count )

php_stream_read() reads up to count bytes of data from stream and copies them into the buffer buf.

php_stream_read() returns the number of bytes that were read successfully. There is no distinction between a failed read or an end-of-file condition - use php_stream_eof() to test for an EOF.

The internal position of the stream is advanced by the number of bytes that were read, so that subsequent reads will continue reading from that point.

If less than count bytes are available to be read, this call will block (or wait) until the required number are available, depending on the blocking status of the stream. By default, a stream is opened in blocking mode. When reading from regular files, the blocking mode will not usually make any difference: when the stream reaches the EOF php_stream_read() will return a value less than count, and 0 on subsequent reads.

Пред. | Начало | След.
php_stream_open_wrapper | Уровень выше | php_stream_write


php_stream_readdir

(no version information, might be only in CVS)

php_stream_readdir -- Fetch the next directory entry from an opened dir

Description

php_stream_dirent * php_stream_readdir ( php_stream * dirstream, php_stream_dirent * ent )

php_stream_readdir() reads the next directory entry from dirstream and stores it into ent. If the function succeeds, the return value is ent. If the function fails, the return value is NULL. See php_stream_dirent for more details about the information returned for each directory entry.

Пред. | Начало | След.
php_stream_opendir | Уровень выше | php_stream_rewinddir


php_stream_rewinddir

(no version information, might be only in CVS)

php_stream_rewinddir -- Rewind a directory stream to the first entry

Description

int php_stream_rewinddir ( php_stream * dirstream )

php_stream_rewinddir() rewinds a directory stream to the first entry. Returns 0 on success, but -1 on failure.

Пред. | Начало | След.
php_stream_readdir | Уровень выше | php_stream_closedir


php_stream_seek

(no version information, might be only in CVS)

php_stream_seek -- Reposition a stream

Description

int php_stream_seek ( php_stream * stream, off_t offset, int whence )

php_stream_seek() repositions the internal position of stream. The new position is determined by adding the offset to the position indicated by whence. If whence is set to SEEK_SET, SEEK_CUR or SEEK_END the offset is relative to the start of the stream, the current position or the end of the stream, respectively.

php_stream_seek() returns 0 on success, but -1 if there was an error.

Замечание: Not all streams support seeking, although the streams API will emulate a seek if whence is set to SEEK_CUR and offset is positive, by calling php_stream_read() to read (and discard) offset bytes.

The emulation is only applied when the underlying stream implementation does not support seeking. If the stream is (for example) a file based stream that is wrapping a non-seekable pipe, the streams api will not apply emulation because the file based stream implements a seek operation; the seek will fail and an error result will be returned to the caller.

Пред. | Начало | След.
php_stream_flush | Уровень выше | php_stream_tell


php_stream_sock_open_from_socket

(no version information, might be only in CVS)

php_stream_sock_open_from_socket -- Convert a socket descriptor into a stream

Description

php_stream * php_stream_sock_open_from_socket ( int socket, int persistent )

php_stream_sock_open_from_socket() returns a stream based on the socket. persistent is a flag that controls whether the stream is opened as a persistent stream. Generally speaking, this parameter will usually be 0.

Пред. | Начало | След.
Streams Socket API Reference | Уровень выше | php_stream_sock_open_host


php_stream_sock_open_host

(no version information, might be only in CVS)

php_stream_sock_open_host -- Open a connection to a host and return a stream

Description

php_stream * php_stream_sock_open_host ( const char * host, unsigned short port, int socktype, struct timeval * timeout, int persistent )

php_stream_sock_open_host() establishes a connect to the specified host and port. socktype specifies the connection semantics that should apply to the connection. Values for socktype are system dependent, but will usually include (at a minimum) SOCK_STREAM for sequenced, reliable, two-way connection based streams (TCP), or SOCK_DGRAM for connectionless, unreliable messages of a fixed maximum length (UDP).

persistent is a flag the controls whether the stream is opened as a persistent stream. Generally speaking, this parameter will usually be 0.

If not NULL, timeout specifies a maximum time to allow for the connection to be made. If the connection attempt takes longer than the timeout value, the connection attempt is aborted and NULL is returned to indicate that the stream could not be opened.

Замечание: The timeout value does not include the time taken to perform a DNS lookup. The reason for this is because there is no portable way to implement a non-blocking DNS lookup.

The timeout only applies to the connection phase; if you need to set timeouts for subsequent read or write operations, you should use php_stream_sock_set_timeout() to configure the timeout duration for your stream once it has been opened.

The streams API places no restrictions on the values you use for socktype, but encourages you to consider the portability of values you choose before you release your extension.

Пред. | Начало | След.
php_stream_sock_open_from_socket | Уровень выше | php_stream_sock_open_unix


php_stream_sock_open_unix

(no version information, might be only in CVS)

php_stream_sock_open_unix -- Open a Unix domain socket and convert into a stream

Description

php_stream * php_stream_sock_open_unix ( const char * path, int pathlen, int persistent, struct timeval * timeout )

php_stream_sock_open_unix() attempts to open the Unix domain socket specified by path. pathlen specifies the length of path. If timeout is not NULL, it specifies a timeout period for the connection attempt. persistent indicates if the stream should be opened as a persistent stream. Generally speaking, this parameter will usually be 0.

Замечание: This function will not work under Windows, which does not implement Unix domain sockets. A possible exception to this rule is if your PHP binary was built using cygwin. You are encouraged to consider this aspect of the portability of your extension before it's release.

Замечание: This function treats path in a binary safe manner, suitable for use on systems with an abstract namespace (such as Linux), where the first character of path is a NUL character.

Пред. | Начало | След.
php_stream_sock_open_host | Уровень выше | Streams Structures


php_stream_stat

(no version information, might be only in CVS)

php_stream_stat -- Gets the status for the underlying storage associated with a stream

Description

int php_stream_stat ( php_stream * stream, php_stream_statbuf * ssb )

php_stream_stat() examines the storage to which stream is bound, and returns information such as file size, access and creation times and so on. The return value is 0 on success, -1 on error. For more information about the information returned, see php_stream_statbuf.

Пред. | Начало | След.
php_stream_stat_path | Уровень выше | php_stream_open_wrapper


php_stream_stat_path

(no version information, might be only in CVS)

php_stream_stat_path -- Gets the status for a file or URL

Description

int php_stream_stat_path ( char * path, php_stream_statbuf * ssb )

php_stream_stat_path() examines the file or URL specified by path and returns information such as file size, access and creation times and so on. The return value is 0 on success, -1 on error. For more information about the information returned, see php_stream_statbuf.

Пред. | Начало | След.
Streams Common API Reference | Уровень выше | php_stream_stat


php_stream_tell

(no version information, might be only in CVS)

php_stream_tell -- Determine the position of a stream

Description

off_t php_stream_tell ( php_stream * stream )

php_stream_tell() returns the internal position of stream, relative to the start of the stream. If there is an error, -1 is returned.

Пред. | Начало | След.
php_stream_seek | Уровень выше | php_stream_copy_to_stream


php_stream_write

(no version information, might be only in CVS)

php_stream_write -- Write a number of bytes from a buffer to a stream

Description

size_t php_stream_write ( php_stream * stream, const char * buf, size_t count )

php_stream_write() writes count bytes of data from buf into stream.

php_stream_write() returns the number of bytes that were written successfully. If there was an error, the number of bytes written will be less than count.

The internal position of the stream is advanced by the number of bytes that were written, so that subsequent writes will continue writing from that point.

Пред. | Начало | След.
php_stream_read | Уровень выше | php_stream_eof


php_unregister_url_stream_wrapper

(no version information, might be only in CVS)

php_unregister_url_stream_wrapper -- Unregisters a wrapper from the Streams API

Description

int php_unregister_url_stream_wrapper ( char * protocol, TSRMLS_DC )

php_unregister_url_stream_wrapper() unregisters the wrapper associated with protocol.

Пред. | Начало | След.
php_register_url_stream_wrapper | Уровень выше | php_stream_open_wrapper_ex


struct php_stream_dirent

(no version information, might be only in CVS)

struct php_stream_dirent -- Holds information about a single file during dir scanning

Description

php_stream_dirent
     char d_name[MAXPATHLEN]

d_name holds the name of the file, relative to the directory being scanned.

Пред. | Начало | След.
struct php_stream_statbuf | Уровень выше | struct php_stream_ops


struct php_stream_filter

(no version information, might be only in CVS)

struct php_stream_filter -- Holds filter properties and pointer to operations

Description

struct _php_stream_filter {
            php_stream_filter_ops *fops;
            void *abstract; /* for use by filter implementation */
            php_stream_filter *next;
            php_stream_filter *prev;
            int is_persistent;

            /* link into stream and chain */
            php_stream_filter_chain *chain;

            /* buffered buckets */
            php_stream_bucket_brigade buffer;
        } php_stream_filter;

Пред. | Начало | След.
struct php_stream_wrapper_ops | Уровень выше | struct php_stream_filter_ops


struct php_stream_filter_ops

(no version information, might be only in CVS)

struct php_stream_filter_ops -- Holds member functions for a stream filter implementation

Description

typedef struct _php_stream_filter_ops {
            php_stream_filter_status_t (*filter)(
                    php_stream *stream,
                    php_stream_filter *thisfilter,
                    php_stream_bucket_brigade *buckets_in,
                    php_stream_bucket_brigade *buckets_out,
                    size_t *bytes_consumed,
                    int flags
                    TSRMLS_DC);

            void (*dtor)(php_stream_filter *thisfilter TSRMLS_DC);

            const char *label;
} php_stream_filter_ops;

Пред. | Начало | След.
struct php_stream_filter | Уровень выше | Streams Constants


struct php_stream_ops

(no version information, might be only in CVS)

struct php_stream_ops -- Holds member functions for a stream implementation

Description

typedef struct _php_stream_ops {
             /* all streams MUST implement these operations */
             size_t (*write)(php_stream *stream, const char *buf, size_t count TSRMLS_DC);
             size_t (*read)(php_stream *stream, char *buf, size_t count TSRMLS_DC);
             int (*close)(php_stream *stream, int close_handle TSRMLS_DC);
             int (*flush)(php_stream *stream TSRMLS_DC);

             const char *label; /* name describing this class of stream */

             /* these operations are optional, and may be set to NULL if the stream does not
              * support a particular operation */
            int (*seek)(php_stream *stream, off_t offset, int whence TSRMLS_DC);
            char *(*gets)(php_stream *stream, char *buf, size_t size TSRMLS_DC);
            int (*cast)(php_stream *stream, int castas, void **ret TSRMLS_DC);
            int (*stat)(php_stream *stream, php_stream_statbuf *ssb TSRMLS_DC);
        } php_stream_ops;

Пред. | Начало | След.
struct php_stream_dirent | Уровень выше | struct php_stream_wrapper


struct php_stream_statbuf

(no version information, might be only in CVS)

struct php_stream_statbuf -- Holds information about a file or URL

Description

php_stream_statbuf
     struct stat sb

sb is a regular, system defined, struct stat.

Пред. | Начало | След.
Streams Structures | Уровень выше | struct php_stream_dirent


struct php_stream_wrapper

(no version information, might be only in CVS)

struct php_stream_wrapper -- Holds wrapper properties and pointer to operations

Description

struct _php_stream_wrapper  {
            php_stream_wrapper_ops *wops;   /* operations the wrapper can perform */
            void *abstract;                 /* context for the wrapper */
            int is_url;                     /* so that PG(allow_url_fopen) can be respected */

            /* support for wrappers to return (multiple) error messages to the stream opener */
            int err_count;
            char **err_stack;
        } php_stream_wrapper;

Пред. | Начало | След.
struct php_stream_ops | Уровень выше | struct php_stream_wrapper_ops


struct php_stream_wrapper_ops

(no version information, might be only in CVS)

struct php_stream_wrapper_ops -- Holds member functions for a stream wrapper implementation

Description

typedef struct _php_stream_wrapper_ops {
            /* open/create a wrapped stream */
            php_stream *(*stream_opener)(php_stream_wrapper *wrapper, char *filename, char *mode,
                    int options, char **opened_path, php_stream_context *context STREAMS_DC TSRMLS_DC);
            /* close/destroy a wrapped stream */
            int (*stream_closer)(php_stream_wrapper *wrapper, php_stream *stream TSRMLS_DC);
            /* stat a wrapped stream */
            int (*stream_stat)(php_stream_wrapper *wrapper, php_stream *stream, php_stream_statbuf *ssb TSR$
            /* stat a URL */
            int (*url_stat)(php_stream_wrapper *wrapper, char *url, php_stream_statbuf *ssb TSRMLS_DC);
            /* open a "directory" stream */
            php_stream *(*dir_opener)(php_stream_wrapper *wrapper, char *filename, char *mode,
                    int options, char **opened_path, php_stream_context *context STREAMS_DC TSRMLS_DC);

            const char *label;

            /* Delete/Unlink a file */
            int (*unlink)(php_stream_wrapper *wrapper, char *url, int options, php_stream_context *context TSRMLS_DC);
        } php_stream_wrapper_ops;

Пред. | Начало | След.
struct php_stream_wrapper | Уровень выше | struct php_stream_filter


List of Supported Timezones

Руководство по PHP
Пред. След.

Приложение H. List of Supported Timezones

Содержание
List of timezones in the group Africa
List of timezones in the group America
List of timezones in the group Antarctica
List of timezones in the group Arctic
List of timezones in the group Asia
List of timezones in the group Atlantic
List of timezones in the group Australia
List of timezones in the group Europe
List of timezones in the group Pacific
List of timezones in the group Others

List of timezones in the group Africa

Таблица H-1. Africa

Africa/Abidjan | Africa/Accra | Africa/Addis_Ababa | Africa/Algiers | Africa/Asmera
Africa/Bamako | Africa/Bangui | Africa/Banjul | Africa/Bissau | Africa/Blantyre
Africa/Brazzaville | Africa/Bujumbura | Africa/Cairo | Africa/Casablanca | Africa/Ceuta
Africa/Conakry | Africa/Dakar | Africa/Dar_es_Salaam | Africa/Djibouti | Africa/Douala
Africa/El_Aaiun | Africa/Freetown | Africa/Gaborone | Africa/Harare | Africa/Johannesburg
Africa/Kampala | Africa/Khartoum | Africa/Kigali | Africa/Kinshasa | Africa/Lagos
Africa/Libreville | Africa/Lome | Africa/Luanda | Africa/Lubumbashi | Africa/Lusaka
Africa/Malabo | Africa/Maputo | Africa/Maseru | Africa/Mbabane | Africa/Mogadishu
Africa/Monrovia | Africa/Nairobi | Africa/Ndjamena | Africa/Niamey | Africa/Nouakchott
Africa/Ouagadougou | Africa/Porto-Novo | Africa/Sao_Tome | Africa/Timbuktu | Africa/Tripoli
Africa/Tunis | Africa/Windhoek |  |  |

Пред. | Начало | След.
Описание встроенных директив php.ini | Уровень выше | List of timezones in the group America


List of timezones in the group America

Таблица H-2. America

America/Adak | America/Anchorage | America/Anguilla | America/Antigua | America/Araguaina
America/Argentina/Buenos_Aires | America/Argentina/Catamarca | America/Argentina/ComodRivadavia | America/Argentina/Cordoba | America/Argentina/Jujuy
America/Argentina/La_Rioja | America/Argentina/Mendoza | America/Argentina/Rio_Gallegos | America/Argentina/San_Juan | America/Argentina/Tucuman
America/Argentina/Ushuaia | America/Aruba | America/Asuncion | America/Atka | America/Bahia
America/Barbados | America/Belem | America/Belize | America/Boa_Vista | America/Bogota
America/Boise | America/Buenos_Aires | America/Cambridge_Bay | America/Campo_Grande | America/Cancun
America/Caracas | America/Catamarca | America/Cayenne | America/Cayman | America/Chicago
America/Chihuahua | America/Coral_Harbour | America/Cordoba | America/Costa_Rica | America/Cuiaba
America/Curacao | America/Danmarkshavn | America/Dawson | America/Dawson_Creek | America/Denver
America/Detroit | America/Dominica | America/Edmonton | America/Eirunepe | America/El_Salvador
America/Ensenada | America/Fort_Wayne | America/Fortaleza | America/Glace_Bay | America/Godthab
America/Goose_Bay | America/Grand_Turk | America/Grenada | America/Guadeloupe | America/Guatemala
America/Guayaquil | America/Guyana | America/Halifax | America/Havana | America/Hermosillo
America/Indiana/Indianapolis | America/Indiana/Knox | America/Indiana/Marengo | America/Indiana/Vevay | America/Indianapolis
America/Inuvik | America/Iqaluit | America/Jamaica | America/Jujuy | America/Juneau
America/Kentucky/Louisville | America/Kentucky/Monticello | America/Knox_IN | America/La_Paz | America/Lima
America/Los_Angeles | America/Louisville | America/Maceio | America/Managua | America/Manaus
America/Martinique | America/Mazatlan | America/Mendoza | America/Menominee | America/Merida
America/Mexico_City | America/Miquelon | America/Monterrey | America/Montevideo | America/Montreal
America/Montserrat | America/Nassau | America/New_York | America/Nipigon | America/Nome
America/Noronha | America/North_Dakota/Center | America/Panama | America/Pangnirtung | America/Paramaribo
America/Phoenix | America/Port-au-Prince | America/Port_of_Spain | America/Porto_Acre | America/Porto_Velho
America/Puerto_Rico | America/Rainy_River | America/Rankin_Inlet | America/Recife | America/Regina
America/Rio_Branco | America/Rosario | America/Santiago | America/Santo_Domingo | America/Sao_Paulo
America/Scoresbysund | America/Shiprock | America/St_Johns | America/St_Kitts | America/St_Lucia
America/St_Thomas | America/St_Vincent | America/Swift_Current | America/Tegucigalpa | America/Thule
America/Thunder_Bay | America/Tijuana | America/Toronto | America/Tortola | America/Vancouver
America/Virgin | America/Whitehorse | America/Winnipeg | America/Yakutat | America/Yellowknife
Brazil/Acre | Brazil/DeNoronha | Brazil/East | Brazil/West | Canada/Atlantic
Canada/Central | Canada/East-Saskatchewan | Canada/Eastern | Canada/Mountain | Canada/Newfoundland
Canada/Pacific | Canada/Saskatchewan | Canada/Yukon | Chile/Continental | Chile/EasterIsland
Mexico/BajaNorte | Mexico/BajaSur | Mexico/General | US/Alaska | US/Aleutian
US/Arizona | US/Central | US/East-Indiana | US/Eastern | US/Hawaii
US/Indiana-Starke | US/Michigan | US/Mountain | US/Pacific | US/Pacific-New
US/Samoa |  |  |  |

Пред. | Начало | След.
List of Supported Timezones | Уровень выше | List of timezones in the group Antarctica


List of timezones in the group Antarctica

Таблица H-3. Antarctica

Antarctica/Casey | Antarctica/Davis | Antarctica/DumontDUrville | Antarctica/Mawson | Antarctica/McMurdo
Antarctica/Palmer | Antarctica/Rothera | Antarctica/South_Pole | Antarctica/Syowa | Antarctica/Vostok

Пред. | Начало | След.
List of timezones in the group America | Уровень выше | List of timezones in the group Arctic


List of timezones in the group Arctic

Таблица H-4. Arctic

Arctic/Longyearbyen

Пред. | Начало | След.
List of timezones in the group Antarctica | Уровень выше | List of timezones in the group Asia


List of timezones in the group Asia

Таблица H-5. Asia

Asia/Aden | Asia/Almaty | Asia/Amman | Asia/Anadyr | Asia/Aqtau
Asia/Aqtobe | Asia/Ashgabat | Asia/Ashkhabad | Asia/Baghdad | Asia/Bahrain
Asia/Baku | Asia/Bangkok | Asia/Beirut | Asia/Bishkek | Asia/Brunei
Asia/Calcutta | Asia/Choibalsan | Asia/Chongqing | Asia/Chungking | Asia/Colombo
Asia/Dacca | Asia/Damascus | Asia/Dhaka | Asia/Dili | Asia/Dubai
Asia/Dushanbe | Asia/Gaza | Asia/Harbin | Asia/Hong_Kong | Asia/Hovd
Asia/Irkutsk | Asia/Istanbul | Asia/Jakarta | Asia/Jayapura | Asia/Jerusalem
Asia/Kabul | Asia/Kamchatka | Asia/Karachi | Asia/Kashgar | Asia/Katmandu
Asia/Krasnoyarsk | Asia/Kuala_Lumpur | Asia/Kuching | Asia/Kuwait | Asia/Macao
Asia/Macau | Asia/Magadan | Asia/Makassar | Asia/Manila | Asia/Muscat
Asia/Nicosia | Asia/Novosibirsk | Asia/Omsk | Asia/Oral | Asia/Phnom_Penh
Asia/Pontianak | Asia/Pyongyang | Asia/Qatar | Asia/Qyzylorda | Asia/Rangoon
Asia/Riyadh | Asia/Saigon | Asia/Sakhalin | Asia/Samarkand | Asia/Seoul
Asia/Shanghai | Asia/Singapore | Asia/Taipei | Asia/Tashkent | Asia/Tbilisi
Asia/Tehran | Asia/Tel_Aviv | Asia/Thimbu | Asia/Thimphu | Asia/Tokyo
Asia/Ujung_Pandang | Asia/Ulaanbaatar | Asia/Ulan_Bator | Asia/Urumqi | Asia/Vientiane
Asia/Vladivostok | Asia/Yakutsk | Asia/Yekaterinburg | Asia/Yerevan | Indian/Antananarivo
Indian/Chagos | Indian/Christmas | Indian/Cocos | Indian/Comoro | Indian/Kerguelen
Indian/Mahe | Indian/Maldives | Indian/Mauritius | Indian/Mayotte | Indian/Reunion

Пред. | Начало | След.
List of timezones in the group Arctic | Уровень выше | List of timezones in the group Atlantic


List of timezones in the group Atlantic

Таблица H-6. Atlantic

Atlantic/Azores | Atlantic/Bermuda | Atlantic/Canary | Atlantic/Cape_Verde | Atlantic/Faeroe
Atlantic/Jan_Mayen | Atlantic/Madeira | Atlantic/Reykjavik | Atlantic/South_Georgia | Atlantic/St_Helena
Atlantic/Stanley |  |  |  |

Пред. | Начало | След.
List of timezones in the group Asia | Уровень выше | List of timezones in the group Australia


List of timezones in the group Australia

Таблица H-7. Australia

Australia/ACT | Australia/Adelaide | Australia/Brisbane | Australia/Broken_Hill | Australia/Canberra
Australia/Currie | Australia/Darwin | Australia/Hobart | Australia/LHI | Australia/Lindeman
Australia/Lord_Howe | Australia/Melbourne | Australia/North | Australia/NSW | Australia/Perth
Australia/Queensland | Australia/South | Australia/Sydney | Australia/Tasmania | Australia/Victoria
Australia/West | Australia/Yancowinna |  |  |

Пред. | Начало | След.
List of timezones in the group Atlantic | Уровень выше | List of timezones in the group Europe


List of timezones in the group Europe

Таблица H-8. Europe

Europe/Amsterdam | Europe/Andorra | Europe/Athens | Europe/Belfast | Europe/Belgrade
Europe/Berlin | Europe/Bratislava | Europe/Brussels | Europe/Bucharest | Europe/Budapest
Europe/Chisinau | Europe/Copenhagen | Europe/Dublin | Europe/Gibraltar | Europe/Helsinki
Europe/Istanbul | Europe/Kaliningrad | Europe/Kiev | Europe/Lisbon | Europe/Ljubljana
Europe/London | Europe/Luxembourg | Europe/Madrid | Europe/Malta | Europe/Mariehamn
Europe/Minsk | Europe/Monaco | Europe/Moscow | Europe/Nicosia | Europe/Oslo
Europe/Paris | Europe/Prague | Europe/Riga | Europe/Rome | Europe/Samara
Europe/San_Marino | Europe/Sarajevo | Europe/Simferopol | Europe/Skopje | Europe/Sofia
Europe/Stockholm | Europe/Tallinn | Europe/Tirane | Europe/Tiraspol | Europe/Uzhgorod
Europe/Vaduz | Europe/Vatican | Europe/Vienna | Europe/Vilnius | Europe/Warsaw
Europe/Zagreb | Europe/Zaporozhye | Europe/Zurich |  |

Пред. | Начало | След.
List of timezones in the group Australia | Уровень выше | List of timezones in the group Pacific


List of timezones in the group Others

Таблица H-10. Others

CET | CST6CDT | Cuba | EET | Egypt
Eire | EST | EST5EDT | Etc/GMT | Etc/GMT+0
Etc/GMT+1 | Etc/GMT+10 | Etc/GMT+11 | Etc/GMT+12 | Etc/GMT+2
Etc/GMT+3 | Etc/GMT+4 | Etc/GMT+5 | Etc/GMT+6 | Etc/GMT+7
Etc/GMT+8 | Etc/GMT+9 | Etc/GMT-0 | Etc/GMT-1 | Etc/GMT-10
Etc/GMT-11 | Etc/GMT-12 | Etc/GMT-13 | Etc/GMT-14 | Etc/GMT-2
Etc/GMT-3 | Etc/GMT-4 | Etc/GMT-5 | Etc/GMT-6 | Etc/GMT-7
Etc/GMT-8 | Etc/GMT-9 | Etc/GMT0 | Etc/Greenwich | Etc/UCT
Etc/Universal | Etc/UTC | Etc/Zulu | Factory | GB
GB-Eire | GMT | GMT+0 | GMT-0 | GMT0
Greenwich | Hongkong | HST | Iceland | Iran
Israel | Jamaica | Japan | Kwajalein | Libya
MET | MST | MST7MDT | Navajo | NZ
NZ-CHAT | Poland | Portugal | PRC | PST8PDT
ROC | ROK | Singapore | Turkey | UCT
Universal | UTC | W-SU | WET | Zulu

Пред. | Начало | След.
List of timezones in the group Pacific | Уровень выше | Extension Categorization


List of timezones in the group Pacific

Таблица H-9. Pacific

Pacific/Apia | Pacific/Auckland | Pacific/Chatham | Pacific/Easter | Pacific/Efate
Pacific/Enderbury | Pacific/Fakaofo | Pacific/Fiji | Pacific/Funafuti | Pacific/Galapagos
Pacific/Gambier | Pacific/Guadalcanal | Pacific/Guam | Pacific/Honolulu | Pacific/Johnston
Pacific/Kiritimati | Pacific/Kosrae | Pacific/Kwajalein | Pacific/Majuro | Pacific/Marquesas
Pacific/Midway | Pacific/Nauru | Pacific/Niue | Pacific/Norfolk | Pacific/Noumea
Pacific/Pago_Pago | Pacific/Palau | Pacific/Pitcairn | Pacific/Ponape | Pacific/Port_Moresby
Pacific/Rarotonga | Pacific/Saipan | Pacific/Samoa | Pacific/Tahiti | Pacific/Tarawa
Pacific/Tongatapu | Pacific/Truk | Pacific/Wake | Pacific/Wallis | Pacific/Yap

Пред. | Начало | След.
List of timezones in the group Europe | Уровень выше | List of timezones in the group Others


Process Interaction Streams

expect:// PHP 4.3.0 and up (PECL)

  • expect://command

This wrapper is not enabled by default: In order to use the expect:// wrapper you must install the Expect extension available from PECL.

Streams opened via the expect:// wrapper provide access to process'es stdio, stdout and stderr via PTY.

Таблица M-12. Wrapper Summary

Attribute | Supported
Restricted by allow_url_fopen. | No
Allows Reading | Yes
Allows Writing | Yes
Allows Appending | Yes
Allows Simultaneous Reading and Writing | No
Supports stat() | No
Supports unlink() | No
Supports rename() | No
Supports mkdir() | No
Supports rmdir() | No

Пред. | Начало | След.
Audio Streams | Уровень выше | Список доступных фильтров


Socket

This section contains the context options supported by the wrappers that work over sockets, like tcp, http or ftp.

As of PHP 5.1.0 only one option is supported, bindto, which can be used to specify the IP address (either IPv4 or IPv6) and/or the port number that PHP will use to access the network. The syntax is ip:port (you can set the IP or the port number to 0 if you want to let the system choose them for you).

Замечание: As FTP creates two socket connections during normal operation, you cannot specify the port number in the bindto option. So, the only supported syntax is ip:0 for the FTP wrapper.

Пример M-1. Some examples of how to use the bindto option

<?php
// connect to the internet using the '192.168.0.100' IP
$opts = array('socket' =>
            array('bindto' => '192.168.0.100:0'));

// connect to the internet using the '192.168.0.100' IP and port '7000'
$opts = array('socket' =>
            array('bindto' => '192.168.0.100:7000'));

// connect to the internet using port '7000'
$opts = array('socket' =>
            array('bindto' => '0:7000'));

// create the context...
$context = stream_context_create($opts);

// ...and use it to fetch the data
echo file_get_contents('http://www.example.com', false, $context);

?>

Пред. | Начало | След.
List of Supported Protocols/Wrappers | Уровень выше | HTTP and HTTPS


API Functions (work in progress)

Содержание
_array_init -- ...
_object_and_properties_init -- ...
_object_init_ex -- ...
_object_init -- ...
_zend_bailout -- ...
_zend_get_parameters_array_ex -- ...
_zend_get_parameters_array -- ...
_zend_hash_add_or_update -- ...
_zend_hash_index_update_or_next_insert -- ...
_zend_hash_init_ex -- ...
_zend_hash_init -- ...
_zend_hash_merge -- ...
_zend_hash_quick_add_or_update -- ...
Z_ARRVAL_P --
Z_ARRVAL_PP --
Z_ARRVAL --
Z_BVAL_P --
Z_BVAL_PP --
Z_BVAL --
Z_DVAL_P --
Z_DVAL_PP --
Z_DVAL --
Z_LVAL_P --
Z_LVAL_PP --
Z_LVAL --
Z_OBJ_CLASS_NAME_P --
Z_OBJ_HANDLE_P --
Z_OBJ_HANDLE_PP --
Z_OBJ_HANDLE --
Z_OBJ_HANDLER_P --
Z_OBJ_HANDLER_PP --
Z_OBJ_HANDLER --
Z_OBJ_HT_P --
Z_OBJ_HT_PP --
Z_OBJ_HT --
Z_OBJCE_P --
Z_OBJCE_PP --
Z_OBJCE --
Z_OBJPROP_P --
Z_OBJPROP_PP --
Z_OBJPROP --
Z_RESVAL_P --
Z_RESVAL_PP --
Z_RESVAL --
Z_STRLEN_P --
Z_STRLEN_PP --
Z_STRLEN --
Z_STRVAL_P --
Z_STRVAL_PP --
Z_STRVAL --
Z_TYPE_P --
Z_TYPE_PP --
Z_TYPE --
ZEND_WRONG_PARAM_COUNT_WITH_RETVAL -- Generate standard error message and return custom value
add_assoc_bool_ex -- ...
add_assoc_bool -- ...
add_assoc_double_ex -- ...
add_assoc_double -- ...
add_assoc_function -- ...
add_assoc_long_ex -- ...
add_assoc_long -- ...
add_assoc_null_ex -- ...
add_assoc_null -- ...
add_assoc_resource_ex -- ...
add_assoc_resource -- ...
add_assoc_string_ex -- ...
add_assoc_string -- ...
add_assoc_stringl_ex -- ...
add_assoc_stringl -- ...
add_assoc_zval_ex -- ...
add_assoc_zval -- ...
add_get_assoc_string_ex -- ...
add_get_assoc_string -- ...
add_get_assoc_stringl_ex -- ...
add_get_assoc_stringl -- ...
add_get_index_double -- ...
add_get_index_long -- ...
add_get_index_string -- ...
add_get_index_stringl -- ...
add_index_bool -- ...
add_index_double -- ...
add_index_long -- ...
add_index_null -- ...
add_index_resource -- ...
add_index_string -- ...
add_index_stringl -- ...
add_index_zval -- ...
add_next_index_bool -- ...
add_next_index_double -- ...
add_next_index_long -- ...
add_next_index_null -- ...
add_next_index_resource -- ...
add_next_index_string -- ...
add_next_index_stringl -- ...
add_next_index_zval -- ...
add_property_bool_ex -- ...
add_property_bool -- ...
add_property_double_ex -- ...
add_property_double -- ...
add_property_long_ex -- ...
add_property_long -- ...
add_property_null_ex -- ...
add_property_null -- ...
add_property_resource_ex -- ...
add_property_resource -- ...
add_property_string_ex -- ...
add_property_string -- ...
add_property_stringl_ex -- ...
add_property_stringl -- ...
add_property_zval_ex -- ...
add_property_zval -- ...
array_init -- ...
call_user_function_ex -- ...
call_user_function -- ...
free_estring -- ...
get_zend_version -- ...
ZEND_WRONG_PARAM_COUNT -- Generate standard error message for wrong parameter count in function or method call
object_and_properties_init -- ...
object_init_ex -- ...
object_init -- ...
zend_call_function -- ...
zend_check_magic_method_implementation -- ...
zend_class_implements -- ...
zend_copy_parameters_array -- ...
zend_declare_property_bool -- ...
zend_declare_property_double -- ...
zend_declare_property_ex -- ...
zend_declare_property_long -- ...
zend_declare_property_null -- ...
zend_declare_property_string -- ...
zend_declare_property_stringl -- ...
zend_declare_property -- ...
zend_delete_global_variable -- ...
zend_disable_class -- ...
zend_disable_function -- ...
zend_error -- ...
zend_get_class_entry -- ...
zend_get_configuration_directive -- ...
zend_get_hash_value -- ...
zend_get_module_started -- ...
zend_get_module_version -- ...
zend_get_object_classname -- ...
zend_get_parameters_array_ex -- ...
zend_get_parameters_array -- ...
zend_get_parameters_ex -- ...
zend_get_parameters -- ...
zend_get_std_object_handlers -- ...
zend_hash_add_empty_element -- ...
zend_hash_add -- ...
zend_hash_apply_with_argument -- ...
zend_hash_apply_with_arguments -- ...
zend_hash_apply -- ...
zend_hash_clean -- ...
zend_hash_compare -- ...
zend_hash_copy -- ...
zend_hash_del_key_or_index -- ...
zend_hash_destroy -- ...
zend_hash_exists -- ...
zend_hash_find -- ...
zend_hash_func -- ...
zend_hash_get_current_data_ex -- ...
zend_hash_get_current_key_ex -- ...
zend_hash_get_current_key_type_ex -- ...
zend_hash_graceful_destroy -- ...
zend_hash_graceful_reverse_destroy -- ...
zend_hash_index_exists -- ...
zend_hash_index_find -- ...
zend_hash_init_ex -- ...
zend_hash_init -- ...
zend_hash_internal_pointer_end_ex -- ...
zend_hash_internal_pointer_reset_ex -- ...
zend_hash_merge_ex -- ...
zend_hash_minmax -- ...
zend_hash_move_backwards_ex -- ...
zend_hash_move_forward_ex -- ...
zend_hash_next_free_element -- ...
zend_hash_num_elements -- ...
zend_hash_quick_add -- ...
zend_hash_quick_exists -- ...
zend_hash_quick_find -- ...
zend_hash_quick_update -- ...
zend_hash_rehash -- ...
zend_hash_reverse_apply -- ...
zend_hash_sort -- ...
zend_hash_update_current_key_ex -- ...
zend_hash_update -- ...
zend_is_callable_ex -- ...
zend_is_callable -- ...
zend_make_callable -- ...
zend_make_printable_zval -- ...
zend_merge_properties -- ...
zend_message_dispatcher -- ...
zend_object_create_proxy -- ...
zend_object_store_ctor_failed -- ...
zend_object_store_get_object -- ...
zend_object_store_set_object -- ...
zend_objects_store_add_ref -- ...
zend_objects_store_call_destructors -- ...
zend_objects_store_clone_obj -- ...
zend_objects_store_del_ref -- ...
zend_objects_store_destroy -- ...
zend_objects_store_free_object_storage -- ...
zend_objects_store_init -- ...
zend_objects_store_mark_destructed -- ...
zend_objects_store_put -- ...
zend_output_debug_string -- ...
zend_parse_method_parameters_ex -- ...
zend_parse_method_parameters -- ...
zend_parse_parameters_ex -- ...
zend_parse_parameters -- ...
zend_print_flat_zval_r -- ...
zend_print_zval_ex -- ...
zend_print_zval_r_ex -- ...
zend_print_zval_r -- ...
zend_print_zval -- ...
zend_read_property -- ...
zend_register_functions -- ...
zend_register_internal_class_ex -- ...
zend_register_internal_class -- ...
zend_register_internal_interface -- ...
zend_register_internal_module -- ...
zend_register_module_ex -- ...
zend_register_module -- ...
zend_reset_all_cv -- ...
zend_startup_module_ex -- ...
zend_startup_module -- ...
zend_startup_modules -- ...
zend_unregister_functions -- ...
zend_update_class_constants -- ...
zend_update_property_bool -- ...
zend_update_property_double -- ...
zend_update_property_long -- ...
zend_update_property_null -- ...
zend_update_property_string -- ...
zend_update_property_stringl -- ...
zend_update_property -- ...
zend_wrong_param_count -- Generate standard error message for wrong parameter count in function or method call
zend_zval_type_name -- Returns the PHP type name for a given zval

Пред. | Начало | След.
API Macros | Уровень выше | _array_init


Z_ARRVAL

(no version information, might be only in CVS)

Z_ARRVAL --

Описание

#include <zend_operators.h>

void Z_ARRVAL ( void )

Пред. | Начало | След.
Z_ARRVAL_PP | Уровень выше | Z_BVAL_P


Z_ARRVAL_P

(no version information, might be only in CVS)

Z_ARRVAL_P --

Описание

#include <zend_operators.h>

void Z_ARRVAL_P ( void )

Пред. | Начало | След.
_zend_hash_quick_add_or_update | Уровень выше | Z_ARRVAL_PP


Z_ARRVAL_PP

(no version information, might be only in CVS)

Z_ARRVAL_PP --

Описание

#include <zend_operators.h>

void Z_ARRVAL_PP ( void )

Пред. | Начало | След.
Z_ARRVAL_P | Уровень выше | Z_ARRVAL


Z_BVAL

(no version information, might be only in CVS)

Z_BVAL --

Описание

#include <zend_operators.h>

void Z_BVAL ( void )

Пред. | Начало | След.
Z_BVAL_PP | Уровень выше | Z_DVAL_P


Z_BVAL_P

(no version information, might be only in CVS)

Z_BVAL_P --

Описание

#include <zend_operators.h>

void Z_BVAL_P ( void )

Пред. | Начало | След.
Z_ARRVAL | Уровень выше | Z_BVAL_PP


Z_BVAL_PP

(no version information, might be only in CVS)

Z_BVAL_PP --

Описание

#include <zend_operators.h>

void Z_BVAL_PP ( void )

Пред. | Начало | След.
Z_BVAL_P | Уровень выше | Z_BVAL


Z_DVAL

(no version information, might be only in CVS)

Z_DVAL --

Описание

#include <zend_operators.h>

void Z_DVAL ( void )

Пред. | Начало | След.
Z_DVAL_PP | Уровень выше | Z_LVAL_P


Z_DVAL_P

(no version information, might be only in CVS)

Z_DVAL_P --

Описание

#include <zend_operators.h>

void Z_DVAL_P ( void )

Пред. | Начало | След.
Z_BVAL | Уровень выше | Z_DVAL_PP


Z_DVAL_PP

(no version information, might be only in CVS)

Z_DVAL_PP --

Описание

#include <zend_operators.h>

void Z_DVAL_PP ( void )

Пред. | Начало | След.
Z_DVAL_P | Уровень выше | Z_DVAL


Z_LVAL

(no version information, might be only in CVS)

Z_LVAL --

Описание

#include <zend_operators.h>

void Z_LVAL ( void )

Пред. | Начало | След.
Z_LVAL_PP | Уровень выше | Z_OBJ_CLASS_NAME_P


Z_LVAL_P

(no version information, might be only in CVS)

Z_LVAL_P --

Описание

#include <zend_operators.h>

void Z_LVAL_P ( void )

Пред. | Начало | След.
Z_DVAL | Уровень выше | Z_LVAL_PP


Z_LVAL_PP

(no version information, might be only in CVS)

Z_LVAL_PP --

Описание

#include <zend_operators.h>

void Z_LVAL_PP ( void )

Пред. | Начало | След.
Z_LVAL_P | Уровень выше | Z_LVAL


Z_OBJ_CLASS_NAME_P

(no version information, might be only in CVS)

Z_OBJ_CLASS_NAME_P --

Описание

#include <zend_operators.h>

void Z_OBJ_CLASS_NAME_P ( void )

Пред. | Начало | След.
Z_LVAL | Уровень выше | Z_OBJ_HANDLE_P


Z_OBJ_HANDLE

(no version information, might be only in CVS)

Z_OBJ_HANDLE --

Описание

#include <zend_operators.h>

void Z_OBJ_HANDLE ( void )

Пред. | Начало | След.
Z_OBJ_HANDLE_PP | Уровень выше | Z_OBJ_HANDLER_P


Z_OBJ_HANDLE_P

(no version information, might be only in CVS)

Z_OBJ_HANDLE_P --

Описание

#include <zend_operators.h>

void Z_OBJ_HANDLE_P ( void )

Пред. | Начало | След.
Z_OBJ_CLASS_NAME_P | Уровень выше | Z_OBJ_HANDLE_PP


Z_OBJ_HANDLE_PP

(no version information, might be only in CVS)

Z_OBJ_HANDLE_PP --

Описание

#include <zend_operators.h>

void Z_OBJ_HANDLE_PP ( void )

Пред. | Начало | След.
Z_OBJ_HANDLE_P | Уровень выше | Z_OBJ_HANDLE


Z_OBJ_HANDLER

(no version information, might be only in CVS)

Z_OBJ_HANDLER --

Описание

#include <zend_operators.h>

void Z_OBJ_HANDLER ( void )

Пред. | Начало | След.
Z_OBJ_HANDLER_PP | Уровень выше | Z_OBJ_HT_P


Z_OBJ_HANDLER_P

(no version information, might be only in CVS)

Z_OBJ_HANDLER_P --

Описание

#include <zend_operators.h>

void Z_OBJ_HANDLER_P ( void )

Пред. | Начало | След.
Z_OBJ_HANDLE | Уровень выше | Z_OBJ_HANDLER_PP


Z_OBJ_HANDLER_PP

(no version information, might be only in CVS)

Z_OBJ_HANDLER_PP --

Описание

#include <zend_operators.h>

void Z_OBJ_HANDLER_PP ( void )

Пред. | Начало | След.
Z_OBJ_HANDLER_P | Уровень выше | Z_OBJ_HANDLER


Z_OBJ_HT

(no version information, might be only in CVS)

Z_OBJ_HT --

Описание

#include <zend_operators.h>

void Z_OBJ_HT ( void )

Пред. | Начало | След.
Z_OBJ_HT_PP | Уровень выше | Z_OBJCE_P


Z_OBJ_HT_P

(no version information, might be only in CVS)

Z_OBJ_HT_P --

Описание

#include <zend_operators.h>

void Z_OBJ_HT_P ( void )

Пред. | Начало | След.
Z_OBJ_HANDLER | Уровень выше | Z_OBJ_HT_PP


Z_OBJ_HT_PP

(no version information, might be only in CVS)

Z_OBJ_HT_PP --

Описание

#include <zend_operators.h>

void Z_OBJ_HT_PP ( void )

Пред. | Начало | След.
Z_OBJ_HT_P | Уровень выше | Z_OBJ_HT


Z_OBJCE

(no version information, might be only in CVS)

Z_OBJCE --

Описание

#include <zend_operators.h>

void Z_OBJCE ( void )

Пред. | Начало | След.
Z_OBJCE_PP | Уровень выше | Z_OBJPROP_P


Z_OBJCE_P

(no version information, might be only in CVS)

Z_OBJCE_P --

Описание

#include <zend_operators.h>

void Z_OBJCE_P ( void )

Пред. | Начало | След.
Z_OBJ_HT | Уровень выше | Z_OBJCE_PP


Z_OBJCE_PP

(no version information, might be only in CVS)

Z_OBJCE_PP --

Описание

#include <zend_operators.h>

void Z_OBJCE_PP ( void )

Пред. | Начало | След.
Z_OBJCE_P | Уровень выше | Z_OBJCE


Z_OBJPROP

(no version information, might be only in CVS)

Z_OBJPROP --

Описание

#include <zend_operators.h>

void Z_OBJPROP ( void )

Пред. | Начало | След.
Z_OBJPROP_PP | Уровень выше | Z_RESVAL_P


Z_OBJPROP_P

(no version information, might be only in CVS)

Z_OBJPROP_P --

Описание

#include <zend_operators.h>

void Z_OBJPROP_P ( void )

Пред. | Начало | След.
Z_OBJCE | Уровень выше | Z_OBJPROP_PP


Z_OBJPROP_PP

(no version information, might be only in CVS)

Z_OBJPROP_PP --

Описание

#include <zend_operators.h>

void Z_OBJPROP_PP ( void )

Пред. | Начало | След.
Z_OBJPROP_P | Уровень выше | Z_OBJPROP


Z_RESVAL

(no version information, might be only in CVS)

Z_RESVAL --

Описание

#include <zend_operators.h>

void Z_RESVAL ( void )

Пред. | Начало | След.
Z_RESVAL_PP | Уровень выше | Z_STRLEN_P


Z_RESVAL_P

(no version information, might be only in CVS)

Z_RESVAL_P --

Описание

#include <zend_operators.h>

void Z_RESVAL_P ( void )

Пред. | Начало | След.
Z_OBJPROP | Уровень выше | Z_RESVAL_PP


Z_RESVAL_PP

(no version information, might be only in CVS)

Z_RESVAL_PP --

Описание

#include <zend_operators.h>

void Z_RESVAL_PP ( void )

Пред. | Начало | След.
Z_RESVAL_P | Уровень выше | Z_RESVAL


Z_STRLEN

(no version information, might be only in CVS)

Z_STRLEN --

Описание

#include <zend_operators.h>

void Z_STRLEN ( void )

Пред. | Начало | След.
Z_STRLEN_PP | Уровень выше | Z_STRVAL_P


Z_STRLEN_P

(no version information, might be only in CVS)

Z_STRLEN_P --

Описание

#include <zend_operators.h>

void Z_STRLEN_P ( void )

Пред. | Начало | След.
Z_RESVAL | Уровень выше | Z_STRLEN_PP


Z_STRLEN_PP

(no version information, might be only in CVS)

Z_STRLEN_PP --

Описание

#include <zend_operators.h>

void Z_STRLEN_PP ( void )

Пред. | Начало | След.
Z_STRLEN_P | Уровень выше | Z_STRLEN


Z_STRVAL

(no version information, might be only in CVS)

Z_STRVAL --

Описание

#include <zend_operators.h>

void Z_STRVAL ( void )

Пред. | Начало | След.
Z_STRVAL_PP | Уровень выше | Z_TYPE_P


Z_STRVAL_P

(no version information, might be only in CVS)

Z_STRVAL_P --

Описание

#include <zend_operators.h>

void Z_STRVAL_P ( void )

Пред. | Начало | След.
Z_STRLEN | Уровень выше | Z_STRVAL_PP


Z_STRVAL_PP

(no version information, might be only in CVS)

Z_STRVAL_PP --

Описание

#include <zend_operators.h>

void Z_STRVAL_PP ( void )

Пред. | Начало | След.
Z_STRVAL_P | Уровень выше | Z_STRVAL


Z_TYPE

(no version information, might be only in CVS)

Z_TYPE --

Описание

#include <zend_operators.h>

void Z_TYPE ( void )

Пред. | Начало | След.
Z_TYPE_PP | Уровень выше | ZEND_WRONG_PARAM_COUNT_WITH_RETVAL


Z_TYPE_P

(no version information, might be only in CVS)

Z_TYPE_P --

Описание

#include <zend_operators.h>

void Z_TYPE_P ( void )

Пред. | Начало | След.
Z_STRVAL | Уровень выше | Z_TYPE_PP


Z_TYPE_PP

(no version information, might be only in CVS)

Z_TYPE_PP --

Описание

#include <zend_operators.h>

void Z_TYPE_PP ( void )

Пред. | Начало | След.
Z_TYPE_P | Уровень выше | Z_TYPE


ZEND_WRONG_PARAM_COUNT

(no version information, might be only in CVS)

ZEND_WRONG_PARAM_COUNT -- Generate standard error message for wrong parameter count in function or method call

Описание

#include <zend_API.h>

void ZEND_WRONG_PARAM_COUNT ( void )

ZEND_WRONG_PARAM_COUNT() produces a standard warning message for functions or class methods that have been called with a wrong number of parameters. The macro automaticly puts the right function name and class name (if needed) into the error message.

ZEND_WRONG_PARAM_COUNT() is actually a convenience wrapper for zend_wrong_param_count().

Пред. | Начало | След.
get_zend_version | Уровень выше | object_and_properties_init


ZEND_WRONG_PARAM_COUNT_WITH_RETVAL

(no version information, might be only in CVS)

ZEND_WRONG_PARAM_COUNT_WITH_RETVAL -- Generate standard error message and return custom value

Описание

#include <zend_API.h>

void ZEND_WRONG_PARAM_COUNT_WITH_RETVAL ( mixed return_value )

Замечание: This macro is part of the API but not used in any bundled or PECL extension

ZEND_WRONG_PARAM_COUNT_WITH_RETVAL() produces a standard warning message for functions or class methods that have been called with a wrong number of parameters and returns its parameter to the calling function. The macro automaticly puts the right function name and class name (if needed) into the error message.

The return_value parameter is returned to the calling function of the current one.

ZEND_WRONG_PARAM_COUNT_WITH_RETVAL() is actually a convenience wrapper for zend_wrong_param_count().

Пред. | Начало | След.
Z_TYPE | Уровень выше | add_assoc_bool_ex


_array_init

(no version information, might be only in CVS)

_array_init -- ...

Описание

#include <zend_API.h>

int _array_init ( zval* arg ZEND_FILE_LINE_DC )

...

Список параметров

arg ZEND_FILE_LINE_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
API Functions (work in progress) | Уровень выше | _object_and_properties_init


_object_and_properties_init

(no version information, might be only in CVS)

_object_and_properties_init -- ...

Описание

#include <zend_API.h>

int _object_and_properties_init ( zval* arg, zend_class_entry* ce, HashTable* properties ZEND_FILE_LINE_DC TSRMLS_DC )

...

Список параметров

arg

...

ce

...

properties ZEND_FILE_LINE_DC TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
_array_init | Уровень выше | _object_init_ex


_object_init

(no version information, might be only in CVS)

_object_init -- ...

Описание

#include <zend_API.h>

int _object_init ( zval* arg ZEND_FILE_LINE_DC TSRMLS_DC )

...

Список параметров

arg ZEND_FILE_LINE_DC TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
_object_init_ex | Уровень выше | _zend_bailout


_object_init_ex

(no version information, might be only in CVS)

_object_init_ex -- ...

Описание

#include <zend_API.h>

int _object_init_ex ( zval* arg, zend_class_entry* ce ZEND_FILE_LINE_DC TSRMLS_DC )

...

Список параметров

arg

...

ce ZEND_FILE_LINE_DC TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
_object_and_properties_init | Уровень выше | _object_init


_zend_bailout

(no version information, might be only in CVS)

_zend_bailout -- ...

Описание

#include <zend.h>

void _zend_bailout ( char* filename, uint lineno )

...

Список параметров

filename

...

lineno

...

Возвращаемые значения

...

Пред. | Начало | След.
_object_init | Уровень выше | _zend_get_parameters_array_ex


_zend_get_parameters_array

(no version information, might be only in CVS)

_zend_get_parameters_array -- ...

Описание

#include <zend_API.h>

int _zend_get_parameters_array ( int ht, int param_count, zval** argument_array TSRMLS_DC )

...

Список параметров

ht

...

param_count

...

argument_array TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
_zend_get_parameters_array_ex | Уровень выше | _zend_hash_add_or_update


_zend_get_parameters_array_ex

(no version information, might be only in CVS)

_zend_get_parameters_array_ex -- ...

Описание

#include <zend_API.h>

int _zend_get_parameters_array_ex ( int param_count, zval*** argument_array TSRMLS_DC )

...

Список параметров

param_count

...

argument_array TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
_zend_bailout | Уровень выше | _zend_get_parameters_array


_zend_hash_add_or_update

(no version information, might be only in CVS)

_zend_hash_add_or_update -- ...

Описание

#include <zend_hash.h>

int _zend_hash_add_or_update ( HashTable* ht, char* arKey, uint nKeyLength, void* pData, uint nDataSize, void** pDest, int flag ZEND_FILE_LINE_DC )

...

Список параметров

ht

...

arKey

...

nKeyLength

...

pData

...

nDataSize

...

pDest

...

flag ZEND_FILE_LINE_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
_zend_get_parameters_array | Уровень выше | _zend_hash_index_update_or_next_insert


_zend_hash_index_update_or_next_insert

(no version information, might be only in CVS)

_zend_hash_index_update_or_next_insert -- ...

Описание

#include <zend_hash.h>

int _zend_hash_index_update_or_next_insert ( HashTable* ht, ulong h, void* pData, uint nDataSize, void** pDest, int flag ZEND_FILE_LINE_DC )

...

Список параметров

ht

...

h

...

pData

...

nDataSize

...

pDest

...

flag ZEND_FILE_LINE_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
_zend_hash_add_or_update | Уровень выше | _zend_hash_init_ex


_zend_hash_init

(no version information, might be only in CVS)

_zend_hash_init -- ...

Описание

#include <zend_hash.h>

int _zend_hash_init ( HashTable* ht, uint nSize, hash_func_t pHashFunction, dtor_func_t pDestructor, zend_bool persistent ZEND_FILE_LINE_DC )

...

Список параметров

ht

...

nSize

...

pHashFunction

...

pDestructor

...

persistent ZEND_FILE_LINE_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
_zend_hash_init_ex | Уровень выше | _zend_hash_merge


_zend_hash_init_ex

(no version information, might be only in CVS)

_zend_hash_init_ex -- ...

Описание

#include <zend_hash.h>

int _zend_hash_init_ex ( HashTable* ht, uint nSize, hash_func_t pHashFunction, dtor_func_t pDestructor, zend_bool persistent, zend_bool bApplyProtection ZEND_FILE_LINE_DC )

...

Список параметров

ht

...

nSize

...

pHashFunction

...

pDestructor

...

persistent

...

bApplyProtection ZEND_FILE_LINE_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
_zend_hash_index_update_or_next_insert | Уровень выше | _zend_hash_init


_zend_hash_merge

(no version information, might be only in CVS)

_zend_hash_merge -- ...

Описание

#include <zend_hash.h>

void _zend_hash_merge ( HashTable* target, HashTable* source, copy_ctor_func_t pCopyConstructor, void* tmp, uint size, int overwrite ZEND_FILE_LINE_DC )

...

Список параметров

target

...

source

...

pCopyConstructor

...

tmp

...

size

...

overwrite ZEND_FILE_LINE_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
_zend_hash_init | Уровень выше | _zend_hash_quick_add_or_update


_zend_hash_quick_add_or_update

(no version information, might be only in CVS)

_zend_hash_quick_add_or_update -- ...

Описание

#include <zend_hash.h>

int _zend_hash_quick_add_or_update ( HashTable* ht, char* arKey, uint nKeyLength, ulong h, void* pData, uint nDataSize, void** pDest, int flag ZEND_FILE_LINE_DC )

...

Список параметров

ht

...

arKey

...

nKeyLength

...

h

...

pData

...

nDataSize

...

pDest

...

flag ZEND_FILE_LINE_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
_zend_hash_merge | Уровень выше | Z_ARRVAL_P


add_assoc_bool

(no version information, might be only in CVS)

add_assoc_bool -- ...

Описание

#include <zend_API.h>

int add_assoc_bool ( zval* arg, char* key, int b )

...

Список параметров

arg

...

key

...

b

...

Возвращаемые значения

...

Пред. | Начало | След.
add_assoc_bool_ex | Уровень выше | add_assoc_double_ex


add_assoc_bool_ex

(no version information, might be only in CVS)

add_assoc_bool_ex -- ...

Описание

#include <zend_API.h>

int add_assoc_bool_ex ( zval* arg, char* key, uint key_len, int b )

...

Список параметров

arg

...

key

...

key_len

...

b

...

Возвращаемые значения

...

Пред. | Начало | След.
ZEND_WRONG_PARAM_COUNT_WITH_RETVAL | Уровень выше | add_assoc_bool


add_assoc_double

(no version information, might be only in CVS)

add_assoc_double -- ...

Описание

#include <zend_API.h>

int add_assoc_double ( zval* arg, char* key, double d )

...

Список параметров

arg

...

key

...

d

...

Возвращаемые значения

...

Пред. | Начало | След.
add_assoc_double_ex | Уровень выше | add_assoc_function


add_assoc_double_ex

(no version information, might be only in CVS)

add_assoc_double_ex -- ...

Описание

#include <zend_API.h>

int add_assoc_double_ex ( zval* arg, char* key, uint key_len, double d )

...

Список параметров

arg

...

key

...

key_len

...

d

...

Возвращаемые значения

...

Пред. | Начало | След.
add_assoc_bool | Уровень выше | add_assoc_double


add_assoc_function

(no version information, might be only in CVS)

add_assoc_function -- ...

Описание

#include <zend_API.h>

int add_assoc_function ( zval* arg, char* key, void (*function_ptr)(INTERNAL_FUNCTION_PARAMETERS) )

...

Список параметров

arg

...

key

...

(*function_ptr)(INTERNAL_FUNCTION_PARAMETERS)

...

Возвращаемые значения

...

Пред. | Начало | След.
add_assoc_double | Уровень выше | add_assoc_long_ex


add_assoc_long

(no version information, might be only in CVS)

add_assoc_long -- ...

Описание

#include <zend_API.h>

int add_assoc_long ( zval* arg, char* key, long n )

...

Список параметров

arg

...

key

...

n

...

Возвращаемые значения

...

Пред. | Начало | След.
add_assoc_long_ex | Уровень выше | add_assoc_null_ex


add_assoc_long_ex

(no version information, might be only in CVS)

add_assoc_long_ex -- ...

Описание

#include <zend_API.h>

int add_assoc_long_ex ( zval* arg, char* key, uint key_len, long n )

...

Список параметров

arg

...

key

...

key_len

...

n

...

Возвращаемые значения

...

Пред. | Начало | След.
add_assoc_function | Уровень выше | add_assoc_long


add_assoc_null

(no version information, might be only in CVS)

add_assoc_null -- ...

Описание

#include <zend_API.h>

int add_assoc_null ( zval* arg, char* key )

...

Список параметров

arg

...

key

...

Возвращаемые значения

...

Пред. | Начало | След.
add_assoc_null_ex | Уровень выше | add_assoc_resource_ex


add_assoc_null_ex

(no version information, might be only in CVS)

add_assoc_null_ex -- ...

Описание

#include <zend_API.h>

int add_assoc_null_ex ( zval* arg, char* key, uint key_len )

...

Список параметров

arg

...

key

...

key_len

...

Возвращаемые значения

...

Пред. | Начало | След.
add_assoc_long | Уровень выше | add_assoc_null


add_assoc_resource

(no version information, might be only in CVS)

add_assoc_resource -- ...

Описание

#include <zend_API.h>

int add_assoc_resource ( zval* arg, char* key, int r )

...

Список параметров

arg

...

key

...

r

...

Возвращаемые значения

...

Пред. | Начало | След.
add_assoc_resource_ex | Уровень выше | add_assoc_string_ex


add_assoc_resource_ex

(no version information, might be only in CVS)

add_assoc_resource_ex -- ...

Описание

#include <zend_API.h>

int add_assoc_resource_ex ( zval* arg, char* key, uint key_len, int r )

...

Список параметров

arg

...

key

...

key_len

...

r

...

Возвращаемые значения

...

Пред. | Начало | След.
add_assoc_null | Уровень выше | add_assoc_resource


add_assoc_string

(no version information, might be only in CVS)

add_assoc_string -- ...

Описание

#include <zend_API.h>

int add_assoc_string ( zval* arg, char* str, uint key_len, int duplicate )

...

Список параметров

arg

...

str

...

key_len

...

duplicate

...

Возвращаемые значения

...

Пред. | Начало | След.
add_assoc_string_ex | Уровень выше | add_assoc_stringl_ex


add_assoc_string_ex

(no version information, might be only in CVS)

add_assoc_string_ex -- ...

Описание

#include <zend_API.h>

int add_assoc_string_ex ( zval* arg, char* key, uint key_len, char* str, int duplicate )

...

Список параметров

arg

...

key

...

key_len

...

str

...

duplicate

...

Возвращаемые значения

...

Пред. | Начало | След.
add_assoc_resource | Уровень выше | add_assoc_string


add_assoc_stringl

(no version information, might be only in CVS)

add_assoc_stringl -- ...

Описание

#include <zend_API.h>

int add_assoc_stringl ( zval* arg, char* str, int duplicate )

...

Список параметров

arg

...

str

...

duplicate

...

Возвращаемые значения

...

Пред. | Начало | След.
add_assoc_stringl_ex | Уровень выше | add_assoc_zval_ex


add_assoc_stringl_ex

(no version information, might be only in CVS)

add_assoc_stringl_ex -- ...

Описание

#include <zend_API.h>

int add_assoc_stringl_ex ( zval* arg, char* key, uint key_len, char* str, uint length, int duplicate )

...

Список параметров

arg

...

key

...

key_len

...

str

...

length

...

duplicate

...

Возвращаемые значения

...

Пред. | Начало | След.
add_assoc_string | Уровень выше | add_assoc_stringl


add_assoc_zval

(no version information, might be only in CVS)

add_assoc_zval -- ...

Описание

#include <zend_API.h>

int add_assoc_zval ( zval* arg, char* key, zval* value )

...

Список параметров

arg

...

key

...

value

...

Возвращаемые значения

...

Пред. | Начало | След.
add_assoc_zval_ex | Уровень выше | add_get_assoc_string_ex


add_assoc_zval_ex

(no version information, might be only in CVS)

add_assoc_zval_ex -- ...

Описание

#include <zend_API.h>

int add_assoc_zval_ex ( zval* arg, char* key, uint key_len, zval* value )

...

Список параметров

arg

...

key

...

key_len

...

value

...

Возвращаемые значения

...

Пред. | Начало | След.
add_assoc_stringl | Уровень выше | add_assoc_zval


add_get_assoc_string

(no version information, might be only in CVS)

add_get_assoc_string -- ...

Описание

#include <zend_API.h>

int add_get_assoc_string ( zval* arg, char* key, char* str, void* *dest, int duplicate )

...

Список параметров

arg

...

str

...

*dest

...

duplicate

...

Возвращаемые значения

...

Пред. | Начало | След.
add_get_assoc_string_ex | Уровень выше | add_get_assoc_stringl_ex


add_get_assoc_string_ex

(no version information, might be only in CVS)

add_get_assoc_string_ex -- ...

Описание

#include <zend_API.h>

int add_get_assoc_string_ex ( zval* arg, char* key, uint key_len, char* str, void** dest, int duplicate )

...

Список параметров

arg

...

key

...

key_len

...

str

...

dest

...

duplicate

...

Возвращаемые значения

...

Пред. | Начало | След.
add_assoc_zval | Уровень выше | add_get_assoc_string


add_get_assoc_stringl

(no version information, might be only in CVS)

add_get_assoc_stringl -- ...

Описание

#include <zend_API.h>

int add_get_assoc_stringl ( zval* arg, char* str, uint length, void* *dest, int duplicate )

...

Список параметров

arg

...

str

...

length

...

*dest

...

duplicate

...

Возвращаемые значения

...

Пред. | Начало | След.
add_get_assoc_stringl_ex | Уровень выше | add_get_index_double


add_get_assoc_stringl_ex

(no version information, might be only in CVS)

add_get_assoc_stringl_ex -- ...

Описание

#include <zend_API.h>

int add_get_assoc_stringl_ex ( zval* arg, char* key, uint key_len, char* str, uint length, void** dest, int duplicate )

...

Список параметров

arg

...

key

...

key_len

...

str

...

length

...

dest

...

duplicate

...

Возвращаемые значения

...

Пред. | Начало | След.
add_get_assoc_string | Уровень выше | add_get_assoc_stringl


add_get_index_double

(no version information, might be only in CVS)

add_get_index_double -- ...

Описание

#include <zend_API.h>

int add_get_index_double ( zval* arg, uint idx, double d, void** dest )

...

Список параметров

arg

...

idx

...

d

...

dest

...

Возвращаемые значения

...

Пред. | Начало | След.
add_get_assoc_stringl | Уровень выше | add_get_index_long


add_get_index_long

(no version information, might be only in CVS)

add_get_index_long -- ...

Описание

#include <zend_API.h>

int add_get_index_long ( zval* arg, uint idx, long l, void** dest )

...

Список параметров

arg

...

idx

...

l

...

dest

...

Возвращаемые значения

...

Пред. | Начало | След.
add_get_index_double | Уровень выше | add_get_index_string


add_get_index_string

(no version information, might be only in CVS)

add_get_index_string -- ...

Описание

#include <zend_API.h>

int add_get_index_string ( zval* arg, uint idx, char* str, void** dest, int duplicate )

...

Список параметров

arg

...

idx

...

str

...

dest

...

duplicate

...

Возвращаемые значения

...

Пред. | Начало | След.
add_get_index_long | Уровень выше | add_get_index_stringl


add_get_index_stringl

(no version information, might be only in CVS)

add_get_index_stringl -- ...

Описание

#include <zend_API.h>

int add_get_index_stringl ( zval* arg, uint idx, char* str, uint length, void** dest, int duplicate )

...

Список параметров

arg

...

idx

...

str

...

length

...

dest

...

duplicate

...

Возвращаемые значения

...

Пред. | Начало | След.
add_get_index_string | Уровень выше | add_index_bool


add_index_bool

(no version information, might be only in CVS)

add_index_bool -- ...

Описание

#include <zend_API.h>

int add_index_bool ( zval* arg, uint idx, int b )

...

Список параметров

arg

...

idx

...

b

...

Возвращаемые значения

...

Пред. | Начало | След.
add_get_index_stringl | Уровень выше | add_index_double


add_index_double

(no version information, might be only in CVS)

add_index_double -- ...

Описание

#include <zend_API.h>

int add_index_double ( zval* arg, uint idx, double d )

...

Список параметров

arg

...

idx

...

d

...

Возвращаемые значения

...

Пред. | Начало | След.
add_index_bool | Уровень выше | add_index_long


add_index_long

(no version information, might be only in CVS)

add_index_long -- ...

Описание

#include <zend_API.h>

int add_index_long ( zval* arg, uint idx, long n )

...

Список параметров

arg

...

idx

...

n

...

Возвращаемые значения

...

Пред. | Начало | След.
add_index_double | Уровень выше | add_index_null


add_index_null

(no version information, might be only in CVS)

add_index_null -- ...

Описание

#include <zend_API.h>

int add_index_null ( zval* arg, uint idx )

...

Список параметров

arg

...

idx

...

Возвращаемые значения

...

Пред. | Начало | След.
add_index_long | Уровень выше | add_index_resource


add_index_resource

(no version information, might be only in CVS)

add_index_resource -- ...

Описание

#include <zend_API.h>

int add_index_resource ( zval* arg, uint idx, int r )

...

Список параметров

arg

...

idx

...

r

...

Возвращаемые значения

...

Пред. | Начало | След.
add_index_null | Уровень выше | add_index_string


add_index_string

(no version information, might be only in CVS)

add_index_string -- ...

Описание

#include <zend_API.h>

int add_index_string ( zval* arg, uint idx, char* str, int duplicate )

...

Список параметров

arg

...

idx

...

str

...

duplicate

...

Возвращаемые значения

...

Пред. | Начало | След.
add_index_resource | Уровень выше | add_index_stringl


add_index_stringl

(no version information, might be only in CVS)

add_index_stringl -- ...

Описание

#include <zend_API.h>

int add_index_stringl ( zval* arg, uint idx, char* str, uint length, int duplicate )

...

Список параметров

arg

...

idx

...

str

...

length

...

duplicate

...

Возвращаемые значения

...

Пред. | Начало | След.
add_index_string | Уровень выше | add_index_zval


add_index_zval

(no version information, might be only in CVS)

add_index_zval -- ...

Описание

#include <zend_API.h>

int add_index_zval ( zval* arg, uint index, zval* value )

...

Список параметров

arg

...

index

...

value

...

Возвращаемые значения

...

Пред. | Начало | След.
add_index_stringl | Уровень выше | add_next_index_bool


add_next_index_bool

(no version information, might be only in CVS)

add_next_index_bool -- ...

Описание

#include <zend_API.h>

int add_next_index_bool ( zval* arg, int b )

...

Список параметров

arg

...

b

...

Возвращаемые значения

...

Пред. | Начало | След.
add_index_zval | Уровень выше | add_next_index_double


add_next_index_double

(no version information, might be only in CVS)

add_next_index_double -- ...

Описание

#include <zend_API.h>

int add_next_index_double ( zval* arg, double d )

...

Список параметров

arg

...

d

...

Возвращаемые значения

...

Пред. | Начало | След.
add_next_index_bool | Уровень выше | add_next_index_long


add_next_index_long

(no version information, might be only in CVS)

add_next_index_long -- ...

Описание

#include <zend_API.h>

int add_next_index_long ( zval* arg, long n )

...

Список параметров

arg

...

n

...

Возвращаемые значения

...

Пред. | Начало | След.
add_next_index_double | Уровень выше | add_next_index_null


add_next_index_null

(no version information, might be only in CVS)

add_next_index_null -- ...

Описание

#include <zend_API.h>

int add_next_index_null ( zval* arg )

...

Список параметров

arg

...

Возвращаемые значения

...

Пред. | Начало | След.
add_next_index_long | Уровень выше | add_next_index_resource


add_next_index_resource

(no version information, might be only in CVS)

add_next_index_resource -- ...

Описание

#include <zend_API.h>

int add_next_index_resource ( zval* arg, int r )

...

Список параметров

arg

...

r

...

Возвращаемые значения

...

Пред. | Начало | След.
add_next_index_null | Уровень выше | add_next_index_string


add_next_index_string

(no version information, might be only in CVS)

add_next_index_string -- ...

Описание

#include <zend_API.h>

int add_next_index_string ( zval* arg, char* str, int duplicate )

...

Список параметров

arg

...

str

...

duplicate

...

Возвращаемые значения

...

Пред. | Начало | След.
add_next_index_resource | Уровень выше | add_next_index_stringl


add_next_index_stringl

(no version information, might be only in CVS)

add_next_index_stringl -- ...

Описание

#include <zend_API.h>

int add_next_index_stringl ( zval* arg, char* str, uint length, int duplicate )

...

Список параметров

arg

...

str

...

length

...

duplicate

...

Возвращаемые значения

...

Пред. | Начало | След.
add_next_index_string | Уровень выше | add_next_index_zval


add_next_index_zval

(no version information, might be only in CVS)

add_next_index_zval -- ...

Описание

#include <zend_API.h>

int add_next_index_zval ( zval* arg, zval* value )

...

Список параметров

arg

...

value

...

Возвращаемые значения

...

Пред. | Начало | След.
add_next_index_stringl | Уровень выше | add_property_bool_ex


add_property_bool

(no version information, might be only in CVS)

add_property_bool -- ...

Описание

#include <zend_API.h>

int add_property_bool ( zval* arg, char* key, int b )

...

Список параметров

arg

...

key

...

b

...

Возвращаемые значения

...

Пред. | Начало | След.
add_property_bool_ex | Уровень выше | add_property_double_ex


add_property_bool_ex

(no version information, might be only in CVS)

add_property_bool_ex -- ...

Описание

#include <zend_API.h>

int add_property_bool_ex ( zval* arg, char* key, uint key_len, int b TSRMLS_DC )

...

Список параметров

arg

...

key

...

key_len

...

b TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
add_next_index_zval | Уровень выше | add_property_bool


add_property_double

(no version information, might be only in CVS)

add_property_double -- ...

Описание

#include <zend_API.h>

int add_property_double ( zval* arg, char* key, double d )

...

Список параметров

arg

...

key

...

d

...

Возвращаемые значения

...

Пред. | Начало | След.
add_property_double_ex | Уровень выше | add_property_long_ex


add_property_double_ex

(no version information, might be only in CVS)

add_property_double_ex -- ...

Описание

#include <zend_API.h>

int add_property_double_ex ( zval* arg, char* key, uint key_len, double d TSRMLS_DC )

...

Список параметров

arg

...

key

...

key_len

...

d TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
add_property_bool | Уровень выше | add_property_double


add_property_long

(no version information, might be only in CVS)

add_property_long -- ...

Описание

#include <zend_API.h>

int add_property_long ( zval* arg, char* key, long l )

...

Список параметров

arg

...

key

...

l

...

Возвращаемые значения

...

Пред. | Начало | След.
add_property_long_ex | Уровень выше | add_property_null_ex


add_property_long_ex

(no version information, might be only in CVS)

add_property_long_ex -- ...

Описание

#include <zend_API.h>

int add_property_long_ex ( zval* arg, char* key, uint key_len, long l TSRMLS_DC )

...

Список параметров

arg

...

key

...

key_len

...

l TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
add_property_double | Уровень выше | add_property_long


add_property_null

(no version information, might be only in CVS)

add_property_null -- ...

Описание

#include <zend_API.h>

int add_property_null ( zval* arg, char* key )

...

Список параметров

arg

...

key

...

Возвращаемые значения

...

Пред. | Начало | След.
add_property_null_ex | Уровень выше | add_property_resource_ex


add_property_null_ex

(no version information, might be only in CVS)

add_property_null_ex -- ...

Описание

#include <zend_API.h>

int add_property_null_ex ( zval* arg, char* key, uint key_len TSRMLS_DC )

...

Список параметров

arg

...

key

...

key_len TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
add_property_long | Уровень выше | add_property_null


add_property_resource

(no version information, might be only in CVS)

add_property_resource -- ...

Описание

#include <zend_API.h>

int add_property_resource ( zval* arg, char* key, long r )

...

Список параметров

arg

...

key

...

key_len

...

Возвращаемые значения

...

Пред. | Начало | След.
add_property_resource_ex | Уровень выше | add_property_string_ex


add_property_resource_ex

(no version information, might be only in CVS)

add_property_resource_ex -- ...

Описание

#include <zend_API.h>

int add_property_resource_ex ( zval* arg, char* key, uint key_len, long r TSRMLS_DC )

...

Список параметров

arg

...

key

...

key_len

...

r TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
add_property_null | Уровень выше | add_property_resource


add_property_string

(no version information, might be only in CVS)

add_property_string -- ...

Описание

#include <zend_API.h>

int add_property_string ( zval* arg, char* key, char* str, int duplicate )

...

Список параметров

arg

...

key

...

str

...

duplicate

...

Возвращаемые значения

...

Пред. | Начало | След.
add_property_string_ex | Уровень выше | add_property_stringl_ex


add_property_string_ex

(no version information, might be only in CVS)

add_property_string_ex -- ...

Описание

#include <zend_API.h>

int add_property_string_ex ( zval* arg, char* key, uint key_len, char* str, int duplicate TSRMLS_DC )

...

Список параметров

arg

...

key

...

key_len

...

str

...

duplicate TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
add_property_resource | Уровень выше | add_property_string


add_property_stringl

(no version information, might be only in CVS)

add_property_stringl -- ...

Описание

#include <zend_API.h>

int add_property_stringl ( zval* arg, char* key, char* str, uint length, int duplicate )

...

Список параметров

arg

...

key

...

str

...

length

...

duplicate

...

Возвращаемые значения

...

Пред. | Начало | След.
add_property_stringl_ex | Уровень выше | add_property_zval_ex


add_property_stringl_ex

(no version information, might be only in CVS)

add_property_stringl_ex -- ...

Описание

#include <zend_API.h>

int add_property_stringl_ex ( zval* arg, char* key, uint key_len, char* str, uint length, int duplicate TSRMLS_DC )

...

Список параметров

arg

...

key

...

key_len

...

str

...

length

...

duplicate TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
add_property_string | Уровень выше | add_property_stringl


add_property_zval

(no version information, might be only in CVS)

add_property_zval -- ...

Описание

#include <zend_API.h>

int add_property_zval ( zval* arg, char* key, zval* value )

...

Список параметров

arg

...

key

...

value

...

Возвращаемые значения

...

Пред. | Начало | След.
add_property_zval_ex | Уровень выше | array_init


add_property_zval_ex

(no version information, might be only in CVS)

add_property_zval_ex -- ...

Описание

#include <zend_API.h>

int add_property_zval_ex ( zval* arg, char* key, uint key_len, zval* value TSRMLS_DC )

...

Список параметров

arg

...

key

...

key_len

...

value TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
add_property_stringl | Уровень выше | add_property_zval


array_init

(no version information, might be only in CVS)

array_init -- ...

Описание

#include <zend_API.h>

int array_init ( zval* arg )

...

Список параметров

arg

...

Возвращаемые значения

...

Пред. | Начало | След.
add_property_zval | Уровень выше | call_user_function_ex


call_user_function

(no version information, might be only in CVS)

call_user_function -- ...

Описание

#include <zend_API.h>

int call_user_function ( HashTable* function_table, zval** object_pp, zval* function_name, zval* retval_ptr, zend_uint param_count, zval* params[] TSRMLS_DC )

...

Список параметров

function_table

...

object_pp

...

function_name

...

retval_ptr

...

param_count

...

params[] TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
call_user_function_ex | Уровень выше | free_estring


call_user_function_ex

(no version information, might be only in CVS)

call_user_function_ex -- ...

Описание

#include <zend_API.h>

int call_user_function_ex ( HashTable* function_table, zval** object_pp, zval* function_name, zval** retval_ptr_ptr, zend_uint param_count, zval** params[], int no_separation, HashTable* symbol_table TSRMLS_DC )

...

Список параметров

function_table

...

object_pp

...

function_name

...

retval_ptr_ptr

...

param_count

...

params[]

...

no_separation

...

symbol_table TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
array_init | Уровень выше | call_user_function


free_estring

(no version information, might be only in CVS)

free_estring -- ...

Описание

#include <zend.h>

void free_estring ( char** str_p )

...

Список параметров

str_p

...

Возвращаемые значения

...

Пред. | Начало | След.
call_user_function | Уровень выше | get_zend_version


get_zend_version

(no version information, might be only in CVS)

get_zend_version -- ...

Описание

#include <zend.h>

char* get_zend_version ( void )

...

Список параметров

void

...

Возвращаемые значения

...

Пред. | Начало | След.
free_estring | Уровень выше | ZEND_WRONG_PARAM_COUNT


object_and_properties_init

(no version information, might be only in CVS)

object_and_properties_init -- ...

Описание

#include <zend_API.h>

int object_and_properties_init ( zval* arg, zend_class_entry* ce, HashTable* properties )

...

Список параметров

arg

...

ce

...

properties

...

Возвращаемые значения

...

Пред. | Начало | След.
ZEND_WRONG_PARAM_COUNT | Уровень выше | object_init_ex


object_init

(no version information, might be only in CVS)

object_init -- ...

Описание

#include <zend_API.h>

int object_init ( zval* arg )

...

Список параметров

arg

...

Возвращаемые значения

...

Пред. | Начало | След.
object_init_ex | Уровень выше | zend_call_function


object_init_ex

(no version information, might be only in CVS)

object_init_ex -- ...

Описание

#include <zend_API.h>

int object_init_ex ( zval* arg, zend_class_entry* ce )

...

Список параметров

arg

...

ce

...

Возвращаемые значения

...

Пред. | Начало | След.
object_and_properties_init | Уровень выше | object_init


zend_call_function

(no version information, might be only in CVS)

zend_call_function -- ...

Описание

#include <zend_API.h>

int zend_call_function ( zend_fcall_info* fci, zend_fcall_info_cache* fci_cache TSRMLS_DC )

...

Список параметров

fci

...

fci_cache TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
object_init | Уровень выше | zend_check_magic_method_implementation


zend_check_magic_method_implementation

(no version information, might be only in CVS)

zend_check_magic_method_implementation -- ...

Описание

#include <zend_API.h>

void zend_check_magic_method_implementation ( zend_class_entry* ce, zend_function* fptr, int error_type TSRMLS_DC )

...

Список параметров

ce

...

fptr

...

error_type TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_call_function | Уровень выше | zend_class_implements


zend_class_implements

(no version information, might be only in CVS)

zend_class_implements -- ...

Описание

#include <zend_API.h>

void zend_class_implements ( zend_class_entry* class_entry TSRMLS_DC, int num_interfaces, ... )

...

Список параметров

class_entry TSRMLS_DC

...

num_interfaces

...

...

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_check_magic_method_implementation | Уровень выше | zend_copy_parameters_array


zend_copy_parameters_array

(no version information, might be only in CVS)

zend_copy_parameters_array -- ...

Описание

#include <zend_API.h>

int zend_copy_parameters_array ( int param_count, zval* argument_array TSRMLS_DC )

...

Список параметров

param_count

...

argument_array TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_class_implements | Уровень выше | zend_declare_property_bool


zend_declare_property

(no version information, might be only in CVS)

zend_declare_property -- ...

Описание

#include <zend_API.h>

int zend_declare_property ( zend_class_entry* ce, char* name, int name_length, zval* property, int access_type TSRMLS_DC )

...

Список параметров

ce

...

name

...

name_length

...

property

...

access_type TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_declare_property_stringl | Уровень выше | zend_delete_global_variable


zend_declare_property_bool

(no version information, might be only in CVS)

zend_declare_property_bool -- ...

Описание

#include <zend_API.h>

int zend_declare_property_bool ( zend_class_entry* ce, char* name, int name_length, long value, int access_type TSRMLS_DC )

...

Список параметров

ce

...

name

...

name_length

...

value

...

access_type TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_copy_parameters_array | Уровень выше | zend_declare_property_double


zend_declare_property_double

(no version information, might be only in CVS)

zend_declare_property_double -- ...

Описание

#include <zend_API.h>

int zend_declare_property_double ( zend_class_entry* ce, char* name, int name_length, double value, int access_type TSRMLS_DC )

...

Список параметров

ce

...

name

...

name_length

...

value

...

access_type TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_declare_property_bool | Уровень выше | zend_declare_property_ex


zend_declare_property_ex

(no version information, might be only in CVS)

zend_declare_property_ex -- ...

Описание

#include <zend_API.h>

int zend_declare_property_ex ( zend_class_entry* ce, char* name, int name_length, zval* property, int access_type, char* doc_comment, int doc_comment_len TSRMLS_DC )

...

Список параметров

ce

...

name

...

name_length

...

property

...

access_type

...

doc_comment

...

doc_comment_len TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_declare_property_double | Уровень выше | zend_declare_property_long


zend_declare_property_long

(no version information, might be only in CVS)

zend_declare_property_long -- ...

Описание

#include <zend_API.h>

int zend_declare_property_long ( zend_class_entry* ce, char* name, int name_length, long value, int access_type TSRMLS_DC )

...

Список параметров

ce

...

name

...

name_length

...

value

...

access_type TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_declare_property_ex | Уровень выше | zend_declare_property_null


zend_declare_property_null

(no version information, might be only in CVS)

zend_declare_property_null -- ...

Описание

#include <zend_API.h>

int zend_declare_property_null ( zend_class_entry* ce, char* name, int name_length, int access_type TSRMLS_DC )

...

Список параметров

ce

...

name

...

name_length

...

access_type TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_declare_property_long | Уровень выше | zend_declare_property_string


zend_declare_property_string

(no version information, might be only in CVS)

zend_declare_property_string -- ...

Описание

#include <zend_API.h>

int zend_declare_property_string ( zend_class_entry* ce, char* name, int name_length, char* value, int access_type TSRMLS_DC )

...

Список параметров

ce

...

name

...

name_length

...

value

...

access_type TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_declare_property_null | Уровень выше | zend_declare_property_stringl


zend_declare_property_stringl

(no version information, might be only in CVS)

zend_declare_property_stringl -- ...

Описание

#include <zend_API.h>

int zend_declare_property_stringl ( zend_class_entry* ce, char* name, int name_length, char* value, int value_len, int access_type TSRMLS_DC )

...

Список параметров

ce

...

name

...

name_length

...

value

...

value_len

...

access_type TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_declare_property_string | Уровень выше | zend_declare_property


zend_delete_global_variable

(no version information, might be only in CVS)

zend_delete_global_variable -- ...

Описание

#include <zend_API.h>

int zend_delete_global_variable ( char* name, int name_len TSRMLS_DC )

...

Список параметров

name

...

name_len TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_declare_property | Уровень выше | zend_disable_class


zend_disable_class

(no version information, might be only in CVS)

zend_disable_class -- ...

Описание

#include <zend_API.h>

int zend_disable_class ( char* class_name, uint class_name_length TSRMLS_DC )

...

Список параметров

class_name

...

class_name_length TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_delete_global_variable | Уровень выше | zend_disable_function


zend_disable_function

(no version information, might be only in CVS)

zend_disable_function -- ...

Описание

#include <zend_API.h>

int zend_disable_function ( char* function_name, uint function_name_length TSRMLS_DC )

...

Список параметров

function_name

...

function_name_length TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_disable_class | Уровень выше | zend_error


zend_error

(no version information, might be only in CVS)

zend_error -- ...

Описание

#include <zend.h>

void zend_error ( int type, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 2, 3 )

...

Список параметров

type

...

char *format

...

ZEND_ATTRIBUTE_FORMAT(printf

...

2

...

3

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_disable_function | Уровень выше | zend_get_class_entry


zend_get_class_entry

(no version information, might be only in CVS)

zend_get_class_entry -- ...

Описание

#include <zend_API.h>

zend_class_entry* zend_get_class_entry ( zval* zobject TSRMLS_DC )

...

Список параметров

zobject TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_error | Уровень выше | zend_get_configuration_directive


zend_get_configuration_directive

(no version information, might be only in CVS)

zend_get_configuration_directive -- ...

Описание

#include <zend.h>

int zend_get_configuration_directive ( char* name, uint name_length, zval* contents )

...

Список параметров

name

...

name_length

...

contents

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_get_class_entry | Уровень выше | zend_get_hash_value


zend_get_hash_value

(no version information, might be only in CVS)

zend_get_hash_value -- ...

Описание

#include <zend_hash.h>

ulong zend_get_hash_value ( char* arKey, uint nKeyLength )

...

Список параметров

arKey

...

nKeyLength

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_get_configuration_directive | Уровень выше | zend_get_module_started


zend_get_module_started

(no version information, might be only in CVS)

zend_get_module_started -- ...

Описание

#include <zend_API.h>

int zend_get_module_started ( char* module_name )

...

Список параметров

module_name

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_get_hash_value | Уровень выше | zend_get_module_version


zend_get_module_version

(no version information, might be only in CVS)

zend_get_module_version -- ...

Описание

#include <zend_API.h>

char* zend_get_module_version ( char* module_name )

...

Список параметров

module_name

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_get_module_started | Уровень выше | zend_get_object_classname


zend_get_object_classname

(no version information, might be only in CVS)

zend_get_object_classname -- ...

Описание

#include <zend_API.h>

int zend_get_object_classname ( zval* object, char** class_name, zend_uint* class_name_len TSRMLS_DC )

...

Список параметров

object

...

class_name

...

class_name_len TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_get_module_version | Уровень выше | zend_get_parameters_array_ex


zend_get_parameters

(no version information, might be only in CVS)

zend_get_parameters -- ...

Описание

#include <zend_API.h>

int zend_get_parameters ( int ht, int param_count, ... )

...

Список параметров

ht

...

param_count

...

...

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_get_parameters_ex | Уровень выше | zend_get_std_object_handlers


zend_get_parameters_array

(no version information, might be only in CVS)

zend_get_parameters_array -- ...

Описание

#include <zend_API.h>

int zend_get_parameters_array ( int ht, int param_count, zval** argument_array )

...

Список параметров

ht

...

param_count

...

argument_array

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_get_parameters_array_ex | Уровень выше | zend_get_parameters_ex


zend_get_parameters_array_ex

(no version information, might be only in CVS)

zend_get_parameters_array_ex -- ...

Описание

#include <zend_API.h>

int zend_get_parameters_array_ex ( int param_count, zval*** argument_array )

...

Список параметров

param_count

...

argument_array

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_get_object_classname | Уровень выше | zend_get_parameters_array


zend_get_parameters_ex

(no version information, might be only in CVS)

zend_get_parameters_ex -- ...

Описание

#include <zend_API.h>

int zend_get_parameters_ex ( int param_count, ... )

...

Список параметров

param_count

...

...

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_get_parameters_array | Уровень выше | zend_get_parameters


zend_get_std_object_handlers

(no version information, might be only in CVS)

zend_get_std_object_handlers -- ...

Описание

#include <zend_objects_API.h>

zend_object_handlers* zend_get_std_object_handlers ( )

...

Список параметров

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_get_parameters | Уровень выше | zend_hash_add_empty_element


zend_hash_add

(no version information, might be only in CVS)

zend_hash_add -- ...

Описание

#include <zend_hash.h>

int zend_hash_add ( HashTable* ht, char* arKey, uint nKeyLength, void* pData, uint nDataSize, void** pDest )

...

Список параметров

ht

...

arKey

...

nKeyLength

...

pData

...

nDataSize

...

pDest

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_add_empty_element | Уровень выше | zend_hash_apply_with_argument


zend_hash_add_empty_element

(no version information, might be only in CVS)

zend_hash_add_empty_element -- ...

Описание

#include <zend_hash.h>

int zend_hash_add_empty_element ( HashTable* ht, char* arKey, uint nKeyLength )

...

Список параметров

ht

...

arKey

...

nKeyLength

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_get_std_object_handlers | Уровень выше | zend_hash_add


zend_hash_apply

(no version information, might be only in CVS)

zend_hash_apply -- ...

Описание

#include <zend_hash.h>

void zend_hash_apply ( HashTable* ht, apply_func_t apply_func TSRMLS_DC )

...

Список параметров

ht

...

apply_func TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_apply_with_arguments | Уровень выше | zend_hash_clean


zend_hash_apply_with_argument

(no version information, might be only in CVS)

zend_hash_apply_with_argument -- ...

Описание

#include <zend_hash.h>

void zend_hash_apply_with_argument ( HashTable* ht, apply_func_arg_t apply_func, void* TSRMLS_DC )

...

Список параметров

ht

...

apply_func

...

TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_add | Уровень выше | zend_hash_apply_with_arguments


zend_hash_apply_with_arguments

(no version information, might be only in CVS)

zend_hash_apply_with_arguments -- ...

Описание

#include <zend_hash.h>

void zend_hash_apply_with_arguments ( HashTable* ht, apply_func_args_t apply_func, int, ... )

...

Список параметров

ht

...

apply_func

...

int

...

...

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_apply_with_argument | Уровень выше | zend_hash_apply


zend_hash_clean

(no version information, might be only in CVS)

zend_hash_clean -- ...

Описание

#include <zend_hash.h>

void zend_hash_clean ( HashTable* ht )

...

Список параметров

ht

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_apply | Уровень выше | zend_hash_compare


zend_hash_compare

(no version information, might be only in CVS)

zend_hash_compare -- ...

Описание

#include <zend_hash.h>

int zend_hash_compare ( HashTable* ht1, HashTable* ht2, compare_func_t compar, zend_bool ordered TSRMLS_DC )

...

Список параметров

ht1

...

ht2

...

compar

...

ordered TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_clean | Уровень выше | zend_hash_copy


zend_hash_copy

(no version information, might be only in CVS)

zend_hash_copy -- ...

Описание

#include <zend_hash.h>

void zend_hash_copy ( HashTable* target, HashTable* source, copy_ctor_func_t pCopyConstructor, void* tmp, uint size )

...

Список параметров

target

...

source

...

pCopyConstructor

...

tmp

...

size

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_compare | Уровень выше | zend_hash_del_key_or_index


zend_hash_del_key_or_index

(no version information, might be only in CVS)

zend_hash_del_key_or_index -- ...

Описание

#include <zend_hash.h>

int zend_hash_del_key_or_index ( HashTable* ht, char* arKey, uint nKeyLength, ulong h, int flag )

...

Список параметров

ht

...

arKey

...

nKeyLength

...

h

...

flag

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_copy | Уровень выше | zend_hash_destroy


zend_hash_destroy

(no version information, might be only in CVS)

zend_hash_destroy -- ...

Описание

#include <zend_hash.h>

void zend_hash_destroy ( HashTable* ht )

...

Список параметров

ht

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_del_key_or_index | Уровень выше | zend_hash_exists


zend_hash_exists

(no version information, might be only in CVS)

zend_hash_exists -- ...

Описание

#include <zend_hash.h>

int zend_hash_exists ( HashTable* ht, char* arKey, uint nKeyLength )

...

Список параметров

ht

...

arKey

...

nKeyLength

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_destroy | Уровень выше | zend_hash_find


zend_hash_find

(no version information, might be only in CVS)

zend_hash_find -- ...

Описание

#include <zend_hash.h>

int zend_hash_find ( HashTable* ht, char* arKey, uint nKeyLength, void** pData )

...

Список параметров

ht

...

arKey

...

nKeyLength

...

pData

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_exists | Уровень выше | zend_hash_func


zend_hash_func

(no version information, might be only in CVS)

zend_hash_func -- ...

Описание

#include <zend_hash.h>

ulong zend_hash_func ( char* arKey, uint nKeyLength )

...

Список параметров

arKey

...

nKeyLength

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_find | Уровень выше | zend_hash_get_current_data_ex


zend_hash_get_current_data_ex

(no version information, might be only in CVS)

zend_hash_get_current_data_ex -- ...

Описание

#include <zend_hash.h>

int zend_hash_get_current_data_ex ( HashTable* ht, void** pData, HashPosition* pos )

...

Список параметров

ht

...

pData

...

pos

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_func | Уровень выше | zend_hash_get_current_key_ex


zend_hash_get_current_key_ex

(no version information, might be only in CVS)

zend_hash_get_current_key_ex -- ...

Описание

#include <zend_hash.h>

int zend_hash_get_current_key_ex ( HashTable* ht, char** str_index, uint* str_length, ulong* num_index, zend_bool duplicate, HashPosition* pos )

...

Список параметров

ht

...

str_index

...

str_length

...

num_index

...

duplicate

...

pos

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_get_current_data_ex | Уровень выше | zend_hash_get_current_key_type_ex


zend_hash_get_current_key_type_ex

(no version information, might be only in CVS)

zend_hash_get_current_key_type_ex -- ...

Описание

#include <zend_hash.h>

int zend_hash_get_current_key_type_ex ( HashTable* ht, HashPosition* pos )

...

Список параметров

ht

...

pos

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_get_current_key_ex | Уровень выше | zend_hash_graceful_destroy


zend_hash_graceful_destroy

(no version information, might be only in CVS)

zend_hash_graceful_destroy -- ...

Описание

#include <zend_hash.h>

void zend_hash_graceful_destroy ( HashTable* ht )

...

Список параметров

ht

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_get_current_key_type_ex | Уровень выше | zend_hash_graceful_reverse_destroy


zend_hash_graceful_reverse_destroy

(no version information, might be only in CVS)

zend_hash_graceful_reverse_destroy -- ...

Описание

#include <zend_hash.h>

void zend_hash_graceful_reverse_destroy ( HashTable* ht )

...

Список параметров

ht

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_graceful_destroy | Уровень выше | zend_hash_index_exists


zend_hash_index_exists

(no version information, might be only in CVS)

zend_hash_index_exists -- ...

Описание

#include <zend_hash.h>

int zend_hash_index_exists ( HashTable* ht, ulong h )

...

Список параметров

ht

...

h

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_graceful_reverse_destroy | Уровень выше | zend_hash_index_find


zend_hash_index_find

(no version information, might be only in CVS)

zend_hash_index_find -- ...

Описание

#include <zend_hash.h>

int zend_hash_index_find ( HashTable* ht, ulong h, void** pData )

...

Список параметров

ht

...

h

...

pData

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_index_exists | Уровень выше | zend_hash_init_ex


zend_hash_init

(no version information, might be only in CVS)

zend_hash_init -- ...

Описание

#include <zend_hash.h>

int zend_hash_init ( HashTable* ht, uint nSize, hash_func_t pHashFunction, dtor_func_t pDestructor, zend_bool persistent )

...

Список параметров

ht

...

nSize

...

pHashFunction

...

pDestructor

...

persistent

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_init_ex | Уровень выше | zend_hash_internal_pointer_end_ex


zend_hash_init_ex

(no version information, might be only in CVS)

zend_hash_init_ex -- ...

Описание

#include <zend_hash.h>

int zend_hash_init_ex ( HashTable* ht, uint nSize, hash_func_t pHashFunction, dtor_func_t pDestructor, zend_bool persistent, zend_bool bApplyProtection )

...

Список параметров

ht

...

nSize

...

pHashFunction

...

pDestructor

...

persistent

...

bApplyProtection

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_index_find | Уровень выше | zend_hash_init


zend_hash_internal_pointer_end_ex

(no version information, might be only in CVS)

zend_hash_internal_pointer_end_ex -- ...

Описание

#include <zend_hash.h>

void zend_hash_internal_pointer_end_ex ( HashTable* ht, HashPosition* pos )

...

Список параметров

ht

...

pos

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_init | Уровень выше | zend_hash_internal_pointer_reset_ex


zend_hash_internal_pointer_reset_ex

(no version information, might be only in CVS)

zend_hash_internal_pointer_reset_ex -- ...

Описание

#include <zend_hash.h>

void zend_hash_internal_pointer_reset_ex ( HashTable* ht, HashPosition* pos )

...

Список параметров

ht

...

pos

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_internal_pointer_end_ex | Уровень выше | zend_hash_merge_ex


zend_hash_merge_ex

(no version information, might be only in CVS)

zend_hash_merge_ex -- ...

Описание

#include <zend_hash.h>

void zend_hash_merge_ex ( HashTable* target, HashTable* source, copy_ctor_func_t pCopyConstructor, uint size, merge_checker_func_t pMergeSource, void* pParam )

...

Список параметров

target

...

source

...

pCopyConstructor

...

size

...

pMergeSource

...

pParam

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_internal_pointer_reset_ex | Уровень выше | zend_hash_minmax


zend_hash_minmax

(no version information, might be only in CVS)

zend_hash_minmax -- ...

Описание

#include <zend_hash.h>

int zend_hash_minmax ( HashTable* ht, compare_func_t compar, int flag, void** pData TSRMLS_DC )

...

Список параметров

ht

...

compar

...

flag

...

pData TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_merge_ex | Уровень выше | zend_hash_move_backwards_ex


zend_hash_move_backwards_ex

(no version information, might be only in CVS)

zend_hash_move_backwards_ex -- ...

Описание

#include <zend_hash.h>

int zend_hash_move_backwards_ex ( HashTable* ht, HashPosition* pos )

...

Список параметров

ht

...

pos

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_minmax | Уровень выше | zend_hash_move_forward_ex


zend_hash_move_forward_ex

(no version information, might be only in CVS)

zend_hash_move_forward_ex -- ...

Описание

#include <zend_hash.h>

int zend_hash_move_forward_ex ( HashTable* ht, HashPosition* pos )

...

Список параметров

ht

...

pos

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_move_backwards_ex | Уровень выше | zend_hash_next_free_element


zend_hash_next_free_element

(no version information, might be only in CVS)

zend_hash_next_free_element -- ...

Описание

#include <zend_hash.h>

ulong zend_hash_next_free_element ( HashTable* ht )

...

Список параметров

ht

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_move_forward_ex | Уровень выше | zend_hash_num_elements


zend_hash_num_elements

(no version information, might be only in CVS)

zend_hash_num_elements -- ...

Описание

#include <zend_hash.h>

int zend_hash_num_elements ( HashTable* ht )

...

Список параметров

ht

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_next_free_element | Уровень выше | zend_hash_quick_add


zend_hash_quick_add

(no version information, might be only in CVS)

zend_hash_quick_add -- ...

Описание

#include <zend_hash.h>

int zend_hash_quick_add ( HashTable* ht, char* arKey, uint nKeyLength, ulong h, void* pData, uint nDataSize, void** pDest )

...

Список параметров

ht

...

arKey

...

nKeyLength

...

h

...

pData

...

nDataSize

...

pDest

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_num_elements | Уровень выше | zend_hash_quick_exists


zend_hash_quick_exists

(no version information, might be only in CVS)

zend_hash_quick_exists -- ...

Описание

#include <zend_hash.h>

int zend_hash_quick_exists ( HashTable* ht, char* arKey, uint nKeyLength, ulong h )

...

Список параметров

ht

...

arKey

...

nKeyLength

...

h

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_quick_add | Уровень выше | zend_hash_quick_find


zend_hash_quick_find

(no version information, might be only in CVS)

zend_hash_quick_find -- ...

Описание

#include <zend_hash.h>

int zend_hash_quick_find ( HashTable* ht, char* arKey, uint nKeyLength, ulong h, void** pData )

...

Список параметров

ht

...

arKey

...

nKeyLength

...

h

...

pData

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_quick_exists | Уровень выше | zend_hash_quick_update


zend_hash_quick_update

(no version information, might be only in CVS)

zend_hash_quick_update -- ...

Описание

#include <zend_hash.h>

int zend_hash_quick_update ( HashTable* ht, char* arKey, uint nKeyLength, ulong h, void* pData, uint nDataSize, void** pDest )

...

Список параметров

ht

...

arKey

...

nKeyLength

...

h

...

pData

...

nDataSize

...

pDest

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_quick_find | Уровень выше | zend_hash_rehash


zend_hash_rehash

(no version information, might be only in CVS)

zend_hash_rehash -- ...

Описание

#include <zend_hash.h>

int zend_hash_rehash ( HashTable* ht )

...

Список параметров

ht

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_quick_update | Уровень выше | zend_hash_reverse_apply


zend_hash_reverse_apply

(no version information, might be only in CVS)

zend_hash_reverse_apply -- ...

Описание

#include <zend_hash.h>

void zend_hash_reverse_apply ( HashTable* ht, apply_func_t apply_func TSRMLS_DC )

...

Список параметров

ht

...

apply_func TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_rehash | Уровень выше | zend_hash_sort


zend_hash_sort

(no version information, might be only in CVS)

zend_hash_sort -- ...

Описание

#include <zend_hash.h>

int zend_hash_sort ( HashTable* ht, sort_func_t sort_func, compare_func_t compare_func, int renumber TSRMLS_DC )

...

Список параметров

ht

...

sort_func

...

compare_func

...

renumber TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_reverse_apply | Уровень выше | zend_hash_update_current_key_ex


zend_hash_update

(no version information, might be only in CVS)

zend_hash_update -- ...

Описание

#include <zend_hash.h>

int zend_hash_update ( HashTable* ht, char* arKey, uint nKeyLength, void* pData, uint nDataSize, void** pDest )

...

Список параметров

ht

...

arKey

...

nKeyLength

...

pData

...

nDataSize

...

pDest

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_update_current_key_ex | Уровень выше | zend_is_callable_ex


zend_hash_update_current_key_ex

(no version information, might be only in CVS)

zend_hash_update_current_key_ex -- ...

Описание

#include <zend_hash.h>

int zend_hash_update_current_key_ex ( HashTable* ht, int key_type, char* str_index, uint str_length, ulong num_index, HashPosition* pos )

...

Список параметров

ht

...

key_type

...

str_index

...

str_length

...

num_index

...

pos

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_sort | Уровень выше | zend_hash_update


zend_is_callable

(no version information, might be only in CVS)

zend_is_callable -- ...

Описание

#include <zend_API.h>

zend_bool zend_is_callable ( zval* callable, uint check_flags, char** callable_name )

...

Список параметров

callable

...

check_flags

...

callable_name

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_is_callable_ex | Уровень выше | zend_make_callable


zend_is_callable_ex

(no version information, might be only in CVS)

zend_is_callable_ex -- ...

Описание

#include <zend_API.h>

zend_bool zend_is_callable_ex ( zval* callable, uint check_flags, char** callable_name, int* callable_name_len, zend_function** fptr_ptr, zval*** zobj_ptr_ptr TSRMLS_DC )

...

Список параметров

callable

...

check_flags

...

callable_name

...

callable_name_len

...

fptr_ptr

...

zobj_ptr_ptr TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_hash_update | Уровень выше | zend_is_callable


zend_make_callable

(no version information, might be only in CVS)

zend_make_callable -- ...

Описание

#include <zend_API.h>

zend_bool zend_make_callable ( zval* callable, char** callable_name TSRMLS_DC )

...

Список параметров

callable

...

callable_name TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_is_callable | Уровень выше | zend_make_printable_zval


zend_make_printable_zval

(no version information, might be only in CVS)

zend_make_printable_zval -- ...

Описание

#include <zend.h>

void zend_make_printable_zval ( zval* expr, zval* expr_copy, int* use_copy )

...

Список параметров

expr

...

expr_copy

...

use_copy

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_make_callable | Уровень выше | zend_merge_properties


zend_merge_properties

(no version information, might be only in CVS)

zend_merge_properties -- ...

Описание

#include <zend_API.h>

void zend_merge_properties ( zval* obj, HashTable* properties, int destroy_ht TSRMLS_DC )

...

Список параметров

obj

...

properties

...

destroy_ht TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_make_printable_zval | Уровень выше | zend_message_dispatcher


zend_message_dispatcher

(no version information, might be only in CVS)

zend_message_dispatcher -- ...

Описание

#include <zend.h>

void zend_message_dispatcher ( long message, void* data )

...

Список параметров

message

...

data

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_merge_properties | Уровень выше | zend_object_create_proxy


zend_object_create_proxy

(no version information, might be only in CVS)

zend_object_create_proxy -- ...

Описание

#include <zend_objects_API.h>

zval* zend_object_create_proxy ( zval* object, zval* member TSRMLS_DC )

...

Список параметров

object

...

member TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_message_dispatcher | Уровень выше | zend_object_store_ctor_failed


zend_object_store_ctor_failed

(no version information, might be only in CVS)

zend_object_store_ctor_failed -- ...

Описание

#include <zend_objects_API.h>

void zend_object_store_ctor_failed ( zval* zobject TSRMLS_DC )

...

Список параметров

zobject TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_object_create_proxy | Уровень выше | zend_object_store_get_object


zend_object_store_get_object

(no version information, might be only in CVS)

zend_object_store_get_object -- ...

Описание

#include <zend_objects_API.h>

void* zend_object_store_get_object ( zval* object TSRMLS_DC )

...

Список параметров

object TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_object_store_ctor_failed | Уровень выше | zend_object_store_set_object


zend_object_store_set_object

(no version information, might be only in CVS)

zend_object_store_set_object -- ...

Описание

#include <zend_objects_API.h>

void zend_object_store_set_object ( zval* zobject, void* object TSRMLS_DC )

...

Список параметров

zobject

...

object TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_object_store_get_object | Уровень выше | zend_objects_store_add_ref


zend_objects_store_add_ref

(no version information, might be only in CVS)

zend_objects_store_add_ref -- ...

Описание

#include <zend_objects_API.h>

void zend_objects_store_add_ref ( zval* object TSRMLS_DC )

...

Список параметров

object TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_object_store_set_object | Уровень выше | zend_objects_store_call_destructors


zend_objects_store_call_destructors

(no version information, might be only in CVS)

zend_objects_store_call_destructors -- ...

Описание

#include <zend_objects_API.h>

void zend_objects_store_call_destructors ( zend_objects_store* objects TSRMLS_DC )

...

Список параметров

objects TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_objects_store_add_ref | Уровень выше | zend_objects_store_clone_obj


zend_objects_store_clone_obj

(no version information, might be only in CVS)

zend_objects_store_clone_obj -- ...

Описание

#include <zend_objects_API.h>

zend_object_value zend_objects_store_clone_obj ( zval* object TSRMLS_DC )

...

Список параметров

object TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_objects_store_call_destructors | Уровень выше | zend_objects_store_del_ref


zend_objects_store_del_ref

(no version information, might be only in CVS)

zend_objects_store_del_ref -- ...

Описание

#include <zend_objects_API.h>

void zend_objects_store_del_ref ( zval* object TSRMLS_DC )

...

Список параметров

object TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_objects_store_clone_obj | Уровень выше | zend_objects_store_destroy


zend_objects_store_destroy

(no version information, might be only in CVS)

zend_objects_store_destroy -- ...

Описание

#include <zend_objects_API.h>

void zend_objects_store_destroy ( zend_objects_store* objects )

...

Список параметров

objects

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_objects_store_del_ref | Уровень выше | zend_objects_store_free_object_storage


zend_objects_store_free_object_storage

(no version information, might be only in CVS)

zend_objects_store_free_object_storage -- ...

Описание

#include <zend_objects_API.h>

void zend_objects_store_free_object_storage ( zend_objects_store* objects TSRMLS_DC )

...

Список параметров

objects TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_objects_store_destroy | Уровень выше | zend_objects_store_init


zend_objects_store_init

(no version information, might be only in CVS)

zend_objects_store_init -- ...

Описание

#include <zend_objects_API.h>

void zend_objects_store_init ( zend_objects_store* objects, zend_uint init_size )

...

Список параметров

objects

...

init_size

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_objects_store_free_object_storage | Уровень выше | zend_objects_store_mark_destructed


zend_objects_store_mark_destructed

(no version information, might be only in CVS)

zend_objects_store_mark_destructed -- ...

Описание

#include <zend_objects_API.h>

void zend_objects_store_mark_destructed ( zend_objects_store* objects TSRMLS_DC )

...

Список параметров

objects TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_objects_store_init | Уровень выше | zend_objects_store_put


zend_objects_store_put

(no version information, might be only in CVS)

zend_objects_store_put -- ...

Описание

#include <zend_objects_API.h>

zend_object_handle zend_objects_store_put ( void* object, zend_objects_store_dtor_t dtor, zend_objects_free_object_storage_t storage, zend_objects_store_clone_t clone TSRMLS_DC )

...

Список параметров

object

...

dtor

...

storage

...

clone TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_objects_store_mark_destructed | Уровень выше | zend_output_debug_string


zend_output_debug_string

(no version information, might be only in CVS)

zend_output_debug_string -- ...

Описание

#include <zend.h>

void zend_output_debug_string ( zend_bool trigger_break, char* format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 2, 3 )

...

Список параметров

trigger_break

...

format

...

ZEND_ATTRIBUTE_FORMAT(printf

...

2

...

3

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_objects_store_put | Уровень выше | zend_parse_method_parameters_ex


zend_parse_method_parameters

(no version information, might be only in CVS)

zend_parse_method_parameters -- ...

Описание

#include <zend_API.h>

int zend_parse_method_parameters ( int num_args TSRMLS_DC, zval* this_ptr, char* type_spec, ... )

...

Список параметров

num_args TSRMLS_DC

...

this_ptr

...

type_spec

...

...

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_parse_method_parameters_ex | Уровень выше | zend_parse_parameters_ex


zend_parse_method_parameters_ex

(no version information, might be only in CVS)

zend_parse_method_parameters_ex -- ...

Описание

#include <zend_API.h>

int zend_parse_method_parameters_ex ( int flags, int num_args TSRMLS_DC, zval* this_ptr, char* type_spec, ... )

...

Список параметров

flags

...

num_args TSRMLS_DC

...

this_ptr

...

type_spec

...

...

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_output_debug_string | Уровень выше | zend_parse_method_parameters


zend_parse_parameters

(no version information, might be only in CVS)

zend_parse_parameters -- ...

Описание

#include <zend_API.h>

int zend_parse_parameters ( int num_args TSRMLS_DC, char* type_spec, ... )

...

Список параметров

num_args TSRMLS_DC

...

type_spec

...

...

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_parse_parameters_ex | Уровень выше | zend_print_flat_zval_r


zend_parse_parameters_ex

(no version information, might be only in CVS)

zend_parse_parameters_ex -- ...

Описание

#include <zend_API.h>

int zend_parse_parameters_ex ( int num_args TSRMLS_DC, char* type_spec, ... )

...

Список параметров

num_args TSRMLS_DC

...

type_spec

...

...

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_parse_method_parameters | Уровень выше | zend_parse_parameters


zend_print_flat_zval_r

(no version information, might be only in CVS)

zend_print_flat_zval_r -- ...

Описание

#include <zend.h>

void zend_print_flat_zval_r ( zval* expr TSRMLS_DC )

...

Список параметров

expr TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_parse_parameters | Уровень выше | zend_print_zval_ex


zend_print_zval

(no version information, might be only in CVS)

zend_print_zval -- ...

Описание

#include <zend.h>

int zend_print_zval ( zval* expr, int indent )

...

Список параметров

expr

...

indent

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_print_zval_r | Уровень выше | zend_read_property


zend_print_zval_ex

(no version information, might be only in CVS)

zend_print_zval_ex -- ...

Описание

#include <zend.h>

int zend_print_zval_ex ( zend_write_func_t write_func, zval* expr, int indent )

...

Список параметров

write_func

...

expr

...

indent

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_print_flat_zval_r | Уровень выше | zend_print_zval_r_ex


zend_print_zval_r

(no version information, might be only in CVS)

zend_print_zval_r -- ...

Описание

#include <zend.h>

void zend_print_zval_r ( zval* expr, int indent TSRMLS_DC )

...

Список параметров

expr

...

indent TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_print_zval_r_ex | Уровень выше | zend_print_zval


zend_print_zval_r_ex

(no version information, might be only in CVS)

zend_print_zval_r_ex -- ...

Описание

#include <zend.h>

void zend_print_zval_r_ex ( zend_write_func_t write_func, zval* expr, int indent TSRMLS_DC )

...

Список параметров

write_func

...

expr

...

indent TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_print_zval_ex | Уровень выше | zend_print_zval_r


zend_read_property

(no version information, might be only in CVS)

zend_read_property -- ...

Описание

#include <zend_API.h>

zval* zend_read_property ( zend_class_entry* scope, zval* object, char* name, int name_length, zend_bool silent TSRMLS_DC )

...

Список параметров

scope

...

object

...

name

...

name_length

...

silent TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_print_zval | Уровень выше | zend_register_functions


zend_register_functions

(no version information, might be only in CVS)

zend_register_functions -- ...

Описание

#include <zend_API.h>

int zend_register_functions ( zend_class_entry* scope, zend_function_entry* functions, HashTable* function_table, int type TSRMLS_DC )

...

Список параметров

scope

...

functions

...

function_table

...

type TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_read_property | Уровень выше | zend_register_internal_class_ex


zend_register_internal_class

(no version information, might be only in CVS)

zend_register_internal_class -- ...

Описание

#include <zend_API.h>

zend_class_entry* zend_register_internal_class ( zend_class_entry* class_entry TSRMLS_DC )

...

Список параметров

class_entry TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_register_internal_class_ex | Уровень выше | zend_register_internal_interface


zend_register_internal_class_ex

(no version information, might be only in CVS)

zend_register_internal_class_ex -- ...

Описание

#include <zend_API.h>

zend_class_entry* zend_register_internal_class_ex ( zend_class_entry* class_entry, zend_class_entry* parent_ce, char* parent_name TSRMLS_DC )

...

Список параметров

class_entry

...

parent_ce

...

parent_name TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_register_functions | Уровень выше | zend_register_internal_class


zend_register_internal_interface

(no version information, might be only in CVS)

zend_register_internal_interface -- ...

Описание

#include <zend_API.h>

zend_class_entry* zend_register_internal_interface ( zend_class_entry* orig_class_entry TSRMLS_DC )

...

Список параметров

orig_class_entry TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_register_internal_class | Уровень выше | zend_register_internal_module


zend_register_internal_module

(no version information, might be only in CVS)

zend_register_internal_module -- ...

Описание

#include <zend_API.h>

zend_module_entry* zend_register_internal_module ( zend_module_entry* module_entry TSRMLS_DC )

...

Список параметров

module_entry TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_register_internal_interface | Уровень выше | zend_register_module_ex


zend_register_module

(no version information, might be only in CVS)

zend_register_module -- ...

Описание

int zend_register_module ( zend_module_entry *module_entry )

...

Список параметров

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_register_module_ex | Уровень выше | zend_reset_all_cv


zend_register_module_ex

(no version information, might be only in CVS)

zend_register_module_ex -- ...

Описание

#include <zend_API.h>

zend_module_entry* zend_register_module_ex ( zend_module_entry* module TSRMLS_DC )

...

Список параметров

module TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_register_internal_module | Уровень выше | zend_register_module


zend_reset_all_cv

(no version information, might be only in CVS)

zend_reset_all_cv -- ...

Описание

#include <zend_API.h>

void zend_reset_all_cv ( HashTable* symbol_table TSRMLS_DC )

...

Список параметров

symbol_table TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_register_module | Уровень выше | zend_startup_module_ex


zend_startup_module

(no version information, might be only in CVS)

zend_startup_module -- ...

Описание

#include <zend_API.h>

int zend_startup_module ( zend_module_entry* module_entry )

...

Список параметров

module_entry

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_startup_module_ex | Уровень выше | zend_startup_modules


zend_startup_module_ex

(no version information, might be only in CVS)

zend_startup_module_ex -- ...

Описание

#include <zend_API.h>

int zend_startup_module_ex ( zend_module_entry* module TSRMLS_DC )

...

Список параметров

module TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_reset_all_cv | Уровень выше | zend_startup_module


zend_startup_modules

(no version information, might be only in CVS)

zend_startup_modules -- ...

Описание

#include <zend_API.h>

int zend_startup_modules ( TSRMLS_D )

...

Список параметров

TSRMLS_D

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_startup_module | Уровень выше | zend_unregister_functions


zend_unregister_functions

(no version information, might be only in CVS)

zend_unregister_functions -- ...

Описание

#include <zend_API.h>

void zend_unregister_functions ( zend_function_entry* functions, int count, HashTable* function_table TSRMLS_DC )

...

Список параметров

functions

...

count

...

function_table TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_startup_modules | Уровень выше | zend_update_class_constants


zend_update_class_constants

(no version information, might be only in CVS)

zend_update_class_constants -- ...

Описание

#include <zend_API.h>

void zend_update_class_constants ( zend_class_entry* class_type TSRMLS_DC )

...

Список параметров

class_type TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_unregister_functions | Уровень выше | zend_update_property_bool


zend_update_property

(no version information, might be only in CVS)

zend_update_property -- ...

Описание

#include <zend_API.h>

void zend_update_property ( zend_class_entry* scope, zval* object, char* name, int name_length, zval* value TSRMLS_DC )

...

Список параметров

scope

...

object

...

name

...

name_length

...

value TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_update_property_stringl | Уровень выше | zend_wrong_param_count


zend_update_property_bool

(no version information, might be only in CVS)

zend_update_property_bool -- ...

Описание

#include <zend_API.h>

void zend_update_property_bool ( zend_class_entry* scope, zval* object, char* name, int name_length, long value TSRMLS_DC )

...

Список параметров

scope

...

object

...

name

...

name_length

...

value TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_update_class_constants | Уровень выше | zend_update_property_double


zend_update_property_double

(no version information, might be only in CVS)

zend_update_property_double -- ...

Описание

#include <zend_API.h>

void zend_update_property_double ( zend_class_entry* scope, zval* object, char* name, int name_length, double value TSRMLS_DC )

...

Список параметров

scope

...

object

...

name

...

name_length

...

value TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_update_property_bool | Уровень выше | zend_update_property_long


zend_update_property_long

(no version information, might be only in CVS)

zend_update_property_long -- ...

Описание

#include <zend_API.h>

void zend_update_property_long ( zend_class_entry* scope, zval* object, char* name, int name_length, long value TSRMLS_DC )

...

Список параметров

scope

...

object

...

name

...

name_length

...

value TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_update_property_double | Уровень выше | zend_update_property_null


zend_update_property_null

(no version information, might be only in CVS)

zend_update_property_null -- ...

Описание

#include <zend_API.h>

void zend_update_property_null ( zend_class_entry* scope, zval* object, char* name, int name_length TSRMLS_DC )

...

Список параметров

scope

...

object

...

name

...

name_length TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_update_property_long | Уровень выше | zend_update_property_string


zend_update_property_string

(no version information, might be only in CVS)

zend_update_property_string -- ...

Описание

#include <zend_API.h>

void zend_update_property_string ( zend_class_entry* scope, zval* object, char* name, int name_length, char* value TSRMLS_DC )

...

Список параметров

scope

...

object

...

name

...

name_length

...

value TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_update_property_null | Уровень выше | zend_update_property_stringl


zend_update_property_stringl

(no version information, might be only in CVS)

zend_update_property_stringl -- ...

Описание

#include <zend_API.h>

void zend_update_property_stringl ( zend_class_entry* scope, zval* object, char* name, int name_length, char* value, int value_length TSRMLS_DC )

...

Список параметров

scope

...

object

...

name

...

name_length

...

value

...

value_length TSRMLS_DC

...

Возвращаемые значения

...

Пред. | Начало | След.
zend_update_property_string | Уровень выше | zend_update_property


zend_wrong_param_count

(no version information, might be only in CVS)

zend_wrong_param_count -- Generate standard error message for wrong parameter count in function or method call

Описание

#include <zend_API.h>

void zend_wrong_param_count ( TSRMLS_D )

zend_wrong_param_count() produces a standard warning message for functions or class methods that have been called with a wrong number of parameters. The function automaticly puts the right function name and class name (if needed) into the error message.

Usually the ZEND_WRONG_PARAM_COUNT() and ZEND_WRONG_PARAM_COUNT_WITH_RETVAL() macros are used to invoke this function instead of calling it immediately as this saves typing the TSRMLS_C argument.

Список параметров

TSRMLS_D

Thread context

Пред. | Начало | След.
zend_update_property | Уровень выше | zend_zval_type_name


zend_zval_type_name

(no version information, might be only in CVS)

zend_zval_type_name -- Returns the PHP type name for a given zval

Описание

#include <zend_API.h>

char* zend_zval_type_name ( zval* arg )

zend_zval_type_name() returns the PHP typename for the current value of the zval pointed to by arg.

Список параметров

arg

A pointer to the zval to be examined.

Возвращаемые значения

A pointer to a static PHP typename string.

Пред. | Начало | След.
zend_wrong_param_count | Уровень выше | Extending PHP 3